Files
gibbz/package.json
developer 2b950e4953
Build and Publish / Metadata (push) Successful in 4s
Build and Publish / BuildAndDeployAmd64 (push) Successful in 14s
eventsourced-ai live check live check
refactor: port backend and frontend to TypeScript classes (bun + vite)
Backend (src/server, runs on Bun):
- GibbzHttpServer (health, /api/ice, /api/rooms, static, keepalive tuning)
- SignalingServer with Peer/Room/RoomRegistry classes and typed messages
- IceConfigProvider (env STUN/TURN + coturn HMAC ephemeral creds)
- StaticFileServer (dist/ with public/ fallback, traversal guard)
- Tracing (OpenTelemetry SDK), AppConfig; createApp() factory for tests

Frontend (src/client, built by Vite):
- VoiceApp orchestrator implementing VoiceAppContext
- WebRtcManager + PeerSession (perfect negotiation, pc rebuild, quality monitor)
- SignalingClient + ReconnectController, AudioManager, SpatialAudio,
  Microphone/ScreenShare controllers, ScreensUi/RosterUi/SpatialMap/
  SpeakingMonitor, Settings/Welcome dialogs, LayoutManager, MatrixChat

Tooling: bun scripts (dev/start/test/typecheck), vite.config.ts root
src/client with publicDir public/static, vitest-config for CI-less runs,
bun-based Dockerfile (oven/bun:1), Makefile + README updated, legacy
server.js/tracing.js/test.js/public js removed.

Verified locally: tsc --noEmit clean, vitest run 6/6 green, vite build ok,
server smoke-tested serving dist + signaling endpoints under Node. Local
bun binary segfaults (SIGILL) on this host, so 'bun test' itself was not
executable here; tests are vitest-API compatible which bun test maps.
2026-09-24 07:43:04 +00:00

44 lines
1.2 KiB
JSON

{
"name": "Gameflow",
"private": true,
"type": "module",
"version": "0.1.0",
"description": "WebRTC voice chat + screen sharing + spatial audio",
"scripts": {
"dev": "vite",
"dev:server": "bun --watch src/server/index.ts",
"build": "vite build",
"start": "bun src/server/index.ts",
"typecheck": "tsc --noEmit",
"test": "bun test",
"test:node": "vitest run",
"check": "bun run typecheck && bun test"
},
"dependencies": {
"@opentelemetry/api": "^1.9.1",
"@opentelemetry/auto-instrumentations-node": "^0.80.0",
"@opentelemetry/exporter-logs-otlp-http": "^0.222.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.222.0",
"@opentelemetry/resources": "^2.11.0",
"@opentelemetry/sdk-logs": "^0.222.0",
"@opentelemetry/sdk-node": "^0.222.0",
"@opentelemetry/semantic-conventions": "^1.43.0",
"cytoscape": "^3.34.3",
"matrix-js-sdk": "^42.4.0",
"ws": "^8.18.0"
},
"devDependencies": {
"@types/bun": "^1.2.0",
"@types/ws": "^8.18.0",
"@vitejs/plugin-basic-ssl": "^2.3.0",
"esbuild": "^0.28.2",
"typescript": "^5.6.0",
"vite": "^8.3.0",
"vite-plugin-node-polyfills": "^0.28.0",
"vitest": "^3.0.0"
},
"allowScripts": {
"esbuild@0.28.2": true
}
}