workspace: pnpm monorepo with api, web, shared

TypeScript 7 strict, ESLint + Prettier, vitest, AGPL-3.0 license.
Decision 0001 records the latest-majors choice and the TS 6 alias.

Task: M0-T1
This commit is contained in:
iamdoubz committed 2026-10-17 14:18:02 -05:00
1 parent 547bb68a6f
commit aa99622a24
24 files changed
+2940 -3

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
# 0001 — Use the latest major versions (TypeScript 7, zod 4, react-router 8)
The owner chose the latest majors over the versions first written in 00 §4. TypeScript 7 (the
native compiler) ships no JavaScript API, and typescript-eslint needs one. Following Microsoft's
side-by-side guidance, the root `package.json` installs `typescript` as an alias of
`@typescript/typescript6` (for typescript-eslint) and `@typescript/native` as an alias of
`typescript@7`, whose `tsc` binary does typecheck and build. The api runs its TypeScript sources
directly on Node 24 (type stripping), so `erasableSyntaxOnly` is on, and relative imports use `.ts`
extensions that `rewriteRelativeImportExtensions` rewrites on build. Drop the TS 6 alias once
typescript-eslint supports TS 7.
+3 -3
View File
@@ -146,11 +146,11 @@ AstDB keys (family/key). This list is complete; do not add keys without updating
| Area | Choice | Version |
|---|---|---|
| Telephony engine | Asterisk, built from source, PJSIP channel driver only (no chan_sip) | 24 LTS (latest 24.x; see 01 §2 while only release candidates exist) |
| Language | TypeScript (strict mode) | 5.x |
| Language | TypeScript (strict mode) | 7.x (see decisions/0001) |
| Runtime | Node.js | 24 LTS |
| Package manager | pnpm workspaces | 9.x or newer |
| API framework | Fastify | 5.x |
| Validation | zod | 3.x |
| Validation | zod | 4.x |
| ORM / migrations | drizzle-orm + drizzle-kit | latest |
| Database | PostgreSQL | 18 |
| Password hashing | `@node-rs/argon2` (argon2id) | latest |
@@ -164,7 +164,7 @@ AstDB keys (family/key). This list is complete; do not add keys without updating
| Logging | pino | latest |
| Tests | vitest | latest |
| Frontend | React 19 + Vite + TypeScript | latest |
| Routing (web) | react-router | 7.x |
| Routing (web) | react-router | 8.x |
| Data fetching (web) | @tanstack/react-query | 5.x |
| Styling | Tailwind CSS | 4.x |
| Forms (web) | react-hook-form + @hookform/resolvers | latest |