pageta/tsconfig.base.json
Till f26e6f7c68 λ-0 bis λ-4: lesen Standalone-Reader-Webapp, lokal grün
Erste lauffähige Version der Reader-App des Vereins mana e.V.
Drei Use-Cases unter einem Dach: kuratierter News-Feed,
Pocket-Style Save-it-later mit Highlights, RSS-Recherche.

Standalone-Peer-App: eigene DB (mana_lesen, Schema reader),
eigene Webapp, Föderation HTTP/JWT mit mana-auth + mana-news-pool
+ mana-research. Pattern aus seepuls/cards übernommen.

Phasen:
- λ-0 Repo-Skelett (pnpm-workspace, turbo, docker-compose,
  app-manifest, CLAUDE.md, STATUS.md, README.md)
- λ-0 packages/lesen-domain — Pure-TS Feed-Engine + Types
  + Source-Meta-Liste; 9/9 Vitest grün
- λ-0 PORTS.md-Eintrag in mana/docs (lesen-api 3099, lesen-web 3100)
- λ-1 DB-Schema mit 8 Tabellen (saved_articles, highlights,
  article_tags, preferences, reactions, import_jobs,
  import_items, extract_pickup); db:push grün
- λ-2 Auth-Föderation: JWKS-Cache-Middleware aus mana-auth,
  Service-Key-Middleware; Pflicht-Endpoints (dsgvo, search,
  share/receive, tools/:name)
- λ-3 Core-API: /articles CRUD + /extract/preview, /highlights,
  /preferences (singleton + auto-create), /reactions mit
  Auto-Weight-Diff via applyReaction, /feed (Pool-Proxy mit
  server-side feed-engine-Ranking)
- λ-4 Web-UI minimal: API-Client, Feed-Page + Lese-Liste mit
  Save-Form, Recherche-Tab-Stub

Plattform-Lifts (parallel, vor Deploy): shared-rss → mana/packages
(Lift-A, vendored bis dahin), news-ingester → mana-news-pool
(Lift-B, Port 3079 reserviert in PORTS.md), News-Research →
mana-research integrieren (Lift-C deferred).

Encryption initial AUS (Cards-Konvention). lesen.dev_token im
localStorage als DEV-Auth-Stub bis Auth-Portal-Migration.

Lokal verifiziert:
- pnpm install / docker:up / db:push / dev → grün
- Type-Check apps/api + apps/web → 0 errors
- Build apps/web → grün
- Smoke-Probes: /healthz, /.well-known/mana-app.json, JWT-Gate,
  Service-Key-Gate, DSGVO-Export
2026-05-16 03:01:03 +02:00

17 lines
406 B
JSON

{
"compilerOptions": {
"target": "ES2022",
"module": "ESNext",
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"lib": ["ES2022", "DOM", "DOM.Iterable"],
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"noEmit": true,
"resolveJsonModule": true
}
}