@instantdb/core 0.22.61 → 0.22.62-experimental.codex-mcp.19585792766.1

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.
Files changed (52) hide show
  1. package/__tests__/src/utils/PersistedObject.test.ts +2 -0
  2. package/dist/commonjs/IndexedDBStorage.js +2 -1
  3. package/dist/commonjs/IndexedDBStorage.js.map +1 -1
  4. package/dist/commonjs/Reactor.d.ts +12 -10
  5. package/dist/commonjs/Reactor.d.ts.map +1 -1
  6. package/dist/commonjs/Reactor.js +6 -5
  7. package/dist/commonjs/Reactor.js.map +1 -1
  8. package/dist/commonjs/SyncTable.d.ts.map +1 -1
  9. package/dist/commonjs/SyncTable.js +36 -23
  10. package/dist/commonjs/SyncTable.js.map +1 -1
  11. package/dist/commonjs/authAPI.d.ts +1 -1
  12. package/dist/commonjs/authAPI.d.ts.map +1 -1
  13. package/dist/commonjs/authAPI.js.map +1 -1
  14. package/dist/commonjs/schema.js.map +1 -1
  15. package/dist/commonjs/schemaTypes.d.ts +3 -3
  16. package/dist/commonjs/schemaTypes.d.ts.map +1 -1
  17. package/dist/commonjs/schemaTypes.js.map +1 -1
  18. package/dist/commonjs/utils/PersistedObject.d.ts.map +1 -1
  19. package/dist/commonjs/utils/PersistedObject.js +2 -0
  20. package/dist/commonjs/utils/PersistedObject.js.map +1 -1
  21. package/dist/commonjs/utils/uuid.js.map +1 -1
  22. package/dist/esm/IndexedDBStorage.js +2 -1
  23. package/dist/esm/IndexedDBStorage.js.map +1 -1
  24. package/dist/esm/Reactor.d.ts +12 -10
  25. package/dist/esm/Reactor.d.ts.map +1 -1
  26. package/dist/esm/Reactor.js +6 -5
  27. package/dist/esm/Reactor.js.map +1 -1
  28. package/dist/esm/SyncTable.d.ts.map +1 -1
  29. package/dist/esm/SyncTable.js +36 -23
  30. package/dist/esm/SyncTable.js.map +1 -1
  31. package/dist/esm/authAPI.d.ts +1 -1
  32. package/dist/esm/authAPI.d.ts.map +1 -1
  33. package/dist/esm/authAPI.js.map +1 -1
  34. package/dist/esm/schema.js.map +1 -1
  35. package/dist/esm/schemaTypes.d.ts +3 -3
  36. package/dist/esm/schemaTypes.d.ts.map +1 -1
  37. package/dist/esm/schemaTypes.js.map +1 -1
  38. package/dist/esm/utils/PersistedObject.d.ts.map +1 -1
  39. package/dist/esm/utils/PersistedObject.js +2 -0
  40. package/dist/esm/utils/PersistedObject.js.map +1 -1
  41. package/dist/esm/utils/uuid.js.map +1 -1
  42. package/dist/standalone/index.js +645 -621
  43. package/dist/standalone/index.umd.cjs +3 -3
  44. package/package.json +2 -2
  45. package/src/IndexedDBStorage.ts +2 -2
  46. package/src/Reactor.js +14 -5
  47. package/src/SyncTable.ts +66 -42
  48. package/src/authAPI.ts +1 -1
  49. package/src/schema.ts +1 -1
  50. package/src/schemaTypes.ts +5 -3
  51. package/src/utils/PersistedObject.ts +10 -9
  52. package/src/utils/uuid.ts +1 -1
@@ -351,6 +351,8 @@ test('PersistedObject garbage collects when we exceed max age', async () => {
351
351
  // @ts-expect-error: allow access to private fields for test
352
352
  await PO._gc();
353
353
 
354
+ await PO.flush();
355
+
354
356
  const snapshot2 = await idbSnapshot(idb, { includeMeta: false });
355
357
 
356
358
  // It does get rid of unloaded keys
@@ -39,8 +39,9 @@ function existingDb(name) {
39
39
  resolve(db);
40
40
  };
41
41
  request.onupgradeneeded = (event) => {
42
+ var _a;
42
43
  const target = event.target;
43
- target.transaction.abort();
44
+ (_a = target.transaction) === null || _a === void 0 ? void 0 : _a.abort();
44
45
  resolve(null);
45
46
  };
46
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"IndexedDBStorage.js","sourceRoot":"","sources":["../../src/IndexedDBStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Meta,\n META_KEY,\n ObjectMeta,\n StorageInterface,\n StorageInterfaceStoreName,\n} from './utils/PersistedObject.ts';\n\n// Any time these are updates to the data format or new stores are added,\n// the version must be updated.\n// onupgradeneeded will be called, which is where you can\n// move objects from one idb to another.\n// We create a new IDB for each version change instead of\n// using their built-in versioning because they have no ability\n// to roll back and if multiple tabs are active, then you'll just\n// be stuck.\nconst version = 6;\n\nconst storeNames = ['kv', 'querySubs', 'syncSubs'] as const;\n\n// Check that we're not missing a store name in storeNames\ntype MissingStoreNames = Exclude<\n StorageInterfaceStoreName,\n (typeof storeNames)[number]\n>;\nconst _exhaustiveCheck: never = null as MissingStoreNames;\n\nfunction logErrorCb(source: string) {\n return function logError(event) {\n console.error('Error in IndexedDB event', { source, event });\n };\n}\n\nasync function existingDb(name: string): Promise<IDBDatabase | null> {\n return new Promise((resolve) => {\n const request = indexedDB.open(name);\n\n request.onerror = (_event) => {\n resolve(null);\n };\n\n request.onsuccess = (event) => {\n const target = event.target as IDBOpenDBRequest;\n const db = target.result;\n resolve(db);\n };\n\n request.onupgradeneeded = (event) => {\n const target = event.target as IDBOpenDBRequest;\n target.transaction.abort();\n resolve(null);\n };\n });\n}\n\nasync function upgradeQuerySubs5To6(\n hash: string,\n value: any,\n querySubStore: IDBObjectStore,\n): Promise<void> {\n const subs =\n // Backwards compatibility for older versions where we JSON.stringified before storing\n typeof value === 'string' ? JSON.parse(value) : value;\n if (!subs) {\n return;\n }\n const putReqs: Set<IDBRequest<IDBValidKey>> = new Set();\n return new Promise((resolve, reject) => {\n const objects = {};\n for (const [hash, v] of Object.entries(subs)) {\n const value = typeof v === 'string' ? JSON.parse(v) : v;\n if (value.lastAccessed) {\n const objectMeta: ObjectMeta = {\n createdAt: value.lastAccessed,\n updatedAt: value.lastAccessed,\n size: value.result?.store?.triples?.length ?? 0,\n };\n objects[hash] = objectMeta;\n }\n const putReq = querySubStore.put(value, hash);\n putReqs.add(putReq);\n }\n const meta: Meta<string> = { objects };\n const metaPutReq = querySubStore.put(meta, META_KEY);\n putReqs.add(metaPutReq);\n for (const r of putReqs) {\n r.onsuccess = () => {\n putReqs.delete(r);\n if (putReqs.size === 0) {\n resolve();\n }\n };\n r.onerror = (event) => {\n logErrorCb(`Move ${hash} to querySubs store failed`);\n reject(event);\n };\n }\n });\n}\n\nasync function moveKvEntry5To6(\n k: string,\n value: any,\n kvStore: IDBObjectStore,\n): Promise<void> {\n const request = kvStore.put(value, k);\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve();\n request.onerror = (event) => reject(event);\n });\n}\n\nasync function upgrade5To6(appId: string, v6Db: IDBDatabase): Promise<void> {\n const v5db = await existingDb(`instant_${appId}_5`);\n if (!v5db) {\n return;\n }\n\n const data: Array<[string, any]> = await new Promise((resolve, reject) => {\n const v5Tx = v5db.transaction(['kv'], 'readonly');\n const objectStore = v5Tx.objectStore('kv');\n const cursorReq = objectStore.openCursor();\n cursorReq.onerror = (event) => {\n reject(event);\n };\n const data: Array<[string, any]> = [];\n cursorReq.onsuccess = () => {\n const cursor = cursorReq.result;\n if (cursor) {\n const key = cursor.key as string;\n const value = cursor.value;\n data.push([key, value]);\n cursor.continue();\n } else {\n resolve(data);\n }\n };\n cursorReq.onerror = (event) => {\n reject(event);\n };\n });\n\n const v6Tx = v6Db.transaction(['kv', 'querySubs'], 'readwrite');\n\n const kvStore = v6Tx.objectStore('kv');\n const querySubStore = v6Tx.objectStore('querySubs');\n\n const promises = [];\n const kvMeta: Meta<string> = { objects: {} };\n for (const [key, value] of data) {\n switch (key) {\n case 'querySubs': {\n const p = upgradeQuerySubs5To6(key, value, querySubStore);\n promises.push(p);\n break;\n }\n default: {\n const p = moveKvEntry5To6(key as string, value, kvStore);\n promises.push(p);\n const objectMeta: ObjectMeta = {\n createdAt: Date.now(),\n updatedAt: Date.now(),\n size: 0,\n };\n kvMeta.objects[key] = objectMeta;\n break;\n }\n }\n }\n const p = moveKvEntry5To6(META_KEY, kvMeta, kvStore);\n promises.push(p);\n await Promise.all(promises);\n await new Promise((resolve, reject) => {\n v6Tx.oncomplete = (e) => resolve(e);\n v6Tx.onerror = (e) => reject(e);\n v6Tx.onabort = (e) => reject(e);\n });\n}\n\n// We create many IndexedDBStorage instances that talk to the same\n// underlying db, but we only get one `onupgradeneeded` event. This holds\n// the upgrade promises so that we wait until upgrade finishes before\n// we start writing.\nconst upgradePromises = new Map();\n\nexport default class IndexedDBStorage extends StorageInterface {\n dbName: string;\n _storeName: StorageInterfaceStoreName;\n _appId: string;\n _prefix: string;\n _dbPromise: Promise<IDBDatabase>;\n\n constructor(appId: string, storeName: StorageInterfaceStoreName) {\n super(appId, storeName);\n this.dbName = `instant_${appId}_${version}`;\n this._storeName = storeName;\n this._appId = appId;\n this._dbPromise = this._init();\n }\n\n _init(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n let requiresUpgrade = false;\n const request = indexedDB.open(this.dbName, 1);\n\n request.onerror = (event) => {\n reject(event);\n };\n\n request.onsuccess = (event) => {\n const target = event.target as IDBOpenDBRequest;\n const db = target.result;\n if (!requiresUpgrade) {\n const p = upgradePromises.get(this.dbName);\n if (!p) {\n resolve(db);\n } else {\n p.then(() => resolve(db)).catch(() => resolve(db));\n }\n } else {\n const p = upgrade5To6(this._appId, db).catch((e) => {\n logErrorCb('Error upgrading store from version 5 to 6.')(e);\n });\n upgradePromises.set(this.dbName, p);\n p.then(() => resolve(db)).catch(() => resolve(db));\n }\n };\n\n request.onupgradeneeded = (event) => {\n requiresUpgrade = true;\n this._upgradeStore(event);\n };\n });\n }\n\n _upgradeStore(event: IDBVersionChangeEvent) {\n const target = event.target as IDBOpenDBRequest;\n const db = target.result;\n for (const storeName of storeNames) {\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n }\n }\n\n async getItem(k: string): Promise<any> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readonly');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.get(k);\n request.onerror = (event) => {\n reject(event);\n };\n request.onsuccess = (_event) => {\n if (request.result) {\n resolve(request.result);\n } else {\n resolve(null);\n }\n };\n });\n }\n\n async setItem(k: string, v: any): Promise<void> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readwrite');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.put(v, k);\n\n request.onerror = (event) => {\n reject(event);\n };\n\n request.onsuccess = (_event) => {\n resolve();\n };\n });\n }\n\n // Performs all writes in a transaction so that all succeed or none succeed.\n async multiSet(keyValuePairs: Array<[string, any]>): Promise<void> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readwrite');\n const objectStore = transaction.objectStore(this._storeName);\n const requests: Set<IDBRequest<IDBValidKey>> = new Set();\n for (const [k, v] of keyValuePairs) {\n const request = objectStore.put(v, k);\n requests.add(request);\n }\n\n for (const request of requests) {\n request.onerror = (event) => {\n transaction.abort();\n reject(event);\n };\n request.onsuccess = (_event) => {\n requests.delete(request);\n // Last request to finish resolves the transaction\n if (requests.size === 0) {\n resolve();\n }\n };\n }\n });\n }\n\n async removeItem(k: string): Promise<void> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readwrite');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.delete(k);\n request.onerror = (event) => {\n reject(event);\n };\n\n request.onsuccess = (_event) => {\n resolve();\n };\n });\n }\n\n async getAllKeys(): Promise<string[]> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readonly');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.getAllKeys();\n request.onerror = (event) => {\n reject(event);\n };\n request.onsuccess = (_event) => {\n resolve(request.result.filter((x) => typeof x === 'string'));\n };\n });\n }\n}\n"]}
1
+ {"version":3,"file":"IndexedDBStorage.js","sourceRoot":"","sources":["../../src/IndexedDBStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Meta,\n META_KEY,\n ObjectMeta,\n StorageInterface,\n StorageInterfaceStoreName,\n} from './utils/PersistedObject.ts';\n\n// Any time these are updates to the data format or new stores are added,\n// the version must be updated.\n// onupgradeneeded will be called, which is where you can\n// move objects from one idb to another.\n// We create a new IDB for each version change instead of\n// using their built-in versioning because they have no ability\n// to roll back and if multiple tabs are active, then you'll just\n// be stuck.\nconst version = 6;\n\nconst storeNames = ['kv', 'querySubs', 'syncSubs'] as const;\n\n// Check that we're not missing a store name in storeNames\ntype MissingStoreNames = Exclude<\n StorageInterfaceStoreName,\n (typeof storeNames)[number]\n>;\nconst _exhaustiveCheck: never = null as MissingStoreNames;\n\nfunction logErrorCb(source: string) {\n return function logError(event) {\n console.error('Error in IndexedDB event', { source, event });\n };\n}\n\nasync function existingDb(name: string): Promise<IDBDatabase | null> {\n return new Promise((resolve) => {\n const request = indexedDB.open(name);\n\n request.onerror = (_event) => {\n resolve(null);\n };\n\n request.onsuccess = (event) => {\n const target = event.target as IDBOpenDBRequest;\n const db = target.result;\n resolve(db);\n };\n\n request.onupgradeneeded = (event) => {\n const target = event.target as IDBOpenDBRequest;\n target.transaction?.abort();\n resolve(null);\n };\n });\n}\n\nasync function upgradeQuerySubs5To6(\n hash: string,\n value: any,\n querySubStore: IDBObjectStore,\n): Promise<void> {\n const subs =\n // Backwards compatibility for older versions where we JSON.stringified before storing\n typeof value === 'string' ? JSON.parse(value) : value;\n if (!subs) {\n return;\n }\n const putReqs: Set<IDBRequest<IDBValidKey>> = new Set();\n return new Promise((resolve, reject) => {\n const objects = {};\n for (const [hash, v] of Object.entries(subs)) {\n const value = typeof v === 'string' ? JSON.parse(v) : v;\n if (value.lastAccessed) {\n const objectMeta: ObjectMeta = {\n createdAt: value.lastAccessed,\n updatedAt: value.lastAccessed,\n size: value.result?.store?.triples?.length ?? 0,\n };\n objects[hash] = objectMeta;\n }\n const putReq = querySubStore.put(value, hash);\n putReqs.add(putReq);\n }\n const meta: Meta<string> = { objects };\n const metaPutReq = querySubStore.put(meta, META_KEY);\n putReqs.add(metaPutReq);\n for (const r of putReqs) {\n r.onsuccess = () => {\n putReqs.delete(r);\n if (putReqs.size === 0) {\n resolve();\n }\n };\n r.onerror = (event) => {\n logErrorCb(`Move ${hash} to querySubs store failed`);\n reject(event);\n };\n }\n });\n}\n\nasync function moveKvEntry5To6(\n k: string,\n value: any,\n kvStore: IDBObjectStore,\n): Promise<void> {\n const request = kvStore.put(value, k);\n return new Promise((resolve, reject) => {\n request.onsuccess = () => resolve();\n request.onerror = (event) => reject(event);\n });\n}\n\nasync function upgrade5To6(appId: string, v6Db: IDBDatabase): Promise<void> {\n const v5db = await existingDb(`instant_${appId}_5`);\n if (!v5db) {\n return;\n }\n\n const data: Array<[string, any]> = await new Promise((resolve, reject) => {\n const v5Tx = v5db.transaction(['kv'], 'readonly');\n const objectStore = v5Tx.objectStore('kv');\n const cursorReq = objectStore.openCursor();\n cursorReq.onerror = (event) => {\n reject(event);\n };\n const data: Array<[string, any]> = [];\n cursorReq.onsuccess = () => {\n const cursor = cursorReq.result;\n if (cursor) {\n const key = cursor.key as string;\n const value = cursor.value;\n data.push([key, value]);\n cursor.continue();\n } else {\n resolve(data);\n }\n };\n cursorReq.onerror = (event) => {\n reject(event);\n };\n });\n\n const v6Tx = v6Db.transaction(['kv', 'querySubs'], 'readwrite');\n\n const kvStore = v6Tx.objectStore('kv');\n const querySubStore = v6Tx.objectStore('querySubs');\n\n const promises: Promise<any>[] = [];\n const kvMeta: Meta<string> = { objects: {} };\n for (const [key, value] of data) {\n switch (key) {\n case 'querySubs': {\n const p = upgradeQuerySubs5To6(key, value, querySubStore);\n promises.push(p);\n break;\n }\n default: {\n const p = moveKvEntry5To6(key as string, value, kvStore);\n promises.push(p);\n const objectMeta: ObjectMeta = {\n createdAt: Date.now(),\n updatedAt: Date.now(),\n size: 0,\n };\n kvMeta.objects[key] = objectMeta;\n break;\n }\n }\n }\n const p = moveKvEntry5To6(META_KEY, kvMeta, kvStore);\n promises.push(p);\n await Promise.all(promises);\n await new Promise((resolve, reject) => {\n v6Tx.oncomplete = (e) => resolve(e);\n v6Tx.onerror = (e) => reject(e);\n v6Tx.onabort = (e) => reject(e);\n });\n}\n\n// We create many IndexedDBStorage instances that talk to the same\n// underlying db, but we only get one `onupgradeneeded` event. This holds\n// the upgrade promises so that we wait until upgrade finishes before\n// we start writing.\nconst upgradePromises = new Map();\n\nexport default class IndexedDBStorage extends StorageInterface {\n dbName: string;\n _storeName: StorageInterfaceStoreName;\n _appId: string;\n _prefix: string;\n _dbPromise: Promise<IDBDatabase>;\n\n constructor(appId: string, storeName: StorageInterfaceStoreName) {\n super(appId, storeName);\n this.dbName = `instant_${appId}_${version}`;\n this._storeName = storeName;\n this._appId = appId;\n this._dbPromise = this._init();\n }\n\n _init(): Promise<IDBDatabase> {\n return new Promise((resolve, reject) => {\n let requiresUpgrade = false;\n const request = indexedDB.open(this.dbName, 1);\n\n request.onerror = (event) => {\n reject(event);\n };\n\n request.onsuccess = (event) => {\n const target = event.target as IDBOpenDBRequest;\n const db = target.result;\n if (!requiresUpgrade) {\n const p = upgradePromises.get(this.dbName);\n if (!p) {\n resolve(db);\n } else {\n p.then(() => resolve(db)).catch(() => resolve(db));\n }\n } else {\n const p = upgrade5To6(this._appId, db).catch((e) => {\n logErrorCb('Error upgrading store from version 5 to 6.')(e);\n });\n upgradePromises.set(this.dbName, p);\n p.then(() => resolve(db)).catch(() => resolve(db));\n }\n };\n\n request.onupgradeneeded = (event) => {\n requiresUpgrade = true;\n this._upgradeStore(event);\n };\n });\n }\n\n _upgradeStore(event: IDBVersionChangeEvent) {\n const target = event.target as IDBOpenDBRequest;\n const db = target.result;\n for (const storeName of storeNames) {\n if (!db.objectStoreNames.contains(storeName)) {\n db.createObjectStore(storeName);\n }\n }\n }\n\n async getItem(k: string): Promise<any> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readonly');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.get(k);\n request.onerror = (event) => {\n reject(event);\n };\n request.onsuccess = (_event) => {\n if (request.result) {\n resolve(request.result);\n } else {\n resolve(null);\n }\n };\n });\n }\n\n async setItem(k: string, v: any): Promise<void> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readwrite');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.put(v, k);\n\n request.onerror = (event) => {\n reject(event);\n };\n\n request.onsuccess = (_event) => {\n resolve();\n };\n });\n }\n\n // Performs all writes in a transaction so that all succeed or none succeed.\n async multiSet(keyValuePairs: Array<[string, any]>): Promise<void> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readwrite');\n const objectStore = transaction.objectStore(this._storeName);\n const requests: Set<IDBRequest<IDBValidKey>> = new Set();\n for (const [k, v] of keyValuePairs) {\n const request = objectStore.put(v, k);\n requests.add(request);\n }\n\n for (const request of requests) {\n request.onerror = (event) => {\n transaction.abort();\n reject(event);\n };\n request.onsuccess = (_event) => {\n requests.delete(request);\n // Last request to finish resolves the transaction\n if (requests.size === 0) {\n resolve();\n }\n };\n }\n });\n }\n\n async removeItem(k: string): Promise<void> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readwrite');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.delete(k);\n request.onerror = (event) => {\n reject(event);\n };\n\n request.onsuccess = (_event) => {\n resolve();\n };\n });\n }\n\n async getAllKeys(): Promise<string[]> {\n const db = await this._dbPromise;\n return new Promise((resolve, reject) => {\n const transaction = db.transaction([this._storeName], 'readonly');\n const objectStore = transaction.objectStore(this._storeName);\n const request = objectStore.getAllKeys();\n request.onerror = (event) => {\n reject(event);\n };\n request.onsuccess = (_event) => {\n resolve(request.result.filter((x) => typeof x === 'string'));\n };\n });\n }\n}\n"]}
@@ -11,6 +11,8 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
11
11
  querySubs: PersistedObject<any, any, any>;
12
12
  /** @type {PersistedObject} */
13
13
  kv: PersistedObject<any, any, any>;
14
+ /** @type {SyncTable} */
15
+ _syncTable: SyncTable;
14
16
  /** @type {Record<string, Array<{ q: any, cb: (data: any) => any }>>} */
15
17
  queryCbs: Record<string, Array<{
16
18
  q: any;
@@ -40,12 +42,12 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
40
42
  _wsOk: boolean | null;
41
43
  _localIdPromises: {};
42
44
  _errorMessage: any;
43
- /** @type {Promise<null | {error: {message: string}}>}**/
45
+ /** @type {Promise<null | {error: {message: string}}> | null}**/
44
46
  _oauthCallbackResponse: Promise<null | {
45
47
  error: {
46
48
  message: string;
47
49
  };
48
- }>;
50
+ }> | null;
49
51
  /** @type {null | import('./utils/linkIndex.ts').LinkIndex}} */
50
52
  _linkIndex: null | import("./utils/linkIndex.ts").LinkIndex;
51
53
  /** @type BroadcastChannel | undefined */
@@ -60,10 +62,11 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
60
62
  _presence: {};
61
63
  _broadcastQueue: any[];
62
64
  _broadcastSubs: {};
65
+ /** @type {{isLoading: boolean; error: any | undefined, user: any | undefined}} */
63
66
  _currentUserCached: {
64
67
  isLoading: boolean;
65
- error: any;
66
- user: any;
68
+ error: any | undefined;
69
+ user: any | undefined;
67
70
  };
68
71
  _beforeUnloadCbs: any[];
69
72
  _dataForQueryCache: {};
@@ -74,7 +77,6 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
74
77
  _inFlightMutationEventIds: Set<any>;
75
78
  queryCacheLimit: any;
76
79
  versions: any;
77
- _syncTable: SyncTable;
78
80
  _beforeUnload(): void;
79
81
  updateSchema(schema: any): void;
80
82
  _reactorStats(): {
@@ -105,10 +107,10 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
105
107
  /**
106
108
  * @param {'timeout' | 'error'} status
107
109
  * @param {string} eventId
108
- * @param {{message: string, type?: string, status?: number, hint?: unknown}} errorMsg
110
+ * @param {{message?: string, type?: string, status?: number, hint?: unknown}} errorMsg
109
111
  */
110
112
  _handleMutationError(status: "timeout" | "error", eventId: string, errorMsg: {
111
- message: string;
113
+ message?: string;
112
114
  type?: string;
113
115
  status?: number;
114
116
  hint?: unknown;
@@ -223,8 +225,8 @@ export default class Reactor<RoomSchema extends import("./presence.ts").RoomSche
223
225
  setCurrentUser(user: any): Promise<void>;
224
226
  getCurrentUserCached(): {
225
227
  isLoading: boolean;
226
- error: any;
227
- user: any;
228
+ error: any | undefined;
229
+ user: any | undefined;
228
230
  };
229
231
  _getCurrentUser(): Promise<any>;
230
232
  getCurrentUser(): Promise<{
@@ -326,8 +328,8 @@ export type Connection = import("./Connection.ts").Connection<any>;
326
328
  export type TransportType = import("./Connection.ts").TransportType;
327
329
  export type EventSourceConstructor = import("./Connection.ts").EventSourceConstructor;
328
330
  import { PersistedObject } from './utils/PersistedObject.ts';
329
- import { Deferred } from './utils/Deferred.js';
330
331
  import { SyncTable } from './SyncTable.ts';
332
+ import { Deferred } from './utils/Deferred.js';
331
333
  import * as authAPI from './authAPI.ts';
332
334
  import * as StorageApi from './StorageAPI.ts';
333
335
  import IndexedDBStorage from './IndexedDBStorage.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Reactor.d.ts","sourceRoot":"","sources":["../../src/Reactor.js"],"names":[],"mappings":"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"}
@@ -218,7 +218,7 @@ class Reactor {
218
218
  this._wsOk = null;
219
219
  this._localIdPromises = {};
220
220
  this._errorMessage = null;
221
- /** @type {Promise<null | {error: {message: string}}>}**/
221
+ /** @type {Promise<null | {error: {message: string}}> | null}**/
222
222
  this._oauthCallbackResponse = null;
223
223
  /** @type {null | import('./utils/linkIndex.ts').LinkIndex}} */
224
224
  this._linkIndex = null;
@@ -229,6 +229,7 @@ class Reactor {
229
229
  this._presence = {};
230
230
  this._broadcastQueue = [];
231
231
  this._broadcastSubs = {};
232
+ /** @type {{isLoading: boolean; error: any | undefined, user: any | undefined}} */
232
233
  this._currentUserCached = { isLoading: true, error: undefined, user: undefined };
233
234
  this._beforeUnloadCbs = [];
234
235
  this._dataForQueryCache = {};
@@ -569,16 +570,16 @@ class Reactor {
569
570
  }
570
571
  else {
571
572
  // Check if error comes from server or client
572
- if (errorMsg.type) {
573
+ if (errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.type) {
573
574
  const { status } = errorMsg, body = __rest(errorMsg, ["status"]);
574
575
  dfd.reject(new fetch_ts_1.InstantAPIError({
575
576
  // @ts-expect-error body.type is not constant typed
576
577
  body,
577
- status,
578
+ status: status !== null && status !== void 0 ? status : 0,
578
579
  }));
579
580
  }
580
581
  else {
581
- dfd.reject(new InstantError_ts_1.InstantError(errorMsg.message, errorMsg.hint));
582
+ dfd.reject(new InstantError_ts_1.InstantError((errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.message) || 'Unknown error', errorMsg === null || errorMsg === void 0 ? void 0 : errorMsg.hint));
582
583
  }
583
584
  }
584
585
  }
@@ -811,7 +812,7 @@ class Reactor {
811
812
  /**
812
813
  * @param {'timeout' | 'error'} status
813
814
  * @param {string} eventId
814
- * @param {{message: string, type?: string, status?: number, hint?: unknown}} errorMsg
815
+ * @param {{message?: string, type?: string, status?: number, hint?: unknown}} errorMsg
815
816
  */
816
817
  _handleMutationError(status, eventId, errorMsg) {
817
818
  const mut = this._pendingMutations().get(eventId);