@abloatai/ablo 0.25.0 → 0.27.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 (425) hide show
  1. package/AGENTS.md +5 -3
  2. package/CHANGELOG.md +34 -0
  3. package/README.md +104 -88
  4. package/dist/BaseSyncedStore.d.ts +140 -266
  5. package/dist/BaseSyncedStore.js +338 -739
  6. package/dist/Database.d.ts +62 -77
  7. package/dist/Database.js +106 -127
  8. package/dist/{ObjectPool.d.ts → InstanceCache.d.ts} +10 -13
  9. package/dist/{ObjectPool.js → InstanceCache.js} +91 -83
  10. package/dist/LazyReferenceCollection.d.ts +11 -15
  11. package/dist/LazyReferenceCollection.js +16 -15
  12. package/dist/Model.d.ts +37 -52
  13. package/dist/Model.js +52 -69
  14. package/dist/ModelRegistry.d.ts +46 -25
  15. package/dist/ModelRegistry.js +32 -30
  16. package/dist/NetworkMonitor.d.ts +5 -6
  17. package/dist/NetworkMonitor.js +6 -7
  18. package/dist/SyncClient.d.ts +119 -109
  19. package/dist/SyncClient.js +303 -224
  20. package/dist/SyncEngineContext.d.ts +1 -3
  21. package/dist/SyncEngineContext.js +1 -2
  22. package/dist/adapters/alwaysOnline.d.ts +6 -8
  23. package/dist/adapters/alwaysOnline.js +6 -8
  24. package/dist/adapters/inMemoryStorage.d.ts +9 -9
  25. package/dist/adapters/inMemoryStorage.js +9 -9
  26. package/dist/agent/Agent.d.ts +39 -31
  27. package/dist/agent/Agent.js +35 -23
  28. package/dist/agent/index.d.ts +4 -4
  29. package/dist/agent/index.js +5 -5
  30. package/dist/agent/session.d.ts +47 -44
  31. package/dist/agent/session.js +37 -48
  32. package/dist/agent/types.d.ts +26 -31
  33. package/dist/agent/types.js +6 -7
  34. package/dist/ai-sdk/coordinatedTool.d.ts +108 -0
  35. package/dist/ai-sdk/{coordinated-tool.js → coordinatedTool.js} +44 -38
  36. package/dist/ai-sdk/coordinationContext.d.ts +46 -0
  37. package/dist/ai-sdk/{coordination-context.js → coordinationContext.js} +30 -31
  38. package/dist/ai-sdk/index.d.ts +25 -22
  39. package/dist/ai-sdk/index.js +25 -22
  40. package/dist/ai-sdk/wrap.d.ts +7 -8
  41. package/dist/ai-sdk/wrap.js +2 -2
  42. package/dist/auth/credentialPolicy.d.ts +74 -71
  43. package/dist/auth/credentialPolicy.js +51 -56
  44. package/dist/auth/credentialSource.d.ts +7 -18
  45. package/dist/auth/credentialSource.js +10 -18
  46. package/dist/auth/index.d.ts +59 -58
  47. package/dist/auth/index.js +34 -40
  48. package/dist/auth/schemas.d.ts +5 -4
  49. package/dist/auth/schemas.js +5 -4
  50. package/dist/batching/index.d.ts +19 -21
  51. package/dist/batching/index.js +14 -17
  52. package/dist/cli.cjs +483 -369
  53. package/dist/client/Ablo.d.ts +107 -836
  54. package/dist/client/Ablo.js +174 -833
  55. package/dist/client/ApiClient.d.ts +44 -20
  56. package/dist/client/ApiClient.js +193 -44
  57. package/dist/client/auth.d.ts +51 -60
  58. package/dist/client/auth.js +137 -110
  59. package/dist/client/claimHeartbeatLoop.d.ts +50 -0
  60. package/dist/client/claimHeartbeatLoop.js +88 -0
  61. package/dist/client/consoleLogger.d.ts +35 -0
  62. package/dist/client/consoleLogger.js +44 -0
  63. package/dist/client/createInternalComponents.d.ts +14 -17
  64. package/dist/client/createInternalComponents.js +26 -31
  65. package/dist/client/createModelProxy.d.ts +130 -120
  66. package/dist/client/createModelProxy.js +158 -124
  67. package/dist/client/credentialEndpoint.d.ts +61 -0
  68. package/dist/client/credentialEndpoint.js +86 -0
  69. package/dist/client/functionalUpdate.d.ts +29 -27
  70. package/dist/client/functionalUpdate.js +21 -21
  71. package/dist/client/hostedEndpoints.d.ts +21 -0
  72. package/dist/client/hostedEndpoints.js +21 -0
  73. package/dist/client/httpClient.d.ts +58 -54
  74. package/dist/client/httpClient.js +29 -31
  75. package/dist/client/identity.d.ts +15 -20
  76. package/dist/client/identity.js +49 -59
  77. package/dist/client/modelRegistration.d.ts +10 -0
  78. package/dist/client/modelRegistration.js +301 -0
  79. package/dist/client/options.d.ts +373 -0
  80. package/dist/client/options.js +6 -0
  81. package/dist/client/registerDataSource.d.ts +9 -9
  82. package/dist/client/registerDataSource.js +15 -16
  83. package/dist/client/resourceTypes.d.ts +333 -0
  84. package/dist/client/resourceTypes.js +7 -0
  85. package/dist/client/schemaConfig.d.ts +44 -0
  86. package/dist/client/schemaConfig.js +176 -0
  87. package/dist/client/sessionMint.d.ts +17 -13
  88. package/dist/client/sessionMint.js +26 -31
  89. package/dist/client/validateAbloOptions.d.ts +12 -14
  90. package/dist/client/validateAbloOptions.js +9 -10
  91. package/dist/client/writeOptionsSchema.d.ts +18 -16
  92. package/dist/client/writeOptionsSchema.js +23 -20
  93. package/dist/client/wsMutationExecutor.d.ts +28 -0
  94. package/dist/client/wsMutationExecutor.js +71 -0
  95. package/dist/context.d.ts +6 -4
  96. package/dist/context.js +6 -7
  97. package/dist/coordination/index.d.ts +13 -4
  98. package/dist/coordination/index.js +29 -4
  99. package/dist/coordination/schema.d.ts +176 -128
  100. package/dist/coordination/schema.js +197 -133
  101. package/dist/coordination/trace.d.ts +9 -11
  102. package/dist/coordination/trace.js +13 -15
  103. package/dist/core/DatabaseManager.d.ts +5 -8
  104. package/dist/core/DatabaseManager.js +38 -40
  105. package/dist/core/QueryProcessor.d.ts +7 -9
  106. package/dist/core/QueryProcessor.js +27 -34
  107. package/dist/core/QueryView.d.ts +17 -5
  108. package/dist/core/QueryView.js +6 -7
  109. package/dist/core/StoreManager.d.ts +14 -16
  110. package/dist/core/StoreManager.js +26 -25
  111. package/dist/core/ViewRegistry.d.ts +5 -5
  112. package/dist/core/ViewRegistry.js +4 -4
  113. package/dist/core/index.d.ts +18 -13
  114. package/dist/core/index.js +32 -26
  115. package/dist/core/openIDBWithTimeout.d.ts +38 -36
  116. package/dist/core/openIDBWithTimeout.js +57 -54
  117. package/dist/core/queryUtils.d.ts +45 -0
  118. package/dist/core/queryUtils.js +69 -0
  119. package/dist/core/storeContract.d.ts +145 -0
  120. package/dist/core/storeContract.js +12 -0
  121. package/dist/environment.d.ts +28 -0
  122. package/dist/environment.js +21 -0
  123. package/dist/errorCodes.d.ts +118 -101
  124. package/dist/errorCodes.js +277 -260
  125. package/dist/errors.d.ts +170 -165
  126. package/dist/errors.js +161 -151
  127. package/dist/index.d.ts +30 -27
  128. package/dist/index.js +90 -82
  129. package/dist/interfaces/index.d.ts +108 -133
  130. package/dist/interfaces/index.js +5 -4
  131. package/dist/keys/index.d.ts +27 -29
  132. package/dist/keys/index.js +59 -49
  133. package/dist/mutators/RecordingTransaction.d.ts +16 -16
  134. package/dist/mutators/RecordingTransaction.js +31 -37
  135. package/dist/mutators/Transaction.d.ts +18 -26
  136. package/dist/mutators/Transaction.js +14 -20
  137. package/dist/mutators/UndoManager.d.ts +122 -131
  138. package/dist/mutators/UndoManager.js +149 -155
  139. package/dist/mutators/defineMutators.d.ts +24 -37
  140. package/dist/mutators/defineMutators.js +14 -20
  141. package/dist/mutators/inverseOp.d.ts +12 -15
  142. package/dist/mutators/inverseOp.js +12 -15
  143. package/dist/mutators/mutateActions.d.ts +10 -9
  144. package/dist/mutators/mutateActions.js +1 -1
  145. package/dist/mutators/readerActions.d.ts +9 -8
  146. package/dist/mutators/readerActions.js +2 -2
  147. package/dist/mutators/undoApply.d.ts +31 -27
  148. package/dist/mutators/undoApply.js +26 -24
  149. package/dist/policy/index.d.ts +5 -3
  150. package/dist/policy/index.js +5 -3
  151. package/dist/policy/types.d.ts +105 -101
  152. package/dist/policy/types.js +67 -66
  153. package/dist/query/client.d.ts +32 -16
  154. package/dist/query/client.js +103 -72
  155. package/dist/query/types.d.ts +37 -60
  156. package/dist/query/types.js +13 -33
  157. package/dist/react/AbloProvider.d.ts +7 -11
  158. package/dist/react/AbloProvider.js +24 -17
  159. package/dist/react/context.d.ts +27 -146
  160. package/dist/react/context.js +9 -10
  161. package/dist/react/index.d.ts +41 -42
  162. package/dist/react/index.js +37 -38
  163. package/dist/react/internalContext.d.ts +17 -19
  164. package/dist/react/useAblo.d.ts +23 -22
  165. package/dist/react/useAblo.js +17 -15
  166. package/dist/react/useCurrentUserId.d.ts +8 -7
  167. package/dist/react/useCurrentUserId.js +8 -7
  168. package/dist/react/useErrorListener.d.ts +7 -7
  169. package/dist/react/useErrorListener.js +11 -12
  170. package/dist/react/useMutationFailureListener.d.ts +8 -8
  171. package/dist/react/useMutationFailureListener.js +9 -9
  172. package/dist/react/useMutators.d.ts +11 -11
  173. package/dist/react/useMutators.js +10 -4
  174. package/dist/react/useReactive.js +2 -3
  175. package/dist/react/useSyncStatus.d.ts +4 -6
  176. package/dist/react/useUndoScope.d.ts +7 -9
  177. package/dist/react/useUndoScope.js +3 -3
  178. package/dist/schema/coordination.d.ts +21 -25
  179. package/dist/schema/coordination.js +21 -25
  180. package/dist/schema/ddl.d.ts +43 -39
  181. package/dist/schema/ddl.js +75 -68
  182. package/dist/schema/ddlLock.d.ts +35 -0
  183. package/dist/schema/ddlLock.js +46 -0
  184. package/dist/schema/diff.d.ts +99 -61
  185. package/dist/schema/diff.js +43 -34
  186. package/dist/schema/field.d.ts +37 -42
  187. package/dist/schema/field.js +36 -49
  188. package/dist/schema/generate.d.ts +12 -12
  189. package/dist/schema/generate.js +12 -12
  190. package/dist/schema/index.d.ts +5 -4
  191. package/dist/schema/index.js +29 -21
  192. package/dist/schema/model.d.ts +121 -146
  193. package/dist/schema/model.js +24 -35
  194. package/dist/schema/openapi.d.ts +10 -9
  195. package/dist/schema/openapi.js +7 -1
  196. package/dist/schema/queries.d.ts +30 -32
  197. package/dist/schema/queries.js +24 -25
  198. package/dist/schema/relation.d.ts +89 -99
  199. package/dist/schema/relation.js +13 -13
  200. package/dist/schema/residency.d.ts +38 -0
  201. package/dist/schema/residency.js +30 -0
  202. package/dist/schema/roles.d.ts +45 -27
  203. package/dist/schema/roles.js +52 -21
  204. package/dist/schema/schema.d.ts +36 -45
  205. package/dist/schema/schema.js +42 -39
  206. package/dist/schema/select.d.ts +13 -13
  207. package/dist/schema/select.js +13 -13
  208. package/dist/schema/serialize.d.ts +36 -39
  209. package/dist/schema/serialize.js +27 -31
  210. package/dist/schema/sugar.d.ts +17 -32
  211. package/dist/schema/sugar.js +14 -29
  212. package/dist/schema/{sync-delta-row.d.ts → syncDeltaRow.d.ts} +27 -50
  213. package/dist/schema/syncDeltaRow.js +89 -0
  214. package/dist/schema/tenancy.d.ts +44 -46
  215. package/dist/schema/tenancy.js +46 -48
  216. package/dist/server/adapter.d.ts +58 -58
  217. package/dist/server/adapter.js +13 -14
  218. package/dist/server/commit.d.ts +60 -64
  219. package/dist/server/index.d.ts +9 -10
  220. package/dist/server/index.js +1 -1
  221. package/dist/server/readConfig.d.ts +70 -0
  222. package/dist/server/readConfig.js +8 -0
  223. package/dist/server/storageMode.d.ts +23 -0
  224. package/dist/server/storageMode.js +17 -0
  225. package/dist/source/adapter.d.ts +31 -26
  226. package/dist/source/adapter.js +10 -10
  227. package/dist/source/adapters/drizzle.d.ts +28 -23
  228. package/dist/source/adapters/drizzle.js +34 -28
  229. package/dist/source/adapters/kysely.d.ts +27 -25
  230. package/dist/source/adapters/kysely.js +28 -26
  231. package/dist/source/adapters/memory.d.ts +8 -7
  232. package/dist/source/adapters/memory.js +10 -9
  233. package/dist/source/adapters/prisma.d.ts +13 -12
  234. package/dist/source/adapters/prisma.js +27 -29
  235. package/dist/source/conformance.d.ts +18 -11
  236. package/dist/source/conformance.js +27 -19
  237. package/dist/source/connector.d.ts +31 -32
  238. package/dist/source/connector.js +30 -28
  239. package/dist/source/connectorProtocol.d.ts +160 -0
  240. package/dist/source/connectorProtocol.js +162 -0
  241. package/dist/source/contract.d.ts +26 -27
  242. package/dist/source/contract.js +28 -29
  243. package/dist/source/factory.d.ts +94 -0
  244. package/dist/source/factory.js +268 -0
  245. package/dist/source/index.d.ts +10 -462
  246. package/dist/source/index.js +17 -421
  247. package/dist/source/migrations.d.ts +9 -9
  248. package/dist/source/migrations.js +9 -9
  249. package/dist/source/next.d.ts +10 -11
  250. package/dist/source/next.js +7 -8
  251. package/dist/source/pushQueue.d.ts +70 -48
  252. package/dist/source/pushQueue.js +36 -29
  253. package/dist/source/signing.d.ts +88 -0
  254. package/dist/source/signing.js +159 -0
  255. package/dist/source/types.d.ts +351 -0
  256. package/dist/source/types.js +43 -0
  257. package/dist/stores/ObjectStore.d.ts +11 -12
  258. package/dist/stores/ObjectStore.js +34 -35
  259. package/dist/stores/ObjectStoreContract.d.ts +12 -15
  260. package/dist/stores/SyncActionStore.d.ts +8 -12
  261. package/dist/stores/SyncActionStore.js +77 -46
  262. package/dist/surface.d.ts +28 -21
  263. package/dist/surface.js +28 -20
  264. package/dist/sync/{BootstrapHelper.d.ts → BootstrapFetcher.d.ts} +37 -45
  265. package/dist/sync/{BootstrapHelper.js → BootstrapFetcher.js} +101 -80
  266. package/dist/sync/ConnectionManager.d.ts +47 -50
  267. package/dist/sync/ConnectionManager.js +74 -70
  268. package/dist/sync/NetworkProbe.d.ts +27 -31
  269. package/dist/sync/NetworkProbe.js +67 -72
  270. package/dist/sync/{HydrationCoordinator.d.ts → OnDemandLoader.d.ts} +49 -36
  271. package/dist/sync/{HydrationCoordinator.js → OnDemandLoader.js} +79 -54
  272. package/dist/sync/{AreaOfInterestManager.d.ts → SubscriptionManager.d.ts} +45 -59
  273. package/dist/sync/{AreaOfInterestManager.js → SubscriptionManager.js} +44 -52
  274. package/dist/sync/SyncWebSocket.d.ts +175 -250
  275. package/dist/sync/SyncWebSocket.js +431 -769
  276. package/dist/sync/awaitClaimGrant.d.ts +18 -18
  277. package/dist/sync/awaitClaimGrant.js +38 -30
  278. package/dist/sync/bootstrapApply.d.ts +70 -0
  279. package/dist/sync/bootstrapApply.js +73 -0
  280. package/dist/sync/commitFrames.d.ts +44 -0
  281. package/dist/sync/commitFrames.js +94 -0
  282. package/dist/sync/createClaimStream.d.ts +23 -22
  283. package/dist/sync/createClaimStream.js +108 -25
  284. package/dist/sync/createPresenceStream.d.ts +19 -18
  285. package/dist/sync/createPresenceStream.js +25 -26
  286. package/dist/sync/createSnapshot.d.ts +13 -17
  287. package/dist/sync/createSnapshot.js +20 -26
  288. package/dist/sync/credentialLifecycle.d.ts +175 -0
  289. package/dist/sync/credentialLifecycle.js +322 -0
  290. package/dist/sync/deltaPipeline.d.ts +113 -0
  291. package/dist/sync/deltaPipeline.js +261 -0
  292. package/dist/sync/groupChange.d.ts +113 -0
  293. package/dist/sync/groupChange.js +242 -0
  294. package/dist/sync/heartbeat.d.ts +63 -0
  295. package/dist/sync/heartbeat.js +91 -0
  296. package/dist/sync/participants.d.ts +27 -27
  297. package/dist/sync/schemas.d.ts +3 -2
  298. package/dist/sync/schemas.js +14 -10
  299. package/dist/sync/syncCursor.d.ts +40 -0
  300. package/dist/sync/syncCursor.js +55 -0
  301. package/dist/sync/syncPlan.d.ts +54 -0
  302. package/dist/sync/syncPlan.js +50 -0
  303. package/dist/sync/syncPosition.d.ts +54 -49
  304. package/dist/sync/syncPosition.js +57 -52
  305. package/dist/sync/wsFrameHandlers.d.ts +116 -0
  306. package/dist/sync/wsFrameHandlers.js +374 -0
  307. package/dist/testing/fixtures/bootstrap.d.ts +21 -17
  308. package/dist/testing/fixtures/bootstrap.js +12 -6
  309. package/dist/testing/fixtures/deltas.d.ts +31 -34
  310. package/dist/testing/fixtures/deltas.js +30 -33
  311. package/dist/testing/fixtures/models.d.ts +11 -10
  312. package/dist/testing/fixtures/models.js +12 -10
  313. package/dist/testing/helpers/{react-wrapper.d.ts → reactWrapper.d.ts} +13 -10
  314. package/dist/testing/helpers/{react-wrapper.js → reactWrapper.js} +15 -12
  315. package/dist/testing/helpers/{sync-engine-harness.d.ts → syncEngineHarness.d.ts} +17 -18
  316. package/dist/testing/helpers/{sync-engine-harness.js → syncEngineHarness.js} +14 -11
  317. package/dist/testing/helpers/wait.d.ts +13 -8
  318. package/dist/testing/helpers/wait.js +13 -8
  319. package/dist/testing/index.d.ts +4 -4
  320. package/dist/testing/index.js +3 -3
  321. package/dist/testing/mocks/MockMutationExecutor.d.ts +18 -17
  322. package/dist/testing/mocks/MockMutationExecutor.js +15 -14
  323. package/dist/testing/mocks/MockNetworkMonitor.d.ts +8 -8
  324. package/dist/testing/mocks/MockNetworkMonitor.js +8 -8
  325. package/dist/testing/mocks/MockSyncContext.d.ts +21 -34
  326. package/dist/testing/mocks/MockSyncContext.js +16 -45
  327. package/dist/testing/mocks/MockSyncStore.d.ts +14 -14
  328. package/dist/testing/mocks/MockSyncStore.js +11 -11
  329. package/dist/testing/mocks/MockWebSocket.d.ts +28 -24
  330. package/dist/testing/mocks/MockWebSocket.js +22 -21
  331. package/dist/transactions/TransactionQueue.d.ts +190 -221
  332. package/dist/transactions/TransactionQueue.js +424 -822
  333. package/dist/transactions/TransactionStore.d.ts +20 -0
  334. package/dist/transactions/TransactionStore.js +53 -0
  335. package/dist/transactions/UnconfirmedWrites.d.ts +82 -0
  336. package/dist/transactions/UnconfirmedWrites.js +104 -0
  337. package/dist/transactions/coalesceRules.d.ts +58 -0
  338. package/dist/transactions/coalesceRules.js +140 -0
  339. package/dist/transactions/commitPayload.d.ts +130 -0
  340. package/dist/transactions/commitPayload.js +143 -0
  341. package/dist/transactions/deltaConfirmation.d.ts +58 -0
  342. package/dist/transactions/deltaConfirmation.js +215 -0
  343. package/dist/transactions/optimisticApply.d.ts +49 -0
  344. package/dist/transactions/optimisticApply.js +65 -0
  345. package/dist/transactions/replayValidation.d.ts +99 -0
  346. package/dist/transactions/replayValidation.js +111 -0
  347. package/dist/types/global.d.ts +46 -41
  348. package/dist/types/global.js +20 -19
  349. package/dist/types/index.d.ts +74 -80
  350. package/dist/types/index.js +22 -27
  351. package/dist/types/modelData.d.ts +10 -0
  352. package/dist/types/modelData.js +9 -0
  353. package/dist/types/participant.d.ts +20 -0
  354. package/dist/types/participant.js +10 -0
  355. package/dist/types/streams.d.ts +216 -209
  356. package/dist/types/streams.js +7 -7
  357. package/dist/utils/asyncIterator.d.ts +25 -32
  358. package/dist/utils/asyncIterator.js +25 -32
  359. package/dist/utils/duration.d.ts +12 -15
  360. package/dist/utils/duration.js +12 -15
  361. package/dist/utils/mobxSetup.d.ts +53 -0
  362. package/dist/utils/{mobx-setup.js → mobxSetup.js} +44 -100
  363. package/dist/webhooks/events.d.ts +21 -16
  364. package/dist/webhooks/events.js +10 -8
  365. package/dist/webhooks/index.d.ts +5 -7
  366. package/dist/webhooks/index.js +5 -7
  367. package/dist/{schema/sync-delta-wire.d.ts → wire/delta.d.ts} +58 -41
  368. package/dist/wire/delta.js +114 -0
  369. package/dist/wire/errorEnvelope.d.ts +35 -27
  370. package/dist/wire/errorEnvelope.js +38 -32
  371. package/dist/wire/frames.d.ts +150 -67
  372. package/dist/wire/frames.js +48 -1
  373. package/dist/wire/index.d.ts +18 -13
  374. package/dist/wire/index.js +36 -13
  375. package/dist/wire/listEnvelope.d.ts +16 -23
  376. package/dist/wire/listEnvelope.js +7 -6
  377. package/dist/wire/protocol.d.ts +38 -0
  378. package/dist/wire/protocol.js +38 -0
  379. package/dist/wire/protocolVersion.d.ts +60 -0
  380. package/dist/wire/protocolVersion.js +67 -0
  381. package/docs/api-keys.md +4 -3
  382. package/docs/coordination.md +59 -0
  383. package/docs/examples/existing-python-backend.md +3 -3
  384. package/docs/identity.md +4 -4
  385. package/docs/integration-guide.md +1 -1
  386. package/docs/react.md +1 -1
  387. package/docs/sessions.md +5 -7
  388. package/package.json +24 -21
  389. package/dist/ai-sdk/coordinated-tool.d.ts +0 -101
  390. package/dist/ai-sdk/coordination-context.d.ts +0 -52
  391. package/dist/client/index.d.ts +0 -36
  392. package/dist/client/index.js +0 -33
  393. package/dist/config/index.d.ts +0 -10
  394. package/dist/config/index.js +0 -12
  395. package/dist/core/query-utils.d.ts +0 -34
  396. package/dist/core/query-utils.js +0 -59
  397. package/dist/interfaces/headless.d.ts +0 -95
  398. package/dist/interfaces/headless.js +0 -41
  399. package/dist/query/index.d.ts +0 -6
  400. package/dist/query/index.js +0 -5
  401. package/dist/realtime/index.d.ts +0 -10
  402. package/dist/realtime/index.js +0 -9
  403. package/dist/schema/plane.d.ts +0 -23
  404. package/dist/schema/plane.js +0 -19
  405. package/dist/schema/sync-delta-row.js +0 -103
  406. package/dist/schema/sync-delta-wire.js +0 -102
  407. package/dist/server/next.d.ts +0 -51
  408. package/dist/server/next.js +0 -47
  409. package/dist/server/read-config.d.ts +0 -67
  410. package/dist/server/read-config.js +0 -8
  411. package/dist/server/storage-mode.d.ts +0 -1
  412. package/dist/server/storage-mode.js +0 -18
  413. package/dist/source/connector-protocol.d.ts +0 -159
  414. package/dist/source/connector-protocol.js +0 -161
  415. package/dist/sync/OfflineFlush.d.ts +0 -9
  416. package/dist/sync/OfflineFlush.js +0 -22
  417. package/dist/sync/OfflineTransactionStore.d.ts +0 -37
  418. package/dist/sync/OfflineTransactionStore.js +0 -263
  419. package/dist/transactions/OptimisticEchoTracker.d.ts +0 -82
  420. package/dist/transactions/OptimisticEchoTracker.js +0 -104
  421. package/dist/transactions/index.d.ts +0 -16
  422. package/dist/transactions/index.js +0 -7
  423. package/dist/transactions/mutation-error-handler.d.ts +0 -5
  424. package/dist/transactions/mutation-error-handler.js +0 -39
  425. package/dist/utils/mobx-setup.d.ts +0 -42
@@ -1,11 +1,10 @@
1
1
  /**
2
- * MockSyncStore a SyncStoreContract implementation for testing.
3
- *
4
- * Provides an in-memory store that tests can configure, inspect, and mutate.
5
- * All reactive operations are synchronous and observable via Jest spies.
2
+ * An in-memory {@link SyncStoreContract} for tests. It lets you seed rows,
3
+ * read and write them synchronously, and inspect every call the code under
4
+ * test made all without a real sync backend.
6
5
  */
7
6
  import type { Model } from '../../Model.js';
8
- import type { ModelScope } from '../../ObjectPool.js';
7
+ import type { ModelScope } from '../../InstanceCache.js';
9
8
  import type { SyncStoreContract } from '../../react/context.js';
10
9
  interface QueryOptions<T extends Model> {
11
10
  predicate?: (model: T) => boolean;
@@ -20,21 +19,22 @@ interface QueryResult<T extends Model> {
20
19
  }
21
20
  type ModelCtor<T extends Model> = abstract new (...args: never[]) => T;
22
21
  /**
23
- * MockSyncStore is an in-memory implementation of SyncStoreContract.
24
- * Tests can seed data with `setModels()`, inspect calls via `calls`,
25
- * and assert behavior without needing a real sync backend.
22
+ * An in-memory implementation of {@link SyncStoreContract}. Seed rows with
23
+ * {@link MockSyncStore.setModels}, then read and write through the contract
24
+ * methods; every call is recorded on {@link MockSyncStore.calls} so tests can
25
+ * assert on what happened.
26
26
  */
27
27
  export declare class MockSyncStore implements SyncStoreContract {
28
28
  private byClass;
29
29
  calls: {
30
- retrieve: Array<{
30
+ retrieve: {
31
31
  modelClass: ModelCtor<Model>;
32
32
  id: string;
33
- }>;
34
- query: Array<{
33
+ }[];
34
+ query: {
35
35
  modelClass: ModelCtor<Model>;
36
36
  options?: QueryOptions<Model>;
37
- }>;
37
+ }[];
38
38
  save: Model[];
39
39
  delete: Model[];
40
40
  archive: Model[];
@@ -48,7 +48,7 @@ export declare class MockSyncStore implements SyncStoreContract {
48
48
  */
49
49
  setModels<T extends Model>(modelClass: ModelCtor<T>, models: T[]): void;
50
50
  /**
51
- * Add a single model (upsert).
51
+ * Adds or replaces a single model, keyed by its id.
52
52
  */
53
53
  addModel<T extends Model>(modelClass: ModelCtor<T>, model: T): void;
54
54
  /**
@@ -77,7 +77,7 @@ export declare class MockSyncStore implements SyncStoreContract {
77
77
  pendingChanges: number;
78
78
  isSessionError: boolean;
79
79
  };
80
- /** Mock pool for useEntity/useEntities hooks. */
80
+ /** A minimal object pool backing the useEntity and useEntities hooks in tests. */
81
81
  pool: SyncStoreContract['pool'];
82
82
  }
83
83
  /**
@@ -1,15 +1,15 @@
1
1
  /**
2
- * MockSyncStore a SyncStoreContract implementation for testing.
3
- *
4
- * Provides an in-memory store that tests can configure, inspect, and mutate.
5
- * All reactive operations are synchronous and observable via Jest spies.
2
+ * An in-memory {@link SyncStoreContract} for tests. It lets you seed rows,
3
+ * read and write them synchronously, and inspect every call the code under
4
+ * test made all without a real sync backend.
6
5
  */
7
6
  import { ViewRegistry } from '../../core/ViewRegistry.js';
8
7
  import { AbloValidationError } from '../../errors.js';
9
8
  /**
10
- * MockSyncStore is an in-memory implementation of SyncStoreContract.
11
- * Tests can seed data with `setModels()`, inspect calls via `calls`,
12
- * and assert behavior without needing a real sync backend.
9
+ * An in-memory implementation of {@link SyncStoreContract}. Seed rows with
10
+ * {@link MockSyncStore.setModels}, then read and write through the contract
11
+ * methods; every call is recorded on {@link MockSyncStore.calls} so tests can
12
+ * assert on what happened.
13
13
  */
14
14
  export class MockSyncStore {
15
15
  // Seeded data, keyed by model class
@@ -37,7 +37,7 @@ export class MockSyncStore {
37
37
  this.byClass.set(modelClass, map);
38
38
  }
39
39
  /**
40
- * Add a single model (upsert).
40
+ * Adds or replaces a single model, keyed by its id.
41
41
  */
42
42
  addModel(modelClass, model) {
43
43
  let map = this.byClass.get(modelClass);
@@ -110,8 +110,8 @@ export class MockSyncStore {
110
110
  }
111
111
  async save(model) {
112
112
  this.calls.save.push(model);
113
- // Auto-seed on save so findById returns it afterwards
114
- // Consumer passes a concrete class-less object; we store by constructor
113
+ // Store the model under its constructor so a later retrieve or query
114
+ // returns it.
115
115
  const ctor = model.constructor;
116
116
  this.addModel(ctor, model);
117
117
  }
@@ -140,7 +140,7 @@ export class MockSyncStore {
140
140
  pendingChanges: 0,
141
141
  isSessionError: false,
142
142
  };
143
- /** Mock pool for useEntity/useEntities hooks. */
143
+ /** A minimal object pool backing the useEntity and useEntities hooks in tests. */
144
144
  pool = {
145
145
  get: (id) => {
146
146
  for (const models of this.byClass.values()) {
@@ -1,12 +1,10 @@
1
1
  /**
2
- * MockWebSocket Controllable WebSocket for sync engine tests.
3
- *
4
- * Simulates the SyncWebSocket event interface without a real connection.
5
- * Provides methods to inject deltas, simulate disconnection/reconnection,
6
- * and trigger bootstrap hints.
2
+ * A controllable WebSocket stand-in for sync engine tests. It reproduces the
3
+ * event interface of the real connection without opening a socket, so tests
4
+ * can drive connection changes, deltas, and bootstrap hints by hand.
7
5
  */
8
6
  import type { SyncActionType } from '../../types/index.js';
9
- /** Delta shape matching the SyncAction interface */
7
+ /** The shape of a single delta — one change the server pushes to the client. */
10
8
  export interface MockDelta {
11
9
  id: number;
12
10
  modelName: string;
@@ -14,7 +12,10 @@ export interface MockDelta {
14
12
  action: SyncActionType;
15
13
  data: Record<string, unknown>;
16
14
  }
17
- /** Bootstrap hint from server */
15
+ /**
16
+ * A hint from the server that the client has fallen too far behind and should
17
+ * rebuild its data from scratch rather than catch up one delta at a time.
18
+ */
18
19
  export interface MockBootstrapHint {
19
20
  reason: 'too_far_behind' | 'too_many_deltas' | 'missing_entities';
20
21
  tables?: string[];
@@ -22,45 +23,48 @@ export interface MockBootstrapHint {
22
23
  }
23
24
  type EventHandler = (...args: unknown[]) => void;
24
25
  /**
25
- * MockWebSocket provides a controllable event-based interface
26
- * for testing sync engine components that consume WebSocket events.
26
+ * A controllable, event-based stand-in for the sync engine's WebSocket
27
+ * connection. Subscribe with {@link MockWebSocket.on} exactly as production
28
+ * code does, then use the `simulate*` and `receive*` methods to push
29
+ * connection changes, deltas, and bootstrap hints. Every event the mock emits
30
+ * is recorded on {@link MockWebSocket.emittedEvents} for assertions.
27
31
  */
28
32
  export declare class MockWebSocket {
29
33
  private _connected;
30
34
  private _sessionError;
31
35
  private _listeners;
32
- /** Track all emitted events for assertions */
33
- readonly emittedEvents: Array<{
36
+ /** Every event the mock has emitted, in order, for assertions. */
37
+ readonly emittedEvents: {
34
38
  type: string;
35
39
  data: unknown;
36
- }>;
40
+ }[];
37
41
  get connected(): boolean;
38
42
  get sessionError(): boolean;
39
43
  on(event: string, handler: EventHandler): () => void;
40
44
  private emit;
41
- /** Simulate successful connection */
45
+ /** Fires a successful connection, emitting the `connected` event. */
42
46
  simulateConnect(): void;
43
- /** Simulate disconnection */
47
+ /** Drops the connection, emitting the `disconnected` event. */
44
48
  simulateDisconnect(): void;
45
- /** Simulate reconnection attempt */
49
+ /** Emits a `reconnecting` event carrying the attempt number and retry delay. */
46
50
  simulateReconnecting(attempt: number, delay: number): void;
47
- /** Simulate session error (401/403) */
51
+ /** Emits a `session_error` event, as when the server rejects the session as unauthorized. The code defaults to 401. */
48
52
  simulateSessionError(code?: number): void;
49
- /** Simulate reconnection failure (max attempts reached) */
53
+ /** Emits a `reconnect_failed` event, signaling the client gave up after exhausting its retries. */
50
54
  simulateReconnectFailed(): void;
51
- /** Inject a single delta (as if received from server) */
55
+ /** Delivers a single delta, emitting a `delta` event as if the server had sent it. */
52
56
  receiveDelta(delta: MockDelta): void;
53
- /** Inject a batch of deltas */
57
+ /** Delivers a batch of deltas, emitting a `delta_batch` event. */
54
58
  receiveDeltas(deltas: MockDelta[]): void;
55
- /** Inject a bootstrap_required hint from server */
59
+ /** Emits a `bootstrap_required` hint, telling the client to rebuild its data instead of catching up. */
56
60
  simulateBootstrapHint(hint: MockBootstrapHint): void;
57
- /** Inject a presence update */
61
+ /** Emits a `presence_update` event carrying the given payload. */
58
62
  simulatePresenceUpdate(data: Record<string, unknown>): void;
59
- /** Get all events of a specific type */
63
+ /** Returns the payloads of every emitted event of the given type, in order. */
60
64
  getEvents(type: string): unknown[];
61
- /** Check if a specific event was emitted */
65
+ /** Reports whether an event of the given type has been emitted. */
62
66
  hasEmitted(type: string): boolean;
63
- /** Reset all state */
67
+ /** Clears connection state, listeners, and the record of emitted events. */
64
68
  reset(): void;
65
69
  }
66
70
  export {};
@@ -1,19 +1,20 @@
1
1
  /**
2
- * MockWebSocket Controllable WebSocket for sync engine tests.
3
- *
4
- * Simulates the SyncWebSocket event interface without a real connection.
5
- * Provides methods to inject deltas, simulate disconnection/reconnection,
6
- * and trigger bootstrap hints.
2
+ * A controllable WebSocket stand-in for sync engine tests. It reproduces the
3
+ * event interface of the real connection without opening a socket, so tests
4
+ * can drive connection changes, deltas, and bootstrap hints by hand.
7
5
  */
8
6
  /**
9
- * MockWebSocket provides a controllable event-based interface
10
- * for testing sync engine components that consume WebSocket events.
7
+ * A controllable, event-based stand-in for the sync engine's WebSocket
8
+ * connection. Subscribe with {@link MockWebSocket.on} exactly as production
9
+ * code does, then use the `simulate*` and `receive*` methods to push
10
+ * connection changes, deltas, and bootstrap hints. Every event the mock emits
11
+ * is recorded on {@link MockWebSocket.emittedEvents} for assertions.
11
12
  */
12
13
  export class MockWebSocket {
13
14
  _connected = false;
14
15
  _sessionError = false;
15
16
  _listeners = new Map();
16
- /** Track all emitted events for assertions */
17
+ /** Every event the mock has emitted, in order, for assertions. */
17
18
  emittedEvents = [];
18
19
  get connected() {
19
20
  return this._connected;
@@ -22,7 +23,7 @@ export class MockWebSocket {
22
23
  return this._sessionError;
23
24
  }
24
25
  // ─────────────────────────────────────────────
25
- // Event subscription (matches SyncWebSocket API)
26
+ // Event subscription (matches the real connection's API)
26
27
  // ─────────────────────────────────────────────
27
28
  on(event, handler) {
28
29
  if (!this._listeners.has(event)) {
@@ -45,28 +46,28 @@ export class MockWebSocket {
45
46
  // ─────────────────────────────────────────────
46
47
  // Test control: connection lifecycle
47
48
  // ─────────────────────────────────────────────
48
- /** Simulate successful connection */
49
+ /** Fires a successful connection, emitting the `connected` event. */
49
50
  simulateConnect() {
50
51
  this._connected = true;
51
52
  this._sessionError = false;
52
53
  this.emit('connected');
53
54
  }
54
- /** Simulate disconnection */
55
+ /** Drops the connection, emitting the `disconnected` event. */
55
56
  simulateDisconnect() {
56
57
  this._connected = false;
57
58
  this.emit('disconnected');
58
59
  }
59
- /** Simulate reconnection attempt */
60
+ /** Emits a `reconnecting` event carrying the attempt number and retry delay. */
60
61
  simulateReconnecting(attempt, delay) {
61
62
  this.emit('reconnecting', { attempt, delay });
62
63
  }
63
- /** Simulate session error (401/403) */
64
+ /** Emits a `session_error` event, as when the server rejects the session as unauthorized. The code defaults to 401. */
64
65
  simulateSessionError(code = 401) {
65
66
  this._sessionError = true;
66
67
  this._connected = false;
67
68
  this.emit('session_error', { code });
68
69
  }
69
- /** Simulate reconnection failure (max attempts reached) */
70
+ /** Emits a `reconnect_failed` event, signaling the client gave up after exhausting its retries. */
70
71
  simulateReconnectFailed() {
71
72
  this._connected = false;
72
73
  this.emit('reconnect_failed');
@@ -74,40 +75,40 @@ export class MockWebSocket {
74
75
  // ─────────────────────────────────────────────
75
76
  // Test control: delta injection
76
77
  // ─────────────────────────────────────────────
77
- /** Inject a single delta (as if received from server) */
78
+ /** Delivers a single delta, emitting a `delta` event as if the server had sent it. */
78
79
  receiveDelta(delta) {
79
80
  this.emit('delta', delta);
80
81
  }
81
- /** Inject a batch of deltas */
82
+ /** Delivers a batch of deltas, emitting a `delta_batch` event. */
82
83
  receiveDeltas(deltas) {
83
84
  this.emit('delta_batch', deltas);
84
85
  }
85
86
  // ─────────────────────────────────────────────
86
87
  // Test control: bootstrap hints
87
88
  // ─────────────────────────────────────────────
88
- /** Inject a bootstrap_required hint from server */
89
+ /** Emits a `bootstrap_required` hint, telling the client to rebuild its data instead of catching up. */
89
90
  simulateBootstrapHint(hint) {
90
91
  this.emit('bootstrap_required', hint);
91
92
  }
92
93
  // ─────────────────────────────────────────────
93
94
  // Test control: presence
94
95
  // ─────────────────────────────────────────────
95
- /** Inject a presence update */
96
+ /** Emits a `presence_update` event carrying the given payload. */
96
97
  simulatePresenceUpdate(data) {
97
98
  this.emit('presence_update', data);
98
99
  }
99
100
  // ─────────────────────────────────────────────
100
101
  // Assertions
101
102
  // ─────────────────────────────────────────────
102
- /** Get all events of a specific type */
103
+ /** Returns the payloads of every emitted event of the given type, in order. */
103
104
  getEvents(type) {
104
105
  return this.emittedEvents.filter((e) => e.type === type).map((e) => e.data);
105
106
  }
106
- /** Check if a specific event was emitted */
107
+ /** Reports whether an event of the given type has been emitted. */
107
108
  hasEmitted(type) {
108
109
  return this.emittedEvents.some((e) => e.type === type);
109
110
  }
110
- /** Reset all state */
111
+ /** Clears connection state, listeners, and the record of emitted events. */
111
112
  reset() {
112
113
  this._connected = false;
113
114
  this._sessionError = false;