eslint-interactive 8.1.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/LICENSE +25 -0
- package/README.md +147 -0
- package/bin/eslint-interactive.js +10 -0
- package/dist/action/apply-suggestions.d.ts +6 -0
- package/dist/action/apply-suggestions.d.ts.map +1 -0
- package/dist/action/apply-suggestions.js +28 -0
- package/dist/action/apply-suggestions.js.map +1 -0
- package/dist/action/disable-per-file.d.ts +6 -0
- package/dist/action/disable-per-file.d.ts.map +1 -0
- package/dist/action/disable-per-file.js +8 -0
- package/dist/action/disable-per-file.js.map +1 -0
- package/dist/action/disable-per-line.d.ts +6 -0
- package/dist/action/disable-per-line.d.ts.map +1 -0
- package/dist/action/disable-per-line.js +8 -0
- package/dist/action/disable-per-line.js.map +1 -0
- package/dist/action/fix.d.ts +6 -0
- package/dist/action/fix.d.ts.map +1 -0
- package/dist/action/fix.js +6 -0
- package/dist/action/fix.js.map +1 -0
- package/dist/action/index.d.ts +7 -0
- package/dist/action/index.d.ts.map +1 -0
- package/dist/action/index.js +7 -0
- package/dist/action/index.js.map +1 -0
- package/dist/action/make-fixable-and-fix.d.ts +6 -0
- package/dist/action/make-fixable-and-fix.d.ts.map +1 -0
- package/dist/action/make-fixable-and-fix.js +28 -0
- package/dist/action/make-fixable-and-fix.js.map +1 -0
- package/dist/action/print-result-details.d.ts +5 -0
- package/dist/action/print-result-details.d.ts.map +1 -0
- package/dist/action/print-result-details.js +12 -0
- package/dist/action/print-result-details.js.map +1 -0
- package/dist/cli/log.d.ts +6 -0
- package/dist/cli/log.d.ts.map +1 -0
- package/dist/cli/log.js +9 -0
- package/dist/cli/log.js.map +1 -0
- package/dist/cli/ora.d.ts +4 -0
- package/dist/cli/ora.d.ts.map +1 -0
- package/dist/cli/ora.js +23 -0
- package/dist/cli/ora.js.map +1 -0
- package/dist/cli/package.d.ts +2 -0
- package/dist/cli/package.d.ts.map +1 -0
- package/dist/cli/package.js +6 -0
- package/dist/cli/package.js.map +1 -0
- package/dist/cli/parse-argv.d.ts +4 -0
- package/dist/cli/parse-argv.d.ts.map +1 -0
- package/dist/cli/parse-argv.js +50 -0
- package/dist/cli/parse-argv.js.map +1 -0
- package/dist/cli/prompt.d.ts +53 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +154 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/run.d.ts +8 -0
- package/dist/cli/run.d.ts.map +1 -0
- package/dist/cli/run.js +46 -0
- package/dist/cli/run.js.map +1 -0
- package/dist/core-worker.d.ts +21 -0
- package/dist/core-worker.d.ts.map +1 -0
- package/dist/core-worker.js +52 -0
- package/dist/core-worker.js.map +1 -0
- package/dist/core.d.ts +84 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +196 -0
- package/dist/core.js.map +1 -0
- package/dist/formatter/colors.d.ts +4 -0
- package/dist/formatter/colors.d.ts.map +1 -0
- package/dist/formatter/colors.js +5 -0
- package/dist/formatter/colors.js.map +1 -0
- package/dist/formatter/format-by-files.d.ts +3 -0
- package/dist/formatter/format-by-files.d.ts.map +1 -0
- package/dist/formatter/format-by-files.js +41 -0
- package/dist/formatter/format-by-files.js.map +1 -0
- package/dist/formatter/format-by-rules.d.ts +3 -0
- package/dist/formatter/format-by-rules.d.ts.map +1 -0
- package/dist/formatter/format-by-rules.js +34 -0
- package/dist/formatter/format-by-rules.js.map +1 -0
- package/dist/formatter/index.d.ts +4 -0
- package/dist/formatter/index.d.ts.map +1 -0
- package/dist/formatter/index.js +7 -0
- package/dist/formatter/index.js.map +1 -0
- package/dist/formatter/take-rule-statistics.d.ts +18 -0
- package/dist/formatter/take-rule-statistics.d.ts.map +1 -0
- package/dist/formatter/take-rule-statistics.js +51 -0
- package/dist/formatter/take-rule-statistics.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin/fix/apply-auto-fixes.d.ts +8 -0
- package/dist/plugin/fix/apply-auto-fixes.d.ts.map +1 -0
- package/dist/plugin/fix/apply-auto-fixes.js +8 -0
- package/dist/plugin/fix/apply-auto-fixes.js.map +1 -0
- package/dist/plugin/fix/apply-suggestions.d.ts +11 -0
- package/dist/plugin/fix/apply-suggestions.d.ts.map +1 -0
- package/dist/plugin/fix/apply-suggestions.js +25 -0
- package/dist/plugin/fix/apply-suggestions.js.map +1 -0
- package/dist/plugin/fix/disable-per-file.d.ts +10 -0
- package/dist/plugin/fix/disable-per-file.d.ts.map +1 -0
- package/dist/plugin/fix/disable-per-file.js +39 -0
- package/dist/plugin/fix/disable-per-file.js.map +1 -0
- package/dist/plugin/fix/disable-per-line.d.ts +10 -0
- package/dist/plugin/fix/disable-per-line.d.ts.map +1 -0
- package/dist/plugin/fix/disable-per-line.js +54 -0
- package/dist/plugin/fix/disable-per-line.js.map +1 -0
- package/dist/plugin/fix/index.d.ts +6 -0
- package/dist/plugin/fix/index.d.ts.map +1 -0
- package/dist/plugin/fix/index.js +6 -0
- package/dist/plugin/fix/index.js.map +1 -0
- package/dist/plugin/fix/make-fixable-and-fix.d.ts +12 -0
- package/dist/plugin/fix/make-fixable-and-fix.d.ts.map +1 -0
- package/dist/plugin/fix/make-fixable-and-fix.js +61 -0
- package/dist/plugin/fix/make-fixable-and-fix.js.map +1 -0
- package/dist/plugin/fix-rule.d.ts +10 -0
- package/dist/plugin/fix-rule.d.ts.map +1 -0
- package/dist/plugin/fix-rule.js +124 -0
- package/dist/plugin/fix-rule.js.map +1 -0
- package/dist/plugin/index.d.ts +49 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +11 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/prefer-addition-shorthand-rule.d.ts +7 -0
- package/dist/plugin/prefer-addition-shorthand-rule.d.ts.map +1 -0
- package/dist/plugin/prefer-addition-shorthand-rule.js +54 -0
- package/dist/plugin/prefer-addition-shorthand-rule.js.map +1 -0
- package/dist/plugin/rule-fixer.d.ts +80 -0
- package/dist/plugin/rule-fixer.d.ts.map +1 -0
- package/dist/plugin/rule-fixer.js +118 -0
- package/dist/plugin/rule-fixer.js.map +1 -0
- package/dist/scene/check-results.d.ts +21 -0
- package/dist/scene/check-results.d.ts.map +1 -0
- package/dist/scene/check-results.js +22 -0
- package/dist/scene/check-results.js.map +1 -0
- package/dist/scene/index.d.ts +25 -0
- package/dist/scene/index.d.ts.map +1 -0
- package/dist/scene/index.js +6 -0
- package/dist/scene/index.js.map +1 -0
- package/dist/scene/lint.d.ts +8 -0
- package/dist/scene/lint.d.ts.map +1 -0
- package/dist/scene/lint.js +31 -0
- package/dist/scene/lint.js.map +1 -0
- package/dist/scene/select-action.d.ts +20 -0
- package/dist/scene/select-action.d.ts.map +1 -0
- package/dist/scene/select-action.js +46 -0
- package/dist/scene/select-action.js.map +1 -0
- package/dist/scene/select-rule-ids.d.ts +15 -0
- package/dist/scene/select-rule-ids.d.ts.map +1 -0
- package/dist/scene/select-rule-ids.js +10 -0
- package/dist/scene/select-rule-ids.js.map +1 -0
- package/dist/tsconfig.src.tsbuildinfo +1 -0
- package/dist/util/array.d.ts +3 -0
- package/dist/util/array.d.ts.map +1 -0
- package/dist/util/array.js +14 -0
- package/dist/util/array.js.map +1 -0
- package/dist/util/cache.d.ts +5 -0
- package/dist/util/cache.d.ts.map +1 -0
- package/dist/util/cache.js +13 -0
- package/dist/util/cache.js.map +1 -0
- package/dist/util/eslint.d.ts +68 -0
- package/dist/util/eslint.d.ts.map +1 -0
- package/dist/util/eslint.js +147 -0
- package/dist/util/eslint.js.map +1 -0
- package/dist/util/filter-script.d.ts +6 -0
- package/dist/util/filter-script.d.ts.map +1 -0
- package/dist/util/filter-script.js +39 -0
- package/dist/util/filter-script.js.map +1 -0
- package/dist/util/type-check.d.ts +3 -0
- package/dist/util/type-check.d.ts.map +1 -0
- package/dist/util/type-check.js +8 -0
- package/dist/util/type-check.js.map +1 -0
- package/package.json +93 -0
- package/src/action/apply-suggestions.ts +40 -0
- package/src/action/disable-per-file.ts +16 -0
- package/src/action/disable-per-line.ts +16 -0
- package/src/action/fix.ts +14 -0
- package/src/action/index.ts +6 -0
- package/src/action/make-fixable-and-fix.ts +40 -0
- package/src/action/print-result-details.ts +18 -0
- package/src/cli/log.ts +11 -0
- package/src/cli/ora.ts +25 -0
- package/src/cli/package.ts +9 -0
- package/src/cli/parse-argv.ts +52 -0
- package/src/cli/prompt.ts +205 -0
- package/src/cli/run.ts +50 -0
- package/src/core-worker.ts +66 -0
- package/src/core.ts +240 -0
- package/src/formatter/colors.ts +5 -0
- package/src/formatter/format-by-files.ts +48 -0
- package/src/formatter/format-by-rules.ts +37 -0
- package/src/formatter/index.ts +9 -0
- package/src/formatter/take-rule-statistics.ts +66 -0
- package/src/index.ts +4 -0
- package/src/plugin/fix/apply-auto-fixes.ts +13 -0
- package/src/plugin/fix/apply-suggestions.ts +44 -0
- package/src/plugin/fix/disable-per-file.ts +53 -0
- package/src/plugin/fix/disable-per-line.ts +65 -0
- package/src/plugin/fix/index.ts +13 -0
- package/src/plugin/fix/make-fixable-and-fix.ts +77 -0
- package/src/plugin/fix-rule.ts +142 -0
- package/src/plugin/index.ts +66 -0
- package/src/plugin/prefer-addition-shorthand-rule.ts +56 -0
- package/src/plugin/rule-fixer.ts +147 -0
- package/src/scene/check-results.ts +43 -0
- package/src/scene/index.ts +18 -0
- package/src/scene/lint.ts +41 -0
- package/src/scene/select-action.ts +70 -0
- package/src/scene/select-rule-ids.ts +24 -0
- package/src/typings/cachedir.d.ts +5 -0
- package/src/typings/node-pager.d.ts +4 -0
- package/src/util/array.ts +16 -0
- package/src/util/cache.ts +11 -0
- package/src/util/eslint.ts +162 -0
- package/src/util/filter-script.ts +45 -0
- package/src/util/type-check.ts +8 -0
- package/static/example-filter-script.js +49 -0
- package/static/example-fixable-maker-script.js +47 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { ERROR_COLOR, FAILED_COLOR, WARNING_COLOR } from './colors.js';
|
|
3
|
+
function pluralize(word, count) {
|
|
4
|
+
return count > 1 ? `${word}s` : word;
|
|
5
|
+
}
|
|
6
|
+
export function formatByFiles(results) {
|
|
7
|
+
let errorCount = 0;
|
|
8
|
+
let failureCount = 0;
|
|
9
|
+
let passCount = 0;
|
|
10
|
+
let warningCount = 0;
|
|
11
|
+
results.forEach(function (result) {
|
|
12
|
+
const messages = result.messages;
|
|
13
|
+
if (messages.length === 0) {
|
|
14
|
+
passCount++;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
failureCount++;
|
|
18
|
+
warningCount += result.warningCount;
|
|
19
|
+
errorCount += result.errorCount;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const fileCount = passCount + failureCount;
|
|
23
|
+
const problemCount = errorCount + warningCount;
|
|
24
|
+
let summary = '';
|
|
25
|
+
summary += `- ${fileCount} ${pluralize('file', fileCount)}`;
|
|
26
|
+
summary += ' (';
|
|
27
|
+
summary += `${passCount} ${pluralize('file', passCount)} passed`;
|
|
28
|
+
summary += ', ';
|
|
29
|
+
summary += chalk[FAILED_COLOR](`${failureCount} ${pluralize('file', failureCount)} failed`);
|
|
30
|
+
summary += ') checked.\n';
|
|
31
|
+
if (problemCount > 0) {
|
|
32
|
+
summary += `- ${problemCount} ${pluralize('problem', problemCount)}`;
|
|
33
|
+
summary += ' (';
|
|
34
|
+
summary += chalk[ERROR_COLOR](`${errorCount} ${pluralize('error', errorCount)}`);
|
|
35
|
+
summary += ', ';
|
|
36
|
+
summary += chalk[WARNING_COLOR](`${warningCount} ${pluralize('warning', warningCount)}`);
|
|
37
|
+
summary += ') found.';
|
|
38
|
+
}
|
|
39
|
+
return chalk.bold(summary);
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=format-by-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-by-files.js","sourceRoot":"","sources":["../../src/formatter/format-by-files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvE,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA4B;IACxD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,OAAO,CAAC,OAAO,CAAC,UAAU,MAAM;QAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,SAAS,EAAE,CAAC;SACb;aAAM;YACL,YAAY,EAAE,CAAC;YACf,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;YACpC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;SACjC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC3C,MAAM,YAAY,GAAG,UAAU,GAAG,YAAY,CAAC;IAE/C,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC;IACjE,OAAO,IAAI,IAAI,CAAC;IAChB,OAAO,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,IAAI,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5F,OAAO,IAAI,cAAc,CAAC;IAE1B,IAAI,YAAY,GAAG,CAAC,EAAE;QACpB,OAAO,IAAI,KAAK,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,UAAU,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;QACzF,OAAO,IAAI,UAAU,CAAC;KACvB;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-by-rules.d.ts","sourceRoot":"","sources":["../../src/formatter/format-by-rules.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAwBjG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createRequire as _createRequire } from "module";
|
|
2
|
+
const __require = _createRequire(import.meta.url);
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
5
|
+
const Table = __require("cli-table");
|
|
6
|
+
// import terminalLink from 'terminal-link';
|
|
7
|
+
import { ERROR_COLOR } from './colors.js';
|
|
8
|
+
import { takeRuleStatistics } from './take-rule-statistics.js';
|
|
9
|
+
function numCell(num) {
|
|
10
|
+
return num > 0 ? chalk[ERROR_COLOR].bold(num) : num.toString();
|
|
11
|
+
}
|
|
12
|
+
export function formatByRules(results, _data) {
|
|
13
|
+
const ruleStatistics = takeRuleStatistics(results);
|
|
14
|
+
const table = new Table({
|
|
15
|
+
head: ['Rule', 'Error', 'Warning', 'is fixable', 'has suggestions'],
|
|
16
|
+
});
|
|
17
|
+
ruleStatistics.forEach((ruleStatistic) => {
|
|
18
|
+
const { ruleId, errorCount, warningCount, isFixableCount, hasSuggestionsCount } = ruleStatistic;
|
|
19
|
+
// NOTE: Disable documentation links temporarily due to problems with cli-table.
|
|
20
|
+
// ref: https://github.com/mizdra/eslint-interactive/issues/81
|
|
21
|
+
// const ruleMetaData = data?.rulesMeta[ruleId];
|
|
22
|
+
// const ruleCell = ruleMetaData?.docs?.url ? terminalLink(ruleId, ruleMetaData?.docs.url) : ruleId;
|
|
23
|
+
const ruleCell = ruleId;
|
|
24
|
+
table.push([
|
|
25
|
+
ruleCell,
|
|
26
|
+
numCell(errorCount),
|
|
27
|
+
numCell(warningCount),
|
|
28
|
+
numCell(isFixableCount),
|
|
29
|
+
numCell(hasSuggestionsCount),
|
|
30
|
+
]);
|
|
31
|
+
});
|
|
32
|
+
return table.toString();
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=format-by-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-by-rules.js","sourceRoot":"","sources":["../../src/formatter/format-by-rules.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,iEAAiE;AACjE,qCAAoC;AAEpC,4CAA4C;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA4B,EAAE,KAA6B;IACvF,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAC;KACpE,CAAC,CAAC;IAEH,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,aAAa,CAAC;QAEhG,gFAAgF;QAChF,8DAA8D;QAC9D,gDAAgD;QAChD,oGAAoG;QACpG,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,QAAQ;YACR,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC;YACrB,OAAO,CAAC,cAAc,CAAC;YACvB,OAAO,CAAC,mBAAmB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formatter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAEnF,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAEzF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { formatByFiles } from './format-by-files.js';
|
|
2
|
+
import { formatByRules } from './format-by-rules.js';
|
|
3
|
+
export { takeRuleStatistics } from './take-rule-statistics.js';
|
|
4
|
+
export function format(results, data) {
|
|
5
|
+
return formatByFiles(results) + '\n' + formatByRules(results, data);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatter/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,2BAA2B,CAAC;AAEnF,MAAM,UAAU,MAAM,CAAC,OAA4B,EAAE,IAA4B;IAC/E,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ESLint } from 'eslint';
|
|
2
|
+
/**
|
|
3
|
+
* The type representing the lint results of a rule unit.
|
|
4
|
+
*/
|
|
5
|
+
export declare type RuleStatistic = {
|
|
6
|
+
ruleId: string;
|
|
7
|
+
errorCount: number;
|
|
8
|
+
warningCount: number;
|
|
9
|
+
isFixableCount: number;
|
|
10
|
+
isFixableErrorCount: number;
|
|
11
|
+
isFixableWarningCount: number;
|
|
12
|
+
hasSuggestionsCount: number;
|
|
13
|
+
hasSuggestionsErrorCount: number;
|
|
14
|
+
hasSuggestionsWarningCount: number;
|
|
15
|
+
};
|
|
16
|
+
/** ルールごとのエラー/警告の件数などの統計を取る */
|
|
17
|
+
export declare function takeRuleStatistics(results: ESLint.LintResult[]): RuleStatistic[];
|
|
18
|
+
//# sourceMappingURL=take-rule-statistics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-rule-statistics.d.ts","sourceRoot":"","sources":["../../src/formatter/take-rule-statistics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAGxC;;GAEG;AACH,oBAAY,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,0BAA0B,EAAE,MAAM,CAAC;CACpC,CAAC;AAoCF,8BAA8B;AAC9B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,aAAa,EAAE,CAYhF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { groupBy } from '../util/array.js';
|
|
2
|
+
/** 指定されたルールのエラー/警告の件数などの統計を取る */
|
|
3
|
+
function takeRuleStatistic(ruleId, messages) {
|
|
4
|
+
let errorCount = 0;
|
|
5
|
+
let warningCount = 0;
|
|
6
|
+
let isFixableErrorCount = 0;
|
|
7
|
+
let isFixableWarningCount = 0;
|
|
8
|
+
let hasSuggestionsErrorCount = 0;
|
|
9
|
+
let hasSuggestionsWarningCount = 0;
|
|
10
|
+
for (const message of messages) {
|
|
11
|
+
if (message.severity === 2) {
|
|
12
|
+
errorCount++;
|
|
13
|
+
if (message.fix)
|
|
14
|
+
isFixableErrorCount++;
|
|
15
|
+
if (message.suggestions && message.suggestions.length > 0)
|
|
16
|
+
hasSuggestionsErrorCount++;
|
|
17
|
+
}
|
|
18
|
+
else if (message.severity === 1) {
|
|
19
|
+
warningCount++;
|
|
20
|
+
if (message.fix)
|
|
21
|
+
isFixableWarningCount++;
|
|
22
|
+
if (message.suggestions && message.suggestions.length > 0)
|
|
23
|
+
hasSuggestionsWarningCount++;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
ruleId,
|
|
28
|
+
errorCount,
|
|
29
|
+
warningCount,
|
|
30
|
+
isFixableCount: isFixableErrorCount + isFixableWarningCount,
|
|
31
|
+
isFixableErrorCount: isFixableErrorCount,
|
|
32
|
+
isFixableWarningCount: isFixableWarningCount,
|
|
33
|
+
hasSuggestionsCount: hasSuggestionsErrorCount + hasSuggestionsWarningCount,
|
|
34
|
+
hasSuggestionsErrorCount,
|
|
35
|
+
hasSuggestionsWarningCount,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** ルールごとのエラー/警告の件数などの統計を取る */
|
|
39
|
+
export function takeRuleStatistics(results) {
|
|
40
|
+
const messages = results.flatMap((result) => result.messages).filter((message) => message.ruleId !== null);
|
|
41
|
+
const ruleIdToMessages = groupBy(messages, (message) => message.ruleId);
|
|
42
|
+
const ruleStatistics = [];
|
|
43
|
+
for (const [ruleId, messages] of ruleIdToMessages) {
|
|
44
|
+
// NOTE: Exclude problems with a null `ruleId`.
|
|
45
|
+
// ref: ref: https://github.com/eslint/eslint/blob/f1b7499a5162d3be918328ce496eb80692353a5a/docs/developer-guide/nodejs-api.md?plain=1#L372
|
|
46
|
+
if (ruleId !== null)
|
|
47
|
+
ruleStatistics.push(takeRuleStatistic(ruleId, messages));
|
|
48
|
+
}
|
|
49
|
+
return ruleStatistics;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=take-rule-statistics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"take-rule-statistics.js","sourceRoot":"","sources":["../../src/formatter/take-rule-statistics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAiB3C,iCAAiC;AACjC,SAAS,iBAAiB,CAAC,MAAc,EAAE,QAA8B;IACvE,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC1B,UAAU,EAAE,CAAC;YACb,IAAI,OAAO,CAAC,GAAG;gBAAE,mBAAmB,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,wBAAwB,EAAE,CAAC;SACvF;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;YACjC,YAAY,EAAE,CAAC;YACf,IAAI,OAAO,CAAC,GAAG;gBAAE,qBAAqB,EAAE,CAAC;YACzC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBAAE,0BAA0B,EAAE,CAAC;SACzF;KACF;IAED,OAAO;QACL,MAAM;QACN,UAAU;QACV,YAAY;QACZ,cAAc,EAAE,mBAAmB,GAAG,qBAAqB;QAC3D,mBAAmB,EAAE,mBAAmB;QACxC,qBAAqB,EAAE,qBAAqB;QAC5C,mBAAmB,EAAE,wBAAwB,GAAG,0BAA0B;QAC1E,wBAAwB;QACxB,0BAA0B;KAC3B,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IAE3G,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExE,MAAM,cAAc,GAAoB,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,gBAAgB,EAAE;QACjD,+CAA+C;QAC/C,2IAA2I;QAC3I,IAAI,MAAM,KAAK,IAAI;YAAE,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;KAC/E;IACD,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { run, type Options } from './cli/run.js';
|
|
2
|
+
export { Core, type Config } from './core.js';
|
|
3
|
+
export { takeRuleStatistics, type RuleStatistic } from './formatter/index.js';
|
|
4
|
+
export { type FixableMaker, type SuggestionFilter, type FixContext } from './plugin/index.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAgB,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,IAAI,EAAe,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAsB,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Rule } from 'eslint';
|
|
2
|
+
import { FixContext } from '../index.js';
|
|
3
|
+
export declare type FixToApplyAutoFixesArgs = {};
|
|
4
|
+
/**
|
|
5
|
+
* Create fix to apply auto-fixes.
|
|
6
|
+
*/
|
|
7
|
+
export declare function createFixToApplyAutoFixes(context: FixContext, _args: FixToApplyAutoFixesArgs): Rule.Fix[];
|
|
8
|
+
//# sourceMappingURL=apply-auto-fixes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-auto-fixes.d.ts","sourceRoot":"","sources":["../../../src/plugin/fix/apply-auto-fixes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,oBAAY,uBAAuB,GAAG,EAAE,CAAC;AAEzC;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,CAEzG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { notEmpty } from '../../util/type-check.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create fix to apply auto-fixes.
|
|
4
|
+
*/
|
|
5
|
+
export function createFixToApplyAutoFixes(context, _args) {
|
|
6
|
+
return context.messages.map((message) => message.fix).filter(notEmpty);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=apply-auto-fixes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-auto-fixes.js","sourceRoot":"","sources":["../../../src/plugin/fix/apply-auto-fixes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMpD;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAmB,EAAE,KAA8B;IAC3F,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Linter, Rule } from 'eslint';
|
|
2
|
+
import { FixContext } from '../index.js';
|
|
3
|
+
export declare type SuggestionFilter = (suggestions: Linter.LintSuggestion[], message: Linter.LintMessage, context: FixContext) => Linter.LintSuggestion | null | undefined;
|
|
4
|
+
export declare type FixToApplySuggestionsArgs = {
|
|
5
|
+
filter: SuggestionFilter;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Create fix to apply suggestions.
|
|
9
|
+
*/
|
|
10
|
+
export declare function createFixToApplySuggestions(context: FixContext, args: FixToApplySuggestionsArgs): Rule.Fix[];
|
|
11
|
+
//# sourceMappingURL=apply-suggestions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-suggestions.d.ts","sourceRoot":"","sources":["../../../src/plugin/fix/apply-suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oBAAY,gBAAgB,GAAG,CAC7B,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,EACpC,OAAO,EAAE,MAAM,CAAC,WAAW,EAC3B,OAAO,EAAE,UAAU,KAChB,MAAM,CAAC,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9C,oBAAY,yBAAyB,GAAG;IACtC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAsBF;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAAC,GAAG,EAAE,CAO5G"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
function getApplicableSuggestion(message, filter, context) {
|
|
2
|
+
if (!message.suggestions || message.suggestions.length === 0)
|
|
3
|
+
return null;
|
|
4
|
+
const suggestion = filter(message.suggestions, message, context);
|
|
5
|
+
return suggestion !== null && suggestion !== void 0 ? suggestion : null;
|
|
6
|
+
}
|
|
7
|
+
function generateFixPerMessage(context, filter, message) {
|
|
8
|
+
const suggestion = getApplicableSuggestion(message, filter, context);
|
|
9
|
+
if (!suggestion)
|
|
10
|
+
return null;
|
|
11
|
+
return suggestion.fix;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Create fix to apply suggestions.
|
|
15
|
+
*/
|
|
16
|
+
export function createFixToApplySuggestions(context, args) {
|
|
17
|
+
const fixes = [];
|
|
18
|
+
for (const message of context.messages) {
|
|
19
|
+
const fix = generateFixPerMessage(context, args.filter, message);
|
|
20
|
+
if (fix)
|
|
21
|
+
fixes.push(fix);
|
|
22
|
+
}
|
|
23
|
+
return fixes;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=apply-suggestions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-suggestions.js","sourceRoot":"","sources":["../../../src/plugin/fix/apply-suggestions.ts"],"names":[],"mappings":"AAaA,SAAS,uBAAuB,CAC9B,OAA2B,EAC3B,MAAwB,EACxB,OAAmB;IAEnB,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACjE,OAAO,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAC5B,OAAmB,EACnB,MAAwB,EACxB,OAA2B;IAE3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,UAAU,CAAC,GAAG,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAmB,EAAE,IAA+B;IAC9F,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QACtC,MAAM,GAAG,GAAG,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Rule } from 'eslint';
|
|
2
|
+
import { FixContext } from '../index.js';
|
|
3
|
+
export declare type FixToDisablePerFileArgs = {
|
|
4
|
+
description?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Create fix to add disable comment per file.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createFixToDisablePerFile(context: FixContext, args: FixToDisablePerFileArgs): Rule.Fix[];
|
|
10
|
+
//# sourceMappingURL=disable-per-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-per-file.d.ts","sourceRoot":"","sources":["../../../src/plugin/fix/disable-per-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAW9B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oBAAY,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA+BF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,CAGxG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { unique } from '../../util/array.js';
|
|
2
|
+
import { findShebang, mergeRuleIdsAndDescription, parseDisableComment, toCommentText, } from '../../util/eslint.js';
|
|
3
|
+
import { notEmpty } from '../../util/type-check.js';
|
|
4
|
+
function findDisableCommentPerFile(commentsInFile) {
|
|
5
|
+
return commentsInFile.map(parseDisableComment).find((comment) => (comment === null || comment === void 0 ? void 0 : comment.scope) === 'file');
|
|
6
|
+
}
|
|
7
|
+
function generateFix(context, description) {
|
|
8
|
+
var _a;
|
|
9
|
+
const ruleIdsToDisable = unique(context.messages.map((message) => message.ruleId).filter(notEmpty));
|
|
10
|
+
if (ruleIdsToDisable.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
const commentsInFile = context.sourceCode.getAllComments();
|
|
13
|
+
const disableCommentPerFile = findDisableCommentPerFile(commentsInFile);
|
|
14
|
+
if (disableCommentPerFile) {
|
|
15
|
+
const text = toCommentText({
|
|
16
|
+
type: 'Block',
|
|
17
|
+
scope: 'file',
|
|
18
|
+
...mergeRuleIdsAndDescription(disableCommentPerFile, {
|
|
19
|
+
ruleIds: ruleIdsToDisable,
|
|
20
|
+
description,
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
return context.fixer.replaceTextRange(disableCommentPerFile.range, text);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const text = toCommentText({ type: 'Block', scope: 'file', ruleIds: ruleIdsToDisable, description }) + '\n';
|
|
27
|
+
const shebang = findShebang(context.sourceCode.text);
|
|
28
|
+
// if shebang exists, insert comment after shebang
|
|
29
|
+
return context.fixer.insertTextAfterRange((_a = shebang === null || shebang === void 0 ? void 0 : shebang.range) !== null && _a !== void 0 ? _a : [0, 0], text);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create fix to add disable comment per file.
|
|
34
|
+
*/
|
|
35
|
+
export function createFixToDisablePerFile(context, args) {
|
|
36
|
+
const fix = generateFix(context, args.description);
|
|
37
|
+
return fix ? [fix] : [];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=disable-per-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-per-file.js","sourceRoot":"","sources":["../../../src/plugin/fix/disable-per-file.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAEL,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOpD,SAAS,yBAAyB,CAAC,cAAyB;IAC1D,OAAO,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,MAAK,MAAM,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB,EAAE,WAAoB;;IAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpG,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;IAC3D,MAAM,qBAAqB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IACxE,IAAI,qBAAqB,EAAE;QACzB,MAAM,IAAI,GAAG,aAAa,CAAC;YACzB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,MAAM;YACb,GAAG,0BAA0B,CAAC,qBAAqB,EAAE;gBACnD,OAAO,EAAE,gBAAgB;gBACzB,WAAW;aACZ,CAAC;SACH,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1E;SAAM;QACL,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;QAE5G,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACrD,kDAAkD;QAClD,OAAO,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,mCAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KAC3E;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAmB,EAAE,IAA6B;IAC1F,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Rule } from 'eslint';
|
|
2
|
+
import { FixContext } from '../index.js';
|
|
3
|
+
export declare type FixToDisablePerLineArgs = {
|
|
4
|
+
description?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Create fix to add disable comment per line.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createFixToDisablePerLine(context: FixContext, args: FixToDisablePerLineArgs): Rule.Fix[];
|
|
10
|
+
//# sourceMappingURL=disable-per-line.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-per-line.d.ts","sourceRoot":"","sources":["../../../src/plugin/fix/disable-per-line.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,IAAI,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oBAAY,uBAAuB,GAAG;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA4CF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,CAQxG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { groupBy, unique } from '../../util/array.js';
|
|
2
|
+
import { mergeRuleIdsAndDescription, parseDisableComment, toCommentText } from '../../util/eslint.js';
|
|
3
|
+
import { notEmpty } from '../../util/type-check.js';
|
|
4
|
+
function findDisableCommentPerLine(commentsInFile, line) {
|
|
5
|
+
const commentsInPreviousLine = commentsInFile.filter((comment) => { var _a; return ((_a = comment.loc) === null || _a === void 0 ? void 0 : _a.start.line) === line - 1; });
|
|
6
|
+
return commentsInPreviousLine.map(parseDisableComment).find((comment) => (comment === null || comment === void 0 ? void 0 : comment.scope) === 'next-line');
|
|
7
|
+
}
|
|
8
|
+
function generateFixPerLine(context, description, line, messagesInLine) {
|
|
9
|
+
const ruleIdsToDisable = unique(messagesInLine.map((message) => message.ruleId).filter(notEmpty));
|
|
10
|
+
if (ruleIdsToDisable.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
const commentsInFile = context.sourceCode.getAllComments();
|
|
13
|
+
const disableCommentPerLine = findDisableCommentPerLine(commentsInFile, line);
|
|
14
|
+
if (disableCommentPerLine) {
|
|
15
|
+
const text = toCommentText({
|
|
16
|
+
type: 'Block',
|
|
17
|
+
scope: 'next-line',
|
|
18
|
+
...mergeRuleIdsAndDescription(disableCommentPerLine, {
|
|
19
|
+
ruleIds: ruleIdsToDisable,
|
|
20
|
+
description,
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
return context.fixer.replaceTextRange(disableCommentPerLine.range, text);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const headNodeIndex = context.sourceCode.getIndexFromLoc({ line: line, column: 0 });
|
|
27
|
+
const headNode = context.sourceCode.getNodeByRangeIndex(headNodeIndex);
|
|
28
|
+
if (headNode === null)
|
|
29
|
+
return null; // For some reason, it seems to be null sometimes.
|
|
30
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
|
+
if (headNode.type === 'JSXText') {
|
|
32
|
+
const commentText = toCommentText({ type: 'Block', scope: 'next-line', ruleIds: ruleIdsToDisable, description });
|
|
33
|
+
return context.fixer.insertTextBeforeRange([headNodeIndex, headNodeIndex], '{' + commentText + '}\n');
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const commentText = toCommentText({ type: 'Line', scope: 'next-line', ruleIds: ruleIdsToDisable, description });
|
|
37
|
+
return context.fixer.insertTextBeforeRange([headNodeIndex, headNodeIndex], commentText + '\n');
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create fix to add disable comment per line.
|
|
43
|
+
*/
|
|
44
|
+
export function createFixToDisablePerLine(context, args) {
|
|
45
|
+
const lineToMessages = groupBy(context.messages, (message) => message.line);
|
|
46
|
+
const fixes = [];
|
|
47
|
+
for (const [line, messagesInLine] of lineToMessages) {
|
|
48
|
+
const fix = generateFixPerLine(context, args.description, line, messagesInLine);
|
|
49
|
+
if (fix)
|
|
50
|
+
fixes.push(fix);
|
|
51
|
+
}
|
|
52
|
+
return fixes;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=disable-per-line.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disable-per-line.js","sourceRoot":"","sources":["../../../src/plugin/fix/disable-per-line.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { type SuggestionFilter, type FixToApplySuggestionsArgs, createFixToApplySuggestions, } from './apply-suggestions.js';
|
|
2
|
+
export { type FixToApplyAutoFixesArgs, createFixToApplyAutoFixes } from './apply-auto-fixes.js';
|
|
3
|
+
export { type FixToDisablePerFileArgs, createFixToDisablePerFile } from './disable-per-file.js';
|
|
4
|
+
export { type FixToDisablePerLineArgs, createFixToDisablePerLine } from './disable-per-line.js';
|
|
5
|
+
export { type FixableMaker, type FixToMakeFixableAndFixArgs, createFixToMakeFixableAndFix, } from './make-fixable-and-fix.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugin/fix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,KAAK,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,KAAK,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { createFixToApplySuggestions, } from './apply-suggestions.js';
|
|
2
|
+
export { createFixToApplyAutoFixes } from './apply-auto-fixes.js';
|
|
3
|
+
export { createFixToDisablePerFile } from './disable-per-file.js';
|
|
4
|
+
export { createFixToDisablePerLine } from './disable-per-line.js';
|
|
5
|
+
export { createFixToMakeFixableAndFix, } from './make-fixable-and-fix.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugin/fix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAgC,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAgC,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAgC,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAGL,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Linter, Rule } from 'eslint';
|
|
2
|
+
import type { Node } from 'estree';
|
|
3
|
+
import { FixContext } from '../index.js';
|
|
4
|
+
export declare type FixableMaker = (message: Linter.LintMessage, node: Node | null, context: FixContext) => Rule.Fix | null | undefined;
|
|
5
|
+
export declare type FixToMakeFixableAndFixArgs = {
|
|
6
|
+
fixableMaker: FixableMaker;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Create fix to make fixable and fix.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createFixToMakeFixableAndFix(context: FixContext, args: FixToMakeFixableAndFixArgs): Rule.Fix[];
|
|
12
|
+
//# sourceMappingURL=make-fixable-and-fix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-fixable-and-fix.d.ts","sourceRoot":"","sources":["../../../src/plugin/fix/make-fixable-and-fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAc,MAAM,QAAQ,CAAC;AAElD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,oBAAY,YAAY,GAAG,CACzB,OAAO,EAAE,MAAM,CAAC,WAAW,EAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,EAAE,UAAU,KAChB,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;AAEjC,oBAAY,0BAA0B,GAAG;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAyDF;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,CAE9G"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { traverse } from 'estraverse';
|
|
2
|
+
import { unreachable } from '../../util/type-check.js';
|
|
3
|
+
/**
|
|
4
|
+
* Check the node is the source of the message.
|
|
5
|
+
*/
|
|
6
|
+
function isMessageSourceNode(sourceCode, node, message) {
|
|
7
|
+
if (message.nodeType === undefined)
|
|
8
|
+
return false;
|
|
9
|
+
// In some cases there may be no `endLine` or `endColumn`.
|
|
10
|
+
if (message.endLine === undefined || message.endColumn === undefined)
|
|
11
|
+
return false;
|
|
12
|
+
// If `nodeType` is exists, `range` must be exists.
|
|
13
|
+
if (node.range === undefined)
|
|
14
|
+
return unreachable();
|
|
15
|
+
const index = sourceCode.getIndexFromLoc({
|
|
16
|
+
line: message.line,
|
|
17
|
+
// NOTE: `column` of `ESLint.LintMessage` is 1-based, but `column` of `ESTree.Position` is 0-based.
|
|
18
|
+
column: message.column - 1,
|
|
19
|
+
});
|
|
20
|
+
const endIndex = sourceCode.getIndexFromLoc({
|
|
21
|
+
line: message.endLine,
|
|
22
|
+
// NOTE: `column` of `ESLint.LintMessage` is 1-based, but `column` of `ESTree.Position` is 0-based.
|
|
23
|
+
column: message.endColumn - 1,
|
|
24
|
+
});
|
|
25
|
+
const nodeType = message.nodeType;
|
|
26
|
+
return node.range[0] === index && node.range[1] === endIndex && node.type === nodeType;
|
|
27
|
+
}
|
|
28
|
+
function getMessageToSourceNode(sourceCode, messages) {
|
|
29
|
+
const result = new Map();
|
|
30
|
+
traverse(sourceCode.ast, {
|
|
31
|
+
// Required to traverse extension nodes such as `JSXElement`.
|
|
32
|
+
fallback: 'iteration',
|
|
33
|
+
enter(node) {
|
|
34
|
+
for (const message of messages) {
|
|
35
|
+
if (isMessageSourceNode(sourceCode, node, message)) {
|
|
36
|
+
result.set(message, node);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
43
|
+
function generateFixes(context, args) {
|
|
44
|
+
var _a;
|
|
45
|
+
const messageToNode = getMessageToSourceNode(context.sourceCode, context.messages);
|
|
46
|
+
const fixes = [];
|
|
47
|
+
for (const message of context.messages) {
|
|
48
|
+
const node = (_a = messageToNode.get(message)) !== null && _a !== void 0 ? _a : null;
|
|
49
|
+
const fix = args.fixableMaker(message, node, context);
|
|
50
|
+
if (fix)
|
|
51
|
+
fixes.push(fix);
|
|
52
|
+
}
|
|
53
|
+
return fixes;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create fix to make fixable and fix.
|
|
57
|
+
*/
|
|
58
|
+
export function createFixToMakeFixableAndFix(context, args) {
|
|
59
|
+
return generateFixes(context, args);
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=make-fixable-and-fix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"make-fixable-and-fix.js","sourceRoot":"","sources":["../../../src/plugin/fix/make-fixable-and-fix.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAavD;;GAEG;AACH,SAAS,mBAAmB,CAAC,UAAsB,EAAE,IAAU,EAAE,OAA2B;IAC1F,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAEjD,0DAA0D;IAC1D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACnF,mDAAmD;IACnD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,WAAW,EAAE,CAAC;IAEnD,MAAM,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC;QACvC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,mGAAmG;QACnG,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;KAC3B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;QAC1C,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,mGAAmG;QACnG,MAAM,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC;KAC9B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAElC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AACzF,CAAC;AAED,SAAS,sBAAsB,CAAC,UAAsB,EAAE,QAA8B;IACpF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEnD,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE;QACvB,6DAA6D;QAC7D,QAAQ,EAAE,WAAW;QACrB,KAAK,CAAC,IAAU;YACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;gBAC9B,IAAI,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;oBAClD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC3B;aACF;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB,EAAE,IAAgC;;IAC1E,MAAM,aAAa,GAAG,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnF,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;QACtC,MAAM,IAAI,GAAG,MAAA,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAI,IAAI,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAmB,EAAE,IAAgC;IAChG,OAAO,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ESLint, Rule } from 'eslint';
|
|
2
|
+
import { Fix } from './index.js';
|
|
3
|
+
export declare const OVERLAPPED_PROBLEM_MESSAGE = "overlapped";
|
|
4
|
+
export declare type FixRuleOption = {
|
|
5
|
+
ruleIds: string[];
|
|
6
|
+
results: ESLint.LintResult[];
|
|
7
|
+
fix: Fix;
|
|
8
|
+
};
|
|
9
|
+
export declare const fixRule: Rule.RuleModule;
|
|
10
|
+
//# sourceMappingURL=fix-rule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix-rule.d.ts","sourceRoot":"","sources":["../../src/plugin/fix-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAStC,OAAO,EAAE,GAAG,EAAc,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAyDvD,oBAAY,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,GAAG,EAAE,GAAG,CAAC;CACV,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,IAAI,CAAC,UAmE1B,CAAC"}
|