Add browser abstraction layer (compat.ts) that normalizes Chrome/Firefox/ Edge/Safari extension APIs behind a unified promise-based interface. Replace all direct chrome.* calls with compat layer across service worker, sync engine, badge, storage, popup, and options modules. - Browser-specific manifests in manifests/ (Firefox MV3 with gecko settings, Edge/Safari variants) - Multi-target build system: `npm run build` produces all four browser builds in build/<browser>/ - Per-browser build scripts: build:chrome, build:firefox, build:edge, build:safari - Auto-detects browser at runtime for platform-specific device registration - All 38 existing tests pass, typecheck clean Co-Authored-By: Paperclip <noreply@paperclip.ing>
24 lines
770 B
JSON
24 lines
770 B
JSON
{
|
|
"name": "cookiebridge-extension",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "CookieBridge Chrome Extension — cross-device cookie sync with E2E encryption",
|
|
"scripts": {
|
|
"build": "node esbuild.config.mjs",
|
|
"build:chrome": "node esbuild.config.mjs --browser=chrome",
|
|
"build:firefox": "node esbuild.config.mjs --browser=firefox",
|
|
"build:edge": "node esbuild.config.mjs --browser=edge",
|
|
"build:safari": "node esbuild.config.mjs --browser=safari",
|
|
"watch": "node esbuild.config.mjs --watch --browser=chrome",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"libsodium-wrappers-sumo": "^0.7.15"
|
|
},
|
|
"devDependencies": {
|
|
"@types/chrome": "^0.0.287",
|
|
"esbuild": "^0.24.2",
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|