@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,195 +0,0 @@
1
- /**
2
- * Defines the data an ORM adapter exchanges with Ablo, expressed as Zod schemas
3
- * rather than plain interfaces so every value is validated where it crosses the
4
- * boundary. A malformed operation or outbox row is rejected at the edge instead of
5
- * failing deep inside a transaction, and each TypeScript type is inferred from the
6
- * one schema that validates it.
7
- *
8
- * These schemas describe the adapter's own contract: the change set it commits,
9
- * the outbox row it stores, and the table migrations it ships. The operation
10
- * vocabulary is not restated here — `operationSchema` is projected from the
11
- * core's `commitOperationSchema`, so an action or field added to the commit
12
- * contract reaches a data source by construction. The assertion at the end of
13
- * this file then pins the published `SourceOperation` interface to that
14
- * projection, which is what keeps the interface tied to the core rather than
15
- * merely tied to a second local copy of it.
16
- */
17
- import { z } from 'zod';
18
- /**
19
- * Served, not mirrored. The commit vocabulary is declared once in the core; a
20
- * data source speaks the same five actions, so it re-exports them rather than
21
- * listing them again under a second name.
22
- */
23
- export declare const operationTypeSchema: z.ZodEnum<{
24
- CREATE: "CREATE";
25
- UPDATE: "UPDATE";
26
- DELETE: "DELETE";
27
- ARCHIVE: "ARCHIVE";
28
- UNARCHIVE: "UNARCHIVE";
29
- }>;
30
- export type OperationType = z.infer<typeof operationTypeSchema>;
31
- /**
32
- * A single operation within a change set, and the runtime validator for it.
33
- *
34
- * The field set is projected from `commitOperationSchema` — an operation
35
- * reaching a data source is a commit operation minus the two fields the core
36
- * settles internally (`bypass`, `fenceToken`). The two `min(1)` overrides are
37
- * deliberate and local: this is a customer-implemented boundary, so an empty
38
- * model name or row id is rejected here rather than forwarded. Stating them as
39
- * an extension keeps the tightening visible as a choice instead of hiding it
40
- * inside a second copy of the shape.
41
- */
42
- export declare const operationSchema: z.ZodObject<{
43
- type: z.ZodEnum<{
44
- CREATE: "CREATE";
45
- UPDATE: "UPDATE";
46
- DELETE: "DELETE";
47
- ARCHIVE: "ARCHIVE";
48
- UNARCHIVE: "UNARCHIVE";
49
- }>;
50
- readAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
51
- onStale: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
52
- reject: "reject";
53
- overwrite: "overwrite";
54
- notify: "notify";
55
- }>>>;
56
- transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
- model: z.ZodString;
58
- id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
59
- input: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
60
- }, z.core.$strip>;
61
- export type Operation = z.infer<typeof operationSchema>;
62
- /** The supported customer-transaction echo mechanism. */
63
- export declare const sourceCommitEchoSchema: z.ZodObject<{
64
- kind: z.ZodLiteral<"postgres-wal">;
65
- payload: z.ZodString;
66
- }, z.core.$strip>;
67
- export declare const sourceCommitEchoOperationSchema: z.ZodObject<{
68
- model: z.ZodString;
69
- id: z.ZodString;
70
- action: z.ZodEnum<{
71
- I: "I";
72
- U: "U";
73
- D: "D";
74
- }>;
75
- transactionId: z.ZodString;
76
- }, z.core.$strict>;
77
- export declare const sourceCommitEchoMarkerSchema: z.ZodObject<{
78
- version: z.ZodLiteral<1>;
79
- correlationId: z.ZodString;
80
- operations: z.ZodReadonly<z.ZodArray<z.ZodObject<{
81
- model: z.ZodString;
82
- id: z.ZodString;
83
- action: z.ZodEnum<{
84
- I: "I";
85
- U: "U";
86
- D: "D";
87
- }>;
88
- transactionId: z.ZodString;
89
- }, z.core.$strict>>>;
90
- }, z.core.$strict>;
91
- export type SourceCommitEchoMarkerWire = z.infer<typeof sourceCommitEchoMarkerSchema>;
92
- /**
93
- * The unit a mutation wrapper commits atomically. `correlationId` is derived by
94
- * Ablo from the authenticated plane, participant, and public idempotency key; it
95
- * is the customer-ledger identity. It is intentionally not a raw caller-authored
96
- * `clientTxId` or an operation transaction id.
97
- */
98
- export declare const changeSetSchema: z.ZodObject<{
99
- operations: z.ZodArray<z.ZodObject<{
100
- type: z.ZodEnum<{
101
- CREATE: "CREATE";
102
- UPDATE: "UPDATE";
103
- DELETE: "DELETE";
104
- ARCHIVE: "ARCHIVE";
105
- UNARCHIVE: "UNARCHIVE";
106
- }>;
107
- readAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
108
- onStale: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
109
- reject: "reject";
110
- overwrite: "overwrite";
111
- notify: "notify";
112
- }>>>;
113
- transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
114
- model: z.ZodString;
115
- id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
116
- input: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
117
- }, z.core.$strip>>;
118
- correlationId: z.ZodString;
119
- intentHash: z.ZodOptional<z.ZodString>;
120
- echo: z.ZodOptional<z.ZodObject<{
121
- kind: z.ZodLiteral<"postgres-wal">;
122
- payload: z.ZodString;
123
- }, z.core.$strip>>;
124
- }, z.core.$strip>;
125
- export type ChangeSet = z.infer<typeof changeSetSchema>;
126
- /**
127
- * A row in the adapter's `ablo_outbox` table. The adapter writes it in the same
128
- * transaction as the underlying row change — the transactional-outbox pattern — so
129
- * a change and its event commit together or not at all. The `events()` feed later
130
- * reads these rows back and hands them to Ablo, and `cursor` is the monotonic
131
- * ordering key Ablo round-trips to resume where it left off.
132
- */
133
- export declare const outboxEventSchema: z.ZodObject<{
134
- id: z.ZodString;
135
- model: z.ZodString;
136
- entityId: z.ZodString;
137
- type: z.ZodEnum<{
138
- CREATE: "CREATE";
139
- UPDATE: "UPDATE";
140
- DELETE: "DELETE";
141
- ARCHIVE: "ARCHIVE";
142
- UNARCHIVE: "UNARCHIVE";
143
- }>;
144
- data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
145
- organizationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
146
- clientTxId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
147
- correlationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
148
- transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
149
- occurredAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
150
- cursor: z.ZodString;
151
- }, z.core.$strip>;
152
- export type OutboxEvent = z.infer<typeof outboxEventSchema>;
153
- /** A page of outbox events returned by `events()`. */
154
- export declare const eventsPageSchema: z.ZodObject<{
155
- events: z.ZodArray<z.ZodObject<{
156
- id: z.ZodString;
157
- model: z.ZodString;
158
- entityId: z.ZodString;
159
- type: z.ZodEnum<{
160
- CREATE: "CREATE";
161
- UPDATE: "UPDATE";
162
- DELETE: "DELETE";
163
- ARCHIVE: "ARCHIVE";
164
- UNARCHIVE: "UNARCHIVE";
165
- }>;
166
- data: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
167
- organizationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
168
- clientTxId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
169
- correlationId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
170
- transactionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
171
- occurredAt: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
172
- cursor: z.ZodString;
173
- }, z.core.$strip>>;
174
- nextCursor: z.ZodNullable<z.ZodString>;
175
- }, z.core.$strip>;
176
- export type EventsPage = z.infer<typeof eventsPageSchema>;
177
- /**
178
- * A table-creation migration an adapter ships, so you never hand-write the
179
- * `ablo_idempotency` and `ablo_outbox` tables yourself. An adapter returns these
180
- * from its `migrations()` method.
181
- */
182
- export declare const migrationSchema: z.ZodObject<{
183
- name: z.ZodString;
184
- up: z.ZodString;
185
- }, z.core.$strip>;
186
- export type Migration = z.infer<typeof migrationSchema>;
187
- /** Describes what an adapter's backend supports, so callers check a capability rather than infer it from behavior. */
188
- export declare const adapterCapabilitiesSchema: z.ZodObject<{
189
- transactions: z.ZodBoolean;
190
- propose: z.ZodBoolean;
191
- schemaIntrospection: z.ZodBoolean;
192
- postgresWalEcho: z.ZodOptional<z.ZodBoolean>;
193
- outboxEvents: z.ZodBoolean;
194
- }, z.core.$strip>;
195
- export type AdapterCapabilities = z.infer<typeof adapterCapabilitiesSchema>;
@@ -1,164 +0,0 @@
1
- /**
2
- * Defines the data an ORM adapter exchanges with Ablo, expressed as Zod schemas
3
- * rather than plain interfaces so every value is validated where it crosses the
4
- * boundary. A malformed operation or outbox row is rejected at the edge instead of
5
- * failing deep inside a transaction, and each TypeScript type is inferred from the
6
- * one schema that validates it.
7
- *
8
- * These schemas describe the adapter's own contract: the change set it commits,
9
- * the outbox row it stores, and the table migrations it ships. The operation
10
- * vocabulary is not restated here — `operationSchema` is projected from the
11
- * core's `commitOperationSchema`, so an action or field added to the commit
12
- * contract reaches a data source by construction. The assertion at the end of
13
- * this file then pins the published `SourceOperation` interface to that
14
- * projection, which is what keeps the interface tied to the core rather than
15
- * merely tied to a second local copy of it.
16
- */
17
- import { z } from 'zod';
18
- import { correlationIdSchema } from '../transaction/wire/commit.js';
19
- import { commitOperationSchema, commitOperationTypeSchema, } from '../transaction/coordination/schema.js';
20
- import { ABLO_SOURCE_CLIENT_TX_ID_MAX_LENGTH, ABLO_SOURCE_ECHO_MAX_OPERATIONS, ABLO_SOURCE_ECHO_MAX_PAYLOAD_BYTES, } from './types.js';
21
- const jsonObject = z.record(z.string(), z.unknown());
22
- /**
23
- * Served, not mirrored. The commit vocabulary is declared once in the core; a
24
- * data source speaks the same five actions, so it re-exports them rather than
25
- * listing them again under a second name.
26
- */
27
- export const operationTypeSchema = commitOperationTypeSchema;
28
- /**
29
- * A single operation within a change set, and the runtime validator for it.
30
- *
31
- * The field set is projected from `commitOperationSchema` — an operation
32
- * reaching a data source is a commit operation minus the two fields the core
33
- * settles internally (`bypass`, `fenceToken`). The two `min(1)` overrides are
34
- * deliberate and local: this is a customer-implemented boundary, so an empty
35
- * model name or row id is rejected here rather than forwarded. Stating them as
36
- * an extension keeps the tightening visible as a choice instead of hiding it
37
- * inside a second copy of the shape.
38
- */
39
- export const operationSchema = commitOperationSchema
40
- .omit({ bypass: true, fenceToken: true })
41
- .extend({
42
- model: z.string().min(1),
43
- id: z.string().min(1).nullish(),
44
- input: jsonObject.nullish(),
45
- });
46
- /** The supported customer-transaction echo mechanism. */
47
- export const sourceCommitEchoSchema = z.object({
48
- kind: z.literal('postgres-wal'),
49
- payload: z
50
- .string()
51
- .min(1)
52
- .refine((value) => new TextEncoder().encode(value).byteLength <= ABLO_SOURCE_ECHO_MAX_PAYLOAD_BYTES, `WAL echo payload exceeds ${ABLO_SOURCE_ECHO_MAX_PAYLOAD_BYTES} UTF-8 bytes`),
53
- });
54
- export const sourceCommitEchoOperationSchema = z.strictObject({
55
- model: z.string().min(1),
56
- id: z.string().min(1),
57
- action: z.enum(['I', 'U', 'D']),
58
- transactionId: z.string().min(1).max(ABLO_SOURCE_CLIENT_TX_ID_MAX_LENGTH),
59
- });
60
- export const sourceCommitEchoMarkerSchema = z
61
- .strictObject({
62
- version: z.literal(1),
63
- correlationId: correlationIdSchema,
64
- operations: z
65
- .array(sourceCommitEchoOperationSchema)
66
- .min(1)
67
- .max(ABLO_SOURCE_ECHO_MAX_OPERATIONS)
68
- .readonly(),
69
- })
70
- .superRefine(({ operations }, ctx) => {
71
- const seen = new Set();
72
- for (const [index, operation] of operations.entries()) {
73
- if (seen.has(operation.transactionId)) {
74
- ctx.addIssue({
75
- code: 'custom',
76
- path: ['operations', index, 'transactionId'],
77
- message: 'WAL echo operation transactionIds must be unique',
78
- });
79
- }
80
- seen.add(operation.transactionId);
81
- }
82
- });
83
- /**
84
- * The unit a mutation wrapper commits atomically. `correlationId` is derived by
85
- * Ablo from the authenticated plane, participant, and public idempotency key; it
86
- * is the customer-ledger identity. It is intentionally not a raw caller-authored
87
- * `clientTxId` or an operation transaction id.
88
- */
89
- export const changeSetSchema = z.object({
90
- operations: z.array(operationSchema).min(1),
91
- correlationId: correlationIdSchema,
92
- intentHash: z.string().regex(/^[a-f0-9]{64}$/).optional(),
93
- echo: sourceCommitEchoSchema.optional(),
94
- });
95
- /**
96
- * A row in the adapter's `ablo_outbox` table. The adapter writes it in the same
97
- * transaction as the underlying row change — the transactional-outbox pattern — so
98
- * a change and its event commit together or not at all. The `events()` feed later
99
- * reads these rows back and hands them to Ablo, and `cursor` is the monotonic
100
- * ordering key Ablo round-trips to resume where it left off.
101
- */
102
- export const outboxEventSchema = z.object({
103
- /** Stable, globally-unique id — Ablo's replay-protection key. */
104
- id: z.string().min(1),
105
- model: z.string().min(1),
106
- entityId: z.string().min(1),
107
- type: operationTypeSchema,
108
- data: jsonObject.nullish(),
109
- organizationId: z.string().nullish(),
110
- /** Legacy source transaction id. Never use this field to settle a queued commit. */
111
- clientTxId: z.string().nullish(),
112
- /** Scoped server-authored identity that correlates this event to a queued commit. */
113
- correlationId: correlationIdSchema.nullish(),
114
- /** Stable identity of this operation within the correlated source commit. */
115
- transactionId: z
116
- .string()
117
- .min(1)
118
- .max(ABLO_SOURCE_CLIENT_TX_ID_MAX_LENGTH)
119
- .nullish(),
120
- occurredAt: z.number().nullish(),
121
- /** Monotonic ordering key (bigint as string). `events()` pages by `cursor > ?`. */
122
- cursor: z.string().min(1),
123
- });
124
- /** A page of outbox events returned by `events()`. */
125
- export const eventsPageSchema = z.object({
126
- events: z.array(outboxEventSchema),
127
- nextCursor: z.string().nullable(),
128
- });
129
- /**
130
- * A table-creation migration an adapter ships, so you never hand-write the
131
- * `ablo_idempotency` and `ablo_outbox` tables yourself. An adapter returns these
132
- * from its `migrations()` method.
133
- */
134
- export const migrationSchema = z.object({
135
- /** Stable name, used as the migration filename + applied-ledger key. */
136
- name: z.string().min(1),
137
- /** The forward SQL. */
138
- up: z.string().min(1),
139
- });
140
- /** Describes what an adapter's backend supports, so callers check a capability rather than infer it from behavior. */
141
- export const adapterCapabilitiesSchema = z.object({
142
- /** `commit` is atomic across all operations in the change set. */
143
- transactions: z.boolean(),
144
- /** A dry-run `propose` is available; when false, proposing a change happens before the adapter is called. */
145
- propose: z.boolean(),
146
- /** The backend can be introspected for its schema. */
147
- schemaIntrospection: z.boolean(),
148
- /** The adapter can atomically emit the requested Postgres WAL marker. */
149
- postgresWalEcho: z.boolean().optional(),
150
- /** The wrapper atomically writes and serves an endpoint transactional outbox. */
151
- outboxEvents: z.boolean(),
152
- });
153
- const _operationContractInSync = [
154
- true,
155
- true,
156
- ];
157
- void _operationContractInSync;
158
- const _echoContractInSync = [
159
- true,
160
- true,
161
- ];
162
- void _echoContractInSync;
163
- const _echoMarkerContractInSync = [true, true];
164
- void _echoMarkerContractInSync;
@@ -1,92 +0,0 @@
1
- /**
2
- * Builds the request handler returned by `dataSource()`. Given your options —
3
- * the schema, the API key, and either
4
- * per-model handlers or an ORM adapter — the handler verifies each signed request,
5
- * enforces the per-key scopes, and routes the four wire operations (`load`,
6
- * `list`, `commit`, and `events`) to whichever handlers you configured.
7
- */
8
- import type { Schema, SchemaRecord, InferCreate } from '../transaction/schema/schema.js';
9
- import type { DataSourceAdapter } from './adapter.js';
10
- import type { SourceApiKey, SourceAuthorizeContext, SourceCommitHandler, SourceEventsHandler, SourceModelHandlers, SourceRequest, SourceScope } from './types.js';
11
- type SourceModels<S extends SchemaRecord, TAuth> = Partial<{
12
- readonly [K in keyof S & string]: SourceModelHandlers<InferCreate<Schema<S>, K> & {
13
- readonly id: string;
14
- } & Record<string, unknown>, InferCreate<Schema<S>, K>, TAuth>;
15
- }>;
16
- export type DataSourceOptions<S extends SchemaRecord, TAuth = unknown> = {
17
- readonly schema: Schema<S>;
18
- /**
19
- * Your Ablo project credential. Ablo signs each Data Source call with the same
20
- * project API key your server-side SDK already uses, so your environment holds a
21
- * single Ablo credential and every request is signature-verified before any
22
- * handler runs.
23
- */
24
- readonly apiKey: SourceApiKey;
25
- /**
26
- * How much clock skew to tolerate when verifying a request's signed timestamp.
27
- * Defaults to five minutes.
28
- */
29
- readonly signatureToleranceMs?: number;
30
- /**
31
- * Attaches your own context to a verified request and returns it — for example a
32
- * database handle, an account scope, or the current actor. Keep database
33
- * credentials inside this function's environment and never send them to Ablo. The
34
- * signature has already been checked against `apiKey` by the time this runs, so
35
- * `authorize` only needs to supply business context, not re-verify the caller.
36
- */
37
- readonly authorize?: (context: SourceAuthorizeContext) => Promise<TAuth> | TAuth;
38
- /**
39
- * Resolves the set of operations a request's key may perform. When you provide
40
- * it, the handler checks the operation the request is asking for (`load`, `list`,
41
- * `commit`, or `events`) against the returned set and responds 403
42
- * `source_forbidden` if it is not allowed, before any model handler runs. A
43
- * typical implementation reads a key id from the request — a `webhook-id` prefix,
44
- * a custom header, or the API key itself — and looks that key's scopes up in your
45
- * store. Omit it to allow every operation; return an empty set to deny them all.
46
- */
47
- readonly resolveScopes?: (params: {
48
- readonly auth: TAuth;
49
- readonly request: Request;
50
- readonly body: SourceRequest;
51
- }) => Promise<ReadonlySet<SourceScope> | readonly SourceScope[]> | ReadonlySet<SourceScope> | readonly SourceScope[];
52
- /**
53
- * Handles a commit atomically across every model it touches. Prefer this in real
54
- * applications: a single user action can change several models at once and should
55
- * run inside one transaction you control.
56
- */
57
- readonly commit?: SourceCommitHandler<TAuth>;
58
- /**
59
- * Reports changes that happened outside the SDK — cron jobs, dashboard edits,
60
- * batch imports — which Ablo polls for. Each event you return becomes a delta and
61
- * fans out to connected clients. You can return your outbox rows directly: Ablo
62
- * dedupes on stable `event.id`, appends the authoritative event, and uses a
63
- * server-authored `correlationId` plus per-operation `transactionId` to settle
64
- * the matching queued write. Store both fields for mediated endpoint commits.
65
- */
66
- readonly events?: SourceEventsHandler<TAuth>;
67
- /**
68
- * Groups per-model handlers under a `models` key. The spread form below is
69
- * usually shorter — `dataSource({ schema, files: { load, list, commit } })` —
70
- * but this explicit form is available when you prefer it.
71
- */
72
- readonly models?: SourceModels<S, TAuth>;
73
- /**
74
- * An ORM adapter, such as `prismaDataSource(prisma, schema)`. When set, it serves
75
- * all four operations on its own — reads for `load` and `list`, an idempotent
76
- * `commit` backed by the outbox, and `events` — so you write no handlers by hand.
77
- * Because rows travel as JSON, the adapter is applied at a single generic
78
- * dispatch point and needs no per-model types. Use either an adapter or
79
- * hand-written handlers, not both.
80
- */
81
- readonly adapter?: DataSourceAdapter;
82
- } & SourceModels<S, TAuth>;
83
- /**
84
- * Creates a Data Source endpoint you host in front of your own database.
85
- *
86
- * Your application code still reads and writes through Ablo, as in
87
- * `ablo.files.load`, `.list`, and `.update`. This helper is for keeping the
88
- * canonical rows in your database: Ablo calls a narrow, signed endpoint you
89
- * control rather than holding your database credentials.
90
- */
91
- export declare function dataSource<const S extends SchemaRecord, TAuth = unknown>(options: DataSourceOptions<S, TAuth>): (request: Request) => Promise<Response>;
92
- export {};