@syncular/client 0.0.6-95 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/README.md +713 -11
  2. package/dist/auth-leases.d.ts +11 -0
  3. package/dist/auth-leases.d.ts.map +1 -0
  4. package/dist/auth-leases.js +140 -0
  5. package/dist/auth-leases.js.map +1 -0
  6. package/dist/blob-limits.d.ts +15 -0
  7. package/dist/blob-limits.d.ts.map +1 -0
  8. package/dist/blob-limits.js +66 -0
  9. package/dist/blob-limits.js.map +1 -0
  10. package/dist/bridge-client.d.ts +69 -0
  11. package/dist/bridge-client.d.ts.map +1 -0
  12. package/dist/bridge-client.js +282 -0
  13. package/dist/bridge-client.js.map +1 -0
  14. package/dist/client-config.d.ts +6 -0
  15. package/dist/client-config.d.ts.map +1 -0
  16. package/dist/client-config.js +18 -0
  17. package/dist/client-config.js.map +1 -0
  18. package/dist/client.d.ts +65 -397
  19. package/dist/client.d.ts.map +1 -1
  20. package/dist/client.js +150 -960
  21. package/dist/client.js.map +1 -1
  22. package/dist/command-history.d.ts +35 -0
  23. package/dist/command-history.d.ts.map +1 -0
  24. package/dist/command-history.js +378 -0
  25. package/dist/command-history.js.map +1 -0
  26. package/dist/console-diagnostics.d.ts +33 -0
  27. package/dist/console-diagnostics.d.ts.map +1 -0
  28. package/dist/console-diagnostics.js +496 -0
  29. package/dist/console-diagnostics.js.map +1 -0
  30. package/dist/crdt-yjs/index.d.ts +4 -0
  31. package/dist/crdt-yjs/index.d.ts.map +1 -0
  32. package/dist/crdt-yjs/index.js +4 -0
  33. package/dist/crdt-yjs/index.js.map +1 -0
  34. package/dist/crdt-yjs/webview-host-facade.d.ts +126 -0
  35. package/dist/crdt-yjs/webview-host-facade.d.ts.map +1 -0
  36. package/dist/crdt-yjs/webview-host-facade.js +284 -0
  37. package/dist/crdt-yjs/webview-host-facade.js.map +1 -0
  38. package/dist/crdt-yjs/yjs-document-field-adapter.d.ts +153 -0
  39. package/dist/crdt-yjs/yjs-document-field-adapter.d.ts.map +1 -0
  40. package/dist/crdt-yjs/yjs-document-field-adapter.js +406 -0
  41. package/dist/crdt-yjs/yjs-document-field-adapter.js.map +1 -0
  42. package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts +73 -0
  43. package/dist/crdt-yjs/yjs-prosemirror-bridge.d.ts.map +1 -0
  44. package/dist/crdt-yjs/yjs-prosemirror-bridge.js +169 -0
  45. package/dist/crdt-yjs/yjs-prosemirror-bridge.js.map +1 -0
  46. package/dist/database.d.ts +83 -0
  47. package/dist/database.d.ts.map +1 -0
  48. package/dist/database.js +916 -0
  49. package/dist/database.js.map +1 -0
  50. package/dist/diagnostics.d.ts +10 -0
  51. package/dist/diagnostics.d.ts.map +1 -0
  52. package/dist/diagnostics.js +83 -0
  53. package/dist/diagnostics.js.map +1 -0
  54. package/dist/errors.d.ts +24 -0
  55. package/dist/errors.d.ts.map +1 -0
  56. package/dist/errors.js +211 -0
  57. package/dist/errors.js.map +1 -0
  58. package/dist/generated-bridge.d.ts +365 -0
  59. package/dist/generated-bridge.d.ts.map +1 -0
  60. package/dist/generated-bridge.js +250 -0
  61. package/dist/generated-bridge.js.map +1 -0
  62. package/dist/index.d.ts +13 -23
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +14 -25
  65. package/dist/index.js.map +1 -1
  66. package/dist/mutations.d.ts +4 -72
  67. package/dist/mutations.d.ts.map +1 -1
  68. package/dist/mutations.js +2 -568
  69. package/dist/mutations.js.map +1 -1
  70. package/dist/network.d.ts +3 -0
  71. package/dist/network.d.ts.map +1 -0
  72. package/dist/network.js +17 -0
  73. package/dist/network.js.map +1 -0
  74. package/dist/react/index.d.ts +169 -0
  75. package/dist/react/index.d.ts.map +1 -0
  76. package/dist/react/index.js +628 -0
  77. package/dist/react/index.js.map +1 -0
  78. package/dist/react-native/index.d.ts +35 -0
  79. package/dist/react-native/index.d.ts.map +1 -0
  80. package/dist/react-native/index.js +49 -0
  81. package/dist/react-native/index.js.map +1 -0
  82. package/dist/runtime-contract.d.ts +13 -0
  83. package/dist/runtime-contract.d.ts.map +1 -0
  84. package/dist/runtime-contract.js +24 -0
  85. package/dist/runtime-contract.js.map +1 -0
  86. package/dist/rust-client.d.ts +106 -0
  87. package/dist/rust-client.d.ts.map +1 -0
  88. package/dist/rust-client.js +936 -0
  89. package/dist/rust-client.js.map +1 -0
  90. package/dist/sentry.d.ts +35 -0
  91. package/dist/sentry.d.ts.map +1 -0
  92. package/dist/sentry.js +155 -0
  93. package/dist/sentry.js.map +1 -0
  94. package/dist/sql-safety.d.ts +3 -0
  95. package/dist/sql-safety.d.ts.map +1 -0
  96. package/dist/sql-safety.js +62 -0
  97. package/dist/sql-safety.js.map +1 -0
  98. package/dist/syncular-runtime-artifacts.json +61 -0
  99. package/dist/tauri/index.d.ts +35 -0
  100. package/dist/tauri/index.d.ts.map +1 -0
  101. package/dist/tauri/index.js +114 -0
  102. package/dist/tauri/index.js.map +1 -0
  103. package/dist/types.d.ts +1059 -0
  104. package/dist/types.d.ts.map +1 -0
  105. package/dist/types.js +2 -0
  106. package/dist/types.js.map +1 -0
  107. package/dist/wasm/.syncular-wasm-profile +1 -0
  108. package/dist/wasm/syncular-runtime-artifact.json +21 -0
  109. package/dist/wasm/syncular.d.ts +207 -0
  110. package/dist/wasm/syncular.js +2341 -0
  111. package/dist/wasm/syncular_bg.wasm +0 -0
  112. package/dist/wasm/syncular_bg.wasm.d.ts +97 -0
  113. package/dist/wasm-bindings/runtime-contract.d.ts +22 -0
  114. package/dist/wasm-bindings/runtime-contract.d.ts.map +1 -0
  115. package/dist/wasm-bindings/runtime-contract.js +112 -0
  116. package/dist/wasm-bindings/runtime-contract.js.map +1 -0
  117. package/dist/wasm-core/.syncular-wasm-profile +1 -0
  118. package/dist/wasm-core/syncular-runtime-artifact.json +17 -0
  119. package/dist/wasm-core/syncular.d.ts +162 -0
  120. package/dist/wasm-core/syncular.js +1847 -0
  121. package/dist/wasm-core/syncular_bg.wasm +0 -0
  122. package/dist/wasm-core/syncular_bg.wasm.d.ts +77 -0
  123. package/dist/wasm-perf/.syncular-wasm-profile +1 -0
  124. package/dist/wasm-perf/syncular-runtime-artifact.json +21 -0
  125. package/dist/wasm-perf/syncular.d.ts +207 -0
  126. package/dist/wasm-perf/syncular.js +2341 -0
  127. package/dist/wasm-perf/syncular_bg.wasm +0 -0
  128. package/dist/wasm-perf/syncular_bg.wasm.d.ts +97 -0
  129. package/dist/wasm-runtime.d.ts +18 -0
  130. package/dist/wasm-runtime.d.ts.map +1 -0
  131. package/dist/wasm-runtime.js +28 -0
  132. package/dist/wasm-runtime.js.map +1 -0
  133. package/dist/worker-client.d.ts +123 -0
  134. package/dist/worker-client.d.ts.map +1 -0
  135. package/dist/worker-client.js +1686 -0
  136. package/dist/worker-client.js.map +1 -0
  137. package/dist/worker-entry.d.ts +2 -0
  138. package/dist/worker-entry.d.ts.map +1 -0
  139. package/dist/worker-entry.js +479 -0
  140. package/dist/worker-entry.js.map +1 -0
  141. package/dist/worker-protocol.d.ts +64 -0
  142. package/dist/worker-protocol.d.ts.map +1 -0
  143. package/dist/worker-protocol.js +16 -0
  144. package/dist/worker-protocol.js.map +1 -0
  145. package/dist/worker-realtime.d.ts +39 -0
  146. package/dist/worker-realtime.d.ts.map +1 -0
  147. package/dist/worker-realtime.js +677 -0
  148. package/dist/worker-realtime.js.map +1 -0
  149. package/package.json +124 -17
  150. package/src/auth-leases.ts +251 -0
  151. package/src/blob-limits.ts +98 -0
  152. package/src/bridge-client.ts +512 -0
  153. package/src/client-config.ts +29 -0
  154. package/src/client.ts +256 -1414
  155. package/src/command-history.ts +623 -0
  156. package/src/console-diagnostics.ts +617 -0
  157. package/src/crdt-yjs/index.ts +3 -0
  158. package/src/crdt-yjs/webview-host-facade.ts +477 -0
  159. package/src/crdt-yjs/yjs-document-field-adapter.ts +733 -0
  160. package/src/crdt-yjs/yjs-prosemirror-bridge.ts +272 -0
  161. package/src/database.ts +1342 -0
  162. package/src/diagnostics.ts +116 -0
  163. package/src/errors.ts +269 -0
  164. package/src/generated-bridge.ts +741 -0
  165. package/src/index.ts +21 -25
  166. package/src/mutations.ts +12 -821
  167. package/src/network.ts +32 -0
  168. package/src/react/index.ts +1036 -0
  169. package/src/react-native/index.ts +152 -0
  170. package/src/runtime-contract.ts +48 -0
  171. package/src/rust-client.ts +1488 -0
  172. package/src/sentry.ts +215 -0
  173. package/src/sql-safety.ts +61 -0
  174. package/src/tauri/index.ts +211 -0
  175. package/src/types.ts +1356 -0
  176. package/src/wasm-bindings/generated-wasm-bindings.d.ts +70 -0
  177. package/src/wasm-bindings/runtime-contract.ts +158 -0
  178. package/src/wasm-runtime.ts +76 -0
  179. package/src/worker-client.ts +2215 -0
  180. package/src/worker-entry.ts +584 -0
  181. package/src/worker-protocol.ts +109 -0
  182. package/src/worker-realtime.ts +843 -0
  183. package/dist/blobs/index.d.ts +0 -7
  184. package/dist/blobs/index.d.ts.map +0 -1
  185. package/dist/blobs/index.js +0 -7
  186. package/dist/blobs/index.js.map +0 -1
  187. package/dist/blobs/manager.d.ts +0 -345
  188. package/dist/blobs/manager.d.ts.map +0 -1
  189. package/dist/blobs/manager.js +0 -749
  190. package/dist/blobs/manager.js.map +0 -1
  191. package/dist/blobs/migrate.d.ts +0 -14
  192. package/dist/blobs/migrate.d.ts.map +0 -1
  193. package/dist/blobs/migrate.js +0 -59
  194. package/dist/blobs/migrate.js.map +0 -1
  195. package/dist/blobs/types.d.ts +0 -62
  196. package/dist/blobs/types.d.ts.map +0 -1
  197. package/dist/blobs/types.js +0 -5
  198. package/dist/blobs/types.js.map +0 -1
  199. package/dist/conflicts.d.ts +0 -31
  200. package/dist/conflicts.d.ts.map +0 -1
  201. package/dist/conflicts.js +0 -112
  202. package/dist/conflicts.js.map +0 -1
  203. package/dist/create-client.d.ts +0 -118
  204. package/dist/create-client.d.ts.map +0 -1
  205. package/dist/create-client.js +0 -178
  206. package/dist/create-client.js.map +0 -1
  207. package/dist/engine/SyncEngine.d.ts +0 -272
  208. package/dist/engine/SyncEngine.d.ts.map +0 -1
  209. package/dist/engine/SyncEngine.js +0 -1860
  210. package/dist/engine/SyncEngine.js.map +0 -1
  211. package/dist/engine/index.d.ts +0 -6
  212. package/dist/engine/index.d.ts.map +0 -1
  213. package/dist/engine/index.js +0 -6
  214. package/dist/engine/index.js.map +0 -1
  215. package/dist/engine/types.d.ts +0 -345
  216. package/dist/engine/types.d.ts.map +0 -1
  217. package/dist/engine/types.js +0 -7
  218. package/dist/engine/types.js.map +0 -1
  219. package/dist/handlers/collection.d.ts +0 -6
  220. package/dist/handlers/collection.d.ts.map +0 -1
  221. package/dist/handlers/collection.js +0 -21
  222. package/dist/handlers/collection.js.map +0 -1
  223. package/dist/handlers/create-handler.d.ts +0 -120
  224. package/dist/handlers/create-handler.d.ts.map +0 -1
  225. package/dist/handlers/create-handler.js +0 -145
  226. package/dist/handlers/create-handler.js.map +0 -1
  227. package/dist/handlers/types.d.ts +0 -83
  228. package/dist/handlers/types.d.ts.map +0 -1
  229. package/dist/handlers/types.js +0 -5
  230. package/dist/handlers/types.js.map +0 -1
  231. package/dist/migrate.d.ts +0 -19
  232. package/dist/migrate.d.ts.map +0 -1
  233. package/dist/migrate.js +0 -238
  234. package/dist/migrate.js.map +0 -1
  235. package/dist/outbox.d.ts +0 -112
  236. package/dist/outbox.d.ts.map +0 -1
  237. package/dist/outbox.js +0 -294
  238. package/dist/outbox.js.map +0 -1
  239. package/dist/plugins/incrementing-version.d.ts +0 -34
  240. package/dist/plugins/incrementing-version.d.ts.map +0 -1
  241. package/dist/plugins/incrementing-version.js +0 -83
  242. package/dist/plugins/incrementing-version.js.map +0 -1
  243. package/dist/plugins/index.d.ts +0 -3
  244. package/dist/plugins/index.d.ts.map +0 -1
  245. package/dist/plugins/index.js +0 -3
  246. package/dist/plugins/index.js.map +0 -1
  247. package/dist/plugins/types.d.ts +0 -49
  248. package/dist/plugins/types.d.ts.map +0 -1
  249. package/dist/plugins/types.js +0 -15
  250. package/dist/plugins/types.js.map +0 -1
  251. package/dist/proxy/connection.d.ts +0 -33
  252. package/dist/proxy/connection.d.ts.map +0 -1
  253. package/dist/proxy/connection.js +0 -153
  254. package/dist/proxy/connection.js.map +0 -1
  255. package/dist/proxy/dialect.d.ts +0 -46
  256. package/dist/proxy/dialect.d.ts.map +0 -1
  257. package/dist/proxy/dialect.js +0 -58
  258. package/dist/proxy/dialect.js.map +0 -1
  259. package/dist/proxy/driver.d.ts +0 -42
  260. package/dist/proxy/driver.d.ts.map +0 -1
  261. package/dist/proxy/driver.js +0 -78
  262. package/dist/proxy/driver.js.map +0 -1
  263. package/dist/proxy/index.d.ts +0 -10
  264. package/dist/proxy/index.d.ts.map +0 -1
  265. package/dist/proxy/index.js +0 -10
  266. package/dist/proxy/index.js.map +0 -1
  267. package/dist/proxy/mutations.d.ts +0 -9
  268. package/dist/proxy/mutations.d.ts.map +0 -1
  269. package/dist/proxy/mutations.js +0 -11
  270. package/dist/proxy/mutations.js.map +0 -1
  271. package/dist/pull-engine.d.ts +0 -48
  272. package/dist/pull-engine.d.ts.map +0 -1
  273. package/dist/pull-engine.js +0 -648
  274. package/dist/pull-engine.js.map +0 -1
  275. package/dist/push-engine.d.ts +0 -18
  276. package/dist/push-engine.d.ts.map +0 -1
  277. package/dist/push-engine.js +0 -167
  278. package/dist/push-engine.js.map +0 -1
  279. package/dist/query/FingerprintCollector.d.ts +0 -18
  280. package/dist/query/FingerprintCollector.d.ts.map +0 -1
  281. package/dist/query/FingerprintCollector.js +0 -28
  282. package/dist/query/FingerprintCollector.js.map +0 -1
  283. package/dist/query/QueryContext.d.ts +0 -33
  284. package/dist/query/QueryContext.d.ts.map +0 -1
  285. package/dist/query/QueryContext.js +0 -16
  286. package/dist/query/QueryContext.js.map +0 -1
  287. package/dist/query/fingerprint.d.ts +0 -61
  288. package/dist/query/fingerprint.d.ts.map +0 -1
  289. package/dist/query/fingerprint.js +0 -91
  290. package/dist/query/fingerprint.js.map +0 -1
  291. package/dist/query/index.d.ts +0 -7
  292. package/dist/query/index.d.ts.map +0 -1
  293. package/dist/query/index.js +0 -7
  294. package/dist/query/index.js.map +0 -1
  295. package/dist/query/tracked-select.d.ts +0 -18
  296. package/dist/query/tracked-select.d.ts.map +0 -1
  297. package/dist/query/tracked-select.js +0 -90
  298. package/dist/query/tracked-select.js.map +0 -1
  299. package/dist/schema.d.ts +0 -83
  300. package/dist/schema.d.ts.map +0 -1
  301. package/dist/schema.js +0 -7
  302. package/dist/schema.js.map +0 -1
  303. package/dist/subscription-state.d.ts +0 -46
  304. package/dist/subscription-state.d.ts.map +0 -1
  305. package/dist/subscription-state.js +0 -185
  306. package/dist/subscription-state.js.map +0 -1
  307. package/dist/sync-loop.d.ts +0 -34
  308. package/dist/sync-loop.d.ts.map +0 -1
  309. package/dist/sync-loop.js +0 -253
  310. package/dist/sync-loop.js.map +0 -1
  311. package/dist/sync.d.ts +0 -32
  312. package/dist/sync.d.ts.map +0 -1
  313. package/dist/sync.js +0 -55
  314. package/dist/sync.js.map +0 -1
  315. package/dist/utils/id.d.ts +0 -17
  316. package/dist/utils/id.d.ts.map +0 -1
  317. package/dist/utils/id.js +0 -46
  318. package/dist/utils/id.js.map +0 -1
  319. package/src/blobs/index.ts +0 -7
  320. package/src/blobs/manager.ts +0 -1027
  321. package/src/blobs/migrate.ts +0 -67
  322. package/src/blobs/types.ts +0 -84
  323. package/src/client.test.ts +0 -417
  324. package/src/conflicts.ts +0 -171
  325. package/src/create-client.test.ts +0 -83
  326. package/src/create-client.ts +0 -330
  327. package/src/engine/SyncEngine.test.ts +0 -254
  328. package/src/engine/SyncEngine.ts +0 -2375
  329. package/src/engine/index.ts +0 -6
  330. package/src/engine/types.ts +0 -419
  331. package/src/handlers/collection.ts +0 -36
  332. package/src/handlers/create-handler.ts +0 -330
  333. package/src/handlers/types.ts +0 -108
  334. package/src/migrate.ts +0 -318
  335. package/src/outbox.ts +0 -383
  336. package/src/plugins/incrementing-version.ts +0 -133
  337. package/src/plugins/index.ts +0 -2
  338. package/src/plugins/types.ts +0 -63
  339. package/src/proxy/connection.ts +0 -191
  340. package/src/proxy/dialect.ts +0 -76
  341. package/src/proxy/driver.ts +0 -126
  342. package/src/proxy/index.ts +0 -10
  343. package/src/proxy/mutations.ts +0 -18
  344. package/src/pull-engine.test.ts +0 -151
  345. package/src/pull-engine.ts +0 -855
  346. package/src/push-engine.ts +0 -216
  347. package/src/query/FingerprintCollector.ts +0 -29
  348. package/src/query/QueryContext.ts +0 -54
  349. package/src/query/fingerprint.ts +0 -109
  350. package/src/query/index.ts +0 -10
  351. package/src/query/tracked-select.ts +0 -139
  352. package/src/schema.ts +0 -94
  353. package/src/subscription-state.ts +0 -259
  354. package/src/sync-loop.ts +0 -379
  355. package/src/sync.ts +0 -170
  356. package/src/utils/id.ts +0 -55
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-config.d.ts","sourceRoot":"","sources":["../src/client-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,oBAAoB,EAErB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,wBAAwB,gBAA0C,CAAC;AAChF,eAAO,MAAM,gCAAgC,8BAA8B,CAAC;AAE5E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oBAAoB,GAC3B,4BAA4B,CAW9B;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,4BAA4B,EAAE,MAAM,CAAC,GACjD,OAAO,CAET"}
@@ -0,0 +1,18 @@
1
+ export const SYNCULAR_DEFAULT_STORAGE = 'opfsSahPool';
2
+ export const SYNCULAR_LOCAL_DISABLED_BASE_URL = 'syncular-local://disabled';
3
+ export function resolveSyncularClientConfig(config) {
4
+ const mode = config.mode ?? 'remote';
5
+ if (mode === 'remote' && !config.baseUrl) {
6
+ throw new Error('Syncular remote clients require config.baseUrl');
7
+ }
8
+ return {
9
+ ...config,
10
+ mode,
11
+ baseUrl: config.baseUrl ?? SYNCULAR_LOCAL_DISABLED_BASE_URL,
12
+ storage: config.storage ?? SYNCULAR_DEFAULT_STORAGE,
13
+ };
14
+ }
15
+ export function isSyncularRemoteMode(config) {
16
+ return config.mode === 'remote';
17
+ }
18
+ //# sourceMappingURL=client-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-config.js","sourceRoot":"","sources":["../src/client-config.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,wBAAwB,GAAG,aAAuC,CAAC;AAChF,MAAM,CAAC,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAE5E,MAAM,UAAU,2BAA2B,CACzC,MAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC;IACrC,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,gCAAgC;QAC3D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,wBAAwB;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAkD;IAElD,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,410 +1,78 @@
1
- /**
2
- * @syncular/client - Unified Client class
3
- *
4
- * Single entry point for offline-first sync with:
5
- * - Built-in mutations API
6
- * - Optional blob support
7
- * - Automatic migrations
8
- * - Event-driven state management
9
- * - Conflict handling with events
10
- */
11
- import type { BlobRef, ColumnCodecDialect, ColumnCodecSource, SyncTransport } from '@syncular/core';
12
- import type { Kysely } from 'kysely';
13
- import type { OutboxStats, PresenceEntry, SubscriptionProgress, SyncAwaitBootstrapOptions, SyncAwaitPhaseOptions, SyncDiagnostics, SyncInspectorOptions, SyncInspectorSnapshot, SyncProgress, SyncRepairOptions, SyncResetOptions, SyncResetResult, SyncResult, TransportHealth } from './engine/types';
14
- import type { ClientHandlerCollection } from './handlers/collection';
15
- import { type MutationsApi } from './mutations';
16
- import type { SyncClientPlugin } from './plugins/types';
17
- import type { SyncClientDb } from './schema';
18
- import type { SubscriptionState } from './subscription-state';
19
- /**
20
- * Pluggable client-side blob storage adapter.
21
- * Implementations handle platform-specific binary storage (OPFS, Expo FileSystem, etc.)
22
- * Metadata is stored separately in the main SQLite db.
23
- */
24
- export interface ClientBlobStorage {
25
- /** Write blob data from bytes or stream */
26
- write(hash: string, data: Uint8Array | ReadableStream<Uint8Array>): Promise<void>;
27
- /** Read blob data, null if not found */
28
- read(hash: string): Promise<Uint8Array | null>;
29
- /** Read blob data as stream, null if not found */
30
- readStream?(hash: string): Promise<ReadableStream<Uint8Array> | null>;
31
- /** Delete blob data */
32
- delete(hash: string): Promise<void>;
33
- /** Check if blob exists in storage */
34
- exists(hash: string): Promise<boolean>;
35
- /** Get total storage usage in bytes (for cache management) */
36
- getUsage?(): Promise<number>;
37
- /** Clear all blobs (for cache reset) */
38
- clear?(): Promise<void>;
1
+ import type { BlobRef, SyncAuthLeaseIssueRequest } from '@syncular/core';
2
+ import type { SyncularDatabase } from './database';
3
+ import type { MutationsApi } from './mutations';
4
+ import type { SyncularAuthLeaseRecord, SyncularBlobUploadQueueProcessOptions, SyncularBlobUploadQueueStats, SyncularClientEventSink, SyncularClientEventType, SyncularConflictResolution, SyncularConflictStats, SyncularConflictSummary, SyncularConnectionState, SyncularDiagnosticSnapshot, SyncularLifecycleState, SyncularNetworkStatusSource, SyncularOutboxStats, SyncularPresenceEntry, SyncularPresenceSink, SyncularRealtimeOptions, SyncularRuntimeClient, SyncularSubscriptionSpec, SyncularSyncRequestOptions, SyncularSyncResult } from './types';
5
+ export interface SyncularClientLifecycleOptions {
6
+ initialSync?: boolean;
7
+ realtime?: boolean | SyncularRealtimeOptions;
8
+ syncOnRealtimeConnect?: boolean;
9
+ pollIntervalMs?: number | false;
10
+ network?: SyncularNetworkStatusSource | false;
11
+ subscriptions?: readonly SyncularSubscriptionSpec[];
39
12
  }
40
- export interface ClientOptions<DB extends SyncClientDb> {
41
- /** Kysely database instance */
42
- db: Kysely<DB>;
43
- /** Transport for server communication (includes sync and blob operations) */
44
- transport: SyncTransport;
45
- /** Table handlers for applying snapshots and changes */
46
- tableHandlers: ClientHandlerCollection<DB>;
47
- /** Unique client identifier (e.g., device ID) */
48
- clientId: string;
49
- /** Current actor/user identifier */
50
- actorId: string;
51
- /** Subscriptions to sync */
52
- subscriptions: Array<{
53
- id: string;
54
- table: string;
55
- scopes?: Record<string, string | string[]>;
56
- params?: Record<string, unknown>;
57
- }>;
58
- /** Optional: Local blob storage adapter (enables blob support) */
59
- blobStorage?: ClientBlobStorage;
60
- /** Optional: Sync plugins */
61
- plugins?: SyncClientPlugin[];
62
- /** Optional: Enable realtime transport mode */
63
- realtimeEnabled?: boolean;
64
- /** Optional: Polling interval in milliseconds (default: 10000) */
65
- pollIntervalMs?: number;
66
- /** Optional: State ID for multi-tenant scenarios */
67
- stateId?: string;
68
- /** Optional: ID column name (default: 'id') */
69
- idColumn?: string;
70
- /** Optional: Version column name (default: 'server_version') */
71
- versionColumn?: string;
72
- /** Optional: Columns to omit from sync */
73
- omitColumns?: string[];
74
- /** Optional: Column codec resolver */
75
- codecs?: ColumnCodecSource;
76
- /** Optional: Codec dialect override (default: 'sqlite') */
77
- codecDialect?: ColumnCodecDialect;
78
- }
79
- export interface ClientState {
80
- /** Client ID */
81
- clientId: string;
82
- /** Actor ID */
83
- actorId: string;
84
- /** Whether sync is enabled (actorId and clientId are set) */
85
- enabled: boolean;
86
- /** Whether a sync is currently in progress */
13
+ export interface SyncularClientStatus {
14
+ lifecycle: SyncularLifecycleState;
15
+ connection: SyncularConnectionState;
16
+ outbox: SyncularOutboxStats | null;
17
+ conflicts: SyncularConflictStats | null;
18
+ isConnected: boolean;
87
19
  isSyncing: boolean;
88
- /** Connection state */
89
- connectionState: 'connected' | 'connecting' | 'disconnected' | 'reconnecting';
90
- /** Last successful sync timestamp */
91
- lastSyncAt: number | null;
92
- /** Current error if any */
93
- error: {
94
- code: string;
95
- message: string;
96
- } | null;
97
- /** Outbox statistics */
98
- outbox: OutboxStats;
99
- }
100
- export interface Conflict {
101
- id: string;
102
- table: string;
103
- rowId: string;
104
- opIndex: number;
105
- localPayload: Record<string, unknown> | null;
106
- serverPayload: Record<string, unknown> | null;
107
- serverVersion: number | null;
108
- message: string;
109
- code: string | null;
110
- createdAt: number;
111
- }
112
- export interface ConflictResolution {
113
- strategy: 'keep-local' | 'keep-server' | 'custom';
114
- payload?: Record<string, unknown>;
20
+ hasPendingMutations: boolean;
21
+ hasConflicts: boolean;
22
+ requiresAction: boolean;
115
23
  }
116
- interface BlobStoreOptions {
117
- /** MIME type of the blob */
118
- mimeType?: string;
119
- /** Upload immediately vs queue for later */
120
- immediate?: boolean;
121
- }
122
- export interface BlobClient {
123
- /** Store a blob locally and queue for upload */
124
- store(data: Blob | File | Uint8Array, options?: BlobStoreOptions): Promise<BlobRef>;
125
- /** Retrieve a blob (from local storage or fetch from server) */
126
- retrieve(ref: BlobRef): Promise<Uint8Array>;
127
- /** Check if blob is available locally */
128
- isLocal(hash: string): Promise<boolean>;
129
- /** Preload blobs for offline use */
130
- preload(refs: BlobRef[]): Promise<void>;
131
- /** Process pending uploads */
132
- processUploadQueue(): Promise<{
24
+ export interface SyncularBlobClientLike {
25
+ getUploadQueueStats(): Promise<SyncularBlobUploadQueueStats>;
26
+ processUploadQueue(options?: SyncularBlobUploadQueueProcessOptions): Promise<{
133
27
  uploaded: number;
134
28
  failed: number;
135
29
  }>;
136
- /** Get upload queue statistics */
137
- getUploadQueueStats(): Promise<{
138
- pending: number;
139
- uploading: number;
140
- failed: number;
141
- }>;
142
- /** Get cache statistics */
143
- getCacheStats(): Promise<{
144
- count: number;
145
- totalBytes: number;
146
- }>;
147
- /** Prune cache to free space */
148
- pruneCache(maxBytes?: number): Promise<number>;
149
- /** Clear all cached blobs */
150
- clearCache(): Promise<void>;
30
+ retrieve(ref: BlobRef): Promise<Uint8Array>;
151
31
  }
152
- export interface MigrationInfo {
153
- /** Whether sync schema is migrated */
154
- syncMigrated: boolean;
155
- /** Whether blob schema is migrated */
156
- blobsMigrated: boolean;
32
+ export interface SyncularPresenceClientLike {
33
+ get<TMetadata = Record<string, unknown>>(scopeKey: string): SyncularPresenceEntry<TMetadata>[];
34
+ join(scopeKey: string, metadata?: Record<string, unknown>): void;
35
+ leave(scopeKey: string): void;
36
+ updateMetadata(scopeKey: string, metadata: Record<string, unknown>): void;
37
+ onChange<TMetadata = Record<string, unknown>>(listener: SyncularPresenceSink<TMetadata>): () => void;
157
38
  }
158
- type ClientEventType = 'sync:start' | 'sync:complete' | 'sync:live' | 'sync:error' | 'bootstrap:start' | 'bootstrap:progress' | 'bootstrap:complete' | 'connection:change' | 'data:change' | 'outbox:change' | 'conflict:new' | 'conflict:resolved' | 'blob:upload:complete' | 'blob:upload:error' | 'presence:change';
159
- type ClientEventPayloads = {
160
- 'sync:start': {
161
- timestamp: number;
162
- };
163
- 'sync:complete': SyncResult;
164
- 'sync:live': {
165
- timestamp: number;
166
- };
167
- 'sync:error': {
168
- code: string;
169
- message: string;
170
- };
171
- 'bootstrap:start': {
172
- timestamp: number;
173
- stateId: string;
174
- subscriptionId: string;
175
- };
176
- 'bootstrap:progress': {
177
- timestamp: number;
178
- stateId: string;
179
- subscriptionId: string;
180
- progress: SubscriptionProgress;
181
- };
182
- 'bootstrap:complete': {
183
- timestamp: number;
184
- stateId: string;
185
- subscriptionId: string;
186
- durationMs: number;
187
- };
188
- 'connection:change': {
189
- previous: string;
190
- current: string;
191
- };
192
- 'data:change': {
193
- scopes: string[];
194
- timestamp: number;
195
- };
196
- 'outbox:change': OutboxStats;
197
- 'conflict:new': Conflict;
198
- 'conflict:resolved': Conflict;
199
- 'blob:upload:complete': BlobRef;
200
- 'blob:upload:error': {
201
- hash: string;
202
- error: string;
203
- };
204
- 'presence:change': {
205
- scopeKey: string;
206
- presence: PresenceEntry[];
207
- };
208
- };
209
- type ClientEventHandler<E extends ClientEventType> = (payload: ClientEventPayloads[E]) => void;
210
- /**
211
- * Unified sync client.
212
- *
213
- * @example
214
- * ```typescript
215
- * import { Client } from '@syncular/client';
216
- * import { createHttpTransport } from '@syncular/transport-http';
217
- *
218
- * const client = new Client({
219
- * db,
220
- * transport: createHttpTransport({ baseUrl: '/api/sync', getHeaders }),
221
- * tableHandlers,
222
- * clientId: 'device-123',
223
- * actorId: 'user-456',
224
- * subscriptions: [{ id: 'tasks', table: 'tasks', scopes: { user_id: 'user-456' } }],
225
- * });
226
- *
227
- * await client.start();
228
- *
229
- * // Mutations
230
- * await client.mutations.tasks.insert({ title: 'New task' });
231
- *
232
- * // Events
233
- * client.on('sync:complete', () => console.log('synced'));
234
- * ```
235
- */
236
- export declare class Client<DB extends SyncClientDb = SyncClientDb> {
39
+ export interface SyncularConflictsClientLike {
40
+ list(): Promise<SyncularConflictSummary[]>;
41
+ retryKeepLocal(id: string): Promise<string>;
42
+ resolve(id: string, resolution: SyncularConflictResolution): Promise<void>;
43
+ }
44
+ export interface SyncularClientLike<DB> {
45
+ db: SyncularDatabase<DB>['db'];
46
+ dialect?: SyncularDatabase<DB>['dialect'] | unknown;
47
+ mutations: MutationsApi<DB, any>;
48
+ leasedMutations: MutationsApi<DB, any>;
49
+ blobs: SyncularBlobClientLike;
50
+ on<T extends SyncularClientEventType>(event: T, listener: SyncularClientEventSink<T>): () => void;
51
+ getStatus(): SyncularClientStatus;
52
+ setSubscriptions(subscriptions: readonly SyncularSubscriptionSpec[]): Promise<void>;
53
+ resumeFromBackground(options?: SyncularSyncRequestOptions): Promise<SyncularSyncResult>;
54
+ issueAuthLease(request: SyncAuthLeaseIssueRequest): Promise<SyncularAuthLeaseRecord>;
55
+ upsertAuthLease(lease: SyncularAuthLeaseRecord): Promise<void>;
56
+ authLease(leaseId: string): Promise<SyncularAuthLeaseRecord | null>;
57
+ activeAuthLeases(actorId?: string | null, nowMs?: number): Promise<SyncularAuthLeaseRecord[]>;
58
+ diagnosticSnapshot(): Promise<SyncularDiagnosticSnapshot>;
59
+ presence: SyncularPresenceClientLike;
60
+ conflicts: SyncularConflictsClientLike;
61
+ start(): Promise<void>;
62
+ stop(): Promise<void>;
63
+ sync(): Promise<SyncularSyncResult>;
64
+ close(): Promise<void>;
65
+ }
66
+ type LifecycleClient = Pick<SyncularRuntimeClient, 'addDiagnosticListener' | 'connectionState' | 'forceSubscriptionsBootstrap' | 'setSubscriptions' | 'startRealtime' | 'stopRealtime' | 'syncOnce'>;
67
+ export declare function getSyncularClientStatus(client: Pick<SyncularRuntimeClient, 'connectionState' | 'lifecycleState'>): SyncularClientStatus;
68
+ export declare class SyncularClientLifecycle {
69
+ #private;
70
+ private readonly client;
237
71
  private readonly options;
238
- private engine;
239
- private started;
240
- private destroyed;
241
- private emittedConflictIds;
242
- private eventListeners;
243
- private outboxStats;
244
- /** Mutations API (always available) */
245
- readonly mutations: MutationsApi<DB>;
246
- /** Blob client (only available if blobStorage configured) */
247
- readonly blobs: BlobClient | undefined;
248
- constructor(options: ClientOptions<DB>);
249
- /** Client ID */
250
- get clientId(): string;
251
- /** Actor ID */
252
- get actorId(): string;
253
- /** Database instance */
254
- get db(): Kysely<DB>;
255
- /**
256
- * Start the client.
257
- * Runs migrations and starts sync engine.
258
- */
72
+ constructor(client: LifecycleClient, options?: SyncularClientLifecycleOptions);
259
73
  start(): Promise<void>;
260
- /**
261
- * Stop the client (can be restarted).
262
- */
263
- stop(): void;
264
- /**
265
- * Destroy the client (cannot be restarted).
266
- */
267
- destroy(): void;
268
- /**
269
- * Trigger a manual sync.
270
- */
271
- sync(): Promise<SyncResult>;
272
- /**
273
- * Update subscriptions.
274
- */
275
- updateSubscriptions(subscriptions: Array<{
276
- id: string;
277
- table: string;
278
- scopes?: Record<string, string | string[]>;
279
- params?: Record<string, unknown>;
280
- }>): void;
281
- /**
282
- * Get current subscriptions.
283
- */
284
- getSubscriptions(): Array<{
285
- id: string;
286
- table: string;
287
- scopes: Record<string, string | string[]>;
288
- params: Record<string, unknown>;
289
- }>;
290
- /**
291
- * List persisted subscription metadata rows.
292
- */
293
- listSubscriptionStates(args?: {
294
- stateId?: string;
295
- table?: string;
296
- status?: 'active' | 'revoked';
297
- }): Promise<SubscriptionState[]>;
298
- /**
299
- * Read one persisted subscription metadata row.
300
- */
301
- getSubscriptionState(subscriptionId: string, options?: {
302
- stateId?: string;
303
- }): Promise<SubscriptionState | null>;
304
- /**
305
- * Get current client state.
306
- */
307
- getState(): ClientState;
308
- /**
309
- * Get current transport health details.
310
- */
311
- getTransportHealth(): TransportHealth | null;
312
- /**
313
- * Get computed sync progress across subscriptions.
314
- */
315
- getProgress(): Promise<SyncProgress | null>;
316
- /**
317
- * Get a diagnostics snapshot for support/debug flows.
318
- */
319
- getDiagnostics(): Promise<SyncDiagnostics | null>;
320
- /**
321
- * Get a serializable inspector snapshot for in-app debug tooling.
322
- */
323
- getInspectorSnapshot(options?: SyncInspectorOptions): Promise<SyncInspectorSnapshot | null>;
324
- /**
325
- * Reset local sync metadata (and optionally synced app rows/outbox/conflicts).
326
- */
327
- reset(options: SyncResetOptions): Promise<SyncResetResult>;
328
- /**
329
- * Run a built-in repair flow for common corruption scenarios.
330
- */
331
- repair(options: SyncRepairOptions): Promise<SyncResetResult>;
332
- /**
333
- * Wait until the channel reaches a target phase.
334
- */
335
- awaitPhase(phase: SyncProgress['channelPhase'], options?: SyncAwaitPhaseOptions): Promise<SyncProgress | null>;
336
- /**
337
- * Wait until bootstrap completes for the default state or a specific subscription.
338
- */
339
- awaitBootstrapComplete(options?: SyncAwaitBootstrapOptions): Promise<SyncProgress | null>;
340
- /**
341
- * Subscribe to state changes (for useSyncExternalStore).
342
- */
343
- subscribe(callback: () => void): () => void;
344
- /**
345
- * Subscribe to client events.
346
- */
347
- on<E extends ClientEventType>(event: E, handler: ClientEventHandler<E>): () => void;
348
- private emit;
349
- /**
350
- * Get pending conflicts.
351
- */
352
- getConflicts(): Promise<Conflict[]>;
353
- /**
354
- * Resolve a conflict.
355
- */
356
- resolveConflict(id: string, resolution: ConflictResolution): Promise<void>;
357
- /**
358
- * Get outbox statistics.
359
- */
360
- getOutboxStats(): Promise<OutboxStats>;
361
- /**
362
- * Clear failed commits from outbox.
363
- */
364
- clearFailedCommits(): Promise<number>;
365
- /**
366
- * Retry failed commits.
367
- */
368
- retryFailedCommits(): Promise<number>;
369
- /**
370
- * Get presence for a scope.
371
- */
372
- getPresence<TMetadata = Record<string, unknown>>(scopeKey: string): PresenceEntry<TMetadata>[];
373
- /**
374
- * Join presence for a scope key.
375
- */
376
- joinPresence(scopeKey: string, metadata?: Record<string, unknown>): void;
377
- /**
378
- * Leave presence for a scope key.
379
- */
380
- leavePresence(scopeKey: string): void;
381
- /**
382
- * Update presence metadata for a scope key.
383
- */
384
- updatePresenceMetadata(scopeKey: string, metadata: Record<string, unknown>): void;
385
- /**
386
- * Get migration info.
387
- */
388
- getMigrationInfo(): Promise<MigrationInfo>;
389
- /**
390
- * Static: Check if migrations are needed.
391
- */
392
- static checkMigrations<DB extends SyncClientDb>(db: Kysely<DB>): Promise<{
393
- needsMigration: boolean;
394
- syncMigrated: boolean;
395
- blobsMigrated: boolean;
396
- }>;
397
- /**
398
- * Static: Run migrations.
399
- */
400
- static migrate<DB extends SyncClientDb>(db: Kysely<DB>, options?: {
401
- blobs?: boolean;
402
- }): Promise<void>;
403
- private createInitialEngineState;
404
- private wireEngineEvents;
405
- private checkForNewConflicts;
406
- private mapConflictInfo;
407
- private createBlobClient;
74
+ stop(): Promise<void>;
75
+ sync(): Promise<SyncularSyncResult>;
408
76
  }
409
77
  export {};
410
78
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EACb,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,eAAe,EAEf,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAM9D;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,KAAK,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,wCAAwC;IACxC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE/C,kDAAkD;IAClD,UAAU,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAEtE,uBAAuB;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpC,sCAAsC;IACtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,wCAAwC;IACxC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,aAAa,CAAC,EAAE,SAAS,YAAY;IACpD,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf,6EAA6E;IAC7E,SAAS,EAAE,aAAa,CAAC;IAEzB,wDAAwD;IACxD,aAAa,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAE3C,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IAEjB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,aAAa,EAAE,KAAK,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC,CAAC;IAEH,kEAAkE;IAClE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC,6BAA6B;IAC7B,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE7B,+CAA+C;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB,sCAAsC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,eAAe,EAAE,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;IAC9E,qCAAqC;IACrC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2BAA2B;IAC3B,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChD,wBAAwB;IACxB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,UAAU,gBAAgB;IACxB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,KAAK,CACH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,EAC9B,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,gEAAgE;IAChE,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5C,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExC,oCAAoC;IACpC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExC,8BAA8B;IAC9B,kBAAkB,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEpE,kCAAkC;IAClC,mBAAmB,IAAI,OAAO,CAAC;QAC7B,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IAEH,2BAA2B;IAC3B,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhE,gCAAgC;IAChC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,6BAA6B;IAC7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,KAAK,eAAe,GAChB,YAAY,GACZ,eAAe,GACf,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,cAAc,GACd,mBAAmB,GACnB,sBAAsB,GACtB,mBAAmB,GACnB,iBAAiB,CAAC;AAEtB,KAAK,mBAAmB,GAAG;IACzB,YAAY,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,eAAe,EAAE,UAAU,CAAC;IAC5B,WAAW,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,iBAAiB,EAAE;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,oBAAoB,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,oBAAoB,CAAC;KAChC,CAAC;IACF,oBAAoB,EAAE;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,mBAAmB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,aAAa,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,eAAe,EAAE,WAAW,CAAC;IAC7B,cAAc,EAAE,QAAQ,CAAC;IACzB,mBAAmB,EAAE,QAAQ,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,mBAAmB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,iBAAiB,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;KAAE,CAAC;CACpE,CAAC;AAEF,KAAK,kBAAkB,CAAC,CAAC,SAAS,eAAe,IAAI,CACnD,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC5B,IAAI,CAAC;AAMV;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,MAAM,CAAC,EAAE,SAAS,YAAY,GAAG,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,cAAc,CAGlB;IACJ,OAAO,CAAC,WAAW,CAMjB;IAEF,uCAAuC;IACvC,SAAgB,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAE5C,6DAA6D;IAC7D,SAAgB,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IAE9C,YAAY,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,EAqBrC;IAMD,gBAAgB;IAChB,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,eAAe;IACf,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,wBAAwB;IACxB,IAAI,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,CAEnB;IAMD;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAuC3B;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAId;IAMD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,CAKhC;IAMD;;OAEG;IACH,mBAAmB,CACjB,aAAa,EAAE,KAAK,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC,GACD,IAAI,CAYN;IAED;;OAEG;IACH,gBAAgB,IAAI,KAAK,CAAC;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC,CAOD;IAED;;OAEG;IACG,sBAAsB,CAAC,IAAI,CAAC,EAAE;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;KAC/B,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAG/B;IAED;;OAEG;IACG,oBAAoB,CACxB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAGnC;IAMD;;OAEG;IACH,QAAQ,IAAI,WAAW,CAetB;IAED;;OAEG;IACH,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAG3C;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAGhD;IAED;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGtD;IAED;;OAEG;IACG,oBAAoB,CACxB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAGvC;IAED;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAU/D;IAED;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,CAUjE;IAED;;OAEG;IACG,UAAU,CACd,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,EACnC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAG9B;IAED;;OAEG;IACG,sBAAsB,CAC1B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAG9B;IAED;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAM1C;IAMD;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,eAAe,EAC1B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC7B,MAAM,IAAI,CASZ;IAED,OAAO,CAAC,IAAI;IAoBZ;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAMxC;IAED;;OAEG;IACG,eAAe,CACnB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,kBAAkB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyBf;IAMD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAM3C;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAK1C;IAED;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAiB1C;IAMD;;OAEG;IACH,WAAW,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,QAAQ,EAAE,MAAM,GACf,aAAa,CAAC,SAAS,CAAC,EAAE,CAK5B;IAED;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAEvE;IAED;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEpC;IAED;;OAEG;IACH,sBAAsB,CACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,IAAI,CAEN;IAMD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CA4B/C;IAED;;OAEG;IACH,OAAa,eAAe,CAAC,EAAE,SAAS,YAAY,EAClD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GACb,OAAO,CAAC;QACT,cAAc,EAAE,OAAO,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;QACtB,aAAa,EAAE,OAAO,CAAC;KACxB,CAAC,CAuBD;IAED;;OAEG;IACH,OAAa,OAAO,CAAC,EAAE,SAAS,YAAY,EAC1C,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC5B,OAAO,CAAC,IAAI,CAAC,CAKf;IAMD,OAAO,CAAC,wBAAwB;IAchC,OAAO,CAAC,gBAAgB;YAmEV,oBAAoB;IAmBlC,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,gBAAgB;CA4ZzB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}