@fairfox/polly 0.61.0 → 0.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,6 +69,101 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
69
69
  throw Error('Dynamic require of "' + x + '" is not supported');
70
70
  });
71
71
 
72
+ // src/shared/lib/idb-helpers.ts
73
+ function openIDB(options, openFn = defaultOpenFn) {
74
+ return new Promise((resolve, reject) => {
75
+ const start = Date.now();
76
+ const request = openFn(options.name, options.version);
77
+ let settled = false;
78
+ const elapsed = () => Date.now() - start;
79
+ const rejectWith = (reason, cause) => {
80
+ if (settled)
81
+ return;
82
+ settled = true;
83
+ clearTimeout(timer);
84
+ reject(new IDBOpenError(reason, options.name, elapsed(), cause));
85
+ };
86
+ const timer = setTimeout(() => rejectWith("timeout"), IDB_OPEN_TIMEOUT_MS);
87
+ request.onerror = () => rejectWith("error", request.error);
88
+ request.onblocked = () => rejectWith("blocked");
89
+ request.onsuccess = () => {
90
+ if (settled)
91
+ return;
92
+ settled = true;
93
+ clearTimeout(timer);
94
+ resolve(request.result);
95
+ };
96
+ request.onupgradeneeded = (event) => {
97
+ const db = event.target.result;
98
+ options.upgrade(db, event);
99
+ };
100
+ });
101
+ }
102
+ function cachedOpen(ref, options, openFn) {
103
+ if (ref.promise)
104
+ return ref.promise;
105
+ const pending = openIDB(options, openFn);
106
+ pending.catch(() => {
107
+ if (ref.promise === pending)
108
+ ref.promise = null;
109
+ });
110
+ ref.promise = pending;
111
+ return pending;
112
+ }
113
+ function runRequest(request) {
114
+ return new Promise((resolve, reject) => {
115
+ request.onsuccess = () => resolve(request.result);
116
+ request.onerror = () => reject(request.error);
117
+ });
118
+ }
119
+ function runTx(db, storeName, mode, fn) {
120
+ return new Promise((resolve, reject) => {
121
+ const tx = db.transaction(storeName, mode);
122
+ const store = tx.objectStore(storeName);
123
+ tx.oncomplete = () => resolve();
124
+ tx.onerror = () => reject(tx.error);
125
+ tx.onabort = () => reject(tx.error);
126
+ try {
127
+ fn(store);
128
+ } catch (err) {
129
+ try {
130
+ tx.abort();
131
+ } catch {}
132
+ reject(err);
133
+ }
134
+ });
135
+ }
136
+ function iterateCursor(db, storeName, visit) {
137
+ return new Promise((resolve, reject) => {
138
+ const tx = db.transaction(storeName, "readonly");
139
+ const store = tx.objectStore(storeName);
140
+ const request = store.openCursor();
141
+ request.onsuccess = () => {
142
+ const cursor = request.result;
143
+ if (!cursor)
144
+ return resolve();
145
+ visit(cursor.key, cursor.value);
146
+ cursor.continue();
147
+ };
148
+ request.onerror = () => reject(request.error);
149
+ });
150
+ }
151
+ var IDB_OPEN_TIMEOUT_MS = 5000, IDBOpenError, defaultOpenFn = (name, version) => indexedDB.open(name, version);
152
+ var init_idb_helpers = __esm(() => {
153
+ IDBOpenError = class IDBOpenError extends Error {
154
+ reason;
155
+ dbName;
156
+ elapsedMs;
157
+ constructor(reason, dbName, elapsedMs, cause) {
158
+ super(`Polly IndexedDB open of '${dbName}' ${reason} after ${elapsedMs}ms`, cause === undefined ? undefined : { cause });
159
+ this.name = "IDBOpenError";
160
+ this.reason = reason;
161
+ this.dbName = dbName;
162
+ this.elapsedMs = elapsedMs;
163
+ }
164
+ };
165
+ });
166
+
72
167
  // src/shared/lib/storage-adapter.ts
73
168
  var exports_storage_adapter = {};
74
169
  __export(exports_storage_adapter, {
@@ -81,68 +176,32 @@ __export(exports_storage_adapter, {
81
176
  class IndexedDBAdapter {
82
177
  dbName;
83
178
  storeName = "state";
84
- dbPromise = null;
179
+ dbRef = { promise: null };
85
180
  constructor(dbName = "polly-state") {
86
181
  this.dbName = dbName;
87
182
  }
88
183
  getDB() {
89
- if (this.dbPromise)
90
- return this.dbPromise;
91
- const pending = new Promise((resolve, reject) => {
92
- const start = Date.now();
93
- const request = indexedDB.open(this.dbName, 1);
94
- let settled = false;
95
- const timer = setTimeout(() => {
96
- if (settled)
97
- return;
98
- settled = true;
99
- const elapsedMs = Date.now() - start;
100
- reject(new Error(`Polly IndexedDB open of '${this.dbName}' timed out after ${elapsedMs}ms (cross-tab lock or zombie connection?)`));
101
- }, IDB_OPEN_TIMEOUT_MS);
102
- request.onerror = () => {
103
- if (settled)
104
- return;
105
- settled = true;
106
- clearTimeout(timer);
107
- reject(request.error);
108
- };
109
- request.onsuccess = () => {
110
- if (settled)
111
- return;
112
- settled = true;
113
- clearTimeout(timer);
114
- resolve(request.result);
115
- };
116
- request.onupgradeneeded = (event) => {
117
- const db = event.target.result;
184
+ return cachedOpen(this.dbRef, {
185
+ name: this.dbName,
186
+ version: 1,
187
+ upgrade: (db) => {
118
188
  if (!db.objectStoreNames.contains(this.storeName)) {
119
189
  db.createObjectStore(this.storeName);
120
190
  }
121
- };
122
- });
123
- pending.catch(() => {
124
- if (this.dbPromise === pending)
125
- this.dbPromise = null;
191
+ }
126
192
  });
127
- this.dbPromise = pending;
128
- return pending;
129
193
  }
130
194
  async get(keys) {
131
195
  try {
132
196
  const db = await this.getDB();
197
+ const tx = db.transaction(this.storeName, "readonly");
198
+ const store = tx.objectStore(this.storeName);
199
+ const pairs = await Promise.all(keys.map(async (key) => [key, await runRequest(store.get(key))]));
133
200
  const result = {};
134
- await Promise.all(keys.map((key) => new Promise((resolve, reject) => {
135
- const transaction = db.transaction([this.storeName], "readonly");
136
- const store = transaction.objectStore(this.storeName);
137
- const request = store.get(key);
138
- request.onerror = () => reject(request.error);
139
- request.onsuccess = () => {
140
- if (request.result !== undefined) {
141
- result[key] = request.result;
142
- }
143
- resolve();
144
- };
145
- })));
201
+ for (const [key, value] of pairs) {
202
+ if (value !== undefined)
203
+ result[key] = value;
204
+ }
146
205
  return result;
147
206
  } catch (error) {
148
207
  console.warn("[Polly] IndexedDB get failed:", error);
@@ -152,13 +211,11 @@ class IndexedDBAdapter {
152
211
  async set(items) {
153
212
  try {
154
213
  const db = await this.getDB();
155
- await Promise.all(Object.entries(items).map(([key, value]) => new Promise((resolve, reject) => {
156
- const transaction = db.transaction([this.storeName], "readwrite");
157
- const store = transaction.objectStore(this.storeName);
158
- const request = store.put(value, key);
159
- request.onerror = () => reject(request.error);
160
- request.onsuccess = () => resolve();
161
- })));
214
+ await runTx(db, this.storeName, "readwrite", (store) => {
215
+ for (const [key, value] of Object.entries(items)) {
216
+ store.put(value, key);
217
+ }
218
+ });
162
219
  } catch (error) {
163
220
  console.warn("[Polly] IndexedDB set failed:", error);
164
221
  }
@@ -166,13 +223,10 @@ class IndexedDBAdapter {
166
223
  async remove(keys) {
167
224
  try {
168
225
  const db = await this.getDB();
169
- await Promise.all(keys.map((key) => new Promise((resolve, reject) => {
170
- const transaction = db.transaction([this.storeName], "readwrite");
171
- const store = transaction.objectStore(this.storeName);
172
- const request = store.delete(key);
173
- request.onerror = () => reject(request.error);
174
- request.onsuccess = () => resolve();
175
- })));
226
+ await runTx(db, this.storeName, "readwrite", (store) => {
227
+ for (const key of keys)
228
+ store.delete(key);
229
+ });
176
230
  } catch (error) {
177
231
  console.warn("[Polly] IndexedDB remove failed:", error);
178
232
  }
@@ -245,7 +299,9 @@ function createStorageAdapter() {
245
299
  }
246
300
  return new MemoryStorageAdapter;
247
301
  }
248
- var IDB_OPEN_TIMEOUT_MS = 5000;
302
+ var init_storage_adapter = __esm(() => {
303
+ init_idb_helpers();
304
+ });
249
305
 
250
306
  // src/shared/lib/sync-adapter.ts
251
307
  var exports_sync_adapter = {};
@@ -749,6 +805,7 @@ class MessageLoggerAdapter {
749
805
  }
750
806
 
751
807
  // src/shared/lib/adapter-factory.ts
808
+ init_storage_adapter();
752
809
  function createStateAdapters(options = {}) {
753
810
  if (options.storage && options.sync) {
754
811
  return {
@@ -769,7 +826,7 @@ function createStateAdapters(options = {}) {
769
826
  return { storage, sync };
770
827
  }
771
828
  function createChromeAdapters() {
772
- const { ChromeStorageAdapter: ChromeStorageAdapter3 } = __toCommonJS(exports_storage_adapter);
829
+ const { ChromeStorageAdapter: ChromeStorageAdapter3 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
773
830
  const { ChromeRuntimeSyncAdapter: ChromeRuntimeSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
774
831
  return {
775
832
  storage: new ChromeStorageAdapter3,
@@ -777,14 +834,14 @@ function createChromeAdapters() {
777
834
  };
778
835
  }
779
836
  function createWebAdapters(options = {}) {
780
- const { IndexedDBAdapter: IndexedDBAdapter2 } = __toCommonJS(exports_storage_adapter);
837
+ const { IndexedDBAdapter: IndexedDBAdapter2 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
781
838
  const { BroadcastChannelSyncAdapter: BroadcastChannelSyncAdapter2, NoOpSyncAdapter: NoOpSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
782
839
  const storage = new IndexedDBAdapter2(options.dbName);
783
840
  const sync = options.singleTab ? new NoOpSyncAdapter2 : new BroadcastChannelSyncAdapter2(options.channelName);
784
841
  return { storage, sync };
785
842
  }
786
843
  function createNodeAdapters() {
787
- const { MemoryStorageAdapter: MemoryStorageAdapter2 } = __toCommonJS(exports_storage_adapter);
844
+ const { MemoryStorageAdapter: MemoryStorageAdapter2 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
788
845
  const { NoOpSyncAdapter: NoOpSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
789
846
  return {
790
847
  storage: new MemoryStorageAdapter2,
@@ -792,7 +849,7 @@ function createNodeAdapters() {
792
849
  };
793
850
  }
794
851
  function createMockAdapters() {
795
- const { MemoryStorageAdapter: MemoryStorageAdapter2 } = __toCommonJS(exports_storage_adapter);
852
+ const { MemoryStorageAdapter: MemoryStorageAdapter2 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
796
853
  const { NoOpSyncAdapter: NoOpSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
797
854
  return {
798
855
  storage: new MemoryStorageAdapter2,
@@ -801,6 +858,7 @@ function createMockAdapters() {
801
858
  }
802
859
 
803
860
  // src/shared/adapters/index.ts
861
+ init_storage_adapter();
804
862
  function createChromeAdapters2(context, options) {
805
863
  const runtime2 = new ChromeRuntimeAdapter;
806
864
  return {
@@ -1929,4 +1987,4 @@ export {
1929
1987
  LogStore
1930
1988
  };
1931
1989
 
1932
- //# debugId=BF126EE99FF7C8AE64756E2164756E21
1990
+ //# debugId=DF25781A5C68A52464756E2164756E21
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/shared/lib/storage-adapter.ts", "../src/shared/lib/sync-adapter.ts", "../src/shared/lib/constraints.ts", "../src/shared/adapters/chrome/context-menus.chrome.ts", "../src/shared/adapters/chrome/offscreen.chrome.ts", "../src/shared/adapters/chrome/runtime.chrome.ts", "../src/shared/adapters/chrome/storage.chrome.ts", "../src/shared/adapters/chrome/tabs.chrome.ts", "../src/shared/adapters/chrome/window.chrome.ts", "../src/shared/adapters/fetch.adapter.ts", "../src/shared/adapters/logger.adapter.ts", "../src/shared/lib/adapter-factory.ts", "../src/shared/adapters/index.ts", "../src/shared/types/messages.ts", "../src/shared/lib/errors.ts", "../src/shared/lib/context-specific-helpers.ts", "../src/shared/lib/handler-execution-tracker.ts", "../src/shared/lib/message-bus.ts", "../src/background/message-router.ts", "../src/background/log-store.ts", "../src/background/index.ts"],
3
+ "sources": ["../src/shared/lib/idb-helpers.ts", "../src/shared/lib/storage-adapter.ts", "../src/shared/lib/sync-adapter.ts", "../src/shared/lib/constraints.ts", "../src/shared/adapters/chrome/context-menus.chrome.ts", "../src/shared/adapters/chrome/offscreen.chrome.ts", "../src/shared/adapters/chrome/runtime.chrome.ts", "../src/shared/adapters/chrome/storage.chrome.ts", "../src/shared/adapters/chrome/tabs.chrome.ts", "../src/shared/adapters/chrome/window.chrome.ts", "../src/shared/adapters/fetch.adapter.ts", "../src/shared/adapters/logger.adapter.ts", "../src/shared/lib/adapter-factory.ts", "../src/shared/adapters/index.ts", "../src/shared/types/messages.ts", "../src/shared/lib/errors.ts", "../src/shared/lib/context-specific-helpers.ts", "../src/shared/lib/handler-execution-tracker.ts", "../src/shared/lib/message-bus.ts", "../src/background/message-router.ts", "../src/background/log-store.ts", "../src/background/index.ts"],
4
4
  "sourcesContent": [
5
- "// Storage adapters for different execution contexts\n// Automatically chooses the right storage mechanism based on environment\n\n/**\n * Universal storage adapter interface\n */\nexport interface StorageAdapter {\n get<T = unknown>(keys: string[]): Promise<Record<string, T>>;\n set(items: Record<string, unknown>): Promise<void>;\n remove(keys: string[]): Promise<void>;\n}\n\n/** Polly#107 post-v0.60: hard timeout on `indexedDB.open()`. Healthy\n * opens land in microseconds; the v0.60.0 fingerprint surfaced a\n * zombie cross-tab connection that left an open request firing no\n * events at all (no `success`, no `error`, no `blocked`). 5s is two\n * orders of magnitude beyond the normal upper bound and short\n * enough that the operator gets a named failure instead of a hung\n * page when the storage layer wedges. */\nconst IDB_OPEN_TIMEOUT_MS = 5000;\n\n/**\n * IndexedDB adapter for web apps\n */\nexport class IndexedDBAdapter implements StorageAdapter {\n private dbName: string;\n private storeName = \"state\";\n private dbPromise: Promise<IDBDatabase> | null = null;\n\n constructor(dbName = \"polly-state\") {\n this.dbName = dbName;\n }\n\n private getDB(): Promise<IDBDatabase> {\n if (this.dbPromise) return this.dbPromise;\n\n const pending = new Promise<IDBDatabase>((resolve, reject) => {\n const start = Date.now();\n const request = indexedDB.open(this.dbName, 1);\n let settled = false;\n const timer = setTimeout(() => {\n if (settled) return;\n settled = true;\n const elapsedMs = Date.now() - start;\n reject(\n new Error(\n `Polly IndexedDB open of '${this.dbName}' timed out after ${elapsedMs}ms (cross-tab lock or zombie connection?)`\n )\n );\n }, IDB_OPEN_TIMEOUT_MS);\n\n request.onerror = () => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n reject(request.error);\n };\n request.onsuccess = () => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n resolve(request.result);\n };\n\n request.onupgradeneeded = (event) => {\n const db = (event.target as unknown as IDBOpenDBRequest).result;\n if (!db.objectStoreNames.contains(this.storeName)) {\n db.createObjectStore(this.storeName);\n }\n };\n });\n // Drop the cached failed promise on rejection so a subsequent call\n // can retry without this a transient open failure poisons the\n // adapter for the lifetime of the process.\n pending.catch(() => {\n if (this.dbPromise === pending) this.dbPromise = null;\n });\n this.dbPromise = pending;\n return pending;\n }\n\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n try {\n const db = await this.getDB();\n const result: Record<string, T> = {};\n\n await Promise.all(\n keys.map(\n (key) =>\n new Promise<void>((resolve, reject) => {\n const transaction = db.transaction([this.storeName], \"readonly\");\n const store = transaction.objectStore(this.storeName);\n const request = store.get(key);\n\n request.onerror = () => reject(request.error);\n request.onsuccess = () => {\n if (request.result !== undefined) {\n result[key] = request.result as unknown as T;\n }\n resolve();\n };\n })\n )\n );\n\n return result;\n } catch (error) {\n console.warn(\"[Polly] IndexedDB get failed:\", error);\n return {};\n }\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n try {\n const db = await this.getDB();\n await Promise.all(\n Object.entries(items).map(\n ([key, value]) =>\n new Promise<void>((resolve, reject) => {\n const transaction = db.transaction([this.storeName], \"readwrite\");\n const store = transaction.objectStore(this.storeName);\n const request = store.put(value, key);\n\n request.onerror = () => reject(request.error);\n request.onsuccess = () => resolve();\n })\n )\n );\n } catch (error) {\n console.warn(\"[Polly] IndexedDB set failed:\", error);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n try {\n const db = await this.getDB();\n await Promise.all(\n keys.map(\n (key) =>\n new Promise<void>((resolve, reject) => {\n const transaction = db.transaction([this.storeName], \"readwrite\");\n const store = transaction.objectStore(this.storeName);\n const request = store.delete(key);\n\n request.onerror = () => reject(request.error);\n request.onsuccess = () => resolve();\n })\n )\n );\n } catch (error) {\n console.warn(\"[Polly] IndexedDB remove failed:\", error);\n }\n }\n}\n\n/**\n * Chrome storage adapter for extensions\n */\nexport class ChromeStorageAdapter implements StorageAdapter {\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return {};\n }\n\n try {\n return (await chrome.storage.local.get(keys)) as unknown as Record<string, T>;\n } catch (error) {\n console.warn(\"[Polly] Chrome storage get failed:\", error);\n return {};\n }\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return;\n }\n\n try {\n await chrome.storage.local.set(items);\n } catch (error) {\n console.warn(\"[Polly] Chrome storage set failed:\", error);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return;\n }\n\n try {\n await chrome.storage.local.remove(keys);\n } catch (error) {\n console.warn(\"[Polly] Chrome storage remove failed:\", error);\n }\n }\n}\n\n/**\n * In-memory adapter (no persistence) for testing or server contexts\n */\nexport class MemoryStorageAdapter implements StorageAdapter {\n private storage = new Map<string, unknown>();\n\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n const result: Record<string, T> = {};\n for (const key of keys) {\n const value = this.storage.get(key);\n if (value !== undefined) {\n result[key] = value as unknown as T;\n }\n }\n return result;\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n for (const [key, value] of Object.entries(items)) {\n this.storage.set(key, value);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n for (const key of keys) {\n this.storage.delete(key);\n }\n }\n}\n\n/**\n * Detect execution context and return appropriate storage adapter\n */\nexport function createStorageAdapter(): StorageAdapter {\n // Chrome extension context\n if (typeof chrome !== \"undefined\" && chrome.storage && chrome.runtime) {\n return new ChromeStorageAdapter();\n }\n\n // Web app context (has IndexedDB)\n if (typeof indexedDB !== \"undefined\") {\n return new IndexedDBAdapter();\n }\n\n // Server/test context (no persistent storage available)\n return new MemoryStorageAdapter();\n}\n",
5
+ "/**\n * Tiny internal helpers around the raw IndexedDB API.\n *\n * Wraps the patterns that `storage-adapter.ts` and `blob-cache.ts` both\n * re-implement: timed open with retry-on-failure caching, request→promise\n * wrapping, transaction-to-completion, and cursor iteration. Not exported\n * from the public package internal to `src/shared/lib`.\n */\n\n/** Polly#107 post-v0.60: hard timeout on `indexedDB.open()`. Healthy\n * opens land in microseconds; the v0.60.0 fingerprint surfaced a zombie\n * cross-tab connection that left an open request firing no events at all.\n * 5s is two orders of magnitude beyond the normal upper bound and short\n * enough that the operator gets a named failure instead of a hung page\n * when the storage layer wedges. */\nexport const IDB_OPEN_TIMEOUT_MS = 5000;\n\nexport type IDBOpenFailureReason = \"timeout\" | \"blocked\" | \"error\";\n\n/** Structured failure for `openIDB`. `reason` distinguishes the three\n * recoveries: `timeout` (true zombie, browser restart), `blocked`\n * (sibling tab holds an older version open closing it clears the\n * block immediately), and `error` (unexpected `onerror` from the\n * request itself). Stays `instanceof Error` for callers that just want\n * `console.warn(err)`; `instanceof IDBOpenError` + `err.reason` gives\n * structured handling without regexing the message. */\nexport class IDBOpenError extends Error {\n readonly reason: IDBOpenFailureReason;\n readonly dbName: string;\n readonly elapsedMs: number;\n\n constructor(reason: IDBOpenFailureReason, dbName: string, elapsedMs: number, cause?: unknown) {\n super(\n `Polly IndexedDB open of '${dbName}' ${reason} after ${elapsedMs}ms`,\n cause === undefined ? undefined : { cause }\n );\n this.name = \"IDBOpenError\";\n this.reason = reason;\n this.dbName = dbName;\n this.elapsedMs = elapsedMs;\n }\n}\n\nexport interface OpenIDBOptions {\n name: string;\n version: number;\n /** Invoked inside `onupgradeneeded`. Create object stores here. */\n upgrade: (db: IDBDatabase, event: IDBVersionChangeEvent) => void;\n}\n\n/** Open-request factory. Defaults to `indexedDB.open`; tests override\n * it to force the timeout, blocked, or error path without needing a\n * real zombie tab `fake-indexeddb` cannot reproduce the v0.60.0\n * no-events fingerprint, so the regression that motivated this whole\n * module is otherwise uncoverable. */\nexport type IDBOpenFn = (name: string, version: number) => IDBOpenDBRequest;\n\nconst defaultOpenFn: IDBOpenFn = (name, version) => indexedDB.open(name, version);\n\n/** Open an IndexedDB database with the Polly#107 timeout guard. */\nexport function openIDB(\n options: OpenIDBOptions,\n openFn: IDBOpenFn = defaultOpenFn\n): Promise<IDBDatabase> {\n return new Promise<IDBDatabase>((resolve, reject) => {\n const start = Date.now();\n const request = openFn(options.name, options.version);\n let settled = false;\n const elapsed = () => Date.now() - start;\n const rejectWith = (reason: IDBOpenFailureReason, cause?: unknown) => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n reject(new IDBOpenError(reason, options.name, elapsed(), cause));\n };\n const timer = setTimeout(() => rejectWith(\"timeout\"), IDB_OPEN_TIMEOUT_MS);\n\n request.onerror = () => rejectWith(\"error\", request.error);\n request.onblocked = () => rejectWith(\"blocked\");\n request.onsuccess = () => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n resolve(request.result);\n };\n request.onupgradeneeded = (event) => {\n const db = (event.target as unknown as IDBOpenDBRequest).result;\n options.upgrade(db, event);\n };\n });\n}\n\n/** One-shot open caching with retry-on-failure. Caller owns a `{ promise }`\n * cell; first call opens, subsequent calls return the cached promise, and\n * a rejected open clears the cache so the next call can retry instead of\n * being poisoned by one transient failure. */\nexport function cachedOpen(\n ref: { promise: Promise<IDBDatabase> | null },\n options: OpenIDBOptions,\n openFn?: IDBOpenFn\n): Promise<IDBDatabase> {\n if (ref.promise) return ref.promise;\n const pending = openIDB(options, openFn);\n pending.catch(() => {\n if (ref.promise === pending) ref.promise = null;\n });\n ref.promise = pending;\n return pending;\n}\n\n/** Promise-wrap a single `IDBRequest` (`get`, `put`, `count`, `delete`…). */\nexport function runRequest<T>(request: IDBRequest<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n request.onsuccess = () => resolve(request.result);\n request.onerror = () => reject(request.error);\n });\n}\n\n/** Run a transaction to completion. Resolves on `tx.oncomplete` (write\n * durability), not on individual request success. Throws inside `fn`\n * abort the transaction and reject. */\nexport function runTx(\n db: IDBDatabase,\n storeName: string,\n mode: IDBTransactionMode,\n fn: (store: IDBObjectStore) => void\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const tx = db.transaction(storeName, mode);\n const store = tx.objectStore(storeName);\n tx.oncomplete = () => resolve();\n tx.onerror = () => reject(tx.error);\n tx.onabort = () => reject(tx.error);\n try {\n fn(store);\n } catch (err) {\n try {\n tx.abort();\n } catch {\n /* already aborted */\n }\n reject(err);\n }\n });\n}\n\n/** Walk every record in a store. */\nexport function iterateCursor<V>(\n db: IDBDatabase,\n storeName: string,\n visit: (key: IDBValidKey, value: V) => void\n): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n const tx = db.transaction(storeName, \"readonly\");\n const store = tx.objectStore(storeName);\n const request = store.openCursor();\n request.onsuccess = () => {\n const cursor = request.result;\n if (!cursor) return resolve();\n visit(cursor.key, cursor.value as V);\n cursor.continue();\n };\n request.onerror = () => reject(request.error);\n });\n}\n",
6
+ "// Storage adapters for different execution contexts\n// Automatically chooses the right storage mechanism based on environment\n\nimport { cachedOpen, runRequest, runTx } from \"./idb-helpers\";\n\n/**\n * Universal storage adapter interface\n */\nexport interface StorageAdapter {\n get<T = unknown>(keys: string[]): Promise<Record<string, T>>;\n set(items: Record<string, unknown>): Promise<void>;\n remove(keys: string[]): Promise<void>;\n}\n\n/**\n * IndexedDB adapter for web apps\n */\nexport class IndexedDBAdapter implements StorageAdapter {\n private readonly dbName: string;\n private readonly storeName = \"state\";\n private readonly dbRef: { promise: Promise<IDBDatabase> | null } = { promise: null };\n\n constructor(dbName = \"polly-state\") {\n this.dbName = dbName;\n }\n\n private getDB(): Promise<IDBDatabase> {\n return cachedOpen(this.dbRef, {\n name: this.dbName,\n version: 1,\n upgrade: (db) => {\n if (!db.objectStoreNames.contains(this.storeName)) {\n db.createObjectStore(this.storeName);\n }\n },\n });\n }\n\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n try {\n const db = await this.getDB();\n const tx = db.transaction(this.storeName, \"readonly\");\n const store = tx.objectStore(this.storeName);\n const pairs = await Promise.all(\n keys.map(async (key) => [key, await runRequest(store.get(key))] as const)\n );\n const result: Record<string, T> = {};\n for (const [key, value] of pairs) {\n if (value !== undefined) result[key] = value as T;\n }\n return result;\n } catch (error) {\n console.warn(\"[Polly] IndexedDB get failed:\", error);\n return {};\n }\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n try {\n const db = await this.getDB();\n await runTx(db, this.storeName, \"readwrite\", (store) => {\n for (const [key, value] of Object.entries(items)) {\n store.put(value, key);\n }\n });\n } catch (error) {\n console.warn(\"[Polly] IndexedDB set failed:\", error);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n try {\n const db = await this.getDB();\n await runTx(db, this.storeName, \"readwrite\", (store) => {\n for (const key of keys) store.delete(key);\n });\n } catch (error) {\n console.warn(\"[Polly] IndexedDB remove failed:\", error);\n }\n }\n}\n\n/**\n * Chrome storage adapter for extensions\n */\nexport class ChromeStorageAdapter implements StorageAdapter {\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return {};\n }\n\n try {\n return (await chrome.storage.local.get(keys)) as unknown as Record<string, T>;\n } catch (error) {\n console.warn(\"[Polly] Chrome storage get failed:\", error);\n return {};\n }\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return;\n }\n\n try {\n await chrome.storage.local.set(items);\n } catch (error) {\n console.warn(\"[Polly] Chrome storage set failed:\", error);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n if (typeof chrome === \"undefined\" || !chrome.storage) {\n return;\n }\n\n try {\n await chrome.storage.local.remove(keys);\n } catch (error) {\n console.warn(\"[Polly] Chrome storage remove failed:\", error);\n }\n }\n}\n\n/**\n * In-memory adapter (no persistence) for testing or server contexts\n */\nexport class MemoryStorageAdapter implements StorageAdapter {\n private storage = new Map<string, unknown>();\n\n async get<T = unknown>(keys: string[]): Promise<Record<string, T>> {\n const result: Record<string, T> = {};\n for (const key of keys) {\n const value = this.storage.get(key);\n if (value !== undefined) {\n result[key] = value as unknown as T;\n }\n }\n return result;\n }\n\n async set(items: Record<string, unknown>): Promise<void> {\n for (const [key, value] of Object.entries(items)) {\n this.storage.set(key, value);\n }\n }\n\n async remove(keys: string[]): Promise<void> {\n for (const key of keys) {\n this.storage.delete(key);\n }\n }\n}\n\n/**\n * Detect execution context and return appropriate storage adapter\n */\nexport function createStorageAdapter(): StorageAdapter {\n // Chrome extension context\n if (typeof chrome !== \"undefined\" && chrome.storage && chrome.runtime) {\n return new ChromeStorageAdapter();\n }\n\n // Web app context (has IndexedDB)\n if (typeof indexedDB !== \"undefined\") {\n return new IndexedDBAdapter();\n }\n\n // Server/test context (no persistent storage available)\n return new MemoryStorageAdapter();\n}\n",
6
7
  "// Sync adapter interface for cross-context state synchronization\n// Abstracts the transport mechanism (chrome.runtime, BroadcastChannel, etc.)\n//\n// Architecture Decision: BroadcastChannel vs SharedWorker\n// We currently use BroadcastChannel for web app sync because:\n// - Simpler API with no lifecycle management complexity\n// - Decentralized (aligns with local-first/offline-first architecture)\n// - Better browser support (especially Safari and mobile)\n// - Perfect for message-passing with Lamport clock conflict resolution\n// - No single point of failure\n//\n// Future Consideration: SharedWorker Support\n// SharedWorker could be added as an optional adapter for use cases requiring:\n// - Central coordination point for complex multi-tab workflows\n// - Shared WebSocket connections (one connection for all tabs)\n// - Heavy computation done once and shared across tabs\n// - Persistent background work when tabs are closed\n// - Transaction coordination across tabs\n//\n// For most Polly use cases, BroadcastChannel's peer-to-peer model is preferred,\n// but SharedWorker support could be valuable for advanced scenarios.\n\n/**\n * Message format for state synchronization\n */\nexport interface StateSyncMessage<T = unknown> {\n key: string;\n value: T;\n clock: number;\n}\n\n/**\n * Sync adapter interface - abstracts the transport mechanism for state sync\n *\n * Different contexts use different transports:\n * - Chrome extensions: chrome.runtime messaging\n * - Web apps (multi-tab): BroadcastChannel\n * - PWAs: BroadcastChannel + Service Worker messaging\n * - Single-context: NoOp (no sync needed)\n */\nexport interface SyncAdapter {\n /**\n * Broadcast a state update to other contexts\n */\n broadcast<T>(message: StateSyncMessage<T>): void;\n\n /**\n * Register a callback for incoming state updates\n */\n onMessage<T>(callback: (message: StateSyncMessage<T>) => void): () => void;\n\n /**\n * Optional: Connect to the sync mechanism\n * Some transports require explicit connection setup\n */\n connect?(): Promise<void>;\n\n /**\n * Optional: Disconnect from the sync mechanism\n */\n disconnect?(): void;\n\n /**\n * Optional: Check if connected\n */\n isConnected?(): boolean;\n}\n\n/**\n * NoOp sync adapter for single-context scenarios (no sync needed)\n */\nexport class NoOpSyncAdapter implements SyncAdapter {\n broadcast<T>(_message: StateSyncMessage<T>): void {\n // No-op: single context, no need to sync\n }\n\n onMessage<T>(_callback: (message: StateSyncMessage<T>) => void): () => void {\n // No-op: no messages will ever arrive\n return () => {\n // Empty cleanup function - nothing to clean up for null adapter\n };\n }\n}\n\n/**\n * Chrome runtime sync adapter for Chrome extensions\n * Uses chrome.runtime.sendMessage for cross-context messaging\n */\nexport class ChromeRuntimeSyncAdapter implements SyncAdapter {\n private listeners: Array<(message: StateSyncMessage<unknown>) => void> = [];\n private port: chrome.runtime.Port | null = null;\n\n constructor() {\n // Set up listener for incoming messages\n if (typeof chrome !== \"undefined\" && chrome.runtime) {\n chrome.runtime.onMessage.addListener((message, _sender, _sendResponse) => {\n if (message.type === \"STATE_SYNC\") {\n this.listeners.forEach((listener) => {\n listener(message);\n });\n }\n });\n }\n }\n\n broadcast<T>(message: StateSyncMessage<T>): void {\n if (typeof chrome === \"undefined\" || !chrome.runtime) {\n console.warn(\"[SyncAdapter] chrome.runtime not available\");\n return;\n }\n\n try {\n chrome.runtime.sendMessage({\n type: \"STATE_SYNC\",\n key: message.key,\n value: message.value,\n clock: message.clock,\n });\n } catch (error) {\n console.warn(\"[SyncAdapter] Failed to broadcast state update:\", error);\n }\n }\n\n onMessage<T>(callback: (message: StateSyncMessage<T>) => void): () => void {\n this.listeners.push(callback as unknown as (message: StateSyncMessage<unknown>) => void);\n\n // Return cleanup function\n return () => {\n const index = this.listeners.indexOf(\n callback as unknown as (message: StateSyncMessage<unknown>) => void\n );\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n connect(): Promise<void> {\n // Chrome runtime is always connected\n return Promise.resolve();\n }\n\n disconnect(): void {\n this.listeners = [];\n if (this.port) {\n this.port.disconnect();\n this.port = null;\n }\n }\n\n isConnected(): boolean {\n return typeof chrome !== \"undefined\" && !!chrome.runtime;\n }\n}\n\n/**\n * BroadcastChannel sync adapter for web apps (multi-tab)\n * Uses BroadcastChannel API for cross-tab messaging\n */\nexport class BroadcastChannelSyncAdapter implements SyncAdapter {\n private channel: BroadcastChannel | null = null;\n private listeners: Array<(message: StateSyncMessage<unknown>) => void> = [];\n\n constructor(channelName = \"polly-sync\") {\n if (typeof BroadcastChannel === \"undefined\") {\n console.warn(\"[SyncAdapter] BroadcastChannel not available\");\n } else {\n this.channel = new BroadcastChannel(channelName);\n\n this.channel.onmessage = (event) => {\n if (event.data.type === \"STATE_SYNC\") {\n this.listeners.forEach((listener) => {\n listener(event.data);\n });\n }\n };\n }\n }\n\n broadcast<T>(message: StateSyncMessage<T>): void {\n if (!this.channel) {\n console.warn(\"[SyncAdapter] BroadcastChannel not initialized\");\n return;\n }\n\n try {\n this.channel.postMessage({\n type: \"STATE_SYNC\",\n key: message.key,\n value: message.value,\n clock: message.clock,\n });\n } catch (error) {\n console.warn(\"[SyncAdapter] Failed to broadcast state update:\", error);\n }\n }\n\n onMessage<T>(callback: (message: StateSyncMessage<T>) => void): () => void {\n this.listeners.push(callback as unknown as (message: StateSyncMessage<unknown>) => void);\n\n // Return cleanup function\n return () => {\n const index = this.listeners.indexOf(\n callback as unknown as (message: StateSyncMessage<unknown>) => void\n );\n if (index > -1) {\n this.listeners.splice(index, 1);\n }\n };\n }\n\n connect(): Promise<void> {\n // BroadcastChannel connects immediately on construction\n return Promise.resolve();\n }\n\n disconnect(): void {\n this.listeners = [];\n if (this.channel) {\n this.channel.close();\n this.channel = null;\n }\n }\n\n isConnected(): boolean {\n return this.channel !== null;\n }\n}\n\n/**\n * Detect available sync mechanisms and create appropriate adapter\n */\nexport function createSyncAdapter(): SyncAdapter {\n // Chrome extension context - use chrome.runtime\n if (typeof chrome !== \"undefined\" && chrome.runtime) {\n return new ChromeRuntimeSyncAdapter();\n }\n\n // Web app with multi-tab support - use BroadcastChannel\n if (typeof BroadcastChannel !== \"undefined\") {\n return new BroadcastChannelSyncAdapter();\n }\n\n // Single context or no sync available - use NoOp\n return new NoOpSyncAdapter();\n}\n",
7
8
  "/**\n * Runtime constraint checking for message handlers\n *\n * Provides runtime enforcement of $constraints() declarations.\n * Constraints can be checked before handler execution to ensure preconditions are met.\n */\n\ntype ConstraintFunction = (state: unknown) => boolean;\n\ntype Constraint = {\n requires?: ConstraintFunction;\n ensures?: ConstraintFunction;\n message?: string;\n};\n\n// Registry maps: stateField -> messageType -> constraint\nconst registry = new Map<string, Map<string, Constraint>>();\n\n/**\n * Register a constraint for runtime checking.\n *\n * @param field - State field this constraint applies to\n * @param messageType - Message type this constraint applies to\n * @param constraint - Constraint definition with requires/ensures predicates\n */\nexport function registerConstraint(\n field: string,\n messageType: string,\n constraint: Constraint\n): void {\n if (!registry.has(field)) {\n registry.set(field, new Map());\n }\n registry.get(field)?.set(messageType, constraint);\n}\n\n/**\n * Register multiple constraints for a state field.\n *\n * @param field - State field these constraints apply to\n * @param constraints - Map of messageType to constraint definitions\n */\nexport function registerConstraints(\n field: string,\n constraints: Record<\n string,\n {\n requires?: ConstraintFunction | string;\n ensures?: ConstraintFunction | string;\n message?: string;\n }\n >\n): void {\n for (const [messageType, constraint] of Object.entries(constraints)) {\n // Only register function-based constraints (strings are for TLA+ generation)\n const runtimeConstraint: Constraint = {\n message: constraint.message,\n };\n\n if (typeof constraint.requires === \"function\") {\n runtimeConstraint.requires = constraint.requires;\n }\n\n if (typeof constraint.ensures === \"function\") {\n runtimeConstraint.ensures = constraint.ensures;\n }\n\n // Only register if there's at least one function-based constraint\n if (runtimeConstraint.requires || runtimeConstraint.ensures) {\n registerConstraint(field, messageType, runtimeConstraint);\n }\n }\n}\n\n/**\n * Execute a constraint predicate and handle errors\n */\nfunction executeConstraint(\n predicate: ConstraintFunction,\n state: unknown,\n messageType: string,\n field: string,\n customMessage?: string,\n constraintType: \"Precondition\" | \"Postcondition\" = \"Precondition\"\n): void {\n try {\n const result = predicate(state);\n if (!result) {\n const message =\n customMessage || `${constraintType} failed for ${messageType} on field ${field}`;\n throw new Error(message);\n }\n } catch (error) {\n // Re-throw if it's already our constraint error\n if (error instanceof Error && error.message.includes(`${constraintType} failed`)) {\n throw error;\n }\n // Wrap other errors with context\n const message =\n customMessage || `${constraintType} check error for ${messageType} on field ${field}`;\n throw new Error(`${message}: ${error}`);\n }\n}\n\n/**\n * Check preconditions for a message type before handler execution.\n *\n * @param messageType - The message type being handled\n * @param state - Current state object to check against\n * @throws Error if any precondition fails\n */\nexport function checkPreconditions(messageType: string, state: unknown): void {\n for (const [field, constraints] of registry) {\n const constraint = constraints.get(messageType);\n if (constraint?.requires) {\n executeConstraint(\n constraint.requires,\n state,\n messageType,\n field,\n constraint.message,\n \"Precondition\"\n );\n }\n }\n}\n\n/**\n * Check postconditions for a message type after handler execution.\n *\n * @param messageType - The message type that was handled\n * @param state - Current state object to check against\n * @throws Error if any postcondition fails\n */\nexport function checkPostconditions(messageType: string, state: unknown): void {\n for (const [field, constraints] of registry) {\n const constraint = constraints.get(messageType);\n if (constraint?.ensures) {\n executeConstraint(\n constraint.ensures,\n state,\n messageType,\n field,\n constraint.message,\n \"Postcondition\"\n );\n }\n }\n}\n\n/**\n * Clear all registered constraints (useful for testing).\n */\nexport function clearConstraints(): void {\n registry.clear();\n}\n\n/**\n * Get all registered constraints (for debugging).\n */\nexport function getRegisteredConstraints(): Map<string, Map<string, Constraint>> {\n return new Map(registry);\n}\n\n/**\n * Check if runtime constraint checking is enabled.\n * Controlled via POLLY_RUNTIME_CONSTRAINTS environment variable.\n */\nexport function isRuntimeConstraintsEnabled(): boolean {\n // Check environment variable\n if (typeof process !== \"undefined\" && process.env) {\n return process.env[\"POLLY_RUNTIME_CONSTRAINTS\"] === \"true\";\n }\n\n // Check for Bun\n if (typeof Bun !== \"undefined\" && Bun.env) {\n return Bun.env[\"POLLY_RUNTIME_CONSTRAINTS\"] === \"true\";\n }\n\n // Default: disabled\n return false;\n}\n",
8
9
  "// Chrome context menus adapter implementation\n\nimport type { ContextMenusAdapter } from \"../context-menus.adapter\";\n\nexport class ChromeContextMenusAdapter implements ContextMenusAdapter {\n async create(createProperties: chrome.contextMenus.CreateProperties): Promise<void> {\n return new Promise((resolve, reject) => {\n chrome.contextMenus.create(createProperties, () => {\n if (chrome.runtime.lastError) {\n reject(new Error(chrome.runtime.lastError.message));\n } else {\n resolve();\n }\n });\n });\n }\n\n async update(\n id: string,\n updateProperties: Omit<chrome.contextMenus.CreateProperties, \"id\">\n ): Promise<void> {\n await chrome.contextMenus.update(id, updateProperties);\n }\n\n async remove(id: string): Promise<void> {\n await chrome.contextMenus.remove(id);\n }\n\n async removeAll(): Promise<void> {\n await chrome.contextMenus.removeAll();\n }\n\n onClicked(\n callback: (info: chrome.contextMenus.OnClickData, tab?: chrome.tabs.Tab) => void\n ): void {\n chrome.contextMenus.onClicked.addListener(callback);\n }\n}\n",
@@ -24,7 +25,7 @@
24
25
  "// Centralized logging service - collects logs from all contexts\nimport type { MessageBus } from \"@/shared/lib/message-bus\";\nimport { getMessageBus } from \"@/shared/lib/message-bus\";\nimport type { LogEntry } from \"@/shared/types/messages\";\n\nexport interface LogStoreOptions {\n maxLogs?: number;\n persistToStorage?: boolean;\n storageKey?: string;\n}\n\nexport class LogStore {\n private bus: MessageBus;\n private logs: LogEntry[] = [];\n private maxLogs: number;\n\n constructor(bus?: MessageBus, options?: LogStoreOptions) {\n this.bus = bus || getMessageBus(\"background\");\n this.maxLogs = options?.maxLogs || 1000;\n this.setupHandlers();\n }\n\n private setupHandlers(): void {\n // Handle LOG messages from all contexts\n this.bus.on(\"LOG\", async (payload) => {\n const entry: LogEntry = {\n id: crypto.randomUUID(),\n level: payload.level,\n message: payload.message,\n ...(payload.context && { context: payload.context }),\n ...(payload.error && { error: payload.error }),\n ...(payload.stack && { stack: payload.stack }),\n source: payload.source,\n timestamp: payload.timestamp,\n };\n\n // Add to circular buffer\n this.logs.push(entry);\n\n // Remove oldest if exceeding max\n if (this.logs.length > this.maxLogs) {\n this.logs.shift();\n }\n\n return { success: true };\n });\n\n // Handle LOGS_GET with filtering\n this.bus.on(\"LOGS_GET\", async (payload) => {\n let filtered = this.logs;\n\n // Filter by level\n if (payload.filters?.level) {\n filtered = filtered.filter((log) => log.level === payload.filters?.level);\n }\n\n // Filter by source context\n if (payload.filters?.source) {\n filtered = filtered.filter((log) => log.source === payload.filters?.source);\n }\n\n // Filter by timestamp (since)\n if (payload.filters?.since !== undefined) {\n const since = payload.filters.since;\n filtered = filtered.filter((log) => log.timestamp >= since);\n }\n\n // Limit results\n if (payload.filters?.limit) {\n filtered = filtered.slice(-payload.filters.limit);\n }\n\n return { logs: filtered };\n });\n\n // Handle LOGS_CLEAR\n this.bus.on(\"LOGS_CLEAR\", async () => {\n const count = this.logs.length;\n this.logs = [];\n return { success: true, count };\n });\n\n // Handle LOGS_EXPORT\n this.bus.on(\"LOGS_EXPORT\", async () => {\n const json = JSON.stringify(this.logs, null, 2);\n return { json, count: this.logs.length };\n });\n }\n\n /**\n * Get current log count (for debugging)\n */\n getCount(): number {\n return this.logs.length;\n }\n\n /**\n * Get all logs (for debugging)\n */\n getAllLogs(): LogEntry[] {\n return [...this.logs];\n }\n}\n",
25
26
  "// Background helper - simplifies background script setup\n\nimport type { ExtensionAdapters } from \"../shared/adapters\";\nimport type { MessageBus } from \"../shared/lib/message-bus\";\nimport { getMessageBus } from \"../shared/lib/message-bus\";\nimport type { BaseMessage, ExtensionMessage } from \"../shared/types/messages\";\nimport { MessageRouter } from \"./message-router\";\n\n/**\n * Initialize background script with message router.\n *\n * This is the recommended way to setup your background script.\n * It automatically creates the message bus and router.\n *\n * @param adapters - Optional extension adapters. If not provided, Chrome adapters will be used.\n * @returns MessageBus instance for registering handlers\n *\n * @example\n * ```typescript\n * // src/background/index.ts\n * import { createBackground } from '@fairfox/web-ext/background'\n *\n * const bus = createBackground()\n *\n * bus.on('MY_MESSAGE', async (payload) => {\n * return { success: true }\n * })\n * ```\n *\n * @example With custom message types\n * ```typescript\n * type MyMessages = { type: 'MY_MESSAGE'; data: string }\n * const bus = createBackground<MyMessages>()\n * ```\n *\n * @example With mock adapters for testing\n * ```typescript\n * import { createMockAdapters } from '@fairfox/polly/test'\n * const bus = createBackground(createMockAdapters())\n * ```\n */\nexport function createBackground<TMessage extends BaseMessage = ExtensionMessage>(\n adapters?: ExtensionAdapters\n): MessageBus<TMessage> {\n // Create MessageBus without setting up listeners (MessageRouter will handle that)\n const bus = getMessageBus<TMessage>(\"background\", adapters, { skipListenerSetup: true });\n\n // Initialize MessageRouter to handle all message routing (generic type matches)\n new MessageRouter<TMessage>(bus);\n\n return bus;\n}\n\nexport { getMessageBus } from \"../shared/lib/message-bus\";\n// Re-export for convenience\nexport { LogStore, type LogStoreOptions } from \"./log-store\";\nexport { MessageRouter } from \"./message-router\";\n"
26
27
  ],
27
- "mappings": "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",
28
- "debugId": "BF126EE99FF7C8AE64756E2164756E21",
28
+ "mappings": "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",
29
+ "debugId": "DF25781A5C68A52464756E2164756E21",
29
30
  "names": []
30
31
  }