feat(web): add browser web client with IndexedDB, Service Worker, and PWA

Create sdks/web/ with a vanilla TypeScript web client:
- IndexedDB local store for conversations, messages, and identity
- WebSocket transport connecting to the server bridge
- Service Worker with cache-first strategy for offline support
- PWA manifest for installable web app
- Dark-themed responsive UI with sidebar, messages, and input bar
- Connection status badge and MLS epoch indicator in header
- Unread message count badges on conversations
This commit is contained in:
2026-03-04 20:55:05 +01:00
parent 496f83067a
commit 2d56824834
8 changed files with 1049 additions and 0 deletions

17
sdks/web/package.json Normal file
View File

@@ -0,0 +1,17 @@
{
"name": "@quicproquo/web",
"version": "0.1.0",
"private": true,
"type": "module",
"scripts": {
"build": "tsc && cp -r public/* dist/",
"dev": "tsc --watch",
"clean": "rm -rf dist"
},
"dependencies": {
"@quicproquo/client": "file:../typescript"
},
"devDependencies": {
"typescript": "^5.0.0"
}
}