shippingszn 0.8.5 → 0.9.2
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 +40 -61
- package/dist/index.js +2412 -274
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -6,65 +6,45 @@ leaked API keys, missing crawl assets, weak browser defenses, dangerous code
|
|
|
6
6
|
patterns, and last-mile polish gaps.
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
-
npx shippingszn
|
|
9
|
+
npx shippingszn@latest
|
|
10
10
|
# or
|
|
11
|
-
pnpm dlx shippingszn
|
|
11
|
+
pnpm dlx shippingszn@latest
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
The CLI **never writes, modifies, or deletes** any files - it only reads.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
Normal runs send one anonymous aggregate summary with score, severity counts,
|
|
16
|
+
files scanned, scanner version, and safe stack tags. It never uploads source
|
|
17
|
+
code, paths, filenames, repo URLs, project names, secrets, handles, or emails.
|
|
18
|
+
This aggregate signal is automatic and not user-configurable.
|
|
19
19
|
|
|
20
|
-
Human output starts with a Launch Readiness Score, scope covered,
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
Human output starts with a Launch Readiness Score, scope covered, and severity
|
|
21
|
+
counts. Run with `--json` to get the same score-and-counts summary in a
|
|
22
|
+
machine-readable shape:
|
|
23
23
|
|
|
24
24
|
```json
|
|
25
25
|
{
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"confidence": "high",
|
|
33
|
-
"coveragePenalty": 0,
|
|
34
|
-
"coverageSummary": "CLI scan covered 4 readiness areas with 4 areas requiring owner verification.",
|
|
35
|
-
"topNextStep": "Fix Lock up your API keys and passwords: Possible OpenAI API key hardcoded in source.",
|
|
36
|
-
"wallUrl": "https://shippingszn.com/wall",
|
|
37
|
-
"reportUrl": "https://shippingszn.com/report"
|
|
38
|
-
},
|
|
39
|
-
"findings": [
|
|
40
|
-
{
|
|
41
|
-
"severity": "critical",
|
|
42
|
-
"message": "Possible OpenAI API key hardcoded in source.",
|
|
43
|
-
"whatFailed": "A secret-like token appears in a scanned file.",
|
|
44
|
-
"whyItBlocksLaunch": "A leaked key can spend money or expose customer data before you notice."
|
|
45
|
-
}
|
|
46
|
-
]
|
|
26
|
+
"score": 43,
|
|
27
|
+
"band": "no_go",
|
|
28
|
+
"counts": { "critical": 1, "high": 3, "medium": 4, "lower": 2 },
|
|
29
|
+
"filesScanned": 128,
|
|
30
|
+
"detailsLocked": true,
|
|
31
|
+
"unlockUrl": "https://shippingszn.com/fix-kit"
|
|
47
32
|
}
|
|
48
33
|
```
|
|
49
34
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
paid report CTA.
|
|
35
|
+
Finding titles, files, evidence, fix prompts, and verification steps are paid.
|
|
36
|
+
They unlock inside the Launch Fix Kit.
|
|
53
37
|
|
|
54
|
-
##
|
|
38
|
+
## Aggregate summary
|
|
55
39
|
|
|
56
|
-
Plain `npx shippingszn`
|
|
57
|
-
anonymous and intentionally small: score, launch label, files
|
|
58
|
-
counts, detected stack tags, scanner version, and timestamp.
|
|
40
|
+
Plain `npx shippingszn@latest` sends the aggregate summary automatically. The
|
|
41
|
+
stored row is anonymous and intentionally small: score, launch label, files
|
|
42
|
+
scanned, finding counts, detected stack tags, scanner version, and timestamp.
|
|
59
43
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
For a paid-report handoff, run `npx shippingszn --json > shippingszn-scan.json`
|
|
67
|
-
and paste or upload the file at `https://shippingszn.com/scan`.
|
|
44
|
+
For a scan-specific paid-report handoff, run `npx shippingszn@latest --proof`.
|
|
45
|
+
That uploads the canonical scan result, returns a proof URL plus a
|
|
46
|
+
`/fix-kit?scanResultId=...` URL, and gives the paid Launch Fix Kit the evidence
|
|
47
|
+
it needs after checkout.
|
|
68
48
|
|
|
69
49
|
## What gets checked
|
|
70
50
|
|
|
@@ -90,8 +70,9 @@ maps back to one of the items on the checklist.
|
|
|
90
70
|
- Placeholder content (`lorem ipsum`, `John Doe`, `test@example.com`) and
|
|
91
71
|
`TODO` / `FIXME` / `XXX` / `HACK` comments.
|
|
92
72
|
|
|
93
|
-
|
|
94
|
-
relevant checklist item
|
|
73
|
+
Internally each finding is tagged Critical, High, Medium, or Lower and maps to
|
|
74
|
+
the relevant checklist item. The free CLI output keeps that finding-level detail
|
|
75
|
+
locked.
|
|
95
76
|
|
|
96
77
|
## Suppressing false positives
|
|
97
78
|
|
|
@@ -141,12 +122,12 @@ ship.
|
|
|
141
122
|
shippingszn [path] [options]
|
|
142
123
|
|
|
143
124
|
Options:
|
|
144
|
-
--json Output a machine-readable JSON
|
|
145
|
-
--
|
|
146
|
-
|
|
147
|
-
--base-url <url> Base URL used to build
|
|
125
|
+
--json Output a machine-readable JSON summary.
|
|
126
|
+
--proof Upload full scan evidence and return a scan-specific
|
|
127
|
+
Launch Fix Kit URL.
|
|
128
|
+
--base-url <url> Base URL used to build checkout and Fix Kit links.
|
|
148
129
|
--cwd <path> Directory to scan. Default: current working directory.
|
|
149
|
-
--no-color Disable ANSI colors in the human-readable
|
|
130
|
+
--no-color Disable ANSI colors in the human-readable summary.
|
|
150
131
|
-h, --help Show help.
|
|
151
132
|
-v, --version Print version.
|
|
152
133
|
```
|
|
@@ -161,22 +142,20 @@ This makes the CLI suitable for CI:
|
|
|
161
142
|
|
|
162
143
|
```yaml
|
|
163
144
|
# .github/workflows/launch-check.yml
|
|
164
|
-
- run: npx shippingszn --json > launch-check.json
|
|
145
|
+
- run: npx shippingszn@latest --json > launch-check.json
|
|
165
146
|
```
|
|
166
147
|
|
|
167
148
|
For PR scan signal, have GitHub Actions run the scanner and post the JSON
|
|
168
|
-
summary as a comment: score, severity counts,
|
|
169
|
-
URL, and worst Critical/High findings.
|
|
149
|
+
summary as a comment: score, severity counts, and unlock URL.
|
|
170
150
|
|
|
171
151
|
## Privacy
|
|
172
152
|
|
|
173
153
|
`shippingszn` reads files on your machine. It never uploads source code. By
|
|
174
|
-
default it makes one best-effort outbound request to post anonymous
|
|
175
|
-
score, launch label, files scanned count, finding counts by severity,
|
|
176
|
-
stack tags, scanner version, and timestamp. It never uploads source
|
|
177
|
-
paths, filenames, project names, repo URLs, secrets, emails, handles,
|
|
178
|
-
contents.
|
|
179
|
-
request.
|
|
154
|
+
default it makes one best-effort outbound request to post an anonymous aggregate
|
|
155
|
+
summary: score, launch label, files scanned count, finding counts by severity,
|
|
156
|
+
detected stack tags, scanner version, and timestamp. It never uploads source
|
|
157
|
+
code, file paths, filenames, project names, repo URLs, secrets, emails, handles,
|
|
158
|
+
or report contents. The aggregate summary is automatic and not user-configurable.
|
|
180
159
|
|
|
181
160
|
## License
|
|
182
161
|
|