@abloatai/ablo 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -1929
  3. package/NOTICE +2 -2
  4. package/README.md +23 -532
  5. package/assets/banner.png +0 -0
  6. package/dist/auth.d.ts +2 -0
  7. package/dist/auth.d.ts.map +1 -0
  8. package/dist/auth.js +2 -0
  9. package/dist/auth.js.map +1 -0
  10. package/dist/client.d.ts +3 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +3 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/coordination.d.ts +2 -0
  15. package/dist/coordination.d.ts.map +1 -0
  16. package/dist/coordination.js +2 -0
  17. package/dist/coordination.js.map +1 -0
  18. package/dist/index.d.ts +3 -112
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +3 -161
  21. package/dist/index.js.map +1 -0
  22. package/dist/react.d.ts +4 -0
  23. package/dist/react.d.ts.map +1 -0
  24. package/dist/react.js +3 -0
  25. package/dist/react.js.map +1 -0
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.d.ts.map +1 -0
  28. package/dist/schema.js +2 -0
  29. package/dist/schema.js.map +1 -0
  30. package/dist/server.d.ts +2 -0
  31. package/dist/server.d.ts.map +1 -0
  32. package/dist/server.js +2 -0
  33. package/dist/server.js.map +1 -0
  34. package/dist/source-conformance.d.ts +2 -0
  35. package/dist/source-conformance.d.ts.map +1 -0
  36. package/dist/source-conformance.js +2 -0
  37. package/dist/source-conformance.js.map +1 -0
  38. package/dist/source-drizzle.d.ts +2 -0
  39. package/dist/source-drizzle.d.ts.map +1 -0
  40. package/dist/source-drizzle.js +2 -0
  41. package/dist/source-drizzle.js.map +1 -0
  42. package/dist/source-kysely.d.ts +2 -0
  43. package/dist/source-kysely.d.ts.map +1 -0
  44. package/dist/source-kysely.js +2 -0
  45. package/dist/source-kysely.js.map +1 -0
  46. package/dist/source-next.d.ts +2 -0
  47. package/dist/source-next.d.ts.map +1 -0
  48. package/dist/source-next.js +2 -0
  49. package/dist/source-next.js.map +1 -0
  50. package/dist/source.d.ts +2 -0
  51. package/dist/source.d.ts.map +1 -0
  52. package/dist/source.js +2 -0
  53. package/dist/source.js.map +1 -0
  54. package/dist/wire.d.ts +2 -0
  55. package/dist/wire.d.ts.map +1 -0
  56. package/dist/wire.js +2 -0
  57. package/dist/wire.js.map +1 -0
  58. package/docs/agents.md +2 -2
  59. package/docs/api-keys.md +13 -12
  60. package/docs/api.md +15 -53
  61. package/docs/audit.md +4 -3
  62. package/docs/cli.md +11 -11
  63. package/docs/client-behavior.md +9 -9
  64. package/docs/concurrency-convention.md +28 -42
  65. package/docs/coordination.md +228 -86
  66. package/docs/data-sources.md +5 -5
  67. package/docs/debugging.md +34 -12
  68. package/docs/deployment.md +8 -8
  69. package/docs/examples/agent-human.md +4 -4
  70. package/docs/examples/ai-sdk-tool.md +1 -1
  71. package/docs/examples/existing-python-backend.md +15 -4
  72. package/docs/examples/nextjs.md +27 -6
  73. package/docs/examples/scoped-agent.md +3 -3
  74. package/docs/examples/server-agent.md +2 -2
  75. package/docs/groups.md +57 -3
  76. package/docs/guarantees.md +37 -10
  77. package/docs/how-it-works.md +32 -8
  78. package/docs/idempotency.md +6 -6
  79. package/docs/identity.md +24 -24
  80. package/docs/index.md +8 -8
  81. package/docs/integration-guide.md +38 -16
  82. package/docs/internal/README.md +18 -0
  83. package/docs/internal/agent-fleet-coordination-design.md +171 -0
  84. package/docs/internal/agent-orchestration.md +58 -0
  85. package/docs/internal/commit-identifiers.md +91 -0
  86. package/docs/internal/concurrency-open-decisions.md +37 -0
  87. package/docs/internal/data-source-reverse-channel.md +150 -0
  88. package/docs/internal/per-field-conflict-detection.md +165 -0
  89. package/docs/internal/postgres-replication.md +64 -0
  90. package/docs/internal/serializable-schema.md +119 -0
  91. package/docs/internal/structure.md +32 -0
  92. package/docs/mcp.md +9 -9
  93. package/docs/migration.md +37 -18
  94. package/docs/projects.md +1 -1
  95. package/docs/quickstart.md +2 -2
  96. package/docs/react.md +24 -13
  97. package/docs/schema-contract.md +3 -3
  98. package/docs/sessions.md +91 -37
  99. package/docs/webhooks.md +9 -9
  100. package/examples/README.md +2 -2
  101. package/examples/data-source/README.md +1 -1
  102. package/examples/data-source/ablo-driver.ts +1 -1
  103. package/examples/data-source/customer-server.ts +1 -1
  104. package/examples/data-source/run.ts +1 -1
  105. package/examples/data-source/schema.ts +1 -1
  106. package/examples/quickstart.ts +2 -2
  107. package/llms.txt +12 -12
  108. package/package.json +64 -174
  109. package/dist/BaseSyncedStore.d.ts +0 -823
  110. package/dist/BaseSyncedStore.js +0 -1955
  111. package/dist/Database.d.ts +0 -335
  112. package/dist/Database.js +0 -1500
  113. package/dist/InstanceCache.d.ts +0 -233
  114. package/dist/InstanceCache.js +0 -1164
  115. package/dist/LazyReferenceCollection.d.ts +0 -177
  116. package/dist/LazyReferenceCollection.js +0 -461
  117. package/dist/Model.d.ts +0 -444
  118. package/dist/Model.js +0 -909
  119. package/dist/ModelRegistry.d.ts +0 -221
  120. package/dist/ModelRegistry.js +0 -537
  121. package/dist/NetworkMonitor.d.ts +0 -26
  122. package/dist/NetworkMonitor.js +0 -77
  123. package/dist/RuntimeContext.d.ts +0 -52
  124. package/dist/RuntimeContext.js +0 -80
  125. package/dist/SyncClient.d.ts +0 -551
  126. package/dist/SyncClient.js +0 -2199
  127. package/dist/adapters/alwaysOnline.d.ts +0 -14
  128. package/dist/adapters/alwaysOnline.js +0 -17
  129. package/dist/adapters/inMemoryStorage.d.ts +0 -31
  130. package/dist/adapters/inMemoryStorage.js +0 -110
  131. package/dist/ai-sdk/coordinatedTool.d.ts +0 -120
  132. package/dist/ai-sdk/coordinatedTool.js +0 -134
  133. package/dist/ai-sdk/coordinationContext.d.ts +0 -46
  134. package/dist/ai-sdk/coordinationContext.js +0 -106
  135. package/dist/ai-sdk/index.d.ts +0 -121
  136. package/dist/ai-sdk/index.js +0 -121
  137. package/dist/ai-sdk/wrap.d.ts +0 -65
  138. package/dist/ai-sdk/wrap.js +0 -39
  139. package/dist/auth/index.d.ts +0 -1
  140. package/dist/auth/index.js +0 -8
  141. package/dist/batching/index.d.ts +0 -55
  142. package/dist/batching/index.js +0 -147
  143. package/dist/cli.cjs +0 -288600
  144. package/dist/client/Ablo.d.ts +0 -231
  145. package/dist/client/Ablo.js +0 -149
  146. package/dist/client/abloClient.d.ts +0 -309
  147. package/dist/client/abloClient.js +0 -13
  148. package/dist/client/clientPrelude.d.ts +0 -52
  149. package/dist/client/clientPrelude.js +0 -60
  150. package/dist/client/consoleLogger.d.ts +0 -35
  151. package/dist/client/consoleLogger.js +0 -44
  152. package/dist/client/coreClient.d.ts +0 -60
  153. package/dist/client/coreClient.js +0 -118
  154. package/dist/client/createInternalComponents.d.ts +0 -46
  155. package/dist/client/createInternalComponents.js +0 -92
  156. package/dist/client/createModelProxy.d.ts +0 -228
  157. package/dist/client/createModelProxy.js +0 -818
  158. package/dist/client/humans.d.ts +0 -48
  159. package/dist/client/humans.js +0 -52
  160. package/dist/client/modelRegistration.d.ts +0 -10
  161. package/dist/client/modelRegistration.js +0 -312
  162. package/dist/client/options.d.ts +0 -461
  163. package/dist/client/options.js +0 -7
  164. package/dist/client/reactiveEngine.d.ts +0 -48
  165. package/dist/client/reactiveEngine.js +0 -910
  166. package/dist/client/resourceTypes.d.ts +0 -12
  167. package/dist/client/resourceTypes.js +0 -10
  168. package/dist/client/schemaConfig.d.ts +0 -44
  169. package/dist/client/schemaConfig.js +0 -185
  170. package/dist/client/validateAbloOptions.d.ts +0 -42
  171. package/dist/client/validateAbloOptions.js +0 -43
  172. package/dist/client/wsMutationExecutor.d.ts +0 -27
  173. package/dist/client/wsMutationExecutor.js +0 -72
  174. package/dist/context.d.ts +0 -29
  175. package/dist/context.js +0 -58
  176. package/dist/coordination/ClaimLog.d.ts +0 -26
  177. package/dist/coordination/ClaimLog.js +0 -32
  178. package/dist/coordination/index.d.ts +0 -1
  179. package/dist/coordination/index.js +0 -8
  180. package/dist/core/DatabaseManager.d.ts +0 -105
  181. package/dist/core/DatabaseManager.js +0 -387
  182. package/dist/core/QueryProcessor.d.ts +0 -75
  183. package/dist/core/QueryProcessor.js +0 -255
  184. package/dist/core/QueryView.d.ts +0 -79
  185. package/dist/core/QueryView.js +0 -218
  186. package/dist/core/StoreManager.d.ts +0 -112
  187. package/dist/core/StoreManager.js +0 -302
  188. package/dist/core/ViewRegistry.d.ts +0 -20
  189. package/dist/core/ViewRegistry.js +0 -55
  190. package/dist/core/index.d.ts +0 -33
  191. package/dist/core/index.js +0 -48
  192. package/dist/core/openIDBWithTimeout.d.ts +0 -65
  193. package/dist/core/openIDBWithTimeout.js +0 -153
  194. package/dist/core/queryUtils.d.ts +0 -45
  195. package/dist/core/queryUtils.js +0 -69
  196. package/dist/core/storeContract.d.ts +0 -145
  197. package/dist/core/storeContract.js +0 -12
  198. package/dist/docs/catalog.d.ts +0 -72
  199. package/dist/docs/catalog.js +0 -227
  200. package/dist/docs/index.d.ts +0 -10
  201. package/dist/docs/index.js +0 -10
  202. package/dist/environment.d.ts +0 -1
  203. package/dist/environment.js +0 -8
  204. package/dist/interfaces/index.d.ts +0 -311
  205. package/dist/interfaces/index.js +0 -9
  206. package/dist/keys/index.d.ts +0 -1
  207. package/dist/keys/index.js +0 -8
  208. package/dist/mutators/RecordingMutation.d.ts +0 -36
  209. package/dist/mutators/RecordingMutation.js +0 -182
  210. package/dist/mutators/Transaction.d.ts +0 -40
  211. package/dist/mutators/Transaction.js +0 -58
  212. package/dist/mutators/UndoManager.d.ts +0 -258
  213. package/dist/mutators/UndoManager.js +0 -658
  214. package/dist/mutators/defineMutators.d.ts +0 -60
  215. package/dist/mutators/defineMutators.js +0 -18
  216. package/dist/mutators/inverseOp.d.ts +0 -126
  217. package/dist/mutators/inverseOp.js +0 -71
  218. package/dist/mutators/mutateActions.d.ts +0 -45
  219. package/dist/mutators/mutateActions.js +0 -105
  220. package/dist/mutators/readerActions.d.ts +0 -33
  221. package/dist/mutators/readerActions.js +0 -57
  222. package/dist/mutators/undoApply.d.ts +0 -51
  223. package/dist/mutators/undoApply.js +0 -117
  224. package/dist/policy/index.d.ts +0 -21
  225. package/dist/policy/index.js +0 -20
  226. package/dist/query/client.d.ts +0 -61
  227. package/dist/query/client.js +0 -137
  228. package/dist/query/types.d.ts +0 -85
  229. package/dist/query/types.js +0 -16
  230. package/dist/react/AbloProvider.d.ts +0 -230
  231. package/dist/react/AbloProvider.js +0 -455
  232. package/dist/react/ClientSideSuspense.d.ts +0 -36
  233. package/dist/react/ClientSideSuspense.js +0 -17
  234. package/dist/react/DefaultFallback.d.ts +0 -24
  235. package/dist/react/DefaultFallback.js +0 -43
  236. package/dist/react/context.d.ts +0 -55
  237. package/dist/react/context.js +0 -29
  238. package/dist/react/index.d.ts +0 -61
  239. package/dist/react/index.js +0 -66
  240. package/dist/react/internalContext.d.ts +0 -33
  241. package/dist/react/internalContext.js +0 -3
  242. package/dist/react/useAblo.d.ts +0 -75
  243. package/dist/react/useAblo.js +0 -102
  244. package/dist/react/useCurrentUserId.d.ts +0 -22
  245. package/dist/react/useCurrentUserId.js +0 -34
  246. package/dist/react/useErrorListener.d.ts +0 -20
  247. package/dist/react/useErrorListener.js +0 -38
  248. package/dist/react/useMutationFailureListener.d.ts +0 -26
  249. package/dist/react/useMutationFailureListener.js +0 -38
  250. package/dist/react/useMutators.d.ts +0 -56
  251. package/dist/react/useMutators.js +0 -84
  252. package/dist/react/useReactive.d.ts +0 -35
  253. package/dist/react/useReactive.js +0 -123
  254. package/dist/react/useSyncStatus.d.ts +0 -59
  255. package/dist/react/useSyncStatus.js +0 -76
  256. package/dist/react/useUndoScope.d.ts +0 -34
  257. package/dist/react/useUndoScope.js +0 -81
  258. package/dist/schema/coordination.d.ts +0 -112
  259. package/dist/schema/coordination.js +0 -129
  260. package/dist/schema/ddl.d.ts +0 -97
  261. package/dist/schema/ddl.js +0 -491
  262. package/dist/schema/ddlLock.d.ts +0 -35
  263. package/dist/schema/ddlLock.js +0 -46
  264. package/dist/schema/diff.d.ts +0 -225
  265. package/dist/schema/diff.js +0 -289
  266. package/dist/schema/generate.d.ts +0 -19
  267. package/dist/schema/generate.js +0 -86
  268. package/dist/schema/index.d.ts +0 -41
  269. package/dist/schema/index.js +0 -76
  270. package/dist/schema/queries.d.ts +0 -201
  271. package/dist/schema/queries.js +0 -144
  272. package/dist/schema/select.d.ts +0 -40
  273. package/dist/schema/select.js +0 -87
  274. package/dist/schema/serialize.d.ts +0 -115
  275. package/dist/schema/serialize.js +0 -262
  276. package/dist/schema/sugar.d.ts +0 -109
  277. package/dist/schema/sugar.js +0 -83
  278. package/dist/schema/syncDeltaRow.d.ts +0 -6
  279. package/dist/schema/syncDeltaRow.js +0 -6
  280. package/dist/server/adapter.d.ts +0 -173
  281. package/dist/server/adapter.js +0 -18
  282. package/dist/server/commit.d.ts +0 -107
  283. package/dist/server/commit.js +0 -1
  284. package/dist/server/index.d.ts +0 -14
  285. package/dist/server/index.js +0 -2
  286. package/dist/server/readConfig.d.ts +0 -80
  287. package/dist/server/readConfig.js +0 -8
  288. package/dist/server/storageMode.d.ts +0 -23
  289. package/dist/server/storageMode.js +0 -17
  290. package/dist/source/adapter.d.ts +0 -81
  291. package/dist/source/adapter.js +0 -22
  292. package/dist/source/adapters/drizzle.d.ts +0 -48
  293. package/dist/source/adapters/drizzle.js +0 -219
  294. package/dist/source/adapters/kysely.d.ts +0 -42
  295. package/dist/source/adapters/kysely.js +0 -205
  296. package/dist/source/adapters/kyselyMutationCore.d.ts +0 -76
  297. package/dist/source/adapters/kyselyMutationCore.js +0 -125
  298. package/dist/source/adapters/memory.d.ts +0 -13
  299. package/dist/source/adapters/memory.js +0 -130
  300. package/dist/source/adapters/prisma.d.ts +0 -63
  301. package/dist/source/adapters/prisma.js +0 -202
  302. package/dist/source/conformance.d.ts +0 -37
  303. package/dist/source/conformance.js +0 -215
  304. package/dist/source/connector.d.ts +0 -95
  305. package/dist/source/connector.js +0 -266
  306. package/dist/source/connectorProtocol.d.ts +0 -154
  307. package/dist/source/connectorProtocol.js +0 -163
  308. package/dist/source/contract.d.ts +0 -195
  309. package/dist/source/contract.js +0 -164
  310. package/dist/source/factory.d.ts +0 -92
  311. package/dist/source/factory.js +0 -286
  312. package/dist/source/footprint.d.ts +0 -111
  313. package/dist/source/footprint.js +0 -0
  314. package/dist/source/idempotency.d.ts +0 -61
  315. package/dist/source/idempotency.js +0 -144
  316. package/dist/source/index.d.ts +0 -23
  317. package/dist/source/index.js +0 -30
  318. package/dist/source/migrations.d.ts +0 -21
  319. package/dist/source/migrations.js +0 -103
  320. package/dist/source/next.d.ts +0 -32
  321. package/dist/source/next.js +0 -25
  322. package/dist/source/pushQueue.d.ts +0 -134
  323. package/dist/source/pushQueue.js +0 -256
  324. package/dist/source/signing.d.ts +0 -92
  325. package/dist/source/signing.js +0 -162
  326. package/dist/source/types.d.ts +0 -401
  327. package/dist/source/types.js +0 -59
  328. package/dist/stores/ObjectStore.d.ts +0 -115
  329. package/dist/stores/ObjectStore.js +0 -393
  330. package/dist/stores/ObjectStoreContract.d.ts +0 -38
  331. package/dist/stores/ObjectStoreContract.js +0 -1
  332. package/dist/stores/SyncActionStore.d.ts +0 -97
  333. package/dist/stores/SyncActionStore.js +0 -504
  334. package/dist/stores/syncAction.d.ts +0 -26
  335. package/dist/stores/syncAction.js +0 -16
  336. package/dist/surface.d.ts +0 -36
  337. package/dist/surface.js +0 -75
  338. package/dist/sync/BootstrapFetcher.d.ts +0 -280
  339. package/dist/sync/BootstrapFetcher.js +0 -962
  340. package/dist/sync/ConnectionManager.d.ts +0 -8
  341. package/dist/sync/ConnectionManager.js +0 -8
  342. package/dist/sync/OnDemandLoader.d.ts +0 -228
  343. package/dist/sync/OnDemandLoader.js +0 -742
  344. package/dist/sync/SubscriptionManager.d.ts +0 -159
  345. package/dist/sync/SubscriptionManager.js +0 -243
  346. package/dist/sync/SyncWebSocket.d.ts +0 -173
  347. package/dist/sync/SyncWebSocket.js +0 -438
  348. package/dist/sync/awaitClaimGrant.d.ts +0 -6
  349. package/dist/sync/awaitClaimGrant.js +0 -6
  350. package/dist/sync/bootstrapApply.d.ts +0 -70
  351. package/dist/sync/bootstrapApply.js +0 -73
  352. package/dist/sync/commitFrames.d.ts +0 -8
  353. package/dist/sync/commitFrames.js +0 -8
  354. package/dist/sync/contextPorts.d.ts +0 -18
  355. package/dist/sync/contextPorts.js +0 -31
  356. package/dist/sync/createClaimStream.d.ts +0 -7
  357. package/dist/sync/createClaimStream.js +0 -7
  358. package/dist/sync/createPresenceStream.d.ts +0 -69
  359. package/dist/sync/createPresenceStream.js +0 -200
  360. package/dist/sync/createSnapshot.d.ts +0 -29
  361. package/dist/sync/createSnapshot.js +0 -118
  362. package/dist/sync/credentialLifecycle.d.ts +0 -7
  363. package/dist/sync/credentialLifecycle.js +0 -7
  364. package/dist/sync/deltaPipeline.d.ts +0 -113
  365. package/dist/sync/deltaPipeline.js +0 -261
  366. package/dist/sync/groupChange.d.ts +0 -113
  367. package/dist/sync/groupChange.js +0 -242
  368. package/dist/sync/participants.d.ts +0 -115
  369. package/dist/sync/participants.js +0 -344
  370. package/dist/sync/persistedPrefix.d.ts +0 -12
  371. package/dist/sync/persistedPrefix.js +0 -22
  372. package/dist/sync/schemaDrift.d.ts +0 -55
  373. package/dist/sync/schemaDrift.js +0 -53
  374. package/dist/sync/schemas.d.ts +0 -70
  375. package/dist/sync/schemas.js +0 -94
  376. package/dist/sync/syncCursor.d.ts +0 -40
  377. package/dist/sync/syncCursor.js +0 -55
  378. package/dist/sync/syncPlan.d.ts +0 -54
  379. package/dist/sync/syncPlan.js +0 -50
  380. package/dist/sync/wsFrameHandlers.d.ts +0 -8
  381. package/dist/sync/wsFrameHandlers.js +0 -8
  382. package/dist/testing/fixtures/bootstrap.d.ts +0 -49
  383. package/dist/testing/fixtures/bootstrap.js +0 -59
  384. package/dist/testing/fixtures/deltas.d.ts +0 -83
  385. package/dist/testing/fixtures/deltas.js +0 -136
  386. package/dist/testing/fixtures/httpResponses.d.ts +0 -70
  387. package/dist/testing/fixtures/httpResponses.js +0 -90
  388. package/dist/testing/fixtures/models.d.ts +0 -83
  389. package/dist/testing/fixtures/models.js +0 -272
  390. package/dist/testing/helpers/reactWrapper.d.ts +0 -69
  391. package/dist/testing/helpers/reactWrapper.js +0 -67
  392. package/dist/testing/helpers/syncEngineHarness.d.ts +0 -54
  393. package/dist/testing/helpers/syncEngineHarness.js +0 -73
  394. package/dist/testing/helpers/wait.d.ts +0 -30
  395. package/dist/testing/helpers/wait.js +0 -49
  396. package/dist/testing/index.d.ts +0 -23
  397. package/dist/testing/index.js +0 -33
  398. package/dist/testing/mocks/FakeDatabase.d.ts +0 -18
  399. package/dist/testing/mocks/FakeDatabase.js +0 -10
  400. package/dist/testing/mocks/MockMutationExecutor.d.ts +0 -87
  401. package/dist/testing/mocks/MockMutationExecutor.js +0 -186
  402. package/dist/testing/mocks/MockNetworkMonitor.d.ts +0 -20
  403. package/dist/testing/mocks/MockNetworkMonitor.js +0 -46
  404. package/dist/testing/mocks/MockSyncContext.d.ts +0 -51
  405. package/dist/testing/mocks/MockSyncContext.js +0 -72
  406. package/dist/testing/mocks/MockSyncStore.d.ts +0 -88
  407. package/dist/testing/mocks/MockSyncStore.js +0 -171
  408. package/dist/testing/mocks/MockWebSocket.d.ts +0 -71
  409. package/dist/testing/mocks/MockWebSocket.js +0 -118
  410. package/dist/transaction/ablo.d.ts +0 -88
  411. package/dist/transaction/ablo.js +0 -33
  412. package/dist/transaction/auth/apiKey.d.ts +0 -152
  413. package/dist/transaction/auth/apiKey.js +0 -419
  414. package/dist/transaction/auth/bootstrapScope.d.ts +0 -15
  415. package/dist/transaction/auth/bootstrapScope.js +0 -1
  416. package/dist/transaction/auth/capability.d.ts +0 -177
  417. package/dist/transaction/auth/capability.js +0 -199
  418. package/dist/transaction/auth/credentialEndpoint.d.ts +0 -61
  419. package/dist/transaction/auth/credentialEndpoint.js +0 -86
  420. package/dist/transaction/auth/credentialPolicy.d.ts +0 -148
  421. package/dist/transaction/auth/credentialPolicy.js +0 -125
  422. package/dist/transaction/auth/credentialSource.d.ts +0 -30
  423. package/dist/transaction/auth/credentialSource.js +0 -55
  424. package/dist/transaction/auth/hostedEndpoints.d.ts +0 -21
  425. package/dist/transaction/auth/hostedEndpoints.js +0 -21
  426. package/dist/transaction/auth/identity.d.ts +0 -55
  427. package/dist/transaction/auth/identity.js +0 -210
  428. package/dist/transaction/auth/index.d.ts +0 -162
  429. package/dist/transaction/auth/index.js +0 -304
  430. package/dist/transaction/auth/schemas.d.ts +0 -59
  431. package/dist/transaction/auth/schemas.js +0 -85
  432. package/dist/transaction/auth/sessionMint.d.ts +0 -28
  433. package/dist/transaction/auth/sessionMint.js +0 -85
  434. package/dist/transaction/coordination/awaitClaimGrant.d.ts +0 -49
  435. package/dist/transaction/coordination/awaitClaimGrant.js +0 -112
  436. package/dist/transaction/coordination/claimHeartbeatLoop.d.ts +0 -50
  437. package/dist/transaction/coordination/claimHeartbeatLoop.js +0 -88
  438. package/dist/transaction/coordination/claimMeta.d.ts +0 -49
  439. package/dist/transaction/coordination/claimMeta.js +0 -52
  440. package/dist/transaction/coordination/createClaimStream.d.ts +0 -64
  441. package/dist/transaction/coordination/createClaimStream.js +0 -475
  442. package/dist/transaction/coordination/events.d.ts +0 -74
  443. package/dist/transaction/coordination/events.js +0 -7
  444. package/dist/transaction/coordination/index.d.ts +0 -19
  445. package/dist/transaction/coordination/index.js +0 -44
  446. package/dist/transaction/coordination/locator.d.ts +0 -83
  447. package/dist/transaction/coordination/locator.js +0 -82
  448. package/dist/transaction/coordination/schema.d.ts +0 -1473
  449. package/dist/transaction/coordination/schema.js +0 -1013
  450. package/dist/transaction/coordination/targetConflict.d.ts +0 -2
  451. package/dist/transaction/coordination/targetConflict.js +0 -103
  452. package/dist/transaction/coordination/trace.d.ts +0 -78
  453. package/dist/transaction/coordination/trace.js +0 -138
  454. package/dist/transaction/durableWrites.d.ts +0 -62
  455. package/dist/transaction/durableWrites.js +0 -71
  456. package/dist/transaction/environment.d.ts +0 -105
  457. package/dist/transaction/environment.js +0 -108
  458. package/dist/transaction/errorCodes.d.ts +0 -403
  459. package/dist/transaction/errorCodes.js +0 -480
  460. package/dist/transaction/errors.d.ts +0 -428
  461. package/dist/transaction/errors.js +0 -686
  462. package/dist/transaction/index.d.ts +0 -20
  463. package/dist/transaction/index.js +0 -20
  464. package/dist/transaction/keys/index.d.ts +0 -87
  465. package/dist/transaction/keys/index.js +0 -207
  466. package/dist/transaction/log/syncDeltaRow.d.ts +0 -158
  467. package/dist/transaction/log/syncDeltaRow.js +0 -95
  468. package/dist/transaction/logPosition.d.ts +0 -97
  469. package/dist/transaction/logPosition.js +0 -125
  470. package/dist/transaction/logger.d.ts +0 -16
  471. package/dist/transaction/logger.js +0 -7
  472. package/dist/transaction/observability.d.ts +0 -53
  473. package/dist/transaction/observability.js +0 -19
  474. package/dist/transaction/persistence.d.ts +0 -12
  475. package/dist/transaction/persistence.js +0 -11
  476. package/dist/transaction/plugin.d.ts +0 -192
  477. package/dist/transaction/plugin.js +0 -87
  478. package/dist/transaction/policy/types.d.ts +0 -217
  479. package/dist/transaction/policy/types.js +0 -126
  480. package/dist/transaction/resources/functionalUpdate.d.ts +0 -79
  481. package/dist/transaction/resources/functionalUpdate.js +0 -87
  482. package/dist/transaction/resources/httpResources.d.ts +0 -266
  483. package/dist/transaction/resources/httpResources.js +0 -7
  484. package/dist/transaction/resources/modelOperations.d.ts +0 -319
  485. package/dist/transaction/resources/modelOperations.js +0 -12
  486. package/dist/transaction/resources/mutationOptions.d.ts +0 -66
  487. package/dist/transaction/resources/mutationOptions.js +0 -9
  488. package/dist/transaction/resources/where.d.ts +0 -85
  489. package/dist/transaction/resources/where.js +0 -70
  490. package/dist/transaction/resources/writeOptionsSchema.d.ts +0 -47
  491. package/dist/transaction/resources/writeOptionsSchema.js +0 -73
  492. package/dist/transaction/schema/field.d.ts +0 -126
  493. package/dist/transaction/schema/field.js +0 -265
  494. package/dist/transaction/schema/loadStrategy.d.ts +0 -45
  495. package/dist/transaction/schema/loadStrategy.js +0 -46
  496. package/dist/transaction/schema/model.d.ts +0 -379
  497. package/dist/transaction/schema/model.js +0 -123
  498. package/dist/transaction/schema/openapi.d.ts +0 -57
  499. package/dist/transaction/schema/openapi.js +0 -340
  500. package/dist/transaction/schema/relation.d.ts +0 -199
  501. package/dist/transaction/schema/relation.js +0 -104
  502. package/dist/transaction/schema/residency.d.ts +0 -29
  503. package/dist/transaction/schema/residency.js +0 -25
  504. package/dist/transaction/schema/roles.d.ts +0 -249
  505. package/dist/transaction/schema/roles.js +0 -230
  506. package/dist/transaction/schema/schema.d.ts +0 -324
  507. package/dist/transaction/schema/schema.js +0 -305
  508. package/dist/transaction/schema/tenancy.d.ts +0 -139
  509. package/dist/transaction/schema/tenancy.js +0 -190
  510. package/dist/transaction/transactionLayer.d.ts +0 -82
  511. package/dist/transaction/transactionLayer.js +0 -24
  512. package/dist/transaction/transactions/settlement/commitEnvelope.d.ts +0 -143
  513. package/dist/transaction/transactions/settlement/commitEnvelope.js +0 -161
  514. package/dist/transaction/transactions/settlement/httpCommitEnvelope.d.ts +0 -53
  515. package/dist/transaction/transactions/settlement/httpCommitEnvelope.js +0 -207
  516. package/dist/transaction/transactions/settlement/idempotencyKey.d.ts +0 -10
  517. package/dist/transaction/transactions/settlement/idempotencyKey.js +0 -9
  518. package/dist/transaction/transactions/settlement/pendingWrite.d.ts +0 -112
  519. package/dist/transaction/transactions/settlement/pendingWrite.js +0 -20
  520. package/dist/transaction/transport/commitFrames.d.ts +0 -90
  521. package/dist/transaction/transport/commitFrames.js +0 -134
  522. package/dist/transaction/transport/connectionManager.d.ts +0 -215
  523. package/dist/transaction/transport/connectionManager.js +0 -673
  524. package/dist/transaction/transport/credentialLifecycle.d.ts +0 -177
  525. package/dist/transaction/transport/credentialLifecycle.js +0 -324
  526. package/dist/transaction/transport/heartbeat.d.ts +0 -65
  527. package/dist/transaction/transport/heartbeat.js +0 -93
  528. package/dist/transaction/transport/httpClient.d.ts +0 -123
  529. package/dist/transaction/transport/httpClient.js +0 -145
  530. package/dist/transaction/transport/httpOptions.d.ts +0 -33
  531. package/dist/transaction/transport/httpOptions.js +0 -12
  532. package/dist/transaction/transport/httpTransport.d.ts +0 -8
  533. package/dist/transaction/transport/httpTransport.js +0 -1276
  534. package/dist/transaction/transport/networkProbe.d.ts +0 -84
  535. package/dist/transaction/transport/networkProbe.js +0 -207
  536. package/dist/transaction/transport/wsFrameHandlers.d.ts +0 -128
  537. package/dist/transaction/transport/wsFrameHandlers.js +0 -429
  538. package/dist/transaction/transport/wsTransport.d.ts +0 -576
  539. package/dist/transaction/transport/wsTransport.js +0 -1017
  540. package/dist/transaction/types/assertExact.d.ts +0 -17
  541. package/dist/transaction/types/assertExact.js +0 -1
  542. package/dist/transaction/types/global.d.ts +0 -107
  543. package/dist/transaction/types/global.js +0 -40
  544. package/dist/transaction/types/index.d.ts +0 -205
  545. package/dist/transaction/types/index.js +0 -56
  546. package/dist/transaction/types/modelData.d.ts +0 -10
  547. package/dist/transaction/types/modelData.js +0 -9
  548. package/dist/transaction/types/participant.d.ts +0 -20
  549. package/dist/transaction/types/participant.js +0 -10
  550. package/dist/transaction/types/streams.d.ts +0 -540
  551. package/dist/transaction/types/streams.js +0 -11
  552. package/dist/transaction/utils/asyncIterator.d.ts +0 -34
  553. package/dist/transaction/utils/asyncIterator.js +0 -135
  554. package/dist/transaction/utils/duration.d.ts +0 -25
  555. package/dist/transaction/utils/duration.js +0 -45
  556. package/dist/transaction/utils/json.d.ts +0 -57
  557. package/dist/transaction/utils/json.js +0 -276
  558. package/dist/transaction/wire/accountResponses.d.ts +0 -351
  559. package/dist/transaction/wire/accountResponses.js +0 -255
  560. package/dist/transaction/wire/auth.d.ts +0 -49
  561. package/dist/transaction/wire/auth.js +0 -57
  562. package/dist/transaction/wire/bootstrapReason.d.ts +0 -9
  563. package/dist/transaction/wire/bootstrapReason.js +0 -8
  564. package/dist/transaction/wire/claimEvent.d.ts +0 -76
  565. package/dist/transaction/wire/claimEvent.js +0 -73
  566. package/dist/transaction/wire/claims.d.ts +0 -463
  567. package/dist/transaction/wire/claims.js +0 -229
  568. package/dist/transaction/wire/commit.d.ts +0 -603
  569. package/dist/transaction/wire/commit.js +0 -321
  570. package/dist/transaction/wire/delta.d.ts +0 -250
  571. package/dist/transaction/wire/delta.js +0 -147
  572. package/dist/transaction/wire/errorEnvelope.d.ts +0 -72
  573. package/dist/transaction/wire/errorEnvelope.js +0 -123
  574. package/dist/transaction/wire/feedCursor.d.ts +0 -60
  575. package/dist/transaction/wire/feedCursor.js +0 -82
  576. package/dist/transaction/wire/feedEvent.d.ts +0 -177
  577. package/dist/transaction/wire/feedEvent.js +0 -39
  578. package/dist/transaction/wire/frames.d.ts +0 -194
  579. package/dist/transaction/wire/frames.js +0 -50
  580. package/dist/transaction/wire/inboundFrames.d.ts +0 -552
  581. package/dist/transaction/wire/inboundFrames.js +0 -116
  582. package/dist/transaction/wire/index.d.ts +0 -50
  583. package/dist/transaction/wire/index.js +0 -74
  584. package/dist/transaction/wire/listEnvelope.d.ts +0 -37
  585. package/dist/transaction/wire/listEnvelope.js +0 -42
  586. package/dist/transaction/wire/modelResponses.d.ts +0 -85
  587. package/dist/transaction/wire/modelResponses.js +0 -43
  588. package/dist/transaction/wire/protocol.d.ts +0 -38
  589. package/dist/transaction/wire/protocol.js +0 -38
  590. package/dist/transaction/wire/protocolVersion.d.ts +0 -73
  591. package/dist/transaction/wire/protocolVersion.js +0 -83
  592. package/dist/transactions/mutations/MutationQueue.d.ts +0 -655
  593. package/dist/transactions/mutations/MutationQueue.js +0 -2797
  594. package/dist/transactions/mutations/MutationStore.d.ts +0 -20
  595. package/dist/transactions/mutations/MutationStore.js +0 -53
  596. package/dist/transactions/mutations/UnconfirmedWrites.d.ts +0 -82
  597. package/dist/transactions/mutations/UnconfirmedWrites.js +0 -104
  598. package/dist/transactions/mutations/coalesceRules.d.ts +0 -58
  599. package/dist/transactions/mutations/coalesceRules.js +0 -140
  600. package/dist/transactions/mutations/commitLatency.d.ts +0 -52
  601. package/dist/transactions/mutations/commitLatency.js +0 -130
  602. package/dist/transactions/mutations/commitOutboxStore.d.ts +0 -28
  603. package/dist/transactions/mutations/commitOutboxStore.js +0 -26
  604. package/dist/transactions/mutations/commitPayload.d.ts +0 -164
  605. package/dist/transactions/mutations/commitPayload.js +0 -152
  606. package/dist/transactions/mutations/deltaConfirmation.d.ts +0 -59
  607. package/dist/transactions/mutations/deltaConfirmation.js +0 -233
  608. package/dist/transactions/mutations/durableWriteStore.d.ts +0 -14
  609. package/dist/transactions/mutations/durableWriteStore.js +0 -12
  610. package/dist/transactions/mutations/optimisticApply.d.ts +0 -49
  611. package/dist/transactions/mutations/optimisticApply.js +0 -65
  612. package/dist/transactions/mutations/replayValidation.d.ts +0 -186
  613. package/dist/transactions/mutations/replayValidation.js +0 -163
  614. package/dist/utils/mobxSetup.d.ts +0 -53
  615. package/dist/utils/mobxSetup.js +0 -330
  616. package/dist/webhooks/events.d.ts +0 -43
  617. package/dist/webhooks/events.js +0 -42
  618. package/dist/webhooks/index.d.ts +0 -8
  619. package/dist/webhooks/index.js +0 -8
  620. package/dist/wire/index.d.ts +0 -1
  621. package/dist/wire/index.js +0 -8
  622. package/docs/interaction-model.md +0 -99
@@ -1,45 +0,0 @@
1
- /**
2
- * Small, self-contained helpers for sorting, filtering, and binary insertion.
3
- * The incrementally-updated views that implement {@link IncrementalView} rely on
4
- * these for their ordering and matching, so keeping the rules in one place
5
- * ensures every view sorts and filters identically. The functions here work on
6
- * plain arrays and values — they hold no reference to models, pools, or the
7
- * reactivity system.
8
- */
9
- /**
10
- * The interface a live view implements to receive incremental updates: one call
11
- * when an entity is added, one when it changes, and one when it is removed. A
12
- * view registry holds its views under this non-generic base type so it can keep
13
- * views over different entity shapes in a single collection and notify them
14
- * uniformly. Because a generic `View<T>` is invariant in `T`, this shared base
15
- * is what lets the registry store and dispatch to them without unsafe casts.
16
- */
17
- export interface IncrementalView {
18
- handleAdded(entity: Record<string, unknown>): void;
19
- handleUpdated(entity: Record<string, unknown>): void;
20
- handleRemoved(id: string): void;
21
- }
22
- /**
23
- * Compares two values for sorting, tolerating `null` and `undefined`, which
24
- * always sort last regardless of direction. `dir` is 1 for ascending or -1 for
25
- * descending. Returns -1, 0, or 1.
26
- */
27
- export declare function compareValues(a: unknown, b: unknown, dir: 1 | -1): number;
28
- /**
29
- * Finds, by binary search, the index at which `item` should be inserted to keep
30
- * an array ordered. The array must already be sorted by `sortKey` in direction
31
- * `dir`, using the same rule as {@link compareValues}. Returns that insertion
32
- * index.
33
- */
34
- export declare function binaryInsertionIndex<T>(arr: ArrayLike<T>, item: T, sortKey: string, dir: 1 | -1): number;
35
- /**
36
- * Returns true when an entity satisfies a declarative `where` filter: every key
37
- * present in `where` must equal the entity's value for that key. A key whose
38
- * filter value is `undefined` is skipped, so a partially-filled filter matches
39
- * on only its defined keys.
40
- */
41
- export declare function matchesWhere<T extends Record<string, unknown>>(entity: T, where: Partial<T>): boolean;
42
- /**
43
- * Find the index of an entity by id in an array. Returns -1 if not found.
44
- */
45
- export declare function findIndexById<T extends Record<string, unknown>>(arr: ArrayLike<T>, id: string): number;
@@ -1,69 +0,0 @@
1
- /**
2
- * Small, self-contained helpers for sorting, filtering, and binary insertion.
3
- * The incrementally-updated views that implement {@link IncrementalView} rely on
4
- * these for their ordering and matching, so keeping the rules in one place
5
- * ensures every view sorts and filters identically. The functions here work on
6
- * plain arrays and values — they hold no reference to models, pools, or the
7
- * reactivity system.
8
- */
9
- /**
10
- * Compares two values for sorting, tolerating `null` and `undefined`, which
11
- * always sort last regardless of direction. `dir` is 1 for ascending or -1 for
12
- * descending. Returns -1, 0, or 1.
13
- */
14
- export function compareValues(a, b, dir) {
15
- if (a === b)
16
- return 0;
17
- if (a == null)
18
- return 1;
19
- if (b == null)
20
- return -1;
21
- return (a < b ? -1 : 1) * dir;
22
- }
23
- /**
24
- * Finds, by binary search, the index at which `item` should be inserted to keep
25
- * an array ordered. The array must already be sorted by `sortKey` in direction
26
- * `dir`, using the same rule as {@link compareValues}. Returns that insertion
27
- * index.
28
- */
29
- export function binaryInsertionIndex(arr, item, sortKey, dir) {
30
- let lo = 0;
31
- let hi = arr.length;
32
- const itemVal = item[sortKey];
33
- while (lo < hi) {
34
- const mid = (lo + hi) >>> 1;
35
- const midVal = arr[mid][sortKey];
36
- if (compareValues(midVal, itemVal, dir) <= 0) {
37
- lo = mid + 1;
38
- }
39
- else {
40
- hi = mid;
41
- }
42
- }
43
- return lo;
44
- }
45
- /**
46
- * Returns true when an entity satisfies a declarative `where` filter: every key
47
- * present in `where` must equal the entity's value for that key. A key whose
48
- * filter value is `undefined` is skipped, so a partially-filled filter matches
49
- * on only its defined keys.
50
- */
51
- export function matchesWhere(entity, where) {
52
- for (const [key, value] of Object.entries(where)) {
53
- if (value === undefined)
54
- continue;
55
- if (entity[key] !== value)
56
- return false;
57
- }
58
- return true;
59
- }
60
- /**
61
- * Find the index of an entity by id in an array. Returns -1 if not found.
62
- */
63
- export function findIndexById(arr, id) {
64
- for (let i = 0; i < arr.length; i++) {
65
- if (arr[i]?.id === id)
66
- return i;
67
- }
68
- return -1;
69
- }
@@ -1,145 +0,0 @@
1
- /**
2
- * The framework-neutral store contract. {@link SyncStoreContract} is the minimal
3
- * store interface the SDK's hooks and mutators are written against, and
4
- * {@link BaseSyncedStore} is the concrete class that implements it. Framework
5
- * integrations, such as the React bindings, re-export these types, so a hook can
6
- * accept any store that satisfies the contract without depending on a particular
7
- * UI framework.
8
- *
9
- * This module is type-only: it has no runtime imports and contributes nothing to
10
- * the runtime bundle beyond the erased interface declarations.
11
- */
12
- import type { Model } from '../Model.js';
13
- import type { ModelScope } from '../transaction/types/index.js';
14
- import type { QueryView, QueryViewOptions } from './QueryView.js';
15
- import type { ViewRegistry } from './ViewRegistry.js';
16
- import type { ParticipantScope } from '../sync/participants.js';
17
- /**
18
- * A snapshot of the client's synchronization state, shaped for binding to UI.
19
- * {@link SyncStoreContract.syncStatus} exposes a reactive instance of this, and
20
- * the `useSyncStatus()` hook reads its fields to render connection and progress
21
- * indicators.
22
- */
23
- export interface SyncStatus {
24
- state: 'idle' | 'syncing' | 'error' | 'offline' | 'reconnecting';
25
- progress: number;
26
- error?: Error;
27
- /** When true, the error is a session/auth error requiring re-authentication. */
28
- isSessionError: boolean;
29
- lastSyncAt?: Date;
30
- pendingChanges: number;
31
- offlineSince?: Date;
32
- }
33
- /**
34
- * A single locally-originated mutation, observed as it flows through the commit
35
- * stream. The undo system records these to build its inverse operations: one is
36
- * emitted per local create, update, delete, or archive. Changes arriving from
37
- * other participants do not appear here — they apply through a separate path
38
- * that does not queue mutations. Because `previousData` captures the field
39
- * values as they were before the edit, each event carries everything needed to
40
- * derive its inverse, with no separate snapshot step. A store exposes this
41
- * stream through {@link SyncStoreContract.subscribeLocalMutations}.
42
- */
43
- export interface LocalMutation {
44
- type: 'create' | 'update' | 'delete' | 'archive' | 'unarchive';
45
- /** The registered name of the mutated model, for example `'Block'`. */
46
- modelName: string;
47
- modelId: string;
48
- /** The new field values, for a create or an update. */
49
- data?: Record<string, unknown> | null;
50
- /** The field values as they were before the edit. For an update these form
51
- * the inverse patch; for a delete they hold the full row needed to recreate
52
- * it. */
53
- previousData?: Record<string, unknown> | null;
54
- }
55
- /**
56
- * The minimal store interface the SDK's hooks and mutators depend on. Provide a
57
- * concrete store that implements it — {@link BaseSyncedStore} is the built-in
58
- * implementation — and the hooks work against your store without knowing its
59
- * exact type. Optional members exist so lightweight test doubles can implement
60
- * only the parts they exercise.
61
- */
62
- export interface SyncStoreContract {
63
- /**
64
- * Subscribes to the stream of local mutations for undo recording, delivering
65
- * each optimistic write before it is acknowledged by the server. See
66
- * {@link LocalMutation}. Returns a function that removes the subscription.
67
- * This is optional: when a store does not implement it, undo scopes simply
68
- * record nothing.
69
- */
70
- subscribeLocalMutations?(handler: (mutation: LocalMutation) => void): () => void;
71
- retrieve(modelClass: abstract new (...args: never[]) => Model, id: string): Model | undefined;
72
- queryByClass(modelClass: abstract new (...args: never[]) => Model, options?: {
73
- predicate?: (model: Model) => boolean;
74
- scope?: ModelScope;
75
- orderBy?: keyof Model;
76
- order?: 'asc' | 'desc';
77
- limit?: number;
78
- offset?: number;
79
- }): {
80
- data: Model[];
81
- };
82
- /**
83
- * Saves one entity, creating it if new or updating it if it already exists.
84
- * Calling `save` repeatedly within the same tick is efficient: the writes are
85
- * coalesced and persisted, then sent to the server, as a single commit. There
86
- * is deliberately no bulk method — issue one `save` per row and let the tick
87
- * boundary batch them.
88
- *
89
- * Pass `skipValidation` on trusted, high-volume paths — bulk import or
90
- * hydration, where the data has already been validated — to skip the per-row
91
- * schema check, which is a measurable cost at that volume.
92
- */
93
- save(model: Model, options?: {
94
- skipValidation?: boolean;
95
- }): Promise<void>;
96
- delete(model: Model): Promise<void>;
97
- archive(model: Model): Promise<void>;
98
- unarchive(model: Model): Promise<void>;
99
- /** The in-memory object pool: look up individual entities or collections by
100
- * id or model name, create views, and resolve foreign-key relationships. */
101
- pool: {
102
- get(id: string): Model | undefined;
103
- getByTypeName(typename: string, scope?: ModelScope): Model[];
104
- getByForeignKey(modelName: string, fieldName: string, fieldValue: string): Model[];
105
- createFromData(data: Record<string, unknown>): Model | null;
106
- hasForeignKeyIndex(typename: string, fieldName: string): boolean;
107
- createView<T extends Record<string, unknown>>(typename: string, options?: QueryViewOptions<T>): QueryView<T>;
108
- viewRegistry: ViewRegistry;
109
- };
110
- /**
111
- * Reactive getters for the current sync state. In the built-in store these
112
- * are backed by observable computeds, so reading them inside a reactive
113
- * context — an observer component or a reaction — re-runs that context when
114
- * the state changes. Code that prefers not to work with the reactivity system
115
- * directly can read the same values through the `useSyncStatus()` hook.
116
- */
117
- readonly isReady: boolean;
118
- readonly isSyncing: boolean;
119
- readonly isOffline: boolean;
120
- readonly isReconnecting: boolean;
121
- readonly isError: boolean;
122
- readonly hasUnsyncedChanges: boolean;
123
- /**
124
- * Manages the connection's area of interest — the dynamic set of data it
125
- * subscribes to. Call `enterScope` and `leaveScope` to move that interest as
126
- * the user navigates between documents, and `pinScope` and `unpinScope` to
127
- * keep a scope subscribed while it stays important, such as while a claim is
128
- * held. Every scope resolves through the same resolver the claim path uses, so
129
- * read subscriptions and write claims always agree on which group they refer
130
- * to. These are optional and do nothing until the connection is open.
131
- */
132
- enterScope?(scope: ParticipantScope, opts?: {
133
- hydrate?: boolean;
134
- }): Promise<void>;
135
- leaveScope?(scope: ParticipantScope): Promise<void>;
136
- pinScope?(scope: ParticipantScope): Promise<void>;
137
- unpinScope?(scope: ParticipantScope): Promise<void>;
138
- /**
139
- * The full reactive {@link SyncStatus} record. The `useSyncStatus()` hook
140
- * reads its fields — `state`, `progress`, `pendingChanges`, `isSessionError`,
141
- * and `error` — to present the current sync state. It is part of the contract
142
- * so hooks and test doubles can read or set it directly.
143
- */
144
- readonly syncStatus: SyncStatus;
145
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * The framework-neutral store contract. {@link SyncStoreContract} is the minimal
3
- * store interface the SDK's hooks and mutators are written against, and
4
- * {@link BaseSyncedStore} is the concrete class that implements it. Framework
5
- * integrations, such as the React bindings, re-export these types, so a hook can
6
- * accept any store that satisfies the contract without depending on a particular
7
- * UI framework.
8
- *
9
- * This module is type-only: it has no runtime imports and contributes nothing to
10
- * the runtime bundle beyond the erased interface declarations.
11
- */
12
- export {};
@@ -1,72 +0,0 @@
1
- /**
2
- * The catalog of documentation this package ships.
3
- *
4
- * One definition of *which docs exist*, read from the files themselves. Every
5
- * reader — `ablo docs`, the public `/api/docs/*` routes, the MCP docs tools —
6
- * resolves through here rather than keeping its own list, because a
7
- * hand-maintained index of a directory is a copy that drifts the moment a page
8
- * is added and nothing fails when it does. Before this module the public web
9
- * allowlist had fallen 21 pages behind the corpus, including `coordination`.
10
- *
11
- * Title and description are DERIVED from each file's own convention: an H1,
12
- * then a one-paragraph blockquote stating what the page is for. That blockquote
13
- * is the description everywhere it is needed — the site frontmatter lifts the
14
- * same line — so a page states its own promise exactly once, in the source that
15
- * ships in the npm tarball and still reads correctly as plain markdown.
16
- *
17
- * The published set mirrors the tarball's `files` globs (`docs/*.md`,
18
- * `docs/examples/*.md`, plus the three root files). Anything else under `docs/`
19
- * — `docs/internal/**` above all — is neither shipped nor catalogued, and that
20
- * exclusion is the only thing keeping internal notes off the public routes now
21
- * that they read from here.
22
- */
23
- /** Where a page sits in the corpus, and how a reader should group it. */
24
- export type DocKind = 'guide' | 'example' | 'package';
25
- /** One documentation page, as shipped. */
26
- export interface DocEntry {
27
- /** Stable reference: `quickstart`, `examples/nextjs`, `agents`. */
28
- readonly slug: string;
29
- /** Human-readable title — the file's H1, or curated for the root files. */
30
- readonly title: string;
31
- /** One line stating what the page is for — the file's promise blockquote. */
32
- readonly description: string;
33
- readonly kind: DocKind;
34
- /** Absolute path on disk. */
35
- readonly path: string;
36
- readonly mime: string;
37
- }
38
- /**
39
- * Read the catalog from a package root — the directory holding `docs/` and the
40
- * three root files.
41
- *
42
- * The root is a parameter rather than resolved here because each reader knows
43
- * it differently and they are genuinely different facts: the CLI resolves it
44
- * against its own bundle inside `node_modules`, while the web app resolves it
45
- * against the monorepo checkout. Nothing is cached; callers that serve many
46
- * requests should memoize the returned array.
47
- */
48
- export declare function readDocsCatalog(packageRoot: string): Promise<DocEntry[]>;
49
- /**
50
- * Pull a page's title and promise line out of its markdown.
51
- *
52
- * The convention every page follows: an H1, then a blockquote paragraph saying
53
- * what the page is for. A page missing either simply reports what it has — the
54
- * catalog never invents prose.
55
- */
56
- export declare function parseDocHeader(body: string): {
57
- readonly title: string | null;
58
- readonly description: string;
59
- };
60
- /**
61
- * Resolve a reference to a page. Accepts the slug (`coordination`), a curated
62
- * alias (`storage`), or a repo-relative path (`docs/coordination.md`,
63
- * `AGENTS.md`) — the three forms readers actually arrive with. Returns null
64
- * rather than throwing so a caller can render its own not-found.
65
- */
66
- export declare function findDoc(catalog: readonly DocEntry[], reference: string): DocEntry | null;
67
- /**
68
- * Slugs closest to a miss, for a "did you mean" line. Ranks by shared prefix,
69
- * then substring containment — enough to catch a typo or a half-remembered
70
- * name without pulling in a distance library.
71
- */
72
- export declare function suggestSlugs(catalog: readonly DocEntry[], reference: string, limit?: number): string[];
@@ -1,227 +0,0 @@
1
- /**
2
- * The catalog of documentation this package ships.
3
- *
4
- * One definition of *which docs exist*, read from the files themselves. Every
5
- * reader — `ablo docs`, the public `/api/docs/*` routes, the MCP docs tools —
6
- * resolves through here rather than keeping its own list, because a
7
- * hand-maintained index of a directory is a copy that drifts the moment a page
8
- * is added and nothing fails when it does. Before this module the public web
9
- * allowlist had fallen 21 pages behind the corpus, including `coordination`.
10
- *
11
- * Title and description are DERIVED from each file's own convention: an H1,
12
- * then a one-paragraph blockquote stating what the page is for. That blockquote
13
- * is the description everywhere it is needed — the site frontmatter lifts the
14
- * same line — so a page states its own promise exactly once, in the source that
15
- * ships in the npm tarball and still reads correctly as plain markdown.
16
- *
17
- * The published set mirrors the tarball's `files` globs (`docs/*.md`,
18
- * `docs/examples/*.md`, plus the three root files). Anything else under `docs/`
19
- * — `docs/internal/**` above all — is neither shipped nor catalogued, and that
20
- * exclusion is the only thing keeping internal notes off the public routes now
21
- * that they read from here.
22
- */
23
- import { readdir, readFile } from 'node:fs/promises';
24
- import { basename, join } from 'node:path';
25
- const MARKDOWN_MIME = 'text/markdown; charset=utf-8';
26
- const TEXT_MIME = 'text/plain; charset=utf-8';
27
- /**
28
- * The three files that document the package itself rather than a topic. They
29
- * live at the package root, not under `docs/`, and none follows the H1 +
30
- * blockquote convention — `llms.txt` opens with a prose paragraph and
31
- * `README.md` with a banner — so their titles and descriptions are curated
32
- * here, the one place that knows they are a different kind of artifact.
33
- *
34
- * Their slug is their filename, because the filename IS how these are referred
35
- * to everywhere (`AGENTS.md` is an ecosystem convention, not a topic name) and
36
- * because a bare word would collide: `docs/agents.md` is a published guide that
37
- * the docs index cross-links as `agents`, and whichever of the two won that
38
- * name would silently shadow the other. Friendlier spellings are aliases below.
39
- */
40
- const PACKAGE_FILES = [
41
- {
42
- filename: 'AGENTS.md',
43
- title: 'AGENTS.md',
44
- description: 'The playbook a coding agent follows to install and drive Ablo without hanging on a prompt.',
45
- mime: MARKDOWN_MIME,
46
- },
47
- {
48
- filename: 'README.md',
49
- title: 'README',
50
- description: 'Package overview — what Ablo is and the shape of the API.',
51
- mime: MARKDOWN_MIME,
52
- },
53
- {
54
- filename: 'llms.txt',
55
- title: 'llms.txt',
56
- description: 'The curated single-file index of the whole API, for machine readers.',
57
- mime: TEXT_MIME,
58
- },
59
- ];
60
- /**
61
- * Curated redirects for references that are not a slug: the friendly spellings
62
- * of the root files, plus the renames the public URLs carried before this
63
- * module existed, kept so old links and any agent working from a cached page
64
- * still resolve. Identity mappings are NOT listed — a slug resolves to itself
65
- * by derivation, and restating the other 30 here would rebuild the
66
- * hand-maintained list this module exists to delete.
67
- */
68
- const SLUG_ALIASES = {
69
- readme: 'README.md',
70
- overview: 'README.md',
71
- llms: 'llms.txt',
72
- storage: 'data-sources',
73
- 'docs/storage.md': 'data-sources',
74
- };
75
- /**
76
- * Read the catalog from a package root — the directory holding `docs/` and the
77
- * three root files.
78
- *
79
- * The root is a parameter rather than resolved here because each reader knows
80
- * it differently and they are genuinely different facts: the CLI resolves it
81
- * against its own bundle inside `node_modules`, while the web app resolves it
82
- * against the monorepo checkout. Nothing is cached; callers that serve many
83
- * requests should memoize the returned array.
84
- */
85
- export async function readDocsCatalog(packageRoot) {
86
- const docsDir = join(packageRoot, 'docs');
87
- const entries = [];
88
- entries.push(...(await readDocsDirectory(docsDir, 'guide')));
89
- entries.push(...(await readDocsDirectory(join(docsDir, 'examples'), 'example')));
90
- for (const file of PACKAGE_FILES) {
91
- const path = join(packageRoot, file.filename);
92
- const body = await readFileOrNull(path);
93
- if (body === null)
94
- continue;
95
- entries.push({
96
- slug: file.filename,
97
- title: file.title,
98
- description: file.description,
99
- kind: 'package',
100
- path,
101
- mime: file.mime,
102
- });
103
- }
104
- return entries.sort((a, b) => a.slug.localeCompare(b.slug));
105
- }
106
- /**
107
- * Read one flat directory of markdown. Deliberately non-recursive: the shipped
108
- * set is `docs/*.md` plus `docs/examples/*.md`, so descending would catalogue
109
- * `docs/internal/**` — notes that are not in the tarball and must not reach a
110
- * public route.
111
- */
112
- async function readDocsDirectory(dir, kind) {
113
- let names;
114
- try {
115
- const found = await readdir(dir, { withFileTypes: true });
116
- names = found.filter((e) => e.isFile() && e.name.endsWith('.md')).map((e) => e.name);
117
- }
118
- catch {
119
- return [];
120
- }
121
- const entries = [];
122
- for (const name of names) {
123
- const path = join(dir, name);
124
- const body = await readFileOrNull(path);
125
- if (body === null)
126
- continue;
127
- const stem = basename(name, '.md');
128
- const { title, description } = parseDocHeader(body);
129
- entries.push({
130
- slug: kind === 'example' ? `examples/${stem}` : stem,
131
- title: title ?? stem,
132
- description,
133
- kind,
134
- path,
135
- mime: MARKDOWN_MIME,
136
- });
137
- }
138
- return entries;
139
- }
140
- /**
141
- * Pull a page's title and promise line out of its markdown.
142
- *
143
- * The convention every page follows: an H1, then a blockquote paragraph saying
144
- * what the page is for. A page missing either simply reports what it has — the
145
- * catalog never invents prose.
146
- */
147
- export function parseDocHeader(body) {
148
- const heading = body.match(/^#[ \t]+(.+?)[ \t]*$/m);
149
- const title = heading?.[1] ?? null;
150
- const afterHeading = heading?.index === undefined ? body : body.slice(heading.index + heading[0].length);
151
- const promise = afterHeading.match(/^\s*\n((?:>.*\n)+)/);
152
- const description = promise?.[1]
153
- ?.split('\n')
154
- .filter(Boolean)
155
- .map((line) => line.replace(/^>\s?/, ''))
156
- .join(' ')
157
- .trim() ?? '';
158
- return { title, description };
159
- }
160
- /**
161
- * Resolve a reference to a page. Accepts the slug (`coordination`), a curated
162
- * alias (`storage`), or a repo-relative path (`docs/coordination.md`,
163
- * `AGENTS.md`) — the three forms readers actually arrive with. Returns null
164
- * rather than throwing so a caller can render its own not-found.
165
- */
166
- export function findDoc(catalog, reference) {
167
- const trimmed = reference.trim();
168
- if (trimmed === '')
169
- return null;
170
- const direct = matchSlug(catalog, trimmed);
171
- if (direct)
172
- return direct;
173
- const aliased = SLUG_ALIASES[trimmed.toLowerCase()];
174
- if (aliased) {
175
- const target = matchSlug(catalog, aliased);
176
- if (target)
177
- return target;
178
- }
179
- // Path form: `docs/coordination.md`, `docs/examples/nextjs.md`, `llms.txt`.
180
- const asSlug = trimmed
181
- .replace(/^\.?\//, '')
182
- .replace(/^docs\//, '')
183
- .replace(/\.(md|txt)$/i, '');
184
- return matchSlug(catalog, asSlug);
185
- }
186
- function matchSlug(catalog, slug) {
187
- const needle = slug.toLowerCase();
188
- return catalog.find((entry) => entry.slug.toLowerCase() === needle) ?? null;
189
- }
190
- /**
191
- * Slugs closest to a miss, for a "did you mean" line. Ranks by shared prefix,
192
- * then substring containment — enough to catch a typo or a half-remembered
193
- * name without pulling in a distance library.
194
- */
195
- export function suggestSlugs(catalog, reference, limit = 3) {
196
- const needle = reference.trim().toLowerCase();
197
- if (needle === '')
198
- return [];
199
- return catalog
200
- .map((entry) => {
201
- const slug = entry.slug.toLowerCase();
202
- let score = 0;
203
- if (slug.includes(needle) || needle.includes(slug))
204
- score += 10;
205
- score += sharedPrefixLength(slug, needle);
206
- return { slug: entry.slug, score };
207
- })
208
- .filter(({ score }) => score > 2)
209
- .sort((a, b) => b.score - a.score)
210
- .slice(0, limit)
211
- .map(({ slug }) => slug);
212
- }
213
- function sharedPrefixLength(a, b) {
214
- const max = Math.min(a.length, b.length);
215
- let i = 0;
216
- while (i < max && a[i] === b[i])
217
- i += 1;
218
- return i;
219
- }
220
- async function readFileOrNull(path) {
221
- try {
222
- return await readFile(path, 'utf8');
223
- }
224
- catch {
225
- return null;
226
- }
227
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * Programmatic access to the documentation this package ships.
3
- *
4
- * The docs travel in the npm tarball beside the code they describe, so a reader
5
- * that resolves them through here is reading the pages for the version actually
6
- * installed — not whatever the website is serving today. That is the whole
7
- * point of the subpath: a published version is frozen, its docs are frozen with
8
- * it, and `retrieve` never turns back into `get` behind a pinned dependency.
9
- */
10
- export { readDocsCatalog, findDoc, parseDocHeader, suggestSlugs, type DocEntry, type DocKind, } from './catalog.js';
@@ -1,10 +0,0 @@
1
- /**
2
- * Programmatic access to the documentation this package ships.
3
- *
4
- * The docs travel in the npm tarball beside the code they describe, so a reader
5
- * that resolves them through here is reading the pages for the version actually
6
- * installed — not whatever the website is serving today. That is the whole
7
- * point of the subpath: a published version is frozen, its docs are frozen with
8
- * it, and `retrieve` never turns back into `get` behind a pinned dependency.
9
- */
10
- export { readDocsCatalog, findDoc, parseDocHeader, suggestSlugs, } from './catalog.js';
@@ -1 +0,0 @@
1
- export * from './transaction/environment.js';
@@ -1,8 +0,0 @@
1
- // Moved to @ablo/transaction (ADR 0013 — the settlement core extraction).
2
- // This shim re-exports it at the original path so in-package importers of
3
- // `../environment.js` keep working; rewire to `@ablo/transaction/environment`
4
- // and delete this shim once the core package is fully wired.
5
- //
6
- // Line comments on purpose: tsc copies a leading JSDoc block into the
7
- // published `.d.ts`, and this note names a package npm has never heard of.
8
- export * from './transaction/environment.js';