@danielsitek/eslint-stats 0.2.0 → 0.3.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/README.md +3 -3
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +1 -1
- package/dist/utils/chart.d.ts +3 -3
- package/dist/utils/chart.d.ts.map +1 -1
- package/dist/utils/chart.js +23 -21
- package/dist/utils/chart.js.map +1 -1
- package/dist/utils/stats.d.ts +2 -2
- package/dist/utils/stats.d.ts.map +1 -1
- package/dist/utils/stats.js +4 -4
- package/dist/utils/stats.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://github.com/danielsitek/eslint-stats/releases)
|
|
6
6
|
[](https://www.npmjs.com/package/@danielsitek/eslint-stats)
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# Statistics Reporter for ESLint
|
|
9
9
|
|
|
10
10
|
Modern TypeScript formatters for ESLint with aggregated error and warning statistics. Analyzes files by error frequency rather than location, making it easier to prioritize fixes when introducing ESLint to existing projects.
|
|
11
11
|
|
|
@@ -28,7 +28,7 @@ npm install --save-dev @danielsitek/eslint-stats
|
|
|
28
28
|
|
|
29
29
|
## Usage with ESLint
|
|
30
30
|
|
|
31
|
-
Create file `stats.mjs`:
|
|
31
|
+
Create a file named `stats.mjs`:
|
|
32
32
|
|
|
33
33
|
```js
|
|
34
34
|
import { byErrorAndWarning } from "@danielsitek/eslint-stats/by-error-and-warning";
|
|
@@ -56,7 +56,7 @@ Displays aggregated statistics for both errors and warnings without file separat
|
|
|
56
56
|
|
|
57
57
|
### by-error-and-warning-stacked
|
|
58
58
|
|
|
59
|
-
Similar to by-error-and-warning but displays errors and warnings stacked together when a rule has both severities across different files.
|
|
59
|
+
Similar to `by-error-and-warning` but displays errors and warnings stacked together when a rule has both severities across different files.
|
|
60
60
|
|
|
61
61
|
### by-folder
|
|
62
62
|
|
package/dist/index.d.ts
CHANGED
|
@@ -3,12 +3,4 @@ export declare const byWarning: string;
|
|
|
3
3
|
export declare const byErrorAndWarning: string;
|
|
4
4
|
export declare const byErrorAndWarningStacked: string;
|
|
5
5
|
export declare const byFolder: string;
|
|
6
|
-
declare const _default: {
|
|
7
|
-
byError: string;
|
|
8
|
-
byWarning: string;
|
|
9
|
-
byErrorAndWarning: string;
|
|
10
|
-
byErrorAndWarningStacked: string;
|
|
11
|
-
byFolder: string;
|
|
12
|
-
};
|
|
13
|
-
export default _default;
|
|
14
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,OAAO,QAA+B,CAAC;AACpD,eAAO,MAAM,SAAS,QAAiC,CAAC;AACxD,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,wBAAwB,QAEpC,CAAC;AACF,eAAO,MAAM,QAAQ,QAAgC,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,OAAO,QAA+B,CAAC;AACpD,eAAO,MAAM,SAAS,QAAiC,CAAC;AACxD,eAAO,MAAM,iBAAiB,QAA2C,CAAC;AAC1E,eAAO,MAAM,wBAAwB,QAEpC,CAAC;AACF,eAAO,MAAM,QAAQ,QAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,11 +7,4 @@ export const byWarning = getFormatterPath("by-warning");
|
|
|
7
7
|
export const byErrorAndWarning = getFormatterPath("by-error-and-warning");
|
|
8
8
|
export const byErrorAndWarningStacked = getFormatterPath("by-error-and-warning-stacked");
|
|
9
9
|
export const byFolder = getFormatterPath("by-folder");
|
|
10
|
-
export default {
|
|
11
|
-
byError,
|
|
12
|
-
byWarning,
|
|
13
|
-
byErrorAndWarning,
|
|
14
|
-
byErrorAndWarningStacked,
|
|
15
|
-
byFolder,
|
|
16
|
-
};
|
|
17
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":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAErD,OAAO,IAAI,CACT,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAC1C,YAAY,EACZ,GAAG,SAAS,KAAK,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CACtD,8BAA8B,CAC/B,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAErD,OAAO,IAAI,CACT,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAC1C,YAAY,EACZ,GAAG,SAAS,KAAK,CAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;AACpD,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;AAC1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CACtD,8BAA8B,CAC/B,CAAC;AACF,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC"}
|
package/dist/utils/chart.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RuleStats, FolderStats } from "../types/types.js";
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
4
|
-
export declare
|
|
2
|
+
export declare const getObjectOutput: (stats: RuleStats, maxWidth: number) => string;
|
|
3
|
+
export declare const getStackedOutput: (stats: RuleStats, maxWidth: number) => string;
|
|
4
|
+
export declare const getOutputByFolder: (stats: FolderStats, maxWidth: number) => string;
|
|
5
5
|
//# sourceMappingURL=chart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/utils/chart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAiB,MAAM,mBAAmB,CAAC;AAiC/E,
|
|
1
|
+
{"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../src/utils/chart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAiB,MAAM,mBAAmB,CAAC;AAiC/E,eAAO,MAAM,eAAe,GAAI,OAAO,SAAS,EAAE,UAAU,MAAM,KAAG,MAuCpE,CAAC;AAQF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,SAAS,EAChB,UAAU,MAAM,KACf,MAiEF,CAAC;AAOF,eAAO,MAAM,iBAAiB,GAC5B,OAAO,WAAW,EAClB,UAAU,MAAM,KACf,MAUF,CAAC"}
|
package/dist/utils/chart.js
CHANGED
|
@@ -5,12 +5,12 @@ const barColors = {
|
|
|
5
5
|
warning: "yellow",
|
|
6
6
|
};
|
|
7
7
|
const allSeverities = ["error", "warning"];
|
|
8
|
-
|
|
9
|
-
return
|
|
10
|
-
}
|
|
11
|
-
|
|
8
|
+
const getMaxRuleLength = (stats) => {
|
|
9
|
+
return Object.keys(stats).reduce((max, key) => Math.max(max, key.length), 0);
|
|
10
|
+
};
|
|
11
|
+
const getStringLength = (num) => {
|
|
12
12
|
return String(num).length;
|
|
13
|
-
}
|
|
13
|
+
};
|
|
14
14
|
const getBarRatio = (usedColumns, maxResult, maxWidth) => {
|
|
15
15
|
const maxBarLength = maxWidth - usedColumns;
|
|
16
16
|
return maxResult <= maxBarLength ? 1 : maxBarLength / maxResult;
|
|
@@ -20,12 +20,12 @@ const sortByKey = (obj) => {
|
|
|
20
20
|
.sort(([a], [b]) => a.localeCompare(b))
|
|
21
21
|
.map(([, value]) => value);
|
|
22
22
|
};
|
|
23
|
-
export
|
|
23
|
+
export const getObjectOutput = (stats, maxWidth) => {
|
|
24
24
|
const maxRuleLength = getMaxRuleLength(stats);
|
|
25
|
-
const maxResult =
|
|
26
|
-
ruleStats.error ?? 0,
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
const maxResult = Object.values(stats).reduce((max, ruleStats) => {
|
|
26
|
+
const currentMax = Math.max(ruleStats.error ?? 0, ruleStats.warning ?? 0);
|
|
27
|
+
return Math.max(max, currentMax);
|
|
28
|
+
}, 0);
|
|
29
29
|
const maxResultLength = String(maxResult).length;
|
|
30
30
|
const barRatio = getBarRatio(maxRuleLength + maxResultLength + 3, maxResult, maxWidth);
|
|
31
31
|
const getRuleOutput = (ruleStats, ruleName) => {
|
|
@@ -43,11 +43,11 @@ export function getObjectOutput(stats, maxWidth) {
|
|
|
43
43
|
getRuleOutput(ruleStats, ruleName),
|
|
44
44
|
]));
|
|
45
45
|
return `${sortByKey(mappedStats).join("\n")}\n`;
|
|
46
|
-
}
|
|
47
|
-
|
|
46
|
+
};
|
|
47
|
+
const isAnyRuleStacked = (stats) => {
|
|
48
48
|
return Object.values(stats).some((ruleData) => Object.keys(ruleData).length > 1);
|
|
49
|
-
}
|
|
50
|
-
export
|
|
49
|
+
};
|
|
50
|
+
export const getStackedOutput = (stats, maxWidth) => {
|
|
51
51
|
if (!isAnyRuleStacked(stats)) {
|
|
52
52
|
return getObjectOutput(stats, maxWidth);
|
|
53
53
|
}
|
|
@@ -58,16 +58,18 @@ export function getStackedOutput(stats, maxWidth) {
|
|
|
58
58
|
const maxRuleLength = getMaxRuleLength(normalizedStats);
|
|
59
59
|
const maxResults = {};
|
|
60
60
|
for (const severity of allSeverities) {
|
|
61
|
-
maxResults[severity] =
|
|
61
|
+
maxResults[severity] = Object.values(stats).reduce((max, s) => {
|
|
62
62
|
const val = severity === "error" ? s.error : s.warning;
|
|
63
|
-
return val ?? 0;
|
|
64
|
-
})
|
|
63
|
+
return Math.max(max, val ?? 0);
|
|
64
|
+
}, 0);
|
|
65
65
|
}
|
|
66
66
|
const maxResultLengths = Object.fromEntries(Object.entries(maxResults).map(([key, value]) => [
|
|
67
67
|
key,
|
|
68
68
|
getStringLength(value),
|
|
69
69
|
]));
|
|
70
|
-
const maxRuleSum =
|
|
70
|
+
const maxRuleSum = Object.values(normalizedStats).reduce((max, x) => {
|
|
71
|
+
return Math.max(max, x.error + x.warning);
|
|
72
|
+
}, 0);
|
|
71
73
|
const barRatio = getBarRatio(maxRuleLength +
|
|
72
74
|
Object.values(maxResultLengths).reduce((a, b) => a + b, 0) +
|
|
73
75
|
4, maxRuleSum, maxWidth);
|
|
@@ -87,12 +89,12 @@ export function getStackedOutput(stats, maxWidth) {
|
|
|
87
89
|
return `${ruleCell}${countCell}|${barCell}`;
|
|
88
90
|
})
|
|
89
91
|
.join("\n")}\n`;
|
|
90
|
-
}
|
|
92
|
+
};
|
|
91
93
|
const getFolderOutput = (maxWidth) => (folderStats, folderName) => `${underline(`${folderName}:`)}\n${getObjectOutput(folderStats, maxWidth)}`;
|
|
92
|
-
export
|
|
94
|
+
export const getOutputByFolder = (stats, maxWidth) => {
|
|
93
95
|
const filteredStats = Object.fromEntries(Object.entries(stats).filter(([, value]) => Object.keys(value).length > 0));
|
|
94
96
|
return Object.entries(filteredStats)
|
|
95
97
|
.map(([folderName, folderStats]) => getFolderOutput(maxWidth)(folderStats, folderName))
|
|
96
98
|
.join("");
|
|
97
|
-
}
|
|
99
|
+
};
|
|
98
100
|
//# sourceMappingURL=chart.js.map
|
package/dist/utils/chart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart.js","sourceRoot":"","sources":["../../src/utils/chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,KAAc;IACrB,OAAO,EAAE,QAAiB;CAC3B,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,SAAS,CAAU,CAAC;AAEpD,
|
|
1
|
+
{"version":3,"file":"chart.js","sourceRoot":"","sources":["../../src/utils/chart.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/stats.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { LintResult, RuleStats, FolderStats, SeverityLevel } from "../types/types.js";
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
2
|
+
export declare const byRule: (results: LintResult[], severity?: SeverityLevel) => RuleStats;
|
|
3
|
+
export declare const byFolderAndRule: (results: LintResult[], severity?: SeverityLevel) => FolderStats;
|
|
4
4
|
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/utils/stats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,mBAAmB,CAAC;AA0C3B,
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/utils/stats.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EAEV,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,mBAAmB,CAAC;AA0C3B,eAAO,MAAM,MAAM,GACjB,SAAS,UAAU,EAAE,EACrB,WAAW,aAAa,KACvB,SAQF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,UAAU,EAAE,EACrB,WAAW,aAAa,KACvB,WAkBF,CAAC"}
|
package/dist/utils/stats.js
CHANGED
|
@@ -25,14 +25,14 @@ const getDirName = (result) => {
|
|
|
25
25
|
const dirname = path.dirname(result.filePath);
|
|
26
26
|
return dirname === "." ? "Base Folder" : dirname;
|
|
27
27
|
};
|
|
28
|
-
export
|
|
28
|
+
export const byRule = (results, severity) => {
|
|
29
29
|
const stats = {};
|
|
30
30
|
for (const result of results) {
|
|
31
31
|
loopOverMessages(stats, result, severity);
|
|
32
32
|
}
|
|
33
33
|
return stats;
|
|
34
|
-
}
|
|
35
|
-
export
|
|
34
|
+
};
|
|
35
|
+
export const byFolderAndRule = (results, severity) => {
|
|
36
36
|
const stats = {};
|
|
37
37
|
for (const result of results) {
|
|
38
38
|
if (result.messages.length === 0) {
|
|
@@ -45,5 +45,5 @@ export function byFolderAndRule(results, severity) {
|
|
|
45
45
|
loopOverMessages(stats[folderName], result, severity);
|
|
46
46
|
}
|
|
47
47
|
return stats;
|
|
48
|
-
}
|
|
48
|
+
};
|
|
49
49
|
//# sourceMappingURL=stats.js.map
|
package/dist/utils/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/utils/stats.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,OAAoB,EAAW,EAAE;IACxD,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,WAAsB,EACtB,MAAkB,EAClB,QAAwB,EAClB,EAAE;IACR,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC;IAE5C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,YAAY,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;QAC/B,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAGpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAkB,EAAU,EAAE;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/utils/stats.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAQ7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,eAAe,GAAG,CAAC,OAAoB,EAAW,EAAE;IACxD,OAAO,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,WAAsB,EACtB,MAAkB,EAClB,QAAwB,EAClB,EAAE;IACR,MAAM,YAAY,GAAG,QAAQ,KAAK,SAAS,CAAC;IAE5C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,IAAI,YAAY,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClD,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAO,CAAC;QAC/B,IAAI,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAGpC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpD,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,MAAkB,EAAU,EAAE;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE9C,OAAO,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,OAAqB,EACrB,QAAwB,EACb,EAAE;IACb,MAAM,KAAK,GAAc,EAAE,CAAC;IAE5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAqB,EACrB,QAAwB,EACX,EAAE;IACf,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danielsitek/eslint-stats",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Modern TypeScript formatters for ESLint with aggregated error/warning statistics and visual graphs - Zero dependencies",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|