Files
vyndr/package.json
T
builtbykev eb443232fb feat: Feature 3.4 — Stripe integration with founder code system
Subscription billing:
- POST /api/stripe/checkout — creates Stripe Checkout session
- POST /api/stripe/webhook — handles lifecycle events (raw body)
- POST /api/stripe/portal — customer self-service management
- GET /api/stripe/status — current subscription info

Founder code system:
- Validates codes against env var list with expiry date
- Routes to founder Stripe Price IDs (locked rate for life)
- 4 price objects: analyst, analyst-founder, desk, desk-founder

Webhook events handled:
- checkout.session.completed → tier update + founder status
- customer.subscription.deleted → revert to free tier
- invoice.payment_failed → logged

Lazy Stripe init (no API key required at import time).
Raw body middleware for webhook signature verification.

16 new tests, 237 total (210 Node.js + 27 Python), all passing.
Phase 3 Web MVP COMPLETE. All roadmap features shipped.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 10:30:42 -04:00

41 lines
908 B
JSON

{
"name": "betonblk",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"doc": "docs",
"test": "tests"
},
"scripts": {
"test": "jest --verbose",
"test:unit": "jest tests/unit --verbose",
"test:integration": "jest tests/integration --verbose"
},
"repository": {
"type": "git",
"url": "git+https://github.com/kev3109/betonblk.git"
},
"keywords": [],
"author": "",
"license": "ISC",
"type": "commonjs",
"bugs": {
"url": "https://github.com/kev3109/betonblk/issues"
},
"homepage": "https://github.com/kev3109/betonblk#readme",
"dependencies": {
"@supabase/supabase-js": "^2.99.3",
"axios": "^1.13.6",
"dotenv": "^17.3.1",
"express": "^5.2.1",
"ioredis": "^5.10.1",
"postgres": "^3.4.8",
"stripe": "^20.4.1"
},
"devDependencies": {
"jest": "^30.3.0",
"supertest": "^7.2.2"
}
}