feat: implement M3 multi-browser support (Firefox, Edge, Safari)
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>
This commit is contained in:
@@ -5,7 +5,11 @@
|
||||
"description": "CookieBridge Chrome Extension — cross-device cookie sync with E2E encryption",
|
||||
"scripts": {
|
||||
"build": "node esbuild.config.mjs",
|
||||
"watch": "node esbuild.config.mjs --watch",
|
||||
"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": {
|
||||
|
||||
Reference in New Issue
Block a user