@extenshi/cli 0.5.1 → 0.5.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/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +57 -60
- package/dist/cli.js.map +1 -1
- package/dist/compliance-review.d.ts +53 -0
- package/dist/compliance-review.d.ts.map +1 -0
- package/dist/compliance-review.js +87 -0
- package/dist/compliance-review.js.map +1 -0
- package/dist/html-report.d.ts.map +1 -1
- package/dist/html-report.js +64 -1
- package/dist/html-report.js.map +1 -1
- package/dist/publish.d.ts.map +1 -1
- package/dist/publish.js +29 -18
- package/dist/publish.js.map +1 -1
- package/dist/render.d.ts +28 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +111 -0
- package/dist/render.js.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +55 -1
- package/dist/report.js.map +1 -1
- package/dist/scan.d.ts +14 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +39 -3
- package/dist/scan.js.map +1 -1
- package/dist/telemetry.d.ts +62 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +259 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/validate-artifact.d.ts +27 -0
- package/dist/validate-artifact.d.ts.map +1 -0
- package/dist/validate-artifact.js +94 -0
- package/dist/validate-artifact.js.map +1 -0
- package/package.json +5 -2
- package/scripts/postinstall.cjs +132 -0
package/dist/cli.d.ts
CHANGED
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
* └─ POST /api/v1/scan (multipart, timeout 240s)
|
|
16
16
|
* └─ emit findings per --format: html (branded report file, opened in
|
|
17
17
|
* the browser; default) · json (raw JSON to stdout) · stdout (pretty)
|
|
18
|
+
*
|
|
19
|
+
* Every command runs inside runCommand(), which emits anonymous, opt-out
|
|
20
|
+
* telemetry (which command, success/failure, coarse error_kind) and flushes it
|
|
21
|
+
* before the process exits. See telemetry.ts — disabled by default until a
|
|
22
|
+
* PostHog key is configured, and a no-op under DO_NOT_TRACK / EXTENSHI_TELEMETRY=0.
|
|
18
23
|
*/
|
|
19
24
|
export {};
|
|
20
25
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG"}
|
package/dist/cli.js
CHANGED
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
* └─ POST /api/v1/scan (multipart, timeout 240s)
|
|
16
16
|
* └─ emit findings per --format: html (branded report file, opened in
|
|
17
17
|
* the browser; default) · json (raw JSON to stdout) · stdout (pretty)
|
|
18
|
+
*
|
|
19
|
+
* Every command runs inside runCommand(), which emits anonymous, opt-out
|
|
20
|
+
* telemetry (which command, success/failure, coarse error_kind) and flushes it
|
|
21
|
+
* before the process exits. See telemetry.ts — disabled by default until a
|
|
22
|
+
* PostHog key is configured, and a no-op under DO_NOT_TRACK / EXTENSHI_TELEMETRY=0.
|
|
18
23
|
*/
|
|
19
24
|
import { createRequire } from 'node:module';
|
|
20
25
|
import * as readline from 'node:readline/promises';
|
|
@@ -24,6 +29,7 @@ import { loadConfig, saveConfig } from './config.js';
|
|
|
24
29
|
import { runPublish } from './publish.js';
|
|
25
30
|
import { runReviewRisk } from './review-risk.js';
|
|
26
31
|
import { runScan } from './scan.js';
|
|
32
|
+
import { captureError, captureEvent, classifyError, flagsFromArgv, flushTelemetry, initTelemetry, } from './telemetry.js';
|
|
27
33
|
const MISSING_KEY_HELP = 'Error: API key not found.\n' +
|
|
28
34
|
'Provide it in any of these ways:\n' +
|
|
29
35
|
' • run: extenshi login\n' +
|
|
@@ -32,6 +38,37 @@ const MISSING_KEY_HELP = 'Error: API key not found.\n' +
|
|
|
32
38
|
'Get an API key at https://dojo.extenshi.io/billing';
|
|
33
39
|
const _require = createRequire(import.meta.url);
|
|
34
40
|
const pkg = _require('../package.json');
|
|
41
|
+
initTelemetry({ surface: 'cli', version: pkg.version });
|
|
42
|
+
/**
|
|
43
|
+
* Run a command body with one lifecycle: emit started → run → emit
|
|
44
|
+
* succeeded/failed (+ exception) → flush telemetry → (on error) print and exit.
|
|
45
|
+
* Centralizing it means flush always runs BEFORE process.exit, so the buffered
|
|
46
|
+
* events aren't dropped. Validation paths inside the body just `throw` — they
|
|
47
|
+
* surface here as a normal failure with the same user-facing message.
|
|
48
|
+
*/
|
|
49
|
+
async function runCommand(command, action) {
|
|
50
|
+
const startedAt = Date.now();
|
|
51
|
+
captureEvent('cli_command_started', { command, flags: flagsFromArgv() });
|
|
52
|
+
try {
|
|
53
|
+
await action();
|
|
54
|
+
captureEvent('cli_command_succeeded', { command, duration_ms: Date.now() - startedAt });
|
|
55
|
+
await flushTelemetry();
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
captureEvent('cli_command_failed', {
|
|
59
|
+
command,
|
|
60
|
+
error_kind: classifyError(err),
|
|
61
|
+
duration_ms: Date.now() - startedAt,
|
|
62
|
+
});
|
|
63
|
+
captureError(err, { command });
|
|
64
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
65
|
+
// Multi-line messages (help blocks like MISSING_KEY_HELP) are printed
|
|
66
|
+
// as-is; bare single-line messages get the "Error: " prefix.
|
|
67
|
+
console.error(msg.includes('\n') ? msg : `Error: ${msg}`);
|
|
68
|
+
await flushTelemetry();
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
35
72
|
program
|
|
36
73
|
.name('extenshi')
|
|
37
74
|
.description('Pre-publish security scanner for browser extensions')
|
|
@@ -49,12 +86,12 @@ program
|
|
|
49
86
|
.option('--api-url <url>', 'Override the scan API base URL (default: https://scan.extenshi.io)')
|
|
50
87
|
.option('--report <path>', 'Also write a formatted report file (Markdown by default; .json extension writes raw JSON). Composes with --format.')
|
|
51
88
|
.option('--report-format <md|json>', 'Force the --report file format instead of inferring from the path extension')
|
|
89
|
+
.option('--exclude-compliance-review', 'Skip the pre-publish store review prediction (REJECTED / ATTRITION / SLOW) that scan runs by default and folds into the report')
|
|
52
90
|
.action(async (artifact, opts) => {
|
|
53
|
-
|
|
91
|
+
await runCommand('scan', async () => {
|
|
54
92
|
const config = await loadConfig(opts.apiUrl);
|
|
55
93
|
if (!config.apiKey) {
|
|
56
|
-
|
|
57
|
-
process.exit(1);
|
|
94
|
+
throw new Error(MISSING_KEY_HELP);
|
|
58
95
|
}
|
|
59
96
|
// Auto-update check (fail-soft — never blocks scan)
|
|
60
97
|
await checkAutoUpdate();
|
|
@@ -62,8 +99,7 @@ program
|
|
|
62
99
|
if (opts.reportFormat !== undefined) {
|
|
63
100
|
const fmt = opts.reportFormat.trim().toLowerCase();
|
|
64
101
|
if (fmt !== 'md' && fmt !== 'json') {
|
|
65
|
-
|
|
66
|
-
process.exit(1);
|
|
102
|
+
throw new Error('--report-format must be "md" or "json".');
|
|
67
103
|
}
|
|
68
104
|
reportFormat = fmt;
|
|
69
105
|
}
|
|
@@ -73,12 +109,10 @@ program
|
|
|
73
109
|
if (opts.format !== undefined) {
|
|
74
110
|
const f = opts.format.trim().toLowerCase();
|
|
75
111
|
if (f !== 'html' && f !== 'json' && f !== 'stdout') {
|
|
76
|
-
|
|
77
|
-
process.exit(1);
|
|
112
|
+
throw new Error('--format must be one of: html, json, stdout.');
|
|
78
113
|
}
|
|
79
114
|
if (opts.json && f !== 'json') {
|
|
80
|
-
|
|
81
|
-
process.exit(1);
|
|
115
|
+
throw new Error(`--json conflicts with --format ${f}. Use one or the other.`);
|
|
82
116
|
}
|
|
83
117
|
format = f;
|
|
84
118
|
}
|
|
@@ -103,17 +137,11 @@ program
|
|
|
103
137
|
reportPath: opts.report,
|
|
104
138
|
reportFormat,
|
|
105
139
|
cliVersion: pkg.version,
|
|
140
|
+
// Pre-publish review-risk runs by default; --exclude-compliance-review opts out.
|
|
141
|
+
excludeComplianceReview: opts.excludeComplianceReview ?? false,
|
|
142
|
+
bffUrl: config.bffUrl,
|
|
106
143
|
});
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
if (err instanceof Error) {
|
|
110
|
-
console.error(`Error: ${err.message}`);
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
113
|
-
console.error('Unexpected error:', err);
|
|
114
|
-
}
|
|
115
|
-
process.exit(1);
|
|
116
|
-
}
|
|
144
|
+
});
|
|
117
145
|
});
|
|
118
146
|
program
|
|
119
147
|
.command('publish <artifact>')
|
|
@@ -129,7 +157,7 @@ program
|
|
|
129
157
|
.option('--extension-id <id>', 'Numeric catalog ID — checks publish-beta access against this specific extension')
|
|
130
158
|
.option('--json', 'Output raw JSON result')
|
|
131
159
|
.action(async (artifact, opts) => {
|
|
132
|
-
|
|
160
|
+
await runCommand('publish', async () => {
|
|
133
161
|
// Pick up store credentials + the API key / BFF URL (loadConfig also
|
|
134
162
|
// loads a local .env), same sources as the scan config.
|
|
135
163
|
const config = await loadConfig();
|
|
@@ -140,15 +168,13 @@ program
|
|
|
140
168
|
.filter(Boolean);
|
|
141
169
|
const valid = new Set(['chrome', 'firefox', 'edge']);
|
|
142
170
|
if (stores?.some((s) => !valid.has(s))) {
|
|
143
|
-
|
|
144
|
-
process.exit(1);
|
|
171
|
+
throw new Error(`unknown store in --stores (allowed: chrome, firefox, edge)`);
|
|
145
172
|
}
|
|
146
173
|
let extensionId;
|
|
147
174
|
if (opts.extensionId !== undefined) {
|
|
148
175
|
extensionId = Number.parseInt(opts.extensionId, 10);
|
|
149
176
|
if (!Number.isFinite(extensionId)) {
|
|
150
|
-
|
|
151
|
-
process.exit(1);
|
|
177
|
+
throw new Error('--extension-id must be a numeric catalog ID');
|
|
152
178
|
}
|
|
153
179
|
}
|
|
154
180
|
await runPublish({
|
|
@@ -163,16 +189,7 @@ program
|
|
|
163
189
|
apiKey: config.apiKey,
|
|
164
190
|
extensionId,
|
|
165
191
|
});
|
|
166
|
-
}
|
|
167
|
-
catch (err) {
|
|
168
|
-
if (err instanceof Error) {
|
|
169
|
-
console.error(`Error: ${err.message}`);
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
console.error('Unexpected error:', err);
|
|
173
|
-
}
|
|
174
|
-
process.exit(1);
|
|
175
|
-
}
|
|
192
|
+
});
|
|
176
193
|
});
|
|
177
194
|
program
|
|
178
195
|
.command('review-risk <artifact>')
|
|
@@ -184,7 +201,7 @@ program
|
|
|
184
201
|
.option('--store <store>', 'Store to diff the manifest against: chrome | firefox | edge (default: chrome). Permission sets differ per store.')
|
|
185
202
|
.option('--json', 'Output raw JSON findings')
|
|
186
203
|
.action(async (artifact, opts) => {
|
|
187
|
-
|
|
204
|
+
await runCommand('review-risk', async () => {
|
|
188
205
|
// Default to CHROME — this tool is Chrome-Web-Store-centric, and pinning
|
|
189
206
|
// the store avoids diffing against another store's snapshot.
|
|
190
207
|
const storeMap = {
|
|
@@ -194,8 +211,7 @@ program
|
|
|
194
211
|
};
|
|
195
212
|
const store = storeMap[(opts.store ?? 'chrome').toLowerCase()];
|
|
196
213
|
if (!store) {
|
|
197
|
-
|
|
198
|
-
process.exit(1);
|
|
214
|
+
throw new Error('--store must be one of: chrome, firefox, edge');
|
|
199
215
|
}
|
|
200
216
|
// The API key is OPTIONAL here — local checks need no network, and the
|
|
201
217
|
// manifest diff only uses the key if the catalog read path is gated.
|
|
@@ -209,16 +225,7 @@ program
|
|
|
209
225
|
store,
|
|
210
226
|
outputJson: opts.json ?? false,
|
|
211
227
|
});
|
|
212
|
-
}
|
|
213
|
-
catch (err) {
|
|
214
|
-
if (err instanceof Error) {
|
|
215
|
-
console.error(`Error: ${err.message}`);
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
console.error('Unexpected error:', err);
|
|
219
|
-
}
|
|
220
|
-
process.exit(1);
|
|
221
|
-
}
|
|
228
|
+
});
|
|
222
229
|
});
|
|
223
230
|
program
|
|
224
231
|
.command('login')
|
|
@@ -226,7 +233,7 @@ program
|
|
|
226
233
|
.option('--api-key <key>', 'API key (skips the interactive prompt)')
|
|
227
234
|
.option('--api-url <url>', 'Override the scan API base URL')
|
|
228
235
|
.action(async (opts) => {
|
|
229
|
-
|
|
236
|
+
await runCommand('login', async () => {
|
|
230
237
|
let apiKey = opts.apiKey?.trim();
|
|
231
238
|
if (!apiKey) {
|
|
232
239
|
const rl = readline.createInterface({
|
|
@@ -237,21 +244,11 @@ program
|
|
|
237
244
|
rl.close();
|
|
238
245
|
}
|
|
239
246
|
if (!apiKey) {
|
|
240
|
-
|
|
241
|
-
process.exit(1);
|
|
247
|
+
throw new Error('no API key provided.');
|
|
242
248
|
}
|
|
243
249
|
const savedPath = saveConfig({ apiKey, apiUrl: opts.apiUrl });
|
|
244
250
|
console.error(`✓ API key saved to ${savedPath}`);
|
|
245
|
-
}
|
|
246
|
-
catch (err) {
|
|
247
|
-
if (err instanceof Error) {
|
|
248
|
-
console.error(`Error: ${err.message}`);
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
console.error('Unexpected error:', err);
|
|
252
|
-
}
|
|
253
|
-
process.exit(1);
|
|
254
|
-
}
|
|
251
|
+
});
|
|
255
252
|
});
|
|
256
253
|
program.parse();
|
|
257
254
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,GACb,MAAM,gBAAgB,CAAA;AAEvB,MAAM,gBAAgB,GACrB,6BAA6B;IAC7B,oCAAoC;IACpC,2BAA2B;IAC3B,qDAAqD;IACrD,iEAAiE;IACjE,oDAAoD,CAAA;AAErD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,CAAwB,CAAA;AAE9D,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;AAEvD;;;;;;GAMG;AACH,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,MAA2B;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC5B,YAAY,CAAC,qBAAqB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;IACxE,IAAI,CAAC;QACJ,MAAM,MAAM,EAAE,CAAA;QACd,YAAY,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;QACvF,MAAM,cAAc,EAAE,CAAA;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,YAAY,CAAC,oBAAoB,EAAE;YAClC,OAAO;YACP,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC;YAC9B,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC,CAAA;QACF,YAAY,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9B,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,sEAAsE;QACtE,6DAA6D;QAC7D,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAA;QACzD,MAAM,cAAc,EAAE,CAAA;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChB,CAAC;AACF,CAAC;AAED,OAAO;KACL,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,qDAAqD,CAAC;KAClE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AAEtB,OAAO;KACL,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CACN,6BAA6B,EAC7B,2LAA2L,CAC3L;KACA,MAAM,CACN,iBAAiB,EACjB,uHAAuH,CACvH;KACA,MAAM,CAAC,WAAW,EAAE,gEAAgE,CAAC;KACrF,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACnE,MAAM,CACN,qBAAqB,EACrB,yIAAyI,CACzI;KACA,MAAM,CAAC,kBAAkB,EAAE,yDAAyD,CAAC;KACrF,MAAM,CAAC,aAAa,EAAE,wEAAwE,CAAC;KAC/F,MAAM,CAAC,iBAAiB,EAAE,oEAAoE,CAAC;KAC/F,MAAM,CACN,iBAAiB,EACjB,oHAAoH,CACpH;KACA,MAAM,CACN,2BAA2B,EAC3B,6EAA6E,CAC7E;KACA,MAAM,CACN,6BAA6B,EAC7B,gIAAgI,CAChI;KACA,MAAM,CACN,KAAK,EACJ,QAAgB,EAChB,IAYC,EACA,EAAE;IACH,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE5C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QAClC,CAAC;QAED,oDAAoD;QACpD,MAAM,eAAe,EAAE,CAAA;QAEvB,IAAI,YAAuC,CAAA;QAC3C,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAClD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC3D,CAAC;YACD,YAAY,GAAG,GAAG,CAAA;QACnB,CAAC;QAED,gEAAgE;QAChE,4DAA4D;QAC5D,IAAI,MAAkC,CAAA;QACtC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAA;YAC9E,CAAC;YACD,MAAM,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACrC,CAAC;QAED,oEAAoE;QACpE,uEAAuE;QACvE,kEAAkE;QAClE,MAAM,UAAU,GAAG,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;QAE9E,MAAM,OAAO,CAAC;YACb,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,UAAU;YACV,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK;YAC1C,mEAAmE;YACnE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;YAC3B,UAAU,EAAE,IAAI,CAAC,MAAM;YACvB,YAAY;YACZ,UAAU,EAAE,GAAG,CAAC,OAAO;YACvB,iFAAiF;YACjF,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,IAAI,KAAK;YAC9D,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,OAAO;KACL,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CACX,kFAAkF;IACjF,2FAA2F;IAC3F,4FAA4F;IAC5F,iDAAiD,CAClD;KACA,MAAM,CACN,iBAAiB,EACjB,8FAA8F,CAC9F;KACA,MAAM,CAAC,2BAA2B,EAAE,wDAAwD,CAAC;KAC7F,MAAM,CAAC,wBAAwB,EAAE,iDAAiD,CAAC;KACnF,MAAM,CAAC,YAAY,EAAE,kDAAkD,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CACN,qBAAqB,EACrB,iFAAiF,CACjF;KACA,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC;KAC1C,MAAM,CACN,KAAK,EACJ,QAAgB,EAChB,IAQC,EACA,EAAE;IACH,MAAM,UAAU,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACtC,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QACjC,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;YACzB,EAAE,KAAK,CAAC,GAAG,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;QACpD,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;QAC9E,CAAC;QAED,IAAI,WAA+B,CAAA;QACnC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAC/D,CAAC;QACF,CAAC;QAED,MAAM,UAAU,CAAC;YAChB,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,MAAuD;YAC/D,mBAAmB,EAAE,IAAI,CAAC,eAAe;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;YACpC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW;SACX,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,OAAO;KACL,OAAO,CAAC,wBAAwB,CAAC;KACjC,WAAW,CACX,qFAAqF;IACpF,gFAAgF;IAChF,4FAA4F,CAC7F;KACA,MAAM,CACN,qBAAqB,EACrB,gHAAgH,CAChH;KACA,MAAM,CAAC,qBAAqB,EAAE,sEAAsE,CAAC;KACrG,MAAM,CACN,iBAAiB,EACjB,kHAAkH,CAClH;KACA,MAAM,CAAC,QAAQ,EAAE,0BAA0B,CAAC;KAC5C,MAAM,CACN,KAAK,EACJ,QAAgB,EAChB,IAKC,EACA,EAAE;IACH,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC1C,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,QAAQ,GAAkD;YAC/D,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,MAAM;SACZ,CAAA;QACD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;QAC9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACjE,CAAC;QAED,uEAAuE;QACvE,qEAAqE;QACrE,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;QACjC,MAAM,eAAe,EAAE,CAAA;QAEvB,MAAM,aAAa,CAAC;YACnB,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACzE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;YAClC,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;SAC9B,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACH,CAAC,CACD,CAAA;AAEF,OAAO;KACL,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uDAAuD,CAAC;KACpE,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;KACnE,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,IAA0C,EAAE,EAAE;IAC5D,MAAM,UAAU,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACpC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAA;QAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBACnC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC,CAAA;YACF,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACzD,EAAE,CAAC,KAAK,EAAE,CAAA;QACX,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACxC,CAAC;QAED,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7D,OAAO,CAAC,KAAK,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA;AAEH,OAAO,CAAC,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scan add-on — run the offline pre-publish review-risk checks over the SAME
|
|
3
|
+
* artifact `extenshi scan` uploads, and fold the result into the scan report.
|
|
4
|
+
*
|
|
5
|
+
* `extenshi scan` runs this BY DEFAULT (disable with --exclude-compliance-review)
|
|
6
|
+
* so one scan answers both questions at once:
|
|
7
|
+
* - "is this code dangerous?" → the server-side security scanners
|
|
8
|
+
* - "will the store reject / → these checks (REJECTED / ATTRITION /
|
|
9
|
+
* slow-walk / silently disable?" SLOW), identical to `review-risk`.
|
|
10
|
+
*
|
|
11
|
+
* Reuses the exact `review-risk` pipeline: review-archive (extract) → review-catalog
|
|
12
|
+
* (optional manifest diff, only when --extension-id is given) → review-checks (pure
|
|
13
|
+
* rules) → summarize. Fully fail-soft: any extraction / parse / network problem
|
|
14
|
+
* resolves to `{ available: false, reason }` so the scan itself never breaks.
|
|
15
|
+
*
|
|
16
|
+
* The result is attached to the scan body under the `complianceReview` key, so it
|
|
17
|
+
* surfaces in every output format (html, json, stdout) through the renderers'
|
|
18
|
+
* `summarizeComplianceReview(body)` reader — the same additive-payload-key pattern
|
|
19
|
+
* the server-driven `compliance` / `riskAssessment` keys already use.
|
|
20
|
+
*/
|
|
21
|
+
import { type ReviewFinding, type Verdict } from './review-checks.js';
|
|
22
|
+
/** Serializable shape folded into the scan body under `complianceReview`. */
|
|
23
|
+
export interface ComplianceReviewPayload {
|
|
24
|
+
/** false when the artifact could not be inspected (the scan still succeeds). */
|
|
25
|
+
available: boolean;
|
|
26
|
+
/** Present when available === false — why the review could not run. */
|
|
27
|
+
reason?: string;
|
|
28
|
+
/** Info note about the auto-disable manifest diff (whether it ran / why skipped). */
|
|
29
|
+
diffNote?: string;
|
|
30
|
+
/** True when at least one finding WILL BE REJECTED by the store. */
|
|
31
|
+
blocking: boolean;
|
|
32
|
+
counts: Record<Verdict, number>;
|
|
33
|
+
findings: ReviewFinding[];
|
|
34
|
+
}
|
|
35
|
+
export interface BuildComplianceReviewOptions {
|
|
36
|
+
/** Raw artifact bytes (the same buffer scan uploads). */
|
|
37
|
+
artifact: Buffer;
|
|
38
|
+
/** Numeric catalog id — enables the auto-disable manifest diff (offline otherwise). */
|
|
39
|
+
extensionId?: string;
|
|
40
|
+
/** BFF base URL for the manifest diff (no trailing slash). */
|
|
41
|
+
bffUrl: string;
|
|
42
|
+
/** Optional `ek_` key, forwarded only when the catalog read path is gated. */
|
|
43
|
+
apiKey?: string;
|
|
44
|
+
/** Store to diff the manifest against; omitted → latest snapshot of any store. */
|
|
45
|
+
store?: 'CHROME' | 'FIREFOX' | 'EDGE';
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Run the pre-publish review-risk suite over the artifact bytes and return a
|
|
49
|
+
* body-ready payload. Never throws — every failure path is captured into the
|
|
50
|
+
* returned object so a malformed artifact or a flaky catalog can't fail the scan.
|
|
51
|
+
*/
|
|
52
|
+
export declare function buildComplianceReview(opts: BuildComplianceReviewOptions): Promise<ComplianceReviewPayload>;
|
|
53
|
+
//# sourceMappingURL=compliance-review.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-review.d.ts","sourceRoot":"","sources":["../src/compliance-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAiB,KAAK,aAAa,EAAwB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE1G,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACvC,gFAAgF;IAChF,SAAS,EAAE,OAAO,CAAA;IAClB,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,EAAE,aAAa,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC5C,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAA;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAA;CACrC;AAOD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,4BAA4B,GAChC,OAAO,CAAC,uBAAuB,CAAC,CAmDlC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scan add-on — run the offline pre-publish review-risk checks over the SAME
|
|
3
|
+
* artifact `extenshi scan` uploads, and fold the result into the scan report.
|
|
4
|
+
*
|
|
5
|
+
* `extenshi scan` runs this BY DEFAULT (disable with --exclude-compliance-review)
|
|
6
|
+
* so one scan answers both questions at once:
|
|
7
|
+
* - "is this code dangerous?" → the server-side security scanners
|
|
8
|
+
* - "will the store reject / → these checks (REJECTED / ATTRITION /
|
|
9
|
+
* slow-walk / silently disable?" SLOW), identical to `review-risk`.
|
|
10
|
+
*
|
|
11
|
+
* Reuses the exact `review-risk` pipeline: review-archive (extract) → review-catalog
|
|
12
|
+
* (optional manifest diff, only when --extension-id is given) → review-checks (pure
|
|
13
|
+
* rules) → summarize. Fully fail-soft: any extraction / parse / network problem
|
|
14
|
+
* resolves to `{ available: false, reason }` so the scan itself never breaks.
|
|
15
|
+
*
|
|
16
|
+
* The result is attached to the scan body under the `complianceReview` key, so it
|
|
17
|
+
* surfaces in every output format (html, json, stdout) through the renderers'
|
|
18
|
+
* `summarizeComplianceReview(body)` reader — the same additive-payload-key pattern
|
|
19
|
+
* the server-driven `compliance` / `riskAssessment` keys already use.
|
|
20
|
+
*/
|
|
21
|
+
import { loadArtifact } from './review-archive.js';
|
|
22
|
+
import { fetchPriorManifest } from './review-catalog.js';
|
|
23
|
+
import { runChecks, summarize } from './review-checks.js';
|
|
24
|
+
/** Empty (zeroed) counts — also the shape returned when the review can't run. */
|
|
25
|
+
function emptyCounts() {
|
|
26
|
+
return { REJECTED: 0, ATTRITION: 0, SLOW: 0 };
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Run the pre-publish review-risk suite over the artifact bytes and return a
|
|
30
|
+
* body-ready payload. Never throws — every failure path is captured into the
|
|
31
|
+
* returned object so a malformed artifact or a flaky catalog can't fail the scan.
|
|
32
|
+
*/
|
|
33
|
+
export async function buildComplianceReview(opts) {
|
|
34
|
+
let manifest;
|
|
35
|
+
let files;
|
|
36
|
+
try {
|
|
37
|
+
const loaded = await loadArtifact(opts.artifact);
|
|
38
|
+
manifest = loaded.manifest;
|
|
39
|
+
files = loaded.files;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
return {
|
|
43
|
+
available: false,
|
|
44
|
+
reason: `could not inspect the artifact for review-risk checks: ${err.message}`,
|
|
45
|
+
blocking: false,
|
|
46
|
+
counts: emptyCounts(),
|
|
47
|
+
findings: [],
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Optional manifest diff (auto-disable check) — only when an extension id is
|
|
51
|
+
// supplied. Best-effort: a failure just downgrades to a note, never throws.
|
|
52
|
+
let priorManifest = null;
|
|
53
|
+
let diffNote;
|
|
54
|
+
if (opts.extensionId) {
|
|
55
|
+
try {
|
|
56
|
+
const prior = await fetchPriorManifest({
|
|
57
|
+
bffUrl: opts.bffUrl,
|
|
58
|
+
extensionId: opts.extensionId,
|
|
59
|
+
apiKey: opts.apiKey,
|
|
60
|
+
store: opts.store,
|
|
61
|
+
});
|
|
62
|
+
if (prior.manifest) {
|
|
63
|
+
priorManifest = prior.manifest;
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
diffNote = `auto-disable diff skipped: ${prior.reason ?? 'last published manifest unavailable'}`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
diffNote = `auto-disable diff skipped: ${err.message}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
diffNote =
|
|
75
|
+
'pass --extension-id <numeric catalog id> to also diff against your last published manifest (auto-disable check)';
|
|
76
|
+
}
|
|
77
|
+
const summary = summarize(runChecks({ manifest, files, priorManifest }));
|
|
78
|
+
const findings = summary.findings;
|
|
79
|
+
return {
|
|
80
|
+
available: true,
|
|
81
|
+
diffNote,
|
|
82
|
+
blocking: summary.blocking,
|
|
83
|
+
counts: summary.counts,
|
|
84
|
+
findings,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=compliance-review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance-review.js","sourceRoot":"","sources":["../src/compliance-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAqC,SAAS,EAAE,SAAS,EAAgB,MAAM,oBAAoB,CAAA;AA6B1G,iFAAiF;AACjF,SAAS,WAAW;IACnB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,IAAkC;IAElC,IAAI,QAAkB,CAAA;IACtB,IAAI,KAAwD,CAAA;IAC5D,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;QAC1B,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,OAAO;YACN,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,0DAA2D,GAAa,CAAC,OAAO,EAAE;YAC1F,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,WAAW,EAAE;YACrB,QAAQ,EAAE,EAAE;SACZ,CAAA;IACF,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,aAAa,GAAoB,IAAI,CAAA;IACzC,IAAI,QAA4B,CAAA;IAChC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC;gBACtC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,CAAC,CAAA;YACF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,aAAa,GAAG,KAAK,CAAC,QAAoB,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,8BAA8B,KAAK,CAAC,MAAM,IAAI,qCAAqC,EAAE,CAAA;YACjG,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,GAAG,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAAA;QAClE,CAAC;IACF,CAAC;SAAM,CAAC;QACP,QAAQ;YACP,iHAAiH,CAAA;IACnH,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAoB,OAAO,CAAC,QAAQ,CAAA;IAClD,OAAO;QACN,SAAS,EAAE,IAAI;QACf,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ;KACR,CAAA;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGN,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"html-report.d.ts","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAGN,KAAK,WAAW,EAWhB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AA0C7D,UAAU,YAAY;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,EAAE,MAAM,EAAE,CAAA;CAChB;AAmDD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAsDrE;AA4vBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAwGxF"}
|
package/dist/html-report.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* `summarizeCompliance` in render.ts — this module never reads the raw scan
|
|
20
20
|
* shape directly, so it stays correct across scanner-output drift.
|
|
21
21
|
*/
|
|
22
|
-
import { STORE_IMPACT_SHORT, severityRank, summarizeCompliance, summarizeReport, summarizeRiskAssessment, } from './render.js';
|
|
22
|
+
import { STORE_IMPACT_SHORT, severityRank, summarizeCompliance, summarizeComplianceReview, summarizeReport, summarizeRiskAssessment, } from './render.js';
|
|
23
23
|
import { computeVerdict } from './report.js';
|
|
24
24
|
import { scannerDisplayName } from './scanner-names.js';
|
|
25
25
|
// ── HTML escaping ───────────────────────────────────────────────────────────
|
|
@@ -295,6 +295,13 @@ html.dark .badge { color: #0b0f0c; }
|
|
|
295
295
|
.badge.impact.REVIEW_FLAG { background: var(--review); color: #fff; border: none; }
|
|
296
296
|
html.dark .badge.impact.REJECTION_LIKELY, html.dark .badge.impact.REVIEW_FLAG { color: #0b0f0c; }
|
|
297
297
|
|
|
298
|
+
/* Review-risk verdict badges — store-outcome prediction (REJECTED / ATTRITION / SLOW). */
|
|
299
|
+
.badge.rv-REJECTED { background: var(--fail); color: #fff; border: none; }
|
|
300
|
+
.badge.rv-ATTRITION { background: #9333ea; color: #fff; border: none; }
|
|
301
|
+
.badge.rv-SLOW { background: var(--review); color: #fff; border: none; }
|
|
302
|
+
.badge.rv-UNKNOWN { background: var(--surface-2); color: var(--fg); border: 1px solid var(--border); }
|
|
303
|
+
html.dark .badge.rv-REJECTED, html.dark .badge.rv-SLOW { color: #0b0f0c; }
|
|
304
|
+
|
|
298
305
|
.compliance-item { border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; margin-bottom: 12px; }
|
|
299
306
|
.compliance-item .head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
|
|
300
307
|
.compliance-item .title { font-weight: 700; }
|
|
@@ -661,6 +668,57 @@ function renderComplianceSection(compliance) {
|
|
|
661
668
|
}
|
|
662
669
|
return `${parts.join('')}</section>`;
|
|
663
670
|
}
|
|
671
|
+
// ── Pre-publish review-risk section (client-side `complianceReview` key) ──────
|
|
672
|
+
const REVIEW_VERDICT_LABEL = {
|
|
673
|
+
REJECTED: 'Will be rejected',
|
|
674
|
+
ATTRITION: 'User attrition on update',
|
|
675
|
+
SLOW: 'Triggers slow review',
|
|
676
|
+
UNKNOWN: 'Other',
|
|
677
|
+
};
|
|
678
|
+
const REVIEW_VERDICT_ORDER = ['REJECTED', 'ATTRITION', 'SLOW', 'UNKNOWN'];
|
|
679
|
+
/** One review-risk finding card. The group header carries the verdict. */
|
|
680
|
+
function renderReviewRiskItem(f) {
|
|
681
|
+
const evidence = f.evidence ? `<div class="evidence"><pre>${esc(f.evidence)}</pre></div>` : '';
|
|
682
|
+
return ('<div class="compliance-item">' +
|
|
683
|
+
'<div class="head">' +
|
|
684
|
+
`<span class="badge rv-${cssToken(f.verdict)}">${esc(f.verdict)}</span>` +
|
|
685
|
+
`<span class="title">${esc(f.title)}</span>` +
|
|
686
|
+
'</div>' +
|
|
687
|
+
(f.detail ? `<p class="why">${esc(f.detail)}</p>` : '') +
|
|
688
|
+
evidence +
|
|
689
|
+
(f.recommendation ? `<p class="fix"><strong>How to fix:</strong> ${esc(f.recommendation)}</p>` : '') +
|
|
690
|
+
(f.citation ? `<p class="meta">${esc(f.citation)}</p>` : '') +
|
|
691
|
+
'</div>');
|
|
692
|
+
}
|
|
693
|
+
function renderReviewRiskSection(r) {
|
|
694
|
+
const parts = [`<section class="card" id="review-risk"><h2>Store review prediction</h2>`];
|
|
695
|
+
if (!r.available) {
|
|
696
|
+
parts.push(`<p class="disclaimer">${esc(r.reason || 'Review-risk checks were not available for this artifact.')}</p>`);
|
|
697
|
+
return `${parts.join('')}</section>`;
|
|
698
|
+
}
|
|
699
|
+
if (r.findings.length === 0) {
|
|
700
|
+
parts.push(`<p class="empty-good">✓ No review-risk issues detected — clear for publishing.</p>`);
|
|
701
|
+
if (r.diffNote)
|
|
702
|
+
parts.push(`<p class="meta">${esc(r.diffNote)}</p>`);
|
|
703
|
+
return `${parts.join('')}</section>`;
|
|
704
|
+
}
|
|
705
|
+
for (const v of REVIEW_VERDICT_ORDER) {
|
|
706
|
+
const group = r.findings.filter((f) => f.verdict === v);
|
|
707
|
+
if (group.length === 0)
|
|
708
|
+
continue;
|
|
709
|
+
const n = group.length;
|
|
710
|
+
parts.push('<div class="store-group">' +
|
|
711
|
+
'<div class="store-group-head">' +
|
|
712
|
+
`<span class="badge rv-${cssToken(v)}">${esc(REVIEW_VERDICT_LABEL[v] ?? v)}</span>` +
|
|
713
|
+
`<span class="store-group-count">${n} item${n !== 1 ? 's' : ''}</span>` +
|
|
714
|
+
'</div>' +
|
|
715
|
+
group.map(renderReviewRiskItem).join('') +
|
|
716
|
+
'</div>');
|
|
717
|
+
}
|
|
718
|
+
if (r.diffNote)
|
|
719
|
+
parts.push(`<p class="meta">${esc(r.diffNote)}</p>`);
|
|
720
|
+
return `${parts.join('')}</section>`;
|
|
721
|
+
}
|
|
664
722
|
function renderSecuritySection(groups, feedbackEnabled) {
|
|
665
723
|
const parts = [
|
|
666
724
|
`<section class="card" id="security"><h2>Security findings <span class="count">(<span id="visible-count">${groups.length}</span> shown)</span></h2>`,
|
|
@@ -800,6 +858,7 @@ function renderSafetyScore(risk) {
|
|
|
800
858
|
export function renderHtmlReport(body, meta) {
|
|
801
859
|
const summary = summarizeReport(body);
|
|
802
860
|
const compliance = summarizeCompliance(body);
|
|
861
|
+
const reviewRisk = summarizeComplianceReview(body);
|
|
803
862
|
const verdict = computeVerdict(compliance, summary);
|
|
804
863
|
const risk = summarizeRiskAssessment(body);
|
|
805
864
|
const groups = groupFindings(summary.findings);
|
|
@@ -833,6 +892,9 @@ export function renderHtmlReport(body, meta) {
|
|
|
833
892
|
const nav = '<nav class="nav">' +
|
|
834
893
|
'<a href="#verdict"><span>Verdict</span></a>' +
|
|
835
894
|
`<a href="#compliance"><span>Store compliance</span><span class="n">${compliance.present ? compliance.findings.length : '–'}</span></a>` +
|
|
895
|
+
(reviewRisk.present
|
|
896
|
+
? `<a href="#review-risk"><span>Store review prediction</span><span class="n">${reviewRisk.available ? reviewRisk.findings.length : '–'}</span></a>`
|
|
897
|
+
: '') +
|
|
836
898
|
`<a href="#security"><span>Security findings</span><span class="n">${summary.total}</span></a>` +
|
|
837
899
|
`<a href="#scanners"><span>Coverage</span><span class="n">${summary.scannersOk}/${summary.scannersRun}</span></a>` +
|
|
838
900
|
'</nav>';
|
|
@@ -874,6 +936,7 @@ export function renderHtmlReport(body, meta) {
|
|
|
874
936
|
metaLine +
|
|
875
937
|
verdictSection +
|
|
876
938
|
renderComplianceSection(compliance) +
|
|
939
|
+
(reviewRisk.present ? renderReviewRiskSection(reviewRisk) : '') +
|
|
877
940
|
renderSecuritySection(groups, feedbackEnabled) +
|
|
878
941
|
renderCoverageSection(summary) +
|
|
879
942
|
footer +
|
package/dist/html-report.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-report.js","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"html-report.js","sourceRoot":"","sources":["../src/html-report.ts"],"names":[],"mappings":"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"}
|