@earendil-works/chord 1.3.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 (841) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +129 -10
  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 +8 -0
  7. package/dist/context/index.d.ts.map +1 -1
  8. package/dist/context/index.js +15 -0
  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 +9 -3
  743. package/dist/output.d.ts.map +1 -1
  744. package/dist/output.js +21 -9
  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 +54 -0
  754. package/dist/sqlite/cloudflare.d.ts.map +1 -0
  755. package/dist/sqlite/cloudflare.js +144 -0
  756. package/dist/sqlite/cloudflare.js.map +1 -0
  757. package/dist/sqlite/database.d.ts +40 -0
  758. package/dist/sqlite/database.d.ts.map +1 -0
  759. package/dist/sqlite/database.js +2 -0
  760. package/dist/sqlite/database.js.map +1 -0
  761. package/dist/sqlite/index.d.ts +4 -0
  762. package/dist/sqlite/index.d.ts.map +1 -0
  763. package/dist/sqlite/index.js +3 -0
  764. package/dist/sqlite/index.js.map +1 -0
  765. package/dist/sqlite/migrations.d.ts +10 -0
  766. package/dist/sqlite/migrations.d.ts.map +1 -0
  767. package/dist/sqlite/migrations.js +33 -0
  768. package/dist/sqlite/migrations.js.map +1 -0
  769. package/dist/sqlite/node.d.ts +41 -0
  770. package/dist/sqlite/node.d.ts.map +1 -0
  771. package/dist/sqlite/node.js +191 -0
  772. package/dist/sqlite/node.js.map +1 -0
  773. package/dist/sqlite/schema.d.ts +3 -0
  774. package/dist/sqlite/schema.d.ts.map +1 -0
  775. package/dist/sqlite/schema.js +10 -0
  776. package/dist/sqlite/schema.js.map +1 -0
  777. package/dist/telemetry-sqlite/index.d.ts +24 -0
  778. package/dist/telemetry-sqlite/index.d.ts.map +1 -0
  779. package/dist/telemetry-sqlite/index.js +273 -0
  780. package/dist/telemetry-sqlite/index.js.map +1 -0
  781. package/dist/telemetry-sqlite/store.d.ts +9 -0
  782. package/dist/telemetry-sqlite/store.d.ts.map +1 -0
  783. package/dist/telemetry-sqlite/store.js +110 -0
  784. package/dist/telemetry-sqlite/store.js.map +1 -0
  785. package/dist/watch.d.ts +194 -0
  786. package/dist/watch.d.ts.map +1 -0
  787. package/dist/watch.js +383 -0
  788. package/dist/watch.js.map +1 -0
  789. package/dist/wire.d.ts +174 -193
  790. package/dist/wire.d.ts.map +1 -1
  791. package/dist/wire.js +81 -80
  792. package/dist/wire.js.map +1 -1
  793. package/docs/guide.md +15 -15
  794. package/docs/next/benchmarks.md +959 -0
  795. package/docs/next/decisions.md +2957 -0
  796. package/docs/next/dependencies/book.md +1671 -0
  797. package/docs/next/dependencies/index.html +2641 -0
  798. package/docs/next/dependencies/model.md +330 -0
  799. package/docs/next/design.md +2554 -0
  800. package/docs/next/durable-observers/book.md +432 -0
  801. package/docs/next/durable-observers/index.html +517 -0
  802. package/docs/next/flow-control/book.md +333 -0
  803. package/docs/next/flow-control/fold/index.html +265 -0
  804. package/docs/next/flow-control/index.html +548 -0
  805. package/docs/next/flow-control/window/index.html +228 -0
  806. package/docs/next/guide-plugins-hosts/book.md +607 -0
  807. package/docs/next/guide-plugins-hosts/index.html +652 -0
  808. package/docs/next/http-workers/book.md +378 -0
  809. package/docs/next/http-workers/index.html +515 -0
  810. package/docs/next/layer-1.md +311 -0
  811. package/docs/next/layer-2.md +216 -0
  812. package/docs/next/plugin-model/book.md +186 -0
  813. package/docs/next/plugin-model/index.html +310 -0
  814. package/docs/next/plugin-primer/book.md +273 -0
  815. package/docs/next/plugin-primer/index.html +430 -0
  816. package/docs/next/slice-1.md +236 -0
  817. package/docs/next/slice-10.md +285 -0
  818. package/docs/next/slice-11.md +93 -0
  819. package/docs/next/slice-2.md +174 -0
  820. package/docs/next/slice-3a.md +296 -0
  821. package/docs/next/slice-3b.md +197 -0
  822. package/docs/next/slice-4.md +146 -0
  823. package/docs/next/slice-4a.md +418 -0
  824. package/docs/next/slice-4b.md +208 -0
  825. package/docs/next/slice-5.md +281 -0
  826. package/docs/next/slice-6a.md +676 -0
  827. package/docs/next/slice-6b.md +332 -0
  828. package/docs/next/slice-7a.md +130 -0
  829. package/docs/next/slice-7b/book.md +608 -0
  830. package/docs/next/slice-7b/index.html +842 -0
  831. package/docs/next/slice-7b.md +255 -0
  832. package/docs/next/slice-7c.md +165 -0
  833. package/docs/next/slice-8.md +194 -0
  834. package/docs/next/slices.md +230 -0
  835. package/docs/next/store/book.md +665 -0
  836. package/docs/next/store/index.html +861 -0
  837. package/docs/next/store/walkthrough.md +193 -0
  838. package/docs/spec.md +9 -9
  839. package/docs/tutorial.md +26 -25
  840. package/package.json +42 -5
  841. package/src/delta/README.md +69 -0
@@ -0,0 +1,55 @@
1
+ // A persisted run's record (slice 6b §4.1, D5): the document each unsettled run of a persisted job keeps in its
2
+ // object's store (namespace `chord.jobs`, kind the job name, key the run id), and the conversion of an outcome to and
3
+ // from it. Errors are stored in the wire error format, so a `PluginError`'s code, message and details survive.
4
+ import { errorFromWire, wireError } from "../link/internal.js";
5
+ /**
6
+ * The record documents' version and fingerprint (Chord's own documents: no definition, no `migrate`; a new record
7
+ * shape raises the version).
8
+ */
9
+ export const RUN_RECORD = { version: 1, fingerprint: "chord.job-run.1" };
10
+ /** `run`'s record as stored with `fields` changed (its own version and fingerprint). */
11
+ export function storedRun(run, fields = {}) {
12
+ const { version, fingerprint, args, key, trace } = run;
13
+ const { phase, restarts, finishFailures, abortMarked, blocked, outcome } = { ...pick(run), ...fields };
14
+ return {
15
+ version,
16
+ fingerprint,
17
+ args,
18
+ ...(key === undefined ? {} : { key }),
19
+ ...(trace === undefined ? {} : { trace }),
20
+ phase,
21
+ restarts,
22
+ finishFailures,
23
+ ...(abortMarked ? { abort: true } : {}),
24
+ ...(blocked === undefined ? {} : { blocked }),
25
+ ...(outcome === undefined ? {} : { outcome: storedOutcome(outcome) }),
26
+ };
27
+ }
28
+ /** The fields of `run` a record stores that change. */
29
+ function pick(run) {
30
+ const { phase, restarts, finishFailures, blocked, outcome } = run;
31
+ return { phase, restarts, finishFailures, ...(run.abortMarked ? { abortMarked: true } : {}), blocked, outcome };
32
+ }
33
+ /** An outcome as stored: a result as it is (JSON: persisted jobs refuse `bytes()`), an error in the wire format. */
34
+ function storedOutcome(outcome) {
35
+ if (outcome.kind === "done")
36
+ return { kind: "done", result: outcome.result };
37
+ return { kind: "failed", error: storedError(outcome.error) };
38
+ }
39
+ function storedError(error) {
40
+ return error.kind === "threw" ? { kind: "threw", error: wireError(error.error) } : error;
41
+ }
42
+ /** The outcome a stored one stands for, rebuilt as the in-memory one (`id`, `args` and `state` from the run). */
43
+ export function outcomeOf(stored, id, args, state) {
44
+ if (stored.kind === "done")
45
+ return { id, args, state, kind: "done", result: stored.result };
46
+ const { error } = stored;
47
+ const rebuilt = error.kind === "threw" ? { kind: "threw", error: errorFromWire(error.error) } : error;
48
+ return { id, args, state, kind: "failed", error: rebuilt };
49
+ }
50
+ /** A stored record as Chord wrote it (the record definition's value, a JSON object). */
51
+ export function recordOf(value) {
52
+ // Chord's own document: `storedRun` wrote it.
53
+ return value;
54
+ }
55
+ //# sourceMappingURL=stored.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stored.js","sourceRoot":"","sources":["../../../src/next/jobs/stored.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,sHAAsH;AACtH,+GAA+G;AAI/G,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA+B/D;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,iBAAiB,EAAW,CAAC;AAYlF,wFAAwF;AACxF,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,MAAM,GAAiB,EAAE;IAC/D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IACvD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACvG,OAAO;QACN,OAAO;QACP,WAAW;QACX,IAAI;QACJ,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;QACrC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,KAAK;QACL,QAAQ;QACR,cAAc;QACd,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;KACrE,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,SAAS,IAAI,CAAC,GAAW;IACxB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IAClE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACjH,CAAC;AAED,oHAAoH;AACpH,SAAS,aAAa,CAAC,OAAmB;IACzC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAmB,EAAE,CAAC;IAC1F,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,WAAW,CAAC,KAAe;IACnC,OAAO,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1F,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,SAAS,CACxB,MAAqB,EACrB,EAAU,EACV,IAAe,EACf,KAA4B;IAE5B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC5F,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACzB,MAAM,OAAO,GAAa,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAChH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,QAAQ,CAAC,KAAiB;IACzC,8CAA8C;IAC9C,OAAO,KAA6B,CAAC;AACtC,CAAC","sourcesContent":["// A persisted run's record (slice 6b §4.1, D5): the document each unsettled run of a persisted job keeps in its\n// object's store (namespace `chord.jobs`, kind the job name, key the run id), and the conversion of an outcome to and\n// from it. Errors are stored in the wire error format, so a `PluginError`'s code, message and details survive.\n\nimport type { JsonValue } from \"../../json.ts\";\nimport type { JsonObject } from \"../documents/index.ts\";\nimport { errorFromWire, wireError } from \"../link/internal.ts\";\nimport type { WireError } from \"../link/message.ts\";\nimport type { JobError } from \"./definition.ts\";\nimport type { AnyOutcome, BlockedReason, JobRun, Phase } from \"./run.ts\";\n\n/** How a run failed, as stored: a thrown error in the wire format, an abort, the restart limit. */\nexport type StoredJobError =\n\t| { readonly kind: \"threw\"; readonly error: WireError }\n\t| { readonly kind: \"aborted\"; readonly reason: \"abort\" | \"reload\" | \"restart\" }\n\t| { readonly kind: \"restart_limit\"; readonly restarts: number };\n\n/** A run's outcome as stored: its result, or how it failed. */\nexport type StoredOutcome =\n\t| { readonly kind: \"done\"; readonly result: JsonValue }\n\t| { readonly kind: \"failed\"; readonly error: StoredJobError };\n\n/** The record document of one unsettled persisted run. */\nexport type StoredRun = {\n\treadonly version: number;\n\treadonly fingerprint: string;\n\treadonly args: JsonValue;\n\treadonly key?: string;\n\treadonly trace?: { readonly [key: string]: string };\n\treadonly phase: Phase;\n\treadonly restarts: number;\n\treadonly finishFailures: number;\n\treadonly abort?: true;\n\treadonly blocked?: BlockedReason;\n\treadonly outcome?: StoredOutcome;\n};\n\n/**\n * The record documents' version and fingerprint (Chord's own documents: no definition, no `migrate`; a new record\n * shape raises the version).\n */\nexport const RUN_RECORD = { version: 1, fingerprint: \"chord.job-run.1\" } as const;\n\n/** What a change sets on a run's record; the rest is the run's own. */\nexport type StoredFields = {\n\treadonly phase?: Phase;\n\treadonly restarts?: number;\n\treadonly finishFailures?: number;\n\treadonly abortMarked?: true;\n\treadonly blocked?: BlockedReason;\n\treadonly outcome?: AnyOutcome;\n};\n\n/** `run`'s record as stored with `fields` changed (its own version and fingerprint). */\nexport function storedRun(run: JobRun, fields: StoredFields = {}): StoredRun {\n\tconst { version, fingerprint, args, key, trace } = run;\n\tconst { phase, restarts, finishFailures, abortMarked, blocked, outcome } = { ...pick(run), ...fields };\n\treturn {\n\t\tversion,\n\t\tfingerprint,\n\t\targs,\n\t\t...(key === undefined ? {} : { key }),\n\t\t...(trace === undefined ? {} : { trace }),\n\t\tphase,\n\t\trestarts,\n\t\tfinishFailures,\n\t\t...(abortMarked ? { abort: true as const } : {}),\n\t\t...(blocked === undefined ? {} : { blocked }),\n\t\t...(outcome === undefined ? {} : { outcome: storedOutcome(outcome) }),\n\t};\n}\n\n/** The fields of `run` a record stores that change. */\nfunction pick(run: JobRun): Required<Omit<StoredFields, \"blocked\" | \"outcome\" | \"abortMarked\">> & StoredFields {\n\tconst { phase, restarts, finishFailures, blocked, outcome } = run;\n\treturn { phase, restarts, finishFailures, ...(run.abortMarked ? { abortMarked: true } : {}), blocked, outcome };\n}\n\n/** An outcome as stored: a result as it is (JSON: persisted jobs refuse `bytes()`), an error in the wire format. */\nfunction storedOutcome(outcome: AnyOutcome): StoredOutcome {\n\tif (outcome.kind === \"done\") return { kind: \"done\", result: outcome.result as JsonValue };\n\treturn { kind: \"failed\", error: storedError(outcome.error) };\n}\n\nfunction storedError(error: JobError): StoredJobError {\n\treturn error.kind === \"threw\" ? { kind: \"threw\", error: wireError(error.error) } : error;\n}\n\n/** The outcome a stored one stands for, rebuilt as the in-memory one (`id`, `args` and `state` from the run). */\nexport function outcomeOf(\n\tstored: StoredOutcome,\n\tid: string,\n\targs: JsonValue,\n\tstate: JsonValue | undefined,\n): AnyOutcome {\n\tif (stored.kind === \"done\") return { id, args, state, kind: \"done\", result: stored.result };\n\tconst { error } = stored;\n\tconst rebuilt: JobError = error.kind === \"threw\" ? { kind: \"threw\", error: errorFromWire(error.error) } : error;\n\treturn { id, args, state, kind: \"failed\", error: rebuilt };\n}\n\n/** A stored record as Chord wrote it (the record definition's value, a JSON object). */\nexport function recordOf(value: JsonObject): StoredRun {\n\t// Chord's own document: `storedRun` wrote it.\n\treturn value as unknown as StoredRun;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { type Codec } from "./message.ts";
2
+ /** Messages as bytes; the default codec of every link. */
3
+ export declare const binaryCodec: Codec;
4
+ //# sourceMappingURL=binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../src/next/link/binary.ts"],"names":[],"mappings":"AAMA,OAAO,EAGN,KAAK,KAAK,EAKV,MAAM,cAAc,CAAC;AAkDtB,0DAA0D;AAC1D,eAAO,MAAM,WAAW,EAAE,KA0BzB,CAAC"}
@@ -0,0 +1,534 @@
1
+ // The binary codec (2b): a kind byte (its high bit set when an origin follows as a varint), then the kind's fields as
2
+ // unsigned varints, length-prefixed UTF-8 strings, raw incarnation (16 bytes) and fingerprint (8 bytes), parts as
3
+ // length-prefixed bytes whose prefix also says whether the part is deflated (decoded as views of the message, never
4
+ // parsed or inflated here), and byte segments only beside payloads marked as carrying bytes. No outer length: links
5
+ // deliver whole messages.
6
+ import { CAUSE_KINDS, NO_RETIRED, } from "./message.js";
7
+ import { DeflatedPart } from "./part.js";
8
+ import { parseJson, readUtf8 } from "./values.js";
9
+ const UTF8 = new TextEncoder();
10
+ /** Kinds by their byte. */
11
+ const KINDS = [
12
+ "hello",
13
+ "hold",
14
+ "release",
15
+ "call",
16
+ "abort",
17
+ "bound",
18
+ "state",
19
+ "failed",
20
+ "result",
21
+ "error",
22
+ "gone",
23
+ "retry",
24
+ "loading",
25
+ "ack",
26
+ "closed",
27
+ "ping",
28
+ "pong",
29
+ "revoke",
30
+ ];
31
+ const KIND_BYTES = new Map(KINDS.map((kind, byte) => [kind, byte]));
32
+ /** The kind byte's flag for an origin. */
33
+ const ORIGIN = 0x80;
34
+ /** A payload's flags: present, and carrying byte segments. */
35
+ const PRESENT = 1;
36
+ const SEGMENTS = 2;
37
+ /** A hold's optional fields, one bit each. */
38
+ const PRINCIPAL = 1;
39
+ const INCARNATION = 2;
40
+ const CHAIN = 4;
41
+ const LIMIT = 8;
42
+ /** A part's length prefix is its length doubled, plus one when the part is deflated. */
43
+ const DEFLATED = 1;
44
+ /** Messages as bytes; the default codec of every link. */
45
+ export const binaryCodec = {
46
+ name: "binary",
47
+ encode(message) {
48
+ const writer = new Writer();
49
+ const origin = "origin" in message ? message.origin : undefined;
50
+ if (origin === undefined) {
51
+ writer.byte(KIND_BYTES.get(message.kind));
52
+ }
53
+ else {
54
+ writer.byte(KIND_BYTES.get(message.kind) | ORIGIN);
55
+ writer.varint(origin);
56
+ }
57
+ encodeFields(message, writer);
58
+ return writer.finish();
59
+ },
60
+ decode(bytes) {
61
+ const reader = new Reader(bytes);
62
+ const byte = reader.byte();
63
+ const origin = byte & ORIGIN ? reader.varint() : undefined;
64
+ const kind = KINDS[byte & ~ORIGIN];
65
+ if (kind === undefined)
66
+ throw new Error("binary: an unknown kind");
67
+ const message = decodeFields(kind, reader);
68
+ reader.end();
69
+ // A fresh object; the message schema refuses an origin on a kind without one.
70
+ if (origin !== undefined)
71
+ message.origin = origin;
72
+ return message;
73
+ },
74
+ };
75
+ function encodeFields(message, writer) {
76
+ switch (message.kind) {
77
+ case "hello":
78
+ writer.varint(message.protocol);
79
+ writer.raw(hex(message.incarnation.replaceAll("-", ""), 16));
80
+ writer.varint(message.calls);
81
+ return;
82
+ case "hold": {
83
+ writer.varint(message.hold);
84
+ writer.string(message.type);
85
+ writer.varint(message.version);
86
+ writer.raw(hex(message.fingerprint, 8));
87
+ writer.part(message.params);
88
+ const { address, principal, incarnation, chain, limit } = message;
89
+ writer.string(address.kind);
90
+ writer.json(address.params);
91
+ writer.byte((principal === undefined ? 0 : PRINCIPAL) |
92
+ (incarnation === undefined ? 0 : INCARNATION) |
93
+ (chain === undefined ? 0 : CHAIN) |
94
+ (limit === undefined ? 0 : LIMIT));
95
+ if (principal !== undefined)
96
+ writer.json(principal);
97
+ if (incarnation !== undefined)
98
+ writer.raw(hex(incarnation.replaceAll("-", ""), 16));
99
+ if (chain !== undefined) {
100
+ writer.varint(chain.length);
101
+ for (const instance of chain)
102
+ writer.raw(hex(instance.replaceAll("-", ""), 16));
103
+ }
104
+ if (limit !== undefined)
105
+ writer.varint(limit);
106
+ return;
107
+ }
108
+ case "release":
109
+ case "loading":
110
+ writer.varint(message.hold);
111
+ return;
112
+ case "retry":
113
+ writer.varint(message.hold);
114
+ writer.varint(message.hops);
115
+ return;
116
+ case "call":
117
+ writer.varint(message.call);
118
+ writer.varint(message.hold);
119
+ writer.varint(message.method);
120
+ writer.payload(message.args, message.segments);
121
+ return;
122
+ case "abort":
123
+ writer.varint(message.call);
124
+ return;
125
+ case "bound":
126
+ writer.varint(message.holds.length);
127
+ for (const { hold, variant, members, failed } of message.holds) {
128
+ writer.varint(hold);
129
+ writer.varint(variant);
130
+ writer.varint(members.length);
131
+ for (const { member, value } of members) {
132
+ writer.varint(member);
133
+ writer.part(value);
134
+ }
135
+ writer.failed(failed);
136
+ }
137
+ return;
138
+ case "state":
139
+ writer.varint(message.holds.length);
140
+ for (const { hold, members, failed, retired } of message.holds) {
141
+ writer.varint(hold);
142
+ writer.varint(members.length);
143
+ for (const { member, ops } of members) {
144
+ writer.varint(member);
145
+ writer.part(ops);
146
+ }
147
+ writer.failedAndRetired(failed, retired);
148
+ }
149
+ return;
150
+ case "failed":
151
+ writer.varint(message.hold);
152
+ writer.byte(CAUSE_KINDS.indexOf(message.cause.kind));
153
+ writer.json(message.cause.error);
154
+ // 0 when absent, else one more than the delay.
155
+ writer.varint(message.retryIn === undefined ? 0 : message.retryIn + 1);
156
+ return;
157
+ case "result":
158
+ writer.varint(message.call);
159
+ writer.payload(message.value, message.segments);
160
+ return;
161
+ case "error":
162
+ writer.varint(message.call);
163
+ writer.json(message.error);
164
+ return;
165
+ case "gone":
166
+ writer.varint(message.hold);
167
+ writer.json(message.error);
168
+ return;
169
+ case "revoke":
170
+ writer.json(message.revocation);
171
+ return;
172
+ case "ack":
173
+ case "closed":
174
+ case "ping":
175
+ case "pong":
176
+ return;
177
+ }
178
+ }
179
+ /** The kind's fields, read structurally; the envelope's types are checked by the message schema afterwards. */
180
+ function decodeFields(kind, reader) {
181
+ // The message schema establishes the types of what is read here (JSON fields are checked by it).
182
+ switch (kind) {
183
+ case "hello":
184
+ return { kind, protocol: reader.varint(), incarnation: uuid(reader.raw(16)), calls: reader.varint() };
185
+ case "hold": {
186
+ const hold = reader.varint();
187
+ const type = reader.string();
188
+ const version = reader.varint();
189
+ const fingerprint = hexText(reader.raw(8));
190
+ const params = reader.part();
191
+ const address = { kind: reader.string(), params: reader.json() };
192
+ const flags = reader.byte();
193
+ if (flags > (PRINCIPAL | INCARNATION | CHAIN | LIMIT))
194
+ throw new Error("binary: unknown hold flags");
195
+ const principal = flags & PRINCIPAL ? { principal: reader.json() } : {};
196
+ const incarnation = flags & INCARNATION ? { incarnation: uuid(reader.raw(16)) } : {};
197
+ const chain = flags & CHAIN ? { chain: reader.list(() => uuid(reader.raw(16))) } : {};
198
+ const limit = flags & LIMIT ? { limit: reader.varint() } : {};
199
+ return {
200
+ kind,
201
+ hold,
202
+ type,
203
+ version,
204
+ fingerprint,
205
+ params,
206
+ address,
207
+ ...principal,
208
+ ...incarnation,
209
+ ...chain,
210
+ ...limit,
211
+ };
212
+ }
213
+ case "release":
214
+ case "loading":
215
+ return { kind, hold: reader.varint() };
216
+ case "retry":
217
+ return { kind, hold: reader.varint(), hops: reader.varint() };
218
+ case "call": {
219
+ const [call, hold, method] = [reader.varint(), reader.varint(), reader.varint()];
220
+ return { kind, call, hold, method, ...reader.payload("args") };
221
+ }
222
+ case "abort":
223
+ return { kind, call: reader.varint() };
224
+ case "bound": {
225
+ const holds = reader.list(() => {
226
+ const [hold, variant] = [reader.varint(), reader.varint()];
227
+ const members = reader.list(() => ({ member: reader.varint(), value: reader.part() }));
228
+ return { hold, variant, members, failed: reader.failed() };
229
+ });
230
+ return { kind, holds };
231
+ }
232
+ case "state": {
233
+ const holds = reader.list(() => {
234
+ const hold = reader.varint();
235
+ const members = reader.list(() => ({ member: reader.varint(), ops: reader.part() }));
236
+ // The failure count times two, plus one when retirements follow.
237
+ const flags = reader.varint();
238
+ const failed = reader.failedEntries(Math.floor(flags / 2));
239
+ const retired = flags % 2 === 0 ? NO_RETIRED : reader.list(() => reader.varint());
240
+ return { hold, members, failed, retired };
241
+ });
242
+ return { kind, holds };
243
+ }
244
+ case "failed": {
245
+ const hold = reader.varint();
246
+ const cause = CAUSE_KINDS[reader.byte()];
247
+ if (cause === undefined)
248
+ throw new Error("binary: an unknown failure kind");
249
+ // The schema check after decoding establishes the wire error.
250
+ const error = reader.json();
251
+ const retryIn = reader.varint();
252
+ return {
253
+ kind,
254
+ hold,
255
+ cause: { kind: cause, error },
256
+ ...(retryIn === 0 ? {} : { retryIn: retryIn - 1 }),
257
+ };
258
+ }
259
+ case "result":
260
+ return { kind, call: reader.varint(), ...reader.payload("value") };
261
+ case "error":
262
+ return { kind, call: reader.varint(), error: reader.json() };
263
+ case "gone":
264
+ return { kind, hold: reader.varint(), error: reader.json() };
265
+ case "revoke":
266
+ return { kind, revocation: reader.json() };
267
+ case "ack":
268
+ case "ping":
269
+ case "pong":
270
+ return { kind };
271
+ case "closed":
272
+ // Its origin is the kind byte's; 0 without one, which the message schema refuses.
273
+ return { kind, origin: 0 };
274
+ }
275
+ }
276
+ /** Up to this many UTF-16 units a string takes at most 126 bytes, so its length is one varint byte. */
277
+ const SHORT = 42;
278
+ /** From this many UTF-16 units a string is encoded in place (below it, encoding on its own and copying is cheaper). */
279
+ const LONG = 4096;
280
+ /** The fixed length prefix of a long string: five varint bytes, up to 32 GiB (16 GiB for a part). */
281
+ const LENGTH_SLOT = 5;
282
+ /** The room left after a large chunk for the fields that follow it. */
283
+ const SPARE = 4096;
284
+ /** Writes a message into one growing buffer, right-sized at the end. */
285
+ class Writer {
286
+ /** Large enough for most small messages (a state change, a call), small enough to zero cheaply. */
287
+ #buffer = new Uint8Array(256);
288
+ #length = 0;
289
+ byte(byte) {
290
+ this.#reserve(1);
291
+ this.#buffer[this.#length++] = byte;
292
+ }
293
+ /** An unsigned LEB128 varint of a safe integer. */
294
+ varint(value) {
295
+ this.#reserve(8);
296
+ let rest = value;
297
+ while (rest >= 0x80) {
298
+ this.#buffer[this.#length++] = (rest % 0x80) | 0x80;
299
+ rest = Math.floor(rest / 0x80);
300
+ }
301
+ this.#buffer[this.#length++] = rest;
302
+ }
303
+ raw(bytes) {
304
+ this.#reserve(bytes.byteLength);
305
+ this.#buffer.set(bytes, this.#length);
306
+ this.#length += bytes.byteLength;
307
+ }
308
+ /** A length-prefixed UTF-8 string (`#text`). */
309
+ string(text) {
310
+ this.#text(text, 1);
311
+ }
312
+ json(value) {
313
+ this.string(JSON.stringify(value) ?? "null");
314
+ }
315
+ /**
316
+ * A part: its text encoded in place, or its bytes (a part received) copied as they are, behind its length doubled,
317
+ * plus one when deflated.
318
+ */
319
+ part(part) {
320
+ if (typeof part === "string") {
321
+ this.#text(part, 2);
322
+ return;
323
+ }
324
+ const bytes = part instanceof DeflatedPart ? part.bytes : part;
325
+ this.varint(bytes.byteLength * 2 + (part instanceof DeflatedPart ? DEFLATED : 0));
326
+ this.raw(bytes);
327
+ }
328
+ /**
329
+ * Text behind its UTF-8 length times `scale` (2 for a part's prefix), encoded straight into the buffer where the
330
+ * prefix is known in advance: a short text (its prefix fits one byte: at most 126 bytes, 42 UTF-16 units, divided
331
+ * by `scale`) and a long one (a snapshot's JSON, behind a fixed five-byte prefix, a padded varint, which readers
332
+ * accept). Others are encoded on their own and copied in. No text is encoded twice, and the largest value of a
333
+ * message is never copied.
334
+ */
335
+ #text(text, scale) {
336
+ if (text.length <= SHORT / scale) {
337
+ this.#reserve(1 + text.length * 3);
338
+ const { written } = UTF8.encodeInto(text, this.#buffer.subarray(this.#length + 1));
339
+ this.#buffer[this.#length] = written * scale;
340
+ this.#length += 1 + written;
341
+ return;
342
+ }
343
+ if (text.length < LONG) {
344
+ const bytes = UTF8.encode(text);
345
+ this.varint(bytes.byteLength * scale);
346
+ this.raw(bytes);
347
+ return;
348
+ }
349
+ const slot = this.#length;
350
+ // At least one byte per UTF-16 unit; more room is made when the text is not all ASCII.
351
+ this.#reserve(LENGTH_SLOT + text.length);
352
+ this.#length += LENGTH_SLOT;
353
+ let read = 0;
354
+ while (read < text.length) {
355
+ const rest = read === 0 ? text : text.slice(read);
356
+ const done = UTF8.encodeInto(rest, this.#buffer.subarray(this.#length));
357
+ read += done.read;
358
+ this.#length += done.written;
359
+ if (read < text.length)
360
+ this.#reserve(Math.max((text.length - read) * 2, 4));
361
+ }
362
+ let length = (this.#length - slot - LENGTH_SLOT) * scale;
363
+ for (let index = 0; index < LENGTH_SLOT; index++) {
364
+ this.#buffer[slot + index] = (length % 0x80) | (index < LENGTH_SLOT - 1 ? 0x80 : 0);
365
+ length = Math.floor(length / 0x80);
366
+ }
367
+ }
368
+ /** A payload: its flags, then its part and, when marked, its segments (count, lengths, raw bytes). */
369
+ payload(part, segments) {
370
+ if (part === undefined) {
371
+ this.varint(0);
372
+ return;
373
+ }
374
+ this.varint(segments === undefined ? PRESENT : PRESENT | SEGMENTS);
375
+ this.part(part);
376
+ if (segments === undefined)
377
+ return;
378
+ this.varint(segments.length);
379
+ for (const segment of segments)
380
+ this.varint(segment.byteLength);
381
+ for (const segment of segments)
382
+ this.raw(segment);
383
+ }
384
+ failed(failed) {
385
+ this.varint(failed.length);
386
+ this.#failedEntries(failed);
387
+ }
388
+ /**
389
+ * A state entry's failures and retirements: the failure count times two, plus one when retirements follow, so an
390
+ * entry without retirements costs no byte more than its failures.
391
+ */
392
+ failedAndRetired(failed, retired) {
393
+ this.varint(failed.length * 2 + (retired.length > 0 ? 1 : 0));
394
+ this.#failedEntries(failed);
395
+ if (retired.length === 0)
396
+ return;
397
+ this.varint(retired.length);
398
+ for (const member of retired)
399
+ this.varint(member);
400
+ }
401
+ #failedEntries(failed) {
402
+ for (const { member, error } of failed) {
403
+ this.varint(member);
404
+ this.json(error);
405
+ }
406
+ }
407
+ /**
408
+ * The message: a view of the buffer, or a right-sized copy when the spare room is meaningful (at least 64 bytes and
409
+ * more than an eighth of the message), so a kept message keeps at most that much beyond itself. A large message
410
+ * ends within its 4 KiB of room and is not copied.
411
+ */
412
+ finish() {
413
+ const message = this.#buffer.subarray(0, this.#length);
414
+ const spare = this.#buffer.byteLength - this.#length;
415
+ return spare >= 64 && spare * 8 > this.#length ? message.slice() : message;
416
+ }
417
+ /** Grows the buffer to fit `bytes` more: doubled, or for a large chunk to its end plus room for the small fields after it. */
418
+ #reserve(bytes) {
419
+ if (this.#length + bytes <= this.#buffer.byteLength)
420
+ return;
421
+ const grown = new Uint8Array(Math.max(this.#buffer.byteLength * 2, this.#length + bytes + SPARE));
422
+ grown.set(this.#buffer.subarray(0, this.#length));
423
+ this.#buffer = grown;
424
+ }
425
+ }
426
+ /** Reads a message's bytes; every read is bounds-checked, segments are views of the message. */
427
+ class Reader {
428
+ #bytes;
429
+ #offset = 0;
430
+ constructor(bytes) {
431
+ this.#bytes = bytes;
432
+ }
433
+ byte() {
434
+ const byte = this.#bytes[this.#offset];
435
+ if (byte === undefined)
436
+ throw new Error("binary: the message ends early");
437
+ this.#offset++;
438
+ return byte;
439
+ }
440
+ /** An unsigned LEB128 varint of at most 8 bytes, at most a safe integer. */
441
+ varint() {
442
+ let value = 0;
443
+ let scale = 1;
444
+ for (let read = 1;; read++) {
445
+ if (read > 8)
446
+ throw new Error("binary: a varint does not fit");
447
+ const byte = this.byte();
448
+ value += (byte & 0x7f) * scale;
449
+ if (value > Number.MAX_SAFE_INTEGER)
450
+ throw new Error("binary: a varint does not fit");
451
+ if (byte < 0x80)
452
+ return value;
453
+ scale *= 0x80;
454
+ }
455
+ }
456
+ raw(length) {
457
+ if (length > this.#bytes.byteLength - this.#offset)
458
+ throw new Error("binary: the message ends early");
459
+ const bytes = this.#bytes.subarray(this.#offset, this.#offset + length);
460
+ this.#offset += length;
461
+ return bytes;
462
+ }
463
+ string() {
464
+ return readUtf8(this.raw(this.varint()));
465
+ }
466
+ json() {
467
+ return parseJson(this.raw(this.varint()));
468
+ }
469
+ /** A part as a view of the message, unparsed and not inflated. */
470
+ part() {
471
+ const prefix = this.varint();
472
+ const bytes = this.raw(Math.floor(prefix / 2));
473
+ return prefix % 2 === DEFLATED ? new DeflatedPart(bytes) : bytes;
474
+ }
475
+ /** A list: its count (each element takes at least a byte, so it cannot pass the message's end), then its elements. */
476
+ list(read) {
477
+ const count = this.varint();
478
+ if (count > this.#bytes.byteLength - this.#offset)
479
+ throw new Error("binary: a count does not fit");
480
+ return Array.from({ length: count }, read);
481
+ }
482
+ /** A payload part under `key`, absent when not present, with its segments when marked as carrying them. */
483
+ payload(key) {
484
+ const flags = this.varint();
485
+ if (flags === 0)
486
+ return {};
487
+ if (flags !== PRESENT && flags !== (PRESENT | SEGMENTS))
488
+ throw new Error("binary: unknown payload flags");
489
+ const part = this.part();
490
+ if (flags === PRESENT)
491
+ return { [key]: part };
492
+ const lengths = this.list(() => this.varint());
493
+ const segments = lengths.map((length) => this.raw(length));
494
+ return { [key]: part, segments };
495
+ }
496
+ failed() {
497
+ return this.failedEntries(this.varint());
498
+ }
499
+ /** `count` failed members, as `Writer.failed` writes them after their count. */
500
+ failedEntries(count) {
501
+ if (count > this.#bytes.byteLength - this.#offset)
502
+ throw new Error("binary: a count does not fit");
503
+ // The message schema checks each error's shape.
504
+ return Array.from({ length: count }, () => ({
505
+ member: this.varint(),
506
+ error: this.json(),
507
+ }));
508
+ }
509
+ /** The message is consumed exactly. */
510
+ end() {
511
+ if (this.#offset !== this.#bytes.byteLength)
512
+ throw new Error("binary: bytes after the message");
513
+ }
514
+ }
515
+ /** Lowercase hex of 8 and 16 bytes: a fingerprint, an incarnation without its dashes. */
516
+ const HEX = new Map([
517
+ [8, /^[0-9a-f]{16}$/],
518
+ [16, /^[0-9a-f]{32}$/],
519
+ ]);
520
+ /** `length` bytes from lowercase hex (an incarnation without dashes, a fingerprint). */
521
+ function hex(text, length) {
522
+ if (!HEX.get(length).test(text))
523
+ throw new Error(`binary: not ${length} bytes of hex`);
524
+ return Uint8Array.from({ length }, (_, index) => Number.parseInt(text.slice(index * 2, index * 2 + 2), 16));
525
+ }
526
+ function hexText(bytes) {
527
+ return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
528
+ }
529
+ /** 16 bytes as a UUID's text. */
530
+ function uuid(bytes) {
531
+ const text = hexText(bytes);
532
+ return `${text.slice(0, 8)}-${text.slice(8, 12)}-${text.slice(12, 16)}-${text.slice(16, 20)}-${text.slice(20)}`;
533
+ }
534
+ //# sourceMappingURL=binary.js.map