Strangler-fig migration setup for the frontend. Legacy public/js/*.js keeps working unchanged; new TypeScript code lives under client/ and gets bundled into public/dist/ at image-build time. Adds: - esbuild@0.28 as a regular dep (so docker build can run the bundler without --include-dev). It's small; tsx already pulled in a pinned version transitively. - scripts/build-client.mjs: bundles every top-level client/*.ts file into public/dist/<name>.js as ESM with sourcemap. --watch mode for dev. Sub-directories under client/ are bundled by their parent entry, not separately. - tsconfig.client.json: browser target (lib: DOM), bundler module resolution, isolatedModules:true so esbuild + tsc agree. - Two npm scripts: build:client, typecheck:client. - Dockerfile: 'RUN node scripts/build-client.mjs' between COPY and CMD, so the prod image ships with the built bundle. - .gitignore: public/dist/ — build output, never committed. - public/index.html: <script type="module" src="/dist/main.js"> appended after legacy script tags. - client/main.ts: minimal entry point with a console.log marker (window.__clientBundle = true) so we can verify the bundle loaded. Sacred files (per project memory) kept off the migration path: - public/js/encounters.js (save/idempotency) - voiceDictation.js, sickVisit.js recording paths (STT plumbing) These need explicit per-file approval from Daniel before migration. Verification: - npm run typecheck → 0 errors (backend) - npm run typecheck:client → 0 errors (frontend) - npm run build:client → public/dist/main.js + .map in 3 ms - 46/46 unit tests pass Next session: migrate the first real frontend module (small + isolated, likely extensions.js or memories.js) into client/ as ES module + TS.
43 lines
603 B
Text
43 lines
603 B
Text
node_modules/
|
|
.env
|
|
.env.local
|
|
.env.production
|
|
data/
|
|
!public/data/
|
|
*.db
|
|
*.db-journal
|
|
*.db-wal
|
|
.DS_Store
|
|
Thumbs.db
|
|
*.log
|
|
npm-debug.log*
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
dist/
|
|
build/
|
|
|
|
# Android TWA
|
|
android/.gradle/
|
|
android/app/build/
|
|
android/build/
|
|
android/local.properties
|
|
android/captures/
|
|
android/.idea/
|
|
*.apk
|
|
*.aab
|
|
*.keystore
|
|
*.jks
|
|
public/models/
|
|
.env.backup-*
|
|
*.env.backup*
|
|
|
|
# e2e test artifacts (keep config + specs, skip results + installed deps)
|
|
e2e/node_modules/
|
|
e2e/test-results/
|
|
e2e/playwright-report/
|
|
|
|
.codex
|
|
|
|
# Compiled frontend bundle — built from client/*.ts by scripts/build-client.mjs
|
|
public/dist/
|