@abloatai/transaction 0.57.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (781) hide show
  1. package/CONVENTIONS.md +51 -41
  2. package/README.md +3 -1
  3. package/dist/ai-sdk/modelTools.d.ts +3 -3
  4. package/dist/ai-sdk/modelTools.d.ts.map +1 -1
  5. package/dist/ai-sdk/modelTools.js +1 -1
  6. package/dist/ai-sdk/modelTools.js.map +1 -1
  7. package/dist/ai-sdk/updateTool.d.ts +5 -7
  8. package/dist/ai-sdk/updateTool.d.ts.map +1 -1
  9. package/dist/ai-sdk/updateTool.js +3 -5
  10. package/dist/ai-sdk/updateTool.js.map +1 -1
  11. package/dist/auth/capability.d.ts +5 -0
  12. package/dist/auth/capability.d.ts.map +1 -1
  13. package/dist/auth/capability.js +5 -0
  14. package/dist/auth/capability.js.map +1 -1
  15. package/dist/auth/capabilityLifecycle.d.ts +1 -1
  16. package/dist/auth/capabilityLifecycle.d.ts.map +1 -1
  17. package/dist/auth/credentialPolicy.d.ts +1 -1
  18. package/dist/auth/credentialPolicy.d.ts.map +1 -1
  19. package/dist/auth/identity.d.ts +3 -3
  20. package/dist/auth/identity.d.ts.map +1 -1
  21. package/dist/auth/identity.js +5 -5
  22. package/dist/auth/identity.js.map +1 -1
  23. package/dist/auth/index.d.ts +4 -208
  24. package/dist/auth/index.d.ts.map +1 -1
  25. package/dist/auth/index.js +4 -330
  26. package/dist/auth/index.js.map +1 -1
  27. package/dist/auth/runtime.d.ts +218 -0
  28. package/dist/auth/runtime.d.ts.map +1 -0
  29. package/dist/auth/runtime.js +336 -0
  30. package/dist/auth/runtime.js.map +1 -0
  31. package/dist/auth/sessionMint.d.ts +1 -1
  32. package/dist/auth/sessionMint.d.ts.map +1 -1
  33. package/dist/auth/sessionMint.js +2 -1
  34. package/dist/auth/sessionMint.js.map +1 -1
  35. package/dist/branches.d.ts +25 -21
  36. package/dist/branches.d.ts.map +1 -1
  37. package/dist/branches.js +3 -0
  38. package/dist/branches.js.map +1 -1
  39. package/dist/{coordination/awaitClaimGrant.d.ts → claims/awaitGrant.d.ts} +1 -1
  40. package/dist/claims/awaitGrant.d.ts.map +1 -0
  41. package/dist/{coordination/awaitClaimGrant.js → claims/awaitGrant.js} +4 -4
  42. package/dist/claims/awaitGrant.js.map +1 -0
  43. package/dist/{wire/claims.d.ts → claims/contract.d.ts} +1 -1
  44. package/dist/claims/contract.d.ts.map +1 -0
  45. package/dist/{wire/claims.js → claims/contract.js} +2 -2
  46. package/dist/claims/contract.js.map +1 -0
  47. package/dist/{wire/claimEvent.d.ts → claims/eventContract.d.ts} +1 -1
  48. package/dist/claims/eventContract.d.ts.map +1 -0
  49. package/dist/{wire/claimEvent.js → claims/eventContract.js} +1 -1
  50. package/dist/claims/eventContract.js.map +1 -0
  51. package/dist/{coordination → claims}/events.d.ts +7 -11
  52. package/dist/claims/events.d.ts.map +1 -0
  53. package/dist/claims/events.js +8 -0
  54. package/dist/claims/events.js.map +1 -0
  55. package/dist/{coordination/claimHeartbeatLoop.d.ts → claims/heartbeat.d.ts} +1 -1
  56. package/dist/claims/heartbeat.d.ts.map +1 -0
  57. package/dist/{coordination/claimHeartbeatLoop.js → claims/heartbeat.js} +1 -1
  58. package/dist/claims/heartbeat.js.map +1 -0
  59. package/dist/claims/index.d.ts +17 -0
  60. package/dist/claims/index.d.ts.map +1 -0
  61. package/dist/claims/index.js +16 -0
  62. package/dist/claims/index.js.map +1 -0
  63. package/dist/claims/lifetime.d.ts +26 -0
  64. package/dist/claims/lifetime.d.ts.map +1 -0
  65. package/dist/claims/lifetime.js +62 -0
  66. package/dist/claims/lifetime.js.map +1 -0
  67. package/dist/{coordination → claims}/locator.d.ts +1 -1
  68. package/dist/claims/locator.d.ts.map +1 -0
  69. package/dist/{coordination → claims}/locator.js +2 -2
  70. package/dist/claims/locator.js.map +1 -0
  71. package/dist/{coordination/claimMeta.d.ts → claims/meta.d.ts} +1 -1
  72. package/dist/claims/meta.d.ts.map +1 -0
  73. package/dist/{coordination/claimMeta.js → claims/meta.js} +1 -1
  74. package/dist/claims/meta.js.map +1 -0
  75. package/dist/claims/routes.d.ts +59 -0
  76. package/dist/claims/routes.d.ts.map +1 -0
  77. package/dist/claims/routes.js +69 -0
  78. package/dist/claims/routes.js.map +1 -0
  79. package/dist/claims/targetConflict.d.ts.map +1 -0
  80. package/dist/claims/targetConflict.js.map +1 -0
  81. package/dist/{coordination → claims}/trace.d.ts +2 -2
  82. package/dist/claims/trace.d.ts.map +1 -0
  83. package/dist/{coordination → claims}/trace.js +5 -5
  84. package/dist/claims/trace.js.map +1 -0
  85. package/dist/{ablo.d.ts → client/ablo.d.ts} +8 -18
  86. package/dist/client/ablo.d.ts.map +1 -0
  87. package/dist/{ablo.js → client/ablo.js} +2 -2
  88. package/dist/client/ablo.js.map +1 -0
  89. package/dist/{transactionLayer.d.ts → client/contract.d.ts} +12 -14
  90. package/dist/client/contract.d.ts.map +1 -0
  91. package/dist/{transactionLayer.js → client/contract.js} +4 -5
  92. package/dist/client/contract.js.map +1 -0
  93. package/dist/{headlessClient.d.ts → client/headless.d.ts} +4 -4
  94. package/dist/client/headless.d.ts.map +1 -0
  95. package/dist/{headlessClient.js → client/headless.js} +8 -10
  96. package/dist/{headlessClient.js.map → client/headless.js.map} +1 -1
  97. package/dist/client/index.d.ts +11 -0
  98. package/dist/client/index.d.ts.map +1 -0
  99. package/dist/client/index.js +11 -0
  100. package/dist/client/index.js.map +1 -0
  101. package/dist/{resources → client/resources}/functionalUpdate.d.ts +4 -4
  102. package/dist/client/resources/functionalUpdate.d.ts.map +1 -0
  103. package/dist/{resources → client/resources}/functionalUpdate.js +3 -3
  104. package/dist/client/resources/functionalUpdate.js.map +1 -0
  105. package/dist/{resources → client/resources}/httpResources.d.ts +51 -57
  106. package/dist/client/resources/httpResources.d.ts.map +1 -0
  107. package/dist/{resources → client/resources}/httpResources.js +1 -1
  108. package/dist/client/resources/httpResources.js.map +1 -0
  109. package/dist/{resources → client/resources}/modelCreate.d.ts +1 -1
  110. package/dist/client/resources/modelCreate.d.ts.map +1 -0
  111. package/dist/{resources → client/resources}/modelCreate.js +1 -1
  112. package/dist/client/resources/modelCreate.js.map +1 -0
  113. package/dist/{resources → client/resources}/modelOperations.d.ts +35 -51
  114. package/dist/client/resources/modelOperations.d.ts.map +1 -0
  115. package/dist/{resources → client/resources}/modelOperations.js +1 -1
  116. package/dist/client/resources/modelOperations.js.map +1 -0
  117. package/dist/{resources → client/resources}/mutationOptions.d.ts +4 -17
  118. package/dist/client/resources/mutationOptions.d.ts.map +1 -0
  119. package/dist/client/resources/mutationOptions.js.map +1 -0
  120. package/dist/client/resources/where.d.ts.map +1 -0
  121. package/dist/{resources → client/resources}/where.js +1 -1
  122. package/dist/client/resources/where.js.map +1 -0
  123. package/dist/{resources → client/resources}/writeOptionsSchema.d.ts +2 -35
  124. package/dist/client/resources/writeOptionsSchema.d.ts.map +1 -0
  125. package/dist/{resources → client/resources}/writeOptionsSchema.js +5 -18
  126. package/dist/client/resources/writeOptionsSchema.js.map +1 -0
  127. package/dist/client/surface.d.ts +15 -0
  128. package/dist/client/surface.d.ts.map +1 -0
  129. package/dist/client/surface.js +29 -0
  130. package/dist/client/surface.js.map +1 -0
  131. package/dist/{transactions → commit}/confirmation/commitEnvelope.d.ts +1 -37
  132. package/dist/commit/confirmation/commitEnvelope.d.ts.map +1 -0
  133. package/dist/{transactions → commit}/confirmation/commitEnvelope.js +2 -7
  134. package/dist/commit/confirmation/commitEnvelope.js.map +1 -0
  135. package/dist/commit/confirmation/httpCommitEnvelope.d.ts.map +1 -0
  136. package/dist/{transactions → commit}/confirmation/httpCommitEnvelope.js +1 -1
  137. package/dist/commit/confirmation/httpCommitEnvelope.js.map +1 -0
  138. package/dist/commit/confirmation/idempotencyKey.d.ts.map +1 -0
  139. package/dist/commit/confirmation/idempotencyKey.js.map +1 -0
  140. package/dist/{transactions → commit}/confirmation/pendingWrite.d.ts +2 -33
  141. package/dist/commit/confirmation/pendingWrite.d.ts.map +1 -0
  142. package/dist/{transactions → commit}/confirmation/pendingWrite.js +1 -1
  143. package/dist/commit/confirmation/pendingWrite.js.map +1 -0
  144. package/dist/commit/contract.d.ts +1404 -0
  145. package/dist/commit/contract.d.ts.map +1 -0
  146. package/dist/{wire/commit.js → commit/contract.js} +13 -20
  147. package/dist/commit/contract.js.map +1 -0
  148. package/dist/{durableWrites.d.ts → commit/durableWrites.d.ts} +6 -6
  149. package/dist/commit/durableWrites.d.ts.map +1 -0
  150. package/dist/{durableWrites.js → commit/durableWrites.js} +5 -5
  151. package/dist/commit/durableWrites.js.map +1 -0
  152. package/dist/{transport/httpCommitRequest.d.ts → commit/httpRequest.d.ts} +6 -6
  153. package/dist/commit/httpRequest.d.ts.map +1 -0
  154. package/dist/{transport/httpCommitRequest.js → commit/httpRequest.js} +2 -3
  155. package/dist/commit/httpRequest.js.map +1 -0
  156. package/dist/commit/index.d.ts +17 -0
  157. package/dist/commit/index.d.ts.map +1 -0
  158. package/dist/commit/index.js +17 -0
  159. package/dist/commit/index.js.map +1 -0
  160. package/dist/{readSetContext.d.ts → commit/readSetContext.d.ts} +7 -15
  161. package/dist/commit/readSetContext.d.ts.map +1 -0
  162. package/dist/{readSetContext.js → commit/readSetContext.js} +10 -25
  163. package/dist/commit/readSetContext.js.map +1 -0
  164. package/dist/{commitRecordRuntime.d.ts → commit/recordRuntime.d.ts} +3 -5
  165. package/dist/commit/recordRuntime.d.ts.map +1 -0
  166. package/dist/{commitRecordRuntime.js → commit/recordRuntime.js} +13 -54
  167. package/dist/commit/recordRuntime.js.map +1 -0
  168. package/dist/coordination/index.d.ts +6 -8
  169. package/dist/coordination/index.d.ts.map +1 -1
  170. package/dist/coordination/index.js +3 -9
  171. package/dist/coordination/index.js.map +1 -1
  172. package/dist/coordination/schema.d.ts +11 -459
  173. package/dist/coordination/schema.d.ts.map +1 -1
  174. package/dist/coordination/schema.js +13 -261
  175. package/dist/coordination/schema.js.map +1 -1
  176. package/dist/errorCodes.d.ts +15 -9
  177. package/dist/errorCodes.d.ts.map +1 -1
  178. package/dist/errorCodes.js +13 -6
  179. package/dist/errorCodes.js.map +1 -1
  180. package/dist/errorObservation.d.ts +2 -2
  181. package/dist/errors.d.ts +3 -2
  182. package/dist/errors.d.ts.map +1 -1
  183. package/dist/errors.js +27 -11
  184. package/dist/errors.js.map +1 -1
  185. package/dist/index.d.ts +7 -7
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +3 -3
  188. package/dist/index.js.map +1 -1
  189. package/dist/internal/read-set.d.ts +3 -3
  190. package/dist/internal/read-set.d.ts.map +1 -1
  191. package/dist/internal/read-set.js +2 -2
  192. package/dist/internal/read-set.js.map +1 -1
  193. package/dist/observability.d.ts +4 -4
  194. package/dist/observability.d.ts.map +1 -1
  195. package/dist/observability.js +2 -2
  196. package/dist/{wire/delta.d.ts → observation/contract.d.ts} +8 -8
  197. package/dist/observation/contract.d.ts.map +1 -0
  198. package/dist/{wire/delta.js → observation/contract.js} +3 -3
  199. package/dist/observation/contract.js.map +1 -0
  200. package/dist/{wire/feedCursor.d.ts → observation/cursor.d.ts} +1 -1
  201. package/dist/observation/cursor.d.ts.map +1 -0
  202. package/dist/{wire/feedCursor.js → observation/cursor.js} +1 -1
  203. package/dist/observation/cursor.js.map +1 -0
  204. package/dist/{wire/deltaDelivery.d.ts → observation/deliveryContract.d.ts} +1 -1
  205. package/dist/observation/deliveryContract.d.ts.map +1 -0
  206. package/dist/{wire/deltaDelivery.js → observation/deliveryContract.js} +1 -1
  207. package/dist/observation/deliveryContract.js.map +1 -0
  208. package/dist/{wire/feedEvent.d.ts → observation/feedContract.d.ts} +10 -10
  209. package/dist/observation/feedContract.d.ts.map +1 -0
  210. package/dist/{wire/feedEvent.js → observation/feedContract.js} +4 -4
  211. package/dist/observation/feedContract.js.map +1 -0
  212. package/dist/observation/httpFeed.d.ts +4 -0
  213. package/dist/observation/httpFeed.d.ts.map +1 -0
  214. package/dist/{transport → observation}/httpFeed.js +1 -1
  215. package/dist/{transport → observation}/httpFeed.js.map +1 -1
  216. package/dist/observation/index.d.ts +13 -0
  217. package/dist/observation/index.d.ts.map +1 -0
  218. package/dist/observation/index.js +13 -0
  219. package/dist/observation/index.js.map +1 -0
  220. package/dist/{log → observation/persistence}/syncDeltaRow.d.ts +8 -8
  221. package/dist/observation/persistence/syncDeltaRow.d.ts.map +1 -0
  222. package/dist/{log → observation/persistence}/syncDeltaRow.js +4 -4
  223. package/dist/observation/persistence/syncDeltaRow.js.map +1 -0
  224. package/dist/pricing.d.ts +26 -12
  225. package/dist/pricing.d.ts.map +1 -1
  226. package/dist/pricing.js +61 -27
  227. package/dist/pricing.js.map +1 -1
  228. package/dist/schema/ddl.d.ts.map +1 -1
  229. package/dist/schema/ddl.js +1 -1
  230. package/dist/schema/ddl.js.map +1 -1
  231. package/dist/schema/deployment/backfill.d.ts +44 -0
  232. package/dist/schema/deployment/backfill.d.ts.map +1 -0
  233. package/dist/schema/deployment/backfill.js +57 -0
  234. package/dist/schema/deployment/backfill.js.map +1 -0
  235. package/dist/schema/deployment/contracts.d.ts +526 -0
  236. package/dist/schema/deployment/contracts.d.ts.map +1 -0
  237. package/dist/schema/deployment/contracts.js +77 -0
  238. package/dist/schema/deployment/contracts.js.map +1 -0
  239. package/dist/schema/deployment/fingerprint.d.ts +3 -0
  240. package/dist/schema/deployment/fingerprint.d.ts.map +1 -0
  241. package/dist/schema/deployment/fingerprint.js +18 -0
  242. package/dist/schema/deployment/fingerprint.js.map +1 -0
  243. package/dist/schema/deployment/index.d.ts +18 -0
  244. package/dist/schema/deployment/index.d.ts.map +1 -0
  245. package/dist/schema/deployment/index.js +71 -0
  246. package/dist/schema/deployment/index.js.map +1 -0
  247. package/dist/schema/deployment/postgresCatalog.d.ts +39 -0
  248. package/dist/schema/deployment/postgresCatalog.d.ts.map +1 -0
  249. package/dist/schema/deployment/postgresCatalog.js +86 -0
  250. package/dist/schema/deployment/postgresCatalog.js.map +1 -0
  251. package/dist/schema/deployment/reconcile.d.ts +20 -0
  252. package/dist/schema/deployment/reconcile.d.ts.map +1 -0
  253. package/dist/schema/deployment/reconcile.js +226 -0
  254. package/dist/schema/deployment/reconcile.js.map +1 -0
  255. package/dist/schema/deployment/sequence.d.ts +4 -0
  256. package/dist/schema/deployment/sequence.d.ts.map +1 -0
  257. package/dist/schema/deployment/sequence.js +71 -0
  258. package/dist/schema/deployment/sequence.js.map +1 -0
  259. package/dist/schema/index.d.ts +6 -6
  260. package/dist/schema/index.d.ts.map +1 -1
  261. package/dist/schema/index.js +8 -7
  262. package/dist/schema/index.js.map +1 -1
  263. package/dist/schema/model.d.ts +0 -27
  264. package/dist/schema/model.d.ts.map +1 -1
  265. package/dist/schema/model.js +0 -2
  266. package/dist/schema/model.js.map +1 -1
  267. package/dist/schema/openapi.d.ts.map +1 -1
  268. package/dist/schema/openapi.js +45 -6
  269. package/dist/schema/openapi.js.map +1 -1
  270. package/dist/schema/schema.d.ts +11 -3
  271. package/dist/schema/schema.d.ts.map +1 -1
  272. package/dist/schema/schema.js +9 -2
  273. package/dist/schema/schema.js.map +1 -1
  274. package/dist/schema/serialize.d.ts +1 -4
  275. package/dist/schema/serialize.d.ts.map +1 -1
  276. package/dist/schema/serialize.js +0 -4
  277. package/dist/schema/serialize.js.map +1 -1
  278. package/dist/schema/tenancy.d.ts +1 -1
  279. package/dist/server/adapter.d.ts +1 -1
  280. package/dist/server/adapter.d.ts.map +1 -1
  281. package/dist/server/commit.d.ts +6 -14
  282. package/dist/server/commit.d.ts.map +1 -1
  283. package/dist/server/index.d.ts +1 -1
  284. package/dist/server/index.d.ts.map +1 -1
  285. package/dist/server/index.js +1 -1
  286. package/dist/server/index.js.map +1 -1
  287. package/dist/server/storageMode.d.ts +1 -1
  288. package/dist/source/{adapter.d.ts → adapters/adapter.d.ts} +10 -4
  289. package/dist/source/adapters/adapter.d.ts.map +1 -0
  290. package/dist/source/adapters/adapter.js.map +1 -0
  291. package/dist/source/adapters/adapterFactory.d.ts.map +1 -0
  292. package/dist/source/{adapterFactory.js → adapters/adapterFactory.js} +1 -1
  293. package/dist/source/adapters/adapterFactory.js.map +1 -0
  294. package/dist/source/adapters/adapterProfile.d.ts.map +1 -0
  295. package/dist/source/adapters/adapterProfile.js.map +1 -0
  296. package/dist/source/{conformance.d.ts → adapters/conformance.d.ts} +1 -1
  297. package/dist/source/adapters/conformance.d.ts.map +1 -0
  298. package/dist/source/{conformance.js → adapters/conformance.js} +1 -1
  299. package/dist/source/adapters/conformance.js.map +1 -0
  300. package/dist/source/{contract.d.ts → adapters/contract.d.ts} +8 -77
  301. package/dist/source/adapters/contract.d.ts.map +1 -0
  302. package/dist/source/{contract.js → adapters/contract.js} +12 -57
  303. package/dist/source/adapters/contract.js.map +1 -0
  304. package/dist/source/adapters/drizzle.d.ts +1 -1
  305. package/dist/source/adapters/drizzle.d.ts.map +1 -1
  306. package/dist/source/adapters/drizzle.js +21 -23
  307. package/dist/source/adapters/drizzle.js.map +1 -1
  308. package/dist/source/adapters/idempotency.d.ts.map +1 -0
  309. package/dist/source/{idempotency.js → adapters/idempotency.js} +2 -2
  310. package/dist/source/adapters/idempotency.js.map +1 -0
  311. package/dist/source/adapters/index.d.ts +21 -0
  312. package/dist/source/adapters/index.d.ts.map +1 -0
  313. package/dist/source/adapters/index.js +21 -0
  314. package/dist/source/adapters/index.js.map +1 -0
  315. package/dist/source/adapters/kysely.d.ts +1 -1
  316. package/dist/source/adapters/kysely.d.ts.map +1 -1
  317. package/dist/source/adapters/kysely.js +18 -20
  318. package/dist/source/adapters/kysely.js.map +1 -1
  319. package/dist/source/adapters/kyselyMutationCore.d.ts +2 -2
  320. package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -1
  321. package/dist/source/adapters/kyselyMutationCore.js +1 -1
  322. package/dist/source/adapters/kyselyMutationCore.js.map +1 -1
  323. package/dist/source/adapters/memory.d.ts +3 -3
  324. package/dist/source/adapters/memory.d.ts.map +1 -1
  325. package/dist/source/adapters/memory.js +19 -7
  326. package/dist/source/adapters/memory.js.map +1 -1
  327. package/dist/source/adapters/migration.d.ts +8 -0
  328. package/dist/source/adapters/migration.d.ts.map +1 -0
  329. package/dist/source/adapters/migration.js +9 -0
  330. package/dist/source/adapters/migration.js.map +1 -0
  331. package/dist/source/{migrations.d.ts → adapters/migrations.d.ts} +3 -4
  332. package/dist/source/adapters/migrations.d.ts.map +1 -0
  333. package/dist/source/{migrations.js → adapters/migrations.js} +4 -52
  334. package/dist/source/adapters/migrations.js.map +1 -0
  335. package/dist/source/adapters/prisma.d.ts +1 -1
  336. package/dist/source/adapters/prisma.d.ts.map +1 -1
  337. package/dist/source/adapters/prisma.js +21 -28
  338. package/dist/source/adapters/prisma.js.map +1 -1
  339. package/dist/source/{subjectAuthorization.d.ts → adapters/subjectAuthorization.d.ts} +1 -1
  340. package/dist/source/adapters/subjectAuthorization.d.ts.map +1 -0
  341. package/dist/source/{subjectAuthorization.js → adapters/subjectAuthorization.js} +2 -2
  342. package/dist/source/adapters/subjectAuthorization.js.map +1 -0
  343. package/dist/source/{connector.d.ts → connector/client.d.ts} +6 -1
  344. package/dist/source/connector/client.d.ts.map +1 -0
  345. package/dist/source/{connector.js → connector/client.js} +28 -11
  346. package/dist/source/connector/client.js.map +1 -0
  347. package/dist/source/connector/index.d.ts +4 -0
  348. package/dist/source/connector/index.d.ts.map +1 -0
  349. package/dist/source/connector/index.js +4 -0
  350. package/dist/source/connector/index.js.map +1 -0
  351. package/dist/source/{connectorProtocol.d.ts → connector/protocol.d.ts} +8 -1
  352. package/dist/source/connector/protocol.d.ts.map +1 -0
  353. package/dist/source/{connectorProtocol.js → connector/protocol.js} +10 -3
  354. package/dist/source/connector/protocol.js.map +1 -0
  355. package/dist/source/delivery/index.d.ts +3 -0
  356. package/dist/source/delivery/index.d.ts.map +1 -0
  357. package/dist/source/delivery/index.js +3 -0
  358. package/dist/source/delivery/index.js.map +1 -0
  359. package/dist/source/{pushQueue.d.ts → delivery/pushQueue.d.ts} +1 -1
  360. package/dist/source/delivery/pushQueue.d.ts.map +1 -0
  361. package/dist/source/{pushQueue.js → delivery/pushQueue.js} +1 -1
  362. package/dist/source/delivery/pushQueue.js.map +1 -0
  363. package/dist/source/{factory.d.ts → endpoint/factory.d.ts} +3 -3
  364. package/dist/source/endpoint/factory.d.ts.map +1 -0
  365. package/dist/source/{factory.js → endpoint/factory.js} +9 -4
  366. package/dist/source/endpoint/factory.js.map +1 -0
  367. package/dist/source/endpoint/index.d.ts +5 -0
  368. package/dist/source/endpoint/index.d.ts.map +1 -0
  369. package/dist/source/endpoint/index.js +5 -0
  370. package/dist/source/endpoint/index.js.map +1 -0
  371. package/dist/source/{next.d.ts → endpoint/next.d.ts} +2 -2
  372. package/dist/source/endpoint/next.d.ts.map +1 -0
  373. package/dist/source/{next.js → endpoint/next.js} +1 -1
  374. package/dist/source/endpoint/next.js.map +1 -0
  375. package/dist/source/{signing.d.ts → endpoint/signing.d.ts} +1 -1
  376. package/dist/source/endpoint/signing.d.ts.map +1 -0
  377. package/dist/source/{signing.js → endpoint/signing.js} +1 -1
  378. package/dist/source/endpoint/signing.js.map +1 -0
  379. package/dist/source/index.d.ts +14 -12
  380. package/dist/source/index.d.ts.map +1 -1
  381. package/dist/source/index.js +13 -11
  382. package/dist/source/index.js.map +1 -1
  383. package/dist/source/outbox/contract.d.ts +50 -0
  384. package/dist/source/outbox/contract.d.ts.map +1 -0
  385. package/dist/source/outbox/contract.js +50 -0
  386. package/dist/source/outbox/contract.js.map +1 -0
  387. package/dist/source/outbox/envelope.d.ts +9 -0
  388. package/dist/source/outbox/envelope.d.ts.map +1 -0
  389. package/dist/source/outbox/envelope.js +36 -0
  390. package/dist/source/outbox/envelope.js.map +1 -0
  391. package/dist/source/outbox/index.d.ts +11 -0
  392. package/dist/source/outbox/index.d.ts.map +1 -0
  393. package/dist/source/outbox/index.js +11 -0
  394. package/dist/source/outbox/index.js.map +1 -0
  395. package/dist/source/outbox/migrations.d.ts +4 -0
  396. package/dist/source/outbox/migrations.d.ts.map +1 -0
  397. package/dist/source/outbox/migrations.js +67 -0
  398. package/dist/source/outbox/migrations.js.map +1 -0
  399. package/dist/source/outbox/retention.d.ts +3 -0
  400. package/dist/source/outbox/retention.d.ts.map +1 -0
  401. package/dist/source/outbox/retention.js +3 -0
  402. package/dist/source/outbox/retention.js.map +1 -0
  403. package/dist/source/types.d.ts +16 -17
  404. package/dist/source/types.d.ts.map +1 -1
  405. package/dist/source/types.js +1 -0
  406. package/dist/source/types.js.map +1 -1
  407. package/dist/syncLog/contract.d.ts +19 -2
  408. package/dist/syncLog/contract.d.ts.map +1 -1
  409. package/dist/syncLog/contract.js +19 -2
  410. package/dist/syncLog/contract.js.map +1 -1
  411. package/dist/transport/{credentialLifecycle.d.ts → connection/credentialLifecycle.d.ts} +3 -3
  412. package/dist/transport/connection/credentialLifecycle.d.ts.map +1 -0
  413. package/dist/transport/{credentialLifecycle.js → connection/credentialLifecycle.js} +2 -2
  414. package/dist/transport/connection/credentialLifecycle.js.map +1 -0
  415. package/dist/transport/connection/index.d.ts +5 -0
  416. package/dist/transport/connection/index.d.ts.map +1 -0
  417. package/dist/transport/connection/index.js +5 -0
  418. package/dist/transport/connection/index.js.map +1 -0
  419. package/dist/transport/{connectionManager.d.ts → connection/manager.d.ts} +13 -5
  420. package/dist/transport/connection/manager.d.ts.map +1 -0
  421. package/dist/transport/{connectionManager.js → connection/manager.js} +6 -4
  422. package/dist/transport/connection/manager.js.map +1 -0
  423. package/dist/transport/{networkProbe.d.ts → connection/networkProbe.d.ts} +2 -2
  424. package/dist/transport/connection/networkProbe.d.ts.map +1 -0
  425. package/dist/transport/{networkProbe.js → connection/networkProbe.js} +4 -4
  426. package/dist/transport/connection/networkProbe.js.map +1 -0
  427. package/dist/transport/{httpClient.d.ts → http/client.d.ts} +26 -45
  428. package/dist/transport/http/client.d.ts.map +1 -0
  429. package/dist/transport/{httpClient.js → http/client.js} +84 -124
  430. package/dist/transport/http/client.js.map +1 -0
  431. package/dist/transport/{httpTransportHelpers.d.ts → http/helpers.d.ts} +5 -5
  432. package/dist/transport/http/helpers.d.ts.map +1 -0
  433. package/dist/transport/{httpTransportHelpers.js → http/helpers.js} +5 -5
  434. package/dist/transport/http/helpers.js.map +1 -0
  435. package/dist/transport/http/index.d.ts +6 -0
  436. package/dist/transport/http/index.d.ts.map +1 -0
  437. package/dist/transport/http/index.js +6 -0
  438. package/dist/transport/http/index.js.map +1 -0
  439. package/dist/transport/{httpOptions.d.ts → http/options.d.ts} +7 -7
  440. package/dist/transport/{httpOptions.d.ts.map → http/options.d.ts.map} +1 -1
  441. package/dist/transport/{httpOptions.js → http/options.js} +1 -1
  442. package/dist/transport/http/options.js.map +1 -0
  443. package/dist/transport/http/subscription.d.ts +16 -0
  444. package/dist/transport/http/subscription.d.ts.map +1 -0
  445. package/dist/transport/http/subscription.js +146 -0
  446. package/dist/transport/http/subscription.js.map +1 -0
  447. package/dist/transport/{httpTransport.d.ts → http/transport.d.ts} +9 -6
  448. package/dist/transport/http/transport.d.ts.map +1 -0
  449. package/dist/transport/{httpTransport.js → http/transport.js} +95 -93
  450. package/dist/transport/http/transport.js.map +1 -0
  451. package/dist/transport/index.d.ts +8 -0
  452. package/dist/transport/index.d.ts.map +1 -0
  453. package/dist/transport/index.js +8 -0
  454. package/dist/transport/index.js.map +1 -0
  455. package/dist/transport/{commitFrames.d.ts → websocket/commitFrames.d.ts} +8 -20
  456. package/dist/transport/websocket/commitFrames.d.ts.map +1 -0
  457. package/dist/transport/{commitFrames.js → websocket/commitFrames.js} +6 -25
  458. package/dist/transport/websocket/commitFrames.js.map +1 -0
  459. package/dist/transport/{wsFrameHandlers.d.ts → websocket/frameHandlers.d.ts} +5 -5
  460. package/dist/transport/websocket/frameHandlers.d.ts.map +1 -0
  461. package/dist/transport/{wsFrameHandlers.js → websocket/frameHandlers.js} +10 -51
  462. package/dist/transport/websocket/frameHandlers.js.map +1 -0
  463. package/dist/transport/{heartbeat.d.ts → websocket/heartbeat.d.ts} +1 -1
  464. package/dist/transport/websocket/heartbeat.d.ts.map +1 -0
  465. package/dist/transport/{heartbeat.js → websocket/heartbeat.js} +2 -2
  466. package/dist/transport/websocket/heartbeat.js.map +1 -0
  467. package/dist/transport/websocket/index.d.ts +6 -0
  468. package/dist/transport/websocket/index.d.ts.map +1 -0
  469. package/dist/transport/websocket/index.js +6 -0
  470. package/dist/transport/websocket/index.js.map +1 -0
  471. package/dist/transport/{wsTransport.d.ts → websocket/transport.d.ts} +13 -25
  472. package/dist/transport/websocket/transport.d.ts.map +1 -0
  473. package/dist/transport/{wsTransport.js → websocket/transport.js} +14 -14
  474. package/dist/transport/websocket/transport.js.map +1 -0
  475. package/dist/types/index.d.ts +1 -1
  476. package/dist/types/index.d.ts.map +1 -1
  477. package/dist/types/streams.d.ts +8 -48
  478. package/dist/types/streams.d.ts.map +1 -1
  479. package/dist/types/streams.js +2 -2
  480. package/dist/wire/accountResponses.d.ts +4 -72
  481. package/dist/wire/accountResponses.d.ts.map +1 -1
  482. package/dist/wire/accountResponses.js +2 -10
  483. package/dist/wire/accountResponses.js.map +1 -1
  484. package/dist/wire/frames.d.ts +6 -83
  485. package/dist/wire/frames.d.ts.map +1 -1
  486. package/dist/wire/frames.js +4 -11
  487. package/dist/wire/frames.js.map +1 -1
  488. package/dist/wire/inboundFrames.d.ts +6 -131
  489. package/dist/wire/inboundFrames.d.ts.map +1 -1
  490. package/dist/wire/inboundFrames.js +3 -3
  491. package/dist/wire/inboundFrames.js.map +1 -1
  492. package/dist/wire/index.d.ts +17 -15
  493. package/dist/wire/index.d.ts.map +1 -1
  494. package/dist/wire/index.js +11 -8
  495. package/dist/wire/index.js.map +1 -1
  496. package/dist/wire/modelMutations.d.ts +1 -32
  497. package/dist/wire/modelMutations.d.ts.map +1 -1
  498. package/dist/wire/modelMutations.js +1 -8
  499. package/dist/wire/modelMutations.js.map +1 -1
  500. package/package.json +130 -10
  501. package/src/ai-sdk/modelTools.ts +5 -5
  502. package/src/ai-sdk/updateTool.ts +5 -7
  503. package/src/auth/capability.ts +5 -0
  504. package/src/auth/capabilityLifecycle.ts +1 -1
  505. package/src/auth/credentialPolicy.ts +1 -1
  506. package/src/auth/identity.ts +7 -7
  507. package/src/auth/index.ts +4 -663
  508. package/src/auth/runtime.ts +669 -0
  509. package/src/auth/sessionMint.ts +3 -2
  510. package/src/branches.ts +3 -0
  511. package/src/{coordination/awaitClaimGrant.ts → claims/awaitGrant.ts} +4 -4
  512. package/src/{wire/claims.ts → claims/contract.ts} +1 -1
  513. package/src/{coordination → claims}/events.ts +7 -11
  514. package/src/claims/index.ts +21 -0
  515. package/src/claims/lifetime.ts +78 -0
  516. package/src/{coordination → claims}/locator.ts +3 -3
  517. package/src/claims/routes.ts +81 -0
  518. package/src/{coordination → claims}/trace.ts +5 -5
  519. package/src/{ablo.ts → client/ablo.ts} +10 -22
  520. package/src/{transactionLayer.ts → client/contract.ts} +11 -13
  521. package/src/{headlessClient.ts → client/headless.ts} +13 -15
  522. package/src/client/index.ts +10 -0
  523. package/src/{resources → client/resources}/functionalUpdate.ts +4 -4
  524. package/src/{resources → client/resources}/httpResources.ts +48 -68
  525. package/src/{resources → client/resources}/modelCreate.ts +2 -2
  526. package/src/{resources → client/resources}/modelOperations.ts +46 -55
  527. package/src/{resources → client/resources}/mutationOptions.ts +4 -17
  528. package/src/{resources → client/resources}/where.ts +1 -1
  529. package/src/{resources → client/resources}/writeOptionsSchema.ts +7 -27
  530. package/src/client/surface.ts +50 -0
  531. package/src/{transactions → commit}/confirmation/commitEnvelope.ts +2 -12
  532. package/src/{transactions → commit}/confirmation/httpCommitEnvelope.ts +1 -1
  533. package/src/{transactions → commit}/confirmation/pendingWrite.ts +1 -1
  534. package/src/{wire/commit.ts → commit/contract.ts} +11 -25
  535. package/src/{durableWrites.ts → commit/durableWrites.ts} +7 -7
  536. package/src/{transport/httpCommitRequest.ts → commit/httpRequest.ts} +6 -7
  537. package/src/commit/index.ts +16 -0
  538. package/src/{readSetContext.ts → commit/readSetContext.ts} +16 -41
  539. package/src/{commitRecordRuntime.ts → commit/recordRuntime.ts} +12 -67
  540. package/src/coordination/index.ts +4 -52
  541. package/src/coordination/schema.ts +15 -302
  542. package/src/errorCodes.ts +56 -10
  543. package/src/errors.ts +32 -10
  544. package/src/index.ts +8 -8
  545. package/src/internal/read-set.ts +3 -6
  546. package/src/observability.ts +4 -4
  547. package/src/{wire/delta.ts → observation/contract.ts} +2 -2
  548. package/src/{wire/feedEvent.ts → observation/feedContract.ts} +3 -4
  549. package/src/{transport → observation}/httpFeed.ts +3 -3
  550. package/src/observation/index.ts +12 -0
  551. package/src/{log → observation/persistence}/syncDeltaRow.ts +6 -7
  552. package/src/pricing.ts +61 -26
  553. package/src/schema/ddl.ts +3 -1
  554. package/src/schema/deployment/backfill.ts +88 -0
  555. package/src/schema/deployment/contracts.ts +119 -0
  556. package/src/schema/deployment/fingerprint.ts +13 -0
  557. package/src/schema/deployment/index.ts +81 -0
  558. package/src/schema/deployment/postgresCatalog.ts +131 -0
  559. package/src/schema/deployment/reconcile.ts +219 -0
  560. package/src/schema/deployment/sequence.ts +85 -0
  561. package/src/schema/index.ts +9 -20
  562. package/src/schema/model.ts +0 -33
  563. package/src/schema/openapi.ts +47 -7
  564. package/src/schema/schema.ts +23 -3
  565. package/src/schema/serialize.ts +0 -8
  566. package/src/server/adapter.ts +1 -1
  567. package/src/server/commit.ts +6 -14
  568. package/src/server/index.ts +1 -1
  569. package/src/source/{adapter.ts → adapters/adapter.ts} +9 -5
  570. package/src/source/{adapterFactory.ts → adapters/adapterFactory.ts} +1 -1
  571. package/src/source/{conformance.ts → adapters/conformance.ts} +1 -1
  572. package/src/source/{contract.ts → adapters/contract.ts} +16 -64
  573. package/src/source/adapters/drizzle.ts +29 -27
  574. package/src/source/{idempotency.ts → adapters/idempotency.ts} +2 -2
  575. package/src/source/adapters/index.ts +20 -0
  576. package/src/source/adapters/kysely.ts +32 -25
  577. package/src/source/adapters/kyselyMutationCore.ts +3 -3
  578. package/src/source/adapters/memory.ts +25 -9
  579. package/src/source/adapters/migration.ts +11 -0
  580. package/src/source/{migrations.ts → adapters/migrations.ts} +6 -54
  581. package/src/source/adapters/prisma.ts +33 -32
  582. package/src/source/{subjectAuthorization.ts → adapters/subjectAuthorization.ts} +2 -2
  583. package/src/source/{connector.ts → connector/client.ts} +35 -12
  584. package/src/source/connector/index.ts +3 -0
  585. package/src/source/{connectorProtocol.ts → connector/protocol.ts} +10 -2
  586. package/src/source/delivery/index.ts +2 -0
  587. package/src/source/{pushQueue.ts → delivery/pushQueue.ts} +2 -2
  588. package/src/source/{factory.ts → endpoint/factory.ts} +13 -8
  589. package/src/source/endpoint/index.ts +4 -0
  590. package/src/source/{next.ts → endpoint/next.ts} +2 -2
  591. package/src/source/{signing.ts → endpoint/signing.ts} +1 -1
  592. package/src/source/index.ts +22 -19
  593. package/src/source/outbox/contract.ts +56 -0
  594. package/src/source/outbox/envelope.ts +47 -0
  595. package/src/source/outbox/index.ts +15 -0
  596. package/src/source/outbox/migrations.ts +71 -0
  597. package/src/source/outbox/retention.ts +2 -0
  598. package/src/source/types.ts +17 -17
  599. package/src/syncLog/contract.ts +19 -2
  600. package/src/transport/{credentialLifecycle.ts → connection/credentialLifecycle.ts} +3 -3
  601. package/src/transport/connection/index.ts +4 -0
  602. package/src/transport/{connectionManager.ts → connection/manager.ts} +13 -4
  603. package/src/transport/{networkProbe.ts → connection/networkProbe.ts} +4 -4
  604. package/src/transport/{httpClient.ts → http/client.ts} +128 -209
  605. package/src/transport/{httpTransportHelpers.ts → http/helpers.ts} +7 -7
  606. package/src/transport/http/index.ts +5 -0
  607. package/src/transport/{httpOptions.ts → http/options.ts} +6 -6
  608. package/src/transport/http/subscription.ts +174 -0
  609. package/src/transport/{httpTransport.ts → http/transport.ts} +127 -113
  610. package/src/transport/index.ts +7 -0
  611. package/src/transport/{commitFrames.ts → websocket/commitFrames.ts} +14 -46
  612. package/src/transport/{wsFrameHandlers.ts → websocket/frameHandlers.ts} +11 -54
  613. package/src/transport/{heartbeat.ts → websocket/heartbeat.ts} +2 -2
  614. package/src/transport/websocket/index.ts +5 -0
  615. package/src/transport/{wsTransport.ts → websocket/transport.ts} +16 -30
  616. package/src/types/index.ts +2 -6
  617. package/src/types/streams.ts +7 -61
  618. package/src/webhooks/events.ts +1 -1
  619. package/src/wire/accountResponses.ts +3 -12
  620. package/src/wire/frames.ts +5 -15
  621. package/src/wire/inboundFrames.ts +3 -3
  622. package/src/wire/index.ts +19 -15
  623. package/src/wire/modelMutations.ts +1 -14
  624. package/dist/ablo.d.ts.map +0 -1
  625. package/dist/ablo.js.map +0 -1
  626. package/dist/commitRecordRuntime.d.ts.map +0 -1
  627. package/dist/commitRecordRuntime.js.map +0 -1
  628. package/dist/coordination/awaitClaimGrant.d.ts.map +0 -1
  629. package/dist/coordination/awaitClaimGrant.js.map +0 -1
  630. package/dist/coordination/claimHeartbeatLoop.d.ts.map +0 -1
  631. package/dist/coordination/claimHeartbeatLoop.js.map +0 -1
  632. package/dist/coordination/claimMeta.d.ts.map +0 -1
  633. package/dist/coordination/claimMeta.js.map +0 -1
  634. package/dist/coordination/events.d.ts.map +0 -1
  635. package/dist/coordination/events.js +0 -8
  636. package/dist/coordination/events.js.map +0 -1
  637. package/dist/coordination/locator.d.ts.map +0 -1
  638. package/dist/coordination/locator.js.map +0 -1
  639. package/dist/coordination/targetConflict.d.ts.map +0 -1
  640. package/dist/coordination/targetConflict.js.map +0 -1
  641. package/dist/coordination/trace.d.ts.map +0 -1
  642. package/dist/coordination/trace.js.map +0 -1
  643. package/dist/durableWrites.d.ts.map +0 -1
  644. package/dist/durableWrites.js.map +0 -1
  645. package/dist/headlessClient.d.ts.map +0 -1
  646. package/dist/log/syncDeltaRow.d.ts.map +0 -1
  647. package/dist/log/syncDeltaRow.js.map +0 -1
  648. package/dist/policy/types.d.ts +0 -226
  649. package/dist/policy/types.d.ts.map +0 -1
  650. package/dist/policy/types.js +0 -127
  651. package/dist/policy/types.js.map +0 -1
  652. package/dist/readSetContext.d.ts.map +0 -1
  653. package/dist/readSetContext.js.map +0 -1
  654. package/dist/resources/functionalUpdate.d.ts.map +0 -1
  655. package/dist/resources/functionalUpdate.js.map +0 -1
  656. package/dist/resources/httpResources.d.ts.map +0 -1
  657. package/dist/resources/httpResources.js.map +0 -1
  658. package/dist/resources/modelCreate.d.ts.map +0 -1
  659. package/dist/resources/modelCreate.js.map +0 -1
  660. package/dist/resources/modelOperations.d.ts.map +0 -1
  661. package/dist/resources/modelOperations.js.map +0 -1
  662. package/dist/resources/mutationOptions.d.ts.map +0 -1
  663. package/dist/resources/mutationOptions.js.map +0 -1
  664. package/dist/resources/where.d.ts.map +0 -1
  665. package/dist/resources/where.js.map +0 -1
  666. package/dist/resources/writeOptionsSchema.d.ts.map +0 -1
  667. package/dist/resources/writeOptionsSchema.js.map +0 -1
  668. package/dist/schema/coordination.d.ts +0 -113
  669. package/dist/schema/coordination.d.ts.map +0 -1
  670. package/dist/schema/coordination.js +0 -134
  671. package/dist/schema/coordination.js.map +0 -1
  672. package/dist/source/adapter.d.ts.map +0 -1
  673. package/dist/source/adapter.js.map +0 -1
  674. package/dist/source/adapterFactory.d.ts.map +0 -1
  675. package/dist/source/adapterFactory.js.map +0 -1
  676. package/dist/source/adapterProfile.d.ts.map +0 -1
  677. package/dist/source/adapterProfile.js.map +0 -1
  678. package/dist/source/conformance.d.ts.map +0 -1
  679. package/dist/source/conformance.js.map +0 -1
  680. package/dist/source/connector.d.ts.map +0 -1
  681. package/dist/source/connector.js.map +0 -1
  682. package/dist/source/connectorProtocol.d.ts.map +0 -1
  683. package/dist/source/connectorProtocol.js.map +0 -1
  684. package/dist/source/contract.d.ts.map +0 -1
  685. package/dist/source/contract.js.map +0 -1
  686. package/dist/source/drizzle.d.ts +0 -2
  687. package/dist/source/drizzle.d.ts.map +0 -1
  688. package/dist/source/drizzle.js +0 -2
  689. package/dist/source/drizzle.js.map +0 -1
  690. package/dist/source/factory.d.ts.map +0 -1
  691. package/dist/source/factory.js.map +0 -1
  692. package/dist/source/idempotency.d.ts.map +0 -1
  693. package/dist/source/idempotency.js.map +0 -1
  694. package/dist/source/kysely.d.ts +0 -3
  695. package/dist/source/kysely.d.ts.map +0 -1
  696. package/dist/source/kysely.js +0 -3
  697. package/dist/source/kysely.js.map +0 -1
  698. package/dist/source/migrations.d.ts.map +0 -1
  699. package/dist/source/migrations.js.map +0 -1
  700. package/dist/source/next.d.ts.map +0 -1
  701. package/dist/source/next.js.map +0 -1
  702. package/dist/source/pushQueue.d.ts.map +0 -1
  703. package/dist/source/pushQueue.js.map +0 -1
  704. package/dist/source/signing.d.ts.map +0 -1
  705. package/dist/source/signing.js.map +0 -1
  706. package/dist/source/subjectAuthorization.d.ts.map +0 -1
  707. package/dist/source/subjectAuthorization.js.map +0 -1
  708. package/dist/transactionLayer.d.ts.map +0 -1
  709. package/dist/transactionLayer.js.map +0 -1
  710. package/dist/transactions/confirmation/commitEnvelope.d.ts.map +0 -1
  711. package/dist/transactions/confirmation/commitEnvelope.js.map +0 -1
  712. package/dist/transactions/confirmation/httpCommitEnvelope.d.ts.map +0 -1
  713. package/dist/transactions/confirmation/httpCommitEnvelope.js.map +0 -1
  714. package/dist/transactions/confirmation/idempotencyKey.d.ts.map +0 -1
  715. package/dist/transactions/confirmation/idempotencyKey.js.map +0 -1
  716. package/dist/transactions/confirmation/pendingWrite.d.ts.map +0 -1
  717. package/dist/transactions/confirmation/pendingWrite.js.map +0 -1
  718. package/dist/transport/commitFrames.d.ts.map +0 -1
  719. package/dist/transport/commitFrames.js.map +0 -1
  720. package/dist/transport/connectionManager.d.ts.map +0 -1
  721. package/dist/transport/connectionManager.js.map +0 -1
  722. package/dist/transport/credentialLifecycle.d.ts.map +0 -1
  723. package/dist/transport/credentialLifecycle.js.map +0 -1
  724. package/dist/transport/heartbeat.d.ts.map +0 -1
  725. package/dist/transport/heartbeat.js.map +0 -1
  726. package/dist/transport/httpClient.d.ts.map +0 -1
  727. package/dist/transport/httpClient.js.map +0 -1
  728. package/dist/transport/httpCommitRequest.d.ts.map +0 -1
  729. package/dist/transport/httpCommitRequest.js.map +0 -1
  730. package/dist/transport/httpFeed.d.ts +0 -4
  731. package/dist/transport/httpFeed.d.ts.map +0 -1
  732. package/dist/transport/httpOptions.js.map +0 -1
  733. package/dist/transport/httpTransport.d.ts.map +0 -1
  734. package/dist/transport/httpTransport.js.map +0 -1
  735. package/dist/transport/httpTransportHelpers.d.ts.map +0 -1
  736. package/dist/transport/httpTransportHelpers.js.map +0 -1
  737. package/dist/transport/networkProbe.d.ts.map +0 -1
  738. package/dist/transport/networkProbe.js.map +0 -1
  739. package/dist/transport/wsFrameHandlers.d.ts.map +0 -1
  740. package/dist/transport/wsFrameHandlers.js.map +0 -1
  741. package/dist/transport/wsTransport.d.ts.map +0 -1
  742. package/dist/transport/wsTransport.js.map +0 -1
  743. package/dist/wire/claimEvent.d.ts.map +0 -1
  744. package/dist/wire/claimEvent.js.map +0 -1
  745. package/dist/wire/claims.d.ts.map +0 -1
  746. package/dist/wire/claims.js.map +0 -1
  747. package/dist/wire/commit.d.ts +0 -2866
  748. package/dist/wire/commit.d.ts.map +0 -1
  749. package/dist/wire/commit.js.map +0 -1
  750. package/dist/wire/delta.d.ts.map +0 -1
  751. package/dist/wire/delta.js.map +0 -1
  752. package/dist/wire/deltaDelivery.d.ts.map +0 -1
  753. package/dist/wire/deltaDelivery.js.map +0 -1
  754. package/dist/wire/feedCursor.d.ts.map +0 -1
  755. package/dist/wire/feedCursor.js.map +0 -1
  756. package/dist/wire/feedEvent.d.ts.map +0 -1
  757. package/dist/wire/feedEvent.js.map +0 -1
  758. package/src/policy/types.ts +0 -300
  759. package/src/schema/coordination.ts +0 -161
  760. package/src/source/drizzle.ts +0 -1
  761. package/src/source/kysely.ts +0 -2
  762. /package/dist/{coordination → claims}/targetConflict.d.ts +0 -0
  763. /package/dist/{coordination → claims}/targetConflict.js +0 -0
  764. /package/dist/{resources → client/resources}/mutationOptions.js +0 -0
  765. /package/dist/{resources → client/resources}/where.d.ts +0 -0
  766. /package/dist/{transactions → commit}/confirmation/httpCommitEnvelope.d.ts +0 -0
  767. /package/dist/{transactions → commit}/confirmation/idempotencyKey.d.ts +0 -0
  768. /package/dist/{transactions → commit}/confirmation/idempotencyKey.js +0 -0
  769. /package/dist/source/{adapter.js → adapters/adapter.js} +0 -0
  770. /package/dist/source/{adapterFactory.d.ts → adapters/adapterFactory.d.ts} +0 -0
  771. /package/dist/source/{adapterProfile.d.ts → adapters/adapterProfile.d.ts} +0 -0
  772. /package/dist/source/{adapterProfile.js → adapters/adapterProfile.js} +0 -0
  773. /package/dist/source/{idempotency.d.ts → adapters/idempotency.d.ts} +0 -0
  774. /package/src/{wire/claimEvent.ts → claims/eventContract.ts} +0 -0
  775. /package/src/{coordination/claimHeartbeatLoop.ts → claims/heartbeat.ts} +0 -0
  776. /package/src/{coordination/claimMeta.ts → claims/meta.ts} +0 -0
  777. /package/src/{coordination → claims}/targetConflict.ts +0 -0
  778. /package/src/{transactions → commit}/confirmation/idempotencyKey.ts +0 -0
  779. /package/src/{wire/feedCursor.ts → observation/cursor.ts} +0 -0
  780. /package/src/{wire/deltaDelivery.ts → observation/deliveryContract.ts} +0 -0
  781. /package/src/source/{adapterProfile.ts → adapters/adapterProfile.ts} +0 -0
@@ -56,16 +56,16 @@ export {
56
56
  type SourceSignatureOptions,
57
57
  type SourceSignatureVerificationOptions,
58
58
  type SourceSignatureVerificationResult,
59
- } from './signing.js';
59
+ } from './endpoint/signing.js';
60
60
 
61
61
  export {
62
62
  dataSource,
63
63
  type DataSourceOptions,
64
- } from './factory.js';
64
+ } from './endpoint/factory.js';
65
65
 
66
66
  export {
67
67
  sourceSubjectCreateLockKey,
68
- } from './subjectAuthorization.js';
68
+ } from './adapters/subjectAuthorization.js';
69
69
 
70
70
  export {
71
71
  createPushQueue,
@@ -75,7 +75,7 @@ export {
75
75
  type PushQueueItem,
76
76
  type PushQueueOptions,
77
77
  type PushQueueStorage,
78
- } from './pushQueue.js';
78
+ } from './delivery/pushQueue.js';
79
79
 
80
80
  // The reverse-channel connector — an outbound transport for the load, list, and
81
81
  // commit leg, and the dial-out counterpart to `createPushQueue`. It lets you serve
@@ -84,14 +84,16 @@ export {
84
84
  export {
85
85
  createSourceConnector,
86
86
  DEFAULT_RECONNECT_SCHEDULE,
87
+ SourceConnectorSupersededError,
87
88
  type SourceConnector,
88
89
  type SourceConnectorOptions,
89
90
  type ConnectorWebSocket,
90
91
  type ConnectorWebSocketFactory,
91
92
  type ConnectorStatus,
92
- } from './connector.js';
93
+ } from './connector/client.js';
93
94
  export {
94
95
  SOURCE_CONNECTOR_PROTOCOL_VERSION,
96
+ SOURCE_CONNECTOR_SUPERSEDED_CLOSE_CODE,
95
97
  SOURCE_CONNECTOR_WS_PATH,
96
98
  WS_SOURCE_SUBPROTOCOL,
97
99
  sourceConnectorSubprotocols,
@@ -105,7 +107,7 @@ export {
105
107
  type RequestFrame,
106
108
  type ResponseFrame,
107
109
  type ErrorFrame,
108
- } from './connectorProtocol.js';
110
+ } from './connector/protocol.js';
109
111
 
110
112
  // The Data Source adapter interface and its Zod contract, with per-ORM implementations.
111
113
  export {
@@ -114,7 +116,7 @@ export {
114
116
  type AdapterReadRequest,
115
117
  type AdapterCommitResult,
116
118
  type Row as AdapterRow,
117
- } from './adapter.js';
119
+ } from './adapters/adapter.js';
118
120
  export {
119
121
  adapterBindingSchema,
120
122
  databaseAdapterProfileSchema,
@@ -127,8 +129,8 @@ export {
127
129
  type DatabaseKind,
128
130
  type ObservationProfile,
129
131
  type PostgresBinding,
130
- } from './adapterProfile.js';
131
- export { defineDatabaseAdapter } from './adapterFactory.js';
132
+ } from './adapters/adapterProfile.js';
133
+ export { defineDatabaseAdapter } from './adapters/adapterFactory.js';
132
134
  export {
133
135
  operationSchema,
134
136
  operationTypeSchema,
@@ -137,25 +139,26 @@ export {
137
139
  sourceCommitEchoMarkerSchema,
138
140
  sourceCommitEchoIntentSchema,
139
141
  changeSetSchema,
140
- outboxEventSchema,
141
- eventsPageSchema,
142
- migrationSchema,
143
142
  adapterCapabilitiesSchema,
144
143
  type Operation,
145
144
  type ChangeSet,
146
- type OutboxEvent,
147
- type EventsPage,
148
- type Migration,
149
145
  type AdapterCapabilities,
150
146
  type SourceCommitEchoMarkerWire,
151
147
  type SourceCommitEchoIntent,
152
- } from './contract.js';
148
+ } from './adapters/contract.js';
149
+ export { migrationSchema, type Migration } from './adapters/migration.js';
150
+ export {
151
+ endpointOutboxMigrations,
152
+ eventsPageSchema,
153
+ outboxEventSchema,
154
+ type EventsPage,
155
+ type OutboxEvent,
156
+ } from './outbox/index.js';
153
157
  export { prismaDataSource, type PrismaLike, type PrismaDataSourceOptions } from './adapters/prisma.js';
154
158
  export {
155
159
  adapterTableMigrations,
156
- endpointOutboxMigrations,
157
160
  idempotencyLedgerMigrations,
158
- } from './migrations.js';
161
+ } from './adapters/migrations.js';
159
162
  export {
160
163
  createKyselyMutationAdapter,
161
164
  createKyselyMutationCore,
@@ -183,7 +186,7 @@ export {
183
186
  encodeSourceEchoTransactionId,
184
187
  decodeSourceEchoTransactionId,
185
188
  type SourceEchoTransactionId,
186
- } from './idempotency.js';
189
+ } from './adapters/idempotency.js';
187
190
  // What Ablo leaves inside a customer's database, declared once — read by the
188
191
  // setup SQL, the replication runtime, and the audit that reports it back.
189
192
  export {
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ import { commitOperationTypeSchema } from '../../coordination/schema.js';
3
+ import { correlationIdSchema } from '../../commit/contract.js';
4
+ import { ABLO_SOURCE_CLIENT_TX_ID_MAX_LENGTH } from '../types.js';
5
+
6
+ const jsonObject = z.record(z.string(), z.unknown());
7
+
8
+ /** The immutable, versioned event envelope stored in `ablo_outbox`. */
9
+ export const outboxEventSchema = z.object({
10
+ /** Version 1 predates durable routes; version 2 captures them atomically. */
11
+ version: z.union([z.literal(1), z.literal(2)]),
12
+ /** Stable, globally unique replay-protection identity. */
13
+ id: z.string().min(1),
14
+ model: z.string().min(1),
15
+ entityId: z.string().min(1),
16
+ type: commitOperationTypeSchema,
17
+ /** Declared schema-field names, never physical database column names. */
18
+ data: jsonObject.nullish(),
19
+ /** Exact routes captured in the writing transaction; version 2 requires them. */
20
+ syncGroups: z.array(z.string().min(1)).readonly().optional(),
21
+ organizationId: z.string().nullish(),
22
+ clientTxId: z.string().nullish(),
23
+ correlationId: correlationIdSchema.nullish(),
24
+ transactionId: z
25
+ .string()
26
+ .min(1)
27
+ .max(ABLO_SOURCE_CLIENT_TX_ID_MAX_LENGTH)
28
+ .nullish(),
29
+ occurredAt: z.number().nullish(),
30
+ /** Monotonic database position, represented as a string to preserve bigint. */
31
+ cursor: z.string().min(1),
32
+ }).superRefine((event, ctx) => {
33
+ if (event.version === 1 && event.syncGroups !== undefined) {
34
+ ctx.addIssue({
35
+ code: 'custom',
36
+ path: ['syncGroups'],
37
+ message: 'Outbox event version 1 cannot carry syncGroups',
38
+ });
39
+ }
40
+ if (event.version === 2 && event.syncGroups === undefined) {
41
+ ctx.addIssue({
42
+ code: 'custom',
43
+ path: ['syncGroups'],
44
+ message: 'Outbox event version 2 requires durable syncGroups',
45
+ });
46
+ }
47
+ });
48
+
49
+ export type OutboxEvent = z.infer<typeof outboxEventSchema>;
50
+
51
+ export const eventsPageSchema = z.object({
52
+ events: z.array(outboxEventSchema),
53
+ nextCursor: z.string().nullable(),
54
+ });
55
+
56
+ export type EventsPage = z.infer<typeof eventsPageSchema>;
@@ -0,0 +1,47 @@
1
+ import { AbloValidationError } from '../../errors.js';
2
+ import { outboxEventSchema, type OutboxEvent } from './contract.js';
3
+
4
+ /** Decode the versioned routing envelope without turning absence into `[]`. */
5
+ export function decodeOutboxEventEnvelope(
6
+ eventVersion: unknown,
7
+ syncGroups: unknown,
8
+ cursor: unknown,
9
+ ): { readonly version: 1 | 2; readonly syncGroups?: readonly string[] } {
10
+ const version = eventVersion == null
11
+ ? (Array.isArray(syncGroups) ? 2 : 1)
12
+ : Number(eventVersion);
13
+ if (version !== 1 && version !== 2) {
14
+ throw new AbloValidationError(
15
+ `Endpoint outbox event at cursor ${String(cursor)} has unsupported event version ${String(eventVersion)}.`,
16
+ { code: 'source_event_invalid' },
17
+ );
18
+ }
19
+ if (version === 2 && !Array.isArray(syncGroups)) {
20
+ throw new AbloValidationError(
21
+ `Endpoint outbox event at cursor ${String(cursor)} is version 2 but has no durable sync_groups.`,
22
+ { code: 'source_event_invalid' },
23
+ );
24
+ }
25
+ return version === 2
26
+ ? { version, syncGroups: syncGroups as readonly string[] }
27
+ : { version };
28
+ }
29
+
30
+ /** Canonical snake_case database row → versioned source event decoder. */
31
+ export function decodeDatabaseOutboxEvent(row: Readonly<Record<string, unknown>>): OutboxEvent {
32
+ const envelope = decodeOutboxEventEnvelope(row.event_version, row.sync_groups, row.cursor);
33
+ return outboxEventSchema.parse({
34
+ ...envelope,
35
+ id: row.id,
36
+ model: row.model,
37
+ entityId: row.entity_id,
38
+ type: row.type,
39
+ data: typeof row.data === 'string' ? JSON.parse(row.data) : row.data ?? null,
40
+ organizationId: row.organization_id ?? null,
41
+ clientTxId: row.client_tx_id ?? null,
42
+ correlationId: row.correlation_id ?? null,
43
+ transactionId: row.transaction_id ?? null,
44
+ occurredAt: row.occurred_at != null ? Number(row.occurred_at) : null,
45
+ cursor: String(row.cursor),
46
+ });
47
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Endpoint transactional-outbox subsystem.
3
+ *
4
+ * Start here, then descend into contract, envelope, migrations, or retention.
5
+ * ORM adapters depend on this boundary; the subsystem never depends on them.
6
+ */
7
+ export {
8
+ outboxEventSchema,
9
+ eventsPageSchema,
10
+ type OutboxEvent,
11
+ type EventsPage,
12
+ } from './contract.js';
13
+ export { decodeDatabaseOutboxEvent, decodeOutboxEventEnvelope } from './envelope.js';
14
+ export { endpointOutboxMigrations } from './migrations.js';
15
+ export { ENDPOINT_OUTBOX_PRUNE_BATCH_SIZE } from './retention.js';
@@ -0,0 +1,71 @@
1
+ import type { Migration } from '../adapters/migration.js';
2
+
3
+ function quoteIdent(value: string): string {
4
+ return `"${value.replace(/"/g, '""')}"`;
5
+ }
6
+
7
+ function quoteLiteral(value: string): string {
8
+ return `'${value.replace(/'/g, "''")}'`;
9
+ }
10
+
11
+ function qualified(schema: string, relation: string): string {
12
+ return `${quoteIdent(schema)}.${quoteIdent(relation)}`;
13
+ }
14
+
15
+ /** Schema for the endpoint-only, versioned transactional outbox. */
16
+ export function endpointOutboxMigrations(schema = 'public'): readonly Migration[] {
17
+ const outbox = qualified(schema, 'ablo_outbox');
18
+ return [
19
+ {
20
+ name: 'ablo_outbox',
21
+ up: `CREATE TABLE IF NOT EXISTS ${outbox} (
22
+ cursor BIGSERIAL PRIMARY KEY,
23
+ id TEXT NOT NULL UNIQUE,
24
+ model TEXT NOT NULL,
25
+ entity_id TEXT NOT NULL,
26
+ type TEXT NOT NULL,
27
+ data JSONB,
28
+ event_version SMALLINT NOT NULL DEFAULT 1,
29
+ sync_groups TEXT[],
30
+ organization_id TEXT,
31
+ client_tx_id TEXT,
32
+ correlation_id TEXT,
33
+ transaction_id TEXT,
34
+ occurred_at BIGINT,
35
+ created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
36
+ CONSTRAINT ablo_outbox_event_envelope_valid CHECK (
37
+ (event_version = 1 AND sync_groups IS NULL) OR
38
+ (event_version = 2 AND sync_groups IS NOT NULL)
39
+ )
40
+ );`,
41
+ },
42
+ {
43
+ name: 'ablo_outbox_add_correlation',
44
+ up: `ALTER TABLE ${outbox}
45
+ ADD COLUMN IF NOT EXISTS correlation_id TEXT;
46
+ ALTER TABLE ${outbox}
47
+ ADD COLUMN IF NOT EXISTS transaction_id TEXT;`,
48
+ },
49
+ {
50
+ name: 'ablo_outbox_add_event_version_and_sync_groups',
51
+ up: `ALTER TABLE ${outbox}
52
+ ADD COLUMN IF NOT EXISTS event_version SMALLINT NOT NULL DEFAULT 1;
53
+ ALTER TABLE ${outbox}
54
+ ADD COLUMN IF NOT EXISTS sync_groups TEXT[];
55
+ DO $$
56
+ BEGIN
57
+ IF NOT EXISTS (
58
+ SELECT 1 FROM pg_constraint
59
+ WHERE conrelid = to_regclass(${quoteLiteral(outbox)})
60
+ AND conname = 'ablo_outbox_event_envelope_valid'
61
+ ) THEN
62
+ ALTER TABLE ${outbox}
63
+ ADD CONSTRAINT ablo_outbox_event_envelope_valid CHECK (
64
+ (event_version = 1 AND sync_groups IS NULL) OR
65
+ (event_version = 2 AND sync_groups IS NOT NULL)
66
+ ) NOT VALID;
67
+ END IF;
68
+ END $$;`,
69
+ },
70
+ ];
71
+ }
@@ -0,0 +1,2 @@
1
+ /** Bounds acknowledgement cleanup when an installation retained a large history. */
2
+ export const ENDPOINT_OUTBOX_PRUNE_BATCH_SIZE = 1_000;
@@ -11,7 +11,7 @@
11
11
  */
12
12
 
13
13
  import { AbloValidationError } from '../errors.js';
14
- import type { CommitOperationType, OnStaleMode } from '../coordination/schema.js';
14
+ import type { CommitOperationType } from '../coordination/schema.js';
15
15
  import type { ParticipantKind } from '../types/participant.js';
16
16
 
17
17
  /** A scalar value that can appear in a source filter. */
@@ -93,21 +93,13 @@ export interface SourceRequestContext {
93
93
  /** Trusted project selected by the authenticating credential. */
94
94
  readonly projectId?: string;
95
95
  readonly syncGroups?: readonly string[];
96
- /**
97
- * @deprecated Renamed to {@link SourceRequestContext.syncGroups}. Removed in
98
- * 0.58.0. Ablo populates both spellings with the same value for this release,
99
- * so an adapter still reading this one gets the groups rather than
100
- * `undefined`, which on a routing field would read as "no groups" rather than
101
- * as a missing field.
102
- */
103
- readonly requiredSyncGroups?: readonly string[];
104
96
  }
105
97
 
106
98
  /**
107
99
  * A single change Ablo asks your source to apply — a create, update, delete,
108
100
  * archive, or unarchive of one row of `model`. Operations arrive in your
109
- * `commit` handler through {@link SourceCommitParams}. `onStale` says what to
110
- * do when the row changed since it was read at `readAt`.
101
+ * `commit` handler through {@link SourceCommitParams}. A `readAt` makes the
102
+ * operation conditional and a stale value rejects it.
111
103
  */
112
104
  export interface SourceOperation {
113
105
  readonly type: CommitOperationType;
@@ -117,7 +109,6 @@ export interface SourceOperation {
117
109
  readonly where?: Record<string, unknown> | null;
118
110
  readonly transactionId?: string | null;
119
111
  readonly readAt?: number | null;
120
- readonly onStale?: OnStaleMode | null;
121
112
  }
122
113
 
123
114
  /**
@@ -148,6 +139,8 @@ export interface SourceDelta {
148
139
  * the event is durably appended. External writes omit them.
149
140
  */
150
141
  export interface SourceEvent {
142
+ /** Event envelope version. When omitted, syncGroups implies v2; their absence implies v1. */
143
+ readonly version?: 1 | 2;
151
144
  /**
152
145
  * A globally unique event id from your outbox. Ablo uses it for replay
153
146
  * protection, so re-delivering the same id is a no-op.
@@ -173,8 +166,8 @@ export interface SourceEvent {
173
166
  * a tenant boundary.
174
167
  */
175
168
  readonly data?: Record<string, unknown> | null;
176
- /** Exact record routes captured while the changed row was transactionally visible. */
177
- readonly syncGroups: readonly string[];
169
+ /** Exact record routes captured while the changed row was transactionally visible. Required in version 2. */
170
+ readonly syncGroups?: readonly string[];
178
171
  /**
179
172
  * The tenant this event belongs to. Populate it from the row's organization
180
173
  * column for multi-tenant data; a single-tenant source may omit it and let
@@ -253,6 +246,7 @@ export function sourceEventForOperation(
253
246
  const occurredAt = normalizeEventOccurredAt(options.occurredAt);
254
247
  const transactionId = options.transactionId ?? options.operation.transactionId ?? undefined;
255
248
  return {
249
+ version: 2,
256
250
  id: options.eventId,
257
251
  model: options.operation.model,
258
252
  entityId,
@@ -381,11 +375,14 @@ export interface SourceEventsResult {
381
375
  */
382
376
  export type SourceEventsHandler<TAuth = unknown> = (params: {
383
377
  /**
384
- * The cursor from a previous `events` call, or undefined on the first poll of
385
- * a newly connected source. You decide what it encodes — a last event id, a
386
- * timestamp, a log sequence number.
378
+ * The consumer position Ablo has durably committed, or undefined on the first
379
+ * poll of a newly connected source. It acknowledges every event through that
380
+ * position, so a handler may prune them before returning the next page. You
381
+ * decide what it encodes — a last event id, timestamp, or log sequence number.
387
382
  */
388
383
  readonly cursor?: string;
384
+ /** Explicit durable acknowledgement. Safe to use for bounded retention cleanup. */
385
+ readonly acknowledgedThrough?: string;
389
386
  /**
390
387
  * A suggested upper bound on how many events to return. You may return fewer;
391
388
  * returning many more risks tripping Ablo's per-poll cap.
@@ -539,7 +536,10 @@ export interface SourceCommitRequest {
539
536
 
540
537
  export interface SourceEventsRequest {
541
538
  readonly type: 'events';
539
+ /** Exclusive read position. */
542
540
  readonly cursor?: string;
541
+ /** Durable consumer acknowledgement, independent of the read position. */
542
+ readonly acknowledgedThrough?: string;
543
543
  readonly limit?: number;
544
544
  readonly scope?: SourceRequestContext;
545
545
  }
@@ -15,8 +15,10 @@
15
15
  * | `current_settled_sync_id()` | nothing at or below is still in flight |
16
16
  * | `getCommittedSyncId` | committed, without waiting for the barrier|
17
17
  * | `sync_broadcast_cursors.published_through` | the fan-out published through |
18
- * | `Client.lastSentSyncId` | this recipient was offered through |
19
- * | `Client.lastAckedSyncId` | this recipient confirmed through |
18
+ * | `log_subscriptions.position` | this participant was served through, in
19
+ * the area the same row names |
20
+ * | `Client.lastSentSyncId` | this socket was offered through |
21
+ * | `Client.lastAckedSyncId` | this socket confirmed through |
20
22
  * | `LogPosition.applied` | the client processed on arrival through |
21
23
  * | `LogPosition.persisted` | the client durably holds through, in
22
24
  * DELIVERED order, not numeric order |
@@ -36,6 +38,21 @@
36
38
  * own head, re-taking the plane lock on every catch-up poll
37
39
  * (docs/plans/delivery-verify-at-read.md). Before comparing two positions, say
38
40
  * out loud which owner each belongs to.
41
+ *
42
+ * ## The owner is a relation, not just a name
43
+ *
44
+ * This doc did its job on the NUMBER and could not do it for the relation that
45
+ * holds one. `log_subscriptions.position` is the durable answer to "where is
46
+ * this participant, in this area" (ADR 0036) — one record per
47
+ * `(participant, area)`, with no connection axis, from which delivery and
48
+ * liveness are projected. The two `Client` fields above are deliberately NOT
49
+ * folded into it: they are an in-flight socket's frame accounting, which is why
50
+ * they name a socket rather than a participant.
51
+ *
52
+ * The rest of the table is ENGINE-owned and stays separate on purpose. The
53
+ * fan-out's progress, the compaction checkpoint and the settled head answer a
54
+ * different question from "where is this participant", and collapsing them
55
+ * would recreate the exact comparison this doc warns about.
39
56
  */
40
57
 
41
58
  import { z } from 'zod';
@@ -7,14 +7,14 @@
7
7
  * so the two can reference each other without an import cycle.
8
8
  */
9
9
 
10
- import type { RecoveryClass } from '../errorCodes.js';
11
- import { noopLogger, type Logger } from '../logger.js';
10
+ import type { RecoveryClass } from '../../errorCodes.js';
11
+ import { noopLogger, type Logger } from '../../logger.js';
12
12
  import {
13
13
  credentialExpiry,
14
14
  credentialToken,
15
15
  type CredentialProvider,
16
16
  type CredentialProviderResult,
17
- } from '../auth/credentialResult.js';
17
+ } from '../../auth/credentialResult.js';
18
18
 
19
19
  /**
20
20
  * Tri-state outcome of a credential re-mint, mirroring the `getToken`
@@ -0,0 +1,4 @@
1
+ /** Shared connection lifecycle boundary. */
2
+ export * from './manager.js';
3
+ export * from './credentialLifecycle.js';
4
+ export * from './networkProbe.js';
@@ -41,13 +41,13 @@
41
41
  */
42
42
 
43
43
  import { probeNetwork, type ProbeResult } from './networkProbe.js';
44
- import type { AuthTokenGetter } from '../auth/credentialSource.js';
44
+ import type { AuthTokenGetter } from '../../auth/credentialSource.js';
45
45
  import type { CredentialRefreshOutcome } from './credentialLifecycle.js';
46
- import { noopLogger, type Logger } from '../logger.js';
46
+ import { noopLogger, type Logger } from '../../logger.js';
47
47
  import {
48
48
  noopSocketObservability,
49
49
  type TransportObservability,
50
- } from '../observability.js';
50
+ } from '../../observability.js';
51
51
 
52
52
  // ─── State ────────────────────────────────────────────────────────────────
53
53
 
@@ -134,6 +134,13 @@ export interface ConnectionManagerOptions {
134
134
  getAuthToken?: AuthTokenGetter;
135
135
  /** Override retry ceilings / jitter. Production should leave defaults. */
136
136
  backoff?: Partial<typeof DEFAULT_BACKOFF>;
137
+ /**
138
+ * Connectivity probe. Defaults to {@link probeNetwork}. Declared so a caller
139
+ * can drive recovery from a deterministic outcome: `probeNetwork` is a
140
+ * sibling inside this module, so a test cannot reach it through the
141
+ * package's `transport/connection` boundary to substitute one.
142
+ */
143
+ probe?: typeof probeNetwork;
137
144
  /** Where transitions are logged. Defaults to silent. */
138
145
  logger?: Logger;
139
146
  /** Where dead-end states are reported. Defaults to silent. */
@@ -179,6 +186,7 @@ export class ConnectionManager {
179
186
  private readonly baseUrl?: string;
180
187
  private readonly getAuthToken?: AuthTokenGetter;
181
188
  private readonly backoff: typeof DEFAULT_BACKOFF;
189
+ private readonly probe: typeof probeNetwork;
182
190
  private readonly logger: Logger;
183
191
  private readonly observability: TransportObservability;
184
192
 
@@ -190,6 +198,7 @@ export class ConnectionManager {
190
198
  this.baseUrl = options.baseUrl;
191
199
  this.getAuthToken = options.getAuthToken;
192
200
  this.backoff = { ...DEFAULT_BACKOFF, ...(options.backoff ?? {}) };
201
+ this.probe = options.probe ?? probeNetwork;
193
202
  this.logger = options.logger ?? noopLogger;
194
203
  this.observability = options.observability ?? noopSocketObservability;
195
204
  }
@@ -539,7 +548,7 @@ export class ConnectionManager {
539
548
 
540
549
  private async runProbe(): Promise<void> {
541
550
  try {
542
- const result = await probeNetwork({
551
+ const result = await this.probe({
543
552
  baseUrl: this.baseUrl,
544
553
  getAuthToken: this.getAuthToken,
545
554
  logger: this.logger,
@@ -23,10 +23,10 @@
23
23
  */
24
24
 
25
25
  import { z } from 'zod';
26
- import { classifyRecovery } from '../errors.js';
27
- import { withAuthHeaders, type AuthTokenGetter } from '../auth/credentialSource.js';
28
- import { ABLO_DEFAULT_BASE_URL } from '../auth/hostedEndpoints.js';
29
- import { noopLogger, type Logger } from '../logger.js';
26
+ import { classifyRecovery } from '../../errors.js';
27
+ import { withAuthHeaders, type AuthTokenGetter } from '../../auth/credentialSource.js';
28
+ import { ABLO_DEFAULT_BASE_URL } from '../../auth/hostedEndpoints.js';
29
+ import { noopLogger, type Logger } from '../../logger.js';
30
30
 
31
31
  /**
32
32
  * The complete set of probe outcomes. Each value carries both reachability and