@abloatai/ablo 0.35.0 → 0.37.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 (622) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -1929
  3. package/NOTICE +2 -2
  4. package/README.md +23 -532
  5. package/assets/banner.png +0 -0
  6. package/dist/auth.d.ts +2 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +2 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/client.d.ts +3 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +3 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/coordination.d.ts +2 -0
  15. package/dist/coordination.d.ts.map +1 -0
  16. package/dist/coordination.js +2 -0
  17. package/dist/coordination.js.map +1 -0
  18. package/dist/index.d.ts +3 -112
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -161
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +4 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +3 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.d.ts.map +1 -0
  28. package/dist/schema.js +2 -0
  29. package/dist/schema.js.map +1 -0
  30. package/dist/server.d.ts +2 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +2 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/source-conformance.d.ts +2 -0
  35. package/dist/source-conformance.d.ts.map +1 -0
  36. package/dist/source-conformance.js +2 -0
  37. package/dist/source-conformance.js.map +1 -0
  38. package/dist/source-drizzle.d.ts +2 -0
  39. package/dist/source-drizzle.d.ts.map +1 -0
  40. package/dist/source-drizzle.js +2 -0
  41. package/dist/source-drizzle.js.map +1 -0
  42. package/dist/source-kysely.d.ts +2 -0
  43. package/dist/source-kysely.d.ts.map +1 -0
  44. package/dist/source-kysely.js +2 -0
  45. package/dist/source-kysely.js.map +1 -0
  46. package/dist/source-next.d.ts +2 -0
  47. package/dist/source-next.d.ts.map +1 -0
  48. package/dist/source-next.js +2 -0
  49. package/dist/source-next.js.map +1 -0
  50. package/dist/source.d.ts +2 -0
  51. package/dist/source.d.ts.map +1 -0
  52. package/dist/source.js +2 -0
  53. package/dist/source.js.map +1 -0
  54. package/dist/wire.d.ts +2 -0
  55. package/dist/wire.d.ts.map +1 -0
  56. package/dist/wire.js +2 -0
  57. package/dist/wire.js.map +1 -0
  58. package/docs/agents.md +2 -2
  59. package/docs/api-keys.md +13 -12
  60. package/docs/api.md +15 -53
  61. package/docs/audit.md +4 -3
  62. package/docs/cli.md +11 -11
  63. package/docs/client-behavior.md +9 -9
  64. package/docs/concurrency-convention.md +28 -42
  65. package/docs/coordination.md +228 -86
  66. package/docs/data-sources.md +5 -5
  67. package/docs/debugging.md +34 -12
  68. package/docs/deployment.md +8 -8
  69. package/docs/examples/agent-human.md +4 -4
  70. package/docs/examples/ai-sdk-tool.md +1 -1
  71. package/docs/examples/existing-python-backend.md +15 -4
  72. package/docs/examples/nextjs.md +27 -6
  73. package/docs/examples/scoped-agent.md +3 -3
  74. package/docs/examples/server-agent.md +2 -2
  75. package/docs/groups.md +57 -3
  76. package/docs/guarantees.md +37 -10
  77. package/docs/how-it-works.md +32 -8
  78. package/docs/idempotency.md +6 -6
  79. package/docs/identity.md +24 -24
  80. package/docs/index.md +8 -8
  81. package/docs/integration-guide.md +38 -16
  82. package/docs/internal/README.md +18 -0
  83. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  84. package/docs/internal/agent-orchestration.md +58 -0
  85. package/docs/internal/commit-identifiers.md +91 -0
  86. package/docs/internal/concurrency-open-decisions.md +37 -0
  87. package/docs/internal/data-source-reverse-channel.md +150 -0
  88. package/docs/internal/per-field-conflict-detection.md +165 -0
  89. package/docs/internal/postgres-replication.md +64 -0
  90. package/docs/internal/serializable-schema.md +119 -0
  91. package/docs/internal/structure.md +32 -0
  92. package/docs/mcp.md +9 -9
  93. package/docs/migration.md +37 -18
  94. package/docs/projects.md +1 -1
  95. package/docs/quickstart.md +2 -2
  96. package/docs/react.md +24 -13
  97. package/docs/schema-contract.md +3 -3
  98. package/docs/sessions.md +91 -37
  99. package/docs/webhooks.md +9 -9
  100. package/examples/README.md +2 -2
  101. package/examples/data-source/README.md +1 -1
  102. package/examples/data-source/ablo-driver.ts +1 -1
  103. package/examples/data-source/customer-server.ts +1 -1
  104. package/examples/data-source/run.ts +1 -1
  105. package/examples/data-source/schema.ts +1 -1
  106. package/examples/quickstart.ts +2 -2
  107. package/llms.txt +12 -12
  108. package/package.json +64 -174
  109. package/dist/BaseSyncedStore.d.ts +0 -823
  110. package/dist/BaseSyncedStore.js +0 -1955
  111. package/dist/Database.d.ts +0 -335
  112. package/dist/Database.js +0 -1500
  113. package/dist/InstanceCache.d.ts +0 -233
  114. package/dist/InstanceCache.js +0 -1164
  115. package/dist/LazyReferenceCollection.d.ts +0 -177
  116. package/dist/LazyReferenceCollection.js +0 -461
  117. package/dist/Model.d.ts +0 -444
  118. package/dist/Model.js +0 -909
  119. package/dist/ModelRegistry.d.ts +0 -221
  120. package/dist/ModelRegistry.js +0 -537
  121. package/dist/NetworkMonitor.d.ts +0 -26
  122. package/dist/NetworkMonitor.js +0 -77
  123. package/dist/RuntimeContext.d.ts +0 -52
  124. package/dist/RuntimeContext.js +0 -80
  125. package/dist/SyncClient.d.ts +0 -551
  126. package/dist/SyncClient.js +0 -2199
  127. package/dist/adapters/alwaysOnline.d.ts +0 -14
  128. package/dist/adapters/alwaysOnline.js +0 -17
  129. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  130. package/dist/adapters/inMemoryStorage.js +0 -110
  131. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  132. package/dist/ai-sdk/coordinatedTool.js +0 -134
  133. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  134. package/dist/ai-sdk/coordinationContext.js +0 -106
  135. package/dist/ai-sdk/index.d.ts +0 -121
  136. package/dist/ai-sdk/index.js +0 -121
  137. package/dist/ai-sdk/wrap.d.ts +0 -65
  138. package/dist/ai-sdk/wrap.js +0 -39
  139. package/dist/auth/index.d.ts +0 -1
  140. package/dist/auth/index.js +0 -8
  141. package/dist/batching/index.d.ts +0 -55
  142. package/dist/batching/index.js +0 -147
  143. package/dist/cli.cjs +0 -288600
  144. package/dist/client/Ablo.d.ts +0 -231
  145. package/dist/client/Ablo.js +0 -149
  146. package/dist/client/abloClient.d.ts +0 -309
  147. package/dist/client/abloClient.js +0 -13
  148. package/dist/client/clientPrelude.d.ts +0 -52
  149. package/dist/client/clientPrelude.js +0 -60
  150. package/dist/client/consoleLogger.d.ts +0 -35
  151. package/dist/client/consoleLogger.js +0 -44
  152. package/dist/client/coreClient.d.ts +0 -60
  153. package/dist/client/coreClient.js +0 -118
  154. package/dist/client/createInternalComponents.d.ts +0 -46
  155. package/dist/client/createInternalComponents.js +0 -92
  156. package/dist/client/createModelProxy.d.ts +0 -228
  157. package/dist/client/createModelProxy.js +0 -818
  158. package/dist/client/humans.d.ts +0 -48
  159. package/dist/client/humans.js +0 -52
  160. package/dist/client/modelRegistration.d.ts +0 -10
  161. package/dist/client/modelRegistration.js +0 -312
  162. package/dist/client/options.d.ts +0 -461
  163. package/dist/client/options.js +0 -7
  164. package/dist/client/reactiveEngine.d.ts +0 -48
  165. package/dist/client/reactiveEngine.js +0 -910
  166. package/dist/client/resourceTypes.d.ts +0 -12
  167. package/dist/client/resourceTypes.js +0 -10
  168. package/dist/client/schemaConfig.d.ts +0 -44
  169. package/dist/client/schemaConfig.js +0 -185
  170. package/dist/client/validateAbloOptions.d.ts +0 -42
  171. package/dist/client/validateAbloOptions.js +0 -43
  172. package/dist/client/wsMutationExecutor.d.ts +0 -27
  173. package/dist/client/wsMutationExecutor.js +0 -72
  174. package/dist/context.d.ts +0 -29
  175. package/dist/context.js +0 -58
  176. package/dist/coordination/ClaimLog.d.ts +0 -26
  177. package/dist/coordination/ClaimLog.js +0 -32
  178. package/dist/coordination/index.d.ts +0 -1
  179. package/dist/coordination/index.js +0 -8
  180. package/dist/core/DatabaseManager.d.ts +0 -105
  181. package/dist/core/DatabaseManager.js +0 -387
  182. package/dist/core/QueryProcessor.d.ts +0 -75
  183. package/dist/core/QueryProcessor.js +0 -255
  184. package/dist/core/QueryView.d.ts +0 -79
  185. package/dist/core/QueryView.js +0 -218
  186. package/dist/core/StoreManager.d.ts +0 -112
  187. package/dist/core/StoreManager.js +0 -302
  188. package/dist/core/ViewRegistry.d.ts +0 -20
  189. package/dist/core/ViewRegistry.js +0 -55
  190. package/dist/core/index.d.ts +0 -33
  191. package/dist/core/index.js +0 -48
  192. package/dist/core/openIDBWithTimeout.d.ts +0 -65
  193. package/dist/core/openIDBWithTimeout.js +0 -153
  194. package/dist/core/queryUtils.d.ts +0 -45
  195. package/dist/core/queryUtils.js +0 -69
  196. package/dist/core/storeContract.d.ts +0 -145
  197. package/dist/core/storeContract.js +0 -12
  198. package/dist/docs/catalog.d.ts +0 -72
  199. package/dist/docs/catalog.js +0 -227
  200. package/dist/docs/index.d.ts +0 -10
  201. package/dist/docs/index.js +0 -10
  202. package/dist/environment.d.ts +0 -1
  203. package/dist/environment.js +0 -8
  204. package/dist/interfaces/index.d.ts +0 -311
  205. package/dist/interfaces/index.js +0 -9
  206. package/dist/keys/index.d.ts +0 -1
  207. package/dist/keys/index.js +0 -8
  208. package/dist/mutators/RecordingMutation.d.ts +0 -36
  209. package/dist/mutators/RecordingMutation.js +0 -182
  210. package/dist/mutators/Transaction.d.ts +0 -40
  211. package/dist/mutators/Transaction.js +0 -58
  212. package/dist/mutators/UndoManager.d.ts +0 -258
  213. package/dist/mutators/UndoManager.js +0 -658
  214. package/dist/mutators/defineMutators.d.ts +0 -60
  215. package/dist/mutators/defineMutators.js +0 -18
  216. package/dist/mutators/inverseOp.d.ts +0 -126
  217. package/dist/mutators/inverseOp.js +0 -71
  218. package/dist/mutators/mutateActions.d.ts +0 -45
  219. package/dist/mutators/mutateActions.js +0 -105
  220. package/dist/mutators/readerActions.d.ts +0 -33
  221. package/dist/mutators/readerActions.js +0 -57
  222. package/dist/mutators/undoApply.d.ts +0 -51
  223. package/dist/mutators/undoApply.js +0 -117
  224. package/dist/policy/index.d.ts +0 -21
  225. package/dist/policy/index.js +0 -20
  226. package/dist/query/client.d.ts +0 -61
  227. package/dist/query/client.js +0 -137
  228. package/dist/query/types.d.ts +0 -85
  229. package/dist/query/types.js +0 -16
  230. package/dist/react/AbloProvider.d.ts +0 -230
  231. package/dist/react/AbloProvider.js +0 -455
  232. package/dist/react/ClientSideSuspense.d.ts +0 -36
  233. package/dist/react/ClientSideSuspense.js +0 -17
  234. package/dist/react/DefaultFallback.d.ts +0 -24
  235. package/dist/react/DefaultFallback.js +0 -43
  236. package/dist/react/context.d.ts +0 -55
  237. package/dist/react/context.js +0 -29
  238. package/dist/react/index.d.ts +0 -61
  239. package/dist/react/index.js +0 -66
  240. package/dist/react/internalContext.d.ts +0 -33
  241. package/dist/react/internalContext.js +0 -3
  242. package/dist/react/useAblo.d.ts +0 -75
  243. package/dist/react/useAblo.js +0 -102
  244. package/dist/react/useCurrentUserId.d.ts +0 -22
  245. package/dist/react/useCurrentUserId.js +0 -34
  246. package/dist/react/useErrorListener.d.ts +0 -20
  247. package/dist/react/useErrorListener.js +0 -38
  248. package/dist/react/useMutationFailureListener.d.ts +0 -26
  249. package/dist/react/useMutationFailureListener.js +0 -38
  250. package/dist/react/useMutators.d.ts +0 -56
  251. package/dist/react/useMutators.js +0 -84
  252. package/dist/react/useReactive.d.ts +0 -35
  253. package/dist/react/useReactive.js +0 -123
  254. package/dist/react/useSyncStatus.d.ts +0 -59
  255. package/dist/react/useSyncStatus.js +0 -76
  256. package/dist/react/useUndoScope.d.ts +0 -34
  257. package/dist/react/useUndoScope.js +0 -81
  258. package/dist/schema/coordination.d.ts +0 -112
  259. package/dist/schema/coordination.js +0 -129
  260. package/dist/schema/ddl.d.ts +0 -97
  261. package/dist/schema/ddl.js +0 -491
  262. package/dist/schema/ddlLock.d.ts +0 -35
  263. package/dist/schema/ddlLock.js +0 -46
  264. package/dist/schema/diff.d.ts +0 -225
  265. package/dist/schema/diff.js +0 -289
  266. package/dist/schema/generate.d.ts +0 -19
  267. package/dist/schema/generate.js +0 -86
  268. package/dist/schema/index.d.ts +0 -41
  269. package/dist/schema/index.js +0 -76
  270. package/dist/schema/queries.d.ts +0 -201
  271. package/dist/schema/queries.js +0 -144
  272. package/dist/schema/select.d.ts +0 -40
  273. package/dist/schema/select.js +0 -87
  274. package/dist/schema/serialize.d.ts +0 -115
  275. package/dist/schema/serialize.js +0 -262
  276. package/dist/schema/sugar.d.ts +0 -109
  277. package/dist/schema/sugar.js +0 -83
  278. package/dist/schema/syncDeltaRow.d.ts +0 -6
  279. package/dist/schema/syncDeltaRow.js +0 -6
  280. package/dist/server/adapter.d.ts +0 -173
  281. package/dist/server/adapter.js +0 -18
  282. package/dist/server/commit.d.ts +0 -107
  283. package/dist/server/commit.js +0 -1
  284. package/dist/server/index.d.ts +0 -14
  285. package/dist/server/index.js +0 -2
  286. package/dist/server/readConfig.d.ts +0 -80
  287. package/dist/server/readConfig.js +0 -8
  288. package/dist/server/storageMode.d.ts +0 -23
  289. package/dist/server/storageMode.js +0 -17
  290. package/dist/source/adapter.d.ts +0 -81
  291. package/dist/source/adapter.js +0 -22
  292. package/dist/source/adapters/drizzle.d.ts +0 -48
  293. package/dist/source/adapters/drizzle.js +0 -219
  294. package/dist/source/adapters/kysely.d.ts +0 -42
  295. package/dist/source/adapters/kysely.js +0 -205
  296. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  297. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  298. package/dist/source/adapters/memory.d.ts +0 -13
  299. package/dist/source/adapters/memory.js +0 -130
  300. package/dist/source/adapters/prisma.d.ts +0 -63
  301. package/dist/source/adapters/prisma.js +0 -202
  302. package/dist/source/conformance.d.ts +0 -37
  303. package/dist/source/conformance.js +0 -215
  304. package/dist/source/connector.d.ts +0 -95
  305. package/dist/source/connector.js +0 -266
  306. package/dist/source/connectorProtocol.d.ts +0 -154
  307. package/dist/source/connectorProtocol.js +0 -163
  308. package/dist/source/contract.d.ts +0 -195
  309. package/dist/source/contract.js +0 -164
  310. package/dist/source/factory.d.ts +0 -92
  311. package/dist/source/factory.js +0 -286
  312. package/dist/source/footprint.d.ts +0 -111
  313. package/dist/source/footprint.js +0 -0
  314. package/dist/source/idempotency.d.ts +0 -61
  315. package/dist/source/idempotency.js +0 -144
  316. package/dist/source/index.d.ts +0 -23
  317. package/dist/source/index.js +0 -30
  318. package/dist/source/migrations.d.ts +0 -21
  319. package/dist/source/migrations.js +0 -103
  320. package/dist/source/next.d.ts +0 -32
  321. package/dist/source/next.js +0 -25
  322. package/dist/source/pushQueue.d.ts +0 -134
  323. package/dist/source/pushQueue.js +0 -256
  324. package/dist/source/signing.d.ts +0 -92
  325. package/dist/source/signing.js +0 -162
  326. package/dist/source/types.d.ts +0 -401
  327. package/dist/source/types.js +0 -59
  328. package/dist/stores/ObjectStore.d.ts +0 -115
  329. package/dist/stores/ObjectStore.js +0 -393
  330. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  331. package/dist/stores/ObjectStoreContract.js +0 -1
  332. package/dist/stores/SyncActionStore.d.ts +0 -97
  333. package/dist/stores/SyncActionStore.js +0 -504
  334. package/dist/stores/syncAction.d.ts +0 -26
  335. package/dist/stores/syncAction.js +0 -16
  336. package/dist/surface.d.ts +0 -36
  337. package/dist/surface.js +0 -75
  338. package/dist/sync/BootstrapFetcher.d.ts +0 -280
  339. package/dist/sync/BootstrapFetcher.js +0 -962
  340. package/dist/sync/ConnectionManager.d.ts +0 -8
  341. package/dist/sync/ConnectionManager.js +0 -8
  342. package/dist/sync/OnDemandLoader.d.ts +0 -228
  343. package/dist/sync/OnDemandLoader.js +0 -742
  344. package/dist/sync/SubscriptionManager.d.ts +0 -159
  345. package/dist/sync/SubscriptionManager.js +0 -243
  346. package/dist/sync/SyncWebSocket.d.ts +0 -173
  347. package/dist/sync/SyncWebSocket.js +0 -438
  348. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  349. package/dist/sync/awaitClaimGrant.js +0 -6
  350. package/dist/sync/bootstrapApply.d.ts +0 -70
  351. package/dist/sync/bootstrapApply.js +0 -73
  352. package/dist/sync/commitFrames.d.ts +0 -8
  353. package/dist/sync/commitFrames.js +0 -8
  354. package/dist/sync/contextPorts.d.ts +0 -18
  355. package/dist/sync/contextPorts.js +0 -31
  356. package/dist/sync/createClaimStream.d.ts +0 -7
  357. package/dist/sync/createClaimStream.js +0 -7
  358. package/dist/sync/createPresenceStream.d.ts +0 -69
  359. package/dist/sync/createPresenceStream.js +0 -200
  360. package/dist/sync/createSnapshot.d.ts +0 -29
  361. package/dist/sync/createSnapshot.js +0 -118
  362. package/dist/sync/credentialLifecycle.d.ts +0 -7
  363. package/dist/sync/credentialLifecycle.js +0 -7
  364. package/dist/sync/deltaPipeline.d.ts +0 -113
  365. package/dist/sync/deltaPipeline.js +0 -261
  366. package/dist/sync/groupChange.d.ts +0 -113
  367. package/dist/sync/groupChange.js +0 -242
  368. package/dist/sync/participants.d.ts +0 -115
  369. package/dist/sync/participants.js +0 -344
  370. package/dist/sync/persistedPrefix.d.ts +0 -12
  371. package/dist/sync/persistedPrefix.js +0 -22
  372. package/dist/sync/schemaDrift.d.ts +0 -55
  373. package/dist/sync/schemaDrift.js +0 -53
  374. package/dist/sync/schemas.d.ts +0 -70
  375. package/dist/sync/schemas.js +0 -94
  376. package/dist/sync/syncCursor.d.ts +0 -40
  377. package/dist/sync/syncCursor.js +0 -55
  378. package/dist/sync/syncPlan.d.ts +0 -54
  379. package/dist/sync/syncPlan.js +0 -50
  380. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  381. package/dist/sync/wsFrameHandlers.js +0 -8
  382. package/dist/testing/fixtures/bootstrap.d.ts +0 -49
  383. package/dist/testing/fixtures/bootstrap.js +0 -59
  384. package/dist/testing/fixtures/deltas.d.ts +0 -83
  385. package/dist/testing/fixtures/deltas.js +0 -136
  386. package/dist/testing/fixtures/httpResponses.d.ts +0 -70
  387. package/dist/testing/fixtures/httpResponses.js +0 -90
  388. package/dist/testing/fixtures/models.d.ts +0 -83
  389. package/dist/testing/fixtures/models.js +0 -272
  390. package/dist/testing/helpers/reactWrapper.d.ts +0 -69
  391. package/dist/testing/helpers/reactWrapper.js +0 -67
  392. package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
  393. package/dist/testing/helpers/syncEngineHarness.js +0 -73
  394. package/dist/testing/helpers/wait.d.ts +0 -30
  395. package/dist/testing/helpers/wait.js +0 -49
  396. package/dist/testing/index.d.ts +0 -23
  397. package/dist/testing/index.js +0 -33
  398. package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
  399. package/dist/testing/mocks/FakeDatabase.js +0 -10
  400. package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
  401. package/dist/testing/mocks/MockMutationExecutor.js +0 -186
  402. package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
  403. package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
  404. package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
  405. package/dist/testing/mocks/MockSyncContext.js +0 -72
  406. package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
  407. package/dist/testing/mocks/MockSyncStore.js +0 -171
  408. package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
  409. package/dist/testing/mocks/MockWebSocket.js +0 -118
  410. package/dist/transaction/ablo.d.ts +0 -88
  411. package/dist/transaction/ablo.js +0 -33
  412. package/dist/transaction/auth/apiKey.d.ts +0 -152
  413. package/dist/transaction/auth/apiKey.js +0 -419
  414. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  415. package/dist/transaction/auth/bootstrapScope.js +0 -1
  416. package/dist/transaction/auth/capability.d.ts +0 -177
  417. package/dist/transaction/auth/capability.js +0 -199
  418. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  419. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  420. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  421. package/dist/transaction/auth/credentialPolicy.js +0 -125
  422. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  423. package/dist/transaction/auth/credentialSource.js +0 -55
  424. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  425. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  426. package/dist/transaction/auth/identity.d.ts +0 -55
  427. package/dist/transaction/auth/identity.js +0 -210
  428. package/dist/transaction/auth/index.d.ts +0 -162
  429. package/dist/transaction/auth/index.js +0 -304
  430. package/dist/transaction/auth/schemas.d.ts +0 -59
  431. package/dist/transaction/auth/schemas.js +0 -85
  432. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  433. package/dist/transaction/auth/sessionMint.js +0 -85
  434. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -49
  435. package/dist/transaction/coordination/awaitClaimGrant.js +0 -112
  436. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -50
  437. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -88
  438. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  439. package/dist/transaction/coordination/claimMeta.js +0 -52
  440. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  441. package/dist/transaction/coordination/createClaimStream.js +0 -475
  442. package/dist/transaction/coordination/events.d.ts +0 -74
  443. package/dist/transaction/coordination/events.js +0 -7
  444. package/dist/transaction/coordination/index.d.ts +0 -19
  445. package/dist/transaction/coordination/index.js +0 -44
  446. package/dist/transaction/coordination/locator.d.ts +0 -83
  447. package/dist/transaction/coordination/locator.js +0 -82
  448. package/dist/transaction/coordination/schema.d.ts +0 -1473
  449. package/dist/transaction/coordination/schema.js +0 -1013
  450. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  451. package/dist/transaction/coordination/targetConflict.js +0 -103
  452. package/dist/transaction/coordination/trace.d.ts +0 -78
  453. package/dist/transaction/coordination/trace.js +0 -138
  454. package/dist/transaction/durableWrites.d.ts +0 -62
  455. package/dist/transaction/durableWrites.js +0 -71
  456. package/dist/transaction/environment.d.ts +0 -105
  457. package/dist/transaction/environment.js +0 -108
  458. package/dist/transaction/errorCodes.d.ts +0 -403
  459. package/dist/transaction/errorCodes.js +0 -480
  460. package/dist/transaction/errors.d.ts +0 -428
  461. package/dist/transaction/errors.js +0 -686
  462. package/dist/transaction/index.d.ts +0 -20
  463. package/dist/transaction/index.js +0 -20
  464. package/dist/transaction/keys/index.d.ts +0 -87
  465. package/dist/transaction/keys/index.js +0 -207
  466. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  467. package/dist/transaction/log/syncDeltaRow.js +0 -95
  468. package/dist/transaction/logPosition.d.ts +0 -97
  469. package/dist/transaction/logPosition.js +0 -125
  470. package/dist/transaction/logger.d.ts +0 -16
  471. package/dist/transaction/logger.js +0 -7
  472. package/dist/transaction/observability.d.ts +0 -53
  473. package/dist/transaction/observability.js +0 -19
  474. package/dist/transaction/persistence.d.ts +0 -12
  475. package/dist/transaction/persistence.js +0 -11
  476. package/dist/transaction/plugin.d.ts +0 -192
  477. package/dist/transaction/plugin.js +0 -87
  478. package/dist/transaction/policy/types.d.ts +0 -217
  479. package/dist/transaction/policy/types.js +0 -126
  480. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  481. package/dist/transaction/resources/functionalUpdate.js +0 -87
  482. package/dist/transaction/resources/httpResources.d.ts +0 -266
  483. package/dist/transaction/resources/httpResources.js +0 -7
  484. package/dist/transaction/resources/modelOperations.d.ts +0 -319
  485. package/dist/transaction/resources/modelOperations.js +0 -12
  486. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  487. package/dist/transaction/resources/mutationOptions.js +0 -9
  488. package/dist/transaction/resources/where.d.ts +0 -85
  489. package/dist/transaction/resources/where.js +0 -70
  490. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  491. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  492. package/dist/transaction/schema/field.d.ts +0 -126
  493. package/dist/transaction/schema/field.js +0 -265
  494. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  495. package/dist/transaction/schema/loadStrategy.js +0 -46
  496. package/dist/transaction/schema/model.d.ts +0 -379
  497. package/dist/transaction/schema/model.js +0 -123
  498. package/dist/transaction/schema/openapi.d.ts +0 -57
  499. package/dist/transaction/schema/openapi.js +0 -340
  500. package/dist/transaction/schema/relation.d.ts +0 -199
  501. package/dist/transaction/schema/relation.js +0 -104
  502. package/dist/transaction/schema/residency.d.ts +0 -29
  503. package/dist/transaction/schema/residency.js +0 -25
  504. package/dist/transaction/schema/roles.d.ts +0 -249
  505. package/dist/transaction/schema/roles.js +0 -230
  506. package/dist/transaction/schema/schema.d.ts +0 -324
  507. package/dist/transaction/schema/schema.js +0 -305
  508. package/dist/transaction/schema/tenancy.d.ts +0 -139
  509. package/dist/transaction/schema/tenancy.js +0 -190
  510. package/dist/transaction/transactionLayer.d.ts +0 -82
  511. package/dist/transaction/transactionLayer.js +0 -24
  512. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  513. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  514. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  515. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  516. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  517. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  518. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  519. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  520. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  521. package/dist/transaction/transport/commitFrames.js +0 -134
  522. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  523. package/dist/transaction/transport/connectionManager.js +0 -673
  524. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  525. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  526. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  527. package/dist/transaction/transport/heartbeat.js +0 -93
  528. package/dist/transaction/transport/httpClient.d.ts +0 -123
  529. package/dist/transaction/transport/httpClient.js +0 -145
  530. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  531. package/dist/transaction/transport/httpOptions.js +0 -12
  532. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  533. package/dist/transaction/transport/httpTransport.js +0 -1276
  534. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  535. package/dist/transaction/transport/networkProbe.js +0 -207
  536. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  537. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  538. package/dist/transaction/transport/wsTransport.d.ts +0 -576
  539. package/dist/transaction/transport/wsTransport.js +0 -1017
  540. package/dist/transaction/types/assertExact.d.ts +0 -17
  541. package/dist/transaction/types/assertExact.js +0 -1
  542. package/dist/transaction/types/global.d.ts +0 -107
  543. package/dist/transaction/types/global.js +0 -40
  544. package/dist/transaction/types/index.d.ts +0 -205
  545. package/dist/transaction/types/index.js +0 -56
  546. package/dist/transaction/types/modelData.d.ts +0 -10
  547. package/dist/transaction/types/modelData.js +0 -9
  548. package/dist/transaction/types/participant.d.ts +0 -20
  549. package/dist/transaction/types/participant.js +0 -10
  550. package/dist/transaction/types/streams.d.ts +0 -540
  551. package/dist/transaction/types/streams.js +0 -11
  552. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  553. package/dist/transaction/utils/asyncIterator.js +0 -135
  554. package/dist/transaction/utils/duration.d.ts +0 -25
  555. package/dist/transaction/utils/duration.js +0 -45
  556. package/dist/transaction/utils/json.d.ts +0 -57
  557. package/dist/transaction/utils/json.js +0 -276
  558. package/dist/transaction/wire/accountResponses.d.ts +0 -351
  559. package/dist/transaction/wire/accountResponses.js +0 -255
  560. package/dist/transaction/wire/auth.d.ts +0 -49
  561. package/dist/transaction/wire/auth.js +0 -57
  562. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  563. package/dist/transaction/wire/bootstrapReason.js +0 -8
  564. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  565. package/dist/transaction/wire/claimEvent.js +0 -73
  566. package/dist/transaction/wire/claims.d.ts +0 -463
  567. package/dist/transaction/wire/claims.js +0 -229
  568. package/dist/transaction/wire/commit.d.ts +0 -603
  569. package/dist/transaction/wire/commit.js +0 -321
  570. package/dist/transaction/wire/delta.d.ts +0 -250
  571. package/dist/transaction/wire/delta.js +0 -147
  572. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  573. package/dist/transaction/wire/errorEnvelope.js +0 -123
  574. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  575. package/dist/transaction/wire/feedCursor.js +0 -82
  576. package/dist/transaction/wire/feedEvent.d.ts +0 -177
  577. package/dist/transaction/wire/feedEvent.js +0 -39
  578. package/dist/transaction/wire/frames.d.ts +0 -194
  579. package/dist/transaction/wire/frames.js +0 -50
  580. package/dist/transaction/wire/inboundFrames.d.ts +0 -552
  581. package/dist/transaction/wire/inboundFrames.js +0 -116
  582. package/dist/transaction/wire/index.d.ts +0 -50
  583. package/dist/transaction/wire/index.js +0 -74
  584. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  585. package/dist/transaction/wire/listEnvelope.js +0 -42
  586. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  587. package/dist/transaction/wire/modelResponses.js +0 -43
  588. package/dist/transaction/wire/protocol.d.ts +0 -38
  589. package/dist/transaction/wire/protocol.js +0 -38
  590. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  591. package/dist/transaction/wire/protocolVersion.js +0 -83
  592. package/dist/transactions/mutations/MutationQueue.d.ts +0 -655
  593. package/dist/transactions/mutations/MutationQueue.js +0 -2797
  594. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  595. package/dist/transactions/mutations/MutationStore.js +0 -53
  596. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  597. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  598. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  599. package/dist/transactions/mutations/coalesceRules.js +0 -140
  600. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  601. package/dist/transactions/mutations/commitLatency.js +0 -130
  602. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  603. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  604. package/dist/transactions/mutations/commitPayload.d.ts +0 -164
  605. package/dist/transactions/mutations/commitPayload.js +0 -152
  606. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -59
  607. package/dist/transactions/mutations/deltaConfirmation.js +0 -233
  608. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  609. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  610. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  611. package/dist/transactions/mutations/optimisticApply.js +0 -65
  612. package/dist/transactions/mutations/replayValidation.d.ts +0 -186
  613. package/dist/transactions/mutations/replayValidation.js +0 -163
  614. package/dist/utils/mobxSetup.d.ts +0 -53
  615. package/dist/utils/mobxSetup.js +0 -330
  616. package/dist/webhooks/events.d.ts +0 -43
  617. package/dist/webhooks/events.js +0 -42
  618. package/dist/webhooks/index.d.ts +0 -8
  619. package/dist/webhooks/index.js +0 -8
  620. package/dist/wire/index.d.ts +0 -1
  621. package/dist/wire/index.js +0 -8
  622. package/docs/interaction-model.md +0 -99
@@ -1,231 +0,0 @@
1
- /**
2
- * `Ablo` — the one-call entry point to the sync engine client. It hides the
3
- * internal wiring — the object pool, local database, sync client, WebSocket,
4
- * bootstrap, and offline queue — behind a single function that returns a typed
5
- * client with one property per model in your schema.
6
- *
7
- * Usage:
8
- * import { Ablo } from '@abloatai/ablo';
9
- * import { schema } from './schema';
10
- *
11
- * const sync = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
12
- *
13
- * const reports = sync.reports.list({ where: { status: 'todo' } });
14
- * await sync.reports.create({ data: { title: 'Fix bug' } });
15
- * await sync.reports.update({
16
- * id: reportId,
17
- * data: { status: 'ready' },
18
- * });
19
- * await sync.reports.delete({ id: reportId });
20
- *
21
- * This module is the composition root and the merge point, and only those.
22
- * `Ablo` is three declarations sharing one name — the factory, the client
23
- * type, and the `Ablo.*` namespace — and TypeScript merges declarations only
24
- * within a single file, so the three have to sit together. Their bodies do
25
- * not: the client's shape is `./abloClient`, the pass over the options bag is
26
- * `./clientPrelude`, and the client this dispatches to is `./reactiveEngine`.
27
- */
28
- import type { SchemaRecord } from '../transaction/schema/schema.js';
29
- import { type AbloHttpClient, type AbloHttpClientOptions } from '../transaction/transport/httpClient.js';
30
- import { type AbloPlugin, type PluginById, type MergedSurface } from '../transaction/plugin.js';
31
- import { type AbloCoreClient } from './coreClient.js';
32
- import type { AbloOptions } from './options.js';
33
- import type { AbloClient, AbloReads } from './abloClient.js';
34
- export type { ApiKeySetter, AbloOptions, InternalAbloOptions } from './options.js';
35
- export type { AbloReads } from './abloClient.js';
36
- export type { ModelTarget, ModelClaim } from './resourceTypes.js';
37
- /**
38
- * The typed sync engine client — one property per model in the schema.
39
- *
40
- * The shape itself is declared in `./abloClient`; this alias is what merges
41
- * with the factory and the namespace under the one `Ablo` name.
42
- */
43
- export type Ablo<S extends SchemaRecord> = AbloClient<S>;
44
- /**
45
- * Create a sync engine client in one call.
46
- *
47
- * ```ts
48
- * const sync = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
49
- *
50
- * const reports = sync.weatherReports.list({ where: { status: 'pending' } });
51
- * await sync.weatherReports.create({ location: 'Stockholm', status: 'pending' });
52
- * ```
53
- *
54
- * In the browser (or any client that shouldn't hold a secret key), point
55
- * `authEndpoint` at your session-mint route instead — the SDK fetches it, keeps the
56
- * short-lived token fresh, and re-mints on expiry:
57
- *
58
- * ```ts
59
- * const ablo = Ablo({ schema, authEndpoint: '/api/ablo-session' });
60
- * ```
61
- *
62
- * Pass `transport: 'http'` for the stateless server-side client (agents,
63
- * workers, serverless) — same `ablo.<model>` surface, no socket:
64
- *
65
- * ```ts
66
- * const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, transport: 'http' });
67
- * await ablo.tasks.update({ id, data: { status: 'done' } });
68
- * ```
69
- *
70
- * Pass `plugins: []` for the core client — the same stateless surface plus
71
- * the live feed (pushed deltas, presence, claim grants and losses), and no
72
- * local copy of anything:
73
- *
74
- * ```ts
75
- * const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, plugins: [] });
76
- * await ablo.connect();
77
- * ablo.subscribe('claim_granted', (grant) => { ... });
78
- * ```
79
- */
80
- export declare function Ablo<const S extends SchemaRecord, const P extends readonly AbloPlugin[] = readonly []>(options: AbloHttpClientOptions<S> & {
81
- transport: 'http';
82
- plugins?: P;
83
- }): AbloHttpClient<S> & MergedSurface<P>;
84
- export declare function Ablo<const S extends SchemaRecord, const P extends readonly AbloPlugin[]>(options: AbloOptions<S> & {
85
- plugins: P;
86
- }): PluginById<P, 'humans'> extends never ? AbloCoreClient<S> & MergedSurface<P> : Ablo<S>;
87
- export declare function Ablo<const S extends SchemaRecord>(options: AbloOptions<S>): Ablo<S>;
88
- import type * as _Streams from '../transaction/types/streams.js';
89
- import type * as _Participants from '../sync/participants.js';
90
- import type * as _Policy from '../transaction/policy/types.js';
91
- import type * as _Mutators from '../mutators/defineMutators.js';
92
- import type * as _Tx from '../mutators/Transaction.js';
93
- import type * as _Undo from '../mutators/UndoManager.js';
94
- import type * as _SchemaTypes from '../transaction/schema/schema.js';
95
- import type * as _Global from '../transaction/types/global.js';
96
- /**
97
- * The canonical type namespace.
98
- *
99
- * Rules applied uniformly to every addition:
100
- *
101
- * 1. Flat by default. `Ablo.X`. Fewest dots wins.
102
- * 2. Sub-namespace only when (a) four or more types share a single conceptual
103
- * prefix and (b) the names read better with it (`Conflict.Kind` over
104
- * `ConflictKind`). If the cluster is heterogeneous (streams, data, handles),
105
- * keep it flat.
106
- * 3. Only types a consumer would write `: Ablo.X` for. Inferred-only types stay
107
- * unexported.
108
- * 4. Wire shapes never appear on `Ablo.*` — engine vocabulary only.
109
- * 5. Advanced or framework-integration types stay internal unless they graduate
110
- * into one of the public subpaths.
111
- */
112
- export declare namespace Ablo {
113
- type Options<S extends SchemaRecord = SchemaRecord> = AbloOptions<S>;
114
- /**
115
- * The read view of the client that `useAblo` selectors receive: model reads
116
- * typed as reactive rows (data fields + computeds, no relation accessors).
117
- */
118
- type Reads<S extends SchemaRecord = SchemaRecord> = AbloReads<S>;
119
- type IfClaimedPolicy = import('./resourceTypes.js').IfClaimedPolicy;
120
- type ClaimedOptions = import('./resourceTypes.js').ClaimedOptions;
121
- type ClaimTarget = _Streams.ClaimTarget;
122
- type PresenceTarget = _Streams.PresenceTarget;
123
- type TargetRange = _Streams.TargetRange;
124
- type Duration = _Streams.Duration;
125
- type PresenceStream = _Streams.PresenceStream;
126
- type ClaimStream = _Streams.ClaimStream;
127
- type Peer = _Streams.Peer;
128
- type Activity = _Streams.Activity;
129
- type Claim = _Streams.Claim;
130
- type ClaimRejection = _Streams.ClaimRejection;
131
- type ClaimLost = _Streams.ClaimLost;
132
- type ClaimHeartbeat = _Streams.ClaimHeartbeat;
133
- type ClaimHeartbeatOptions = _Streams.ClaimHeartbeatOptions;
134
- type Snapshot<TSchema extends _SchemaTypes.Schema = _SchemaTypes.Schema, K extends keyof TSchema['models'] = keyof TSchema['models']> = _Streams.Snapshot<TSchema, K>;
135
- namespace Auth {
136
- type Actor = _Streams.ParticipantRef;
137
- }
138
- namespace Participant {
139
- type Manager = _Participants.ParticipantManager;
140
- type Joined = _Participants.JoinedParticipant;
141
- type Scope = _Participants.ParticipantScope;
142
- type Status = _Participants.ParticipantStatus;
143
- type JoinOptions = _Participants.ParticipantJoinOptions;
144
- }
145
- type Schema<S extends _SchemaTypes.SchemaRecord = _SchemaTypes.SchemaRecord> = _SchemaTypes.Schema<S>;
146
- /**
147
- * The schema this program has registered via `interface Register { Schema }`
148
- * (falls back to a loose shape when unregistered). Use it where shared code
149
- * needs "this app's schema" without importing a specific one —
150
- * `Ablo<Ablo.ResolveSchema['models']>` resolves to whatever the consuming
151
- * app registered, so one component types correctly across apps that bind
152
- * different schemas.
153
- */
154
- type ResolveSchema = _Global.ResolveSchema;
155
- /**
156
- * `ResolveSchema` guaranteed to satisfy the `Schema` bound. `ResolveSchema`
157
- * falls back to a loose `{ models }` shape when nothing is registered, which
158
- * doesn't extend the branded `Schema` type — so generics bounded by `Schema`
159
- * (mutator anchors, `Transaction<S>`) can't take `ResolveSchema` directly.
160
- * `RegisteredSchema` collapses that fallback to `Schema`, so shared mutator
161
- * code can anchor "this app's schema" and stay assignable at the consumer,
162
- * which reads the same `Register`. Both resolve in lockstep per app.
163
- */
164
- type RegisteredSchema = _Global.ResolveSchema extends _SchemaTypes.Schema ? _Global.ResolveSchema : _SchemaTypes.Schema;
165
- namespace Schema {
166
- type Model<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.Model<S, K>;
167
- type InferCreate<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferCreate<S, K>;
168
- /**
169
- * The reactive-row companion to {@link Model}: data fields + computed
170
- * getters, no relation accessors, no model methods — the shape `useAblo`
171
- * reads return.
172
- */
173
- type InferRow<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferRow<S, K>;
174
- type InferModelNames<S extends _SchemaTypes.Schema> = _SchemaTypes.InferModelNames<S>;
175
- }
176
- type Conflict = _Policy.Conflict;
177
- namespace Conflict {
178
- type Kind = _Policy.ConflictKind;
179
- type Operation = _Policy.ConflictOperation;
180
- type Decision = _Policy.ConflictDecision;
181
- type Policy = _Policy.ConflictPolicy;
182
- type Axis = _Policy.ConflictAxis;
183
- }
184
- namespace Commit {
185
- type Wait = import('./resourceTypes.js').CommitWait;
186
- type OperationAction = import('./resourceTypes.js').ModelOperationAction;
187
- type OperationInput = import('./resourceTypes.js').CommitOperationInput;
188
- type CreateOptions = import('./resourceTypes.js').CommitCreateOptions;
189
- type Receipt = import('./resourceTypes.js').CommitReceipt;
190
- type Client = import('./resourceTypes.js').CommitResource;
191
- }
192
- namespace Claim {
193
- type Handle = import('./resourceTypes.js').Claim;
194
- type Held<T = Record<string, unknown>> = import('../transaction/types/streams.js').HeldClaim<T>;
195
- type CreateOptions = import('./resourceTypes.js').ClaimCreateOptions;
196
- type WaitOptions = import('./resourceTypes.js').ClaimWaitOptions;
197
- type Client = import('./resourceTypes.js').ClaimResource;
198
- }
199
- namespace Model {
200
- type Target = import('./resourceTypes.js').ModelTarget;
201
- type Claim = import('./resourceTypes.js').ModelClaim;
202
- type Operations<T, CreateInput = T> = import('./createModelProxy.js').ModelOperations<T, CreateInput>;
203
- type ClaimOptions<T = Record<string, unknown>> = import('./createModelProxy.js').ClaimOptions<T>;
204
- type ClaimParams<T = Record<string, unknown>> = import('./createModelProxy.js').ClaimParams<T>;
205
- type ClaimLookupParams<T = Record<string, unknown>> = import('./createModelProxy.js').ClaimLookupParams<T>;
206
- type ClaimReorderParams<T = Record<string, unknown>> = import('./createModelProxy.js').ClaimReorderParams<T>;
207
- type MutationOptions = import('./resourceTypes.js').ModelMutationOptions;
208
- }
209
- namespace Source {
210
- type Operation = import('../source/index.js').SourceOperation;
211
- type Event = import('../source/index.js').SourceEvent;
212
- type EventForOperationOptions = import('../source/index.js').SourceEventForOperationOptions;
213
- type EventsResult = import('../source/index.js').SourceEventsResult;
214
- type Scope = import('../source/index.js').SourceScope;
215
- type ApiKey = import('../source/index.js').SourceApiKey;
216
- type Options<S extends _SchemaTypes.SchemaRecord = _SchemaTypes.SchemaRecord, TAuth = unknown> = import('../source/index.js').DataSourceOptions<S, TAuth>;
217
- type ModelHandlers<Row, CreateInput, TAuth = unknown> = import('../source/index.js').SourceModelHandlers<Row, CreateInput, TAuth>;
218
- type SignatureVerificationResult = import('../source/index.js').SourceSignatureVerificationResult;
219
- namespace Commit {
220
- type Params<TAuth = unknown> = import('../source/index.js').SourceCommitParams<TAuth>;
221
- type Result<Row = Record<string, unknown>> = import('../source/index.js').SourceCommitResult<Row>;
222
- }
223
- }
224
- namespace Mutator {
225
- type Fn<S extends _SchemaTypes.Schema, TArgs, TResult = void> = _Mutators.MutatorFn<S, TArgs, TResult>;
226
- type Transaction<S extends _SchemaTypes.Schema> = _Tx.Transaction<S>;
227
- type UndoEntry = _Undo.UndoEntry;
228
- type UndoScope<S extends _SchemaTypes.Schema = _SchemaTypes.Schema> = _Undo.UndoScope<S>;
229
- type InverseOp = _Undo.InverseOp;
230
- }
231
- }
@@ -1,149 +0,0 @@
1
- /**
2
- * `Ablo` — the one-call entry point to the sync engine client. It hides the
3
- * internal wiring — the object pool, local database, sync client, WebSocket,
4
- * bootstrap, and offline queue — behind a single function that returns a typed
5
- * client with one property per model in your schema.
6
- *
7
- * Usage:
8
- * import { Ablo } from '@abloatai/ablo';
9
- * import { schema } from './schema';
10
- *
11
- * const sync = Ablo({ schema, apiKey: process.env.ABLO_API_KEY });
12
- *
13
- * const reports = sync.reports.list({ where: { status: 'todo' } });
14
- * await sync.reports.create({ data: { title: 'Fix bug' } });
15
- * await sync.reports.update({
16
- * id: reportId,
17
- * data: { status: 'ready' },
18
- * });
19
- * await sync.reports.delete({ id: reportId });
20
- *
21
- * This module is the composition root and the merge point, and only those.
22
- * `Ablo` is three declarations sharing one name — the factory, the client
23
- * type, and the `Ablo.*` namespace — and TypeScript merges declarations only
24
- * within a single file, so the three have to sit together. Their bodies do
25
- * not: the client's shape is `./abloClient`, the pass over the options bag is
26
- * `./clientPrelude`, and the client this dispatches to is `./reactiveEngine`.
27
- */
28
- import { AbloValidationError } from '../transaction/errors.js';
29
- import { SyncWebSocket } from '../sync/SyncWebSocket.js';
30
- // Value import is cycle-safe: httpClient.js and httpTransport.js take the client
31
- // types from the `options`/`resourceTypes` leaves, never from this module.
32
- import { createAbloHttpClient, } from '../transaction/transport/httpClient.js';
33
- // Both halves of the plugin lifecycle: `resolvePlugins` turns the declared list
34
- // into a surface, `layerPluginSurface` merges that surface onto the built client.
35
- import { layerPluginSurface, resolvePlugins, } from '../transaction/plugin.js';
36
- import { noopLogger } from '../transaction/logger.js';
37
- import { humans } from './humans.js';
38
- import { createCoreClient } from './coreClient.js';
39
- import { buildReactiveEngine } from './reactiveEngine.js';
40
- import { resolveClientPrelude } from './clientPrelude.js';
41
- import { createDefaultMutationExecutor } from './wsMutationExecutor.js';
42
- export function Ablo(options) {
43
- if (options.transport === 'http') {
44
- // Capabilities are declared above transport (ADR 0016): the plugin list
45
- // is checked against the selected transport before anything is built, so
46
- // a duplex-requiring plugin — humans() — on a request-response client
47
- // fails right here, with a typed error naming the plugin, rather than as
48
- // a subscription that never delivers.
49
- const surface = resolvePlugins(options.plugins ?? [], { duplex: false }, {
50
- logger: noopLogger,
51
- options,
52
- });
53
- return layerPluginSurface(createAbloHttpClient(options), surface);
54
- }
55
- // 1. One pass over the options bag settles the credential and its refresh
56
- // resolver, the base URL, the logger, and this participant's identity —
57
- // and fails on a misconfiguration before anything is constructed.
58
- const prelude = resolveClientPrelude(options);
59
- const { internalOptions, authCredentials, logger, url, participantId, kind } = prelude;
60
- // 2. The connection, built here in the composition root — before the plugin
61
- // list resolves, so `PluginContext.transport` carries the instance a
62
- // plugin holds for the client's lifetime. It holds no socket until
63
- // `connect()`, and `deferConnect` keeps even that closed until the store
64
- // has seeded identity and read scope during `ready()` — the late-bound
65
- // values (`kind`, the credential, `syncGroups`, the resume cursor) are
66
- // seeded there, not here. Built only for the reactive path: the core
67
- // client (`plugins: []`) constructs its own feed, and no plugin runs on
68
- // that path to read this one.
69
- const pluginList = options.plugins ?? [humans()];
70
- const transport = pluginList.some((plugin) => plugin.id === 'humans')
71
- ? new SyncWebSocket({
72
- baseUrl: url,
73
- kind,
74
- getAuthToken: authCredentials.getAuthToken,
75
- collaborationEvents: [...(internalOptions.collaborationEvents ?? [])],
76
- syncGroups: [...(internalOptions.syncGroups ?? [])],
77
- deferConnect: true,
78
- })
79
- : null;
80
- // The default mutation executor sends `{ type: 'commit', ... }` over
81
- // that connection; before it opens, sends reject with the diagnosed
82
- // not-ready error and the MutationQueue owns the retry. Caller-supplied
83
- // executors are still honored for advanced cases (test mocks,
84
- // alternative transports).
85
- const executor = internalOptions.mutationExecutor ?? createDefaultMutationExecutor(() => transport);
86
- // Resolve the capability list before anything heavy is constructed
87
- // (ADR 0016). The two configuration gates — a duplicate id, a transport
88
- // mismatch — fire here, while the stack still points at the caller's own
89
- // setup. With no list given, the reactive materialiser is installed:
90
- // today's default client. (Flipping the bare default to the stateless core
91
- // is the mirror-flip step, decided with the published version identity —
92
- // not here.)
93
- const installedPlugins = resolvePlugins(pluginList, { duplex: true }, {
94
- logger,
95
- observability: internalOptions.observability,
96
- // The raw options bag plus the host's resolved values, so plugins
97
- // read configuration without re-deriving identity.
98
- options,
99
- ...(transport ? { transport } : {}),
100
- participant: { id: participantId, kind },
101
- syncGroups: internalOptions.syncGroups ?? [],
102
- });
103
- const humansSurface = installedPlugins.humans;
104
- if (!humansSurface) {
105
- // No materialiser requested. The empty list is the core client — the
106
- // stateless surface plus the live feed, nothing else. A non-empty list
107
- // without humans() has asked for a composition that does not exist yet
108
- // (no other plugin is published), so it fails rather than guessing.
109
- if ((options.plugins ?? []).length === 0) {
110
- return layerPluginSurface(createCoreClient({
111
- options,
112
- baseUrl: url,
113
- participantId,
114
- kind,
115
- syncGroups: internalOptions.syncGroups ?? [],
116
- getAuthToken: authCredentials.getAuthToken,
117
- logger,
118
- observability: internalOptions.observability,
119
- }), installedPlugins);
120
- }
121
- throw new AbloValidationError('Add humans() to the plugins list, pass an empty list for the core client, ' +
122
- 'or leave plugins out to get the default.', { code: 'invalid_options', param: 'plugins' });
123
- }
124
- if (!humansSurface.presence) {
125
- // A foreign plugin is squatting on the reserved 'humans' id — its surface
126
- // is not the one this client is built from.
127
- throw new AbloValidationError("The 'humans' plugin id is reserved for the SDK's own humans() plugin. " +
128
- 'Rename the custom plugin.', { code: 'invalid_options', param: 'plugins' });
129
- }
130
- if (!transport) {
131
- // Unreachable: the humans surface exists only when the list contained
132
- // 'humans', which is exactly the condition the transport was built under.
133
- throw new AbloValidationError('The reactive client was selected but no connection was constructed.', { code: 'invalid_options', param: 'plugins' });
134
- }
135
- // The reactive engine is the humans() capability: everything from here on
136
- // — runtime context, store, streams, model proxies, resources — builds in
137
- // `./reactiveEngine.ts`, fed the prelude plus the plugin's contribution
138
- // (the presence stream). The host owns construction; plugins declare and
139
- // contribute. A plugin surface that hands back a whole-client constructor
140
- // inverts that relationship — tried and rejected (ADR 0016, follow-up 3b).
141
- return layerPluginSurface(buildReactiveEngine({
142
- ...prelude,
143
- options,
144
- executor,
145
- transport,
146
- presence: humansSurface.presence,
147
- createSibling: (siblingOptions) => Ablo(siblingOptions),
148
- }), installedPlugins);
149
- }