Strategie B (beschlossen 2026-05-08): Cards wird als eigenständige
föderierte App neu gebaut, ohne Code-Übernahme aus mana-monorepo.
Skelett enthält:
- apps/api: Hono+Bun mit /healthz, /version, Manifest-Endpoint, leere
pgSchema('cards'), Drizzle-Config, erstem Vitest
- apps/web: SvelteKit 2 + Svelte 5 (runes), Vite auf 3082
- packages/cards-domain: Pure-TS, CardType-Discriminated-Union,
SubIndex-Granularität für Reviews, Future-CardType-Set vorbereitet
- infrastructure/docker-compose.yml: Postgres 16 auf 5435
- app-manifest.json: v1.0.0, Verein-owned, beta-tier
- .github/workflows/ci.yml
- docs/LESSONS_FROM_MANA_MONOREPO.md (Read-Day-Output, 15 Lehren)
Pre-Flight für Phase 2 (Auth-Föderation): DNS cardecky.mana.how,
GitHub-Repo mana-ev/cards, Cards-App-Registrierung in mana-auth,
NPM_AUTH_TOKEN für Verdaccio.
Plan: mana/docs/playbooks/CARDS_GREENFIELD.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
32 lines
928 B
JSON
32 lines
928 B
JSON
{
|
|
"name": "@cards/api",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Cards-API — Hono+Bun-Backend für die Greenfield-Cards-App. Spricht mana-Plattform-Services über HTTP.",
|
|
"scripts": {
|
|
"dev": "bun run --hot src/index.ts",
|
|
"start": "bun run src/index.ts",
|
|
"build": "tsc -p tsconfig.json --noEmit",
|
|
"type-check": "tsc -p tsconfig.json --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"lint": "echo 'lint configured later (eslint flat-config)'",
|
|
"clean": "rm -rf dist .turbo coverage",
|
|
"drizzle:generate": "drizzle-kit generate",
|
|
"drizzle:push": "drizzle-kit push --force",
|
|
"drizzle:studio": "drizzle-kit studio"
|
|
},
|
|
"dependencies": {
|
|
"@cards/domain": "workspace:*",
|
|
"hono": "^4.6.0",
|
|
"drizzle-orm": "0.38",
|
|
"postgres": "^3.4.0",
|
|
"zod": "3",
|
|
"zod-to-json-schema": "^3.23.0"
|
|
},
|
|
"devDependencies": {
|
|
"drizzle-kit": "0.30",
|
|
"vitest": "^2.1.0"
|
|
}
|
|
}
|