@abloatai/transaction 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (723) hide show
  1. package/CONVENTIONS.md +83 -0
  2. package/README.md +48 -0
  3. package/dist/ablo.d.ts +90 -0
  4. package/dist/ablo.d.ts.map +1 -0
  5. package/dist/ablo.js +34 -0
  6. package/dist/ablo.js.map +1 -0
  7. package/dist/ai-sdk/coordinatedTool.d.ts +123 -0
  8. package/dist/ai-sdk/coordinatedTool.d.ts.map +1 -0
  9. package/dist/ai-sdk/coordinatedTool.js +135 -0
  10. package/dist/ai-sdk/coordinatedTool.js.map +1 -0
  11. package/dist/ai-sdk/index.d.ts +2 -0
  12. package/dist/ai-sdk/index.d.ts.map +1 -0
  13. package/dist/ai-sdk/index.js +2 -0
  14. package/dist/ai-sdk/index.js.map +1 -0
  15. package/dist/auth/apiKey.d.ts +154 -0
  16. package/dist/auth/apiKey.d.ts.map +1 -0
  17. package/dist/auth/apiKey.js +408 -0
  18. package/dist/auth/apiKey.js.map +1 -0
  19. package/dist/auth/bootstrapScope.d.ts +16 -0
  20. package/dist/auth/bootstrapScope.d.ts.map +1 -0
  21. package/dist/auth/bootstrapScope.js +2 -0
  22. package/dist/auth/bootstrapScope.js.map +1 -0
  23. package/dist/auth/browserCredentialSafety.d.ts +7 -0
  24. package/dist/auth/browserCredentialSafety.d.ts.map +1 -0
  25. package/dist/auth/browserCredentialSafety.js +29 -0
  26. package/dist/auth/browserCredentialSafety.js.map +1 -0
  27. package/dist/auth/capability.d.ts +241 -0
  28. package/dist/auth/capability.d.ts.map +1 -0
  29. package/dist/auth/capability.js +253 -0
  30. package/dist/auth/capability.js.map +1 -0
  31. package/dist/auth/capabilityLifecycle.d.ts +47 -0
  32. package/dist/auth/capabilityLifecycle.d.ts.map +1 -0
  33. package/dist/auth/capabilityLifecycle.js +108 -0
  34. package/dist/auth/capabilityLifecycle.js.map +1 -0
  35. package/dist/auth/credentialEndpoint.d.ts +10 -0
  36. package/dist/auth/credentialEndpoint.d.ts.map +1 -0
  37. package/dist/auth/credentialEndpoint.js +58 -0
  38. package/dist/auth/credentialEndpoint.js.map +1 -0
  39. package/dist/auth/credentialEndpointProtocol.d.ts +24 -0
  40. package/dist/auth/credentialEndpointProtocol.d.ts.map +1 -0
  41. package/dist/auth/credentialEndpointProtocol.js +34 -0
  42. package/dist/auth/credentialEndpointProtocol.js.map +1 -0
  43. package/dist/auth/credentialKind.d.ts +4 -0
  44. package/dist/auth/credentialKind.d.ts.map +1 -0
  45. package/dist/auth/credentialKind.js +15 -0
  46. package/dist/auth/credentialKind.js.map +1 -0
  47. package/dist/auth/credentialPolicy.d.ts +141 -0
  48. package/dist/auth/credentialPolicy.d.ts.map +1 -0
  49. package/dist/auth/credentialPolicy.js +113 -0
  50. package/dist/auth/credentialPolicy.js.map +1 -0
  51. package/dist/auth/credentialResult.d.ts +7 -0
  52. package/dist/auth/credentialResult.d.ts.map +1 -0
  53. package/dist/auth/credentialResult.js +9 -0
  54. package/dist/auth/credentialResult.js.map +1 -0
  55. package/dist/auth/credentialSource.d.ts +31 -0
  56. package/dist/auth/credentialSource.d.ts.map +1 -0
  57. package/dist/auth/credentialSource.js +56 -0
  58. package/dist/auth/credentialSource.js.map +1 -0
  59. package/dist/auth/hostedEndpoints.d.ts +22 -0
  60. package/dist/auth/hostedEndpoints.d.ts.map +1 -0
  61. package/dist/auth/hostedEndpoints.js +22 -0
  62. package/dist/auth/hostedEndpoints.js.map +1 -0
  63. package/dist/auth/identity.d.ts +62 -0
  64. package/dist/auth/identity.d.ts.map +1 -0
  65. package/dist/auth/identity.js +224 -0
  66. package/dist/auth/identity.js.map +1 -0
  67. package/dist/auth/index.d.ts +189 -0
  68. package/dist/auth/index.d.ts.map +1 -0
  69. package/dist/auth/index.js +312 -0
  70. package/dist/auth/index.js.map +1 -0
  71. package/dist/auth/schemas.d.ts +41 -0
  72. package/dist/auth/schemas.d.ts.map +1 -0
  73. package/dist/auth/schemas.js +69 -0
  74. package/dist/auth/schemas.js.map +1 -0
  75. package/dist/auth/sessionMint.d.ts +29 -0
  76. package/dist/auth/sessionMint.d.ts.map +1 -0
  77. package/dist/auth/sessionMint.js +92 -0
  78. package/dist/auth/sessionMint.js.map +1 -0
  79. package/dist/auth/token.d.ts +4 -0
  80. package/dist/auth/token.d.ts.map +1 -0
  81. package/dist/auth/token.js +4 -0
  82. package/dist/auth/token.js.map +1 -0
  83. package/dist/batching/index.d.ts +56 -0
  84. package/dist/batching/index.d.ts.map +1 -0
  85. package/dist/batching/index.js +148 -0
  86. package/dist/batching/index.js.map +1 -0
  87. package/dist/coordination/awaitClaimGrant.d.ts +57 -0
  88. package/dist/coordination/awaitClaimGrant.d.ts.map +1 -0
  89. package/dist/coordination/awaitClaimGrant.js +138 -0
  90. package/dist/coordination/awaitClaimGrant.js.map +1 -0
  91. package/dist/coordination/claimHeartbeatLoop.d.ts +85 -0
  92. package/dist/coordination/claimHeartbeatLoop.d.ts.map +1 -0
  93. package/dist/coordination/claimHeartbeatLoop.js +109 -0
  94. package/dist/coordination/claimHeartbeatLoop.js.map +1 -0
  95. package/dist/coordination/claimMeta.d.ts +50 -0
  96. package/dist/coordination/claimMeta.d.ts.map +1 -0
  97. package/dist/coordination/claimMeta.js +53 -0
  98. package/dist/coordination/claimMeta.js.map +1 -0
  99. package/dist/coordination/events.d.ts +75 -0
  100. package/dist/coordination/events.d.ts.map +1 -0
  101. package/dist/coordination/events.js +8 -0
  102. package/dist/coordination/events.js.map +1 -0
  103. package/dist/coordination/index.d.ts +20 -0
  104. package/dist/coordination/index.d.ts.map +1 -0
  105. package/dist/coordination/index.js +46 -0
  106. package/dist/coordination/index.js.map +1 -0
  107. package/dist/coordination/locator.d.ts +106 -0
  108. package/dist/coordination/locator.d.ts.map +1 -0
  109. package/dist/coordination/locator.js +110 -0
  110. package/dist/coordination/locator.js.map +1 -0
  111. package/dist/coordination/schema.d.ts +1332 -0
  112. package/dist/coordination/schema.d.ts.map +1 -0
  113. package/dist/coordination/schema.js +1137 -0
  114. package/dist/coordination/schema.js.map +1 -0
  115. package/dist/coordination/targetConflict.d.ts +3 -0
  116. package/dist/coordination/targetConflict.d.ts.map +1 -0
  117. package/dist/coordination/targetConflict.js +74 -0
  118. package/dist/coordination/targetConflict.js.map +1 -0
  119. package/dist/coordination/trace.d.ts +79 -0
  120. package/dist/coordination/trace.d.ts.map +1 -0
  121. package/dist/coordination/trace.js +139 -0
  122. package/dist/coordination/trace.js.map +1 -0
  123. package/dist/docs/catalog.d.ts +73 -0
  124. package/dist/docs/catalog.d.ts.map +1 -0
  125. package/dist/docs/catalog.js +231 -0
  126. package/dist/docs/catalog.js.map +1 -0
  127. package/dist/docs/index.d.ts +11 -0
  128. package/dist/docs/index.d.ts.map +1 -0
  129. package/dist/docs/index.js +11 -0
  130. package/dist/docs/index.js.map +1 -0
  131. package/dist/durableWrites.d.ts +63 -0
  132. package/dist/durableWrites.d.ts.map +1 -0
  133. package/dist/durableWrites.js +72 -0
  134. package/dist/durableWrites.js.map +1 -0
  135. package/dist/environment.d.ts +106 -0
  136. package/dist/environment.d.ts.map +1 -0
  137. package/dist/environment.js +109 -0
  138. package/dist/environment.js.map +1 -0
  139. package/dist/errorCodes.d.ts +411 -0
  140. package/dist/errorCodes.d.ts.map +1 -0
  141. package/dist/errorCodes.js +500 -0
  142. package/dist/errorCodes.js.map +1 -0
  143. package/dist/errors.d.ts +429 -0
  144. package/dist/errors.d.ts.map +1 -0
  145. package/dist/errors.js +687 -0
  146. package/dist/errors.js.map +1 -0
  147. package/dist/footprint.d.ts +112 -0
  148. package/dist/footprint.d.ts.map +1 -0
  149. package/dist/footprint.js +0 -0
  150. package/dist/footprint.js.map +1 -0
  151. package/dist/headlessClient.d.ts +10 -0
  152. package/dist/headlessClient.d.ts.map +1 -0
  153. package/dist/headlessClient.js +114 -0
  154. package/dist/headlessClient.js.map +1 -0
  155. package/dist/index.d.ts +21 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +21 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/keys/index.d.ts +88 -0
  160. package/dist/keys/index.d.ts.map +1 -0
  161. package/dist/keys/index.js +208 -0
  162. package/dist/keys/index.js.map +1 -0
  163. package/dist/log/syncDeltaRow.d.ts +159 -0
  164. package/dist/log/syncDeltaRow.d.ts.map +1 -0
  165. package/dist/log/syncDeltaRow.js +96 -0
  166. package/dist/log/syncDeltaRow.js.map +1 -0
  167. package/dist/logger.d.ts +17 -0
  168. package/dist/logger.d.ts.map +1 -0
  169. package/dist/logger.js +8 -0
  170. package/dist/logger.js.map +1 -0
  171. package/dist/observability.d.ts +54 -0
  172. package/dist/observability.d.ts.map +1 -0
  173. package/dist/observability.js +20 -0
  174. package/dist/observability.js.map +1 -0
  175. package/dist/policy/types.d.ts +218 -0
  176. package/dist/policy/types.d.ts.map +1 -0
  177. package/dist/policy/types.js +127 -0
  178. package/dist/policy/types.js.map +1 -0
  179. package/dist/resources/functionalUpdate.d.ts +80 -0
  180. package/dist/resources/functionalUpdate.d.ts.map +1 -0
  181. package/dist/resources/functionalUpdate.js +88 -0
  182. package/dist/resources/functionalUpdate.js.map +1 -0
  183. package/dist/resources/httpResources.d.ts +449 -0
  184. package/dist/resources/httpResources.d.ts.map +1 -0
  185. package/dist/resources/httpResources.js +8 -0
  186. package/dist/resources/httpResources.js.map +1 -0
  187. package/dist/resources/modelOperations.d.ts +380 -0
  188. package/dist/resources/modelOperations.d.ts.map +1 -0
  189. package/dist/resources/modelOperations.js +13 -0
  190. package/dist/resources/modelOperations.js.map +1 -0
  191. package/dist/resources/mutationOptions.d.ts +67 -0
  192. package/dist/resources/mutationOptions.d.ts.map +1 -0
  193. package/dist/resources/mutationOptions.js +10 -0
  194. package/dist/resources/mutationOptions.js.map +1 -0
  195. package/dist/resources/where.d.ts +102 -0
  196. package/dist/resources/where.d.ts.map +1 -0
  197. package/dist/resources/where.js +116 -0
  198. package/dist/resources/where.js.map +1 -0
  199. package/dist/resources/writeOptionsSchema.d.ts +48 -0
  200. package/dist/resources/writeOptionsSchema.d.ts.map +1 -0
  201. package/dist/resources/writeOptionsSchema.js +74 -0
  202. package/dist/resources/writeOptionsSchema.js.map +1 -0
  203. package/dist/schema/coordination.d.ts +113 -0
  204. package/dist/schema/coordination.d.ts.map +1 -0
  205. package/dist/schema/coordination.js +134 -0
  206. package/dist/schema/coordination.js.map +1 -0
  207. package/dist/schema/ddl.d.ts +98 -0
  208. package/dist/schema/ddl.d.ts.map +1 -0
  209. package/dist/schema/ddl.js +492 -0
  210. package/dist/schema/ddl.js.map +1 -0
  211. package/dist/schema/ddlLock.d.ts +36 -0
  212. package/dist/schema/ddlLock.d.ts.map +1 -0
  213. package/dist/schema/ddlLock.js +47 -0
  214. package/dist/schema/ddlLock.js.map +1 -0
  215. package/dist/schema/diff.d.ts +226 -0
  216. package/dist/schema/diff.d.ts.map +1 -0
  217. package/dist/schema/diff.js +290 -0
  218. package/dist/schema/diff.js.map +1 -0
  219. package/dist/schema/field.d.ts +121 -0
  220. package/dist/schema/field.d.ts.map +1 -0
  221. package/dist/schema/field.js +266 -0
  222. package/dist/schema/field.js.map +1 -0
  223. package/dist/schema/fieldRef.d.ts +58 -0
  224. package/dist/schema/fieldRef.d.ts.map +1 -0
  225. package/dist/schema/fieldRef.js +26 -0
  226. package/dist/schema/fieldRef.js.map +1 -0
  227. package/dist/schema/generate.d.ts +20 -0
  228. package/dist/schema/generate.d.ts.map +1 -0
  229. package/dist/schema/generate.js +87 -0
  230. package/dist/schema/generate.js.map +1 -0
  231. package/dist/schema/index.d.ts +43 -0
  232. package/dist/schema/index.d.ts.map +1 -0
  233. package/dist/schema/index.js +81 -0
  234. package/dist/schema/index.js.map +1 -0
  235. package/dist/schema/loadStrategy.d.ts +46 -0
  236. package/dist/schema/loadStrategy.d.ts.map +1 -0
  237. package/dist/schema/loadStrategy.js +47 -0
  238. package/dist/schema/loadStrategy.js.map +1 -0
  239. package/dist/schema/model.d.ts +380 -0
  240. package/dist/schema/model.d.ts.map +1 -0
  241. package/dist/schema/model.js +124 -0
  242. package/dist/schema/model.js.map +1 -0
  243. package/dist/schema/openapi.d.ts +59 -0
  244. package/dist/schema/openapi.d.ts.map +1 -0
  245. package/dist/schema/openapi.js +508 -0
  246. package/dist/schema/openapi.js.map +1 -0
  247. package/dist/schema/queries.d.ts +202 -0
  248. package/dist/schema/queries.d.ts.map +1 -0
  249. package/dist/schema/queries.js +144 -0
  250. package/dist/schema/queries.js.map +1 -0
  251. package/dist/schema/relation.d.ts +205 -0
  252. package/dist/schema/relation.d.ts.map +1 -0
  253. package/dist/schema/relation.js +105 -0
  254. package/dist/schema/relation.js.map +1 -0
  255. package/dist/schema/residency.d.ts +30 -0
  256. package/dist/schema/residency.d.ts.map +1 -0
  257. package/dist/schema/residency.js +26 -0
  258. package/dist/schema/residency.js.map +1 -0
  259. package/dist/schema/roles.d.ts +250 -0
  260. package/dist/schema/roles.d.ts.map +1 -0
  261. package/dist/schema/roles.js +231 -0
  262. package/dist/schema/roles.js.map +1 -0
  263. package/dist/schema/schema.d.ts +352 -0
  264. package/dist/schema/schema.d.ts.map +1 -0
  265. package/dist/schema/schema.js +326 -0
  266. package/dist/schema/schema.js.map +1 -0
  267. package/dist/schema/select.d.ts +41 -0
  268. package/dist/schema/select.d.ts.map +1 -0
  269. package/dist/schema/select.js +91 -0
  270. package/dist/schema/select.js.map +1 -0
  271. package/dist/schema/serialize.d.ts +116 -0
  272. package/dist/schema/serialize.d.ts.map +1 -0
  273. package/dist/schema/serialize.js +278 -0
  274. package/dist/schema/serialize.js.map +1 -0
  275. package/dist/schema/sugar.d.ts +110 -0
  276. package/dist/schema/sugar.d.ts.map +1 -0
  277. package/dist/schema/sugar.js +84 -0
  278. package/dist/schema/sugar.js.map +1 -0
  279. package/dist/schema/tenancy.d.ts +140 -0
  280. package/dist/schema/tenancy.d.ts.map +1 -0
  281. package/dist/schema/tenancy.js +191 -0
  282. package/dist/schema/tenancy.js.map +1 -0
  283. package/dist/server/adapter.d.ts +174 -0
  284. package/dist/server/adapter.d.ts.map +1 -0
  285. package/dist/server/adapter.js +19 -0
  286. package/dist/server/adapter.js.map +1 -0
  287. package/dist/server/commit.d.ts +108 -0
  288. package/dist/server/commit.d.ts.map +1 -0
  289. package/dist/server/commit.js +2 -0
  290. package/dist/server/commit.js.map +1 -0
  291. package/dist/server/index.d.ts +15 -0
  292. package/dist/server/index.d.ts.map +1 -0
  293. package/dist/server/index.js +3 -0
  294. package/dist/server/index.js.map +1 -0
  295. package/dist/server/readConfig.d.ts +81 -0
  296. package/dist/server/readConfig.d.ts.map +1 -0
  297. package/dist/server/readConfig.js +9 -0
  298. package/dist/server/readConfig.js.map +1 -0
  299. package/dist/server/storageMode.d.ts +24 -0
  300. package/dist/server/storageMode.d.ts.map +1 -0
  301. package/dist/server/storageMode.js +18 -0
  302. package/dist/server/storageMode.js.map +1 -0
  303. package/dist/source/adapter.d.ts +84 -0
  304. package/dist/source/adapter.d.ts.map +1 -0
  305. package/dist/source/adapter.js +25 -0
  306. package/dist/source/adapter.js.map +1 -0
  307. package/dist/source/adapters/drizzle.d.ts +49 -0
  308. package/dist/source/adapters/drizzle.d.ts.map +1 -0
  309. package/dist/source/adapters/drizzle.js +220 -0
  310. package/dist/source/adapters/drizzle.js.map +1 -0
  311. package/dist/source/adapters/kysely.d.ts +43 -0
  312. package/dist/source/adapters/kysely.d.ts.map +1 -0
  313. package/dist/source/adapters/kysely.js +206 -0
  314. package/dist/source/adapters/kysely.js.map +1 -0
  315. package/dist/source/adapters/kyselyMutationCore.d.ts +77 -0
  316. package/dist/source/adapters/kyselyMutationCore.d.ts.map +1 -0
  317. package/dist/source/adapters/kyselyMutationCore.js +126 -0
  318. package/dist/source/adapters/kyselyMutationCore.js.map +1 -0
  319. package/dist/source/adapters/memory.d.ts +14 -0
  320. package/dist/source/adapters/memory.d.ts.map +1 -0
  321. package/dist/source/adapters/memory.js +131 -0
  322. package/dist/source/adapters/memory.js.map +1 -0
  323. package/dist/source/adapters/prisma.d.ts +64 -0
  324. package/dist/source/adapters/prisma.d.ts.map +1 -0
  325. package/dist/source/adapters/prisma.js +203 -0
  326. package/dist/source/adapters/prisma.js.map +1 -0
  327. package/dist/source/conformance.d.ts +38 -0
  328. package/dist/source/conformance.d.ts.map +1 -0
  329. package/dist/source/conformance.js +216 -0
  330. package/dist/source/conformance.js.map +1 -0
  331. package/dist/source/connector.d.ts +96 -0
  332. package/dist/source/connector.d.ts.map +1 -0
  333. package/dist/source/connector.js +267 -0
  334. package/dist/source/connector.js.map +1 -0
  335. package/dist/source/connectorProtocol.d.ts +155 -0
  336. package/dist/source/connectorProtocol.d.ts.map +1 -0
  337. package/dist/source/connectorProtocol.js +164 -0
  338. package/dist/source/connectorProtocol.js.map +1 -0
  339. package/dist/source/contract.d.ts +196 -0
  340. package/dist/source/contract.d.ts.map +1 -0
  341. package/dist/source/contract.js +165 -0
  342. package/dist/source/contract.js.map +1 -0
  343. package/dist/source/drizzle.d.ts +2 -0
  344. package/dist/source/drizzle.d.ts.map +1 -0
  345. package/dist/source/drizzle.js +2 -0
  346. package/dist/source/drizzle.js.map +1 -0
  347. package/dist/source/factory.d.ts +93 -0
  348. package/dist/source/factory.d.ts.map +1 -0
  349. package/dist/source/factory.js +287 -0
  350. package/dist/source/factory.js.map +1 -0
  351. package/dist/source/idempotency.d.ts +62 -0
  352. package/dist/source/idempotency.d.ts.map +1 -0
  353. package/dist/source/idempotency.js +145 -0
  354. package/dist/source/idempotency.js.map +1 -0
  355. package/dist/source/index.d.ts +24 -0
  356. package/dist/source/index.d.ts.map +1 -0
  357. package/dist/source/index.js +29 -0
  358. package/dist/source/index.js.map +1 -0
  359. package/dist/source/kysely.d.ts +3 -0
  360. package/dist/source/kysely.d.ts.map +1 -0
  361. package/dist/source/kysely.js +3 -0
  362. package/dist/source/kysely.js.map +1 -0
  363. package/dist/source/migrations.d.ts +22 -0
  364. package/dist/source/migrations.d.ts.map +1 -0
  365. package/dist/source/migrations.js +104 -0
  366. package/dist/source/migrations.js.map +1 -0
  367. package/dist/source/next.d.ts +33 -0
  368. package/dist/source/next.d.ts.map +1 -0
  369. package/dist/source/next.js +26 -0
  370. package/dist/source/next.js.map +1 -0
  371. package/dist/source/pushQueue.d.ts +135 -0
  372. package/dist/source/pushQueue.d.ts.map +1 -0
  373. package/dist/source/pushQueue.js +257 -0
  374. package/dist/source/pushQueue.js.map +1 -0
  375. package/dist/source/signing.d.ts +93 -0
  376. package/dist/source/signing.d.ts.map +1 -0
  377. package/dist/source/signing.js +163 -0
  378. package/dist/source/signing.js.map +1 -0
  379. package/dist/source/types.d.ts +402 -0
  380. package/dist/source/types.d.ts.map +1 -0
  381. package/dist/source/types.js +60 -0
  382. package/dist/source/types.js.map +1 -0
  383. package/dist/syncLog/contract.d.ts +21 -0
  384. package/dist/syncLog/contract.d.ts.map +1 -0
  385. package/dist/syncLog/contract.js +20 -0
  386. package/dist/syncLog/contract.js.map +1 -0
  387. package/dist/syncLog/index.d.ts +2 -0
  388. package/dist/syncLog/index.d.ts.map +1 -0
  389. package/dist/syncLog/index.js +2 -0
  390. package/dist/syncLog/index.js.map +1 -0
  391. package/dist/testing/fixtures/httpResponses.d.ts +74 -0
  392. package/dist/testing/fixtures/httpResponses.d.ts.map +1 -0
  393. package/dist/testing/fixtures/httpResponses.js +102 -0
  394. package/dist/testing/fixtures/httpResponses.js.map +1 -0
  395. package/dist/transactionLayer.d.ts +110 -0
  396. package/dist/transactionLayer.d.ts.map +1 -0
  397. package/dist/transactionLayer.js +25 -0
  398. package/dist/transactionLayer.js.map +1 -0
  399. package/dist/transactions/settlement/commitEnvelope.d.ts +144 -0
  400. package/dist/transactions/settlement/commitEnvelope.d.ts.map +1 -0
  401. package/dist/transactions/settlement/commitEnvelope.js +162 -0
  402. package/dist/transactions/settlement/commitEnvelope.js.map +1 -0
  403. package/dist/transactions/settlement/httpCommitEnvelope.d.ts +54 -0
  404. package/dist/transactions/settlement/httpCommitEnvelope.d.ts.map +1 -0
  405. package/dist/transactions/settlement/httpCommitEnvelope.js +208 -0
  406. package/dist/transactions/settlement/httpCommitEnvelope.js.map +1 -0
  407. package/dist/transactions/settlement/idempotencyKey.d.ts +11 -0
  408. package/dist/transactions/settlement/idempotencyKey.d.ts.map +1 -0
  409. package/dist/transactions/settlement/idempotencyKey.js +10 -0
  410. package/dist/transactions/settlement/idempotencyKey.js.map +1 -0
  411. package/dist/transactions/settlement/pendingWrite.d.ts +113 -0
  412. package/dist/transactions/settlement/pendingWrite.d.ts.map +1 -0
  413. package/dist/transactions/settlement/pendingWrite.js +21 -0
  414. package/dist/transactions/settlement/pendingWrite.js.map +1 -0
  415. package/dist/transport/commitFrames.d.ts +91 -0
  416. package/dist/transport/commitFrames.d.ts.map +1 -0
  417. package/dist/transport/commitFrames.js +135 -0
  418. package/dist/transport/commitFrames.js.map +1 -0
  419. package/dist/transport/connectionManager.d.ts +216 -0
  420. package/dist/transport/connectionManager.d.ts.map +1 -0
  421. package/dist/transport/connectionManager.js +674 -0
  422. package/dist/transport/connectionManager.js.map +1 -0
  423. package/dist/transport/credentialLifecycle.d.ts +178 -0
  424. package/dist/transport/credentialLifecycle.d.ts.map +1 -0
  425. package/dist/transport/credentialLifecycle.js +324 -0
  426. package/dist/transport/credentialLifecycle.js.map +1 -0
  427. package/dist/transport/heartbeat.d.ts +66 -0
  428. package/dist/transport/heartbeat.d.ts.map +1 -0
  429. package/dist/transport/heartbeat.js +94 -0
  430. package/dist/transport/heartbeat.js.map +1 -0
  431. package/dist/transport/httpClient.d.ts +143 -0
  432. package/dist/transport/httpClient.d.ts.map +1 -0
  433. package/dist/transport/httpClient.js +150 -0
  434. package/dist/transport/httpClient.js.map +1 -0
  435. package/dist/transport/httpFeed.d.ts +4 -0
  436. package/dist/transport/httpFeed.d.ts.map +1 -0
  437. package/dist/transport/httpFeed.js +94 -0
  438. package/dist/transport/httpFeed.js.map +1 -0
  439. package/dist/transport/httpOptions.d.ts +34 -0
  440. package/dist/transport/httpOptions.d.ts.map +1 -0
  441. package/dist/transport/httpOptions.js +13 -0
  442. package/dist/transport/httpOptions.js.map +1 -0
  443. package/dist/transport/httpTransport.d.ts +68 -0
  444. package/dist/transport/httpTransport.d.ts.map +1 -0
  445. package/dist/transport/httpTransport.js +1433 -0
  446. package/dist/transport/httpTransport.js.map +1 -0
  447. package/dist/transport/networkProbe.d.ts +85 -0
  448. package/dist/transport/networkProbe.d.ts.map +1 -0
  449. package/dist/transport/networkProbe.js +208 -0
  450. package/dist/transport/networkProbe.js.map +1 -0
  451. package/dist/transport/wsFrameHandlers.d.ts +129 -0
  452. package/dist/transport/wsFrameHandlers.d.ts.map +1 -0
  453. package/dist/transport/wsFrameHandlers.js +429 -0
  454. package/dist/transport/wsFrameHandlers.js.map +1 -0
  455. package/dist/transport/wsTransport.d.ts +575 -0
  456. package/dist/transport/wsTransport.d.ts.map +1 -0
  457. package/dist/transport/wsTransport.js +1024 -0
  458. package/dist/transport/wsTransport.js.map +1 -0
  459. package/dist/types/assertExact.d.ts +18 -0
  460. package/dist/types/assertExact.d.ts.map +1 -0
  461. package/dist/types/assertExact.js +2 -0
  462. package/dist/types/assertExact.js.map +1 -0
  463. package/dist/types/global.d.ts +108 -0
  464. package/dist/types/global.d.ts.map +1 -0
  465. package/dist/types/global.js +41 -0
  466. package/dist/types/global.js.map +1 -0
  467. package/dist/types/index.d.ts +206 -0
  468. package/dist/types/index.d.ts.map +1 -0
  469. package/dist/types/index.js +57 -0
  470. package/dist/types/index.js.map +1 -0
  471. package/dist/types/modelData.d.ts +11 -0
  472. package/dist/types/modelData.d.ts.map +1 -0
  473. package/dist/types/modelData.js +10 -0
  474. package/dist/types/modelData.js.map +1 -0
  475. package/dist/types/participant.d.ts +21 -0
  476. package/dist/types/participant.d.ts.map +1 -0
  477. package/dist/types/participant.js +11 -0
  478. package/dist/types/participant.js.map +1 -0
  479. package/dist/types/streams.d.ts +545 -0
  480. package/dist/types/streams.d.ts.map +1 -0
  481. package/dist/types/streams.js +12 -0
  482. package/dist/types/streams.js.map +1 -0
  483. package/dist/utils/asyncIterator.d.ts +35 -0
  484. package/dist/utils/asyncIterator.d.ts.map +1 -0
  485. package/dist/utils/asyncIterator.js +136 -0
  486. package/dist/utils/asyncIterator.js.map +1 -0
  487. package/dist/utils/duration.d.ts +51 -0
  488. package/dist/utils/duration.d.ts.map +1 -0
  489. package/dist/utils/duration.js +78 -0
  490. package/dist/utils/duration.js.map +1 -0
  491. package/dist/utils/json.d.ts +58 -0
  492. package/dist/utils/json.d.ts.map +1 -0
  493. package/dist/utils/json.js +277 -0
  494. package/dist/utils/json.js.map +1 -0
  495. package/dist/webhooks/events.d.ts +44 -0
  496. package/dist/webhooks/events.d.ts.map +1 -0
  497. package/dist/webhooks/events.js +43 -0
  498. package/dist/webhooks/events.js.map +1 -0
  499. package/dist/webhooks/index.d.ts +9 -0
  500. package/dist/webhooks/index.d.ts.map +1 -0
  501. package/dist/webhooks/index.js +9 -0
  502. package/dist/webhooks/index.js.map +1 -0
  503. package/dist/wire/accountResponses.d.ts +463 -0
  504. package/dist/wire/accountResponses.d.ts.map +1 -0
  505. package/dist/wire/accountResponses.js +294 -0
  506. package/dist/wire/accountResponses.js.map +1 -0
  507. package/dist/wire/auth.d.ts +57 -0
  508. package/dist/wire/auth.d.ts.map +1 -0
  509. package/dist/wire/auth.js +71 -0
  510. package/dist/wire/auth.js.map +1 -0
  511. package/dist/wire/bootstrapReason.d.ts +10 -0
  512. package/dist/wire/bootstrapReason.d.ts.map +1 -0
  513. package/dist/wire/bootstrapReason.js +9 -0
  514. package/dist/wire/bootstrapReason.js.map +1 -0
  515. package/dist/wire/claimEvent.d.ts +70 -0
  516. package/dist/wire/claimEvent.d.ts.map +1 -0
  517. package/dist/wire/claimEvent.js +74 -0
  518. package/dist/wire/claimEvent.js.map +1 -0
  519. package/dist/wire/claims.d.ts +475 -0
  520. package/dist/wire/claims.d.ts.map +1 -0
  521. package/dist/wire/claims.js +326 -0
  522. package/dist/wire/claims.js.map +1 -0
  523. package/dist/wire/commit.d.ts +604 -0
  524. package/dist/wire/commit.d.ts.map +1 -0
  525. package/dist/wire/commit.js +322 -0
  526. package/dist/wire/commit.js.map +1 -0
  527. package/dist/wire/delta.d.ts +251 -0
  528. package/dist/wire/delta.d.ts.map +1 -0
  529. package/dist/wire/delta.js +148 -0
  530. package/dist/wire/delta.js.map +1 -0
  531. package/dist/wire/errorEnvelope.d.ts +73 -0
  532. package/dist/wire/errorEnvelope.d.ts.map +1 -0
  533. package/dist/wire/errorEnvelope.js +124 -0
  534. package/dist/wire/errorEnvelope.js.map +1 -0
  535. package/dist/wire/feedCursor.d.ts +61 -0
  536. package/dist/wire/feedCursor.d.ts.map +1 -0
  537. package/dist/wire/feedCursor.js +83 -0
  538. package/dist/wire/feedCursor.js.map +1 -0
  539. package/dist/wire/feedEvent.d.ts +264 -0
  540. package/dist/wire/feedEvent.d.ts.map +1 -0
  541. package/dist/wire/feedEvent.js +66 -0
  542. package/dist/wire/feedEvent.js.map +1 -0
  543. package/dist/wire/frames.d.ts +195 -0
  544. package/dist/wire/frames.d.ts.map +1 -0
  545. package/dist/wire/frames.js +51 -0
  546. package/dist/wire/frames.js.map +1 -0
  547. package/dist/wire/inboundFrames.d.ts +490 -0
  548. package/dist/wire/inboundFrames.d.ts.map +1 -0
  549. package/dist/wire/inboundFrames.js +117 -0
  550. package/dist/wire/inboundFrames.js.map +1 -0
  551. package/dist/wire/index.d.ts +55 -0
  552. package/dist/wire/index.d.ts.map +1 -0
  553. package/dist/wire/index.js +84 -0
  554. package/dist/wire/index.js.map +1 -0
  555. package/dist/wire/listEnvelope.d.ts +38 -0
  556. package/dist/wire/listEnvelope.d.ts.map +1 -0
  557. package/dist/wire/listEnvelope.js +43 -0
  558. package/dist/wire/listEnvelope.js.map +1 -0
  559. package/dist/wire/modelMutations.d.ts +32 -0
  560. package/dist/wire/modelMutations.d.ts.map +1 -0
  561. package/dist/wire/modelMutations.js +53 -0
  562. package/dist/wire/modelMutations.js.map +1 -0
  563. package/dist/wire/modelResponses.d.ts +79 -0
  564. package/dist/wire/modelResponses.d.ts.map +1 -0
  565. package/dist/wire/modelResponses.js +44 -0
  566. package/dist/wire/modelResponses.js.map +1 -0
  567. package/dist/wire/modelShape.d.ts +79 -0
  568. package/dist/wire/modelShape.d.ts.map +1 -0
  569. package/dist/wire/modelShape.js +75 -0
  570. package/dist/wire/modelShape.js.map +1 -0
  571. package/dist/wire/protocol.d.ts +39 -0
  572. package/dist/wire/protocol.d.ts.map +1 -0
  573. package/dist/wire/protocol.js +39 -0
  574. package/dist/wire/protocol.js.map +1 -0
  575. package/dist/wire/protocolVersion.d.ts +74 -0
  576. package/dist/wire/protocolVersion.d.ts.map +1 -0
  577. package/dist/wire/protocolVersion.js +84 -0
  578. package/dist/wire/protocolVersion.js.map +1 -0
  579. package/package.json +187 -0
  580. package/src/ablo.ts +139 -0
  581. package/src/ai-sdk/coordinatedTool.ts +214 -0
  582. package/src/ai-sdk/index.ts +7 -0
  583. package/src/auth/apiKey.ts +540 -0
  584. package/src/auth/bootstrapScope.ts +15 -0
  585. package/src/auth/browserCredentialSafety.ts +48 -0
  586. package/src/auth/capability.ts +326 -0
  587. package/src/auth/capabilityLifecycle.ts +174 -0
  588. package/src/auth/credentialEndpoint.ts +79 -0
  589. package/src/auth/credentialEndpointProtocol.ts +51 -0
  590. package/src/auth/credentialKind.ts +20 -0
  591. package/src/auth/credentialPolicy.ts +244 -0
  592. package/src/auth/credentialResult.ts +23 -0
  593. package/src/auth/credentialSource.ts +99 -0
  594. package/src/auth/hostedEndpoints.ts +24 -0
  595. package/src/auth/identity.ts +330 -0
  596. package/src/auth/index.ts +592 -0
  597. package/src/auth/schemas.ts +94 -0
  598. package/src/auth/sessionMint.ts +126 -0
  599. package/src/auth/token.ts +4 -0
  600. package/src/batching/index.ts +200 -0
  601. package/src/coordination/awaitClaimGrant.ts +243 -0
  602. package/src/coordination/claimHeartbeatLoop.ts +165 -0
  603. package/src/coordination/claimMeta.ts +56 -0
  604. package/src/coordination/events.ts +86 -0
  605. package/src/coordination/index.ts +181 -0
  606. package/src/coordination/locator.ts +200 -0
  607. package/src/coordination/schema.ts +1346 -0
  608. package/src/coordination/targetConflict.ts +85 -0
  609. package/src/coordination/trace.ts +173 -0
  610. package/src/docs/catalog.ts +274 -0
  611. package/src/docs/index.ts +18 -0
  612. package/src/durableWrites.ts +134 -0
  613. package/src/environment.ts +132 -0
  614. package/src/errorCodes.ts +1591 -0
  615. package/src/errors.ts +918 -0
  616. package/src/footprint.ts +0 -0
  617. package/src/headlessClient.ts +161 -0
  618. package/src/index.ts +52 -0
  619. package/src/keys/index.ts +254 -0
  620. package/src/log/syncDeltaRow.ts +119 -0
  621. package/src/logger.ts +22 -0
  622. package/src/observability.ts +85 -0
  623. package/src/policy/types.ts +292 -0
  624. package/src/resources/functionalUpdate.ts +151 -0
  625. package/src/resources/httpResources.ts +520 -0
  626. package/src/resources/modelOperations.ts +444 -0
  627. package/src/resources/mutationOptions.ts +66 -0
  628. package/src/resources/where.ts +160 -0
  629. package/src/resources/writeOptionsSchema.ts +91 -0
  630. package/src/schema/coordination.ts +161 -0
  631. package/src/schema/ddl.ts +593 -0
  632. package/src/schema/ddlLock.ts +53 -0
  633. package/src/schema/diff.ts +489 -0
  634. package/src/schema/field.ts +321 -0
  635. package/src/schema/fieldRef.ts +88 -0
  636. package/src/schema/generate.ts +95 -0
  637. package/src/schema/index.ts +278 -0
  638. package/src/schema/loadStrategy.ts +52 -0
  639. package/src/schema/model.ts +476 -0
  640. package/src/schema/openapi.ts +658 -0
  641. package/src/schema/queries.ts +273 -0
  642. package/src/schema/relation.ts +291 -0
  643. package/src/schema/residency.ts +30 -0
  644. package/src/schema/roles.ts +325 -0
  645. package/src/schema/schema.ts +825 -0
  646. package/src/schema/select.ts +115 -0
  647. package/src/schema/serialize.ts +373 -0
  648. package/src/schema/sugar.ts +194 -0
  649. package/src/schema/tenancy.ts +221 -0
  650. package/src/server/adapter.ts +203 -0
  651. package/src/server/commit.ts +109 -0
  652. package/src/server/index.ts +26 -0
  653. package/src/server/readConfig.ts +82 -0
  654. package/src/server/storageMode.ts +20 -0
  655. package/src/source/adapter.ts +85 -0
  656. package/src/source/adapters/drizzle.ts +291 -0
  657. package/src/source/adapters/kysely.ts +346 -0
  658. package/src/source/adapters/kyselyMutationCore.ts +220 -0
  659. package/src/source/adapters/memory.ts +154 -0
  660. package/src/source/adapters/prisma.ts +282 -0
  661. package/src/source/conformance.ts +287 -0
  662. package/src/source/connector.ts +394 -0
  663. package/src/source/connectorProtocol.ts +189 -0
  664. package/src/source/contract.ts +221 -0
  665. package/src/source/drizzle.ts +1 -0
  666. package/src/source/factory.ts +444 -0
  667. package/src/source/idempotency.ts +189 -0
  668. package/src/source/index.ts +182 -0
  669. package/src/source/kysely.ts +2 -0
  670. package/src/source/migrations.ts +109 -0
  671. package/src/source/next.ts +38 -0
  672. package/src/source/pushQueue.ts +368 -0
  673. package/src/source/signing.ts +279 -0
  674. package/src/source/types.ts +502 -0
  675. package/src/syncLog/contract.ts +32 -0
  676. package/src/syncLog/index.ts +1 -0
  677. package/src/testing/fixtures/httpResponses.ts +155 -0
  678. package/src/transactionLayer.ts +122 -0
  679. package/src/transactions/settlement/commitEnvelope.ts +192 -0
  680. package/src/transactions/settlement/httpCommitEnvelope.ts +250 -0
  681. package/src/transactions/settlement/idempotencyKey.ts +11 -0
  682. package/src/transactions/settlement/pendingWrite.ts +24 -0
  683. package/src/transport/commitFrames.ts +225 -0
  684. package/src/transport/connectionManager.ts +856 -0
  685. package/src/transport/credentialLifecycle.ts +389 -0
  686. package/src/transport/heartbeat.ts +118 -0
  687. package/src/transport/httpClient.ts +354 -0
  688. package/src/transport/httpFeed.ts +111 -0
  689. package/src/transport/httpOptions.ts +41 -0
  690. package/src/transport/httpTransport.ts +1976 -0
  691. package/src/transport/networkProbe.ts +249 -0
  692. package/src/transport/wsFrameHandlers.ts +619 -0
  693. package/src/transport/wsTransport.ts +1491 -0
  694. package/src/types/assertExact.ts +17 -0
  695. package/src/types/global.ts +123 -0
  696. package/src/types/index.ts +270 -0
  697. package/src/types/modelData.ts +11 -0
  698. package/src/types/participant.ts +22 -0
  699. package/src/types/streams.ts +702 -0
  700. package/src/utils/asyncIterator.ts +141 -0
  701. package/src/utils/duration.ts +88 -0
  702. package/src/utils/json.ts +281 -0
  703. package/src/webhooks/events.ts +96 -0
  704. package/src/webhooks/index.ts +12 -0
  705. package/src/wire/accountResponses.ts +328 -0
  706. package/src/wire/auth.ts +86 -0
  707. package/src/wire/bootstrapReason.ts +10 -0
  708. package/src/wire/claimEvent.ts +85 -0
  709. package/src/wire/claims.ts +370 -0
  710. package/src/wire/commit.ts +379 -0
  711. package/src/wire/delta.ts +173 -0
  712. package/src/wire/errorEnvelope.ts +133 -0
  713. package/src/wire/feedCursor.ts +91 -0
  714. package/src/wire/feedEvent.ts +74 -0
  715. package/src/wire/frames.ts +77 -0
  716. package/src/wire/inboundFrames.ts +182 -0
  717. package/src/wire/index.ts +328 -0
  718. package/src/wire/listEnvelope.ts +51 -0
  719. package/src/wire/modelMutations.ts +55 -0
  720. package/src/wire/modelResponses.ts +48 -0
  721. package/src/wire/modelShape.ts +83 -0
  722. package/src/wire/protocol.ts +39 -0
  723. package/src/wire/protocolVersion.ts +97 -0
@@ -0,0 +1,50 @@
1
+ /**
2
+ * A claim's application metadata, crossing between the wire and the shape the
3
+ * program declared for it.
4
+ *
5
+ * The wire contract for `meta` is deliberately permissive — `targetRefSchema`
6
+ * parses it as `z.record(z.string(), z.unknown())` and always will, because a
7
+ * newer peer must be able to send a field this build has never heard of and
8
+ * still be understood. The read surface is the opposite: `Register`'s
9
+ * `ClaimMeta` slot names the one shape this program's claims carry, so
10
+ * `claim.state({ id })?.target.meta` reads without a guard.
11
+ *
12
+ * Those two facts meet here, and only here, in both directions. A decode calls
13
+ * {@link declaredMeta} on its way from a parsed record to a public `Claim`; the
14
+ * locator projection calls {@link wireMeta} on the way back out, where a
15
+ * caller's declared value is put on the socket or in the HTTP body. Between
16
+ * them they are the one place the SDK takes the caller's word for a shape it
17
+ * did not check — written down once, with the reason, instead of being asserted
18
+ * at each crossing.
19
+ *
20
+ * The two directions are not symmetric in cost. Losing the declared shape on
21
+ * the way out is harmless, because the wire has always accepted any record;
22
+ * gaining it on the way in is the promise the read surface makes, so
23
+ * `declaredMeta` is the one to audit when a claim reads back a shape its holder
24
+ * never wrote.
25
+ */
26
+ import type { ResolveClaimMeta } from '../types/global.js';
27
+ /**
28
+ * Read a parsed `meta` as the declared shape. Call it only where a decode hands
29
+ * a wire value to a public claim, and only for a value already known present —
30
+ * the absent case is an omitted member, not a declared-shaped `undefined`.
31
+ *
32
+ * The exported names are `declaredMeta` and `wireMeta` rather than a `claimMeta`
33
+ * pair because two claim surfaces already read a caller's `meta` back off the
34
+ * options it passed in, and spell that local reader `claimMeta`.
35
+ */
36
+ export declare function declaredMeta(raw: unknown): ResolveClaimMeta;
37
+ /**
38
+ * Write a declared `meta` as the permissive record the wire carries. Every path
39
+ * from a caller's target to a frame or request body goes through `subTarget`,
40
+ * so this has exactly one caller — widening it is how the declared shape stops
41
+ * being a compile error at the edge of the protocol instead of stopping there.
42
+ *
43
+ * The parameter is `unknown` rather than {@link ResolveClaimMeta} on purpose: a
44
+ * program may register an `interface` for its claim metadata, and an interface
45
+ * carries no implicit index signature, so a directly-typed parameter would make
46
+ * the conversion itself unrepresentable at the one site that needs it. Widening
47
+ * the input is what keeps the assertion single.
48
+ */
49
+ export declare function wireMeta(meta: unknown): Record<string, unknown>;
50
+ //# sourceMappingURL=claimMeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimMeta.d.ts","sourceRoot":"","sources":["../../src/coordination/claimMeta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,CAE3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE/D"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * A claim's application metadata, crossing between the wire and the shape the
3
+ * program declared for it.
4
+ *
5
+ * The wire contract for `meta` is deliberately permissive — `targetRefSchema`
6
+ * parses it as `z.record(z.string(), z.unknown())` and always will, because a
7
+ * newer peer must be able to send a field this build has never heard of and
8
+ * still be understood. The read surface is the opposite: `Register`'s
9
+ * `ClaimMeta` slot names the one shape this program's claims carry, so
10
+ * `claim.state({ id })?.target.meta` reads without a guard.
11
+ *
12
+ * Those two facts meet here, and only here, in both directions. A decode calls
13
+ * {@link declaredMeta} on its way from a parsed record to a public `Claim`; the
14
+ * locator projection calls {@link wireMeta} on the way back out, where a
15
+ * caller's declared value is put on the socket or in the HTTP body. Between
16
+ * them they are the one place the SDK takes the caller's word for a shape it
17
+ * did not check — written down once, with the reason, instead of being asserted
18
+ * at each crossing.
19
+ *
20
+ * The two directions are not symmetric in cost. Losing the declared shape on
21
+ * the way out is harmless, because the wire has always accepted any record;
22
+ * gaining it on the way in is the promise the read surface makes, so
23
+ * `declaredMeta` is the one to audit when a claim reads back a shape its holder
24
+ * never wrote.
25
+ */
26
+ /**
27
+ * Read a parsed `meta` as the declared shape. Call it only where a decode hands
28
+ * a wire value to a public claim, and only for a value already known present —
29
+ * the absent case is an omitted member, not a declared-shaped `undefined`.
30
+ *
31
+ * The exported names are `declaredMeta` and `wireMeta` rather than a `claimMeta`
32
+ * pair because two claim surfaces already read a caller's `meta` back off the
33
+ * options it passed in, and spell that local reader `claimMeta`.
34
+ */
35
+ export function declaredMeta(raw) {
36
+ return raw;
37
+ }
38
+ /**
39
+ * Write a declared `meta` as the permissive record the wire carries. Every path
40
+ * from a caller's target to a frame or request body goes through `subTarget`,
41
+ * so this has exactly one caller — widening it is how the declared shape stops
42
+ * being a compile error at the edge of the protocol instead of stopping there.
43
+ *
44
+ * The parameter is `unknown` rather than {@link ResolveClaimMeta} on purpose: a
45
+ * program may register an `interface` for its claim metadata, and an interface
46
+ * carries no implicit index signature, so a directly-typed parameter would make
47
+ * the conversion itself unrepresentable at the one site that needs it. Widening
48
+ * the input is what keeps the assertion single.
49
+ */
50
+ export function wireMeta(meta) {
51
+ return meta;
52
+ }
53
+ //# sourceMappingURL=claimMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimMeta.js","sourceRoot":"","sources":["../../src/coordination/claimMeta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,GAAuB,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAa;IACpC,OAAO,IAA+B,CAAC;AACzC,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * In-process observation events emitted by the transaction layer's
3
+ * coordination protocol. The wire claim and stale-write contracts live in
4
+ * `coordination/schema.ts`; these two projections are the stable event shapes
5
+ * an observer receives after those frames have been interpreted.
6
+ */
7
+ import type { ParticipantKind } from '../types/participant.js';
8
+ export type { ClaimEventReason } from './schema.js';
9
+ import type { ClaimEventReason } from './schema.js';
10
+ /** The participant that blocked a claim — present on `rejected`. */
11
+ export interface ClaimCounterparty {
12
+ /** Who holds it. */
13
+ actor?: string;
14
+ /**
15
+ * Whether the holder is a person, an agent, or the system — the distinction
16
+ * a caller acts on, since yielding to a person and queueing behind an agent
17
+ * are different decisions. It lives here rather than on the event because
18
+ * only a counterparty has a kind worth reporting: on an acquisition the
19
+ * participant is you, and you already know what you are.
20
+ */
21
+ participantKind?: ParticipantKind;
22
+ /** The lease they hold, so a caller can poll or wait on it by id. */
23
+ claimId?: string;
24
+ /** When their lease lapses without a heartbeat. */
25
+ expiresAt?: number;
26
+ /** What they said they were doing — prose, for a person to read. */
27
+ description?: string;
28
+ }
29
+ /** A single state transition in the lifecycle of a claim. */
30
+ export interface ClaimEvent {
31
+ phase: 'acquired' | 'queued' | 'granted' | 'lost' | 'rejected' | 'expired';
32
+ claimId?: string;
33
+ model?: string;
34
+ id?: string;
35
+ field?: string;
36
+ actor?: string;
37
+ position?: number;
38
+ /**
39
+ * What this claim's holder said they were doing — prose, written for a
40
+ * person. Separate from {@link ClaimEvent.reason}, which is machine-readable
41
+ * and only ever says why a claim ended. One field used to carry both, so an
42
+ * `acquired` event's "reason" was really a description and a `rejected`
43
+ * event's was really a cause.
44
+ */
45
+ description?: string;
46
+ /** Why the claim ended or was refused. Absent while it is simply alive. */
47
+ reason?: ClaimEventReason;
48
+ /**
49
+ * A policy's own words when a policy decided the outcome — free text by
50
+ * nature, and kept beside the closed {@link ClaimEvent.reason} rather than
51
+ * collapsed into it.
52
+ */
53
+ policyReason?: string;
54
+ /**
55
+ * Who blocked this claim. Present on `rejected`, where the wire already
56
+ * carried the holder and this projection used to discard it.
57
+ */
58
+ heldBy?: ClaimCounterparty;
59
+ }
60
+ /** A committed notify-instead-of-abort stale-write collision. */
61
+ export interface ConflictEvent {
62
+ clientTxId: string;
63
+ rows: readonly {
64
+ model: string;
65
+ id: string;
66
+ fields: readonly string[];
67
+ writtenBy?: ParticipantKind;
68
+ }[];
69
+ }
70
+ /** The narrow behavior a transaction-layer coordination observer implements. */
71
+ export interface CoordinationObserver {
72
+ captureClaim(event: ClaimEvent): void;
73
+ captureConflict(event: ConflictEvent): void;
74
+ }
75
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/coordination/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,KAAK,EACD,UAAU,GACV,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,SAAS,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,SAAS;QACb,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,SAAS,CAAC,EAAE,eAAe,CAAC;KAC7B,EAAE,CAAC;CACL;AAED,gFAAgF;AAChF,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACtC,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7C"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * In-process observation events emitted by the transaction layer's
3
+ * coordination protocol. The wire claim and stale-write contracts live in
4
+ * `coordination/schema.ts`; these two projections are the stable event shapes
5
+ * an observer receives after those frames have been interpreted.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/coordination/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The `@abloatai/transaction/coordination` entry point. It re-exports the wire
3
+ * schemas and inferred types for the three coordination layers: presence (who
4
+ * is currently active), claims (taking exclusive hold of a target before
5
+ * writing it), and stale-context guards (rejecting a write that was based on an
6
+ * out-of-date read). The definitions themselves live in the sibling schema
7
+ * module.
8
+ *
9
+ * Exports are listed by name rather than re-exported wholesale, so every symbol
10
+ * that becomes part of this package's public API is a deliberate choice.
11
+ */
12
+ export { participantKindSchema, wireParticipantKindSchema, participantKindFromWire, descriptionFromMeta, claimDescription, DEFAULT_CLAIM_DESCRIPTION, targetRefSchema, onStaleModeSchema, writeGuardSchema, staleNotificationSchema, readDependencySchema, trackDependencySchema, claimStatusSchema, wireClaimStatusSchema, wireClaimSummarySchema, claimErrorSchema, wireClaimSchema, claimRejectionSchema, claimLostSchema, claimAcquiredSchema, claimGrantedSchema, claimQueuedSchema, claimQueueSchema, claimQueueEntrySchema, claimExpiredSchema, claimEventReasonSchema, modelTargetSchema, claimRecordSchema, heldClaimStatusSchema, modelClaimSchema, claimBeginPayloadSchema, claimAbandonPayloadSchema, claimReorderPayloadSchema, claimHeartbeatPayloadSchema, claimHeartbeatAckPayloadSchema, claimHeartbeatBatchPayloadSchema, claimHeartbeatBatchAckPayloadSchema, MAX_FRAME_SYNC_GROUPS, participantClaimPayloadSchema, participantReleasePayloadSchema, updateSubscriptionPayloadSchema, subscriptionAckPayloadSchema, commitOperationTypeSchema, commitOperationSchema, presenceKindSchema, presenceActivitySchema, presenceUpdateSchema, presenceUpdatePayloadSchema, presenceUpdateFrameSchema, } from './schema.js';
13
+ export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from '../policy/types.js';
14
+ export type { Conflict, ConflictAxis, ConflictDecision, ConflictKind, ConflictOperation, ConflictPolicy, StaleContextConflict, ClaimHeldConflict, } from '../policy/types.js';
15
+ export type { ParticipantKind, TargetRef, OnStaleMode, WriteGuard, StaleNotification, ReadDependency, TrackDependency, ClaimStatus, WireClaimStatus, WireClaimSummary, ClaimError, WireClaim, ClaimRejection, ClaimLost, ClaimAcquired, ClaimGranted, ClaimQueued, ClaimQueue, ClaimQueueEntry, ClaimExpired, ClaimEventReason, ModelTarget, ClaimRecord, HeldClaimStatus, ModelClaim, ClaimBeginPayload, ClaimAbandonPayload, ClaimReorderPayload, ClaimHeartbeatPayload, ClaimHeartbeatAckPayload, ClaimHeartbeatBatchPayload, ClaimHeartbeatBatchAckPayload, ParticipantClaimPayload, ParticipantReleasePayload, UpdateSubscriptionPayload, SubscriptionAckPayload, CommitOperationType, CommitOperation, AnyCommitOperation, PresenceKind, PresenceActivity, PresenceUpdate, PresenceUpdatePayload, PresenceUpdateFrame, } from './schema.js';
16
+ export type { ClaimEvent, ClaimCounterparty, ConflictEvent, CoordinationObserver, } from './events.js';
17
+ export { targetsConflict } from './targetConflict.js';
18
+ export type { BatchFence, ClaimTargetDetails, ClaimTargetSource, EntityLocator, } from './locator.js';
19
+ export { batchFence, fenceTokenFor, isTargetTuple, subTarget, wireTarget, modelTarget, streamTarget, } from './locator.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAEL,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EAEf,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EAErB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EAGpB,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EAEjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC,EAGnC,qBAAqB,EACrB,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAE5B,yBAAyB,EACzB,qBAAqB,EAErB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAG3B,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACnG,YAAY,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAEV,eAAe,EACf,SAAS,EAET,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EAEf,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,cAAc,EACd,SAAS,EACT,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAE7B,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EAEtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAElB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EAErB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAIrB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * The `@abloatai/transaction/coordination` entry point. It re-exports the wire
3
+ * schemas and inferred types for the three coordination layers: presence (who
4
+ * is currently active), claims (taking exclusive hold of a target before
5
+ * writing it), and stale-context guards (rejecting a write that was based on an
6
+ * out-of-date read). The definitions themselves live in the sibling schema
7
+ * module.
8
+ *
9
+ * Exports are listed by name rather than re-exported wholesale, so every symbol
10
+ * that becomes part of this package's public API is a deliberate choice.
11
+ */
12
+ // Runtime schemas + helpers.
13
+ export {
14
+ // Shared primitives
15
+ participantKindSchema, wireParticipantKindSchema, participantKindFromWire, descriptionFromMeta, claimDescription, DEFAULT_CLAIM_DESCRIPTION, targetRefSchema,
16
+ // Layer 3 — optimistic stale-context
17
+ onStaleModeSchema, writeGuardSchema, staleNotificationSchema, readDependencySchema, trackDependencySchema,
18
+ // Layer 2 — pessimistic claim / claim-lease
19
+ claimStatusSchema, wireClaimStatusSchema, wireClaimSummarySchema, claimErrorSchema, wireClaimSchema, claimRejectionSchema,
20
+ // The rest of the claim frames, each the validation boundary for one
21
+ // server-sent event — see WS_INBOUND_FRAMES for where they are applied.
22
+ claimLostSchema, claimAcquiredSchema, claimGrantedSchema, claimQueuedSchema, claimQueueSchema, claimQueueEntrySchema, claimExpiredSchema, claimEventReasonSchema, modelTargetSchema,
23
+ // The one claim record, and the peer-visible projection of it.
24
+ claimRecordSchema, heldClaimStatusSchema, modelClaimSchema, claimBeginPayloadSchema, claimAbandonPayloadSchema, claimReorderPayloadSchema, claimHeartbeatPayloadSchema, claimHeartbeatAckPayloadSchema, claimHeartbeatBatchPayloadSchema, claimHeartbeatBatchAckPayloadSchema,
25
+ // Read interest — what a connection receives, leased (`claim`/`release`,
26
+ // the frames behind `join`) and unleased (`update_subscription`).
27
+ MAX_FRAME_SYNC_GROUPS, participantClaimPayloadSchema, participantReleasePayloadSchema, updateSubscriptionPayloadSchema, subscriptionAckPayloadSchema,
28
+ // Commit operation — carries the optimistic write-guard
29
+ commitOperationTypeSchema, commitOperationSchema,
30
+ // Layer 1 — presence
31
+ presenceKindSchema, presenceActivitySchema, presenceUpdateSchema, presenceUpdatePayloadSchema,
32
+ // Deprecated alias, removed in 0.36.0 — this line publishes it.
33
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
34
+ presenceUpdateFrameSchema, } from './schema.js';
35
+ // Conflict-policy runtime — the engine detects a conflict, and the policy
36
+ // decides what to do about it. These are re-exported here so that server-side
37
+ // code can reach both the coordination vocabulary and its default conflict
38
+ // resolution from this one subpath, without importing the full client from the
39
+ // package root.
40
+ export { defaultPolicy, capabilityPreemptPolicy, interpretConflictAxis } from '../policy/types.js';
41
+ // The conflict rule itself — whether two claims on one row collide. It is the
42
+ // protocol's decision, not the server's deployment of it, so it lives here and
43
+ // every claim authority imports it.
44
+ export { targetsConflict } from './targetConflict.js';
45
+ export { batchFence, fenceTokenFor, isTargetTuple, subTarget, wireTarget, modelTarget, streamTarget, } from './locator.js';
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,6BAA6B;AAC7B,OAAO;AACL,oBAAoB;AACpB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe;AACf,qCAAqC;AACrC,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB;AACrB,4CAA4C;AAC5C,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,oBAAoB;AACpB,qEAAqE;AACrE,wEAAwE;AACxE,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB;AACjB,+DAA+D;AAC/D,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,gCAAgC,EAChC,mCAAmC;AACnC,yEAAyE;AACzE,kEAAkE;AAClE,qBAAqB,EACrB,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B;AAC5B,wDAAwD;AACxD,yBAAyB,EACzB,qBAAqB;AACrB,qBAAqB;AACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B;AAC3B,gEAAgE;AAChE,4DAA4D;AAC5D,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AAErB,0EAA0E;AAC1E,8EAA8E;AAC9E,2EAA2E;AAC3E,+EAA+E;AAC/E,gBAAgB;AAChB,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AA4EnG,8EAA8E;AAC9E,+EAA+E;AAC/E,oCAAoC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAWtD,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,YAAY,GACb,MAAM,cAAc,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * The locator — what a claim points at, in every spelling it travels under.
3
+ *
4
+ * A target has two halves. The sub-entity half (`path`, `range`, `field`,
5
+ * `fields`, `meta`) is spelled identically everywhere; the entity half is not.
6
+ * It is `entityType`/`entityId` on the wire, `model`/`id` on the HTTP DTO and
7
+ * the SDK's model surface, and `type`/`id` on the claim handle and the wait
8
+ * line. The three coexist deliberately — unifying them changes every surface at
9
+ * once, and that is scheduled behind the protocol version — but while they
10
+ * coexist, the translation between them belongs in one place.
11
+ *
12
+ * It was copied member by member at more than twenty sites instead, which is
13
+ * how `fields` came to be added to the schema and to the conflict rule while
14
+ * several hops quietly dropped it: the rule learned to compare field sets while
15
+ * no path carried one, so the fix looked complete and changed nothing. Widening
16
+ * the locator again should touch this module and the schema, not every hop.
17
+ */
18
+ import type { ClaimPart, ModelTarget, TargetRef, WireClaim } from './schema.js';
19
+ import { type FieldRef, type FieldSelector } from '../schema/fieldRef.js';
20
+ import type { ClaimTarget, PresenceTarget } from '../types/streams.js';
21
+ import type { ResolveClaimMeta } from '../types/global.js';
22
+ /**
23
+ * The part of a claim that narrows it below the whole entity. A claim with none
24
+ * of these set is a claim on the entity itself.
25
+ *
26
+ * `meta` is carried because it travels with the target everywhere else, not
27
+ * because the rule reads it: application metadata is opaque to coordination and
28
+ * never decides a conflict.
29
+ */
30
+ export type ClaimTargetDetails = Pick<WireClaim, 'field' | 'fields' | 'meta'>;
31
+ /**
32
+ * A locator as a *caller* may hold it — identical to {@link ClaimTargetDetails}
33
+ * except that `meta` may already be the shape the program registered on
34
+ * `Register`'s `ClaimMeta` slot, which an `interface` registration makes
35
+ * distinct from the wire's open record.
36
+ *
37
+ * A projection that only accepted the wire spelling would push the conversion
38
+ * back out to every call site that starts from a public target — the claim
39
+ * handle, the model surface, the HTTP claim params — which is the same
40
+ * member-by-member copying this module exists to end.
41
+ */
42
+ export type ClaimTargetSource<T = Record<string, unknown>> = Omit<ClaimTargetDetails, 'meta' | 'field' | 'fields'> & {
43
+ /** A schema field reference, wire name, or low-level app-defined part. */
44
+ readonly field?: string | ClaimPart | FieldRef;
45
+ readonly fields?: readonly (string | ClaimPart | FieldRef)[] | FieldSelector<T>;
46
+ readonly meta?: ClaimTargetDetails['meta'] | ResolveClaimMeta;
47
+ };
48
+ /**
49
+ * Copy the sub-entity part of a locator from one target shape to another.
50
+ *
51
+ * These five members are spelled identically wherever a target appears, so this
52
+ * owns all of them and the entity half is handled by its own projections below.
53
+ *
54
+ * Absent members are omitted rather than set to `undefined`, so a projected
55
+ * target can be spread into an object under `exactOptionalPropertyTypes`.
56
+ *
57
+ * The result is wire-shaped, `meta` included: this is the projection every path
58
+ * out of the SDK goes through, so it is also the single declared→wire crossing
59
+ * for claim metadata. The way back is {@link declaredMeta}, at the two decodes
60
+ * that build a public claim.
61
+ */
62
+ export declare function subTarget<T = Record<string, unknown>>(source: ClaimTargetSource<T> | null | undefined, model?: string): ClaimTargetDetails;
63
+ /**
64
+ * Whether a target was given in the `[type, id]` shorthand rather than the
65
+ * object form.
66
+ *
67
+ * A predicate rather than an assertion, because `Array.isArray` leaves a
68
+ * readonly tuple in both branches and the alternative — asserting the object
69
+ * form — describes the locator by hand at every call site that resolves one.
70
+ */
71
+ export declare function isTargetTuple(target: PresenceTarget): target is readonly [type: string, id: string];
72
+ /**
73
+ * An entity named in any of the three spellings a claim travels under.
74
+ *
75
+ * The union is discriminated by which key is present, and `{ model, id }` and
76
+ * `{ type, id }` share `id` — so the read below tests `entityType` first, then
77
+ * `model`, and falls through to `type`. A source carrying both `model` and
78
+ * `type` is not expressible here and does not occur; it would take the earlier
79
+ * branch if it did.
80
+ */
81
+ export type EntityLocator = Pick<TargetRef, 'entityType' | 'entityId'> | Pick<ModelTarget, 'model' | 'id'> | Pick<ClaimTarget, 'type' | 'id'>;
82
+ /** The entity half in the wire's spelling — claim frames, presence activity. */
83
+ export declare function wireTarget(source: EntityLocator): Pick<TargetRef, 'entityType' | 'entityId'>;
84
+ /** The entity half in the spelling SDK callers and the HTTP routes read. */
85
+ export declare function modelTarget(source: EntityLocator): Pick<ModelTarget, 'model' | 'id'>;
86
+ /** The entity half as the claim handle and the wait line carry it. */
87
+ export declare function streamTarget(source: EntityLocator): Pick<ClaimTarget, 'type' | 'id'>;
88
+ /**
89
+ * A batch claim's grant: its fencing token, and the one row it was granted over.
90
+ *
91
+ * A claim's `readAt` generalises across a batch; its token does not. The token
92
+ * is evidence of one row's place in the grant order, so it belongs only on the
93
+ * operation writing the row the claim covers. Presented anywhere else the server
94
+ * refuses it, because a token that travels is a fence any writer can raise.
95
+ */
96
+ export type BatchFence = Pick<ModelTarget, 'model' | 'id'> & {
97
+ readonly token: number;
98
+ };
99
+ /** The batch's grant, or nothing when there is no claim, or none with a token. */
100
+ export declare function batchFence(source: EntityLocator | null | undefined, token: number | null | undefined): BatchFence | null;
101
+ /**
102
+ * The token an operation carries: its own if it names one, the batch's when it
103
+ * writes the claimed row, otherwise none.
104
+ */
105
+ export declare function fenceTokenFor(fence: BatchFence | null, model: string, id: string | null): number | null;
106
+ //# sourceMappingURL=locator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locator.d.ts","sourceRoot":"","sources":["../../src/coordination/locator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,SAAS,EACT,OAAO,GAAG,QAAQ,GAAG,MAAM,CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACvD,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG;IACxD,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EACZ,SAAS,CAAC,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,GAC1C,aAAa,CAAC,CAAC,CAAC,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,gBAAgB,CAAC;CAC/D,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAGnD,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,KAAK,CAAC,EAAE,MAAM,GACb,kBAAkB,CAmBpB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,GACrB,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAE/C;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GACrB,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC,GAC1C,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC,GACjC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AASrC,gFAAgF;AAChF,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,GACpB,IAAI,CAAC,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC,CAG5C;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,GACpB,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC,CAGnC;AAED,sEAAsE;AACtE,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,GACpB,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,CAGlC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,kFAAkF;AAClF,wBAAgB,UAAU,CACxB,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACxC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,UAAU,GAAG,IAAI,CAInB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,GAAG,IAAI,GAChB,MAAM,GAAG,IAAI,CAKf"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The locator — what a claim points at, in every spelling it travels under.
3
+ *
4
+ * A target has two halves. The sub-entity half (`path`, `range`, `field`,
5
+ * `fields`, `meta`) is spelled identically everywhere; the entity half is not.
6
+ * It is `entityType`/`entityId` on the wire, `model`/`id` on the HTTP DTO and
7
+ * the SDK's model surface, and `type`/`id` on the claim handle and the wait
8
+ * line. The three coexist deliberately — unifying them changes every surface at
9
+ * once, and that is scheduled behind the protocol version — but while they
10
+ * coexist, the translation between them belongs in one place.
11
+ *
12
+ * It was copied member by member at more than twenty sites instead, which is
13
+ * how `fields` came to be added to the schema and to the conflict rule while
14
+ * several hops quietly dropped it: the rule learned to compare field sets while
15
+ * no path carried one, so the fix looked complete and changed nothing. Widening
16
+ * the locator again should touch this module and the schema, not every hop.
17
+ */
18
+ import { fieldSelection, } from '../schema/fieldRef.js';
19
+ import { partName } from './schema.js';
20
+ // The one declared→wire conversion for claim metadata; `declaredMeta` is its
21
+ // counterpart, called by the decodes that build a public claim.
22
+ import { wireMeta } from './claimMeta.js';
23
+ /**
24
+ * Copy the sub-entity part of a locator from one target shape to another.
25
+ *
26
+ * These five members are spelled identically wherever a target appears, so this
27
+ * owns all of them and the entity half is handled by its own projections below.
28
+ *
29
+ * Absent members are omitted rather than set to `undefined`, so a projected
30
+ * target can be spread into an object under `exactOptionalPropertyTypes`.
31
+ *
32
+ * The result is wire-shaped, `meta` included: this is the projection every path
33
+ * out of the SDK goes through, so it is also the single declared→wire crossing
34
+ * for claim metadata. The way back is {@link declaredMeta}, at the two decodes
35
+ * that build a public claim.
36
+ */
37
+ export function subTarget(
38
+ // `null` as well as absent, because the claim body declares its target
39
+ // nullish and the projection is most useful exactly where that body is read.
40
+ source, model) {
41
+ if (!source)
42
+ return {};
43
+ const selection = typeof source.fields === 'function'
44
+ ? source.fields(fieldSelection(model ?? ''))
45
+ : source.fields;
46
+ const selectedFields = selection === undefined
47
+ ? undefined
48
+ : Array.isArray(selection)
49
+ ? selection
50
+ : [selection];
51
+ return {
52
+ // Part names cross to their wire spelling here — the one declared→wire
53
+ // seam — so a `part('B2')` object never leaks into a frame or a URL.
54
+ ...(source.field !== undefined ? { field: partName(source.field) } : {}),
55
+ ...(selectedFields !== undefined ? { fields: selectedFields.map(partName) } : {}),
56
+ ...(source.meta !== undefined ? { meta: wireMeta(source.meta) } : {}),
57
+ };
58
+ }
59
+ /**
60
+ * Whether a target was given in the `[type, id]` shorthand rather than the
61
+ * object form.
62
+ *
63
+ * A predicate rather than an assertion, because `Array.isArray` leaves a
64
+ * readonly tuple in both branches and the alternative — asserting the object
65
+ * form — describes the locator by hand at every call site that resolves one.
66
+ */
67
+ export function isTargetTuple(target) {
68
+ return Array.isArray(target);
69
+ }
70
+ /** The entity as a name and an identifier, whichever spelling named it. */
71
+ function entityOf(source) {
72
+ if ('entityType' in source)
73
+ return [source.entityType, source.entityId];
74
+ if ('model' in source)
75
+ return [source.model, source.id];
76
+ return [source.type, source.id];
77
+ }
78
+ /** The entity half in the wire's spelling — claim frames, presence activity. */
79
+ export function wireTarget(source) {
80
+ const [entityType, entityId] = entityOf(source);
81
+ return { entityType, entityId };
82
+ }
83
+ /** The entity half in the spelling SDK callers and the HTTP routes read. */
84
+ export function modelTarget(source) {
85
+ const [model, id] = entityOf(source);
86
+ return { model, id };
87
+ }
88
+ /** The entity half as the claim handle and the wait line carry it. */
89
+ export function streamTarget(source) {
90
+ const [type, id] = entityOf(source);
91
+ return { type, id };
92
+ }
93
+ /** The batch's grant, or nothing when there is no claim, or none with a token. */
94
+ export function batchFence(source, token) {
95
+ return source == null || token == null
96
+ ? null
97
+ : { ...modelTarget(source), token };
98
+ }
99
+ /**
100
+ * The token an operation carries: its own if it names one, the batch's when it
101
+ * writes the claimed row, otherwise none.
102
+ */
103
+ export function fenceTokenFor(fence, model, id) {
104
+ if (fence === null || id === null)
105
+ return null;
106
+ return model.toLowerCase() === fence.model.toLowerCase() && id === fence.id
107
+ ? fence.token
108
+ : null;
109
+ }
110
+ //# sourceMappingURL=locator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locator.js","sourceRoot":"","sources":["../../src/coordination/locator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,cAAc,GAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,6EAA6E;AAC7E,gEAAgE;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAoC1C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,SAAS;AACvB,uEAAuE;AACvE,6EAA6E;AAC7E,MAA+C,EAC/C,KAAc;IAEd,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU;QACjC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACpB,MAAM,cAAc,GAClB,SAAS,KAAK,SAAS;QACrB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACpB,OAAO;QACL,uEAAuE;QACvE,qEAAqE;QACrE,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAsB;IAEtB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAgBD,2EAA2E;AAC3E,SAAS,QAAQ,CAAC,MAAqB;IACrC,IAAI,YAAY,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxE,IAAI,OAAO,IAAI,MAAM;QAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CACxB,MAAqB;IAErB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;AAClC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CACzB,MAAqB;IAErB,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACvB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAC1B,MAAqB;IAErB,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAcD,kFAAkF;AAClF,MAAM,UAAU,UAAU,CACxB,MAAwC,EACxC,KAAgC;IAEhC,OAAO,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI;QACpC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAwB,EACxB,KAAa,EACb,EAAiB;IAEjB,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/C,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE;QACzE,CAAC,CAAC,KAAK,CAAC,KAAK;QACb,CAAC,CAAC,IAAI,CAAC;AACX,CAAC"}