@promise-inc/ai-guard 0.1.1 → 0.1.3
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 -2
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +56 -8
- package/dist/utils/output.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -136,8 +136,9 @@ console.log(analysis.totalViolations); // number
|
|
|
136
136
|
|
|
137
137
|
| Package | Description |
|
|
138
138
|
|---------|-------------|
|
|
139
|
-
| [`@promise-inc/
|
|
140
|
-
| [`@promise-inc/
|
|
139
|
+
| [`@promise-inc/fs-guard`](https://www.npmjs.com/package/@promise-inc/fs-guard) | Validate project folder and file structure |
|
|
140
|
+
| [`@promise-inc/devlog`](https://www.npmjs.com/package/@promise-inc/devlog) | Logger with automatic context |
|
|
141
|
+
| [`@promise-inc/ui-states`](https://www.npmjs.com/package/@promise-inc/ui-states) | Auto-skeleton from real DOM |
|
|
141
142
|
|
|
142
143
|
## License
|
|
143
144
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,UAAU,CAAC;AAyDrD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAmD7D"}
|
package/dist/utils/output.js
CHANGED
|
@@ -4,27 +4,68 @@ exports.formatResult = formatResult;
|
|
|
4
4
|
const RED = '\x1b[31m';
|
|
5
5
|
const YELLOW = '\x1b[33m';
|
|
6
6
|
const GREEN = '\x1b[32m';
|
|
7
|
+
const CYAN = '\x1b[36m';
|
|
8
|
+
const BRIGHT_CYAN = '\x1b[96m';
|
|
9
|
+
const WHITE = '\x1b[37m';
|
|
7
10
|
const DIM = '\x1b[2m';
|
|
8
11
|
const BOLD = '\x1b[1m';
|
|
9
12
|
const RESET = '\x1b[0m';
|
|
13
|
+
const BG_RED = '\x1b[41m';
|
|
14
|
+
const BG_GREEN = '\x1b[42m';
|
|
10
15
|
function severityIcon(severity) {
|
|
11
16
|
return severity === 'error' ? `${RED}\u2716${RESET}` : `${YELLOW}\u26A0${RESET}`;
|
|
12
17
|
}
|
|
13
18
|
function severityColor(severity) {
|
|
14
19
|
return severity === 'error' ? RED : YELLOW;
|
|
15
20
|
}
|
|
16
|
-
function
|
|
21
|
+
function banner() {
|
|
17
22
|
const lines = [];
|
|
23
|
+
const title = [
|
|
24
|
+
' /$$$$$$ /$$$$$$ /$$$$$$ /$$',
|
|
25
|
+
'/$$__ $$|_ $$_/ /$$__ $$ | $$',
|
|
26
|
+
'| $$ \\ $$ | $$ | $$ \\__/ /$$ /$$ /$$$$$$ /$$$$$$ /$$$$$$$',
|
|
27
|
+
'| $$$$$$$$ | $$ | $$ /$$$$| $$ | $$ |____ $$ /$$__ $$ /$$__ $$',
|
|
28
|
+
'| $$__ $$ | $$ | $$|_ $$| $$ | $$ /$$$$$$$| $$ \\__/| $$ | $$',
|
|
29
|
+
'| $$ | $$ | $$ | $$ \\ $$| $$ | $$ /$$__ $$| $$ | $$ | $$',
|
|
30
|
+
'| $$ | $$ /$$$$$$ | $$$$$$/| $$$$$$/| $$$$$$$| $$ | $$$$$$$',
|
|
31
|
+
'|__/ |__/|______/ \\______/ \\______/ \\_______/|__/ \\_______/',
|
|
32
|
+
];
|
|
33
|
+
const subtitle = [
|
|
34
|
+
'\u258C \u2596\u2596 \u2598 \u2598 ',
|
|
35
|
+
'\u259B\u258C\u258C\u258C \u2599\u258C\u259B\u2598\u259B\u258C\u259B\u259B\u258C\u258C\u259B\u2598\u2588\u258C \u258C\u259B\u258C\u259B\u2598',
|
|
36
|
+
'\u2599\u258C\u2599\u258C \u258C \u258C \u2599\u258C\u258C\u258C\u258C\u258C\u2596\u258C\u2599\u2596\u2597 \u258C\u258C\u258C\u2599\u2596',
|
|
37
|
+
' \u2596\u258C',
|
|
38
|
+
];
|
|
39
|
+
lines.push('');
|
|
40
|
+
for (const line of title) {
|
|
41
|
+
lines.push(` ${BRIGHT_CYAN}${line}${RESET}`);
|
|
42
|
+
}
|
|
18
43
|
lines.push('');
|
|
19
|
-
|
|
44
|
+
for (const line of subtitle) {
|
|
45
|
+
lines.push(` ${DIM}${line}${RESET}`);
|
|
46
|
+
}
|
|
47
|
+
lines.push(` ${DIM}${'v0.1.0'.padStart(title[2].length)}${RESET}`);
|
|
20
48
|
lines.push('');
|
|
49
|
+
return lines;
|
|
50
|
+
}
|
|
51
|
+
function formatResult(analysis) {
|
|
52
|
+
const lines = [...banner()];
|
|
21
53
|
if (analysis.passed) {
|
|
22
|
-
lines.push(` ${
|
|
54
|
+
lines.push(` ${BG_GREEN}${WHITE}${BOLD} PASS ${RESET} ${GREEN}All files passed.${RESET} ${DIM}No AI-generated patterns detected.${RESET}`);
|
|
23
55
|
lines.push('');
|
|
24
56
|
return lines.join('\n');
|
|
25
57
|
}
|
|
58
|
+
const totalErrors = analysis.files.reduce((sum, f) => sum + f.violations.filter((v) => v.severity === 'error').length, 0);
|
|
59
|
+
const totalWarnings = analysis.files.reduce((sum, f) => sum + f.violations.filter((v) => v.severity === 'warning').length, 0);
|
|
26
60
|
for (const file of analysis.files) {
|
|
27
|
-
|
|
61
|
+
const fileErrors = file.violations.filter((v) => v.severity === 'error').length;
|
|
62
|
+
const fileWarnings = file.violations.filter((v) => v.severity === 'warning').length;
|
|
63
|
+
const counts = [];
|
|
64
|
+
if (fileErrors > 0)
|
|
65
|
+
counts.push(`${RED}${fileErrors} error${fileErrors > 1 ? 's' : ''}${RESET}`);
|
|
66
|
+
if (fileWarnings > 0)
|
|
67
|
+
counts.push(`${YELLOW}${fileWarnings} warning${fileWarnings > 1 ? 's' : ''}${RESET}`);
|
|
68
|
+
lines.push(` ${CYAN}${BOLD}\u25CF${RESET} ${BOLD}${file.filePath}${RESET} ${DIM}(${RESET}${counts.join(`${DIM}, ${RESET}`)}${DIM})${RESET}`);
|
|
28
69
|
for (const v of file.violations) {
|
|
29
70
|
const lineRef = v.line ? `${DIM}:${v.line}${RESET}` : '';
|
|
30
71
|
const icon = severityIcon(v.severity);
|
|
@@ -33,10 +74,17 @@ function formatResult(analysis) {
|
|
|
33
74
|
}
|
|
34
75
|
lines.push('');
|
|
35
76
|
}
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
77
|
+
lines.push(` ${DIM}\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500${RESET}`);
|
|
78
|
+
const badge = totalErrors > 0
|
|
79
|
+
? `${BG_RED}${WHITE}${BOLD} FAIL ${RESET}`
|
|
80
|
+
: `${YELLOW}${BOLD} WARN ${RESET}`;
|
|
81
|
+
const parts = [];
|
|
82
|
+
if (totalErrors > 0)
|
|
83
|
+
parts.push(`${RED}${BOLD}${totalErrors}${RESET} ${RED}error${totalErrors > 1 ? 's' : ''}${RESET}`);
|
|
84
|
+
if (totalWarnings > 0)
|
|
85
|
+
parts.push(`${YELLOW}${BOLD}${totalWarnings}${RESET} ${YELLOW}warning${totalWarnings > 1 ? 's' : ''}${RESET}`);
|
|
86
|
+
parts.push(`${DIM}in ${BOLD}${analysis.files.length}${RESET}${DIM} file${analysis.files.length > 1 ? 's' : ''}${RESET}`);
|
|
87
|
+
lines.push(` ${badge} ${parts.join(`${DIM} \u00B7 ${RESET}`)}`);
|
|
40
88
|
lines.push('');
|
|
41
89
|
return lines.join('\n');
|
|
42
90
|
}
|
package/dist/utils/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
|