launchprep 0.5.6 → 0.5.7

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 CHANGED
@@ -12,6 +12,10 @@ npx launchprep
12
12
  No signup, no dashboard, nothing added to your repo. The free scan runs entirely
13
13
  on your machine and uploads nothing.
14
14
 
15
+ *(`npx` fetches it, runs it once and cleans up — there is nothing to install.
16
+ npm shows an `npm i` line above because it shows one for every package; you do
17
+ not need it unless you want the command available offline.)*
18
+
15
19
  ## Built with Cursor, Claude, Lovable, v0, Bolt or Replit?
16
20
 
17
21
  That is who this is for. The code works — that is not the same as being safe to
package/net/commands.mjs CHANGED
@@ -191,6 +191,19 @@ async function deep(args) {
191
191
  process.exit(1);
192
192
  }
193
193
 
194
+ // A dead replay comes back as HTTP 200 carrying { status: 'failed' } - the
195
+ // request succeeded, the SCAN did not. Every guard above tests r.ok, so this
196
+ // sailed through and rendered as a clean scan with zero findings: the worst
197
+ // possible answer, because "0 findings" reads as "you are fine". Observed on a
198
+ // real licence twice. A scan that did not finish must never render as one that
199
+ // found nothing.
200
+ if (r.data?.status === 'failed') {
201
+ console.error(`\n ${C.red}That scan did not finish.${C.off} ${C.d}${r.data.error || ''}${C.off}`);
202
+ if (r.data.refunded) console.error(` ${C.grn}It was not counted — your scans are intact.${C.off}`);
203
+ console.error(` ${C.d}Run this again to start a fresh one.${C.off}\n`);
204
+ process.exit(1);
205
+ }
206
+
194
207
  const findings = r.data.findings || [];
195
208
  const rank = { critical:0, high:1, medium:2, low:3 };
196
209
  findings.sort((a, b) => rank[a.severity] - rank[b.severity]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "launchprep",
3
- "version": "0.5.6",
3
+ "version": "0.5.7",
4
4
  "description": "Read-only CLI that scans your AI-built app and reports what will break before real users hit it — auth, tenant isolation, data, payments, GDPR. 117 checks run free on your machine.",
5
5
  "type": "module",
6
6
  "bin": {