@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 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;;;;;;;;;;;;;;;;GAgBG"}
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
- try {
91
+ await runCommand('scan', async () => {
54
92
  const config = await loadConfig(opts.apiUrl);
55
93
  if (!config.apiKey) {
56
- console.error(MISSING_KEY_HELP);
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
- console.error('Error: --report-format must be "md" or "json".');
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
- console.error('Error: --format must be one of: html, json, stdout.');
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
- console.error(`Error: --json conflicts with --format ${f}. Use one or the other.`);
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
- try {
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
- console.error(`Error: unknown store in --stores (allowed: chrome, firefox, edge)`);
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
- console.error('Error: --extension-id must be a numeric catalog ID');
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
- try {
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
- console.error('Error: --store must be one of: chrome, firefox, edge');
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
- try {
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
- console.error('Error: no API key provided.');
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":"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"}
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,EAQhB,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;AA2rBD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAmGxF"}
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"}
@@ -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 +
@@ -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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"}