secure-repo 1.0.2 → 1.0.4
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 +14 -5
- package/bin/cli.js +58 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ShipSecure
|
|
2
|
+
|
|
3
|
+
[Website](https://shipsecure.sebiomo.com) | [Get the Pro Pack](https://buy.polar.sh/polar_cl_q7Wa3Gcng42437OoTx4wHVNyMMyYv0WbtobUv145EZH)
|
|
2
4
|
|
|
3
5
|
**Drop production-grade security standards into any repository in 30 seconds.**
|
|
4
6
|
|
|
@@ -19,7 +21,7 @@ npx secure-repo audit
|
|
|
19
21
|
```
|
|
20
22
|
|
|
21
23
|
```
|
|
22
|
-
|
|
24
|
+
shipsecure audit
|
|
23
25
|
|
|
24
26
|
Scanning repository for security issues...
|
|
25
27
|
|
|
@@ -47,6 +49,12 @@ npx secure-repo audit
|
|
|
47
49
|
|
|
48
50
|
Zero setup. Zero dependencies. Just run it.
|
|
49
51
|
|
|
52
|
+
**Don't use the terminal?** Just tell your AI agent:
|
|
53
|
+
|
|
54
|
+
> Run `npx secure-repo audit` in my project
|
|
55
|
+
|
|
56
|
+
Works with Cursor, Claude Code, Windsurf, Copilot — any AI coding agent that can run commands.
|
|
57
|
+
|
|
50
58
|
---
|
|
51
59
|
|
|
52
60
|
## The Problem
|
|
@@ -65,7 +73,7 @@ npx secure-repo init
|
|
|
65
73
|
```
|
|
66
74
|
|
|
67
75
|
```
|
|
68
|
-
|
|
76
|
+
shipsecure - Adding production standards to your project
|
|
69
77
|
|
|
70
78
|
Free templates:
|
|
71
79
|
[done] SECURITY.md
|
|
@@ -160,6 +168,7 @@ npx secure-repo init --key <your-license-key>
|
|
|
160
168
|
npx secure-repo init # Add free security templates
|
|
161
169
|
npx secure-repo init --key <key> # Add free + pro templates (with license key)
|
|
162
170
|
npx secure-repo audit # Scan your repo for security issues
|
|
171
|
+
npx secure-repo upgrade # See what's in the pro pack
|
|
163
172
|
npx secure-repo import <zip> # Import pro templates from zip (offline)
|
|
164
173
|
npx secure-repo check # Check if your templates are outdated
|
|
165
174
|
npx secure-repo list # Show all available templates
|
|
@@ -191,13 +200,13 @@ When an AI agent sees `SECURITY.md` in your project root, it follows those rules
|
|
|
191
200
|
|
|
192
201
|
**With policy files:** The agent follows your standards. Every generated endpoint validates input, checks auth, and handles errors safely.
|
|
193
202
|
|
|
194
|
-
|
|
203
|
+
ShipSecure gives your AI agents the rules they need to write production-safe code.
|
|
195
204
|
|
|
196
205
|
---
|
|
197
206
|
|
|
198
207
|
## Support This Project
|
|
199
208
|
|
|
200
|
-
If
|
|
209
|
+
If ShipSecure helps you ship safer software, consider [sponsoring development](https://github.com/sponsors/sebiomoa).
|
|
201
210
|
|
|
202
211
|
---
|
|
203
212
|
|
package/bin/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ const FREE_DIR = path.join(TEMPLATES_DIR, "free");
|
|
|
10
10
|
|
|
11
11
|
const POLAR_ORGANIZATION_ID = "d55baa70-3a94-4549-901a-2b4c920ff122";
|
|
12
12
|
|
|
13
|
-
const PRO_ZIP_URL = "https://github.com/sebiomoa/
|
|
13
|
+
const PRO_ZIP_URL = "https://github.com/sebiomoa/shipsecure/releases/latest/download/shipsecure-pro.zip";
|
|
14
14
|
|
|
15
15
|
const args = process.argv.slice(2);
|
|
16
16
|
const command = args[0];
|
|
@@ -48,6 +48,7 @@ function printHelp() {
|
|
|
48
48
|
npx secure-repo import <file> Import pro templates from a zip file (offline)
|
|
49
49
|
npx secure-repo check Check which templates are outdated
|
|
50
50
|
npx secure-repo list Show available free templates
|
|
51
|
+
npx secure-repo upgrade See what's in the pro pack
|
|
51
52
|
|
|
52
53
|
Options:
|
|
53
54
|
--key Your license key (from purchase)
|
|
@@ -211,7 +212,7 @@ function downloadFile(url, destPath) {
|
|
|
211
212
|
// Extract zip and install pro templates
|
|
212
213
|
// ============================================================
|
|
213
214
|
function installFromZip(zipPath, outputDir, force) {
|
|
214
|
-
const tempDir = path.join(outputDir, ".
|
|
215
|
+
const tempDir = path.join(outputDir, ".shipsecure-temp");
|
|
215
216
|
|
|
216
217
|
try {
|
|
217
218
|
fs.mkdirSync(tempDir, { recursive: true });
|
|
@@ -296,7 +297,7 @@ async function init() {
|
|
|
296
297
|
const freeResult = copyFiles(FREE_DIR, outputDir, force);
|
|
297
298
|
|
|
298
299
|
// Download and install pro templates
|
|
299
|
-
const zipPath = path.join(outputDir, ".
|
|
300
|
+
const zipPath = path.join(outputDir, ".shipsecure-pro.zip");
|
|
300
301
|
console.log("\n Downloading pro templates...");
|
|
301
302
|
|
|
302
303
|
try {
|
|
@@ -330,8 +331,11 @@ async function init() {
|
|
|
330
331
|
console.log("\n Next steps:");
|
|
331
332
|
console.log(" 1. Customize the templates for your project");
|
|
332
333
|
console.log(" 2. Run: npx secure-repo audit");
|
|
333
|
-
console.log("
|
|
334
|
-
console.log("
|
|
334
|
+
console.log("\n ────────────────────────────────────");
|
|
335
|
+
console.log(" Want 27 more files? Database, deployment, incident response,");
|
|
336
|
+
console.log(" payments, access control, 100+ point audit checklist & more.");
|
|
337
|
+
console.log("\n Run: npx secure-repo upgrade");
|
|
338
|
+
console.log(" ────────────────────────────────────");
|
|
335
339
|
console.log();
|
|
336
340
|
}
|
|
337
341
|
}
|
|
@@ -524,6 +528,18 @@ function audit() {
|
|
|
524
528
|
console.log("\n Looking good! Your repo meets basic security standards.");
|
|
525
529
|
}
|
|
526
530
|
|
|
531
|
+
// Pro upsell after audit — mention missing pro files
|
|
532
|
+
const proOnlyFiles = ["DATABASE.md", "DEPLOYMENT.md", "INCIDENT_RESPONSE.md", "ENV_VARIABLES.md",
|
|
533
|
+
"OBSERVABILITY.md", "TESTING.md", "PAYMENTS.md", "DATA_PRIVACY.md", "FILE_UPLOADS.md",
|
|
534
|
+
"RATE_LIMITING.md", "ACCESS_CONTROL.md", "LOGGING_PII.md"];
|
|
535
|
+
const missingProFiles = proOnlyFiles.filter((f) => !fs.existsSync(path.join(targetDir, f)));
|
|
536
|
+
if (missingProFiles.length > 0) {
|
|
537
|
+
console.log("\n ────────────────────────────────────");
|
|
538
|
+
console.log(` Want deeper coverage? The pro pack adds ${missingProFiles.length} more policy files:`);
|
|
539
|
+
console.log(` ${missingProFiles.slice(0, 4).join(", ")}${missingProFiles.length > 4 ? `, +${missingProFiles.length - 4} more` : ""}`);
|
|
540
|
+
console.log(" Run: npx secure-repo upgrade");
|
|
541
|
+
}
|
|
542
|
+
|
|
527
543
|
console.log();
|
|
528
544
|
return issues;
|
|
529
545
|
}
|
|
@@ -559,6 +575,39 @@ function check() {
|
|
|
559
575
|
console.log();
|
|
560
576
|
}
|
|
561
577
|
|
|
578
|
+
// ============================================================
|
|
579
|
+
// UPGRADE — show pro info and purchase link
|
|
580
|
+
// ============================================================
|
|
581
|
+
function upgrade() {
|
|
582
|
+
console.log(`
|
|
583
|
+
secure-repo pro — 27 additional files for complete coverage
|
|
584
|
+
|
|
585
|
+
What's included:
|
|
586
|
+
18 policy templates DATABASE.md, DEPLOYMENT.md, INCIDENT_RESPONSE.md,
|
|
587
|
+
OBSERVABILITY.md, TESTING.md, ENV_VARIABLES.md,
|
|
588
|
+
PAYMENTS.md, DATA_PRIVACY.md, FILE_UPLOADS.md,
|
|
589
|
+
RATE_LIMITING.md, THIRD_PARTY.md, ACCESS_CONTROL.md,
|
|
590
|
+
LOGGING_PII.md, PR_CHECKLIST.md, THREAT_MODEL.md,
|
|
591
|
+
VULNERABILITY_REPORTING.md, CONTRIBUTING_SECURITY.md,
|
|
592
|
+
POLICY_INDEX.md
|
|
593
|
+
|
|
594
|
+
Premium audit FULL_AUDIT_CHECKLIST.md (100+ point security audit)
|
|
595
|
+
|
|
596
|
+
Stack presets supabase/ (6 files), firebase/ (3 files)
|
|
597
|
+
|
|
598
|
+
Code examples next-route-handler.ts, rate-limit.ts, zod-validate.ts,
|
|
599
|
+
supabase-rls.sql, firebase-rules.txt
|
|
600
|
+
|
|
601
|
+
────────────────────────────────────
|
|
602
|
+
Get the pro pack:
|
|
603
|
+
https://buy.polar.sh/polar_cl_q7Wa3Gcng42437OoTx4wHVNyMMyYv0WbtobUv145EZH
|
|
604
|
+
|
|
605
|
+
After purchase, install with:
|
|
606
|
+
npx secure-repo init --key <your-license-key>
|
|
607
|
+
────────────────────────────────────
|
|
608
|
+
`);
|
|
609
|
+
}
|
|
610
|
+
|
|
562
611
|
// ============================================================
|
|
563
612
|
// Main
|
|
564
613
|
// ============================================================
|
|
@@ -578,6 +627,10 @@ switch (command) {
|
|
|
578
627
|
case "check":
|
|
579
628
|
check();
|
|
580
629
|
break;
|
|
630
|
+
case "upgrade":
|
|
631
|
+
case "pro":
|
|
632
|
+
upgrade();
|
|
633
|
+
break;
|
|
581
634
|
case "help":
|
|
582
635
|
case "--help":
|
|
583
636
|
case "-h":
|
package/package.json
CHANGED