@earendil-works/chord 1.4.0 → 1.5.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 (820) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/README.md +79 -14
  3. package/dist/cell.d.ts +7 -7
  4. package/dist/cell.d.ts.map +1 -1
  5. package/dist/cell.js.map +1 -1
  6. package/dist/context/index.d.ts +1 -1
  7. package/dist/context/index.d.ts.map +1 -1
  8. package/dist/context/index.js +1 -1
  9. package/dist/context/index.js.map +1 -1
  10. package/dist/contract.d.ts +51 -52
  11. package/dist/contract.d.ts.map +1 -1
  12. package/dist/contract.js +19 -24
  13. package/dist/contract.js.map +1 -1
  14. package/dist/delta/apply-immutable-trusted.js +3 -4
  15. package/dist/delta/apply-immutable-trusted.js.map +1 -1
  16. package/dist/delta/diff.d.ts.map +1 -1
  17. package/dist/delta/diff.js +5 -3
  18. package/dist/delta/diff.js.map +1 -1
  19. package/dist/delta/index.d.ts +9 -1
  20. package/dist/delta/index.d.ts.map +1 -1
  21. package/dist/delta/index.js +15 -11
  22. package/dist/delta/index.js.map +1 -1
  23. package/dist/delta/pending.d.ts +36 -0
  24. package/dist/delta/pending.d.ts.map +1 -0
  25. package/dist/delta/pending.js +143 -0
  26. package/dist/delta/pending.js.map +1 -0
  27. package/dist/delta/tracker.d.ts +12 -0
  28. package/dist/delta/tracker.d.ts.map +1 -1
  29. package/dist/delta/tracker.js +109 -39
  30. package/dist/delta/tracker.js.map +1 -1
  31. package/dist/host.d.ts.map +1 -1
  32. package/dist/host.js +9 -7
  33. package/dist/host.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/next/contracts/accepts.d.ts +81 -0
  39. package/dist/next/contracts/accepts.d.ts.map +1 -0
  40. package/dist/next/contracts/accepts.js +123 -0
  41. package/dist/next/contracts/accepts.js.map +1 -0
  42. package/dist/next/contracts/contract.d.ts +121 -0
  43. package/dist/next/contracts/contract.d.ts.map +1 -0
  44. package/dist/next/contracts/contract.js +50 -0
  45. package/dist/next/contracts/contract.js.map +1 -0
  46. package/dist/next/contracts/declare.d.ts +107 -0
  47. package/dist/next/contracts/declare.d.ts.map +1 -0
  48. package/dist/next/contracts/declare.js +136 -0
  49. package/dist/next/contracts/declare.js.map +1 -0
  50. package/dist/next/contracts/evolve.d.ts +92 -0
  51. package/dist/next/contracts/evolve.d.ts.map +1 -0
  52. package/dist/next/contracts/evolve.js +179 -0
  53. package/dist/next/contracts/evolve.js.map +1 -0
  54. package/dist/next/contracts/fingerprint.d.ts +16 -0
  55. package/dist/next/contracts/fingerprint.d.ts.map +1 -0
  56. package/dist/next/contracts/fingerprint.js +50 -0
  57. package/dist/next/contracts/fingerprint.js.map +1 -0
  58. package/dist/next/contracts/history.d.ts +71 -0
  59. package/dist/next/contracts/history.d.ts.map +1 -0
  60. package/dist/next/contracts/history.js +3 -0
  61. package/dist/next/contracts/history.js.map +1 -0
  62. package/dist/next/contracts/host-kind.d.ts +40 -0
  63. package/dist/next/contracts/host-kind.d.ts.map +1 -0
  64. package/dist/next/contracts/host-kind.js +37 -0
  65. package/dist/next/contracts/host-kind.js.map +1 -0
  66. package/dist/next/contracts/index.d.ts +7 -0
  67. package/dist/next/contracts/index.d.ts.map +1 -0
  68. package/dist/next/contracts/index.js +6 -0
  69. package/dist/next/contracts/index.js.map +1 -0
  70. package/dist/next/contracts/internal.d.ts +10 -0
  71. package/dist/next/contracts/internal.d.ts.map +1 -0
  72. package/dist/next/contracts/internal.js +9 -0
  73. package/dist/next/contracts/internal.js.map +1 -0
  74. package/dist/next/contracts/names.d.ts +3 -0
  75. package/dist/next/contracts/names.d.ts.map +1 -0
  76. package/dist/next/contracts/names.js +13 -0
  77. package/dist/next/contracts/names.js.map +1 -0
  78. package/dist/next/contracts/params.d.ts +28 -0
  79. package/dist/next/contracts/params.d.ts.map +1 -0
  80. package/dist/next/contracts/params.js +50 -0
  81. package/dist/next/contracts/params.js.map +1 -0
  82. package/dist/next/contracts/schema.d.ts +102 -0
  83. package/dist/next/contracts/schema.d.ts.map +1 -0
  84. package/dist/next/contracts/schema.js +103 -0
  85. package/dist/next/contracts/schema.js.map +1 -0
  86. package/dist/next/contracts/snapshot.d.ts +16 -0
  87. package/dist/next/contracts/snapshot.d.ts.map +1 -0
  88. package/dist/next/contracts/snapshot.js +167 -0
  89. package/dist/next/contracts/snapshot.js.map +1 -0
  90. package/dist/next/data/args.d.ts +50 -0
  91. package/dist/next/data/args.d.ts.map +1 -0
  92. package/dist/next/data/args.js +83 -0
  93. package/dist/next/data/args.js.map +1 -0
  94. package/dist/next/data/errors.d.ts +73 -0
  95. package/dist/next/data/errors.d.ts.map +1 -0
  96. package/dist/next/data/errors.js +107 -0
  97. package/dist/next/data/errors.js.map +1 -0
  98. package/dist/next/data/failure.d.ts +26 -0
  99. package/dist/next/data/failure.d.ts.map +1 -0
  100. package/dist/next/data/failure.js +72 -0
  101. package/dist/next/data/failure.js.map +1 -0
  102. package/dist/next/data/index.d.ts +4 -0
  103. package/dist/next/data/index.d.ts.map +1 -0
  104. package/dist/next/data/index.js +4 -0
  105. package/dist/next/data/index.js.map +1 -0
  106. package/dist/next/data/internal.d.ts +7 -0
  107. package/dist/next/data/internal.d.ts.map +1 -0
  108. package/dist/next/data/internal.js +8 -0
  109. package/dist/next/data/internal.js.map +1 -0
  110. package/dist/next/data/params.d.ts +20 -0
  111. package/dist/next/data/params.d.ts.map +1 -0
  112. package/dist/next/data/params.js +31 -0
  113. package/dist/next/data/params.js.map +1 -0
  114. package/dist/next/data/principal.d.ts +17 -0
  115. package/dist/next/data/principal.d.ts.map +1 -0
  116. package/dist/next/data/principal.js +41 -0
  117. package/dist/next/data/principal.js.map +1 -0
  118. package/dist/next/data/validator.d.ts +12 -0
  119. package/dist/next/data/validator.d.ts.map +1 -0
  120. package/dist/next/data/validator.js +34 -0
  121. package/dist/next/data/validator.js.map +1 -0
  122. package/dist/next/documents/address-source.d.ts +20 -0
  123. package/dist/next/documents/address-source.d.ts.map +1 -0
  124. package/dist/next/documents/address-source.js +44 -0
  125. package/dist/next/documents/address-source.js.map +1 -0
  126. package/dist/next/documents/definition.d.ts +84 -0
  127. package/dist/next/documents/definition.d.ts.map +1 -0
  128. package/dist/next/documents/definition.js +73 -0
  129. package/dist/next/documents/definition.js.map +1 -0
  130. package/dist/next/documents/documents.d.ts +106 -0
  131. package/dist/next/documents/documents.d.ts.map +1 -0
  132. package/dist/next/documents/documents.js +224 -0
  133. package/dist/next/documents/documents.js.map +1 -0
  134. package/dist/next/documents/fence.d.ts +9 -0
  135. package/dist/next/documents/fence.d.ts.map +1 -0
  136. package/dist/next/documents/fence.js +15 -0
  137. package/dist/next/documents/fence.js.map +1 -0
  138. package/dist/next/documents/handles.d.ts +76 -0
  139. package/dist/next/documents/handles.d.ts.map +1 -0
  140. package/dist/next/documents/handles.js +66 -0
  141. package/dist/next/documents/handles.js.map +1 -0
  142. package/dist/next/documents/index.d.ts +4 -0
  143. package/dist/next/documents/index.d.ts.map +1 -0
  144. package/dist/next/documents/index.js +3 -0
  145. package/dist/next/documents/index.js.map +1 -0
  146. package/dist/next/documents/internal.d.ts +9 -0
  147. package/dist/next/documents/internal.d.ts.map +1 -0
  148. package/dist/next/documents/internal.js +9 -0
  149. package/dist/next/documents/internal.js.map +1 -0
  150. package/dist/next/documents/keyed-slot.d.ts +103 -0
  151. package/dist/next/documents/keyed-slot.d.ts.map +1 -0
  152. package/dist/next/documents/keyed-slot.js +395 -0
  153. package/dist/next/documents/keyed-slot.js.map +1 -0
  154. package/dist/next/documents/line.d.ts +7 -0
  155. package/dist/next/documents/line.d.ts.map +1 -0
  156. package/dist/next/documents/line.js +14 -0
  157. package/dist/next/documents/line.js.map +1 -0
  158. package/dist/next/documents/persistence.d.ts +104 -0
  159. package/dist/next/documents/persistence.d.ts.map +1 -0
  160. package/dist/next/documents/persistence.js +128 -0
  161. package/dist/next/documents/persistence.js.map +1 -0
  162. package/dist/next/documents/residency.d.ts +31 -0
  163. package/dist/next/documents/residency.d.ts.map +1 -0
  164. package/dist/next/documents/residency.js +93 -0
  165. package/dist/next/documents/residency.js.map +1 -0
  166. package/dist/next/documents/slot.d.ts +109 -0
  167. package/dist/next/documents/slot.d.ts.map +1 -0
  168. package/dist/next/documents/slot.js +181 -0
  169. package/dist/next/documents/slot.js.map +1 -0
  170. package/dist/next/documents/transaction.d.ts +133 -0
  171. package/dist/next/documents/transaction.d.ts.map +1 -0
  172. package/dist/next/documents/transaction.js +409 -0
  173. package/dist/next/documents/transaction.js.map +1 -0
  174. package/dist/next/host/activity.d.ts +31 -0
  175. package/dist/next/host/activity.d.ts.map +1 -0
  176. package/dist/next/host/activity.js +40 -0
  177. package/dist/next/host/activity.js.map +1 -0
  178. package/dist/next/host/adapted.d.ts +49 -0
  179. package/dist/next/host/adapted.d.ts.map +1 -0
  180. package/dist/next/host/adapted.js +214 -0
  181. package/dist/next/host/adapted.js.map +1 -0
  182. package/dist/next/host/attempt.d.ts +278 -0
  183. package/dist/next/host/attempt.d.ts.map +1 -0
  184. package/dist/next/host/attempt.js +1072 -0
  185. package/dist/next/host/attempt.js.map +1 -0
  186. package/dist/next/host/backoff.d.ts +29 -0
  187. package/dist/next/host/backoff.d.ts.map +1 -0
  188. package/dist/next/host/backoff.js +69 -0
  189. package/dist/next/host/backoff.js.map +1 -0
  190. package/dist/next/host/ctx.d.ts +47 -0
  191. package/dist/next/host/ctx.d.ts.map +1 -0
  192. package/dist/next/host/ctx.js +108 -0
  193. package/dist/next/host/ctx.js.map +1 -0
  194. package/dist/next/host/deadline.d.ts +12 -0
  195. package/dist/next/host/deadline.d.ts.map +1 -0
  196. package/dist/next/host/deadline.js +40 -0
  197. package/dist/next/host/deadline.js.map +1 -0
  198. package/dist/next/host/dependencies.d.ts +65 -0
  199. package/dist/next/host/dependencies.d.ts.map +1 -0
  200. package/dist/next/host/dependencies.js +115 -0
  201. package/dist/next/host/dependencies.js.map +1 -0
  202. package/dist/next/host/destination.d.ts +48 -0
  203. package/dist/next/host/destination.d.ts.map +1 -0
  204. package/dist/next/host/destination.js +101 -0
  205. package/dist/next/host/destination.js.map +1 -0
  206. package/dist/next/host/facet.d.ts +79 -0
  207. package/dist/next/host/facet.d.ts.map +1 -0
  208. package/dist/next/host/facet.js +55 -0
  209. package/dist/next/host/facet.js.map +1 -0
  210. package/dist/next/host/follow.d.ts +52 -0
  211. package/dist/next/host/follow.d.ts.map +1 -0
  212. package/dist/next/host/follow.js +207 -0
  213. package/dist/next/host/follow.js.map +1 -0
  214. package/dist/next/host/host.d.ts +495 -0
  215. package/dist/next/host/host.d.ts.map +1 -0
  216. package/dist/next/host/host.js +1075 -0
  217. package/dist/next/host/host.js.map +1 -0
  218. package/dist/next/host/index.d.ts +17 -0
  219. package/dist/next/host/index.d.ts.map +1 -0
  220. package/dist/next/host/index.js +6 -0
  221. package/dist/next/host/index.js.map +1 -0
  222. package/dist/next/host/internal.d.ts +10 -0
  223. package/dist/next/host/internal.d.ts.map +1 -0
  224. package/dist/next/host/internal.js +8 -0
  225. package/dist/next/host/internal.js.map +1 -0
  226. package/dist/next/host/members.d.ts +50 -0
  227. package/dist/next/host/members.d.ts.map +1 -0
  228. package/dist/next/host/members.js +107 -0
  229. package/dist/next/host/members.js.map +1 -0
  230. package/dist/next/host/native.d.ts +55 -0
  231. package/dist/next/host/native.d.ts.map +1 -0
  232. package/dist/next/host/native.js +92 -0
  233. package/dist/next/host/native.js.map +1 -0
  234. package/dist/next/host/object.d.ts +290 -0
  235. package/dist/next/host/object.d.ts.map +1 -0
  236. package/dist/next/host/object.js +1127 -0
  237. package/dist/next/host/object.js.map +1 -0
  238. package/dist/next/host/parked.d.ts +23 -0
  239. package/dist/next/host/parked.d.ts.map +1 -0
  240. package/dist/next/host/parked.js +79 -0
  241. package/dist/next/host/parked.js.map +1 -0
  242. package/dist/next/host/presence.d.ts +34 -0
  243. package/dist/next/host/presence.d.ts.map +1 -0
  244. package/dist/next/host/presence.js +117 -0
  245. package/dist/next/host/presence.js.map +1 -0
  246. package/dist/next/host/ref-state.d.ts +53 -0
  247. package/dist/next/host/ref-state.d.ts.map +1 -0
  248. package/dist/next/host/ref-state.js +83 -0
  249. package/dist/next/host/ref-state.js.map +1 -0
  250. package/dist/next/host/reference-keys.d.ts +36 -0
  251. package/dist/next/host/reference-keys.d.ts.map +1 -0
  252. package/dist/next/host/reference-keys.js +168 -0
  253. package/dist/next/host/reference-keys.js.map +1 -0
  254. package/dist/next/host/reference-source.d.ts +65 -0
  255. package/dist/next/host/reference-source.d.ts.map +1 -0
  256. package/dist/next/host/reference-source.js +285 -0
  257. package/dist/next/host/reference-source.js.map +1 -0
  258. package/dist/next/host/reference.d.ts +308 -0
  259. package/dist/next/host/reference.d.ts.map +1 -0
  260. package/dist/next/host/reference.js +775 -0
  261. package/dist/next/host/reference.js.map +1 -0
  262. package/dist/next/host/retry-on.d.ts +28 -0
  263. package/dist/next/host/retry-on.d.ts.map +1 -0
  264. package/dist/next/host/retry-on.js +52 -0
  265. package/dist/next/host/retry-on.js.map +1 -0
  266. package/dist/next/host/revocation.d.ts +16 -0
  267. package/dist/next/host/revocation.d.ts.map +1 -0
  268. package/dist/next/host/revocation.js +27 -0
  269. package/dist/next/host/revocation.js.map +1 -0
  270. package/dist/next/host/root.d.ts +27 -0
  271. package/dist/next/host/root.d.ts.map +1 -0
  272. package/dist/next/host/root.js +68 -0
  273. package/dist/next/host/root.js.map +1 -0
  274. package/dist/next/host/route.d.ts +64 -0
  275. package/dist/next/host/route.d.ts.map +1 -0
  276. package/dist/next/host/route.js +190 -0
  277. package/dist/next/host/route.js.map +1 -0
  278. package/dist/next/host/routines.d.ts +76 -0
  279. package/dist/next/host/routines.d.ts.map +1 -0
  280. package/dist/next/host/routines.js +350 -0
  281. package/dist/next/host/routines.js.map +1 -0
  282. package/dist/next/host/sleep.d.ts +9 -0
  283. package/dist/next/host/sleep.d.ts.map +1 -0
  284. package/dist/next/host/sleep.js +40 -0
  285. package/dist/next/host/sleep.js.map +1 -0
  286. package/dist/next/host/staging.d.ts +94 -0
  287. package/dist/next/host/staging.d.ts.map +1 -0
  288. package/dist/next/host/staging.js +302 -0
  289. package/dist/next/host/staging.js.map +1 -0
  290. package/dist/next/host/unbound.d.ts +30 -0
  291. package/dist/next/host/unbound.d.ts.map +1 -0
  292. package/dist/next/host/unbound.js +67 -0
  293. package/dist/next/host/unbound.js.map +1 -0
  294. package/dist/next/host/uuid.d.ts +3 -0
  295. package/dist/next/host/uuid.d.ts.map +1 -0
  296. package/dist/next/host/uuid.js +38 -0
  297. package/dist/next/host/uuid.js.map +1 -0
  298. package/dist/next/index.d.ts +28 -0
  299. package/dist/next/index.d.ts.map +1 -0
  300. package/dist/next/index.js +18 -0
  301. package/dist/next/index.js.map +1 -0
  302. package/dist/next/jobs/definition.d.ts +96 -0
  303. package/dist/next/jobs/definition.d.ts.map +1 -0
  304. package/dist/next/jobs/definition.js +83 -0
  305. package/dist/next/jobs/definition.js.map +1 -0
  306. package/dist/next/jobs/index.d.ts +5 -0
  307. package/dist/next/jobs/index.d.ts.map +1 -0
  308. package/dist/next/jobs/index.js +3 -0
  309. package/dist/next/jobs/index.js.map +1 -0
  310. package/dist/next/jobs/internal.d.ts +3 -0
  311. package/dist/next/jobs/internal.d.ts.map +1 -0
  312. package/dist/next/jobs/internal.js +4 -0
  313. package/dist/next/jobs/internal.js.map +1 -0
  314. package/dist/next/jobs/job.d.ts +152 -0
  315. package/dist/next/jobs/job.d.ts.map +1 -0
  316. package/dist/next/jobs/job.js +320 -0
  317. package/dist/next/jobs/job.js.map +1 -0
  318. package/dist/next/jobs/persisted.d.ts +38 -0
  319. package/dist/next/jobs/persisted.d.ts.map +1 -0
  320. package/dist/next/jobs/persisted.js +95 -0
  321. package/dist/next/jobs/persisted.js.map +1 -0
  322. package/dist/next/jobs/records.d.ts +231 -0
  323. package/dist/next/jobs/records.d.ts.map +1 -0
  324. package/dist/next/jobs/records.js +869 -0
  325. package/dist/next/jobs/records.js.map +1 -0
  326. package/dist/next/jobs/run-states.d.ts +69 -0
  327. package/dist/next/jobs/run-states.d.ts.map +1 -0
  328. package/dist/next/jobs/run-states.js +228 -0
  329. package/dist/next/jobs/run-states.js.map +1 -0
  330. package/dist/next/jobs/run.d.ts +113 -0
  331. package/dist/next/jobs/run.d.ts.map +1 -0
  332. package/dist/next/jobs/run.js +200 -0
  333. package/dist/next/jobs/run.js.map +1 -0
  334. package/dist/next/jobs/running.d.ts +44 -0
  335. package/dist/next/jobs/running.d.ts.map +1 -0
  336. package/dist/next/jobs/running.js +117 -0
  337. package/dist/next/jobs/running.js.map +1 -0
  338. package/dist/next/jobs/stored.d.ts +63 -0
  339. package/dist/next/jobs/stored.d.ts.map +1 -0
  340. package/dist/next/jobs/stored.js +55 -0
  341. package/dist/next/jobs/stored.js.map +1 -0
  342. package/dist/next/link/binary.d.ts +4 -0
  343. package/dist/next/link/binary.d.ts.map +1 -0
  344. package/dist/next/link/binary.js +534 -0
  345. package/dist/next/link/binary.js.map +1 -0
  346. package/dist/next/link/channel.d.ts +63 -0
  347. package/dist/next/link/channel.d.ts.map +1 -0
  348. package/dist/next/link/channel.js +202 -0
  349. package/dist/next/link/channel.js.map +1 -0
  350. package/dist/next/link/errors.d.ts +7 -0
  351. package/dist/next/link/errors.d.ts.map +1 -0
  352. package/dist/next/link/errors.js +21 -0
  353. package/dist/next/link/errors.js.map +1 -0
  354. package/dist/next/link/index.d.ts +8 -0
  355. package/dist/next/link/index.d.ts.map +1 -0
  356. package/dist/next/link/index.js +8 -0
  357. package/dist/next/link/index.js.map +1 -0
  358. package/dist/next/link/internal.d.ts +9 -0
  359. package/dist/next/link/internal.d.ts.map +1 -0
  360. package/dist/next/link/internal.js +10 -0
  361. package/dist/next/link/internal.js.map +1 -0
  362. package/dist/next/link/ipc.d.ts +22 -0
  363. package/dist/next/link/ipc.d.ts.map +1 -0
  364. package/dist/next/link/ipc.js +64 -0
  365. package/dist/next/link/ipc.js.map +1 -0
  366. package/dist/next/link/link.d.ts +34 -0
  367. package/dist/next/link/link.d.ts.map +1 -0
  368. package/dist/next/link/link.js +87 -0
  369. package/dist/next/link/link.js.map +1 -0
  370. package/dist/next/link/message.d.ts +249 -0
  371. package/dist/next/link/message.d.ts.map +1 -0
  372. package/dist/next/link/message.js +123 -0
  373. package/dist/next/link/message.js.map +1 -0
  374. package/dist/next/link/part.d.ts +80 -0
  375. package/dist/next/link/part.d.ts.map +1 -0
  376. package/dist/next/link/part.js +164 -0
  377. package/dist/next/link/part.js.map +1 -0
  378. package/dist/next/link/text.d.ts +6 -0
  379. package/dist/next/link/text.d.ts.map +1 -0
  380. package/dist/next/link/text.js +335 -0
  381. package/dist/next/link/text.js.map +1 -0
  382. package/dist/next/link/values.d.ts +40 -0
  383. package/dist/next/link/values.d.ts.map +1 -0
  384. package/dist/next/link/values.js +117 -0
  385. package/dist/next/link/values.js.map +1 -0
  386. package/dist/next/link/websocket.d.ts +26 -0
  387. package/dist/next/link/websocket.d.ts.map +1 -0
  388. package/dist/next/link/websocket.js +91 -0
  389. package/dist/next/link/websocket.js.map +1 -0
  390. package/dist/next/registries/contribution.d.ts +50 -0
  391. package/dist/next/registries/contribution.d.ts.map +1 -0
  392. package/dist/next/registries/contribution.js +129 -0
  393. package/dist/next/registries/contribution.js.map +1 -0
  394. package/dist/next/registries/entries.d.ts +18 -0
  395. package/dist/next/registries/entries.d.ts.map +1 -0
  396. package/dist/next/registries/entries.js +42 -0
  397. package/dist/next/registries/entries.js.map +1 -0
  398. package/dist/next/registries/index.d.ts +3 -0
  399. package/dist/next/registries/index.d.ts.map +1 -0
  400. package/dist/next/registries/index.js +5 -0
  401. package/dist/next/registries/index.js.map +1 -0
  402. package/dist/next/registries/internal.d.ts +4 -0
  403. package/dist/next/registries/internal.d.ts.map +1 -0
  404. package/dist/next/registries/internal.js +5 -0
  405. package/dist/next/registries/internal.js.map +1 -0
  406. package/dist/next/registries/record.d.ts +94 -0
  407. package/dist/next/registries/record.d.ts.map +1 -0
  408. package/dist/next/registries/record.js +253 -0
  409. package/dist/next/registries/record.js.map +1 -0
  410. package/dist/next/registries/registry.d.ts +74 -0
  411. package/dist/next/registries/registry.d.ts.map +1 -0
  412. package/dist/next/registries/registry.js +14 -0
  413. package/dist/next/registries/registry.js.map +1 -0
  414. package/dist/next/registries/value.d.ts +48 -0
  415. package/dist/next/registries/value.d.ts.map +1 -0
  416. package/dist/next/registries/value.js +199 -0
  417. package/dist/next/registries/value.js.map +1 -0
  418. package/dist/next/remote/calls.d.ts +25 -0
  419. package/dist/next/remote/calls.d.ts.map +1 -0
  420. package/dist/next/remote/calls.js +62 -0
  421. package/dist/next/remote/calls.js.map +1 -0
  422. package/dist/next/remote/consumer.d.ts +42 -0
  423. package/dist/next/remote/consumer.d.ts.map +1 -0
  424. package/dist/next/remote/consumer.js +343 -0
  425. package/dist/next/remote/consumer.js.map +1 -0
  426. package/dist/next/remote/hold.d.ts +130 -0
  427. package/dist/next/remote/hold.d.ts.map +1 -0
  428. package/dist/next/remote/hold.js +537 -0
  429. package/dist/next/remote/hold.js.map +1 -0
  430. package/dist/next/remote/host-link.d.ts +77 -0
  431. package/dist/next/remote/host-link.d.ts.map +1 -0
  432. package/dist/next/remote/host-link.js +182 -0
  433. package/dist/next/remote/host-link.js.map +1 -0
  434. package/dist/next/remote/internal.d.ts +6 -0
  435. package/dist/next/remote/internal.d.ts.map +1 -0
  436. package/dist/next/remote/internal.js +6 -0
  437. package/dist/next/remote/internal.js.map +1 -0
  438. package/dist/next/remote/path.d.ts +46 -0
  439. package/dist/next/remote/path.d.ts.map +1 -0
  440. package/dist/next/remote/path.js +73 -0
  441. package/dist/next/remote/path.js.map +1 -0
  442. package/dist/next/remote/provider.d.ts +76 -0
  443. package/dist/next/remote/provider.d.ts.map +1 -0
  444. package/dist/next/remote/provider.js +506 -0
  445. package/dist/next/remote/provider.js.map +1 -0
  446. package/dist/next/remote/relay.d.ts +58 -0
  447. package/dist/next/remote/relay.d.ts.map +1 -0
  448. package/dist/next/remote/relay.js +117 -0
  449. package/dist/next/remote/relay.js.map +1 -0
  450. package/dist/next/remote/remote-object.d.ts +133 -0
  451. package/dist/next/remote/remote-object.d.ts.map +1 -0
  452. package/dist/next/remote/remote-object.js +411 -0
  453. package/dist/next/remote/remote-object.js.map +1 -0
  454. package/dist/next/remote/replica.d.ts +59 -0
  455. package/dist/next/remote/replica.d.ts.map +1 -0
  456. package/dist/next/remote/replica.js +125 -0
  457. package/dist/next/remote/replica.js.map +1 -0
  458. package/dist/next/state/batch.d.ts +64 -0
  459. package/dist/next/state/batch.d.ts.map +1 -0
  460. package/dist/next/state/batch.js +163 -0
  461. package/dist/next/state/batch.js.map +1 -0
  462. package/dist/next/state/derive.d.ts +52 -0
  463. package/dist/next/state/derive.d.ts.map +1 -0
  464. package/dist/next/state/derive.js +182 -0
  465. package/dist/next/state/derive.js.map +1 -0
  466. package/dist/next/state/index.d.ts +6 -0
  467. package/dist/next/state/index.d.ts.map +1 -0
  468. package/dist/next/state/index.js +4 -0
  469. package/dist/next/state/index.js.map +1 -0
  470. package/dist/next/state/internal.d.ts +6 -0
  471. package/dist/next/state/internal.d.ts.map +1 -0
  472. package/dist/next/state/internal.js +8 -0
  473. package/dist/next/state/internal.js.map +1 -0
  474. package/dist/next/state/native-source.d.ts +106 -0
  475. package/dist/next/state/native-source.d.ts.map +1 -0
  476. package/dist/next/state/native-source.js +240 -0
  477. package/dist/next/state/native-source.js.map +1 -0
  478. package/dist/next/state/watchable.d.ts +114 -0
  479. package/dist/next/state/watchable.d.ts.map +1 -0
  480. package/dist/next/state/watchable.js +156 -0
  481. package/dist/next/state/watchable.js.map +1 -0
  482. package/dist/next/state/writable.d.ts +32 -0
  483. package/dist/next/state/writable.d.ts.map +1 -0
  484. package/dist/next/state/writable.js +49 -0
  485. package/dist/next/state/writable.js.map +1 -0
  486. package/dist/next/store/adapter.d.ts +67 -0
  487. package/dist/next/store/adapter.d.ts.map +1 -0
  488. package/dist/next/store/adapter.js +118 -0
  489. package/dist/next/store/adapter.js.map +1 -0
  490. package/dist/next/store/allocator.d.ts +17 -0
  491. package/dist/next/store/allocator.d.ts.map +1 -0
  492. package/dist/next/store/allocator.js +30 -0
  493. package/dist/next/store/allocator.js.map +1 -0
  494. package/dist/next/store/applier.d.ts +8 -0
  495. package/dist/next/store/applier.d.ts.map +1 -0
  496. package/dist/next/store/applier.js +375 -0
  497. package/dist/next/store/applier.js.map +1 -0
  498. package/dist/next/store/apply-batch.d.ts +12 -0
  499. package/dist/next/store/apply-batch.d.ts.map +1 -0
  500. package/dist/next/store/apply-batch.js +83 -0
  501. package/dist/next/store/apply-batch.js.map +1 -0
  502. package/dist/next/store/archive.d.ts +32 -0
  503. package/dist/next/store/archive.d.ts.map +1 -0
  504. package/dist/next/store/archive.js +129 -0
  505. package/dist/next/store/archive.js.map +1 -0
  506. package/dist/next/store/backend.d.ts +10 -0
  507. package/dist/next/store/backend.d.ts.map +1 -0
  508. package/dist/next/store/backend.js +15 -0
  509. package/dist/next/store/backend.js.map +1 -0
  510. package/dist/next/store/catalog.d.ts +24 -0
  511. package/dist/next/store/catalog.d.ts.map +1 -0
  512. package/dist/next/store/catalog.js +17 -0
  513. package/dist/next/store/catalog.js.map +1 -0
  514. package/dist/next/store/claims.d.ts +23 -0
  515. package/dist/next/store/claims.d.ts.map +1 -0
  516. package/dist/next/store/claims.js +65 -0
  517. package/dist/next/store/claims.js.map +1 -0
  518. package/dist/next/store/columns.d.ts +77 -0
  519. package/dist/next/store/columns.d.ts.map +1 -0
  520. package/dist/next/store/columns.js +77 -0
  521. package/dist/next/store/columns.js.map +1 -0
  522. package/dist/next/store/engine.d.ts +176 -0
  523. package/dist/next/store/engine.d.ts.map +1 -0
  524. package/dist/next/store/engine.js +283 -0
  525. package/dist/next/store/engine.js.map +1 -0
  526. package/dist/next/store/evaluate.d.ts +17 -0
  527. package/dist/next/store/evaluate.d.ts.map +1 -0
  528. package/dist/next/store/evaluate.js +128 -0
  529. package/dist/next/store/evaluate.js.map +1 -0
  530. package/dist/next/store/export.d.ts +17 -0
  531. package/dist/next/store/export.d.ts.map +1 -0
  532. package/dist/next/store/export.js +200 -0
  533. package/dist/next/store/export.js.map +1 -0
  534. package/dist/next/store/expression.d.ts +150 -0
  535. package/dist/next/store/expression.d.ts.map +1 -0
  536. package/dist/next/store/expression.js +268 -0
  537. package/dist/next/store/expression.js.map +1 -0
  538. package/dist/next/store/import.d.ts +10 -0
  539. package/dist/next/store/import.d.ts.map +1 -0
  540. package/dist/next/store/import.js +276 -0
  541. package/dist/next/store/import.js.map +1 -0
  542. package/dist/next/store/index.d.ts +16 -0
  543. package/dist/next/store/index.d.ts.map +1 -0
  544. package/dist/next/store/index.js +13 -0
  545. package/dist/next/store/index.js.map +1 -0
  546. package/dist/next/store/json-column.d.ts +33 -0
  547. package/dist/next/store/json-column.d.ts.map +1 -0
  548. package/dist/next/store/json-column.js +61 -0
  549. package/dist/next/store/json-column.js.map +1 -0
  550. package/dist/next/store/jsonl.d.ts +9 -0
  551. package/dist/next/store/jsonl.d.ts.map +1 -0
  552. package/dist/next/store/jsonl.js +61 -0
  553. package/dist/next/store/jsonl.js.map +1 -0
  554. package/dist/next/store/outbox.d.ts +26 -0
  555. package/dist/next/store/outbox.d.ts.map +1 -0
  556. package/dist/next/store/outbox.js +80 -0
  557. package/dist/next/store/outbox.js.map +1 -0
  558. package/dist/next/store/query.d.ts +39 -0
  559. package/dist/next/store/query.d.ts.map +1 -0
  560. package/dist/next/store/query.js +97 -0
  561. package/dist/next/store/query.js.map +1 -0
  562. package/dist/next/store/refusal.d.ts +15 -0
  563. package/dist/next/store/refusal.d.ts.map +1 -0
  564. package/dist/next/store/refusal.js +36 -0
  565. package/dist/next/store/refusal.js.map +1 -0
  566. package/dist/next/store/rows.d.ts +80 -0
  567. package/dist/next/store/rows.d.ts.map +1 -0
  568. package/dist/next/store/rows.js +183 -0
  569. package/dist/next/store/rows.js.map +1 -0
  570. package/dist/next/store/schema.d.ts +25 -0
  571. package/dist/next/store/schema.d.ts.map +1 -0
  572. package/dist/next/store/schema.js +115 -0
  573. package/dist/next/store/schema.js.map +1 -0
  574. package/dist/next/store/sql.d.ts +73 -0
  575. package/dist/next/store/sql.d.ts.map +1 -0
  576. package/dist/next/store/sql.js +234 -0
  577. package/dist/next/store/sql.js.map +1 -0
  578. package/dist/next/store/step.d.ts +48 -0
  579. package/dist/next/store/step.d.ts.map +1 -0
  580. package/dist/next/store/step.js +50 -0
  581. package/dist/next/store/step.js.map +1 -0
  582. package/dist/next/store/store.d.ts +161 -0
  583. package/dist/next/store/store.d.ts.map +1 -0
  584. package/dist/next/store/store.js +627 -0
  585. package/dist/next/store/store.js.map +1 -0
  586. package/dist/next/store/table-changes.d.ts +29 -0
  587. package/dist/next/store/table-changes.d.ts.map +1 -0
  588. package/dist/next/store/table-changes.js +102 -0
  589. package/dist/next/store/table-changes.js.map +1 -0
  590. package/dist/next/store/table-evolve.d.ts +74 -0
  591. package/dist/next/store/table-evolve.d.ts.map +1 -0
  592. package/dist/next/store/table-evolve.js +201 -0
  593. package/dist/next/store/table-evolve.js.map +1 -0
  594. package/dist/next/store/table-handle.d.ts +67 -0
  595. package/dist/next/store/table-handle.d.ts.map +1 -0
  596. package/dist/next/store/table-handle.js +101 -0
  597. package/dist/next/store/table-handle.js.map +1 -0
  598. package/dist/next/store/table-history.d.ts +75 -0
  599. package/dist/next/store/table-history.d.ts.map +1 -0
  600. package/dist/next/store/table-history.js +42 -0
  601. package/dist/next/store/table-history.js.map +1 -0
  602. package/dist/next/store/table-migration.d.ts +16 -0
  603. package/dist/next/store/table-migration.d.ts.map +1 -0
  604. package/dist/next/store/table-migration.js +202 -0
  605. package/dist/next/store/table-migration.js.map +1 -0
  606. package/dist/next/store/table-writes.d.ts +125 -0
  607. package/dist/next/store/table-writes.d.ts.map +1 -0
  608. package/dist/next/store/table-writes.js +165 -0
  609. package/dist/next/store/table-writes.js.map +1 -0
  610. package/dist/next/store/table.d.ts +80 -0
  611. package/dist/next/store/table.d.ts.map +1 -0
  612. package/dist/next/store/table.js +103 -0
  613. package/dist/next/store/table.js.map +1 -0
  614. package/dist/next/store/text.d.ts +14 -0
  615. package/dist/next/store/text.d.ts.map +1 -0
  616. package/dist/next/store/text.js +51 -0
  617. package/dist/next/store/text.js.map +1 -0
  618. package/dist/next/store/writes.d.ts +5 -0
  619. package/dist/next/store/writes.d.ts.map +1 -0
  620. package/dist/next/store/writes.js +4 -0
  621. package/dist/next/store/writes.js.map +1 -0
  622. package/dist/next-node/compression.d.ts +7 -0
  623. package/dist/next-node/compression.d.ts.map +1 -0
  624. package/dist/next-node/compression.js +24 -0
  625. package/dist/next-node/compression.js.map +1 -0
  626. package/dist/next-node/http/admission.d.ts +63 -0
  627. package/dist/next-node/http/admission.d.ts.map +1 -0
  628. package/dist/next-node/http/admission.js +134 -0
  629. package/dist/next-node/http/admission.js.map +1 -0
  630. package/dist/next-node/http/authenticate.d.ts +21 -0
  631. package/dist/next-node/http/authenticate.d.ts.map +1 -0
  632. package/dist/next-node/http/authenticate.js +34 -0
  633. package/dist/next-node/http/authenticate.js.map +1 -0
  634. package/dist/next-node/http/cookies.d.ts +24 -0
  635. package/dist/next-node/http/cookies.d.ts.map +1 -0
  636. package/dist/next-node/http/cookies.js +62 -0
  637. package/dist/next-node/http/cookies.js.map +1 -0
  638. package/dist/next-node/http/file.d.ts +23 -0
  639. package/dist/next-node/http/file.d.ts.map +1 -0
  640. package/dist/next-node/http/file.js +94 -0
  641. package/dist/next-node/http/file.js.map +1 -0
  642. package/dist/next-node/http/headers.d.ts +37 -0
  643. package/dist/next-node/http/headers.d.ts.map +1 -0
  644. package/dist/next-node/http/headers.js +129 -0
  645. package/dist/next-node/http/headers.js.map +1 -0
  646. package/dist/next-node/http/http.d.ts +100 -0
  647. package/dist/next-node/http/http.d.ts.map +1 -0
  648. package/dist/next-node/http/http.js +462 -0
  649. package/dist/next-node/http/http.js.map +1 -0
  650. package/dist/next-node/http/incoming.d.ts +19 -0
  651. package/dist/next-node/http/incoming.d.ts.map +1 -0
  652. package/dist/next-node/http/incoming.js +31 -0
  653. package/dist/next-node/http/incoming.js.map +1 -0
  654. package/dist/next-node/http/index.d.ts +11 -0
  655. package/dist/next-node/http/index.d.ts.map +1 -0
  656. package/dist/next-node/http/index.js +12 -0
  657. package/dist/next-node/http/index.js.map +1 -0
  658. package/dist/next-node/http/node.d.ts +78 -0
  659. package/dist/next-node/http/node.d.ts.map +1 -0
  660. package/dist/next-node/http/node.js +291 -0
  661. package/dist/next-node/http/node.js.map +1 -0
  662. package/dist/next-node/http/request.d.ts +54 -0
  663. package/dist/next-node/http/request.d.ts.map +1 -0
  664. package/dist/next-node/http/request.js +116 -0
  665. package/dist/next-node/http/request.js.map +1 -0
  666. package/dist/next-node/http/response.d.ts +63 -0
  667. package/dist/next-node/http/response.d.ts.map +1 -0
  668. package/dist/next-node/http/response.js +202 -0
  669. package/dist/next-node/http/response.js.map +1 -0
  670. package/dist/next-node/http/router.d.ts +114 -0
  671. package/dist/next-node/http/router.d.ts.map +1 -0
  672. package/dist/next-node/http/router.js +261 -0
  673. package/dist/next-node/http/router.js.map +1 -0
  674. package/dist/next-node/http/upgrades.d.ts +58 -0
  675. package/dist/next-node/http/upgrades.d.ts.map +1 -0
  676. package/dist/next-node/http/upgrades.js +184 -0
  677. package/dist/next-node/http/upgrades.js.map +1 -0
  678. package/dist/next-node/plugins/build.d.ts +57 -0
  679. package/dist/next-node/plugins/build.d.ts.map +1 -0
  680. package/dist/next-node/plugins/build.js +334 -0
  681. package/dist/next-node/plugins/build.js.map +1 -0
  682. package/dist/next-node/plugins/discover.d.ts +36 -0
  683. package/dist/next-node/plugins/discover.d.ts.map +1 -0
  684. package/dist/next-node/plugins/discover.js +91 -0
  685. package/dist/next-node/plugins/discover.js.map +1 -0
  686. package/dist/next-node/plugins/evaluate.d.ts +33 -0
  687. package/dist/next-node/plugins/evaluate.d.ts.map +1 -0
  688. package/dist/next-node/plugins/evaluate.js +98 -0
  689. package/dist/next-node/plugins/evaluate.js.map +1 -0
  690. package/dist/next-node/plugins/index.d.ts +9 -0
  691. package/dist/next-node/plugins/index.d.ts.map +1 -0
  692. package/dist/next-node/plugins/index.js +11 -0
  693. package/dist/next-node/plugins/index.js.map +1 -0
  694. package/dist/next-node/plugins/install.d.ts +13 -0
  695. package/dist/next-node/plugins/install.d.ts.map +1 -0
  696. package/dist/next-node/plugins/install.js +37 -0
  697. package/dist/next-node/plugins/install.js.map +1 -0
  698. package/dist/next-node/plugins/plugins.d.ts +135 -0
  699. package/dist/next-node/plugins/plugins.d.ts.map +1 -0
  700. package/dist/next-node/plugins/plugins.js +206 -0
  701. package/dist/next-node/plugins/plugins.js.map +1 -0
  702. package/dist/next-node/plugins/runtime.d.ts +41 -0
  703. package/dist/next-node/plugins/runtime.d.ts.map +1 -0
  704. package/dist/next-node/plugins/runtime.js +136 -0
  705. package/dist/next-node/plugins/runtime.js.map +1 -0
  706. package/dist/next-node/plugins/stack.d.ts +16 -0
  707. package/dist/next-node/plugins/stack.d.ts.map +1 -0
  708. package/dist/next-node/plugins/stack.js +61 -0
  709. package/dist/next-node/plugins/stack.js.map +1 -0
  710. package/dist/next-node/plugins/watcher.d.ts +58 -0
  711. package/dist/next-node/plugins/watcher.d.ts.map +1 -0
  712. package/dist/next-node/plugins/watcher.js +281 -0
  713. package/dist/next-node/plugins/watcher.js.map +1 -0
  714. package/dist/next-node/workers/control.d.ts +83 -0
  715. package/dist/next-node/workers/control.d.ts.map +1 -0
  716. package/dist/next-node/workers/control.js +77 -0
  717. package/dist/next-node/workers/control.js.map +1 -0
  718. package/dist/next-node/workers/index.d.ts +5 -0
  719. package/dist/next-node/workers/index.d.ts.map +1 -0
  720. package/dist/next-node/workers/index.js +7 -0
  721. package/dist/next-node/workers/index.js.map +1 -0
  722. package/dist/next-node/workers/lock.d.ts +21 -0
  723. package/dist/next-node/workers/lock.d.ts.map +1 -0
  724. package/dist/next-node/workers/lock.js +137 -0
  725. package/dist/next-node/workers/lock.js.map +1 -0
  726. package/dist/next-node/workers/main.d.ts +46 -0
  727. package/dist/next-node/workers/main.d.ts.map +1 -0
  728. package/dist/next-node/workers/main.js +230 -0
  729. package/dist/next-node/workers/main.js.map +1 -0
  730. package/dist/next-node/workers/process.d.ts +42 -0
  731. package/dist/next-node/workers/process.d.ts.map +1 -0
  732. package/dist/next-node/workers/process.js +125 -0
  733. package/dist/next-node/workers/process.js.map +1 -0
  734. package/dist/next-node/workers/workers.d.ts +80 -0
  735. package/dist/next-node/workers/workers.d.ts.map +1 -0
  736. package/dist/next-node/workers/workers.js +572 -0
  737. package/dist/next-node/workers/workers.js.map +1 -0
  738. package/dist/object.d.ts +4 -4
  739. package/dist/object.d.ts.map +1 -1
  740. package/dist/object.js +3 -4
  741. package/dist/object.js.map +1 -1
  742. package/dist/output.d.ts +1 -1
  743. package/dist/output.d.ts.map +1 -1
  744. package/dist/output.js +4 -2
  745. package/dist/output.js.map +1 -1
  746. package/dist/remote.d.ts.map +1 -1
  747. package/dist/remote.js +2 -2
  748. package/dist/remote.js.map +1 -1
  749. package/dist/schema.d.ts +8 -4
  750. package/dist/schema.d.ts.map +1 -1
  751. package/dist/schema.js +180 -5
  752. package/dist/schema.js.map +1 -1
  753. package/dist/sqlite/cloudflare.d.ts +2 -0
  754. package/dist/sqlite/cloudflare.d.ts.map +1 -1
  755. package/dist/sqlite/cloudflare.js +10 -0
  756. package/dist/sqlite/cloudflare.js.map +1 -1
  757. package/dist/sqlite/database.d.ts +5 -2
  758. package/dist/sqlite/database.d.ts.map +1 -1
  759. package/dist/sqlite/database.js.map +1 -1
  760. package/dist/sqlite/node.d.ts +4 -1
  761. package/dist/sqlite/node.d.ts.map +1 -1
  762. package/dist/sqlite/node.js +22 -5
  763. package/dist/sqlite/node.js.map +1 -1
  764. package/dist/watch.d.ts +194 -0
  765. package/dist/watch.d.ts.map +1 -0
  766. package/dist/watch.js +383 -0
  767. package/dist/watch.js.map +1 -0
  768. package/dist/wire.d.ts +174 -193
  769. package/dist/wire.d.ts.map +1 -1
  770. package/dist/wire.js +81 -80
  771. package/dist/wire.js.map +1 -1
  772. package/docs/guide.md +15 -15
  773. package/docs/next/benchmarks.md +959 -0
  774. package/docs/next/decisions.md +2957 -0
  775. package/docs/next/dependencies/book.md +1671 -0
  776. package/docs/next/dependencies/index.html +2641 -0
  777. package/docs/next/dependencies/model.md +330 -0
  778. package/docs/next/design.md +2554 -0
  779. package/docs/next/durable-observers/book.md +432 -0
  780. package/docs/next/durable-observers/index.html +517 -0
  781. package/docs/next/flow-control/book.md +333 -0
  782. package/docs/next/flow-control/fold/index.html +265 -0
  783. package/docs/next/flow-control/index.html +548 -0
  784. package/docs/next/flow-control/window/index.html +228 -0
  785. package/docs/next/guide-plugins-hosts/book.md +607 -0
  786. package/docs/next/guide-plugins-hosts/index.html +652 -0
  787. package/docs/next/http-workers/book.md +378 -0
  788. package/docs/next/http-workers/index.html +515 -0
  789. package/docs/next/layer-1.md +311 -0
  790. package/docs/next/layer-2.md +216 -0
  791. package/docs/next/plugin-model/book.md +186 -0
  792. package/docs/next/plugin-model/index.html +310 -0
  793. package/docs/next/plugin-primer/book.md +273 -0
  794. package/docs/next/plugin-primer/index.html +430 -0
  795. package/docs/next/slice-1.md +236 -0
  796. package/docs/next/slice-10.md +285 -0
  797. package/docs/next/slice-11.md +93 -0
  798. package/docs/next/slice-2.md +174 -0
  799. package/docs/next/slice-3a.md +296 -0
  800. package/docs/next/slice-3b.md +197 -0
  801. package/docs/next/slice-4.md +146 -0
  802. package/docs/next/slice-4a.md +418 -0
  803. package/docs/next/slice-4b.md +208 -0
  804. package/docs/next/slice-5.md +281 -0
  805. package/docs/next/slice-6a.md +676 -0
  806. package/docs/next/slice-6b.md +332 -0
  807. package/docs/next/slice-7a.md +130 -0
  808. package/docs/next/slice-7b/book.md +608 -0
  809. package/docs/next/slice-7b/index.html +842 -0
  810. package/docs/next/slice-7b.md +255 -0
  811. package/docs/next/slice-7c.md +165 -0
  812. package/docs/next/slice-8.md +194 -0
  813. package/docs/next/slices.md +230 -0
  814. package/docs/next/store/book.md +665 -0
  815. package/docs/next/store/index.html +861 -0
  816. package/docs/next/store/walkthrough.md +193 -0
  817. package/docs/spec.md +9 -9
  818. package/docs/tutorial.md +26 -25
  819. package/package.json +22 -6
  820. package/src/delta/README.md +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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","sourcesContent":["// Watch handles: the watch types and the one implementation of their lifecycle, for JSON and native values.\nimport { type Context, withoutAbortSignal } from \"./context/index.ts\";\nimport { type Op, PendingOps } from \"./delta/index.ts\";\nimport type { JsonValue } from \"./json.ts\";\n\n/**\n * Terminal result of one watch, tagged by `kind`. A watch ends only for good; a failure its source recovers from is a\n * `failed` call (`WatchCall`), and the watch stays open.\n *\n * - `stopped`: `stop()` was called.\n * - `aborted`: the context the watch was acquired with was aborted.\n * - `ended`: the source closed (its owner ended or closed).\n * - `listener_error`: the listener threw or rejected with `error`.\n * - `failed`: the source failed for good with `error`.\n */\nexport type WatchEnd =\n\t| { readonly kind: \"stopped\" | \"aborted\" | \"ended\" }\n\t| { readonly kind: \"listener_error\"; readonly error: Error }\n\t| { readonly kind: \"failed\"; readonly error: unknown };\n\n/**\n * One call of a JSON watch's listener, and one frame a source hands its watch, tagged by `kind`:\n *\n * - `value`: the newest value, the ops that turn the previous value into it, and whether the document the watch follows\n * was retired since the previous value call. A retirement does not end the watch: `value` is then what the address\n * shows after it (the source decides; a Durable document keeps the last value the watch was given, with no ops), and a\n * document created there later arrives as `[[\"r\", value]]`, possibly in the same call.\n * - `failed`: the source cannot compute its value now, with `error`; the watch stays open, and the next value arrives as\n * `[[\"r\", value]]`. `WatchHandle.value` keeps the last value.\n *\n * Plain data: the frame's context is the listener's second argument, never part of the call.\n */\nexport type WatchCall<T> =\n\t| { readonly kind: \"value\"; readonly value: T; readonly ops: readonly Op[]; readonly retired: boolean }\n\t| { readonly kind: \"failed\"; readonly error: unknown };\n\n/** One call of a native watch's listener: the new value, or a failure its source may recover from, as in `WatchCall`. */\nexport type NativeWatchCall<T> =\n\t| { readonly kind: \"value\"; readonly value: T }\n\t| { readonly kind: \"failed\"; readonly error: unknown };\n\n/**\n * Serialized observation of an immutable value: one listener call at a time; changes made meanwhile arrive folded into\n * the next call.\n */\nexport interface WatchHandle<T> {\n\t/** Acquisition revision before start; latest delivered immutable revision afterward (a `failed` call keeps it). */\n\treadonly value: T;\n\t/** Install the sole asynchronous listener. Never invokes it inline. */\n\tstart(listener: (call: WatchCall<T>, context: Context) => Promise<void>): void;\n\t/** Idempotently stop future callbacks and return this watch's terminal result. */\n\tstop(): Promise<WatchEnd>;\n\t/** Settle when the watch terminates; an already-running callback remains caller-owned. */\n\treadonly closed: Promise<WatchEnd>;\n}\n\n/**\n * A value that changes and can be watched: documents, derives, members of references. Values are immutable by\n * convention (JSON for state); each watch starts at the current value and then gets the changes, folded while its\n * listener is busy.\n */\nexport interface Watchable<T> {\n\t/** The current value. */\n\treadonly value: T;\n\t/** A watch holding the current value, then its changes; aborting the context ends it. */\n\twatch(context: Context): Promise<WatchHandle<T>>;\n}\n\n/**\n * An in-process value that changes and can be watched (it may hold anything, errors and functions included): a change\n * is a new value by identity, delivered without ops.\n */\nexport interface NativeWatchable<T> {\n\t/** The current value. */\n\treadonly value: T;\n\t/** A watch holding the current value, then one frame per new value; aborting the context ends it. */\n\twatch(context: Context): Promise<NativeWatchHandle<T>>;\n}\n\n/**\n * Serialized observation of an in-process value: as `WatchHandle`, but each new value is its own call, in order, without\n * ops.\n */\nexport interface NativeWatchHandle<T> {\n\t/** Acquisition value before start; latest delivered value afterward (a `failed` call keeps it). */\n\treadonly value: T;\n\t/** Install the sole asynchronous listener. Never invokes it inline. */\n\tstart(listener: (call: NativeWatchCall<T>, context: Context) => Promise<void>): void;\n\t/** Idempotently stop future callbacks and return this watch's terminal result. */\n\tstop(): Promise<WatchEnd>;\n\t/** Settle when the watch terminates; an already-running callback remains caller-owned. */\n\treadonly closed: Promise<WatchEnd>;\n}\n\ntype Listener<C> = (call: C, context: Context) => Promise<void>;\n\nconst STOPPED: WatchEnd = { kind: \"stopped\" };\nconst ABORTED: WatchEnd = { kind: \"aborted\" };\nconst ENDED: WatchEnd = { kind: \"ended\" };\n\n/** A failure call, as both call types have it. */\ntype FailedCall = { readonly kind: \"failed\"; readonly error: unknown };\n\n/**\n * The lifecycle both handles share: serialized delivery and termination. A source feeds it and ends it explicitly;\n * termination drops every reference the watch holds into its source, so a stopped watch that is still referenced keeps\n * nothing but its last value alive. Subclasses keep what is pending, each call apart from its frame's context, so the\n * call a listener gets carries nothing but its data.\n */\nabstract class WatchLifecycle<T, C extends { readonly kind: \"value\"; readonly value: T } | FailedCall> {\n\t#detach: (() => void) | undefined;\n\t#report: ((error: unknown) => void) | undefined;\n\treadonly #closed = Promise.withResolvers<WatchEnd>();\n\t#value: T;\n\t#listener: Listener<C> | undefined;\n\t#started = false;\n\t#scheduled = false;\n\t#running = false;\n\t/** Set by `endAfterDelivery()`: the source sends nothing more; the watch ends `ended` once it delivered the rest. */\n\t#ending = false;\n\t/** Set once, by `#terminate()`. */\n\t#end: WatchEnd | undefined;\n\t#abortSignal: AbortSignal | undefined;\n\t#abortListener: (() => void) | undefined;\n\n\tconstructor(value: T, detach: () => void, report: (error: unknown) => void) {\n\t\tthis.#value = value;\n\t\tthis.#detach = detach;\n\t\tthis.#report = report;\n\t}\n\n\tget value(): T {\n\t\treturn this.#value;\n\t}\n\n\tget closed(): Promise<WatchEnd> {\n\t\treturn this.#closed.promise;\n\t}\n\n\tstart(listener: Listener<C>): void {\n\t\tif (this.#started) throw new Error(\"Watch is already started\");\n\t\tif (this.#end !== undefined) throw new Error(\"Watch is stopped\");\n\t\tthis.#started = true;\n\t\tthis.#listener = listener;\n\t\tthis.#schedule();\n\t}\n\n\tstop(): Promise<WatchEnd> {\n\t\tthis.#terminate(STOPPED);\n\t\treturn this.#closed.promise;\n\t}\n\n\t/** End the watch `aborted` when `signal` aborts; installed once. */\n\tobserveAbort(signal: AbortSignal): void {\n\t\tif (this.#abortSignal !== undefined) throw new Error(\"Watch abort is already installed\");\n\t\tif (this.#end !== undefined) return;\n\t\tthis.#abortSignal = signal;\n\t\tthis.#abortListener = () => this.abort();\n\t\tsignal.addEventListener(\"abort\", this.#abortListener, { once: true });\n\t\tif (signal.aborted) this.abort();\n\t}\n\n\t/** End the watch `aborted`: its acquisition context was aborted. */\n\tabort(): void {\n\t\tthis.#terminate(ABORTED);\n\t}\n\n\t/**\n\t * End the watch with `end` at once, dropping what is pending: the source closed (`ended`), or failed for good\n\t * (`failed`). A failure the source may recover from is a `failed` call instead (`fail()`).\n\t */\n\tend(end: WatchEnd): void {\n\t\tthis.#terminate(end);\n\t}\n\n\t/**\n\t * The source sends nothing more after its last frames, such as a retirement: take no more frames, deliver what is\n\t * pending, then end `ended`, after the running call returns, if one runs. Until then the watch stays attached, so\n\t * `end()`, `stop()`, an abort, and a throwing listener still end it first; a watch never started keeps what is\n\t * pending until one of them or `start()`.\n\t */\n\tendAfterDelivery(): void {\n\t\tif (this.#end !== undefined || this.#ending) return;\n\t\tthis.#ending = true;\n\t\tif (!this.#running && this.pendingContext === undefined) this.#terminate(ENDED);\n\t}\n\n\t/** Whether the watch still takes frames: it has not ended, and its source has not ended. */\n\tprotected get open(): boolean {\n\t\treturn this.#end === undefined && !this.#ending;\n\t}\n\n\t/** The context of the newest frame the next call covers, or undefined when nothing is pending. */\n\tprotected abstract get pendingContext(): Context | undefined;\n\n\t/** Take the next call; called only while something is pending. */\n\tprotected abstract next(): C;\n\n\t/** Drop everything pending and every reference into the source; called once, on termination. */\n\tprotected abstract release(): void;\n\n\t/** Something became pending: deliver it once started, never inline. */\n\tprotected pending(): void {\n\t\tif (this.#started) this.#schedule();\n\t}\n\n\t#schedule(): void {\n\t\tif (this.#scheduled || this.#running || this.#end !== undefined) return;\n\t\tthis.#scheduled = true;\n\t\tqueueMicrotask(() => {\n\t\t\tthis.#scheduled = false;\n\t\t\tvoid this.#drain();\n\t\t});\n\t}\n\n\t/**\n\t * Deliver until nothing is pending; what arrives during a call is taken after it returns. A watch whose source ended\n\t * ends once it delivered the rest and its last call returned.\n\t */\n\tasync #drain(): Promise<void> {\n\t\tif (this.#running || this.#end !== undefined || !this.#started) return;\n\t\tthis.#running = true;\n\t\ttry {\n\t\t\twhile (this.#end === undefined) {\n\t\t\t\tconst listener = this.#listener;\n\t\t\t\tif (listener === undefined) break;\n\t\t\t\tconst frameContext = this.pendingContext;\n\t\t\t\tif (frameContext === undefined) {\n\t\t\t\t\tif (this.#ending) this.#terminate(ENDED);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst call = this.next();\n\t\t\t\tif (call.kind === \"value\") this.#value = call.value;\n\t\t\t\ttry {\n\t\t\t\t\tawait listener(call, withoutAbortSignal(frameContext));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (this.#end === undefined) {\n\t\t\t\t\t\tthis.#report?.(error);\n\t\t\t\t\t\tthis.#terminate({ kind: \"listener_error\", error: toError(error) });\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.#running = false;\n\t\t}\n\t}\n\n\t/**\n\t * End the watch, once: detach, drop what is pending and every reference into the source, and settle `closed`. A\n\t * callback already running keeps running.\n\t */\n\t#terminate(end: WatchEnd): void {\n\t\tif (this.#end !== undefined) return;\n\t\tthis.#end = end;\n\t\tconst detach = this.#detach;\n\t\tthis.#detach = undefined;\n\t\tthis.#report = undefined;\n\t\tthis.#listener = undefined;\n\t\tthis.release();\n\t\tif (this.#abortListener !== undefined) this.#abortSignal?.removeEventListener(\"abort\", this.#abortListener);\n\t\tthis.#abortSignal = undefined;\n\t\tthis.#abortListener = undefined;\n\t\tdetach?.();\n\t\tthis.#closed.resolve(end);\n\t}\n}\n\nfunction toError(error: unknown): Error {\n\tif (error instanceof Error) return error;\n\ttry {\n\t\treturn new Error(String(error));\n\t} catch {\n\t\treturn new Error(Object.prototype.toString.call(error));\n\t}\n}\n\n/**\n * The watch handle of a JSON source. Frames that arrive before `start()` or while the listener runs wait in one\n * `PendingOps` queue; the next call gets the newest value, the folded ops of every frame since the previous call (or\n * `[[\"r\", newest]]` after the queue overflowed), `retired` when any of them was a retirement, and the newest frame's\n * context. A frame delivered alone is passed on as the source made it. A failure (`fail()`) drops the pending frames and\n * waits as one `failed` call; a value after it replaces it, and the first value call after a failure is `[[\"r\",\n * value]]`. `detach` unsubscribes it from its source on termination; `report` gets a listener's throw, which also ends\n * the watch.\n */\nexport class Watch<T> extends WatchLifecycle<T, WatchCall<T>> implements WatchHandle<T> {\n\treadonly #ops = new PendingOps();\n\t/**\n\t * The source's call while it is the only frame pending: the call passes it on, with no allocation. A second frame\n\t * drops it, so its ops stay only as long as `PendingOps` keeps them (folded, or dropped by an overflow).\n\t */\n\t#lone: WatchValueCall<T> | undefined;\n\t/** The newest frame's value and context, while a call is pending; the context also marks that one is. */\n\t#newestValue: T | undefined;\n\t#newestContext: Context | undefined;\n\t/** A pending frame was a retirement. */\n\t#retired = false;\n\t/** The newest frame was a failure: the next call is this. */\n\t#failure: FailedCall | undefined;\n\t/** A failure came after the last value call: the next value call replaces the root, and ops are not kept. */\n\t#replace = false;\n\n\t/**\n\t * Queue the frame `call`. A value's ops turn the previous value into it, and `retired` says the document the watch\n\t * follows was retired, which the next value call reports however many frames it folds; a failure is `fail()`.\n\t */\n\tadvance(call: WatchCall<T>, context: Context): void {\n\t\tif (call.kind === \"failed\") {\n\t\t\tthis.#fail(call, context);\n\t\t\treturn;\n\t\t}\n\t\tif (!this.open) return;\n\t\tif (this.#replace) {\n\t\t\tthis.#failure = undefined;\n\t\t} else {\n\t\t\tthis.#lone = this.#newestContext === undefined ? call : undefined;\n\t\t\tthis.#ops.push(call.ops);\n\t\t}\n\t\tthis.#newestValue = call.value;\n\t\tthis.#newestContext = context;\n\t\tif (call.retired) this.#retired = true;\n\t\tthis.pending();\n\t}\n\n\t/**\n\t * Queue a failure the source may recover from: the pending frames are dropped (`value` keeps the last delivered\n\t * value), the listener gets `{ kind: \"failed\", error }`, and the next value arrives as `[[\"r\", value]]`.\n\t */\n\tfail(error: unknown, context: Context): void {\n\t\tthis.#fail({ kind: \"failed\", error }, context);\n\t}\n\n\t#fail(call: FailedCall, context: Context): void {\n\t\tif (!this.open) return;\n\t\tthis.#ops.take();\n\t\tthis.#lone = undefined;\n\t\tthis.#newestValue = undefined;\n\t\tthis.#failure = call;\n\t\tthis.#newestContext = context;\n\t\tthis.#replace = true;\n\t\tthis.pending();\n\t}\n\n\tprotected get pendingContext(): Context | undefined {\n\t\treturn this.#newestContext;\n\t}\n\n\tprotected next(): WatchCall<T> {\n\t\t// After a failure the call is that failure, or the value after it; otherwise one field read decides.\n\t\tif (this.#replace) return this.#nextAfterFailure();\n\t\tconst lone = this.#lone;\n\t\t// Set with the context, which says a frame is pending.\n\t\tconst value = this.#newestValue as T;\n\t\tconst batch = this.#ops.take();\n\t\tconst retired = this.#retired;\n\t\tthis.#lone = undefined;\n\t\tthis.#newestValue = undefined;\n\t\tthis.#newestContext = undefined;\n\t\tthis.#retired = false;\n\t\t// One frame never folds or overflows: its call is the listener's.\n\t\tif (lone !== undefined) return lone;\n\t\t// Values of a JSON watch are JSON; `T` is the source's narrower or wider view of them (e.g. a typed document).\n\t\tconst ops: readonly Op[] = batch.kind === \"ops\" ? batch.ops : [[\"r\", value as JsonValue]];\n\t\treturn { kind: \"value\", value, ops, retired };\n\t}\n\n\t/** The pending failure, or the value after one as a root replacement (no ops were kept since the failure). */\n\t#nextAfterFailure(): WatchCall<T> {\n\t\tconst failure = this.#failure;\n\t\tthis.#newestContext = undefined;\n\t\tif (failure !== undefined) {\n\t\t\tthis.#failure = undefined;\n\t\t\treturn failure;\n\t\t}\n\t\tconst value = this.#newestValue as T;\n\t\tconst retired = this.#retired;\n\t\tthis.#newestValue = undefined;\n\t\tthis.#retired = false;\n\t\tthis.#replace = false;\n\t\treturn { kind: \"value\", value, ops: [[\"r\", value as JsonValue]], retired };\n\t}\n\n\tprotected release(): void {\n\t\tthis.#ops.take();\n\t\tthis.#lone = undefined;\n\t\tthis.#newestValue = undefined;\n\t\tthis.#newestContext = undefined;\n\t\tthis.#retired = false;\n\t\tthis.#failure = undefined;\n\t\tthis.#replace = false;\n\t}\n}\n\n/** The value call of a JSON watch. */\ntype WatchValueCall<T> = Extract<WatchCall<T>, { readonly kind: \"value\" }>;\n\n/** Maximum values retained behind one unavailable native watch listener. */\nconst MAX_PENDING_NATIVE_VALUES = 100;\n\n/**\n * The watch handle of a native source: every value in order, one call each; past 100 pending values they collapse to\n * one, `replace()` or by default the newest value. A failure (`fail()`) drops the pending values and waits as one\n * `failed` call; a value after it replaces it. `detach` and `report` as for `Watch`.\n */\nexport class NativeWatch<T> extends WatchLifecycle<T, NativeWatchCall<T>> implements NativeWatchHandle<T> {\n\t/**\n\t * Pending values in order, each followed by its frame's context, from `#head` on. Values are kept raw: the call a\n\t * listener gets is built when it is taken, so a value an overflow drops costs no object. A read index instead of\n\t * `shift()` takes a backlog in constant time per value; taken slots are cleared at once, the array is emptied once\n\t * all of it was taken, and its taken prefix dropped after 100 values.\n\t */\n\treadonly #pending: Array<T | Context | undefined> = [];\n\t#head = 0;\n\t#replace: (() => T) | undefined;\n\t/** A pending failure and its frame's context; nothing else is pending meanwhile. */\n\t#failure: FailedCall | undefined;\n\t#failureContext: Context | undefined;\n\n\tconstructor(value: T, detach: () => void, report: (error: unknown) => void, replace?: () => T) {\n\t\tsuper(value, detach, report);\n\t\tthis.#replace = replace;\n\t}\n\n\t/** Queue `value`, the source's new value; it replaces a pending failure. */\n\tadvance(value: T, context: Context): void {\n\t\tif (!this.open) return;\n\t\tthis.#failure = undefined;\n\t\tthis.#failureContext = undefined;\n\t\tif (this.#pending.length - this.#head < 2 * MAX_PENDING_NATIVE_VALUES) {\n\t\t\tthis.#pending.push(value, context);\n\t\t} else {\n\t\t\tthis.#pending.length = 0;\n\t\t\tthis.#head = 0;\n\t\t\tthis.#pending.push(this.#replace === undefined ? value : this.#replace(), context);\n\t\t}\n\t\tthis.pending();\n\t}\n\n\t/**\n\t * Queue a failure the source may recover from: the pending values are dropped (`value` keeps the last delivered\n\t * value), and the listener gets `{ kind: \"failed\", error }`.\n\t */\n\tfail(error: unknown, context: Context): void {\n\t\tif (!this.open) return;\n\t\tthis.#pending.length = 0;\n\t\tthis.#head = 0;\n\t\tthis.#failure = { kind: \"failed\", error };\n\t\tthis.#failureContext = context;\n\t\tthis.pending();\n\t}\n\n\tprotected get pendingContext(): Context | undefined {\n\t\t// The slot after a value holds its context; past the end it is empty.\n\t\treturn this.#failureContext ?? (this.#pending[this.#head + 1] as Context | undefined);\n\t}\n\n\tprotected next(): NativeWatchCall<T> {\n\t\tconst failure = this.#failure;\n\t\tif (failure !== undefined) {\n\t\t\tthis.#failure = undefined;\n\t\t\tthis.#failureContext = undefined;\n\t\t\treturn failure;\n\t\t}\n\t\tconst head = this.#head;\n\t\tconst pending = this.#pending;\n\t\t// The slot at `#head` holds a value.\n\t\tconst value = pending[head] as T;\n\t\tif (head + 2 === pending.length) {\n\t\t\tpending.length = 0;\n\t\t\tthis.#head = 0;\n\t\t} else if (head + 2 >= 2 * MAX_PENDING_NATIVE_VALUES) {\n\t\t\t// A backlog that never drains: drop the taken prefix, at most once per 100 values, so the array stays bounded.\n\t\t\tpending.copyWithin(0, head + 2);\n\t\t\tpending.length -= head + 2;\n\t\t\tthis.#head = 0;\n\t\t} else {\n\t\t\tpending[head] = undefined;\n\t\t\tpending[head + 1] = undefined;\n\t\t\tthis.#head = head + 2;\n\t\t}\n\t\treturn { kind: \"value\", value };\n\t}\n\n\tprotected release(): void {\n\t\tthis.#pending.length = 0;\n\t\tthis.#head = 0;\n\t\tthis.#replace = undefined;\n\t\tthis.#failure = undefined;\n\t\tthis.#failureContext = undefined;\n\t}\n}\n"]}
package/dist/wire.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Static, type TSchema, Type } from "typebox";
1
+ import { type Schema, type Static } from "@earendil-works/pi-schema";
2
2
  import { ChordError } from "./errors.ts";
3
3
  /**
4
4
  * The link protocol version, announced in `hello`. Peers of different versions do not talk: the side that notices
@@ -6,207 +6,188 @@ import { ChordError } from "./errors.ts";
6
6
  * (`LinkOptions.onProtocolMismatch`).
7
7
  */
8
8
  export declare const PROTOCOL_VERSION = 4;
9
- declare const RootRefSchema: Type.TObject<{
10
- rootId: Type.TString;
11
- codeVersion: Type.TInteger;
9
+ declare const RootRefSchema: Schema<{
10
+ rootId: string;
11
+ codeVersion: number;
12
12
  }>;
13
13
  export type RootRef = Static<typeof RootRefSchema>;
14
- declare const WireErrorSchema: Type.TObject<{
15
- code: Type.TEnum<["aborted", "contract_mismatch", "forbidden", "gone", "invalid", "not_in_variant", "not_ready", "released", "superseded", "unavailable", "upgrade_conflict", "upgrade_required"]>;
16
- message: Type.TString;
17
- reason: Type.TOptional<Type.TString>;
14
+ declare const WireErrorSchema: Schema<{
15
+ code: "aborted" | "contract_mismatch" | "forbidden" | "gone" | "invalid" | "not_in_variant" | "not_ready" | "released" | "superseded" | "unavailable" | "upgrade_conflict" | "upgrade_required";
16
+ message: string;
17
+ reason?: string | undefined;
18
18
  }>;
19
19
  export type WireError = Static<typeof WireErrorSchema>;
20
- declare const WireReloadOptionsSchema: Type.TObject<{
21
- remove: Type.TOptional<Type.TImmutable<Type.TArray<Type.TString>>>;
22
- gateDeadline: Type.TOptional<Type.TNumber>;
23
- retireDeadline: Type.TOptional<Type.TNumber>;
20
+ declare const WireReloadOptionsSchema: Schema<{
21
+ remove?: readonly string[] | undefined;
22
+ gateDeadline?: number | undefined;
23
+ retireDeadline?: number | undefined;
24
24
  }>;
25
25
  export type WireReloadOptions = Static<typeof WireReloadOptionsSchema>;
26
26
  /** A child's prepared reload, sent with its vote (same fields as `ReloadReport`, without children). */
27
- declare const WireReloadReportSchema: Type.TObject<{
28
- codeVersion: Type.TInteger;
29
- previous: Type.TInteger;
30
- changed: Type.TImmutable<Type.TArray<Type.TString>>;
31
- removed: Type.TImmutable<Type.TArray<Type.TString>>;
32
- prepared: Type.TImmutable<Type.TArray<Type.TString>>;
33
- gated: Type.TImmutable<Type.TArray<Type.TString>>;
27
+ declare const WireReloadReportSchema: Schema<{
28
+ codeVersion: number;
29
+ previous: number;
30
+ changed: readonly string[];
31
+ removed: readonly string[];
32
+ prepared: readonly string[];
33
+ gated: readonly string[];
34
34
  }>;
35
35
  export type WireReloadReport = Static<typeof WireReloadReportSchema>;
36
- declare const FrameSchema: Type.TUnion<[Type.TObject<{
37
- t: Type.TLiteral<"hello">;
38
- /** The link protocol version (`PROTOCOL_VERSION`; absent: 1). Peers of another version close the link. */
39
- protocol: Type.TOptional<Type.TInteger>;
40
- name: Type.TString;
41
- kind: Type.TUnion<[Type.TLiteral<"host">, Type.TLiteral<"client">]>;
42
- codeVersion: Type.TInteger;
43
- /** The sender acknowledges what it receives (`ack`). Flow control applies only when both hellos say so. */
44
- acks: Type.TOptional<Type.TBoolean>;
45
- }>, Type.TObject<{
46
- t: Type.TLiteral<"ack">;
47
- n: Type.TInteger;
48
- }>, Type.TObject<{
49
- t: Type.TLiteral<"hold">;
50
- id: Type.TInteger;
51
- /**
52
- * Target host name, resolved by the consumer from the token's `host` and `input`. Relays route on it after
53
- * checking it against both; the target refuses an input its own contract places elsewhere.
54
- */
55
- at: Type.TString;
56
- /** The consumer's contract token; the provider checks that it covers it. Remote tokens carry `host`. */
57
- token: Type.TObject<{
58
- name: Type.TString;
59
- scope: Type.TUnion<[Type.TLiteral<"remote">, Type.TLiteral<"local">]>;
60
- version: Type.TInteger;
61
- input: Type.TUnsafe<TSchema>;
62
- host: Type.TOptional<Type.TUnion<[Type.TObject<{
63
- name: Type.TString;
64
- }>, Type.TObject<{
65
- prefix: Type.TString;
66
- key: Type.TString;
67
- }>]>>;
68
- variants: Type.TRecord<"^.*$", Type.TRecord<"^.*$", Type.TUnion<[Type.TObject<{
69
- kind: Type.TLiteral<"method">;
70
- args: Type.TOptional<Type.TUnsafe<TSchema>>;
71
- result: Type.TOptional<Type.TUnsafe<TSchema>>;
72
- }>, Type.TObject<{
73
- kind: Type.TLiteral<"state">;
74
- schema: Type.TUnsafe<TSchema>;
75
- }>, Type.TObject<{
76
- kind: Type.TLiteral<"opaque">;
77
- id: Type.TString;
78
- }>]>>>;
79
- }>;
80
- /** Normalized with the consumer's contract. */
81
- input: Type.TUnknown;
82
- /** A forwarded principal. Honored only on frames from the parent link. */
83
- principal: Type.TOptional<Type.TUnknown>;
84
- /**
85
- * The client connection the hold comes from: an opaque id the server assigned to it, forwarded by relays. Honored
86
- * only on frames from the parent link; present means the hold is a client's (not a reload participant).
87
- */
88
- origin: Type.TOptional<Type.TString>;
89
- /** False: no state for this hold until `sub` (a method-only binding). */
90
- state: Type.TOptional<Type.TLiteral<false>>;
91
- /** The consumer already has values (a re-hold after a link loss): its unit is not urgent. */
92
- again: Type.TOptional<Type.TLiteral<true>>;
93
- }>, Type.TObject<{
94
- t: Type.TLiteral<"release">;
95
- id: Type.TInteger;
96
- }>, Type.TObject<{
97
- t: Type.TLiteral<"shape">;
98
- id: Type.TInteger;
99
- variant: Type.TOptional<Type.TString>;
100
- members: Type.TImmutable<Type.TArray<Type.TString>>;
101
- contract: Type.TString;
102
- /** The state members whose snapshots follow this frame; the consumer applies the shape once they are here. */
103
- state: Type.TImmutable<Type.TArray<Type.TString>>;
104
- }>, Type.TObject<{
105
- t: Type.TLiteral<"gone">;
106
- id: Type.TInteger;
107
- error: Type.TObject<{
108
- code: Type.TEnum<["aborted", "contract_mismatch", "forbidden", "gone", "invalid", "not_in_variant", "not_ready", "released", "superseded", "unavailable", "upgrade_conflict", "upgrade_required"]>;
109
- message: Type.TString;
110
- reason: Type.TOptional<Type.TString>;
111
- }>;
112
- }>, Type.TObject<{
113
- t: Type.TLiteral<"call">;
114
- id: Type.TInteger;
115
- hold: Type.TInteger;
116
- member: Type.TString;
117
- args: Type.TOptional<Type.TUnknown>;
118
- /** Absent: the receiving host starts a root (browsers never carry roots). */
119
- root: Type.TOptional<Type.TObject<{
120
- rootId: Type.TString;
121
- codeVersion: Type.TInteger;
122
- }>>;
123
- }>, Type.TObject<{
124
- t: Type.TLiteral<"result">;
125
- id: Type.TInteger;
126
- value: Type.TOptional<Type.TUnknown>;
127
- error: Type.TOptional<Type.TObject<{
128
- code: Type.TEnum<["aborted", "contract_mismatch", "forbidden", "gone", "invalid", "not_in_variant", "not_ready", "released", "superseded", "unavailable", "upgrade_conflict", "upgrade_required"]>;
129
- message: Type.TString;
130
- reason: Type.TOptional<Type.TString>;
131
- }>>;
132
- }>, Type.TObject<{
133
- t: Type.TLiteral<"cancel">;
134
- id: Type.TInteger;
135
- }>, Type.TObject<{
136
- t: Type.TLiteral<"sub">;
137
- hold: Type.TInteger;
138
- }>, Type.TObject<{
139
- t: Type.TLiteral<"unsub">;
140
- hold: Type.TInteger;
141
- }>, Type.TObject<{
142
- t: Type.TLiteral<"resync">;
143
- hold: Type.TInteger;
144
- m: Type.TString;
145
- }>, Type.TObject<{
146
- t: Type.TLiteral<"state">;
147
- hold: Type.TInteger;
148
- m: Type.TString;
149
- /** `snap`/`reset` without `value`: the value is `undefined`. */
150
- as: Type.TUnion<[Type.TLiteral<"snap">, Type.TLiteral<"reset">, Type.TLiteral<"ops">, Type.TLiteral<"error">]>;
151
- value: Type.TOptional<Type.TUnknown>;
152
- /** Encoded with the stream's delta encoder; the decoder validates each op. */
153
- ops: Type.TOptional<Type.TImmutable<Type.TArray<Type.TImmutable<Type.TArray<Type.TUnknown>>>>>;
154
- error: Type.TOptional<Type.TObject<{
155
- code: Type.TEnum<["aborted", "contract_mismatch", "forbidden", "gone", "invalid", "not_in_variant", "not_ready", "released", "superseded", "unavailable", "upgrade_conflict", "upgrade_required"]>;
156
- message: Type.TString;
157
- reason: Type.TOptional<Type.TString>;
158
- }>>;
159
- }>, Type.TObject<{
160
- t: Type.TLiteral<"ping">;
161
- n: Type.TInteger;
162
- }>, Type.TObject<{
163
- t: Type.TLiteral<"pong">;
164
- n: Type.TInteger;
165
- }>, Type.TObject<{
166
- t: Type.TLiteral<"bye">;
167
- reason: Type.TOptional<Type.TString>;
168
- }>, Type.TObject<{
169
- t: Type.TLiteral<"root_end">;
170
- rootId: Type.TString;
171
- }>, Type.TObject<{
172
- t: Type.TLiteral<"invalidate">;
173
- pattern: Type.TRecord<"^.*$", Type.TUnknown>;
174
- }>, Type.TObject<{
175
- t: Type.TLiteral<"prepare">;
176
- reload: Type.TInteger;
177
- codeVersion: Type.TInteger;
178
- plugins: Type.TImmutable<Type.TArray<Type.TString>>;
179
- options: Type.TObject<{
180
- remove: Type.TOptional<Type.TImmutable<Type.TArray<Type.TString>>>;
181
- gateDeadline: Type.TOptional<Type.TNumber>;
182
- retireDeadline: Type.TOptional<Type.TNumber>;
183
- }>;
184
- }>, Type.TObject<{
185
- t: Type.TLiteral<"vote">;
186
- reload: Type.TInteger;
187
- error: Type.TOptional<Type.TObject<{
188
- code: Type.TEnum<["aborted", "contract_mismatch", "forbidden", "gone", "invalid", "not_in_variant", "not_ready", "released", "superseded", "unavailable", "upgrade_conflict", "upgrade_required"]>;
189
- message: Type.TString;
190
- reason: Type.TOptional<Type.TString>;
191
- }>>;
192
- report: Type.TOptional<Type.TObject<{
193
- codeVersion: Type.TInteger;
194
- previous: Type.TInteger;
195
- changed: Type.TImmutable<Type.TArray<Type.TString>>;
196
- removed: Type.TImmutable<Type.TArray<Type.TString>>;
197
- prepared: Type.TImmutable<Type.TArray<Type.TString>>;
198
- gated: Type.TImmutable<Type.TArray<Type.TString>>;
199
- }>>;
200
- }>, Type.TObject<{
201
- t: Type.TLiteral<"commit">;
202
- reload: Type.TInteger;
203
- }>, Type.TObject<{
204
- t: Type.TLiteral<"retire">;
205
- codeVersion: Type.TInteger;
206
- }>, Type.TObject<{
207
- t: Type.TLiteral<"abort">;
208
- reload: Type.TInteger;
209
- }>]>;
36
+ declare const FrameSchema: Schema<{
37
+ t: "hello";
38
+ protocol?: number | undefined;
39
+ name: string;
40
+ kind: "client" | "host";
41
+ codeVersion: number;
42
+ acks?: boolean | undefined;
43
+ } | {
44
+ t: "ack";
45
+ n: number;
46
+ } | {
47
+ t: "hold";
48
+ id: number;
49
+ at: string;
50
+ token: {
51
+ name: string;
52
+ scope: "local" | "remote";
53
+ version: number;
54
+ input: Schema;
55
+ host?: {
56
+ name: string;
57
+ } | {
58
+ prefix: string;
59
+ key: string;
60
+ } | undefined;
61
+ variants: Record<string, Record<string, {
62
+ kind: "method";
63
+ args?: Schema | undefined;
64
+ result?: Schema | undefined;
65
+ } | {
66
+ kind: "state";
67
+ schema: Schema;
68
+ } | {
69
+ kind: "opaque";
70
+ id: string;
71
+ }>>;
72
+ };
73
+ input: unknown;
74
+ principal?: unknown;
75
+ origin?: string | undefined;
76
+ state?: false | undefined;
77
+ again?: true | undefined;
78
+ } | {
79
+ t: "release";
80
+ id: number;
81
+ } | {
82
+ t: "shape";
83
+ id: number;
84
+ variant?: string | undefined;
85
+ members: readonly string[];
86
+ contract: string;
87
+ state: readonly string[];
88
+ } | {
89
+ t: "gone";
90
+ id: number;
91
+ error: {
92
+ code: "aborted" | "contract_mismatch" | "forbidden" | "gone" | "invalid" | "not_in_variant" | "not_ready" | "released" | "superseded" | "unavailable" | "upgrade_conflict" | "upgrade_required";
93
+ message: string;
94
+ reason?: string | undefined;
95
+ };
96
+ } | {
97
+ t: "call";
98
+ id: number;
99
+ hold: number;
100
+ member: string;
101
+ args?: unknown;
102
+ root?: {
103
+ rootId: string;
104
+ codeVersion: number;
105
+ } | undefined;
106
+ } | {
107
+ t: "result";
108
+ id: number;
109
+ value?: unknown;
110
+ error?: {
111
+ code: "aborted" | "contract_mismatch" | "forbidden" | "gone" | "invalid" | "not_in_variant" | "not_ready" | "released" | "superseded" | "unavailable" | "upgrade_conflict" | "upgrade_required";
112
+ message: string;
113
+ reason?: string | undefined;
114
+ } | undefined;
115
+ } | {
116
+ t: "cancel";
117
+ id: number;
118
+ } | {
119
+ t: "sub";
120
+ hold: number;
121
+ } | {
122
+ t: "unsub";
123
+ hold: number;
124
+ } | {
125
+ t: "resync";
126
+ hold: number;
127
+ m: string;
128
+ } | {
129
+ t: "state";
130
+ hold: number;
131
+ m: string;
132
+ as: "error" | "ops" | "reset" | "snap";
133
+ value?: unknown;
134
+ ops?: readonly (readonly unknown[])[] | undefined;
135
+ error?: {
136
+ code: "aborted" | "contract_mismatch" | "forbidden" | "gone" | "invalid" | "not_in_variant" | "not_ready" | "released" | "superseded" | "unavailable" | "upgrade_conflict" | "upgrade_required";
137
+ message: string;
138
+ reason?: string | undefined;
139
+ } | undefined;
140
+ } | {
141
+ t: "ping";
142
+ n: number;
143
+ } | {
144
+ t: "pong";
145
+ n: number;
146
+ } | {
147
+ t: "bye";
148
+ reason?: string | undefined;
149
+ } | {
150
+ t: "root_end";
151
+ rootId: string;
152
+ } | {
153
+ t: "invalidate";
154
+ pattern: Record<string, unknown>;
155
+ } | {
156
+ t: "prepare";
157
+ reload: number;
158
+ codeVersion: number;
159
+ plugins: readonly string[];
160
+ options: {
161
+ remove?: readonly string[] | undefined;
162
+ gateDeadline?: number | undefined;
163
+ retireDeadline?: number | undefined;
164
+ };
165
+ } | {
166
+ t: "vote";
167
+ reload: number;
168
+ error?: {
169
+ code: "aborted" | "contract_mismatch" | "forbidden" | "gone" | "invalid" | "not_in_variant" | "not_ready" | "released" | "superseded" | "unavailable" | "upgrade_conflict" | "upgrade_required";
170
+ message: string;
171
+ reason?: string | undefined;
172
+ } | undefined;
173
+ report?: {
174
+ codeVersion: number;
175
+ previous: number;
176
+ changed: readonly string[];
177
+ removed: readonly string[];
178
+ prepared: readonly string[];
179
+ gated: readonly string[];
180
+ } | undefined;
181
+ } | {
182
+ t: "commit";
183
+ reload: number;
184
+ } | {
185
+ t: "retire";
186
+ codeVersion: number;
187
+ } | {
188
+ t: "abort";
189
+ reload: number;
190
+ }>;
210
191
  export type Frame = Static<typeof FrameSchema>;
211
192
  /** A frame that passes validation; anything else is a protocol violation. */
212
193
  export declare const isFrame: (value: unknown) => value is Frame;
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG1D,OAAO,EAAqB,UAAU,EAAE,MAAM,aAAa,CAAC;AAe5D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAQlC,QAAA,MAAM,aAAa;;;EAA2E,CAAC;AAC/F,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAEnD,QAAA,MAAM,eAAe;;;;EAInB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAEvD,QAAA,MAAM,uBAAuB;;;;EAI3B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEvE,uGAAuG;AACvG,QAAA,MAAM,sBAAsB;;;;;;;EAO1B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,QAAA,MAAM,WAAW;;IAGf,0GAA0G;;;;;IAK1G,2GAA2G;;;;;;;;IAQ3G;;;OAGG;;IAEH,wGAAwG;;;;;;;;;;;;;;;;;;;;;;;;IAExG,+CAA+C;;IAE/C,0EAA0E;;IAE1E;;;OAGG;;IAEH,yEAAyE;;IAEzE,6FAA6F;;;;;;;;;;;IAU7F,8GAA8G;;;;;;;;;;;;;;;;IAU9G,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoB7E,gEAAgE;;;IAGhE,8EAA8E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4B9E,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAE/C,6EAA6E;AAC7E,eAAO,MAAM,OAAO,UAAW,OAAO,KAAG,KAAK,IAAI,KAAwC,CAAC;AAE3F,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAOrD;AAED,eAAO,MAAM,aAAa,UAAW,SAAS,KAAG,UACyD,CAAC"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAYN,KAAK,MAAM,EACX,KAAK,MAAM,EAIX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAqB,UAAU,EAAE,MAAM,aAAa,CAAC;AAe5D;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAUlC,QAAA,MAAM,aAAa;;;EAA2D,CAAC;AAC/E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AAEnD,QAAA,MAAM,eAAe;;;;EAInB,CAAC;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAEvD,QAAA,MAAM,uBAAuB;;;;EAI3B,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEvE,uGAAuG;AACvG,QAAA,MAAM,sBAAsB;;;;;;;EAO1B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyGf,CAAC;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAE/C,6EAA6E;AAC7E,eAAO,MAAM,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,KAAkC,CAAC;AAEtF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAOrD;AAED,eAAO,MAAM,aAAa,UAAW,SAAS,KAAG,UACyD,CAAC"}