@abloatai/ablo 0.36.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (597) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +55 -2014
  3. package/NOTICE +2 -2
  4. package/README.md +45 -63
  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 -114
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -163
  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 +1 -1
  59. package/docs/api-keys.md +7 -6
  60. package/docs/api.md +10 -10
  61. package/docs/client-behavior.md +5 -5
  62. package/docs/coordination.md +52 -62
  63. package/docs/data-sources.md +1 -1
  64. package/docs/examples/agent-human.md +4 -4
  65. package/docs/examples/ai-sdk-tool.md +1 -1
  66. package/docs/examples/existing-python-backend.md +15 -4
  67. package/docs/examples/nextjs.md +27 -6
  68. package/docs/examples/server-agent.md +2 -2
  69. package/docs/how-it-works.md +4 -4
  70. package/docs/identity.md +2 -1
  71. package/docs/integration-guide.md +24 -13
  72. package/docs/internal/README.md +18 -0
  73. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  74. package/docs/internal/agent-orchestration.md +58 -0
  75. package/docs/internal/commit-identifiers.md +91 -0
  76. package/docs/internal/concurrency-open-decisions.md +37 -0
  77. package/docs/internal/data-source-reverse-channel.md +150 -0
  78. package/docs/internal/per-field-conflict-detection.md +165 -0
  79. package/docs/internal/postgres-replication.md +64 -0
  80. package/docs/internal/serializable-schema.md +119 -0
  81. package/docs/internal/structure.md +32 -0
  82. package/docs/mcp.md +2 -2
  83. package/docs/migration.md +3 -3
  84. package/docs/quickstart.md +2 -2
  85. package/docs/react.md +5 -5
  86. package/docs/schema-contract.md +3 -3
  87. package/docs/sessions.md +91 -37
  88. package/examples/README.md +2 -2
  89. package/examples/data-source/README.md +1 -1
  90. package/examples/data-source/ablo-driver.ts +1 -1
  91. package/examples/data-source/customer-server.ts +1 -1
  92. package/examples/data-source/run.ts +1 -1
  93. package/examples/data-source/schema.ts +1 -1
  94. package/examples/quickstart.ts +2 -2
  95. package/llms.txt +8 -8
  96. package/package.json +63 -166
  97. package/bin/ablo.cjs +0 -39
  98. package/dist/BaseSyncedStore.d.ts +0 -843
  99. package/dist/BaseSyncedStore.js +0 -1971
  100. package/dist/Database.d.ts +0 -323
  101. package/dist/Database.js +0 -1502
  102. package/dist/InstanceCache.d.ts +0 -237
  103. package/dist/InstanceCache.js +0 -1166
  104. package/dist/LazyReferenceCollection.d.ts +0 -177
  105. package/dist/LazyReferenceCollection.js +0 -461
  106. package/dist/Model.d.ts +0 -454
  107. package/dist/Model.js +0 -919
  108. package/dist/ModelRegistry.d.ts +0 -225
  109. package/dist/ModelRegistry.js +0 -539
  110. package/dist/NetworkMonitor.d.ts +0 -28
  111. package/dist/NetworkMonitor.js +0 -79
  112. package/dist/RuntimeContext.d.ts +0 -52
  113. package/dist/RuntimeContext.js +0 -80
  114. package/dist/SyncClient.d.ts +0 -541
  115. package/dist/SyncClient.js +0 -2202
  116. package/dist/adapters/alwaysOnline.d.ts +0 -14
  117. package/dist/adapters/alwaysOnline.js +0 -17
  118. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  119. package/dist/adapters/inMemoryStorage.js +0 -110
  120. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  121. package/dist/ai-sdk/coordinatedTool.js +0 -134
  122. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  123. package/dist/ai-sdk/coordinationContext.js +0 -106
  124. package/dist/ai-sdk/index.d.ts +0 -121
  125. package/dist/ai-sdk/index.js +0 -121
  126. package/dist/ai-sdk/wrap.d.ts +0 -65
  127. package/dist/ai-sdk/wrap.js +0 -39
  128. package/dist/auth/index.d.ts +0 -1
  129. package/dist/auth/index.js +0 -8
  130. package/dist/batching/index.d.ts +0 -55
  131. package/dist/batching/index.js +0 -147
  132. package/dist/client/Ablo.d.ts +0 -231
  133. package/dist/client/Ablo.js +0 -160
  134. package/dist/client/abloClient.d.ts +0 -309
  135. package/dist/client/abloClient.js +0 -13
  136. package/dist/client/clientPrelude.d.ts +0 -52
  137. package/dist/client/clientPrelude.js +0 -60
  138. package/dist/client/consoleLogger.d.ts +0 -35
  139. package/dist/client/consoleLogger.js +0 -44
  140. package/dist/client/coreClient.d.ts +0 -60
  141. package/dist/client/coreClient.js +0 -118
  142. package/dist/client/createInternalComponents.d.ts +0 -50
  143. package/dist/client/createInternalComponents.js +0 -98
  144. package/dist/client/createModelProxy.d.ts +0 -248
  145. package/dist/client/createModelProxy.js +0 -884
  146. package/dist/client/humans.d.ts +0 -69
  147. package/dist/client/humans.js +0 -78
  148. package/dist/client/modelRegistration.d.ts +0 -10
  149. package/dist/client/modelRegistration.js +0 -312
  150. package/dist/client/options.d.ts +0 -461
  151. package/dist/client/options.js +0 -7
  152. package/dist/client/reactiveEngine.d.ts +0 -53
  153. package/dist/client/reactiveEngine.js +0 -688
  154. package/dist/client/resourceTypes.d.ts +0 -12
  155. package/dist/client/resourceTypes.js +0 -10
  156. package/dist/client/schemaConfig.d.ts +0 -44
  157. package/dist/client/schemaConfig.js +0 -185
  158. package/dist/client/storeCluster.d.ts +0 -47
  159. package/dist/client/storeCluster.js +0 -118
  160. package/dist/client/storeLifecycle.d.ts +0 -61
  161. package/dist/client/storeLifecycle.js +0 -231
  162. package/dist/client/validateAbloOptions.d.ts +0 -42
  163. package/dist/client/validateAbloOptions.js +0 -43
  164. package/dist/client/wsMutationExecutor.d.ts +0 -27
  165. package/dist/client/wsMutationExecutor.js +0 -72
  166. package/dist/context.d.ts +0 -42
  167. package/dist/context.js +0 -81
  168. package/dist/coordination/ClaimLog.d.ts +0 -26
  169. package/dist/coordination/ClaimLog.js +0 -32
  170. package/dist/coordination/index.d.ts +0 -1
  171. package/dist/coordination/index.js +0 -8
  172. package/dist/core/index.d.ts +0 -33
  173. package/dist/core/index.js +0 -48
  174. package/dist/docs/catalog.d.ts +0 -72
  175. package/dist/docs/catalog.js +0 -230
  176. package/dist/docs/index.d.ts +0 -10
  177. package/dist/docs/index.js +0 -10
  178. package/dist/environment.d.ts +0 -1
  179. package/dist/environment.js +0 -8
  180. package/dist/interfaces/index.d.ts +0 -311
  181. package/dist/interfaces/index.js +0 -9
  182. package/dist/keys/index.d.ts +0 -1
  183. package/dist/keys/index.js +0 -8
  184. package/dist/mutators/RecordingMutation.d.ts +0 -36
  185. package/dist/mutators/RecordingMutation.js +0 -182
  186. package/dist/mutators/Transaction.d.ts +0 -40
  187. package/dist/mutators/Transaction.js +0 -58
  188. package/dist/mutators/UndoManager.d.ts +0 -258
  189. package/dist/mutators/UndoManager.js +0 -658
  190. package/dist/mutators/defineMutators.d.ts +0 -60
  191. package/dist/mutators/defineMutators.js +0 -18
  192. package/dist/mutators/inverseOp.d.ts +0 -126
  193. package/dist/mutators/inverseOp.js +0 -71
  194. package/dist/mutators/mutateActions.d.ts +0 -45
  195. package/dist/mutators/mutateActions.js +0 -105
  196. package/dist/mutators/readerActions.d.ts +0 -33
  197. package/dist/mutators/readerActions.js +0 -57
  198. package/dist/mutators/undoApply.d.ts +0 -51
  199. package/dist/mutators/undoApply.js +0 -117
  200. package/dist/policy/index.d.ts +0 -21
  201. package/dist/policy/index.js +0 -20
  202. package/dist/query/QueryProcessor.d.ts +0 -75
  203. package/dist/query/QueryProcessor.js +0 -255
  204. package/dist/query/client.d.ts +0 -64
  205. package/dist/query/client.js +0 -138
  206. package/dist/query/types.d.ts +0 -85
  207. package/dist/query/types.js +0 -16
  208. package/dist/react/AbloProvider.d.ts +0 -242
  209. package/dist/react/AbloProvider.js +0 -458
  210. package/dist/react/ClientSideSuspense.d.ts +0 -36
  211. package/dist/react/ClientSideSuspense.js +0 -17
  212. package/dist/react/DefaultFallback.d.ts +0 -24
  213. package/dist/react/DefaultFallback.js +0 -43
  214. package/dist/react/context.d.ts +0 -55
  215. package/dist/react/context.js +0 -29
  216. package/dist/react/createAbloReact.d.ts +0 -56
  217. package/dist/react/createAbloReact.js +0 -51
  218. package/dist/react/index.d.ts +0 -62
  219. package/dist/react/index.js +0 -69
  220. package/dist/react/internalContext.d.ts +0 -33
  221. package/dist/react/internalContext.js +0 -3
  222. package/dist/react/useAblo.d.ts +0 -82
  223. package/dist/react/useAblo.js +0 -120
  224. package/dist/react/useCurrentUserId.d.ts +0 -22
  225. package/dist/react/useCurrentUserId.js +0 -34
  226. package/dist/react/useErrorListener.d.ts +0 -20
  227. package/dist/react/useErrorListener.js +0 -38
  228. package/dist/react/useMutationFailureListener.d.ts +0 -26
  229. package/dist/react/useMutationFailureListener.js +0 -38
  230. package/dist/react/useMutators.d.ts +0 -56
  231. package/dist/react/useMutators.js +0 -84
  232. package/dist/react/useReactive.d.ts +0 -35
  233. package/dist/react/useReactive.js +0 -123
  234. package/dist/react/useSyncStatus.d.ts +0 -59
  235. package/dist/react/useSyncStatus.js +0 -76
  236. package/dist/react/useUndoScope.d.ts +0 -34
  237. package/dist/react/useUndoScope.js +0 -81
  238. package/dist/schema/coordination.d.ts +0 -112
  239. package/dist/schema/coordination.js +0 -133
  240. package/dist/schema/ddl.d.ts +0 -97
  241. package/dist/schema/ddl.js +0 -491
  242. package/dist/schema/ddlLock.d.ts +0 -35
  243. package/dist/schema/ddlLock.js +0 -46
  244. package/dist/schema/diff.d.ts +0 -225
  245. package/dist/schema/diff.js +0 -289
  246. package/dist/schema/generate.d.ts +0 -19
  247. package/dist/schema/generate.js +0 -86
  248. package/dist/schema/index.d.ts +0 -42
  249. package/dist/schema/index.js +0 -80
  250. package/dist/schema/queries.d.ts +0 -201
  251. package/dist/schema/queries.js +0 -144
  252. package/dist/schema/select.d.ts +0 -40
  253. package/dist/schema/select.js +0 -90
  254. package/dist/schema/serialize.d.ts +0 -115
  255. package/dist/schema/serialize.js +0 -265
  256. package/dist/schema/sugar.d.ts +0 -109
  257. package/dist/schema/sugar.js +0 -83
  258. package/dist/schema/syncDeltaRow.d.ts +0 -6
  259. package/dist/schema/syncDeltaRow.js +0 -6
  260. package/dist/server/adapter.d.ts +0 -173
  261. package/dist/server/adapter.js +0 -18
  262. package/dist/server/commit.d.ts +0 -107
  263. package/dist/server/commit.js +0 -1
  264. package/dist/server/index.d.ts +0 -14
  265. package/dist/server/index.js +0 -2
  266. package/dist/server/readConfig.d.ts +0 -80
  267. package/dist/server/readConfig.js +0 -8
  268. package/dist/server/storageMode.d.ts +0 -23
  269. package/dist/server/storageMode.js +0 -17
  270. package/dist/source/adapter.d.ts +0 -83
  271. package/dist/source/adapter.js +0 -24
  272. package/dist/source/adapters/drizzle.d.ts +0 -48
  273. package/dist/source/adapters/drizzle.js +0 -219
  274. package/dist/source/adapters/kysely.d.ts +0 -42
  275. package/dist/source/adapters/kysely.js +0 -205
  276. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  277. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  278. package/dist/source/adapters/memory.d.ts +0 -13
  279. package/dist/source/adapters/memory.js +0 -130
  280. package/dist/source/adapters/prisma.d.ts +0 -63
  281. package/dist/source/adapters/prisma.js +0 -202
  282. package/dist/source/conformance.d.ts +0 -37
  283. package/dist/source/conformance.js +0 -215
  284. package/dist/source/connector.d.ts +0 -95
  285. package/dist/source/connector.js +0 -266
  286. package/dist/source/connectorProtocol.d.ts +0 -154
  287. package/dist/source/connectorProtocol.js +0 -163
  288. package/dist/source/contract.d.ts +0 -195
  289. package/dist/source/contract.js +0 -164
  290. package/dist/source/factory.d.ts +0 -92
  291. package/dist/source/factory.js +0 -286
  292. package/dist/source/idempotency.d.ts +0 -61
  293. package/dist/source/idempotency.js +0 -144
  294. package/dist/source/index.d.ts +0 -23
  295. package/dist/source/index.js +0 -30
  296. package/dist/source/migrations.d.ts +0 -21
  297. package/dist/source/migrations.js +0 -103
  298. package/dist/source/next.d.ts +0 -32
  299. package/dist/source/next.js +0 -25
  300. package/dist/source/pushQueue.d.ts +0 -134
  301. package/dist/source/pushQueue.js +0 -256
  302. package/dist/source/signing.d.ts +0 -92
  303. package/dist/source/signing.js +0 -162
  304. package/dist/source/types.d.ts +0 -401
  305. package/dist/source/types.js +0 -59
  306. package/dist/storeContract.d.ts +0 -145
  307. package/dist/storeContract.js +0 -12
  308. package/dist/stores/DatabaseManager.d.ts +0 -107
  309. package/dist/stores/DatabaseManager.js +0 -388
  310. package/dist/stores/ObjectStore.d.ts +0 -115
  311. package/dist/stores/ObjectStore.js +0 -393
  312. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  313. package/dist/stores/ObjectStoreContract.js +0 -1
  314. package/dist/stores/StoreManager.d.ts +0 -114
  315. package/dist/stores/StoreManager.js +0 -304
  316. package/dist/stores/SyncActionStore.d.ts +0 -99
  317. package/dist/stores/SyncActionStore.js +0 -506
  318. package/dist/stores/openIDBWithTimeout.d.ts +0 -65
  319. package/dist/stores/openIDBWithTimeout.js +0 -153
  320. package/dist/stores/syncAction.d.ts +0 -26
  321. package/dist/stores/syncAction.js +0 -16
  322. package/dist/surface.d.ts +0 -36
  323. package/dist/surface.js +0 -75
  324. package/dist/sync/BootstrapFetcher.d.ts +0 -284
  325. package/dist/sync/BootstrapFetcher.js +0 -964
  326. package/dist/sync/ConnectionManager.d.ts +0 -8
  327. package/dist/sync/ConnectionManager.js +0 -8
  328. package/dist/sync/OnDemandLoader.d.ts +0 -231
  329. package/dist/sync/OnDemandLoader.js +0 -743
  330. package/dist/sync/SubscriptionManager.d.ts +0 -159
  331. package/dist/sync/SubscriptionManager.js +0 -243
  332. package/dist/sync/SyncWebSocket.d.ts +0 -173
  333. package/dist/sync/SyncWebSocket.js +0 -438
  334. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  335. package/dist/sync/awaitClaimGrant.js +0 -6
  336. package/dist/sync/bootstrapApply.d.ts +0 -73
  337. package/dist/sync/bootstrapApply.js +0 -73
  338. package/dist/sync/commitFrames.d.ts +0 -8
  339. package/dist/sync/commitFrames.js +0 -8
  340. package/dist/sync/contextPorts.d.ts +0 -18
  341. package/dist/sync/contextPorts.js +0 -31
  342. package/dist/sync/createClaimStream.d.ts +0 -7
  343. package/dist/sync/createClaimStream.js +0 -7
  344. package/dist/sync/createPresenceStream.d.ts +0 -69
  345. package/dist/sync/createPresenceStream.js +0 -200
  346. package/dist/sync/createSnapshot.d.ts +0 -29
  347. package/dist/sync/createSnapshot.js +0 -118
  348. package/dist/sync/credentialLifecycle.d.ts +0 -7
  349. package/dist/sync/credentialLifecycle.js +0 -7
  350. package/dist/sync/deltaPipeline.d.ts +0 -114
  351. package/dist/sync/deltaPipeline.js +0 -278
  352. package/dist/sync/groupChange.d.ts +0 -116
  353. package/dist/sync/groupChange.js +0 -244
  354. package/dist/sync/participants.d.ts +0 -132
  355. package/dist/sync/participants.js +0 -346
  356. package/dist/sync/persistedPrefix.d.ts +0 -12
  357. package/dist/sync/persistedPrefix.js +0 -22
  358. package/dist/sync/schemaDrift.d.ts +0 -55
  359. package/dist/sync/schemaDrift.js +0 -53
  360. package/dist/sync/schemas.d.ts +0 -71
  361. package/dist/sync/schemas.js +0 -94
  362. package/dist/sync/syncCursor.d.ts +0 -40
  363. package/dist/sync/syncCursor.js +0 -55
  364. package/dist/sync/syncPlan.d.ts +0 -54
  365. package/dist/sync/syncPlan.js +0 -50
  366. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  367. package/dist/sync/wsFrameHandlers.js +0 -8
  368. package/dist/syncLog/contract.d.ts +0 -20
  369. package/dist/syncLog/contract.js +0 -19
  370. package/dist/syncLog/index.d.ts +0 -1
  371. package/dist/syncLog/index.js +0 -1
  372. package/dist/transaction/ablo.d.ts +0 -88
  373. package/dist/transaction/ablo.js +0 -33
  374. package/dist/transaction/auth/apiKey.d.ts +0 -152
  375. package/dist/transaction/auth/apiKey.js +0 -419
  376. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  377. package/dist/transaction/auth/bootstrapScope.js +0 -1
  378. package/dist/transaction/auth/capability.d.ts +0 -212
  379. package/dist/transaction/auth/capability.js +0 -224
  380. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  381. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  382. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  383. package/dist/transaction/auth/credentialPolicy.js +0 -125
  384. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  385. package/dist/transaction/auth/credentialSource.js +0 -55
  386. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  387. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  388. package/dist/transaction/auth/identity.d.ts +0 -55
  389. package/dist/transaction/auth/identity.js +0 -210
  390. package/dist/transaction/auth/index.d.ts +0 -162
  391. package/dist/transaction/auth/index.js +0 -304
  392. package/dist/transaction/auth/schemas.d.ts +0 -59
  393. package/dist/transaction/auth/schemas.js +0 -85
  394. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  395. package/dist/transaction/auth/sessionMint.js +0 -85
  396. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -56
  397. package/dist/transaction/coordination/awaitClaimGrant.js +0 -124
  398. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -84
  399. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -108
  400. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  401. package/dist/transaction/coordination/claimMeta.js +0 -52
  402. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  403. package/dist/transaction/coordination/createClaimStream.js +0 -475
  404. package/dist/transaction/coordination/events.d.ts +0 -74
  405. package/dist/transaction/coordination/events.js +0 -7
  406. package/dist/transaction/coordination/index.d.ts +0 -19
  407. package/dist/transaction/coordination/index.js +0 -45
  408. package/dist/transaction/coordination/locator.d.ts +0 -104
  409. package/dist/transaction/coordination/locator.js +0 -102
  410. package/dist/transaction/coordination/schema.d.ts +0 -1536
  411. package/dist/transaction/coordination/schema.js +0 -1177
  412. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  413. package/dist/transaction/coordination/targetConflict.js +0 -107
  414. package/dist/transaction/coordination/trace.d.ts +0 -78
  415. package/dist/transaction/coordination/trace.js +0 -138
  416. package/dist/transaction/durableWrites.d.ts +0 -62
  417. package/dist/transaction/durableWrites.js +0 -71
  418. package/dist/transaction/environment.d.ts +0 -105
  419. package/dist/transaction/environment.js +0 -108
  420. package/dist/transaction/errorCodes.d.ts +0 -403
  421. package/dist/transaction/errorCodes.js +0 -484
  422. package/dist/transaction/errors.d.ts +0 -428
  423. package/dist/transaction/errors.js +0 -686
  424. package/dist/transaction/footprint.d.ts +0 -111
  425. package/dist/transaction/footprint.js +0 -0
  426. package/dist/transaction/index.d.ts +0 -20
  427. package/dist/transaction/index.js +0 -20
  428. package/dist/transaction/keys/index.d.ts +0 -87
  429. package/dist/transaction/keys/index.js +0 -207
  430. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  431. package/dist/transaction/log/syncDeltaRow.js +0 -95
  432. package/dist/transaction/logPosition.d.ts +0 -97
  433. package/dist/transaction/logPosition.js +0 -125
  434. package/dist/transaction/logger.d.ts +0 -16
  435. package/dist/transaction/logger.js +0 -7
  436. package/dist/transaction/observability.d.ts +0 -53
  437. package/dist/transaction/observability.js +0 -19
  438. package/dist/transaction/persistence.d.ts +0 -12
  439. package/dist/transaction/persistence.js +0 -11
  440. package/dist/transaction/plugin.d.ts +0 -285
  441. package/dist/transaction/plugin.js +0 -106
  442. package/dist/transaction/policy/types.d.ts +0 -217
  443. package/dist/transaction/policy/types.js +0 -126
  444. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  445. package/dist/transaction/resources/functionalUpdate.js +0 -87
  446. package/dist/transaction/resources/httpResources.d.ts +0 -321
  447. package/dist/transaction/resources/httpResources.js +0 -7
  448. package/dist/transaction/resources/modelOperations.d.ts +0 -427
  449. package/dist/transaction/resources/modelOperations.js +0 -12
  450. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  451. package/dist/transaction/resources/mutationOptions.js +0 -9
  452. package/dist/transaction/resources/where.d.ts +0 -101
  453. package/dist/transaction/resources/where.js +0 -115
  454. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  455. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  456. package/dist/transaction/schema/field.d.ts +0 -120
  457. package/dist/transaction/schema/field.js +0 -265
  458. package/dist/transaction/schema/fieldRef.d.ts +0 -38
  459. package/dist/transaction/schema/fieldRef.js +0 -11
  460. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  461. package/dist/transaction/schema/loadStrategy.js +0 -46
  462. package/dist/transaction/schema/model.d.ts +0 -379
  463. package/dist/transaction/schema/model.js +0 -123
  464. package/dist/transaction/schema/openapi.d.ts +0 -58
  465. package/dist/transaction/schema/openapi.js +0 -501
  466. package/dist/transaction/schema/relation.d.ts +0 -204
  467. package/dist/transaction/schema/relation.js +0 -104
  468. package/dist/transaction/schema/residency.d.ts +0 -29
  469. package/dist/transaction/schema/residency.js +0 -25
  470. package/dist/transaction/schema/roles.d.ts +0 -249
  471. package/dist/transaction/schema/roles.js +0 -230
  472. package/dist/transaction/schema/schema.d.ts +0 -351
  473. package/dist/transaction/schema/schema.js +0 -325
  474. package/dist/transaction/schema/tenancy.d.ts +0 -139
  475. package/dist/transaction/schema/tenancy.js +0 -190
  476. package/dist/transaction/transactionLayer.d.ts +0 -82
  477. package/dist/transaction/transactionLayer.js +0 -24
  478. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  479. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  480. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  481. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  482. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  483. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  484. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  485. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  486. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  487. package/dist/transaction/transport/commitFrames.js +0 -134
  488. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  489. package/dist/transaction/transport/connectionManager.js +0 -673
  490. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  491. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  492. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  493. package/dist/transaction/transport/heartbeat.js +0 -93
  494. package/dist/transaction/transport/httpClient.d.ts +0 -131
  495. package/dist/transaction/transport/httpClient.js +0 -146
  496. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  497. package/dist/transaction/transport/httpOptions.js +0 -12
  498. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  499. package/dist/transaction/transport/httpTransport.js +0 -1388
  500. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  501. package/dist/transaction/transport/networkProbe.js +0 -207
  502. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  503. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  504. package/dist/transaction/transport/wsTransport.d.ts +0 -574
  505. package/dist/transaction/transport/wsTransport.js +0 -1023
  506. package/dist/transaction/types/assertExact.d.ts +0 -17
  507. package/dist/transaction/types/assertExact.js +0 -1
  508. package/dist/transaction/types/global.d.ts +0 -107
  509. package/dist/transaction/types/global.js +0 -40
  510. package/dist/transaction/types/index.d.ts +0 -205
  511. package/dist/transaction/types/index.js +0 -56
  512. package/dist/transaction/types/modelData.d.ts +0 -10
  513. package/dist/transaction/types/modelData.js +0 -9
  514. package/dist/transaction/types/participant.d.ts +0 -20
  515. package/dist/transaction/types/participant.js +0 -10
  516. package/dist/transaction/types/streams.d.ts +0 -550
  517. package/dist/transaction/types/streams.js +0 -11
  518. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  519. package/dist/transaction/utils/asyncIterator.js +0 -135
  520. package/dist/transaction/utils/duration.d.ts +0 -50
  521. package/dist/transaction/utils/duration.js +0 -77
  522. package/dist/transaction/utils/json.d.ts +0 -57
  523. package/dist/transaction/utils/json.js +0 -276
  524. package/dist/transaction/wire/accountResponses.d.ts +0 -420
  525. package/dist/transaction/wire/accountResponses.js +0 -290
  526. package/dist/transaction/wire/auth.d.ts +0 -56
  527. package/dist/transaction/wire/auth.js +0 -63
  528. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  529. package/dist/transaction/wire/bootstrapReason.js +0 -8
  530. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  531. package/dist/transaction/wire/claimEvent.js +0 -73
  532. package/dist/transaction/wire/claims.d.ts +0 -530
  533. package/dist/transaction/wire/claims.js +0 -327
  534. package/dist/transaction/wire/commit.d.ts +0 -603
  535. package/dist/transaction/wire/commit.js +0 -321
  536. package/dist/transaction/wire/delta.d.ts +0 -250
  537. package/dist/transaction/wire/delta.js +0 -147
  538. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  539. package/dist/transaction/wire/errorEnvelope.js +0 -123
  540. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  541. package/dist/transaction/wire/feedCursor.js +0 -82
  542. package/dist/transaction/wire/feedEvent.d.ts +0 -204
  543. package/dist/transaction/wire/feedEvent.js +0 -65
  544. package/dist/transaction/wire/frames.d.ts +0 -194
  545. package/dist/transaction/wire/frames.js +0 -50
  546. package/dist/transaction/wire/inboundFrames.d.ts +0 -562
  547. package/dist/transaction/wire/inboundFrames.js +0 -116
  548. package/dist/transaction/wire/index.d.ts +0 -54
  549. package/dist/transaction/wire/index.js +0 -83
  550. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  551. package/dist/transaction/wire/listEnvelope.js +0 -42
  552. package/dist/transaction/wire/modelMutations.d.ts +0 -31
  553. package/dist/transaction/wire/modelMutations.js +0 -52
  554. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  555. package/dist/transaction/wire/modelResponses.js +0 -43
  556. package/dist/transaction/wire/modelShape.d.ts +0 -78
  557. package/dist/transaction/wire/modelShape.js +0 -74
  558. package/dist/transaction/wire/protocol.d.ts +0 -38
  559. package/dist/transaction/wire/protocol.js +0 -38
  560. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  561. package/dist/transaction/wire/protocolVersion.js +0 -83
  562. package/dist/transactions/mutations/MutationQueue.d.ts +0 -661
  563. package/dist/transactions/mutations/MutationQueue.js +0 -2807
  564. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  565. package/dist/transactions/mutations/MutationStore.js +0 -53
  566. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  567. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  568. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  569. package/dist/transactions/mutations/coalesceRules.js +0 -140
  570. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  571. package/dist/transactions/mutations/commitLatency.js +0 -130
  572. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  573. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  574. package/dist/transactions/mutations/commitPayload.d.ts +0 -165
  575. package/dist/transactions/mutations/commitPayload.js +0 -152
  576. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -63
  577. package/dist/transactions/mutations/deltaConfirmation.js +0 -235
  578. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  579. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  580. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  581. package/dist/transactions/mutations/optimisticApply.js +0 -65
  582. package/dist/transactions/mutations/replayValidation.d.ts +0 -187
  583. package/dist/transactions/mutations/replayValidation.js +0 -164
  584. package/dist/utils/mobxSetup.d.ts +0 -53
  585. package/dist/utils/mobxSetup.js +0 -330
  586. package/dist/views/QueryView.d.ts +0 -79
  587. package/dist/views/QueryView.js +0 -218
  588. package/dist/views/ViewRegistry.d.ts +0 -20
  589. package/dist/views/ViewRegistry.js +0 -55
  590. package/dist/views/incrementalView.d.ts +0 -45
  591. package/dist/views/incrementalView.js +0 -69
  592. package/dist/webhooks/events.d.ts +0 -43
  593. package/dist/webhooks/events.js +0 -42
  594. package/dist/webhooks/index.d.ts +0 -8
  595. package/dist/webhooks/index.js +0 -8
  596. package/dist/wire/index.d.ts +0 -1
  597. package/dist/wire/index.js +0 -8
@@ -1,71 +0,0 @@
1
- /**
2
- * Zod validation schemas for sync engine server responses.
3
- *
4
- * Validates data at the fetch boundary before it enters the sync engine.
5
- * Unknown keys are kept, so a server that adds a field does not break a client
6
- * that predates it.
7
- */
8
- import { z } from 'zod';
9
- import type { RuntimeContext } from "../RuntimeContext.js";
10
- /**
11
- * A delta as it arrives in a bootstrap payload.
12
- *
13
- * The bootstrap routes return the same rows the broadcast path does, so the
14
- * fields are taken from {@link syncDeltaWireCoreSchema} rather than restated
15
- * here — a delta is one shape, and this is the reader for it, not a second
16
- * definition of it. Unknown keys are kept, because the server sends its own
17
- * wider projection (attribution, `projectId`) that later stages may read.
18
- */
19
- export declare const ServerDeltaSchema: z.ZodObject<{
20
- id: z.ZodNumber;
21
- data: z.ZodNullable<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
22
- actionType: z.ZodEnum<{
23
- I: "I";
24
- U: "U";
25
- D: "D";
26
- A: "A";
27
- V: "V";
28
- C: "C";
29
- G: "G";
30
- S: "S";
31
- }>;
32
- modelName: z.ZodString;
33
- modelId: z.ZodString;
34
- }, z.core.$loose>;
35
- export type ValidatedServerDelta = z.infer<typeof ServerDeltaSchema>;
36
- export declare const BootstrapResponseSchema: z.ZodObject<{
37
- type: z.ZodEnum<{
38
- full: "full";
39
- partial: "partial";
40
- }>;
41
- lastSyncId: z.ZodNumber;
42
- models: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodUnion<readonly [z.ZodArray<z.ZodUnknown>, z.ZodString, z.ZodNull]>, z.ZodTransform<unknown[], string | unknown[] | null>>>>;
43
- deltas: z.ZodOptional<z.ZodArray<z.ZodObject<{
44
- id: z.ZodNumber;
45
- data: z.ZodNullable<z.ZodUnion<readonly [z.ZodRecord<z.ZodString, z.ZodUnknown>, z.ZodString]>>;
46
- actionType: z.ZodEnum<{
47
- I: "I";
48
- U: "U";
49
- D: "D";
50
- A: "A";
51
- V: "V";
52
- C: "C";
53
- G: "G";
54
- S: "S";
55
- }>;
56
- modelName: z.ZodString;
57
- modelId: z.ZodString;
58
- }, z.core.$loose>>>;
59
- deltaCount: z.ZodOptional<z.ZodNumber>;
60
- failedModels: z.ZodOptional<z.ZodArray<z.ZodString>>;
61
- timestamp: z.ZodDefault<z.ZodNumber>;
62
- schemaHash: z.ZodOptional<z.ZodString>;
63
- nextCursor: z.ZodOptional<z.ZodString>;
64
- }, z.core.$loose>;
65
- export type ValidatedBootstrapResponse = z.infer<typeof BootstrapResponseSchema>;
66
- /**
67
- * Validates a raw bootstrap response from the server and returns the typed
68
- * result. On failure it records a diagnostic breadcrumb and throws an
69
- * {@link AbloValidationError} describing which fields were invalid.
70
- */
71
- export declare function parseBootstrapResponse(raw: unknown, runtime?: RuntimeContext): ValidatedBootstrapResponse;
@@ -1,94 +0,0 @@
1
- /**
2
- * Zod validation schemas for sync engine server responses.
3
- *
4
- * Validates data at the fetch boundary before it enters the sync engine.
5
- * Unknown keys are kept, so a server that adds a field does not break a client
6
- * that predates it.
7
- */
8
- import { z } from 'zod';
9
- import { globalRuntime } from "../context.js";
10
- import { AbloValidationError } from "../transaction/errors.js";
11
- import { syncDeltaWireCoreSchema } from '../transaction/wire/delta.js';
12
- // ─── Server Delta Schema ─────────────────────────────────────────────────────
13
- /**
14
- * A delta as it arrives in a bootstrap payload.
15
- *
16
- * The bootstrap routes return the same rows the broadcast path does, so the
17
- * fields are taken from {@link syncDeltaWireCoreSchema} rather than restated
18
- * here — a delta is one shape, and this is the reader for it, not a second
19
- * definition of it. Unknown keys are kept, because the server sends its own
20
- * wider projection (attribution, `projectId`) that later stages may read.
21
- */
22
- export const ServerDeltaSchema = syncDeltaWireCoreSchema
23
- .pick({
24
- id: true,
25
- actionType: true,
26
- modelName: true,
27
- modelId: true,
28
- data: true,
29
- })
30
- .loose();
31
- // ─── Model Value Schema ─────────────────────────────────────────────────────
32
- // A model's values can arrive in more than one shape depending on how the
33
- // server serialized them:
34
- // - Array: an already-parsed JSON array (the common case)
35
- // - String: a JSON array still encoded as a string, which must be parsed
36
- // - null: no matching rows
37
- // This schema normalizes every variant into an array before downstream use.
38
- const ModelValueSchema = z
39
- .union([z.array(z.unknown()), z.string(), z.null()])
40
- .transform((val) => {
41
- if (val === null)
42
- return [];
43
- if (typeof val === 'string') {
44
- try {
45
- const parsed = JSON.parse(val);
46
- return Array.isArray(parsed) ? parsed : [];
47
- }
48
- catch {
49
- return [];
50
- }
51
- }
52
- return val;
53
- });
54
- // ─── Bootstrap Response Schema ───────────────────────────────────────────────
55
- export const BootstrapResponseSchema = z
56
- .object({
57
- type: z.enum(['full', 'partial']),
58
- lastSyncId: z.number(),
59
- models: z.record(z.string(), ModelValueSchema).optional(),
60
- deltas: z.array(ServerDeltaSchema).optional(),
61
- deltaCount: z.number().optional(),
62
- failedModels: z.array(z.string()).optional(),
63
- timestamp: z.number().default(() => Date.now()),
64
- // The server's active schema hash, used to detect schema drift. Optional:
65
- // absent when the server predates this field or the tenant has never
66
- // pushed a schema.
67
- schemaHash: z.string().optional(),
68
- // Present when a paged single-model request stopped at its row limit
69
- // with rows remaining: pass it back as the next page's cursor. Absent
70
- // on the final page, on unpaged responses, and from older servers.
71
- nextCursor: z.string().optional(),
72
- })
73
- .loose();
74
- // ─── Parse Helpers ───────────────────────────────────────────────────────────
75
- /**
76
- * Validates a raw bootstrap response from the server and returns the typed
77
- * result. On failure it records a diagnostic breadcrumb and throws an
78
- * {@link AbloValidationError} describing which fields were invalid.
79
- */
80
- export function parseBootstrapResponse(raw, runtime = globalRuntime) {
81
- const result = BootstrapResponseSchema.safeParse(raw);
82
- if (!result.success) {
83
- const issues = result.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`).join('; ');
84
- runtime.observability.breadcrumb('Bootstrap response validation failed', 'sync.bootstrap', 'error', {
85
- issues,
86
- rawType: typeof raw,
87
- rawKeys: raw && typeof raw === 'object' ? Object.keys(raw).join(',') : 'n/a',
88
- });
89
- throw new AbloValidationError(`Invalid bootstrap response: ${issues}`, {
90
- code: 'bootstrap_response_schema_invalid',
91
- });
92
- }
93
- return result.data;
94
- }
@@ -1,40 +0,0 @@
1
- /**
2
- * Holds the resume state of one WebSocket sync session: the `lastSyncId`
3
- * watermark, which marks the highest delta the client has seen, and an opaque
4
- * server cursor used for incremental sync. The transport carries both across
5
- * reconnects so the session can resume where it left off.
6
- *
7
- * The watermark advances under a strict rule — it moves forward only on an
8
- * acknowledgement that is gated on durable persistence — which the transport
9
- * enforces at its acknowledgement and delta-handling call sites.
10
- */
11
- export declare class SyncCursor {
12
- lastSyncId: number;
13
- syncCursor: string | null;
14
- constructor(lastSyncId: number);
15
- /**
16
- * Advances the watermark in response to an acknowledgement. This becomes the
17
- * value the next incremental-sync request and the connect handshake send, and
18
- * the value {@link SyncCursor.getLastSyncId} reports when persisting on a
19
- * clean shutdown. The move is monotonic: a stale, lower acknowledgement never
20
- * pulls the watermark backward.
21
- */
22
- ackAdvance(syncId: number): void;
23
- /**
24
- * Sets the watermark outright, used when restoring persisted state.
25
- */
26
- setLastSyncId(syncId: number): void;
27
- /**
28
- * Sets the opaque server cursor used for incremental sync.
29
- */
30
- setSyncCursor(cursor: string | null): void;
31
- /**
32
- * Returns the current opaque server cursor, or null if none is set.
33
- */
34
- getSyncCursor(): string | null;
35
- /**
36
- * Returns the highest delta id seen this session, for persistence on a clean
37
- * shutdown.
38
- */
39
- getLastSyncId(): number;
40
- }
@@ -1,55 +0,0 @@
1
- /**
2
- * Holds the resume state of one WebSocket sync session: the `lastSyncId`
3
- * watermark, which marks the highest delta the client has seen, and an opaque
4
- * server cursor used for incremental sync. The transport carries both across
5
- * reconnects so the session can resume where it left off.
6
- *
7
- * The watermark advances under a strict rule — it moves forward only on an
8
- * acknowledgement that is gated on durable persistence — which the transport
9
- * enforces at its acknowledgement and delta-handling call sites.
10
- */
11
- export class SyncCursor {
12
- lastSyncId;
13
- syncCursor;
14
- constructor(lastSyncId) {
15
- this.lastSyncId = lastSyncId;
16
- this.syncCursor = null;
17
- }
18
- /**
19
- * Advances the watermark in response to an acknowledgement. This becomes the
20
- * value the next incremental-sync request and the connect handshake send, and
21
- * the value {@link SyncCursor.getLastSyncId} reports when persisting on a
22
- * clean shutdown. The move is monotonic: a stale, lower acknowledgement never
23
- * pulls the watermark backward.
24
- */
25
- ackAdvance(syncId) {
26
- if (syncId > this.lastSyncId) {
27
- this.lastSyncId = syncId;
28
- }
29
- }
30
- /**
31
- * Sets the watermark outright, used when restoring persisted state.
32
- */
33
- setLastSyncId(syncId) {
34
- this.lastSyncId = syncId;
35
- }
36
- /**
37
- * Sets the opaque server cursor used for incremental sync.
38
- */
39
- setSyncCursor(cursor) {
40
- this.syncCursor = cursor;
41
- }
42
- /**
43
- * Returns the current opaque server cursor, or null if none is set.
44
- */
45
- getSyncCursor() {
46
- return this.syncCursor;
47
- }
48
- /**
49
- * Returns the highest delta id seen this session, for persistence on a clean
50
- * shutdown.
51
- */
52
- getLastSyncId() {
53
- return this.lastSyncId || 0;
54
- }
55
- }
@@ -1,54 +0,0 @@
1
- /**
2
- * Derives a client's sync plan from its {@link Schema}. Walking the schema's
3
- * models and relations, it produces two declarative arrays consumed when the
4
- * store is constructed: the foreign-key indexes to register on the in-memory
5
- * object pool, and the enrichment rules that attach related parents to
6
- * incoming rows. See {@link deriveSyncPlanFromSchema}.
7
- */
8
- import type { Schema } from '../transaction/schema/schema.js';
9
- /** A foreign-key index to register on the in-memory object pool when the store is constructed. */
10
- export interface ForeignKeyIndexSpec {
11
- /**
12
- * The name of the child model, where the foreign-key field lives, and the
13
- * name the object pool indexes by. Use the wire type-name casing (for
14
- * example `'Block'`, not `'block'`), since that is the value
15
- * stamped onto reconstructed models and the key the pool looks up.
16
- */
17
- readonly modelName: string;
18
- /** The foreign-key field name on the child model, for example `'sectionId'`. */
19
- readonly fieldName: string;
20
- }
21
- /**
22
- * A declarative rule for enriching an incoming row with its related parent.
23
- *
24
- * When a delta for `modelName` arrives and its row has been constructed, the
25
- * store reads the row's `foreignKey` value, looks up the matching parent in
26
- * the object pool, and attaches it under `relationKey`. Enrichment is
27
- * best-effort: if the parent is not in the pool yet — for example, it arrives
28
- * later in the same bootstrap batch — the step is skipped without error.
29
- */
30
- export interface EnrichmentPlanEntry {
31
- /** The child model whose incoming deltas should be enriched. */
32
- readonly modelName: string;
33
- /** The foreign-key field on the child that points at the parent's id. */
34
- readonly foreignKey: string;
35
- /** The property name under which to attach the parent model. */
36
- readonly relationKey: string;
37
- }
38
- /**
39
- * Walks a schema and derives the two sync-plan arrays used when the store is
40
- * constructed: the foreign-key indexes to register on the object pool and the
41
- * enrichment plan. See {@link ForeignKeyIndexSpec} and
42
- * {@link EnrichmentPlanEntry}.
43
- *
44
- * Both are drawn from each `belongsTo` relation that sets `options.index` or
45
- * `options.enrich`; relations without those options are skipped. Enabling them
46
- * is opt-in, so adding a `belongsTo` relation never silently changes how deltas
47
- * apply or how lookups resolve. A `hasMany` or `hasOne` relation registers its
48
- * index on the target model, since that is where the foreign key lives. The
49
- * function has no side effects and is called once at construction.
50
- */
51
- export declare function deriveSyncPlanFromSchema(schema: Schema): {
52
- enrichmentPlan: EnrichmentPlanEntry[];
53
- foreignKeyIndexes: ForeignKeyIndexSpec[];
54
- };
@@ -1,50 +0,0 @@
1
- /**
2
- * Derives a client's sync plan from its {@link Schema}. Walking the schema's
3
- * models and relations, it produces two declarative arrays consumed when the
4
- * store is constructed: the foreign-key indexes to register on the in-memory
5
- * object pool, and the enrichment rules that attach related parents to
6
- * incoming rows. See {@link deriveSyncPlanFromSchema}.
7
- */
8
- /**
9
- * Walks a schema and derives the two sync-plan arrays used when the store is
10
- * constructed: the foreign-key indexes to register on the object pool and the
11
- * enrichment plan. See {@link ForeignKeyIndexSpec} and
12
- * {@link EnrichmentPlanEntry}.
13
- *
14
- * Both are drawn from each `belongsTo` relation that sets `options.index` or
15
- * `options.enrich`; relations without those options are skipped. Enabling them
16
- * is opt-in, so adding a `belongsTo` relation never silently changes how deltas
17
- * apply or how lookups resolve. A `hasMany` or `hasOne` relation registers its
18
- * index on the target model, since that is where the foreign key lives. The
19
- * function has no side effects and is called once at construction.
20
- */
21
- export function deriveSyncPlanFromSchema(schema) {
22
- const enrichmentPlan = [];
23
- const foreignKeyIndexes = [];
24
- for (const [modelName, def] of Object.entries(schema.models)) {
25
- const typename = def.typename ?? modelName;
26
- for (const [relationKey, rel] of Object.entries(def.relations)) {
27
- if (rel.type === 'belongsTo') {
28
- if (rel.options?.index) {
29
- foreignKeyIndexes.push({ modelName: typename, fieldName: rel.foreignKey });
30
- }
31
- if (rel.options?.enrich) {
32
- enrichmentPlan.push({
33
- modelName: typename,
34
- foreignKey: rel.foreignKey,
35
- relationKey,
36
- });
37
- }
38
- }
39
- else if (rel.type === 'hasMany' || rel.type === 'hasOne') {
40
- // For hasMany and hasOne, the foreign key lives on the target model,
41
- // not the current one, so register the index on the target. Its wire
42
- // type name is resolved from the schema here.
43
- const targetDef = schema.models[rel.target];
44
- const targetTypename = targetDef?.typename ?? rel.target;
45
- foreignKeyIndexes.push({ modelName: targetTypename, fieldName: rel.foreignKey });
46
- }
47
- }
48
- }
49
- return { enrichmentPlan, foreignKeyIndexes };
50
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Moved to the settlement core with the duplex transport (ADR 0016): the
3
- * inbound frame dispatch is the receiving half of the wire protocol, and the
4
- * handlers already worked against the minimal `WsSession` port rather than
5
- * the transport object. This path re-exports it so existing importers stay
6
- * unchanged.
7
- */
8
- export { isRecord, readWsInboundFrame, wsFrameHandlers, dispatchWsFrame, type PendingCommit, type PendingClaim, type PendingSubscription, type WsInboundFrame, type WsSession, type WsFrameHandler, } from '../transaction/transport/wsFrameHandlers.js';
@@ -1,8 +0,0 @@
1
- /**
2
- * Moved to the settlement core with the duplex transport (ADR 0016): the
3
- * inbound frame dispatch is the receiving half of the wire protocol, and the
4
- * handlers already worked against the minimal `WsSession` port rather than
5
- * the transport object. This path re-exports it so existing importers stay
6
- * unchanged.
7
- */
8
- export { isRecord, readWsInboundFrame, wsFrameHandlers, dispatchWsFrame, } from '../transaction/transport/wsFrameHandlers.js';
@@ -1,20 +0,0 @@
1
- /** Canonical sync-log identity and position contracts shared by client/server. */
2
- import { z } from 'zod';
3
- export declare const deltaPositionSchema: z.ZodNumber;
4
- export type DeltaPosition = z.infer<typeof deltaPositionSchema>;
5
- export declare const clientMutationIdSchema: z.ZodString;
6
- export type ClientMutationId = z.infer<typeof clientMutationIdSchema>;
7
- export declare const sourceCorrelationIdSchema: z.ZodString;
8
- export type SourceCorrelationId = z.infer<typeof sourceCorrelationIdSchema>;
9
- export declare const sourceChangeIdSchema: z.ZodString;
10
- export type SourceChangeId = z.infer<typeof sourceChangeIdSchema>;
11
- export declare const replicationLsnSchema: z.ZodString;
12
- export type ReplicationLSN = z.infer<typeof replicationLsnSchema>;
13
- export declare const commitDispatchMarkerSchema: z.ZodObject<{
14
- kind: z.ZodLiteral<"sync_deltas">;
15
- organizationId: z.ZodString;
16
- environment: z.ZodString;
17
- firstSyncId: z.ZodNumber;
18
- lastSyncId: z.ZodNumber;
19
- }, z.core.$strict>;
20
- export type CommitDispatchMarker = z.infer<typeof commitDispatchMarkerSchema>;
@@ -1,19 +0,0 @@
1
- /** Canonical sync-log identity and position contracts shared by client/server. */
2
- import { z } from 'zod';
3
- import { environmentSchema } from '../environment.js';
4
- export const deltaPositionSchema = z.number().int().nonnegative().safe();
5
- export const clientMutationIdSchema = z.string().min(1).max(255);
6
- export const sourceCorrelationIdSchema = z.string().min(1).max(255);
7
- export const sourceChangeIdSchema = z.string().min(1).max(512);
8
- export const replicationLsnSchema = z.string().regex(/^[0-9A-Fa-f]+\/[0-9A-Fa-f]+$/);
9
- export const commitDispatchMarkerSchema = z.strictObject({
10
- kind: z.literal('sync_deltas'),
11
- organizationId: z.string().min(1),
12
- environment: environmentSchema,
13
- firstSyncId: deltaPositionSchema,
14
- lastSyncId: deltaPositionSchema,
15
- }).superRefine((value, ctx) => {
16
- if (value.firstSyncId <= 0 || value.lastSyncId < value.firstSyncId) {
17
- ctx.addIssue({ code: 'custom', message: 'invalid delta position range' });
18
- }
19
- });
@@ -1 +0,0 @@
1
- export * from './contract.js';
@@ -1 +0,0 @@
1
- export * from './contract.js';
@@ -1,88 +0,0 @@
1
- /**
2
- * `Ablo` — the entry point to the coordination layer.
3
- *
4
- * The factory constructs the stateless client: typed model resources, commits,
5
- * claims, and session minting over request/response HTTP. It holds no socket,
6
- * no store, and no local copy of anything — the bearer credential is the
7
- * identity and the server resolves it on every request. This is the client a
8
- * server-side actor installs: an agent, a worker, a cron job, a route handler.
9
- *
10
- * ```ts
11
- * import { Ablo } from '@abloatai/ablo';
12
- * import { schema } from './schema';
13
- *
14
- * const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, transport: 'http' });
15
- * await ablo.tasks.update({ id: taskId, data: { status: 'done' } });
16
- * ```
17
- *
18
- * The reactive materialiser — local store, live queries, presence rendering —
19
- * is the consumer package's entry point (`@abloatai/ablo`), which layers
20
- * above this one and shares the same `ablo.<model>` surface (ADR 0016).
21
- */
22
- import { type AbloHttpClient, type AbloHttpClientOptions } from './transport/httpClient.js';
23
- import type { SchemaRecord } from './schema/schema.js';
24
- import type * as _Streams from './types/streams.js';
25
- import type * as _SchemaTypes from './schema/schema.js';
26
- import type * as _Global from './types/global.js';
27
- import type * as _Policy from './policy/types.js';
28
- import type * as _Http from './resources/httpResources.js';
29
- /**
30
- * Create a coordination-layer client in one call.
31
- *
32
- * The core carries one transport today — request/response HTTP — so
33
- * `transport: 'http'` is accepted for symmetry with the reactive package's
34
- * factory and may be omitted. The duplex transport joins this slot when the
35
- * socket carve lands (ADR 0016, follow-up 3a).
36
- */
37
- export declare function Ablo<const S extends SchemaRecord>(options: AbloHttpClientOptions<S> & {
38
- transport?: 'http';
39
- }): AbloHttpClient<S>;
40
- export declare namespace Ablo {
41
- type ClaimTarget = _Streams.ClaimTarget;
42
- type PresenceTarget = _Streams.PresenceTarget;
43
- type Duration = _Streams.Duration;
44
- type Peer = _Streams.Peer;
45
- type Activity = _Streams.Activity;
46
- type Claim = _Streams.Claim;
47
- type ClaimHeartbeat = _Streams.ClaimHeartbeat;
48
- type ClaimHeartbeatOptions = _Streams.ClaimHeartbeatOptions;
49
- namespace Claim {
50
- type Held<T = Record<string, unknown>, M = _Global.ResolveClaimMeta> = _Streams.HeldClaim<T, M>;
51
- type WaitOptions = _Streams.ClaimWaitOptions;
52
- type LeaseOptions = _Streams.ClaimLeaseOptions;
53
- }
54
- type Schema<S extends _SchemaTypes.SchemaRecord = _SchemaTypes.SchemaRecord> = _SchemaTypes.Schema<S>;
55
- /**
56
- * The schema this program has registered via `interface Register { Schema }`
57
- * (falls back to a loose shape when unregistered). Use it where shared code
58
- * needs "this app's schema" without importing a specific one.
59
- */
60
- type ResolveSchema = _Global.ResolveSchema;
61
- /**
62
- * The claim metadata shape this program has registered via
63
- * `interface Register { ClaimMeta }` (falls back to a loose record when
64
- * unregistered). Every claim surface reads `target.meta` as this.
65
- */
66
- type ResolveClaimMeta = _Global.ResolveClaimMeta;
67
- namespace Schema {
68
- type Model<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.Model<S, K>;
69
- type InferCreate<S extends _SchemaTypes.Schema, K extends keyof S['models']> = _SchemaTypes.InferCreate<S, K>;
70
- type InferModelNames<S extends _SchemaTypes.Schema> = _SchemaTypes.InferModelNames<S>;
71
- }
72
- type Conflict = _Policy.Conflict;
73
- namespace Conflict {
74
- type Kind = _Policy.ConflictKind;
75
- type Operation = _Policy.ConflictOperation;
76
- type Decision = _Policy.ConflictDecision;
77
- type Policy = _Policy.ConflictPolicy;
78
- type Axis = _Policy.ConflictAxis;
79
- }
80
- namespace Commit {
81
- type Wait = _Http.CommitWait;
82
- type OperationAction = _Http.ModelOperationAction;
83
- type OperationInput = _Http.CommitOperationInput;
84
- type CreateOptions = _Http.CommitCreateOptions;
85
- type Receipt = _Http.CommitReceipt;
86
- type Client = _Http.CommitResource;
87
- }
88
- }
@@ -1,33 +0,0 @@
1
- /**
2
- * `Ablo` — the entry point to the coordination layer.
3
- *
4
- * The factory constructs the stateless client: typed model resources, commits,
5
- * claims, and session minting over request/response HTTP. It holds no socket,
6
- * no store, and no local copy of anything — the bearer credential is the
7
- * identity and the server resolves it on every request. This is the client a
8
- * server-side actor installs: an agent, a worker, a cron job, a route handler.
9
- *
10
- * ```ts
11
- * import { Ablo } from '@abloatai/ablo';
12
- * import { schema } from './schema';
13
- *
14
- * const ablo = Ablo({ schema, apiKey: process.env.ABLO_API_KEY, transport: 'http' });
15
- * await ablo.tasks.update({ id: taskId, data: { status: 'done' } });
16
- * ```
17
- *
18
- * The reactive materialiser — local store, live queries, presence rendering —
19
- * is the consumer package's entry point (`@abloatai/ablo`), which layers
20
- * above this one and shares the same `ablo.<model>` surface (ADR 0016).
21
- */
22
- import { createAbloHttpClient, } from './transport/httpClient.js';
23
- /**
24
- * Create a coordination-layer client in one call.
25
- *
26
- * The core carries one transport today — request/response HTTP — so
27
- * `transport: 'http'` is accepted for symmetry with the reactive package's
28
- * factory and may be omitted. The duplex transport joins this slot when the
29
- * socket carve lands (ADR 0016, follow-up 3a).
30
- */
31
- export function Ablo(options) {
32
- return createAbloHttpClient(options);
33
- }