@fairfox/polly 0.61.0 → 0.62.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.
package/dist/src/index.js CHANGED
@@ -69,6 +69,90 @@ 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) {
74
+ return new Promise((resolve, reject) => {
75
+ const start = Date.now();
76
+ const request = indexedDB.open(options.name, options.version);
77
+ let settled = false;
78
+ const timer = setTimeout(() => {
79
+ if (settled)
80
+ return;
81
+ settled = true;
82
+ const elapsedMs = Date.now() - start;
83
+ reject(new Error(`Polly IndexedDB open of '${options.name}' timed out after ${elapsedMs}ms (cross-tab lock or zombie connection?)`));
84
+ }, IDB_OPEN_TIMEOUT_MS);
85
+ request.onerror = () => {
86
+ if (settled)
87
+ return;
88
+ settled = true;
89
+ clearTimeout(timer);
90
+ reject(request.error);
91
+ };
92
+ request.onsuccess = () => {
93
+ if (settled)
94
+ return;
95
+ settled = true;
96
+ clearTimeout(timer);
97
+ resolve(request.result);
98
+ };
99
+ request.onupgradeneeded = (event) => {
100
+ const db = event.target.result;
101
+ options.upgrade(db, event);
102
+ };
103
+ });
104
+ }
105
+ function cachedOpen(ref, options) {
106
+ if (ref.promise)
107
+ return ref.promise;
108
+ const pending = openIDB(options);
109
+ pending.catch(() => {
110
+ if (ref.promise === pending)
111
+ ref.promise = null;
112
+ });
113
+ ref.promise = pending;
114
+ return pending;
115
+ }
116
+ function runRequest(request) {
117
+ return new Promise((resolve, reject) => {
118
+ request.onsuccess = () => resolve(request.result);
119
+ request.onerror = () => reject(request.error);
120
+ });
121
+ }
122
+ function runTx(db, storeName, mode, fn) {
123
+ return new Promise((resolve, reject) => {
124
+ const tx = db.transaction(storeName, mode);
125
+ const store = tx.objectStore(storeName);
126
+ tx.oncomplete = () => resolve();
127
+ tx.onerror = () => reject(tx.error);
128
+ tx.onabort = () => reject(tx.error);
129
+ try {
130
+ fn(store);
131
+ } catch (err) {
132
+ try {
133
+ tx.abort();
134
+ } catch {}
135
+ reject(err);
136
+ }
137
+ });
138
+ }
139
+ function iterateCursor(db, storeName, visit) {
140
+ return new Promise((resolve, reject) => {
141
+ const tx = db.transaction(storeName, "readonly");
142
+ const store = tx.objectStore(storeName);
143
+ const request = store.openCursor();
144
+ request.onsuccess = () => {
145
+ const cursor = request.result;
146
+ if (!cursor)
147
+ return resolve();
148
+ visit(cursor.key, cursor.value);
149
+ cursor.continue();
150
+ };
151
+ request.onerror = () => reject(request.error);
152
+ });
153
+ }
154
+ var IDB_OPEN_TIMEOUT_MS = 5000;
155
+
72
156
  // src/shared/lib/storage-adapter.ts
73
157
  var exports_storage_adapter = {};
74
158
  __export(exports_storage_adapter, {
@@ -81,68 +165,32 @@ __export(exports_storage_adapter, {
81
165
  class IndexedDBAdapter {
82
166
  dbName;
83
167
  storeName = "state";
84
- dbPromise = null;
168
+ dbRef = { promise: null };
85
169
  constructor(dbName = "polly-state") {
86
170
  this.dbName = dbName;
87
171
  }
88
172
  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;
173
+ return cachedOpen(this.dbRef, {
174
+ name: this.dbName,
175
+ version: 1,
176
+ upgrade: (db) => {
118
177
  if (!db.objectStoreNames.contains(this.storeName)) {
119
178
  db.createObjectStore(this.storeName);
120
179
  }
121
- };
122
- });
123
- pending.catch(() => {
124
- if (this.dbPromise === pending)
125
- this.dbPromise = null;
180
+ }
126
181
  });
127
- this.dbPromise = pending;
128
- return pending;
129
182
  }
130
183
  async get(keys) {
131
184
  try {
132
185
  const db = await this.getDB();
186
+ const tx = db.transaction(this.storeName, "readonly");
187
+ const store = tx.objectStore(this.storeName);
188
+ const pairs = await Promise.all(keys.map(async (key) => [key, await runRequest(store.get(key))]));
133
189
  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
- })));
190
+ for (const [key, value] of pairs) {
191
+ if (value !== undefined)
192
+ result[key] = value;
193
+ }
146
194
  return result;
147
195
  } catch (error) {
148
196
  console.warn("[Polly] IndexedDB get failed:", error);
@@ -152,13 +200,11 @@ class IndexedDBAdapter {
152
200
  async set(items) {
153
201
  try {
154
202
  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
- })));
203
+ await runTx(db, this.storeName, "readwrite", (store) => {
204
+ for (const [key, value] of Object.entries(items)) {
205
+ store.put(value, key);
206
+ }
207
+ });
162
208
  } catch (error) {
163
209
  console.warn("[Polly] IndexedDB set failed:", error);
164
210
  }
@@ -166,13 +212,10 @@ class IndexedDBAdapter {
166
212
  async remove(keys) {
167
213
  try {
168
214
  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
- })));
215
+ await runTx(db, this.storeName, "readwrite", (store) => {
216
+ for (const key of keys)
217
+ store.delete(key);
218
+ });
176
219
  } catch (error) {
177
220
  console.warn("[Polly] IndexedDB remove failed:", error);
178
221
  }
@@ -245,7 +288,7 @@ function createStorageAdapter() {
245
288
  }
246
289
  return new MemoryStorageAdapter;
247
290
  }
248
- var IDB_OPEN_TIMEOUT_MS = 5000;
291
+ var init_storage_adapter = () => {};
249
292
 
250
293
  // src/shared/lib/sync-adapter.ts
251
294
  var exports_sync_adapter = {};
@@ -749,6 +792,7 @@ class MessageLoggerAdapter {
749
792
  }
750
793
 
751
794
  // src/shared/lib/adapter-factory.ts
795
+ init_storage_adapter();
752
796
  function createStateAdapters(options = {}) {
753
797
  if (options.storage && options.sync) {
754
798
  return {
@@ -769,7 +813,7 @@ function createStateAdapters(options = {}) {
769
813
  return { storage, sync };
770
814
  }
771
815
  function createChromeAdapters() {
772
- const { ChromeStorageAdapter: ChromeStorageAdapter3 } = __toCommonJS(exports_storage_adapter);
816
+ const { ChromeStorageAdapter: ChromeStorageAdapter3 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
773
817
  const { ChromeRuntimeSyncAdapter: ChromeRuntimeSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
774
818
  return {
775
819
  storage: new ChromeStorageAdapter3,
@@ -777,14 +821,14 @@ function createChromeAdapters() {
777
821
  };
778
822
  }
779
823
  function createWebAdapters(options = {}) {
780
- const { IndexedDBAdapter: IndexedDBAdapter2 } = __toCommonJS(exports_storage_adapter);
824
+ const { IndexedDBAdapter: IndexedDBAdapter2 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
781
825
  const { BroadcastChannelSyncAdapter: BroadcastChannelSyncAdapter2, NoOpSyncAdapter: NoOpSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
782
826
  const storage = new IndexedDBAdapter2(options.dbName);
783
827
  const sync = options.singleTab ? new NoOpSyncAdapter2 : new BroadcastChannelSyncAdapter2(options.channelName);
784
828
  return { storage, sync };
785
829
  }
786
830
  function createNodeAdapters() {
787
- const { MemoryStorageAdapter: MemoryStorageAdapter2 } = __toCommonJS(exports_storage_adapter);
831
+ const { MemoryStorageAdapter: MemoryStorageAdapter2 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
788
832
  const { NoOpSyncAdapter: NoOpSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
789
833
  return {
790
834
  storage: new MemoryStorageAdapter2,
@@ -792,7 +836,7 @@ function createNodeAdapters() {
792
836
  };
793
837
  }
794
838
  function createMockAdapters() {
795
- const { MemoryStorageAdapter: MemoryStorageAdapter2 } = __toCommonJS(exports_storage_adapter);
839
+ const { MemoryStorageAdapter: MemoryStorageAdapter2 } = (init_storage_adapter(), __toCommonJS(exports_storage_adapter));
796
840
  const { NoOpSyncAdapter: NoOpSyncAdapter2 } = __toCommonJS(exports_sync_adapter);
797
841
  return {
798
842
  storage: new MemoryStorageAdapter2,
@@ -801,6 +845,7 @@ function createMockAdapters() {
801
845
  }
802
846
 
803
847
  // src/shared/adapters/index.ts
848
+ init_storage_adapter();
804
849
  function createChromeAdapters2(context, options) {
805
850
  const runtime2 = new ChromeRuntimeAdapter;
806
851
  return {
@@ -1641,6 +1686,7 @@ function runInContext(context, contexts, fn, adapters) {
1641
1686
  }
1642
1687
 
1643
1688
  // src/shared/lib/state.ts
1689
+ init_storage_adapter();
1644
1690
  import { effect, signal } from "@preact/signals";
1645
1691
  var stateRegistry = new Map;
1646
1692
  function $sharedState(key, initialValue, options = {}) {
@@ -2208,4 +2254,4 @@ export {
2208
2254
  $persistedState
2209
2255
  };
2210
2256
 
2211
- //# debugId=BBBEC66A67794B8464756E2164756E21
2257
+ //# debugId=0495B75390D5FB4464756E2164756E21
@@ -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/shared/lib/context-helpers.ts", "../src/shared/lib/state.ts", "../src/shared/lib/resource.ts", "../src/shared/lib/test-helpers.ts", "../src/shared/state/app-state.ts", "../src/shared/lib/access.ts", "../src/shared/lib/blob-ref.ts", "../src/index.ts", "../src/shared/lib/validation.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/shared/lib/context-helpers.ts", "../src/shared/lib/state.ts", "../src/shared/lib/resource.ts", "../src/shared/lib/test-helpers.ts", "../src/shared/state/app-state.ts", "../src/shared/lib/access.ts", "../src/shared/lib/blob-ref.ts", "../src/index.ts", "../src/shared/lib/validation.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 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 an IndexedDB database with the Polly#107 timeout guard. */\nexport function openIDB(options: OpenIDBOptions): Promise<IDBDatabase> {\n return new Promise<IDBDatabase>((resolve, reject) => {\n const start = Date.now();\n const request = indexedDB.open(options.name, options.version);\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 '${options.name}' 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 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): Promise<IDBDatabase> {\n if (ref.promise) return ref.promise;\n const pending = openIDB(options);\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",
@@ -30,7 +31,7 @@
30
31
  "/**\n * @fairfox/web-ext\n *\n * Main entry point for framework exports.\n * Users can import from '@fairfox/web-ext' to get common utilities.\n */\n\nexport type { ExtensionAdapters } from \"./shared/adapters\";\n// Adapters\nexport { createChromeAdapters } from \"./shared/adapters\";\nexport type { Access, AccessPredicate, PeerIdentity } from \"./shared/lib/access\";\nexport {\n and,\n anyOfPeers,\n anyone,\n groupAccess,\n nobody,\n not,\n onlyPeer,\n or,\n ownerAccess,\n publicAccess,\n readOnlyExcept,\n} from \"./shared/lib/access\";\nexport type { BlobRef, CreateBlobRefArgs } from \"./shared/lib/blob-ref\";\nexport { computeBlobHash, createBlobRef, isBlobRef } from \"./shared/lib/blob-ref\";\n// Runtime constraint checking\nexport {\n checkPostconditions,\n checkPreconditions,\n clearConstraints,\n isRuntimeConstraintsEnabled,\n registerConstraint,\n registerConstraints,\n} from \"./shared/lib/constraints\";\nexport type { ContextConfig } from \"./shared/lib/context-helpers\";\n// Context helpers (DX improvements)\nexport { createContext, runInContext } from \"./shared/lib/context-helpers\";\n// Context-specific helpers (DX improvements)\nexport type {\n BackgroundHelpers,\n ContentScriptHelpers,\n DevToolsHelpers,\n OptionsHelpers,\n PopupHelpers,\n SidePanelHelpers,\n} from \"./shared/lib/context-specific-helpers\";\n// Errors\nexport {\n ConnectionError,\n ErrorHandler,\n ExtensionError,\n HandlerError,\n TimeoutError,\n} from \"./shared/lib/errors\";\n// Messaging\nexport { getMessageBus, MessageBus } from \"./shared/lib/message-bus\";\nexport type { Resource, ResourceOptions, ResourceStatus } from \"./shared/lib/resource\";\n// Async resource primitive\nexport { $resource } from \"./shared/lib/resource\";\n// State management\nexport { $persistedState, $sharedState, $state, $syncedState } from \"./shared/lib/state\";\n\nexport type { TestCase, TestSuite } from \"./shared/lib/test-helpers\";\n// Test utilities (DX improvements)\nexport { createTestSuite, quickTest, TestRunner } from \"./shared/lib/test-helpers\";\n// Validation helpers\nexport {\n validateArray,\n validateEnum,\n validatePartial,\n validateShape,\n} from \"./shared/lib/validation\";\nexport { settings } from \"./shared/state/app-state\";\n\n// Types\nexport type {\n Context,\n ExtensionMessage,\n MessageResponse,\n RoutedMessage,\n RoutedResponse,\n Settings,\n} from \"./shared/types/messages\";\n",
31
32
  "/**\n * Runtime type validation helpers\n *\n * Simple shape-based validation for use with state primitives.\n * For more complex validation, consider using Zod or similar libraries.\n */\n\ntype PrimitiveType = \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\" | \"null\" | \"undefined\";\n\ntype ShapeDefinition = Record<string, PrimitiveType | Record<string, PrimitiveType>>;\n\n/**\n * Check if a value matches a primitive type\n */\nfunction checkPrimitiveType(val: unknown, type: PrimitiveType): boolean {\n if (type === \"array\") return Array.isArray(val);\n if (type === \"null\") return val === null;\n if (type === \"undefined\") return val === undefined;\n return typeof val === type;\n}\n\n/**\n * Check if a field matches its expected type definition\n */\nfunction checkFieldType(\n val: unknown,\n type: PrimitiveType | Record<string, PrimitiveType>\n): boolean {\n if (typeof type === \"string\") {\n return checkPrimitiveType(val, type);\n }\n // Nested object validation\n return validateShape(type)(val);\n}\n\n/**\n * Create a type guard that validates an object's shape.\n *\n * @param shape - Object describing the expected types of each field\n * @returns Type guard function that performs runtime validation\n *\n * @example\n * ```typescript\n * type Settings = {\n * theme: string;\n * notifications: boolean;\n * apiEndpoint: string;\n * };\n *\n * const settings = $sharedState(\"settings\", defaultSettings, {\n * validator: validateShape<Settings>({\n * theme: 'string',\n * notifications: 'boolean',\n * apiEndpoint: 'string'\n * })\n * });\n * ```\n *\n * @example\n * ```typescript\n * // Nested objects\n * const state = $sharedState(\"user\", defaultUser, {\n * validator: validateShape<User>({\n * name: 'string',\n * profile: {\n * age: 'number',\n * email: 'string'\n * }\n * })\n * });\n * ```\n */\nexport function validateShape<T>(shape: ShapeDefinition): (value: unknown) => value is T {\n return (value: unknown): value is T => {\n if (typeof value !== \"object\" || value === null) return false;\n\n const obj = value as unknown as Record<string, unknown>;\n\n for (const [key, type] of Object.entries(shape)) {\n if (!(key in obj)) return false;\n if (!checkFieldType(obj[key], type)) return false;\n }\n\n return true;\n };\n}\n\n/**\n * Validate that a value is one of the allowed values.\n *\n * @param allowed - Array of allowed values\n * @returns Type guard function\n *\n * @example\n * ```typescript\n * type Theme = 'light' | 'dark' | 'auto';\n *\n * const isTheme = validateEnum<Theme>(['light', 'dark', 'auto']);\n * if (isTheme(value)) {\n * // value is Theme\n * }\n * ```\n */\nexport function validateEnum<T extends string | number>(\n allowed: readonly T[]\n): (value: unknown) => value is T {\n return (value: unknown): value is T => {\n return allowed.includes(value as unknown as T);\n };\n}\n\n/**\n * Validate that a value matches an array of a specific type.\n *\n * @param itemValidator - Validator for array items\n * @returns Type guard function for arrays\n *\n * @example\n * ```typescript\n * const isStringArray = validateArray<string>((v): v is string => typeof v === 'string');\n * if (isStringArray(value)) {\n * // value is string[]\n * }\n * ```\n */\nexport function validateArray<T>(\n itemValidator: (value: unknown) => value is T\n): (value: unknown) => value is T[] {\n return (value: unknown): value is T[] => {\n if (!Array.isArray(value)) return false;\n return value.every(itemValidator);\n };\n}\n\n/**\n * Create a partial validator that allows undefined/null for all fields.\n *\n * @param validator - Base validator function\n * @returns Validator that allows partial objects\n *\n * @example\n * ```typescript\n * const isSettings = validateShape<Settings>({ theme: 'string', autoSync: 'boolean' });\n * const isPartialSettings = validatePartial(isSettings);\n *\n * // Accepts { theme: 'dark' } or { autoSync: true } or { theme: 'dark', autoSync: true }\n * ```\n */\nexport function validatePartial<T>(\n _validator: (value: unknown) => value is T\n): (value: unknown) => value is Partial<T> {\n return (value: unknown): value is Partial<T> => {\n if (typeof value !== \"object\" || value === null) return false;\n // For partial validation, we just check that the object is of the right shape\n // but allow missing fields\n // TODO: Could use the validator to check present fields\n return true; // Simplified - could be more sophisticated\n };\n}\n"
32
33
  ],
33
- "mappings": "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",
34
- "debugId": "BBBEC66A67794B8464756E2164756E21",
34
+ "mappings": "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",
35
+ "debugId": "0495B75390D5FB4464756E2164756E21",
35
36
  "names": []
36
37
  }