e2e-edge.sh proves the camera signalling relay round-trips, and says so honestly - it posts a stub SDP with go2rtc absent and accepts a 503 that came back from the gateway. But "the offer round-trips" says nothing about whether anyone would see a picture, and it once read as more than it was: a stray go2rtc left over from an earlier run answered the stub with an HTTP 500 and the test still printed ok. Video had never been shown to flow. scripts/e2e-camera.sh runs the real backend, the real proxy and the real go2rtc against the H2C, and scripts/e2e-camera-peer.ts plays the browser's part with werift: createOffer, relay through the backend, setRemoteDescription, then ICE, DTLS and SRTP, counting RTP out the far end. Measured: 124-149 packets and ~119-147 KB of payload within a second or two. It sends no printer command; the camera is a pull and the MQTT subscription is passive. It refuses to start if a go2rtc is already running, and fails if one survives cleanup. werift is a devDependency for that one file; nothing under src/ imports it. Its 30 resolved packages were audited against LICENSES.md: 26 MIT, Apache-2.0, BSD-3-Clause, Unlicense, and one MPL-2.0 (mediabunny), which the policy allows while we do not edit its files. Smaller fixes in the same pass: - e2e-edge.sh now unsets the TURN variables. It asserts TURN is off, but sourcing dev-secrets.sh turns it on, and the failure message then printed the live Cloudflare username and credential. The new script prints only the camera id and a count, never the /stream body. - the last hardcoded `psql -h localhost` in e2e-edge.sh now uses DATABASE_URL, like the rest.
38 lines
1.0 KiB
JSON
38 lines
1.0 KiB
JSON
{
|
|
"name": "@continuum/backend",
|
|
"license": "UNLICENSED",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "bun run --watch src/index.ts",
|
|
"start": "bun run src/index.ts",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "drizzle-kit migrate",
|
|
"db:studio": "drizzle-kit studio",
|
|
"test": "bun test",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@continuum/ts-types": "file:../continuum-schemas/packages/ts-types",
|
|
"@continuum/ts-core": "file:../continuum-common/packages/ts-core",
|
|
"elysia": "~1.4.30",
|
|
"@elysiajs/cors": "~1.4.2",
|
|
"@elysiajs/jwt": "~1.4.2",
|
|
"@elysiajs/swagger": "~1.3.1",
|
|
"@aws-sdk/client-s3": "^3.658.1",
|
|
"@aws-sdk/s3-request-presigner": "^3.658.1",
|
|
"drizzle-orm": "0.33.0",
|
|
"drizzle-typebox": "0.1.1",
|
|
"@sinclair/typebox": "0.34.52",
|
|
"postgres": "^3.4.4",
|
|
"ioredis": "^5.4.1"
|
|
},
|
|
"devDependencies": {
|
|
"bun-types": "^1.1.10",
|
|
"drizzle-kit": "0.24.2",
|
|
"typescript": "^5.6.2",
|
|
"werift": "^0.25.1"
|
|
}
|
|
}
|