- Protocol spec: encrypted envelope format, device identity (Ed25519 + X25519), LWW conflict resolution with Lamport clocks - E2E encryption: XChaCha20-Poly1305 via sodium-native, X25519 key exchange - WebSocket relay server: stateless message forwarding, device auth via challenge-response, offline message queuing, ping/pong keepalive - Device pairing: time-limited pairing codes, key exchange broker via HTTP - Sync protocol: envelope builder/opener, conflict-resolving cookie store - 31 tests passing (crypto, pairing, conflict resolution, full integration) Co-Authored-By: Paperclip <noreply@paperclip.ing>
34 lines
843 B
JSON
34 lines
843 B
JSON
{
|
|
"name": "cookiebridge",
|
|
"version": "0.1.0",
|
|
"description": "Cross-device cookie synchronization with E2E encryption",
|
|
"main": "dist/index.js",
|
|
"types": "dist/index.d.ts",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "tsx src/cli.ts",
|
|
"dev": "tsx --watch src/cli.ts",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"keywords": ["cookies", "sync", "encryption", "browser-extension"],
|
|
"author": "Rc707Agency",
|
|
"license": "MIT",
|
|
"type": "commonjs",
|
|
"dependencies": {
|
|
"sodium-native": "^5.1.0",
|
|
"typescript": "^5.9.3",
|
|
"uuid": "^13.0.0",
|
|
"ws": "^8.19.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.5.0",
|
|
"@types/sodium-native": "^2.3.9",
|
|
"@types/uuid": "^10.0.0",
|
|
"@types/ws": "^8.18.1",
|
|
"tsx": "^4.21.0",
|
|
"vitest": "^4.1.0"
|
|
}
|
|
}
|