@laboverwire/stitch 0.4.1 → 0.4.3

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 (40) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/internal-list-apply.js.map +1 -1
  4. package/dist/internal-utils.d.ts +1 -0
  5. package/dist/internal-utils.d.ts.map +1 -1
  6. package/dist/internal-utils.js +6 -1
  7. package/dist/internal-utils.js.map +1 -1
  8. package/dist/internal-wasm-error.js.map +1 -1
  9. package/dist/memory-store.js.map +1 -1
  10. package/dist/offline-queue.d.ts.map +1 -1
  11. package/dist/offline-queue.js +13 -11
  12. package/dist/offline-queue.js.map +1 -1
  13. package/dist/persistence-layer.js.map +1 -1
  14. package/dist/react/context.js.map +1 -1
  15. package/dist/react/hooks/useChildCounts.js.map +1 -1
  16. package/dist/react/hooks/useConnectionStatus.js.map +1 -1
  17. package/dist/react/hooks/useEntitySnapshot.js.map +1 -1
  18. package/dist/react/hooks/useRootEntityList.js.map +1 -1
  19. package/dist/react/hooks/useScopedEntities.js.map +1 -1
  20. package/dist/react/hooks/useSyncScope.js.map +1 -1
  21. package/dist/react/hooks/useTopLevelEntities.js.map +1 -1
  22. package/dist/react/index.js.map +1 -1
  23. package/dist/react/provider.js.map +1 -1
  24. package/dist/remote-sync-layer.js.map +1 -1
  25. package/dist/store.js.map +1 -1
  26. package/dist/sync-engine.js.map +1 -1
  27. package/dist/types.js.map +1 -1
  28. package/dist/vue/StitchAuth.js.map +1 -1
  29. package/dist/vue/StoreRoot.js.map +1 -1
  30. package/dist/vue/composables/useChildCounts.js.map +1 -1
  31. package/dist/vue/composables/useConnectionStatus.js.map +1 -1
  32. package/dist/vue/composables/useEntitySnapshot.js.map +1 -1
  33. package/dist/vue/composables/useRootEntityList.js.map +1 -1
  34. package/dist/vue/composables/useScopedEntities.js.map +1 -1
  35. package/dist/vue/composables/useStore.js.map +1 -1
  36. package/dist/vue/composables/useSyncScope.js.map +1 -1
  37. package/dist/vue/composables/useTopLevelEntities.js.map +1 -1
  38. package/dist/vue/index.js.map +1 -1
  39. package/dist/vue/injection-key.js.map +1 -1
  40. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useSyncScope.js","sourceRoot":"","sources":["../../../src/react/hooks/useSyncScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGjE,MAAM,UAAU,YAAY,CAC1B,KAAY,EACZ,OAAsB;IAOtB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QAEtD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,iBAAiB,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC1C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAO;QAE/B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1C,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACpD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"useSyncScope.js","sourceRoot":"","sources":["../../../src/react/hooks/useSyncScope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGjE,MAAM,UAAU,YAAY,CAC1B,KAAY,EACZ,OAAsB;IAOtB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACvC,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO;YAAE,OAAO;QAEtD,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,YAAY,CAAC,IAAI,CAAC,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,iBAAiB,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC1C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC/E,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAO;QAE/B,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1C,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;gBACpD,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC","sourcesContent":["import { useEffect, useState, useCallback, useRef } from 'react';\nimport type { Store } from '../../types.ts';\n\nexport function useSyncScope(\n store: Store,\n scopeId: string | null\n): {\n syncing: boolean;\n syncError: Error | null;\n openScope: () => Promise<void>;\n closeScope: () => Promise<void>;\n} {\n const [syncing, setSyncing] = useState(false);\n const [syncError, setSyncError] = useState<Error | null>(null);\n const openedRef = useRef<string | null>(null);\n const currentScopeIdRef = useRef(scopeId);\n\n useEffect(() => {\n currentScopeIdRef.current = scopeId;\n }, [scopeId]);\n\n const openScope = useCallback(async () => {\n if (!scopeId || openedRef.current === scopeId) return;\n\n setSyncing(true);\n setSyncError(null);\n\n try {\n await store.replaceScope(scopeId);\n if (currentScopeIdRef.current === scopeId) {\n openedRef.current = scopeId;\n }\n } catch (err) {\n setSyncError(err instanceof Error ? err : new Error('Failed to open scope'));\n } finally {\n setSyncing(false);\n }\n }, [store, scopeId]);\n\n const closeScope = useCallback(async () => {\n if (!openedRef.current) return;\n\n try {\n await store.closeScope(openedRef.current);\n openedRef.current = null;\n } catch (err) {\n console.error('[useSyncScope] Failed to close scope:', err);\n }\n }, [store]);\n\n useEffect(() => {\n return () => {\n if (openedRef.current) {\n store.closeScope(openedRef.current).catch(() => {});\n openedRef.current = null;\n }\n };\n }, [store, scopeId]);\n\n return { syncing, syncError, openScope, closeScope };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useTopLevelEntities.js","sourceRoot":"","sources":["../../../src/react/hooks/useTopLevelEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAiB,MAAM,8BAA8B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,MAAc;IAKd,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAmE,EAAE,CAAC;QAElF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,KAAK;iBACF,IAAI,CAAC,MAAM,CAAC;iBACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACjB,IAAI,SAAS;oBAAE,OAAO;gBACtB,IAAI,MAAM,GAAG,QAAsB,CAAC;gBACpC,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;oBACvC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,IAAI,SAAS;oBAAE,OAAO;gBACtB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CACzC,MAAM,EACN,CAAC,UAAmB,EAAE,EAAkC,EAAE,EAAE;YAC1D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,CACF,CAAC;QAEF,QAAQ,EAAE,CAAC;QAEX,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"useTopLevelEntities.js","sourceRoot":"","sources":["../../../src/react/hooks/useTopLevelEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAiB,MAAM,8BAA8B,CAAC;AAEzE,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,MAAc;IAKd,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,MAAM,GAAmE,EAAE,CAAC;QAElF,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,KAAK;iBACF,IAAI,CAAC,MAAM,CAAC;iBACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACjB,IAAI,SAAS;oBAAE,OAAO;gBACtB,IAAI,MAAM,GAAG,QAAsB,CAAC;gBACpC,KAAK,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;oBACvC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACjB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,IAAI,SAAS;oBAAE,OAAO;gBACtB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,UAAU,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CACzC,MAAM,EACN,CAAC,UAAmB,EAAE,EAAkC,EAAE,EAAE;YAC1D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,QAAQ,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC,CACF,CAAC;QAEF,QAAQ,EAAE,CAAC;QAEX,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,WAAW,EAAE,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC","sourcesContent":["import { useEffect, useState } from 'react';\nimport type { Store } from '../../types.ts';\nimport { applyEvent, type ListItem } from '../../internal-list-apply.ts';\n\nexport function useTopLevelEntities(\n store: Store,\n entity: string\n): {\n items: ListItem[];\n loading: boolean;\n} {\n const [items, setItems] = useState<ListItem[]>([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n let fetched = false;\n let cancelled = false;\n const buffer: Array<{ entity: unknown; op: 'insert' | 'update' | 'delete' }> = [];\n\n const fetchAll = () => {\n store\n .list(entity)\n .then((entities) => {\n if (cancelled) return;\n let result = entities as ListItem[];\n for (const { entity: e, op } of buffer) {\n result = applyEvent(result, e, op);\n }\n buffer.length = 0;\n fetched = true;\n setItems(result);\n setLoading(false);\n })\n .catch(() => {\n if (cancelled) return;\n fetched = true;\n buffer.length = 0;\n setLoading(false);\n });\n };\n\n const unsubscribe = store.subscribeToEntity(\n entity,\n (entityData: unknown, op: 'insert' | 'update' | 'delete') => {\n if (entityData === null) {\n fetchAll();\n return;\n }\n if (!fetched) {\n buffer.push({ entity: entityData, op });\n return;\n }\n setItems((prev) => applyEvent(prev, entityData, op));\n }\n );\n\n fetchAll();\n\n return () => {\n cancelled = true;\n unsubscribe();\n };\n }, [store, entity]);\n\n return { items, loading };\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAgB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAgB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export { StoreContext, useStore } from './context.ts';\nexport type { StoreContextValue } from './context.ts';\nexport { StoreProvider, AuthProvider } from './provider.tsx';\nexport { useEntitySnapshot, useEntitySnapshotAsMap } from './hooks/useEntitySnapshot.ts';\nexport { useConnectionStatus } from './hooks/useConnectionStatus.ts';\nexport { useScopedEntities } from './hooks/useScopedEntities.ts';\nexport { useRootEntityList } from './hooks/useRootEntityList.ts';\nexport { useTopLevelEntities } from './hooks/useTopLevelEntities.ts';\nexport { useChildCounts } from './hooks/useChildCounts.ts';\nexport { useSyncScope } from './hooks/useSyncScope.ts';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/react/provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/react/provider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, useMemo, type ReactNode } from 'react';\nimport type { ConnectionStatus, Store } from '../types.ts';\nimport { StoreContext } from './context.ts';\n\ninterface StoreProviderProps {\n store: Store;\n serverUrl?: string;\n getTicket?: () => Promise<string>;\n children: ReactNode;\n}\n\n/**\n * Store lifecycle only — initializes the store, tracks connection status, and\n * handles visibility-change reconnection. Authentication concerns (userId, session\n * handlers, logout gating) live in {@link AuthProvider}; compose both if you need\n * an auth-aware app.\n */\nexport function StoreProvider({ store, serverUrl, getTicket, children }: StoreProviderProps) {\n const [initialized, setInitialized] = useState(false);\n const [connectionStatus, setConnectionStatus] = useState<ConnectionStatus>('offline');\n const [error, setError] = useState<Error | null>(null);\n\n useEffect(() => {\n let mounted = true;\n\n async function init() {\n try {\n if (!store.ready) {\n await store.initialize();\n }\n if (mounted) setInitialized(true);\n } catch (err) {\n console.error('[StoreProvider] Initialization failed:', err);\n if (mounted) {\n setError(err instanceof Error ? err : new Error('Store initialization failed'));\n }\n }\n }\n\n init();\n\n return () => {\n mounted = false;\n };\n }, [store]);\n\n useEffect(() => {\n const unsubscribe = store.subscribeToConnectionStatus((status) => {\n setConnectionStatus(status);\n });\n\n function handleBeforeUnload() {\n store.disconnect();\n }\n window.addEventListener('beforeunload', handleBeforeUnload);\n\n return () => {\n unsubscribe();\n window.removeEventListener('beforeunload', handleBeforeUnload);\n };\n }, [store]);\n\n useEffect(() => {\n if (!initialized || !store.hasRemote) return;\n\n let lastHidden = 0;\n const STALE_THRESHOLD_MS = 30_000;\n\n function handleVisibilityChange() {\n if (document.hidden) {\n lastHidden = Date.now();\n return;\n }\n\n if (lastHidden > 0 && Date.now() - lastHidden > STALE_THRESHOLD_MS && serverUrl) {\n if (store.connectionStatus !== 'connected' && !store.isReconnecting) {\n store\n .reconnect(serverUrl, getTicket)\n .catch((err: unknown) =>\n console.error('[StoreProvider] Reconnect on wake failed:', err)\n );\n }\n }\n }\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return () => document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, [initialized, store, serverUrl, getTicket]);\n\n const contextValue = useMemo(\n () => ({ store, initialized, connectionStatus, error }),\n [store, initialized, connectionStatus, error]\n );\n\n return <StoreContext.Provider value={contextValue}>{children}</StoreContext.Provider>;\n}\n\ninterface AuthProviderProps {\n store: Store;\n userId?: string;\n /** When false, the store is torn down via `resetForLogout()` and remote sync disconnects. Defaults to `true`. */\n authenticated?: boolean;\n onSessionInvalid?: () => void;\n onReconnectValidate?: () => Promise<void>;\n children?: ReactNode;\n}\n\n/**\n * Binds authentication-related state to the store. Nest inside a {@link StoreProvider}.\n * Controls `setAuthenticatedUser`, session-invalid + reconnect-validator handlers, and\n * tears down the store via `resetForLogout()` when `authenticated` transitions to false.\n */\nexport function AuthProvider({\n store,\n userId,\n authenticated = true,\n onSessionInvalid,\n onReconnectValidate,\n children,\n}: AuthProviderProps) {\n useEffect(() => {\n if (!authenticated) {\n store.disconnect();\n store.resetForLogout();\n return;\n }\n if (userId) store.setAuthenticatedUser(userId);\n if (onSessionInvalid) store.setSessionInvalidHandler(onSessionInvalid);\n if (onReconnectValidate) store.setReconnectValidator(onReconnectValidate);\n }, [store, userId, authenticated, onSessionInvalid, onReconnectValidate]);\n\n return <>{children}</>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"remote-sync-layer.js","sourceRoot":"","sources":["../src/remote-sync-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-sync-layer.js","sourceRoot":"","sources":["../src/remote-sync-layer.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n StoreConfig,\n SyncMutation,\n ScopeState,\n ConnectionStatus,\n SortField,\n SyncEngine,\n RemoteSyncLayer,\n LocalAccessor,\n OfflineQueue,\n} from './types.ts';\nimport { createSyncEngine } from './sync-engine.ts';\nimport { stripNulls } from './internal-utils.ts';\n\ntype MutationCallback = (mutation: SyncMutation) => void;\ntype ConnectionCallback = (status: ConnectionStatus) => void;\n\nclass RemoteSyncLayerImpl implements RemoteSyncLayer {\n private sync: SyncEngine | null = null;\n private _connectionStatus: ConnectionStatus = 'offline';\n private statusListeners: Set<(status: ConnectionStatus) => void> = new Set();\n private sessionInvalidHandler: (() => void) | null = null;\n private reconnectValidator: (() => Promise<void>) | null = null;\n private authenticatedUser: string | null = null;\n private readonly config: StoreConfig;\n private onRemoteMutation: MutationCallback | null = null;\n private onConnectionChange: ConnectionCallback | null = null;\n private onConnected: (() => void) | null = null;\n private initialSyncDone = false;\n\n constructor(config: StoreConfig) {\n this.config = config;\n }\n\n get connectionStatus(): ConnectionStatus {\n return this._connectionStatus;\n }\n\n get isReconnecting(): boolean {\n return this.sync?.isReconnecting ?? false;\n }\n\n setMutationCallback(cb: MutationCallback): void {\n this.onRemoteMutation = cb;\n }\n\n setConnectionChangeCallback(cb: ConnectionCallback): void {\n this.onConnectionChange = cb;\n }\n\n setOnConnectedCallback(cb: () => void): void {\n this.onConnected = cb;\n }\n\n async connect(serverUrl: string, getTicket?: () => Promise<string>): Promise<void> {\n const clientId = this.getOrCreateClientId();\n const syncEngine = createSyncEngine(clientId, this.config);\n this.sync = syncEngine;\n\n syncEngine.setMutationHandler((_scopeId, mutation) => {\n this.onRemoteMutation?.(mutation);\n });\n\n syncEngine.setSessionInvalidHandler(() => {\n this.handleSessionInvalid();\n });\n\n syncEngine.setConnectionStatusHandler((status) => {\n this.setConnectionStatus(status);\n this.onConnectionChange?.(status);\n if (status === 'connected') {\n this.onConnected?.();\n this.revalidateSessionOnReconnect();\n }\n });\n\n try {\n const wasmModule = await import('mqtt5-wasm');\n await syncEngine.connect(serverUrl, wasmModule, getTicket);\n } catch (err) {\n console.warn('[RemoteSyncLayer] Failed to connect, reconnecting in background:', err);\n this.initialSyncDone = true;\n }\n }\n\n disconnect(): void {\n this.sync?.disconnect();\n this.setConnectionStatus('offline');\n }\n\n async reconnect(serverUrl: string, getTicket?: () => Promise<string>): Promise<void> {\n if (!this.sync) return;\n if (this.sync.isReconnecting) return;\n\n try {\n await this.sync.reconnect(serverUrl, getTicket);\n } catch (err) {\n console.warn('[RemoteSyncLayer] Reconnect failed, working offline:', err);\n this.setConnectionStatus('offline');\n }\n }\n\n subscribeToConnectionStatus(cb: (s: ConnectionStatus) => void): () => void {\n this.statusListeners.add(cb);\n cb(this._connectionStatus);\n return () => this.statusListeners.delete(cb);\n }\n\n setAuthenticatedUser(userId: string): void {\n this.authenticatedUser = userId;\n }\n\n setSessionInvalidHandler(handler: () => void): void {\n this.sessionInvalidHandler = handler;\n }\n\n setReconnectValidator(validator: () => Promise<void>): void {\n this.reconnectValidator = validator;\n }\n\n async syncCreate(entity: string, scopeId: string, data: Record<string, unknown>): Promise<void> {\n if (!this.sync) throw new Error('Not connected');\n const { rootEntity, childEntities } = this.config.scope;\n const isChild = childEntities.includes(entity);\n const isTopLevel = this.config.topLevelEntities?.some((t) => t.entity === entity);\n\n if (entity === rootEntity || isTopLevel) {\n await this.sync.createEntity(entity, null, data);\n } else if (isChild) {\n await this.sync.createEntity(entity, scopeId, data);\n }\n }\n\n async syncUpdate(\n entity: string,\n scopeId: string,\n id: string,\n data: Record<string, unknown>\n ): Promise<void> {\n if (!this.sync) throw new Error('Not connected');\n const { rootEntity, childEntities } = this.config.scope;\n const isChild = childEntities.includes(entity);\n\n if (entity === rootEntity) {\n await this.sync.updateEntity(entity, null, id, data);\n } else if (isChild) {\n await this.sync.updateEntity(entity, scopeId, id, data);\n } else {\n await this.sync.updateEntity(entity, null, id, data);\n }\n }\n\n async syncDelete(entity: string, scopeId: string, id: string): Promise<void> {\n if (!this.sync) throw new Error('Not connected');\n const { rootEntity, childEntities } = this.config.scope;\n const isChild = childEntities.includes(entity);\n\n if (entity === rootEntity) {\n await this.sync.deleteEntity(entity, null, id);\n } else if (isChild) {\n await this.sync.deleteEntity(entity, scopeId, id);\n } else {\n await this.sync.deleteEntity(entity, null, id);\n }\n }\n\n async openScope(scopeId: string): Promise<ScopeState> {\n if (!this.sync) throw new Error('Not connected');\n return this.sync.openScope(scopeId);\n }\n\n async closeScope(scopeId: string): Promise<void> {\n if (this.sync) {\n await this.sync.closeScope(scopeId);\n }\n }\n\n async fetchList(\n entity: string,\n scopeId?: string,\n sort?: SortField[]\n ): Promise<Record<string, unknown>[] | null> {\n if (!this.sync) return null;\n return this.sync.fetchList(entity, scopeId, sort);\n }\n\n async syncRootEntityList(\n localAccessor: LocalAccessor,\n queue: OfflineQueue | null\n ): Promise<void> {\n if (!this.sync) return;\n\n const { rootEntity, childEntities } = this.config.scope;\n const userScopeField = this.config.userScopeField;\n const versionField = this.config.versionField ?? 'version';\n\n this.initialSyncDone = false;\n\n const allEntities = await this.sync.fetchList(rootEntity);\n if (allEntities === null) {\n console.warn('[RemoteSyncLayer] fetchList returned null — server unreachable?');\n this.initialSyncDone = true;\n return;\n }\n\n const currentUser = this.authenticatedUser;\n const serverEntities =\n currentUser && userScopeField\n ? allEntities.filter((d: Record<string, unknown>) => d[userScopeField] === currentUser)\n : allEntities;\n\n const localEntities = await localAccessor.list(rootEntity, {});\n for (const local of localEntities) {\n const id = local.id as string;\n if (!id) continue;\n if (!currentUser) continue;\n\n const inServer = serverEntities.some((d: Record<string, unknown>) => (d.id as string) === id);\n if (inServer) continue;\n\n if (queue) {\n const hasPendingInsert = await queue.hasPendingInsert(rootEntity, id);\n if (hasPendingInsert) {\n console.log('[RemoteSyncLayer] keeping', id, '— has pending insert');\n continue;\n }\n }\n\n await localAccessor.delete(rootEntity, id);\n }\n\n for (const entity of serverEntities) {\n const id = entity.id as string;\n if (!id) continue;\n\n if (queue) {\n const pending = await queue.getPendingForScope(id);\n const hasPendingDelete = pending.some((p) => p.op === 'delete' && p.entity === rootEntity);\n if (hasPendingDelete) continue;\n }\n\n if (entity[versionField] != null && typeof entity[versionField] !== 'number') {\n entity[versionField] = Number(entity[versionField]) || 1;\n }\n\n try {\n await localAccessor.read(rootEntity, id);\n await localAccessor.update(rootEntity, id, entity);\n } catch {\n await localAccessor.create(rootEntity, entity);\n }\n\n const childResults = await Promise.all(\n childEntities.map((childEntity) => this.sync!.fetchList(childEntity, id))\n );\n\n for (let i = 0; i < childEntities.length; i++) {\n const records = childResults[i];\n if (records === null) continue;\n await this.reconcileChildren(id, childEntities[i], records, localAccessor, queue);\n }\n }\n\n if (this.config.topLevelEntities) {\n for (const topLevel of this.config.topLevelEntities) {\n await this.reconcileTopLevelEntity(topLevel.entity, localAccessor);\n }\n }\n\n this.initialSyncDone = true;\n }\n\n get isInitialSyncDone(): boolean {\n return this.initialSyncDone;\n }\n\n async reconcileChildren(\n scopeId: string,\n entity: string,\n serverRecords: Record<string, unknown>[],\n localAccessor: LocalAccessor,\n queue: OfflineQueue | null\n ): Promise<void> {\n const { scopeField } = this.config.scope;\n\n const localRecords = await localAccessor.list(entity, {\n filters: [{ field: scopeField, op: 'eq', value: scopeId }],\n });\n\n let pendingRecords: Array<Record<string, unknown>> = [];\n if (queue) {\n const pending = await queue.getPendingForScope(scopeId);\n pendingRecords = pending\n .filter((p) => p.entity === entity)\n .map((p) => ({\n entityId: p.id,\n op: p.op,\n data: p.data,\n }));\n }\n\n const serverMap = new Map(serverRecords.map((r) => [r.id as string, r]));\n const localMap = new Map(localRecords.map((r) => [r.id as string, r]));\n\n const pendingByEntityId = new Map<string, Array<Record<string, unknown>>>();\n for (const p of pendingRecords) {\n const eid = p.entityId as string;\n const arr = pendingByEntityId.get(eid) ?? [];\n arr.push(p);\n pendingByEntityId.set(eid, arr);\n }\n\n const hasPendingDelete = new Set<string>();\n for (const p of pendingRecords) {\n if (p.op === 'delete') hasPendingDelete.add(p.entityId as string);\n }\n\n for (const record of serverRecords) {\n const id = record.id as string;\n if (!id) continue;\n if (hasPendingDelete.has(id)) continue;\n const pendingOps = pendingByEntityId.get(id);\n if (pendingOps && pendingOps.some((p) => p.op === 'update')) continue;\n const cleaned = stripNulls(record);\n if (!cleaned[scopeField]) {\n cleaned[scopeField] = scopeId;\n }\n if (localMap.has(id)) {\n await localAccessor.update(entity, id, cleaned);\n } else {\n await localAccessor.create(entity, cleaned);\n }\n }\n\n for (const p of pendingRecords) {\n const eid = p.entityId as string;\n const op = p.op as string;\n if (op === 'delete') continue;\n if (serverMap.has(eid)) continue;\n if (localMap.has(eid)) continue;\n if (p.data) {\n try {\n await localAccessor.create(entity, p.data as Record<string, unknown>);\n } catch {\n // already exists from a race\n }\n }\n }\n\n for (const [id] of localMap) {\n if (serverMap.has(id)) continue;\n if (pendingByEntityId.has(id)) continue;\n try {\n await localAccessor.delete(entity, id);\n } catch {\n // already gone\n }\n }\n }\n\n async applyMutationToDb(mutation: SyncMutation, localAccessor: LocalAccessor): Promise<void> {\n const { scopeField, rootEntity } = this.config.scope;\n const updatedAtField = this.config.updatedAtField ?? 'updatedAt';\n\n try {\n switch (mutation.op) {\n case 'insert':\n if (mutation.data) {\n const refScopeId = mutation.data[scopeField] as string | undefined;\n if (refScopeId) {\n try {\n await localAccessor.read(rootEntity, refScopeId);\n } catch (readErr) {\n const msg = readErr instanceof Error ? readErr.message : String(readErr);\n if (/not found/i.test(msg)) return;\n throw readErr;\n }\n }\n await localAccessor.create(mutation.entity, { ...mutation.data, id: mutation.id });\n }\n break;\n case 'update':\n if (mutation.data) {\n try {\n const existing = await localAccessor.read(mutation.entity, mutation.id);\n const remoteVersion = mutation.data._version;\n if (typeof remoteVersion === 'number') {\n const localVersion = typeof existing._version === 'number' ? existing._version : 0;\n if (remoteVersion < localVersion) return;\n }\n const remoteUpdatedAt = mutation.data[updatedAtField];\n const localUpdatedAt = existing[updatedAtField];\n if (\n typeof remoteUpdatedAt === 'number' &&\n typeof localUpdatedAt === 'number' &&\n remoteUpdatedAt < localUpdatedAt\n ) {\n return;\n }\n } catch (readErr) {\n const msg = readErr instanceof Error ? readErr.message : String(readErr);\n if (/not found/i.test(msg)) return;\n throw readErr;\n }\n await localAccessor.update(mutation.entity, mutation.id, mutation.data);\n }\n break;\n case 'delete':\n try {\n await localAccessor.delete(mutation.entity, mutation.id);\n } catch (delErr) {\n const msg = delErr instanceof Error ? delErr.message : String(delErr);\n if (!/not found/i.test(msg)) throw delErr;\n }\n break;\n }\n } catch (err) {\n console.error('[RemoteSyncLayer] Failed to apply remote mutation:', err);\n }\n }\n\n async request(topic: string, payload: unknown): Promise<Record<string, unknown>> {\n if (!this.sync) throw new Error('Not connected');\n return this.sync.request(topic, payload);\n }\n\n resetForLogout(): void {\n this.disconnect();\n this.sync = null;\n this.authenticatedUser = null;\n this.sessionInvalidHandler = null;\n this.reconnectValidator = null;\n this.onConnected = null;\n this.initialSyncDone = false;\n this.setConnectionStatus('offline');\n sessionStorage.removeItem('stitch_client_id');\n }\n\n private async reconcileTopLevelEntity(\n entity: string,\n localAccessor: LocalAccessor\n ): Promise<void> {\n if (!this.sync) return;\n\n const serverRecords = await this.sync.fetchList(entity);\n if (serverRecords === null) return;\n\n const serverMap = new Map<string, Record<string, unknown>>();\n for (const r of serverRecords) {\n serverMap.set(r.id as string, r);\n }\n\n const localRecords = await localAccessor.list(entity, {});\n for (const local of localRecords) {\n const id = local.id as string;\n if (serverMap.has(id)) continue;\n await localAccessor.delete(entity, id);\n }\n\n for (const serverRecord of serverRecords) {\n const id = serverRecord.id as string;\n try {\n await localAccessor.read(entity, id);\n await localAccessor.update(entity, id, serverRecord);\n } catch {\n await localAccessor.create(entity, serverRecord);\n }\n }\n }\n\n private setConnectionStatus(status: ConnectionStatus): void {\n this._connectionStatus = status;\n for (const listener of this.statusListeners) {\n listener(status);\n }\n }\n\n private getOrCreateClientId(): string {\n const key = 'stitch_client_id';\n let id = sessionStorage.getItem(key);\n if (!id) {\n id = crypto.randomUUID();\n sessionStorage.setItem(key, id);\n }\n return id;\n }\n\n private revalidateSessionOnReconnect(): void {\n this.reconnectValidator?.().catch(() => {});\n }\n\n private handleSessionInvalid(): void {\n this.disconnect();\n this.sessionInvalidHandler?.();\n }\n}\n\nexport function createRemoteSyncLayer(config: StoreConfig): RemoteSyncLayer & {\n setMutationCallback(cb: (mutation: SyncMutation) => void): void;\n setConnectionChangeCallback(cb: (status: ConnectionStatus) => void): void;\n setOnConnectedCallback(cb: () => void): void;\n readonly isInitialSyncDone: boolean;\n} {\n return new RemoteSyncLayerImpl(config);\n}\n"]}
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n StoreConfig,\n StoreOptions,\n Store,\n MemoryStore,\n PersistenceLayer,\n RemoteSyncLayer,\n OfflineQueue,\n LocalAccessor,\n MutationSender,\n ConnectionStatus,\n SortField,\n ListFilter,\n SyncMutation,\n OriginTag,\n} from './types.ts';\nimport { OwnershipError } from './types.ts';\nimport { createMemoryStore } from './memory-store.ts';\nimport { createPersistenceLayer } from './persistence-layer.ts';\nimport { createRemoteSyncLayer } from './remote-sync-layer.ts';\nimport { createPersistentOfflineQueue, createInMemoryOfflineQueue } from './offline-queue.ts';\nimport { stripNulls, isTransientSyncError } from './internal-utils.ts';\n\ntype PersistenceLayerExt = PersistenceLayer & {\n notifyCorruption(): void;\n setSuppressNotifications(suppress: boolean): void;\n notifyAllEntitySubscribers(): void;\n};\n\ntype RemoteSyncLayerExt = RemoteSyncLayer & {\n setMutationCallback(cb: (mutation: SyncMutation) => void): void;\n setConnectionChangeCallback(cb: (status: ConnectionStatus) => void): void;\n setOnConnectedCallback(cb: () => void): void;\n readonly isInitialSyncDone: boolean;\n};\n\ntype OfflineQueueExt = OfflineQueue & {\n setAuthenticatedUser?(userId: string | null): void;\n};\n\nclass StoreImpl implements Store {\n readonly config: StoreConfig;\n readonly memory: MemoryStore;\n private _persistence: PersistenceLayerExt | null = null;\n private _remote: RemoteSyncLayerExt | null = null;\n private _queue: OfflineQueueExt | null = null;\n private readonly options: StoreOptions;\n private _ready = false;\n private _initPromise: Promise<void> | null = null;\n private _connectionStatus: ConnectionStatus = 'offline';\n private statusListeners: Set<(status: ConnectionStatus) => void> = new Set();\n private currentScopeId: string | null = null;\n private initialSyncDone = false;\n private _authenticatedUser: string | null = null;\n private _earlySubscribers: Array<{\n entity: string;\n callback: (data: unknown, op: 'insert' | 'update' | 'delete') => void;\n memoryUnsub: () => void;\n persistenceUnsub: (() => void) | null;\n }> = [];\n\n constructor(config: StoreConfig, options: StoreOptions) {\n this.config = config;\n this.options = options;\n this.memory = createMemoryStore(config);\n }\n\n get ready(): boolean {\n return this._ready;\n }\n\n get connectionStatus(): ConnectionStatus {\n if (this._remote) return this._remote.connectionStatus;\n return this._connectionStatus;\n }\n\n get isReconnecting(): boolean {\n return this._remote?.isReconnecting ?? false;\n }\n\n get hasPersistence(): boolean {\n return this._persistence !== null;\n }\n\n get hasRemote(): boolean {\n return this._remote !== null;\n }\n\n async initialize(): Promise<void> {\n if (this._ready) return;\n if (this._initPromise) return this._initPromise;\n this._initPromise = this.doInitialize().finally(() => {\n this._initPromise = null;\n });\n return this._initPromise;\n }\n\n private async doInitialize(): Promise<void> {\n if (this._ready) return;\n\n await this.memory.ensureReady();\n\n if (this.options.persistence) {\n const persistence = createPersistenceLayer(this.config);\n this._persistence = persistence;\n await persistence.open(this.options.persistence.dbName);\n\n this.memory.onCorruption(() => {\n persistence.notifyCorruption();\n });\n\n for (const entry of this._earlySubscribers) {\n entry.persistenceUnsub = persistence.subscribe(entry.entity, entry.callback);\n }\n this._earlySubscribers = [];\n }\n\n if (this.options.remote) {\n const remote = createRemoteSyncLayer(this.config);\n this._remote = remote;\n\n if (this._authenticatedUser) {\n remote.setAuthenticatedUser(this._authenticatedUser);\n }\n\n if (this._persistence) {\n const queue = createPersistentOfflineQueue(this._persistence, this.config.scope.rootEntity);\n this._queue = queue;\n if (this._authenticatedUser && 'setAuthenticatedUser' in queue) {\n (queue as OfflineQueueExt).setAuthenticatedUser!(this._authenticatedUser);\n }\n } else {\n this._queue = createInMemoryOfflineQueue(this.config.scope.rootEntity);\n }\n\n remote.setMutationCallback((mutation) => {\n this.handleRemoteMutation(mutation);\n });\n\n remote.setConnectionChangeCallback((status) => {\n this._connectionStatus = status;\n for (const listener of this.statusListeners) {\n listener(status);\n }\n });\n\n remote.setOnConnectedCallback(() => {\n this.onConnected();\n });\n\n await remote.connect(this.options.remote.serverUrl, this.options.remote.getTicket);\n } else {\n this._connectionStatus = 'offline';\n this.initialSyncDone = true;\n }\n\n if (this._persistence) {\n this.setupPersistenceSubscriptions();\n }\n\n this._ready = true;\n\n if (this._persistence) {\n this._persistence.notifyAllEntitySubscribers();\n }\n }\n\n destroy(): void {\n this._persistence?.close();\n this._remote?.disconnect();\n this._ready = false;\n this._initPromise = null;\n }\n\n read(entity: string, id: string): Record<string, unknown> | null {\n return this.memory.read(entity, id);\n }\n\n getSnapshot(entity: string, scopeId: string): Record<string, unknown>[] {\n return this.memory.getSnapshot(entity, scopeId);\n }\n\n getSnapshotAsMap(entity: string, scopeId: string): Record<string, Record<string, unknown>> {\n return this.memory.getSnapshotAsMap(entity, scopeId);\n }\n\n async list(entity: string, filter?: ListFilter): Promise<Record<string, unknown>[]> {\n if (this._persistence) {\n const { scopeField } = this.config.scope;\n const options: Record<string, unknown> = {};\n if (filter?.scopeId) {\n options.filters = [{ field: scopeField, op: 'eq', value: filter.scopeId }];\n }\n if (filter?.sort && filter.sort.length > 0) {\n options.sort = filter.sort;\n }\n if (filter?.projection && filter.projection.length > 0) {\n options.projection = filter.projection;\n }\n return this._persistence.list(entity, options);\n }\n\n const scopeId = filter?.scopeId ?? '';\n return Promise.resolve(this.memory.list(entity, scopeId));\n }\n\n async listRootEntities(sort?: SortField[]): Promise<Record<string, unknown>[]> {\n if (!this.initialSyncDone && this._remote) return [];\n\n if (this._persistence) {\n const { rootEntity } = this.config.scope;\n const options: Record<string, unknown> = {};\n if (sort && sort.length > 0) {\n options.sort = sort;\n }\n return this._persistence.list(rootEntity, options);\n }\n\n return Promise.resolve(this.memory.list(this.config.scope.rootEntity, ''));\n }\n\n async getChildCount(entity: string, scopeId: string): Promise<number> {\n if (this._persistence) {\n const { scopeField } = this.config.scope;\n return this._persistence.count(entity, {\n filters: [{ field: scopeField, op: 'eq', value: scopeId }],\n });\n }\n return this.memory.list(entity, scopeId).length;\n }\n\n async create(\n entity: string,\n scopeId: string,\n data: Record<string, unknown>,\n tag?: OriginTag\n ): Promise<string> {\n const { rootEntity } = this.config.scope;\n const id = (data.id as string) || crypto.randomUUID();\n const record = stripNulls({ ...data, id });\n const effectiveScopeId = entity === rootEntity ? id : scopeId;\n\n this.memory.create(entity, effectiveScopeId, record, tag);\n\n if (this._persistence) {\n try {\n await this._persistence.create(entity, record);\n } catch (err) {\n console.error(`[Stitch] Persistence create ${entity} failed:`, err);\n }\n }\n\n if (this._queue && effectiveScopeId) {\n await this._queue.queue({\n op: 'insert',\n entity,\n id,\n scopeId: effectiveScopeId,\n data: record,\n });\n }\n\n if (this._remote && this._remote.connectionStatus === 'connected' && effectiveScopeId) {\n try {\n await this._remote.syncCreate(entity, effectiveScopeId, record);\n await this._queue?.remove(entity, id, effectiveScopeId, 'insert');\n } catch (err) {\n if (err instanceof OwnershipError) {\n await this._queue?.remove(entity, id, effectiveScopeId, 'insert');\n console.warn(`[Stitch] OwnershipError on create ${entity}/${id}:`, err.message);\n return id;\n }\n if (!isTransientSyncError(err)) {\n console.error(`[Stitch] Failed to sync create ${entity}:`, err);\n }\n }\n }\n\n return id;\n }\n\n async update(\n entity: string,\n id: string,\n fields: Record<string, unknown>,\n tag?: OriginTag\n ): Promise<void> {\n const { rootEntity, scopeField } = this.config.scope;\n\n const memExisting = this.memory.read(entity, id);\n let scopeId: string | undefined;\n\n if (memExisting) {\n scopeId = entity === rootEntity ? id : (memExisting[scopeField] as string | undefined);\n if (scopeId) {\n this.memory.update(entity, id, fields, tag);\n }\n }\n\n if (this._persistence) {\n if (!scopeId) {\n let existing: Record<string, unknown>;\n try {\n existing = await this._persistence.read(entity, id);\n } catch (readErr) {\n const msg = readErr instanceof Error ? readErr.message : String(readErr);\n if (/not found/i.test(msg)) return;\n throw readErr;\n }\n scopeId = entity === rootEntity ? id : (existing[scopeField] as string | undefined);\n if (scopeId && !memExisting) {\n this.memory.update(entity, id, fields, tag);\n }\n }\n\n try {\n await this._persistence.update(entity, id, fields);\n } catch (updErr) {\n console.error(`[Stitch] Persistence update ${entity} failed:`, updErr);\n }\n } else if (!memExisting) {\n return;\n }\n\n if (this._queue && scopeId) {\n await this._queue.queue({ op: 'update', entity, id, scopeId, data: fields });\n }\n\n if (this._remote && this._remote.connectionStatus === 'connected' && scopeId) {\n try {\n await this._remote.syncUpdate(entity, scopeId, id, fields);\n await this._queue?.remove(entity, id, scopeId, 'update');\n } catch (err) {\n if (err instanceof OwnershipError) {\n await this._queue?.remove(entity, id, scopeId, 'update');\n console.warn(`[Stitch] OwnershipError on update ${entity}/${id}:`, err.message);\n return;\n }\n const isNotFound = err instanceof Error && /not found/i.test(err.message);\n if (isNotFound && entity === rootEntity) {\n try {\n if (this._persistence) {\n await this._persistence.delete(rootEntity, id);\n }\n this.memory.delete(rootEntity, id);\n } catch (cleanupErr) {\n console.error(`[Stitch] Cleanup delete ${rootEntity}/${id} failed:`, cleanupErr);\n }\n await this._queue?.remove(entity, id, scopeId, 'update');\n } else if (isNotFound) {\n try {\n let full: Record<string, unknown>;\n if (this._persistence) {\n full = await this._persistence.read(entity, id);\n } else {\n full = this.memory.read(entity, id) ?? {};\n }\n await this._remote.syncCreate(entity, scopeId, full);\n } catch (createErr) {\n if (createErr instanceof OwnershipError) {\n await this._queue?.remove(entity, id, scopeId, 'update');\n console.warn(`[Stitch] OwnershipError on upsert ${entity}/${id}:`, createErr.message);\n return;\n }\n if (!isTransientSyncError(createErr)) {\n console.error(`[Stitch] Failed to sync upsert ${entity}:`, createErr);\n }\n }\n } else if (!isTransientSyncError(err)) {\n console.error(`[Stitch] Failed to sync update ${entity}:`, err);\n }\n }\n }\n }\n\n async delete(entity: string, id: string, tag?: OriginTag): Promise<void> {\n const { rootEntity, scopeField } = this.config.scope;\n\n const memExisting = this.memory.read(entity, id);\n let scopeId: string | undefined;\n\n if (memExisting) {\n scopeId = entity === rootEntity ? id : (memExisting[scopeField] as string | undefined);\n if (scopeId) {\n this.memory.delete(entity, id, tag);\n }\n }\n\n if (this._persistence) {\n if (!scopeId) {\n let existing: Record<string, unknown>;\n try {\n existing = await this._persistence.read(entity, id);\n } catch (readErr) {\n const msg = readErr instanceof Error ? readErr.message : String(readErr);\n if (/not found/i.test(msg)) return;\n throw readErr;\n }\n scopeId = entity === rootEntity ? id : (existing[scopeField] as string | undefined);\n if (scopeId && !memExisting) {\n this.memory.delete(entity, id, tag);\n }\n }\n\n try {\n await this._persistence.delete(entity, id);\n } catch (delErr) {\n const msg = delErr instanceof Error ? delErr.message : String(delErr);\n if (/not found/i.test(msg)) return;\n console.error(`[Stitch] Persistence delete ${entity} failed:`, delErr);\n }\n } else if (!memExisting) {\n return;\n }\n\n if (this._queue && scopeId) {\n await this._queue.queue({ op: 'delete', entity, id, scopeId, data: null });\n }\n\n if (this._remote && this._remote.connectionStatus === 'connected' && scopeId) {\n try {\n await this._remote.syncDelete(entity, scopeId, id);\n await this._queue?.remove(entity, id, scopeId, 'delete');\n } catch (err) {\n if (err instanceof OwnershipError) {\n await this._queue?.remove(entity, id, scopeId, 'delete');\n console.warn(`[Stitch] OwnershipError on delete ${entity}/${id}:`, err.message);\n return;\n }\n const isNotFound = err instanceof Error && /not found/i.test(err.message);\n if (!isNotFound && !isTransientSyncError(err)) {\n console.error(`[Stitch] Failed to sync delete ${entity}:`, err);\n }\n }\n }\n }\n\n subscribeToScope(scopeId: string, entity: string, callback: () => void): () => void {\n return this.memory.subscribeToScope(scopeId, entity, callback);\n }\n\n subscribeToEntity(\n entity: string,\n callback: (data: Record<string, unknown> | null, op: 'insert' | 'update' | 'delete') => void\n ): () => void {\n const memUnsub = this.memory.onMutation((event) => {\n if (event.entity !== entity) return;\n if (this._persistence && event.originTag !== 'load' && event.originTag !== 'clear') return;\n const op = event.operation === 'create' ? 'insert' : event.operation;\n callback(event.data, op as 'insert' | 'update' | 'delete');\n });\n\n const entry: (typeof this._earlySubscribers)[number] = {\n entity,\n callback: (data, op) => {\n callback((data ?? null) as Record<string, unknown> | null, op);\n },\n memoryUnsub: memUnsub,\n persistenceUnsub: null,\n };\n\n if (this._persistence) {\n entry.persistenceUnsub = this._persistence.subscribe(entity, entry.callback);\n } else {\n this._earlySubscribers.push(entry);\n }\n\n return () => {\n entry.memoryUnsub();\n entry.persistenceUnsub?.();\n const idx = this._earlySubscribers.indexOf(entry);\n if (idx >= 0) this._earlySubscribers.splice(idx, 1);\n };\n }\n\n beginBatch(): void {\n this.memory.beginBatch();\n }\n\n endBatch(): void {\n this.memory.endBatch();\n }\n\n async replaceScope(scopeId: string): Promise<void> {\n if (this.currentScopeId === scopeId) return;\n\n const { rootEntity, childEntities } = this.config.scope;\n\n if (this.currentScopeId && this.currentScopeId !== scopeId) {\n const prevScope = this.currentScopeId;\n this.currentScopeId = scopeId;\n this.closeScope(prevScope).catch(() => {});\n } else {\n this.currentScopeId = scopeId;\n }\n\n if (this._remote && this._remote.connectionStatus === 'connected') {\n if (this._persistence) {\n this._persistence.setSuppressNotifications(true);\n }\n try {\n const state = await this._remote.openScope(scopeId);\n\n if (this._persistence) {\n const localAccessor = this.createLocalAccessor();\n const versionField = this.config.versionField ?? 'version';\n\n if (state.root && state.root.id) {\n if (state.root[versionField] != null && typeof state.root[versionField] !== 'number') {\n state.root[versionField] = Number(state.root[versionField]) || 1;\n }\n try {\n await localAccessor.read(rootEntity, state.root.id as string);\n await localAccessor.update(rootEntity, state.root.id as string, state.root);\n } catch {\n await localAccessor.create(rootEntity, state.root);\n }\n } else {\n try {\n await localAccessor.read(rootEntity, scopeId);\n } catch {\n return;\n }\n }\n\n for (const childEntity of childEntities) {\n const serverChildren = state.children[childEntity] ?? [];\n await this._remote.reconcileChildren(\n scopeId,\n childEntity,\n serverChildren,\n localAccessor,\n this._queue\n );\n }\n\n for (const mutation of state.bufferedMutations) {\n await this._remote.applyMutationToDb(mutation, localAccessor);\n }\n\n const bundle = await this.loadScopeFromPersistence(scopeId);\n if (bundle) {\n this.memory.loadScope(scopeId, bundle, 'load');\n }\n await this.loadRootIntoMemory(rootEntity, scopeId);\n } else {\n this.memory.loadScope(scopeId, state.children, 'load');\n if (state.root && state.root.id) {\n this.memory.create(rootEntity, scopeId, state.root, 'load');\n }\n }\n } catch (err) {\n console.error('[Stitch] Failed to open scope from server:', err);\n if (this._persistence) {\n const bundle = await this.loadScopeFromPersistence(scopeId);\n if (bundle) {\n this.memory.loadScope(scopeId, bundle, 'load');\n }\n await this.loadRootIntoMemory(rootEntity, scopeId);\n }\n } finally {\n if (this._persistence) {\n this._persistence.setSuppressNotifications(false);\n }\n }\n } else if (this._persistence) {\n const bundle = await this.loadScopeFromPersistence(scopeId);\n if (bundle) {\n this.memory.loadScope(scopeId, bundle, 'load');\n }\n await this.loadRootIntoMemory(rootEntity, scopeId);\n }\n }\n\n async closeScope(scopeId: string): Promise<void> {\n if (this._remote) {\n await this._remote.closeScope(scopeId);\n }\n if (this.currentScopeId === scopeId) {\n this.currentScopeId = null;\n }\n }\n\n loadScope(scopeId: string, data: Record<string, Record<string, unknown>[]>): void {\n this.memory.loadScope(scopeId, data);\n }\n\n clearScope(scopeId: string): void {\n this.memory.clearScope(scopeId);\n }\n\n subscribeToConnectionStatus(cb: (s: ConnectionStatus) => void): () => void {\n if (this._remote) {\n return this._remote.subscribeToConnectionStatus(cb);\n }\n this.statusListeners.add(cb);\n cb(this._connectionStatus);\n return () => this.statusListeners.delete(cb);\n }\n\n disconnect(): void {\n this._remote?.disconnect();\n this._connectionStatus = 'offline';\n }\n\n async reconnect(serverUrl: string, getTicket?: () => Promise<string>): Promise<void> {\n if (this._remote) {\n await this._remote.reconnect(serverUrl, getTicket);\n }\n }\n\n setAuthenticatedUser(userId: string): void {\n this._authenticatedUser = userId;\n this._remote?.setAuthenticatedUser(userId);\n if (this._queue && 'setAuthenticatedUser' in this._queue) {\n (this._queue as OfflineQueueExt).setAuthenticatedUser!(userId);\n }\n }\n\n setSessionInvalidHandler(handler: () => void): void {\n this._remote?.setSessionInvalidHandler(handler);\n }\n\n setReconnectValidator(validator: () => Promise<void>): void {\n this._remote?.setReconnectValidator(validator);\n }\n\n resetForLogout(): void {\n this._remote?.resetForLogout();\n this._persistence?.close();\n this._persistence = null;\n this._queue = null;\n this._ready = false;\n this._initPromise = null;\n this._earlySubscribers = [];\n this.currentScopeId = null;\n this._authenticatedUser = null;\n this.initialSyncDone = false;\n this._connectionStatus = 'offline';\n sessionStorage.removeItem('stitch_cached_user');\n sessionStorage.removeItem('stitch_pending_logout');\n }\n\n async request(topic: string, payload: unknown): Promise<Record<string, unknown>> {\n if (!this._remote) throw new Error('No remote connection');\n return this._remote.request(topic, payload);\n }\n\n async readLocalState(entity: string, id: string): Promise<Record<string, unknown> | null> {\n if (this._persistence) {\n return this._persistence.readLocalState(entity, id);\n }\n return this.memory.read(entity, id);\n }\n\n async updateLocalState(\n entity: string,\n id: string,\n fields: Record<string, unknown>\n ): Promise<void> {\n if (this._persistence) {\n await this._persistence.updateLocalState(entity, id, fields);\n } else {\n const existing = this.memory.read(entity, id);\n if (existing) {\n this.memory.update(entity, id, fields);\n }\n }\n }\n\n async getCachedUser(): Promise<Record<string, unknown> | null> {\n try {\n const raw = sessionStorage.getItem('stitch_cached_user');\n if (!raw) return null;\n const envelope: unknown = JSON.parse(raw);\n if (typeof envelope !== 'object' || envelope === null) return null;\n const { user, cachedAt } = envelope as Record<string, unknown>;\n const MAX_AGE_MS = 15 * 60 * 1000;\n if (typeof cachedAt !== 'number' || Date.now() - cachedAt > MAX_AGE_MS) {\n sessionStorage.removeItem('stitch_cached_user');\n return null;\n }\n if (typeof user !== 'object' || user === null) return null;\n return user as Record<string, unknown>;\n } catch {\n return null;\n }\n }\n\n async setCachedUser(user: Record<string, unknown>): Promise<void> {\n sessionStorage.setItem('stitch_cached_user', JSON.stringify({ user, cachedAt: Date.now() }));\n sessionStorage.removeItem('stitch_pending_logout');\n }\n\n async clearCachedUser(): Promise<void> {\n sessionStorage.removeItem('stitch_cached_user');\n }\n\n async hasPendingLogout(): Promise<boolean> {\n return sessionStorage.getItem('stitch_pending_logout') === 'true';\n }\n\n async setPendingLogout(pending: boolean): Promise<void> {\n if (pending) {\n sessionStorage.setItem('stitch_pending_logout', 'true');\n } else {\n sessionStorage.removeItem('stitch_pending_logout');\n }\n }\n\n async flushPendingLogout(logoutFn: () => Promise<void>): Promise<void> {\n const pending = await this.hasPendingLogout();\n if (!pending) return;\n try {\n await logoutFn();\n await this.setPendingLogout(false);\n } catch {}\n }\n\n private async handleRemoteMutation(mutation: SyncMutation): Promise<void> {\n const localAccessor = this.createLocalAccessor();\n if (this._remote) {\n await this._remote.applyMutationToDb(mutation, localAccessor);\n }\n\n if (!this._persistence) {\n const { scopeField } = this.config.scope;\n switch (mutation.op) {\n case 'insert':\n if (mutation.data) {\n const sid = mutation.data[scopeField] as string | undefined;\n if (sid) {\n this.memory.create(\n mutation.entity,\n sid,\n { ...mutation.data, id: mutation.id },\n 'remote'\n );\n }\n }\n break;\n case 'update':\n if (mutation.data) {\n this.memory.update(mutation.entity, mutation.id, mutation.data, 'remote');\n }\n break;\n case 'delete':\n this.memory.delete(mutation.entity, mutation.id, 'remote');\n break;\n }\n }\n }\n\n private async onConnected(): Promise<void> {\n try {\n if (this._queue && this._remote) {\n const sender = this.createMutationSender();\n await this._queue.flush(sender);\n await this._queue.flush(sender);\n }\n if (this._remote) {\n const localAccessor = this.createLocalAccessor();\n this.initialSyncDone = false;\n await this._remote.syncRootEntityList(localAccessor, this._queue);\n this.initialSyncDone = true;\n }\n this._persistence?.notifyAllEntitySubscribers();\n } catch (err) {\n void err;\n this.initialSyncDone = true;\n }\n }\n\n private createLocalAccessor(): LocalAccessor {\n if (this._persistence) {\n return {\n read: (entity, id) => this._persistence!.read(entity, id),\n list: (entity, options) => this._persistence!.list(entity, options),\n create: (entity, data) => this._persistence!.create(entity, data),\n update: (entity, id, data) => this._persistence!.update(entity, id, data),\n delete: (entity, id) => this._persistence!.delete(entity, id),\n };\n }\n return {\n read: async (entity, id) => {\n const result = this.memory.read(entity, id);\n if (!result) throw new Error(`${entity} ${id} not found`);\n return result;\n },\n list: async (entity, options) => {\n const filters = (options as Record<string, unknown>).filters as\n | Array<{ field: string; op: string; value: unknown }>\n | undefined;\n if (filters && filters.length > 0) {\n const scopeFilter = filters.find((f) => f.field === this.config.scope.scopeField);\n if (scopeFilter) {\n return this.memory.list(entity, scopeFilter.value as string);\n }\n }\n return this.memory.list(entity, '');\n },\n create: async (entity, data) => {\n const { scopeField } = this.config.scope;\n const scopeId = data[scopeField] as string | undefined;\n this.memory.create(entity, scopeId ?? '', data, 'remote');\n },\n update: async (entity, id, data) => {\n this.memory.update(entity, id, data, 'remote');\n },\n delete: async (entity, id) => {\n this.memory.delete(entity, id, 'remote');\n },\n };\n }\n\n private createMutationSender(): MutationSender {\n return {\n syncCreate: (entity, scopeId, data) => this._remote!.syncCreate(entity, scopeId, data),\n syncUpdate: (entity, scopeId, id, data) =>\n this._remote!.syncUpdate(entity, scopeId, id, data),\n syncDelete: (entity, scopeId, id) => this._remote!.syncDelete(entity, scopeId, id),\n readEntity: async (entity, id) => {\n if (this._persistence) {\n return this._persistence.read(entity, id);\n }\n const result = this.memory.read(entity, id);\n if (!result) throw new Error(`${entity} ${id} not found`);\n return result;\n },\n deleteEntity: async (entity, id) => {\n if (this._persistence) {\n await this._persistence.delete(entity, id);\n }\n this.memory.delete(entity, id);\n },\n };\n }\n\n private async loadRootIntoMemory(rootEntity: string, scopeId: string): Promise<void> {\n if (!this._persistence) return;\n try {\n const rootRecord = await this._persistence.read(rootEntity, scopeId);\n this.memory.create(rootEntity, scopeId, rootRecord, 'load');\n } catch (readErr) {\n console.debug(`[Stitch] Root entity ${rootEntity}/${scopeId} not in persistence:`, readErr);\n }\n }\n\n private async loadScopeFromPersistence(\n scopeId: string\n ): Promise<Record<string, Record<string, unknown>[]> | null> {\n if (!this._persistence) return null;\n const { childEntities, scopeField } = this.config.scope;\n const children: Record<string, Record<string, unknown>[]> = {};\n for (const entity of childEntities) {\n children[entity] = await this._persistence.list(entity, {\n filters: [{ field: scopeField, op: 'eq', value: scopeId }],\n });\n }\n return children;\n }\n\n private setupPersistenceSubscriptions(): void {\n if (!this._persistence) return;\n\n const { childEntities, scopeField } = this.config.scope;\n\n for (const entity of childEntities) {\n this._persistence.subscribe(\n entity,\n (entityData: unknown, op: 'insert' | 'update' | 'delete') => {\n if (entityData === null || typeof entityData !== 'object') return;\n const record = entityData as Record<string, unknown>;\n const sid = record[scopeField] as string | undefined;\n if (!sid || sid !== this.currentScopeId) return;\n\n switch (op) {\n case 'insert':\n this.memory.create(entity, sid, record, 'remote');\n break;\n case 'update':\n this.memory.update(entity, record.id as string, record, 'remote');\n break;\n case 'delete':\n this.memory.delete(entity, record.id as string, 'remote');\n break;\n }\n }\n );\n }\n }\n}\n\nexport function createStore<\n S extends import('./types.ts').EntitySchema = import('./types.ts').DefaultSchema,\n>(config: StoreConfig, options?: StoreOptions): Store<S> {\n return new StoreImpl(config, options ?? {}) as unknown as Store<S>;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../src/sync-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-engine.js","sourceRoot":"","sources":["../src/sync-engine.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n MqttClient,\n SubscribeOptions,\n PublishOptions,\n MessageProperties as WasmMsgProps,\n} from 'mqtt5-wasm';\nimport type {\n StoreConfig,\n SyncMutation,\n ScopeState,\n ConnectionStatus,\n SortField,\n SyncEngine,\n} from './types.ts';\nimport { OwnershipError } from './types.ts';\n\ninterface ChangeEvent {\n operation: 'Create' | 'Update' | 'Delete';\n entity: string;\n id: string;\n data: Record<string, unknown> | null;\n operation_id?: string;\n sequence?: number;\n sender?: string;\n}\n\ntype MutationHandler = (scopeId: string, mutation: SyncMutation) => void;\ntype ConnectionStatusHandler = (status: ConnectionStatus) => void;\n\nconst FAST_RECONNECT_LIMIT = 5;\nconst SLOW_RECONNECT_INTERVAL = 15_000;\n\nfunction applyTicketAuth(\n connectOpts: import('mqtt5-wasm').ConnectOptions,\n ticket: string | undefined\n): void {\n if (!ticket) return;\n connectOpts.authenticationMethod = 'JWT';\n connectOpts.authenticationData = new TextEncoder().encode(ticket);\n}\n\nclass SyncEngineImpl implements SyncEngine {\n private client: MqttClient | null = null;\n private readonly clientId: string;\n private readonly config: StoreConfig;\n private readonly prefix: string;\n private readonly responsePrefix: string;\n private SubscribeOptions: (new () => SubscribeOptions) | null = null;\n private PublishOptions: (new () => PublishOptions) | null = null;\n private ConnectOptions: (new () => import('mqtt5-wasm').ConnectOptions) | null = null;\n\n private desiredScopes = new Set<string>();\n private subscribedScopes = new Set<string>();\n private appliedVersion = new Map<string, number>();\n private buffered = new Map<string, SyncMutation[]>();\n private awaitingState = new Set<string>();\n private pendingRequests = new Map<\n string,\n { resolve: (value: unknown) => void; reject: (error: Error) => void }\n >();\n\n private topLevelSubscribed = false;\n\n private onMutation: MutationHandler | null = null;\n private onConnectionStatus: ConnectionStatusHandler | null = null;\n private onSessionInvalid: (() => void) | null = null;\n private getTicket: (() => Promise<string>) | null = null;\n private active = false;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n private reconnectAttempt = 0;\n private reconnecting = false;\n private slowReconnecting = false;\n private serverUrl: string | null = null;\n\n constructor(clientId: string, config: StoreConfig) {\n if (/[+#/]/.test(clientId)) {\n throw new Error('clientId must not contain MQTT special characters (+, #, /)');\n }\n this.clientId = clientId;\n this.config = config;\n this.prefix = config.syncTopicPrefix ?? '$DB';\n this.responsePrefix = config.responseTopicPrefix ?? '$SYS/responses';\n }\n\n async connect(\n serverUrl: string,\n wasmModule: unknown,\n getTicket?: () => Promise<string>\n ): Promise<void> {\n this.onConnectionStatus?.('connecting');\n this.active = true;\n this.serverUrl = serverUrl;\n\n if (getTicket) {\n this.getTicket = getTicket;\n }\n\n if (!this.client) {\n const mod = wasmModule as typeof import('mqtt5-wasm');\n const {\n default: initMqttWasm,\n MqttClient,\n ConnectOptions,\n SubscribeOptions,\n PublishOptions,\n } = mod;\n await initMqttWasm();\n this.client = new MqttClient(this.clientId);\n this.SubscribeOptions = SubscribeOptions;\n this.PublishOptions = PublishOptions;\n this.ConnectOptions = ConnectOptions;\n\n this.client.onConnect(() => {\n if (!this.active) return;\n this.clearReconnectTimer();\n this.reconnectAttempt = 0;\n this.slowReconnecting = false;\n this.topLevelSubscribed = false;\n Promise.all([this.subscribeToResponseTopic(), this.subscribeToTopLevel()])\n .then(() => {\n if (this.active) this.onConnectionStatus?.('connected');\n for (const scopeId of this.desiredScopes) {\n this.subscribeToScope(scopeId)\n .then(() => this.subscribedScopes.add(scopeId))\n .catch((err) => console.error(`[SyncEngine] Re-subscribe ${scopeId} failed:`, err));\n }\n })\n .catch((err) => {\n console.error('[SyncEngine] Post-connect subscribe failed:', err);\n this.onConnectionStatus?.('error');\n this.scheduleReconnect();\n });\n });\n\n this.client.onDisconnect(() => {\n if (!this.active) return;\n if (this.reconnecting) return;\n this.onConnectionStatus?.('disconnected');\n this.cleanupOnDisconnect();\n if (this.client?.isBrowserOnline()) {\n this.scheduleReconnect();\n }\n });\n\n this.client.onError((error: string) => {\n if (!this.active) return;\n if (/closed by peer|connection reset/i.test(error)) return;\n if (/not.?authorized|bad.?user|bad.?password|authentication|0x8[567]/i.test(error)) {\n this.cancelReconnect();\n this.onSessionInvalid?.();\n return;\n }\n console.error('[SyncEngine] MQTT error:', error);\n this.onConnectionStatus?.('error');\n });\n\n this.client.onConnectivityChange((online: boolean) => {\n if (!this.active) return;\n if (!online) {\n this.cancelReconnect();\n this.onConnectionStatus?.('offline');\n this.cleanupOnDisconnect();\n } else {\n this.scheduleReconnect(0);\n }\n });\n }\n\n try {\n const connectOpts = new this.ConnectOptions!();\n connectOpts.cleanStart = true;\n connectOpts.keepAlive = 60;\n\n if (this.getTicket) {\n applyTicketAuth(connectOpts, await this.getTicket());\n }\n\n await this.client.connectWithOptions(serverUrl, connectOpts);\n } catch (err) {\n this.onConnectionStatus?.('disconnected');\n if (this.client?.isBrowserOnline()) {\n this.scheduleReconnect();\n }\n throw err;\n }\n }\n\n async reconnect(serverUrl: string, getTicket?: () => Promise<string>): Promise<void> {\n if (!this.client || !this.ConnectOptions) {\n throw new Error('Cannot reconnect before initial connect');\n }\n\n this.clearReconnectTimer();\n this.reconnecting = true;\n this.active = true;\n this.serverUrl = serverUrl;\n if (!this.slowReconnecting) {\n this.onConnectionStatus?.('connecting');\n }\n\n if (getTicket) {\n this.getTicket = getTicket;\n }\n\n try {\n this.client.disconnect();\n } catch {\n // WASM client may throw if already disconnected\n }\n\n let failed = false;\n try {\n const connectOpts = new this.ConnectOptions();\n connectOpts.cleanStart = true;\n connectOpts.keepAlive = 60;\n\n if (this.getTicket) {\n const ticket = await Promise.race([\n this.getTicket(),\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error('getTicket timeout')), 10_000)\n ),\n ]);\n applyTicketAuth(connectOpts, ticket);\n }\n\n await this.client.connectWithOptions(serverUrl, connectOpts);\n } catch (err) {\n if (err instanceof Error && err.name === 'SessionExpiredError') {\n this.cancelReconnect();\n this.onSessionInvalid?.();\n return;\n }\n failed = true;\n throw err;\n } finally {\n this.reconnecting = false;\n if (failed && this.active && this.client?.isBrowserOnline()) {\n this.scheduleReconnect();\n }\n }\n }\n\n private cleanupOnDisconnect(): void {\n this.subscribedScopes.clear();\n this.appliedVersion.clear();\n this.buffered.clear();\n this.awaitingState.clear();\n this.topLevelSubscribed = false;\n for (const [, { reject }] of this.pendingRequests) {\n reject(new Error('Disconnected'));\n }\n this.pendingRequests.clear();\n }\n\n private scheduleReconnect(delayOverride?: number): void {\n if (this.reconnectTimer || this.reconnecting || !this.active || !this.serverUrl) return;\n\n if (!this.slowReconnecting && this.reconnectAttempt >= FAST_RECONNECT_LIMIT) {\n this.slowReconnecting = true;\n this.onConnectionStatus?.('disconnected');\n }\n\n const baseDelay = this.slowReconnecting\n ? SLOW_RECONNECT_INTERVAL\n : (delayOverride ?? Math.min(1000 * 2 ** this.reconnectAttempt, 30000));\n const jitter = Math.random() * (baseDelay / 4);\n const delay = Math.round(baseDelay + jitter);\n\n this.reconnectTimer = setTimeout(async () => {\n this.reconnectTimer = null;\n if (!this.active || !this.serverUrl) return;\n\n this.reconnectAttempt++;\n try {\n await this.reconnect(this.serverUrl, this.getTicket ?? undefined);\n } catch {\n if (this.active && this.client?.isBrowserOnline()) {\n this.scheduleReconnect();\n }\n }\n }, delay);\n }\n\n private clearReconnectTimer(): void {\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n }\n\n private cancelReconnect(): void {\n this.clearReconnectTimer();\n this.reconnectAttempt = 0;\n this.slowReconnecting = false;\n }\n\n disconnect(): void {\n this.active = false;\n this.reconnecting = false;\n this.cancelReconnect();\n this.cleanupOnDisconnect();\n try {\n this.client?.disconnect();\n } catch {\n // mqtt5-wasm may throw on disconnect\n }\n }\n\n setMutationHandler(handler: MutationHandler): void {\n this.onMutation = handler;\n }\n\n setConnectionStatusHandler(handler: ConnectionStatusHandler): void {\n this.onConnectionStatus = handler;\n }\n\n setSessionInvalidHandler(handler: () => void): void {\n this.onSessionInvalid = handler;\n }\n\n private async subscribeToResponseTopic(): Promise<void> {\n if (!this.client || !this.SubscribeOptions) return;\n const responseTopic = `${this.responsePrefix}/${this.clientId}/#`;\n const subOpts = new this.SubscribeOptions();\n subOpts.qos = 1;\n await this.client.subscribeWithOptions(\n responseTopic,\n (topic: string, payload: Uint8Array) => {\n this.handleResponseMessage(topic, payload);\n },\n subOpts\n );\n }\n\n private async subscribeToTopLevel(): Promise<void> {\n if (!this.client || !this.SubscribeOptions || this.topLevelSubscribed) return;\n const { rootEntity } = this.config.scope;\n\n const subOpts = new this.SubscribeOptions();\n subOpts.qos = 1;\n await this.client.subscribeWithOptions(\n `${this.prefix}/${rootEntity}/+/events/#`,\n (topic: string, payload: Uint8Array, properties?: WasmMsgProps) => {\n this.handleRootEntityEvent(topic, payload, properties);\n },\n subOpts\n );\n\n if (this.config.topLevelEntities) {\n for (const topLevel of this.config.topLevelEntities) {\n const tSubOpts = new this.SubscribeOptions!();\n tSubOpts.qos = 1;\n await this.client.subscribeWithOptions(\n topLevel.subscriptionPattern,\n (topic: string, payload: Uint8Array, properties?: WasmMsgProps) => {\n this.handleTopLevelEntityEvent(topLevel.entity, topic, payload, properties);\n },\n tSubOpts\n );\n }\n }\n\n this.topLevelSubscribed = true;\n }\n\n private handleRootEntityEvent(\n topic: string,\n payload: Uint8Array,\n properties?: WasmMsgProps\n ): void {\n const parsed = this.parseScopedTopic(topic);\n if (!parsed || parsed.entity !== this.config.scope.rootEntity) return;\n if (this.subscribedScopes.has(parsed.scopeId)) return;\n\n let event: ChangeEvent;\n try {\n const parsedPayload: unknown = JSON.parse(new TextDecoder().decode(payload));\n if (!SyncEngineImpl.isValidChangeEvent(parsedPayload)) return;\n event = parsedPayload;\n } catch {\n return;\n }\n\n if (this.isOwnMutation(properties, event.sender)) return;\n\n const opMap: Record<string, ChangeEvent['operation']> = {\n created: 'Create',\n updated: 'Update',\n deleted: 'Delete',\n };\n event.operation = opMap[parsed.eventType] ?? event.operation;\n\n const mutation = SyncEngineImpl.mapChangeEvent(this.config.scope.rootEntity, event);\n this.applyMutation('__global__', mutation);\n }\n\n private handleTopLevelEntityEvent(\n entityName: string,\n topic: string,\n payload: Uint8Array,\n properties?: WasmMsgProps\n ): void {\n const match = topic.match(new RegExp(`^\\\\${this.prefix}/${entityName}/events/(.+)$`));\n if (!match) return;\n\n let event: ChangeEvent;\n try {\n const parsedPayload: unknown = JSON.parse(new TextDecoder().decode(payload));\n if (!SyncEngineImpl.isValidChangeEvent(parsedPayload)) return;\n event = parsedPayload;\n } catch {\n return;\n }\n\n if (this.isOwnMutation(properties, event.sender)) return;\n\n const mutation = SyncEngineImpl.mapChangeEvent(entityName, event);\n this.applyMutation('__global__', mutation);\n }\n\n private handleResponseMessage(topic: string, payload: Uint8Array): void {\n const match = topic.match(new RegExp(`^\\\\${this.responsePrefix}/[^/]+/(.+)$`));\n if (!match) return;\n\n const requestId = match[1];\n const pending = this.pendingRequests.get(requestId);\n if (pending) {\n this.pendingRequests.delete(requestId);\n try {\n const response = JSON.parse(new TextDecoder().decode(payload));\n pending.resolve(response);\n } catch {\n pending.reject(new Error('Invalid response format'));\n }\n }\n }\n\n private async subscribeToScope(scopeId: string): Promise<void> {\n if (!this.client || !this.SubscribeOptions) return;\n const { rootEntity } = this.config.scope;\n\n const subOpts = new this.SubscribeOptions();\n subOpts.qos = 1;\n await this.client.subscribeWithOptions(\n `${this.prefix}/${rootEntity}/${scopeId}/#`,\n (topic: string, payload: Uint8Array, properties?: WasmMsgProps) => {\n this.handleWatchMessage(topic, payload, properties);\n },\n subOpts\n );\n }\n\n private async unsubscribeFromScope(scopeId: string): Promise<void> {\n if (!this.client) return;\n const { rootEntity } = this.config.scope;\n await this.client.unsubscribe(`${this.prefix}/${rootEntity}/${scopeId}/#`);\n }\n\n private static isValidChangeEvent(value: unknown): value is ChangeEvent {\n if (typeof value !== 'object' || value === null) return false;\n const e = value as Record<string, unknown>;\n return (\n typeof e.id === 'string' &&\n e.id.length > 0 &&\n typeof e.operation === 'string' &&\n ['Create', 'Update', 'Delete'].includes(e.operation) &&\n (e.data === undefined || e.data === null || typeof e.data === 'object')\n );\n }\n\n private static mapChangeEvent(entity: string, event: ChangeEvent): SyncMutation {\n const opMap: Record<string, SyncMutation['op']> = {\n Create: 'insert',\n Update: 'update',\n Delete: 'delete',\n };\n return {\n op: opMap[event.operation] ?? 'update',\n entity,\n id: event.id,\n data: event.data ?? null,\n operationId: event.operation_id ?? null,\n };\n }\n\n private parseScopedTopic(\n topic: string\n ): { scopeId: string; entity: string; eventType: string } | null {\n const { rootEntity } = this.config.scope;\n\n const rootOwn = topic.match(\n new RegExp(`^\\\\${this.prefix}/${rootEntity}/([^/]+)/events/(created|updated|deleted)$`)\n );\n if (rootOwn) {\n return { scopeId: rootOwn[1], entity: rootEntity, eventType: rootOwn[2] };\n }\n\n const childEntity = topic.match(\n new RegExp(`^\\\\${this.prefix}/${rootEntity}/([^/]+)/(\\\\w+)/events/(created|updated|deleted)$`)\n );\n if (childEntity) {\n return { scopeId: childEntity[1], entity: childEntity[2], eventType: childEntity[3] };\n }\n\n return null;\n }\n\n private static extractOriginClientId(properties?: WasmMsgProps): string | null {\n if (!properties) return null;\n const userProps = properties.getUserProperties();\n for (let i = 0; i < userProps.length; i++) {\n const [key, value] = userProps[i] as [string, string];\n if (key === 'x-origin-client-id') return value;\n }\n return null;\n }\n\n private isOwnMutation(properties?: WasmMsgProps, eventSender?: string): boolean {\n if (eventSender === this.clientId) return true;\n const origin = SyncEngineImpl.extractOriginClientId(properties);\n return origin === this.clientId;\n }\n\n private handleWatchMessage(topic: string, payload: Uint8Array, properties?: WasmMsgProps): void {\n const parsed = this.parseScopedTopic(topic);\n if (!parsed) return;\n\n const { scopeId, entity, eventType } = parsed;\n\n let event: ChangeEvent;\n try {\n const parsedPayload: unknown = JSON.parse(new TextDecoder().decode(payload));\n if (!SyncEngineImpl.isValidChangeEvent(parsedPayload)) return;\n event = parsedPayload;\n } catch {\n return;\n }\n\n const opMap: Record<string, ChangeEvent['operation']> = {\n created: 'Create',\n updated: 'Update',\n deleted: 'Delete',\n };\n event.operation = opMap[eventType] ?? event.operation;\n\n if (this.isOwnMutation(properties, event.sender)) return;\n\n const mutation = SyncEngineImpl.mapChangeEvent(entity, event);\n\n if (this.awaitingState.has(scopeId)) {\n this.buffered.get(scopeId)?.push(mutation);\n return;\n }\n\n this.applyMutation(scopeId, mutation);\n }\n\n private applyMutation(scopeId: string, mutation: SyncMutation): void {\n this.onMutation?.(scopeId, mutation);\n }\n\n async openScope(scopeId: string): Promise<ScopeState> {\n if (!this.client) throw new Error('Not connected');\n\n const { rootEntity, childEntities, scopeField } = this.config.scope;\n\n this.desiredScopes.add(scopeId);\n this.awaitingState.add(scopeId);\n this.buffered.set(scopeId, []);\n this.subscribedScopes.add(scopeId);\n\n try {\n await this.subscribeToScope(scopeId);\n\n const fetchPromises: Promise<Record<string, unknown>[] | null>[] = childEntities.map(\n (entity) => this.fetchList(entity, scopeId)\n );\n\n const [rootRecord, ...childResults] = await Promise.all([\n this.fetchOne(rootEntity, scopeId),\n ...fetchPromises,\n ]);\n\n const root = rootRecord ?? {};\n const children: Record<string, Record<string, unknown>[]> = {};\n for (let i = 0; i < childEntities.length; i++) {\n children[childEntities[i]] = childResults[i] ?? [];\n }\n\n const versionField = this.config.versionField ?? 'version';\n const version = (root[versionField] as number) || 0;\n this.appliedVersion.set(scopeId, version);\n\n const buffer = this.buffered.get(scopeId) || [];\n const bufferedMutations: SyncMutation[] = [];\n for (const mutation of buffer) {\n const belongsToScope =\n mutation.entity === rootEntity\n ? mutation.id === scopeId\n : (mutation.data?.[scopeField] as string | undefined) === scopeId;\n if (belongsToScope) {\n bufferedMutations.push(mutation);\n }\n }\n\n this.buffered.delete(scopeId);\n this.awaitingState.delete(scopeId);\n\n return { root, children, version, bufferedMutations };\n } catch (err) {\n this.buffered.delete(scopeId);\n this.awaitingState.delete(scopeId);\n this.subscribedScopes.delete(scopeId);\n throw err;\n }\n }\n\n async closeScope(scopeId: string): Promise<void> {\n this.desiredScopes.delete(scopeId);\n this.subscribedScopes.delete(scopeId);\n this.buffered.delete(scopeId);\n this.awaitingState.delete(scopeId);\n this.appliedVersion.delete(scopeId);\n await this.unsubscribeFromScope(scopeId);\n }\n\n private checkResponseAndAuth(response: Record<string, unknown>): void {\n if (response.status === 'error') {\n const msg = (response.message as string) || 'Operation failed';\n if (response.code === 401) {\n this.onSessionInvalid?.();\n throw new Error(msg);\n }\n if (response.code === 403) {\n throw new OwnershipError(msg);\n }\n throw new Error(msg);\n }\n }\n\n private extractResponseId(response: Record<string, unknown>): string {\n const data = response.data;\n if (typeof data !== 'object' || data === null) {\n throw new Error('Response missing data payload');\n }\n const id = (data as Record<string, unknown>).id;\n if (typeof id !== 'string' || id.length === 0) {\n throw new Error('Response missing valid id');\n }\n return id;\n }\n\n async createEntity(\n entity: string,\n scopeId: string | null,\n data: Record<string, unknown>\n ): Promise<string> {\n const { scopeField, childEntities } = this.config.scope;\n const isChild = childEntities.includes(entity);\n const payload = isChild && scopeId ? { ...data, [scopeField]: scopeId } : data;\n\n const response = await this.request(`${this.prefix}/${entity}/create`, payload);\n this.checkResponseAndAuth(response);\n const id = this.extractResponseId(response);\n\n if (isChild && scopeId) {\n await this.bumpScopeVersion(scopeId);\n }\n\n return id;\n }\n\n async updateEntity(\n entity: string,\n scopeId: string | null,\n id: string,\n data: Record<string, unknown>\n ): Promise<void> {\n const response = await this.request(`${this.prefix}/${entity}/${id}/update`, data);\n this.checkResponseAndAuth(response);\n\n const { childEntities } = this.config.scope;\n if (childEntities.includes(entity) && scopeId) {\n await this.bumpScopeVersion(scopeId);\n }\n }\n\n async deleteEntity(entity: string, scopeId: string | null, id: string): Promise<void> {\n const response = await this.request(`${this.prefix}/${entity}/${id}/delete`, {});\n this.checkResponseAndAuth(response);\n\n const { childEntities } = this.config.scope;\n if (childEntities.includes(entity) && scopeId) {\n await this.bumpScopeVersion(scopeId);\n }\n }\n\n async bumpScopeVersion(scopeId: string): Promise<void> {\n const { rootEntity } = this.config.scope;\n const versionField = this.config.versionField ?? 'version';\n const updatedAtField = this.config.updatedAtField ?? 'updatedAt';\n const now = Date.now();\n\n const response = await this.request(`${this.prefix}/${rootEntity}/${scopeId}/update`, {\n [versionField]: now,\n [updatedAtField]: now,\n });\n this.checkResponseAndAuth(response);\n this.appliedVersion.set(scopeId, now);\n }\n\n private async fetchOne(entity: string, id: string): Promise<Record<string, unknown> | null> {\n try {\n const response = await this.request(`${this.prefix}/${entity}/${id}`, {});\n this.checkResponseAndAuth(response);\n return response.data as Record<string, unknown>;\n } catch {\n return null;\n }\n }\n\n async fetchList(\n entity: string,\n scopeId?: string,\n sort?: SortField[]\n ): Promise<Record<string, unknown>[] | null> {\n try {\n const payload: Record<string, unknown> = {};\n if (scopeId) {\n const { scopeField } = this.config.scope;\n payload.filters = [{ field: scopeField, op: 'eq', value: scopeId }];\n }\n if (sort && sort.length > 0) {\n payload.sort = sort;\n }\n const response = await this.request(`${this.prefix}/${entity}/list`, payload);\n this.checkResponseAndAuth(response);\n return (response.data as Record<string, unknown>[]) || [];\n } catch {\n return null;\n }\n }\n\n async request(topic: string, payload: unknown): Promise<Record<string, unknown>> {\n if (!this.client || !this.PublishOptions) throw new Error('Not connected');\n\n const requestId = crypto.randomUUID();\n const responseTopic = `${this.responsePrefix}/${this.clientId}/${requestId}`;\n\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n this.pendingRequests.delete(requestId);\n reject(new Error('Request timeout'));\n }, 10000);\n\n this.pendingRequests.set(requestId, {\n resolve: (value) => {\n clearTimeout(timeout);\n resolve(value as Record<string, unknown>);\n },\n reject: (error) => {\n clearTimeout(timeout);\n reject(error);\n },\n });\n\n const encoder = new TextEncoder();\n const pubOpts = new this.PublishOptions!();\n pubOpts.qos = 1;\n pubOpts.retain = false;\n pubOpts.responseTopic = responseTopic;\n pubOpts.correlationData = encoder.encode(requestId);\n\n const body = JSON.stringify(payload);\n\n this.client!.publishWithOptions(topic, encoder.encode(body), pubOpts).catch((err: Error) => {\n this.pendingRequests.delete(requestId);\n clearTimeout(timeout);\n reject(err);\n });\n });\n }\n\n get isReconnecting(): boolean {\n return this.reconnecting || this.reconnectTimer !== null;\n }\n\n isSubscribedTo(scopeId: string): boolean {\n return this.subscribedScopes.has(scopeId);\n }\n\n getAppliedVersion(scopeId: string): number {\n return this.appliedVersion.get(scopeId) || 0;\n }\n}\n\nexport function createSyncEngine(clientId: string, config: StoreConfig): SyncEngine {\n return new SyncEngineImpl(clientId, config);\n}\n"]}