@earendil-works/chord 1.5.0 → 1.5.1

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 (1853) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +50 -90
  3. package/dist/contracts/accepts.d.ts +81 -0
  4. package/dist/contracts/accepts.d.ts.map +1 -0
  5. package/dist/contracts/accepts.js.map +1 -0
  6. package/dist/contracts/contract.d.ts +121 -0
  7. package/dist/contracts/contract.d.ts.map +1 -0
  8. package/dist/contracts/contract.js.map +1 -0
  9. package/dist/contracts/declare.d.ts.map +1 -0
  10. package/dist/contracts/declare.js.map +1 -0
  11. package/dist/contracts/evolve.d.ts.map +1 -0
  12. package/dist/contracts/evolve.js.map +1 -0
  13. package/dist/contracts/fingerprint.d.ts +16 -0
  14. package/dist/contracts/fingerprint.d.ts.map +1 -0
  15. package/dist/contracts/fingerprint.js.map +1 -0
  16. package/dist/contracts/history.d.ts.map +1 -0
  17. package/dist/contracts/history.js.map +1 -0
  18. package/dist/contracts/host-kind.d.ts.map +1 -0
  19. package/dist/contracts/host-kind.js.map +1 -0
  20. package/dist/contracts/index.d.ts.map +1 -0
  21. package/dist/contracts/index.js.map +1 -0
  22. package/dist/contracts/internal.d.ts.map +1 -0
  23. package/dist/contracts/internal.js.map +1 -0
  24. package/dist/contracts/names.d.ts.map +1 -0
  25. package/dist/contracts/names.js.map +1 -0
  26. package/dist/contracts/params.d.ts +28 -0
  27. package/dist/contracts/params.d.ts.map +1 -0
  28. package/dist/contracts/params.js.map +1 -0
  29. package/dist/contracts/schema.d.ts.map +1 -0
  30. package/dist/contracts/schema.js.map +1 -0
  31. package/dist/contracts/snapshot.d.ts +16 -0
  32. package/dist/contracts/snapshot.d.ts.map +1 -0
  33. package/dist/contracts/snapshot.js +167 -0
  34. package/dist/contracts/snapshot.js.map +1 -0
  35. package/dist/data/args.d.ts +50 -0
  36. package/dist/data/args.d.ts.map +1 -0
  37. package/dist/data/args.js.map +1 -0
  38. package/dist/data/errors.d.ts +80 -0
  39. package/dist/data/errors.d.ts.map +1 -0
  40. package/dist/data/errors.js +116 -0
  41. package/dist/data/errors.js.map +1 -0
  42. package/dist/data/failure.d.ts.map +1 -0
  43. package/dist/data/failure.js +77 -0
  44. package/dist/data/failure.js.map +1 -0
  45. package/dist/data/index.d.ts +4 -0
  46. package/dist/data/index.d.ts.map +1 -0
  47. package/dist/data/index.js +5 -0
  48. package/dist/data/index.js.map +1 -0
  49. package/dist/data/internal.d.ts +7 -0
  50. package/dist/data/internal.d.ts.map +1 -0
  51. package/dist/data/internal.js +8 -0
  52. package/dist/data/internal.js.map +1 -0
  53. package/dist/data/params.d.ts +20 -0
  54. package/dist/data/params.d.ts.map +1 -0
  55. package/dist/data/params.js.map +1 -0
  56. package/dist/data/principal.d.ts +22 -0
  57. package/dist/data/principal.d.ts.map +1 -0
  58. package/dist/data/principal.js +49 -0
  59. package/dist/data/principal.js.map +1 -0
  60. package/dist/data/validator.d.ts +12 -0
  61. package/dist/data/validator.d.ts.map +1 -0
  62. package/dist/data/validator.js +35 -0
  63. package/dist/data/validator.js.map +1 -0
  64. package/dist/documents/address-source.d.ts +20 -0
  65. package/dist/documents/address-source.d.ts.map +1 -0
  66. package/dist/documents/address-source.js.map +1 -0
  67. package/dist/documents/definition.d.ts +84 -0
  68. package/dist/documents/definition.d.ts.map +1 -0
  69. package/dist/documents/definition.js +74 -0
  70. package/dist/documents/definition.js.map +1 -0
  71. package/dist/documents/documents.d.ts +126 -0
  72. package/dist/documents/documents.d.ts.map +1 -0
  73. package/dist/documents/documents.js +248 -0
  74. package/dist/documents/documents.js.map +1 -0
  75. package/dist/documents/fence.d.ts.map +1 -0
  76. package/dist/documents/fence.js.map +1 -0
  77. package/dist/documents/handles.d.ts +76 -0
  78. package/dist/documents/handles.d.ts.map +1 -0
  79. package/dist/documents/handles.js.map +1 -0
  80. package/dist/documents/index.d.ts.map +1 -0
  81. package/dist/documents/index.js.map +1 -0
  82. package/dist/documents/internal.d.ts +9 -0
  83. package/dist/documents/internal.d.ts.map +1 -0
  84. package/dist/documents/internal.js.map +1 -0
  85. package/dist/documents/keyed-slot.d.ts +103 -0
  86. package/dist/documents/keyed-slot.d.ts.map +1 -0
  87. package/dist/documents/keyed-slot.js +395 -0
  88. package/dist/documents/keyed-slot.js.map +1 -0
  89. package/dist/documents/line.d.ts.map +1 -0
  90. package/dist/documents/line.js.map +1 -0
  91. package/dist/documents/persistence.d.ts +104 -0
  92. package/dist/documents/persistence.d.ts.map +1 -0
  93. package/dist/documents/persistence.js +129 -0
  94. package/dist/documents/persistence.js.map +1 -0
  95. package/dist/documents/residency.d.ts +31 -0
  96. package/dist/documents/residency.d.ts.map +1 -0
  97. package/dist/documents/residency.js.map +1 -0
  98. package/dist/documents/slot.d.ts +109 -0
  99. package/dist/documents/slot.d.ts.map +1 -0
  100. package/dist/documents/slot.js +181 -0
  101. package/dist/documents/slot.js.map +1 -0
  102. package/dist/documents/transaction.d.ts +143 -0
  103. package/dist/documents/transaction.d.ts.map +1 -0
  104. package/dist/documents/transaction.js +442 -0
  105. package/dist/documents/transaction.js.map +1 -0
  106. package/dist/host/activity.d.ts +31 -0
  107. package/dist/host/activity.d.ts.map +1 -0
  108. package/dist/host/activity.js +40 -0
  109. package/dist/host/activity.js.map +1 -0
  110. package/dist/host/adapted.d.ts +49 -0
  111. package/dist/host/adapted.d.ts.map +1 -0
  112. package/dist/host/adapted.js.map +1 -0
  113. package/dist/host/attempt.d.ts +308 -0
  114. package/dist/host/attempt.d.ts.map +1 -0
  115. package/dist/host/attempt.js +1199 -0
  116. package/dist/host/attempt.js.map +1 -0
  117. package/dist/host/backoff.d.ts.map +1 -0
  118. package/dist/host/backoff.js.map +1 -0
  119. package/dist/host/ctx.d.ts +94 -0
  120. package/dist/host/ctx.d.ts.map +1 -0
  121. package/dist/host/ctx.js +200 -0
  122. package/dist/host/ctx.js.map +1 -0
  123. package/dist/host/deadline.d.ts.map +1 -0
  124. package/dist/host/deadline.js.map +1 -0
  125. package/dist/host/dependencies.d.ts.map +1 -0
  126. package/dist/host/dependencies.js.map +1 -0
  127. package/dist/host/destination.d.ts +48 -0
  128. package/dist/host/destination.d.ts.map +1 -0
  129. package/dist/host/destination.js.map +1 -0
  130. package/dist/host/facet.d.ts +84 -0
  131. package/dist/host/facet.d.ts.map +1 -0
  132. package/dist/host/facet.js.map +1 -0
  133. package/dist/host/follow.d.ts +52 -0
  134. package/dist/host/follow.d.ts.map +1 -0
  135. package/dist/host/follow.js.map +1 -0
  136. package/dist/host/host.d.ts +571 -0
  137. package/dist/host/host.d.ts.map +1 -0
  138. package/dist/host/host.js +1318 -0
  139. package/dist/host/host.js.map +1 -0
  140. package/dist/host/index.d.ts +17 -0
  141. package/dist/host/index.d.ts.map +1 -0
  142. package/dist/host/index.js.map +1 -0
  143. package/dist/host/internal.d.ts +11 -0
  144. package/dist/host/internal.d.ts.map +1 -0
  145. package/dist/host/internal.js +9 -0
  146. package/dist/host/internal.js.map +1 -0
  147. package/dist/host/members.d.ts +50 -0
  148. package/dist/host/members.d.ts.map +1 -0
  149. package/dist/host/members.js.map +1 -0
  150. package/dist/host/native.d.ts +64 -0
  151. package/dist/host/native.d.ts.map +1 -0
  152. package/dist/host/native.js +126 -0
  153. package/dist/host/native.js.map +1 -0
  154. package/dist/host/object.d.ts +331 -0
  155. package/dist/host/object.d.ts.map +1 -0
  156. package/dist/host/object.js +1296 -0
  157. package/dist/host/object.js.map +1 -0
  158. package/dist/host/old-work.d.ts +34 -0
  159. package/dist/host/old-work.d.ts.map +1 -0
  160. package/dist/host/old-work.js +52 -0
  161. package/dist/host/old-work.js.map +1 -0
  162. package/dist/host/parked.d.ts +23 -0
  163. package/dist/host/parked.d.ts.map +1 -0
  164. package/dist/host/parked.js.map +1 -0
  165. package/dist/host/presence.d.ts +34 -0
  166. package/dist/host/presence.d.ts.map +1 -0
  167. package/dist/host/presence.js.map +1 -0
  168. package/dist/host/readiness.d.ts +27 -0
  169. package/dist/host/readiness.d.ts.map +1 -0
  170. package/dist/host/readiness.js +134 -0
  171. package/dist/host/readiness.js.map +1 -0
  172. package/dist/host/ref-state.d.ts +53 -0
  173. package/dist/host/ref-state.d.ts.map +1 -0
  174. package/dist/host/ref-state.js +83 -0
  175. package/dist/host/ref-state.js.map +1 -0
  176. package/dist/host/reference-keys.d.ts +36 -0
  177. package/dist/host/reference-keys.d.ts.map +1 -0
  178. package/dist/host/reference-keys.js +168 -0
  179. package/dist/host/reference-keys.js.map +1 -0
  180. package/dist/host/reference-source.d.ts +65 -0
  181. package/dist/host/reference-source.d.ts.map +1 -0
  182. package/dist/host/reference-source.js +285 -0
  183. package/dist/host/reference-source.js.map +1 -0
  184. package/dist/host/reference.d.ts +321 -0
  185. package/dist/host/reference.d.ts.map +1 -0
  186. package/dist/host/reference.js +797 -0
  187. package/dist/host/reference.js.map +1 -0
  188. package/dist/host/reload-cycle.d.ts +16 -0
  189. package/dist/host/reload-cycle.d.ts.map +1 -0
  190. package/dist/host/reload-cycle.js +81 -0
  191. package/dist/host/reload-cycle.js.map +1 -0
  192. package/dist/host/retry-on.d.ts.map +1 -0
  193. package/dist/host/retry-on.js.map +1 -0
  194. package/dist/host/revocation.d.ts +16 -0
  195. package/dist/host/revocation.d.ts.map +1 -0
  196. package/dist/host/revocation.js.map +1 -0
  197. package/dist/host/root.d.ts +37 -0
  198. package/dist/host/root.d.ts.map +1 -0
  199. package/dist/host/root.js +68 -0
  200. package/dist/host/root.js.map +1 -0
  201. package/dist/host/route.d.ts +64 -0
  202. package/dist/host/route.d.ts.map +1 -0
  203. package/dist/host/route.js +227 -0
  204. package/dist/host/route.js.map +1 -0
  205. package/dist/host/routines.d.ts +78 -0
  206. package/dist/host/routines.d.ts.map +1 -0
  207. package/dist/host/routines.js +398 -0
  208. package/dist/host/routines.js.map +1 -0
  209. package/dist/host/sleep.d.ts +9 -0
  210. package/dist/host/sleep.d.ts.map +1 -0
  211. package/dist/host/sleep.js.map +1 -0
  212. package/dist/host/staging.d.ts +94 -0
  213. package/dist/host/staging.d.ts.map +1 -0
  214. package/dist/host/staging.js +304 -0
  215. package/dist/host/staging.js.map +1 -0
  216. package/dist/host/unbound-clock.d.ts +23 -0
  217. package/dist/host/unbound-clock.d.ts.map +1 -0
  218. package/dist/host/unbound-clock.js +58 -0
  219. package/dist/host/unbound-clock.js.map +1 -0
  220. package/dist/host/unbound.d.ts +37 -0
  221. package/dist/host/unbound.d.ts.map +1 -0
  222. package/dist/host/unbound.js +88 -0
  223. package/dist/host/unbound.js.map +1 -0
  224. package/dist/host/uuid.d.ts.map +1 -0
  225. package/dist/host/uuid.js.map +1 -0
  226. package/dist/index.d.ts +29 -19
  227. package/dist/index.d.ts.map +1 -1
  228. package/dist/index.js +20 -10
  229. package/dist/index.js.map +1 -1
  230. package/dist/jobs/definition.d.ts.map +1 -0
  231. package/dist/jobs/definition.js.map +1 -0
  232. package/dist/jobs/index.d.ts.map +1 -0
  233. package/dist/jobs/index.js.map +1 -0
  234. package/dist/jobs/internal.d.ts.map +1 -0
  235. package/dist/jobs/internal.js.map +1 -0
  236. package/dist/jobs/job.d.ts +149 -0
  237. package/dist/jobs/job.d.ts.map +1 -0
  238. package/dist/jobs/job.js +387 -0
  239. package/dist/jobs/job.js.map +1 -0
  240. package/dist/jobs/persisted.d.ts +38 -0
  241. package/dist/jobs/persisted.d.ts.map +1 -0
  242. package/dist/jobs/persisted.js.map +1 -0
  243. package/dist/jobs/records.d.ts +231 -0
  244. package/dist/jobs/records.d.ts.map +1 -0
  245. package/dist/jobs/records.js +871 -0
  246. package/dist/jobs/records.js.map +1 -0
  247. package/dist/jobs/run-states.d.ts +69 -0
  248. package/dist/jobs/run-states.d.ts.map +1 -0
  249. package/dist/jobs/run-states.js +228 -0
  250. package/dist/jobs/run-states.js.map +1 -0
  251. package/dist/jobs/run.d.ts +117 -0
  252. package/dist/jobs/run.d.ts.map +1 -0
  253. package/dist/jobs/run.js +204 -0
  254. package/dist/jobs/run.js.map +1 -0
  255. package/dist/jobs/running.d.ts +44 -0
  256. package/dist/jobs/running.d.ts.map +1 -0
  257. package/dist/jobs/running.js.map +1 -0
  258. package/dist/jobs/stored.d.ts +63 -0
  259. package/dist/jobs/stored.d.ts.map +1 -0
  260. package/dist/jobs/stored.js.map +1 -0
  261. package/dist/link/binary.d.ts.map +1 -0
  262. package/dist/link/binary.js +544 -0
  263. package/dist/link/binary.js.map +1 -0
  264. package/dist/link/channel.d.ts +68 -0
  265. package/dist/link/channel.d.ts.map +1 -0
  266. package/dist/link/channel.js +215 -0
  267. package/dist/link/channel.js.map +1 -0
  268. package/dist/link/errors.d.ts.map +1 -0
  269. package/dist/link/errors.js.map +1 -0
  270. package/dist/link/index.d.ts.map +1 -0
  271. package/dist/link/index.js.map +1 -0
  272. package/dist/link/internal.d.ts.map +1 -0
  273. package/dist/link/internal.js.map +1 -0
  274. package/dist/link/ipc.d.ts.map +1 -0
  275. package/dist/link/ipc.js.map +1 -0
  276. package/dist/link/link.d.ts.map +1 -0
  277. package/dist/link/link.js.map +1 -0
  278. package/dist/link/message.d.ts +262 -0
  279. package/dist/link/message.d.ts.map +1 -0
  280. package/dist/link/message.js +156 -0
  281. package/dist/link/message.js.map +1 -0
  282. package/dist/link/part.d.ts +80 -0
  283. package/dist/link/part.d.ts.map +1 -0
  284. package/dist/link/part.js +165 -0
  285. package/dist/link/part.js.map +1 -0
  286. package/dist/link/text.d.ts.map +1 -0
  287. package/dist/link/text.js +355 -0
  288. package/dist/link/text.js.map +1 -0
  289. package/dist/link/values.d.ts.map +1 -0
  290. package/dist/link/values.js +121 -0
  291. package/dist/link/values.js.map +1 -0
  292. package/dist/link/websocket.d.ts.map +1 -0
  293. package/dist/link/websocket.js.map +1 -0
  294. package/dist/node/app/app.d.ts +269 -0
  295. package/dist/node/app/app.d.ts.map +1 -0
  296. package/dist/node/app/app.js +513 -0
  297. package/dist/node/app/app.js.map +1 -0
  298. package/dist/node/app/archive.d.ts +37 -0
  299. package/dist/node/app/archive.d.ts.map +1 -0
  300. package/dist/node/app/archive.js +204 -0
  301. package/dist/node/app/archive.js.map +1 -0
  302. package/dist/node/app/blobs.d.ts +23 -0
  303. package/dist/node/app/blobs.d.ts.map +1 -0
  304. package/dist/node/app/blobs.js +64 -0
  305. package/dist/node/app/blobs.js.map +1 -0
  306. package/dist/node/app/data.d.ts +35 -0
  307. package/dist/node/app/data.d.ts.map +1 -0
  308. package/dist/node/app/data.js +44 -0
  309. package/dist/node/app/data.js.map +1 -0
  310. package/dist/node/app/ephemeral-sessions.d.ts +20 -0
  311. package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
  312. package/dist/node/app/ephemeral-sessions.js +69 -0
  313. package/dist/node/app/ephemeral-sessions.js.map +1 -0
  314. package/dist/node/app/ephemeral.d.ts +11 -0
  315. package/dist/node/app/ephemeral.d.ts.map +1 -0
  316. package/dist/node/app/ephemeral.js +34 -0
  317. package/dist/node/app/ephemeral.js.map +1 -0
  318. package/dist/node/app/files-copy.d.ts +13 -0
  319. package/dist/node/app/files-copy.d.ts.map +1 -0
  320. package/dist/node/app/files-copy.js +86 -0
  321. package/dist/node/app/files-copy.js.map +1 -0
  322. package/dist/node/app/files-entry.d.ts +4 -0
  323. package/dist/node/app/files-entry.d.ts.map +1 -0
  324. package/dist/node/app/files-entry.js +7 -0
  325. package/dist/node/app/files-entry.js.map +1 -0
  326. package/dist/node/app/files-index.d.ts +180 -0
  327. package/dist/node/app/files-index.d.ts.map +1 -0
  328. package/dist/node/app/files-index.js +535 -0
  329. package/dist/node/app/files-index.js.map +1 -0
  330. package/dist/node/app/files.d.ts +363 -0
  331. package/dist/node/app/files.d.ts.map +1 -0
  332. package/dist/node/app/files.js +368 -0
  333. package/dist/node/app/files.js.map +1 -0
  334. package/dist/node/app/folder-views.d.ts +21 -0
  335. package/dist/node/app/folder-views.d.ts.map +1 -0
  336. package/dist/node/app/folder-views.js +55 -0
  337. package/dist/node/app/folder-views.js.map +1 -0
  338. package/dist/node/app/index.d.ts +12 -0
  339. package/dist/node/app/index.d.ts.map +1 -0
  340. package/dist/node/app/index.js +15 -0
  341. package/dist/node/app/index.js.map +1 -0
  342. package/dist/node/app/info.d.ts +66 -0
  343. package/dist/node/app/info.d.ts.map +1 -0
  344. package/dist/node/app/info.js +37 -0
  345. package/dist/node/app/info.js.map +1 -0
  346. package/dist/node/app/invite.d.ts +5 -0
  347. package/dist/node/app/invite.d.ts.map +1 -0
  348. package/dist/node/app/invite.js +64 -0
  349. package/dist/node/app/invite.js.map +1 -0
  350. package/dist/node/app/layout.d.ts +36 -0
  351. package/dist/node/app/layout.d.ts.map +1 -0
  352. package/dist/node/app/layout.js +87 -0
  353. package/dist/node/app/layout.js.map +1 -0
  354. package/dist/node/app/owner.d.ts +31 -0
  355. package/dist/node/app/owner.d.ts.map +1 -0
  356. package/dist/node/app/owner.js +104 -0
  357. package/dist/node/app/owner.js.map +1 -0
  358. package/dist/node/app/pairing.d.ts +55 -0
  359. package/dist/node/app/pairing.d.ts.map +1 -0
  360. package/dist/node/app/pairing.js +183 -0
  361. package/dist/node/app/pairing.js.map +1 -0
  362. package/dist/node/app/secrets.d.ts +16 -0
  363. package/dist/node/app/secrets.d.ts.map +1 -0
  364. package/dist/node/app/secrets.js +72 -0
  365. package/dist/node/app/secrets.js.map +1 -0
  366. package/dist/node/app/sessions.d.ts +72 -0
  367. package/dist/node/app/sessions.d.ts.map +1 -0
  368. package/dist/node/app/sessions.js +222 -0
  369. package/dist/node/app/sessions.js.map +1 -0
  370. package/dist/node/app/tar.d.ts +24 -0
  371. package/dist/node/app/tar.d.ts.map +1 -0
  372. package/dist/node/app/tar.js +167 -0
  373. package/dist/node/app/tar.js.map +1 -0
  374. package/dist/node/app/uploads.d.ts +37 -0
  375. package/dist/node/app/uploads.d.ts.map +1 -0
  376. package/dist/node/app/uploads.js +157 -0
  377. package/dist/node/app/uploads.js.map +1 -0
  378. package/dist/node/app/users.d.ts +37 -0
  379. package/dist/node/app/users.d.ts.map +1 -0
  380. package/dist/node/app/users.js +62 -0
  381. package/dist/node/app/users.js.map +1 -0
  382. package/dist/node/app/worker.d.ts +18 -0
  383. package/dist/node/app/worker.d.ts.map +1 -0
  384. package/dist/node/app/worker.js +84 -0
  385. package/dist/node/app/worker.js.map +1 -0
  386. package/dist/node/compression.d.ts +7 -0
  387. package/dist/node/compression.d.ts.map +1 -0
  388. package/dist/node/compression.js +25 -0
  389. package/dist/node/compression.js.map +1 -0
  390. package/dist/node/http/admission.d.ts.map +1 -0
  391. package/dist/node/http/admission.js.map +1 -0
  392. package/dist/node/http/authenticate.d.ts +21 -0
  393. package/dist/node/http/authenticate.d.ts.map +1 -0
  394. package/dist/node/http/authenticate.js +34 -0
  395. package/dist/node/http/authenticate.js.map +1 -0
  396. package/dist/node/http/cookies.d.ts +32 -0
  397. package/dist/node/http/cookies.d.ts.map +1 -0
  398. package/dist/node/http/cookies.js +70 -0
  399. package/dist/node/http/cookies.js.map +1 -0
  400. package/dist/node/http/file.d.ts.map +1 -0
  401. package/dist/node/http/file.js.map +1 -0
  402. package/dist/node/http/headers.d.ts.map +1 -0
  403. package/dist/node/http/headers.js +136 -0
  404. package/dist/node/http/headers.js.map +1 -0
  405. package/dist/node/http/http.d.ts +111 -0
  406. package/dist/node/http/http.d.ts.map +1 -0
  407. package/dist/node/http/http.js +524 -0
  408. package/dist/node/http/http.js.map +1 -0
  409. package/dist/node/http/incoming.d.ts.map +1 -0
  410. package/dist/node/http/incoming.js.map +1 -0
  411. package/dist/node/http/index.d.ts +11 -0
  412. package/dist/node/http/index.d.ts.map +1 -0
  413. package/dist/node/http/index.js +12 -0
  414. package/dist/node/http/index.js.map +1 -0
  415. package/dist/node/http/node.d.ts.map +1 -0
  416. package/dist/node/http/node.js.map +1 -0
  417. package/dist/node/http/request.d.ts +60 -0
  418. package/dist/node/http/request.d.ts.map +1 -0
  419. package/dist/node/http/request.js +118 -0
  420. package/dist/node/http/request.js.map +1 -0
  421. package/dist/node/http/response.d.ts +63 -0
  422. package/dist/node/http/response.d.ts.map +1 -0
  423. package/dist/node/http/response.js.map +1 -0
  424. package/dist/node/http/router.d.ts +132 -0
  425. package/dist/node/http/router.d.ts.map +1 -0
  426. package/dist/node/http/router.js +267 -0
  427. package/dist/node/http/router.js.map +1 -0
  428. package/dist/node/http/upgrades.d.ts +61 -0
  429. package/dist/node/http/upgrades.d.ts.map +1 -0
  430. package/dist/node/http/upgrades.js +192 -0
  431. package/dist/node/http/upgrades.js.map +1 -0
  432. package/dist/node/plugins/base-inputs.d.ts +14 -0
  433. package/dist/node/plugins/base-inputs.d.ts.map +1 -0
  434. package/dist/node/plugins/base-inputs.js +33 -0
  435. package/dist/node/plugins/base-inputs.js.map +1 -0
  436. package/dist/node/plugins/build.d.ts +77 -0
  437. package/dist/node/plugins/build.d.ts.map +1 -0
  438. package/dist/node/plugins/build.js +576 -0
  439. package/dist/node/plugins/build.js.map +1 -0
  440. package/dist/node/plugins/css-modules.d.ts +13 -0
  441. package/dist/node/plugins/css-modules.d.ts.map +1 -0
  442. package/dist/node/plugins/css-modules.js +58 -0
  443. package/dist/node/plugins/css-modules.js.map +1 -0
  444. package/dist/node/plugins/discover.d.ts +67 -0
  445. package/dist/node/plugins/discover.d.ts.map +1 -0
  446. package/dist/node/plugins/discover.js +369 -0
  447. package/dist/node/plugins/discover.js.map +1 -0
  448. package/dist/node/plugins/evaluate.d.ts +33 -0
  449. package/dist/node/plugins/evaluate.d.ts.map +1 -0
  450. package/dist/node/plugins/evaluate.js +121 -0
  451. package/dist/node/plugins/evaluate.js.map +1 -0
  452. package/dist/node/plugins/index.d.ts +11 -0
  453. package/dist/node/plugins/index.d.ts.map +1 -0
  454. package/dist/node/plugins/index.js +13 -0
  455. package/dist/node/plugins/index.js.map +1 -0
  456. package/dist/node/plugins/install.d.ts +38 -0
  457. package/dist/node/plugins/install.d.ts.map +1 -0
  458. package/dist/node/plugins/install.js +213 -0
  459. package/dist/node/plugins/install.js.map +1 -0
  460. package/dist/node/plugins/plugins.d.ts +162 -0
  461. package/dist/node/plugins/plugins.d.ts.map +1 -0
  462. package/dist/node/plugins/plugins.js +244 -0
  463. package/dist/node/plugins/plugins.js.map +1 -0
  464. package/dist/node/plugins/runtime.d.ts +57 -0
  465. package/dist/node/plugins/runtime.d.ts.map +1 -0
  466. package/dist/node/plugins/runtime.js +92 -0
  467. package/dist/node/plugins/runtime.js.map +1 -0
  468. package/dist/node/plugins/stack.d.ts.map +1 -0
  469. package/dist/node/plugins/stack.js.map +1 -0
  470. package/dist/node/plugins/testing.d.ts +58 -0
  471. package/dist/node/plugins/testing.d.ts.map +1 -0
  472. package/dist/node/plugins/testing.js +210 -0
  473. package/dist/node/plugins/testing.js.map +1 -0
  474. package/dist/node/plugins/watcher.d.ts +69 -0
  475. package/dist/node/plugins/watcher.d.ts.map +1 -0
  476. package/dist/node/plugins/watcher.js +622 -0
  477. package/dist/node/plugins/watcher.js.map +1 -0
  478. package/dist/node/surfaces/bundle.d.ts +31 -0
  479. package/dist/node/surfaces/bundle.d.ts.map +1 -0
  480. package/dist/node/surfaces/bundle.js +118 -0
  481. package/dist/node/surfaces/bundle.js.map +1 -0
  482. package/dist/node/surfaces/current.d.ts +17 -0
  483. package/dist/node/surfaces/current.d.ts.map +1 -0
  484. package/dist/node/surfaces/current.js +54 -0
  485. package/dist/node/surfaces/current.js.map +1 -0
  486. package/dist/node/surfaces/index.d.ts +6 -0
  487. package/dist/node/surfaces/index.d.ts.map +1 -0
  488. package/dist/node/surfaces/index.js +6 -0
  489. package/dist/node/surfaces/index.js.map +1 -0
  490. package/dist/node/surfaces/published.d.ts +27 -0
  491. package/dist/node/surfaces/published.d.ts.map +1 -0
  492. package/dist/node/surfaces/published.js +142 -0
  493. package/dist/node/surfaces/published.js.map +1 -0
  494. package/dist/node/surfaces/served.d.ts +15 -0
  495. package/dist/node/surfaces/served.d.ts.map +1 -0
  496. package/dist/node/surfaces/served.js +42 -0
  497. package/dist/node/surfaces/served.js.map +1 -0
  498. package/dist/node/surfaces/surface-build.d.ts +53 -0
  499. package/dist/node/surfaces/surface-build.d.ts.map +1 -0
  500. package/dist/node/surfaces/surface-build.js +105 -0
  501. package/dist/node/surfaces/surface-build.js.map +1 -0
  502. package/dist/node/surfaces/tui.d.ts +40 -0
  503. package/dist/node/surfaces/tui.d.ts.map +1 -0
  504. package/dist/node/surfaces/tui.js +55 -0
  505. package/dist/node/surfaces/tui.js.map +1 -0
  506. package/dist/node/surfaces/web.d.ts +56 -0
  507. package/dist/node/surfaces/web.d.ts.map +1 -0
  508. package/dist/node/surfaces/web.js +108 -0
  509. package/dist/node/surfaces/web.js.map +1 -0
  510. package/dist/node/tui/actions.d.ts +49 -0
  511. package/dist/node/tui/actions.d.ts.map +1 -0
  512. package/dist/node/tui/actions.js +195 -0
  513. package/dist/node/tui/actions.js.map +1 -0
  514. package/dist/node/tui/credentials.d.ts +17 -0
  515. package/dist/node/tui/credentials.d.ts.map +1 -0
  516. package/dist/node/tui/credentials.js +54 -0
  517. package/dist/node/tui/credentials.js.map +1 -0
  518. package/dist/node/tui/filter.d.ts +5 -0
  519. package/dist/node/tui/filter.d.ts.map +1 -0
  520. package/dist/node/tui/filter.js +79 -0
  521. package/dist/node/tui/filter.js.map +1 -0
  522. package/dist/node/tui/index.d.ts +6 -0
  523. package/dist/node/tui/index.d.ts.map +1 -0
  524. package/dist/node/tui/index.js +6 -0
  525. package/dist/node/tui/index.js.map +1 -0
  526. package/dist/node/tui/launcher.d.ts +40 -0
  527. package/dist/node/tui/launcher.d.ts.map +1 -0
  528. package/dist/node/tui/launcher.js +439 -0
  529. package/dist/node/tui/launcher.js.map +1 -0
  530. package/dist/node/tui/pipe.d.ts +18 -0
  531. package/dist/node/tui/pipe.d.ts.map +1 -0
  532. package/dist/node/tui/pipe.js +134 -0
  533. package/dist/node/tui/pipe.js.map +1 -0
  534. package/dist/node/tui/sandbox.d.ts +54 -0
  535. package/dist/node/tui/sandbox.d.ts.map +1 -0
  536. package/dist/node/tui/sandbox.js +431 -0
  537. package/dist/node/tui/sandbox.js.map +1 -0
  538. package/dist/node/workers/base.d.ts +30 -0
  539. package/dist/node/workers/base.d.ts.map +1 -0
  540. package/dist/node/workers/base.js +255 -0
  541. package/dist/node/workers/base.js.map +1 -0
  542. package/dist/node/workers/child.d.ts +4 -0
  543. package/dist/node/workers/child.d.ts.map +1 -0
  544. package/dist/node/workers/child.js +6 -0
  545. package/dist/node/workers/child.js.map +1 -0
  546. package/dist/node/workers/control.d.ts +83 -0
  547. package/dist/node/workers/control.d.ts.map +1 -0
  548. package/dist/node/workers/control.js +77 -0
  549. package/dist/node/workers/control.js.map +1 -0
  550. package/dist/node/workers/index.d.ts +4 -0
  551. package/dist/node/workers/index.d.ts.map +1 -0
  552. package/dist/node/workers/index.js +7 -0
  553. package/dist/node/workers/index.js.map +1 -0
  554. package/dist/node/workers/lock.d.ts +30 -0
  555. package/dist/node/workers/lock.d.ts.map +1 -0
  556. package/dist/node/workers/lock.js +180 -0
  557. package/dist/node/workers/lock.js.map +1 -0
  558. package/dist/node/workers/main.d.ts +46 -0
  559. package/dist/node/workers/main.d.ts.map +1 -0
  560. package/dist/node/workers/main.js +230 -0
  561. package/dist/node/workers/main.js.map +1 -0
  562. package/dist/node/workers/process.d.ts +42 -0
  563. package/dist/node/workers/process.d.ts.map +1 -0
  564. package/dist/node/workers/process.js +125 -0
  565. package/dist/node/workers/process.js.map +1 -0
  566. package/dist/node/workers/workers.d.ts +122 -0
  567. package/dist/node/workers/workers.d.ts.map +1 -0
  568. package/dist/node/workers/workers.js +677 -0
  569. package/dist/node/workers/workers.js.map +1 -0
  570. package/dist/react/hooks.d.ts +43 -0
  571. package/dist/react/hooks.d.ts.map +1 -0
  572. package/dist/react/hooks.js +82 -0
  573. package/dist/react/hooks.js.map +1 -0
  574. package/dist/react/index.d.ts +3 -0
  575. package/dist/react/index.d.ts.map +1 -0
  576. package/dist/react/index.js +4 -0
  577. package/dist/react/index.js.map +1 -0
  578. package/dist/react/stores.d.ts +9 -0
  579. package/dist/react/stores.d.ts.map +1 -0
  580. package/dist/react/stores.js +37 -0
  581. package/dist/react/stores.js.map +1 -0
  582. package/dist/registries/contribution.d.ts.map +1 -0
  583. package/dist/registries/contribution.js.map +1 -0
  584. package/dist/registries/entries.d.ts.map +1 -0
  585. package/dist/registries/entries.js.map +1 -0
  586. package/dist/registries/index.d.ts.map +1 -0
  587. package/dist/registries/index.js.map +1 -0
  588. package/dist/registries/internal.d.ts.map +1 -0
  589. package/dist/registries/internal.js.map +1 -0
  590. package/dist/registries/record.d.ts +115 -0
  591. package/dist/registries/record.d.ts.map +1 -0
  592. package/dist/registries/record.js +283 -0
  593. package/dist/registries/record.js.map +1 -0
  594. package/dist/registries/registry.d.ts +74 -0
  595. package/dist/registries/registry.d.ts.map +1 -0
  596. package/dist/registries/registry.js.map +1 -0
  597. package/dist/registries/value.d.ts.map +1 -0
  598. package/dist/registries/value.js +224 -0
  599. package/dist/registries/value.js.map +1 -0
  600. package/dist/remote/calls.d.ts.map +1 -0
  601. package/dist/remote/calls.js.map +1 -0
  602. package/dist/remote/consumer.d.ts +43 -0
  603. package/dist/remote/consumer.d.ts.map +1 -0
  604. package/dist/remote/consumer.js +350 -0
  605. package/dist/remote/consumer.js.map +1 -0
  606. package/dist/remote/hold.d.ts +141 -0
  607. package/dist/remote/hold.d.ts.map +1 -0
  608. package/dist/remote/hold.js +579 -0
  609. package/dist/remote/hold.js.map +1 -0
  610. package/dist/remote/host-link.d.ts +77 -0
  611. package/dist/remote/host-link.d.ts.map +1 -0
  612. package/dist/remote/host-link.js +184 -0
  613. package/dist/remote/host-link.js.map +1 -0
  614. package/dist/remote/internal.d.ts.map +1 -0
  615. package/dist/remote/internal.js.map +1 -0
  616. package/dist/remote/path.d.ts.map +1 -0
  617. package/dist/remote/path.js.map +1 -0
  618. package/dist/remote/provider.d.ts +89 -0
  619. package/dist/remote/provider.d.ts.map +1 -0
  620. package/dist/remote/provider.js +597 -0
  621. package/dist/remote/provider.js.map +1 -0
  622. package/dist/remote/relay.d.ts +69 -0
  623. package/dist/remote/relay.d.ts.map +1 -0
  624. package/dist/remote/relay.js +219 -0
  625. package/dist/remote/relay.js.map +1 -0
  626. package/dist/remote/remote-object.d.ts +138 -0
  627. package/dist/remote/remote-object.d.ts.map +1 -0
  628. package/dist/remote/remote-object.js +492 -0
  629. package/dist/remote/remote-object.js.map +1 -0
  630. package/dist/remote/replica.d.ts +59 -0
  631. package/dist/remote/replica.d.ts.map +1 -0
  632. package/dist/remote/replica.js +125 -0
  633. package/dist/remote/replica.js.map +1 -0
  634. package/dist/sqlite/node.d.ts +9 -1
  635. package/dist/sqlite/node.d.ts.map +1 -1
  636. package/dist/sqlite/node.js +9 -3
  637. package/dist/sqlite/node.js.map +1 -1
  638. package/dist/state/batch.d.ts +64 -0
  639. package/dist/state/batch.d.ts.map +1 -0
  640. package/dist/state/batch.js +164 -0
  641. package/dist/state/batch.js.map +1 -0
  642. package/dist/state/derive.d.ts +52 -0
  643. package/dist/state/derive.d.ts.map +1 -0
  644. package/dist/state/derive.js +182 -0
  645. package/dist/state/derive.js.map +1 -0
  646. package/dist/state/index.d.ts +6 -0
  647. package/dist/state/index.d.ts.map +1 -0
  648. package/dist/state/index.js.map +1 -0
  649. package/dist/state/internal.d.ts.map +1 -0
  650. package/dist/state/internal.js.map +1 -0
  651. package/dist/state/native-source.d.ts +106 -0
  652. package/dist/state/native-source.d.ts.map +1 -0
  653. package/dist/state/native-source.js +240 -0
  654. package/dist/state/native-source.js.map +1 -0
  655. package/dist/state/watchable.d.ts +114 -0
  656. package/dist/state/watchable.d.ts.map +1 -0
  657. package/dist/state/watchable.js +156 -0
  658. package/dist/state/watchable.js.map +1 -0
  659. package/dist/state/writable.d.ts +32 -0
  660. package/dist/state/writable.d.ts.map +1 -0
  661. package/dist/state/writable.js.map +1 -0
  662. package/dist/store/adapter.d.ts +67 -0
  663. package/dist/store/adapter.d.ts.map +1 -0
  664. package/dist/store/adapter.js.map +1 -0
  665. package/dist/store/allocator.d.ts.map +1 -0
  666. package/dist/store/allocator.js.map +1 -0
  667. package/dist/store/applier.d.ts.map +1 -0
  668. package/dist/store/applier.js.map +1 -0
  669. package/dist/store/apply-batch.d.ts +12 -0
  670. package/dist/store/apply-batch.d.ts.map +1 -0
  671. package/dist/store/apply-batch.js.map +1 -0
  672. package/dist/store/archive.d.ts +32 -0
  673. package/dist/store/archive.d.ts.map +1 -0
  674. package/dist/store/archive.js +130 -0
  675. package/dist/store/archive.js.map +1 -0
  676. package/dist/store/backend.d.ts +10 -0
  677. package/dist/store/backend.d.ts.map +1 -0
  678. package/dist/store/backend.js.map +1 -0
  679. package/dist/store/catalog.d.ts +24 -0
  680. package/dist/store/catalog.d.ts.map +1 -0
  681. package/dist/store/catalog.js.map +1 -0
  682. package/dist/store/claims.d.ts.map +1 -0
  683. package/dist/store/claims.js.map +1 -0
  684. package/dist/store/columns.d.ts.map +1 -0
  685. package/dist/store/columns.js.map +1 -0
  686. package/dist/store/engine.d.ts +176 -0
  687. package/dist/store/engine.d.ts.map +1 -0
  688. package/dist/store/engine.js +283 -0
  689. package/dist/store/engine.js.map +1 -0
  690. package/dist/store/evaluate.d.ts +17 -0
  691. package/dist/store/evaluate.d.ts.map +1 -0
  692. package/dist/store/evaluate.js.map +1 -0
  693. package/dist/store/export.d.ts +17 -0
  694. package/dist/store/export.d.ts.map +1 -0
  695. package/dist/store/export.js +200 -0
  696. package/dist/store/export.js.map +1 -0
  697. package/dist/store/expression.d.ts +150 -0
  698. package/dist/store/expression.d.ts.map +1 -0
  699. package/dist/store/expression.js.map +1 -0
  700. package/dist/store/import.d.ts +10 -0
  701. package/dist/store/import.d.ts.map +1 -0
  702. package/dist/store/import.js +276 -0
  703. package/dist/store/import.js.map +1 -0
  704. package/dist/store/index.d.ts.map +1 -0
  705. package/dist/store/index.js.map +1 -0
  706. package/dist/store/json-column.d.ts +33 -0
  707. package/dist/store/json-column.d.ts.map +1 -0
  708. package/dist/store/json-column.js +62 -0
  709. package/dist/store/json-column.js.map +1 -0
  710. package/dist/store/jsonl.d.ts.map +1 -0
  711. package/dist/store/jsonl.js.map +1 -0
  712. package/dist/store/live-query.d.ts +108 -0
  713. package/dist/store/live-query.d.ts.map +1 -0
  714. package/dist/store/live-query.js +254 -0
  715. package/dist/store/live-query.js.map +1 -0
  716. package/dist/store/outbox.d.ts +26 -0
  717. package/dist/store/outbox.d.ts.map +1 -0
  718. package/dist/store/outbox.js.map +1 -0
  719. package/dist/store/query.d.ts +39 -0
  720. package/dist/store/query.d.ts.map +1 -0
  721. package/dist/store/query.js.map +1 -0
  722. package/dist/store/refusal.d.ts.map +1 -0
  723. package/dist/store/refusal.js.map +1 -0
  724. package/dist/store/rows.d.ts +80 -0
  725. package/dist/store/rows.d.ts.map +1 -0
  726. package/dist/store/rows.js.map +1 -0
  727. package/dist/store/schema.d.ts +25 -0
  728. package/dist/store/schema.d.ts.map +1 -0
  729. package/dist/store/schema.js +115 -0
  730. package/dist/store/schema.js.map +1 -0
  731. package/dist/store/sql.d.ts +73 -0
  732. package/dist/store/sql.d.ts.map +1 -0
  733. package/dist/store/sql.js.map +1 -0
  734. package/dist/store/step.d.ts +50 -0
  735. package/dist/store/step.d.ts.map +1 -0
  736. package/dist/store/step.js +52 -0
  737. package/dist/store/step.js.map +1 -0
  738. package/dist/store/store.d.ts +171 -0
  739. package/dist/store/store.d.ts.map +1 -0
  740. package/dist/store/store.js +818 -0
  741. package/dist/store/store.js.map +1 -0
  742. package/dist/store/table-changes.d.ts +29 -0
  743. package/dist/store/table-changes.d.ts.map +1 -0
  744. package/dist/store/table-changes.js.map +1 -0
  745. package/dist/store/table-evolve.d.ts.map +1 -0
  746. package/dist/store/table-evolve.js.map +1 -0
  747. package/dist/store/table-handle.d.ts +73 -0
  748. package/dist/store/table-handle.d.ts.map +1 -0
  749. package/dist/store/table-handle.js +101 -0
  750. package/dist/store/table-handle.js.map +1 -0
  751. package/dist/store/table-history.d.ts.map +1 -0
  752. package/dist/store/table-history.js.map +1 -0
  753. package/dist/store/table-migration.d.ts +16 -0
  754. package/dist/store/table-migration.d.ts.map +1 -0
  755. package/dist/store/table-migration.js +202 -0
  756. package/dist/store/table-migration.js.map +1 -0
  757. package/dist/store/table-writes.d.ts.map +1 -0
  758. package/dist/store/table-writes.js +170 -0
  759. package/dist/store/table-writes.js.map +1 -0
  760. package/dist/store/table.d.ts +80 -0
  761. package/dist/store/table.d.ts.map +1 -0
  762. package/dist/store/table.js.map +1 -0
  763. package/dist/store/text.d.ts.map +1 -0
  764. package/dist/store/text.js.map +1 -0
  765. package/dist/store/writes.d.ts.map +1 -0
  766. package/dist/store/writes.js.map +1 -0
  767. package/dist/surfaces/active-language.d.ts +20 -0
  768. package/dist/surfaces/active-language.d.ts.map +1 -0
  769. package/dist/surfaces/active-language.js +78 -0
  770. package/dist/surfaces/active-language.js.map +1 -0
  771. package/dist/surfaces/active-theme.d.ts +16 -0
  772. package/dist/surfaces/active-theme.d.ts.map +1 -0
  773. package/dist/surfaces/active-theme.js +47 -0
  774. package/dist/surfaces/active-theme.js.map +1 -0
  775. package/dist/surfaces/client.d.ts +96 -0
  776. package/dist/surfaces/client.d.ts.map +1 -0
  777. package/dist/surfaces/client.js +264 -0
  778. package/dist/surfaces/client.js.map +1 -0
  779. package/dist/surfaces/connection.d.ts +49 -0
  780. package/dist/surfaces/connection.d.ts.map +1 -0
  781. package/dist/surfaces/connection.js +142 -0
  782. package/dist/surfaces/connection.js.map +1 -0
  783. package/dist/surfaces/format.d.ts +5 -0
  784. package/dist/surfaces/format.d.ts.map +1 -0
  785. package/dist/surfaces/format.js +37 -0
  786. package/dist/surfaces/format.js.map +1 -0
  787. package/dist/surfaces/index.d.ts +15 -0
  788. package/dist/surfaces/index.d.ts.map +1 -0
  789. package/dist/surfaces/index.js +18 -0
  790. package/dist/surfaces/index.js.map +1 -0
  791. package/dist/surfaces/language.d.ts +53 -0
  792. package/dist/surfaces/language.d.ts.map +1 -0
  793. package/dist/surfaces/language.js +74 -0
  794. package/dist/surfaces/language.js.map +1 -0
  795. package/dist/surfaces/loaded.d.ts +42 -0
  796. package/dist/surfaces/loaded.d.ts.map +1 -0
  797. package/dist/surfaces/loaded.js +116 -0
  798. package/dist/surfaces/loaded.js.map +1 -0
  799. package/dist/surfaces/locale-choice.d.ts +25 -0
  800. package/dist/surfaces/locale-choice.d.ts.map +1 -0
  801. package/dist/surfaces/locale-choice.js +14 -0
  802. package/dist/surfaces/locale-choice.js.map +1 -0
  803. package/dist/surfaces/messages.d.ts +67 -0
  804. package/dist/surfaces/messages.d.ts.map +1 -0
  805. package/dist/surfaces/messages.js +112 -0
  806. package/dist/surfaces/messages.js.map +1 -0
  807. package/dist/surfaces/page-state.d.ts +14 -0
  808. package/dist/surfaces/page-state.d.ts.map +1 -0
  809. package/dist/surfaces/page-state.js +43 -0
  810. package/dist/surfaces/page-state.js.map +1 -0
  811. package/dist/surfaces/preference.d.ts +32 -0
  812. package/dist/surfaces/preference.d.ts.map +1 -0
  813. package/dist/surfaces/preference.js +72 -0
  814. package/dist/surfaces/preference.js.map +1 -0
  815. package/dist/surfaces/registered.d.ts +33 -0
  816. package/dist/surfaces/registered.d.ts.map +1 -0
  817. package/dist/surfaces/registered.js +51 -0
  818. package/dist/surfaces/registered.js.map +1 -0
  819. package/dist/surfaces/scripts.d.ts +84 -0
  820. package/dist/surfaces/scripts.d.ts.map +1 -0
  821. package/dist/surfaces/scripts.js +28 -0
  822. package/dist/surfaces/scripts.js.map +1 -0
  823. package/dist/surfaces/theme-choice.d.ts +31 -0
  824. package/dist/surfaces/theme-choice.d.ts.map +1 -0
  825. package/dist/surfaces/theme-choice.js +18 -0
  826. package/dist/surfaces/theme-choice.js.map +1 -0
  827. package/dist/surfaces/themes.d.ts +43 -0
  828. package/dist/surfaces/themes.d.ts.map +1 -0
  829. package/dist/surfaces/themes.js +110 -0
  830. package/dist/surfaces/themes.js.map +1 -0
  831. package/dist/surfaces/translations.d.ts +29 -0
  832. package/dist/surfaces/translations.d.ts.map +1 -0
  833. package/dist/surfaces/translations.js +57 -0
  834. package/dist/surfaces/translations.js.map +1 -0
  835. package/dist/sync/batch.d.ts +18 -0
  836. package/dist/sync/batch.d.ts.map +1 -0
  837. package/dist/sync/batch.js +125 -0
  838. package/dist/sync/batch.js.map +1 -0
  839. package/dist/sync/client.d.ts +166 -0
  840. package/dist/sync/client.d.ts.map +1 -0
  841. package/dist/sync/client.js +438 -0
  842. package/dist/sync/client.js.map +1 -0
  843. package/dist/sync/files.d.ts +46 -0
  844. package/dist/sync/files.d.ts.map +1 -0
  845. package/dist/sync/files.js +13 -0
  846. package/dist/sync/files.js.map +1 -0
  847. package/dist/sync/filesystem.d.ts +37 -0
  848. package/dist/sync/filesystem.d.ts.map +1 -0
  849. package/dist/sync/filesystem.js +185 -0
  850. package/dist/sync/filesystem.js.map +1 -0
  851. package/dist/sync/index.d.ts +8 -0
  852. package/dist/sync/index.d.ts.map +1 -0
  853. package/dist/sync/index.js +9 -0
  854. package/dist/sync/index.js.map +1 -0
  855. package/dist/sync/lines.d.ts +18 -0
  856. package/dist/sync/lines.d.ts.map +1 -0
  857. package/dist/sync/lines.js +46 -0
  858. package/dist/sync/lines.js.map +1 -0
  859. package/dist/sync/remote.d.ts +130 -0
  860. package/dist/sync/remote.d.ts.map +1 -0
  861. package/dist/sync/remote.js +46 -0
  862. package/dist/sync/remote.js.map +1 -0
  863. package/dist/sync/state.d.ts +17 -0
  864. package/dist/sync/state.d.ts.map +1 -0
  865. package/dist/sync/state.js +40 -0
  866. package/dist/sync/state.js.map +1 -0
  867. package/dist/telemetry-ingest/batch.d.ts +70 -0
  868. package/dist/telemetry-ingest/batch.d.ts.map +1 -0
  869. package/dist/telemetry-ingest/batch.js +110 -0
  870. package/dist/telemetry-ingest/batch.js.map +1 -0
  871. package/dist/telemetry-ingest/facet.d.ts +21 -0
  872. package/dist/telemetry-ingest/facet.d.ts.map +1 -0
  873. package/dist/telemetry-ingest/facet.js +96 -0
  874. package/dist/telemetry-ingest/facet.js.map +1 -0
  875. package/dist/telemetry-ingest/index.d.ts +5 -0
  876. package/dist/telemetry-ingest/index.d.ts.map +1 -0
  877. package/dist/telemetry-ingest/index.js +8 -0
  878. package/dist/telemetry-ingest/index.js.map +1 -0
  879. package/dist/telemetry-ingest/recorder.d.ts +50 -0
  880. package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
  881. package/dist/telemetry-ingest/recorder.js +298 -0
  882. package/dist/telemetry-ingest/recorder.js.map +1 -0
  883. package/dist/telemetry-ingest/sender.d.ts +14 -0
  884. package/dist/telemetry-ingest/sender.d.ts.map +1 -0
  885. package/dist/telemetry-ingest/sender.js +64 -0
  886. package/dist/telemetry-ingest/sender.js.map +1 -0
  887. package/dist/telemetry-sqlite/index.d.ts +13 -4
  888. package/dist/telemetry-sqlite/index.d.ts.map +1 -1
  889. package/dist/telemetry-sqlite/index.js +81 -241
  890. package/dist/telemetry-sqlite/index.js.map +1 -1
  891. package/dist/telemetry-sqlite/node.d.ts +13 -0
  892. package/dist/telemetry-sqlite/node.d.ts.map +1 -0
  893. package/dist/telemetry-sqlite/node.js +27 -0
  894. package/dist/telemetry-sqlite/node.js.map +1 -0
  895. package/dist/telemetry-sqlite/schema.d.ts +9 -0
  896. package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
  897. package/dist/telemetry-sqlite/schema.js +61 -0
  898. package/dist/telemetry-sqlite/schema.js.map +1 -0
  899. package/dist/telemetry-sqlite/store.d.ts +3 -0
  900. package/dist/telemetry-sqlite/store.d.ts.map +1 -1
  901. package/dist/telemetry-sqlite/store.js +24 -13
  902. package/dist/telemetry-sqlite/store.js.map +1 -1
  903. package/dist/telemetry.d.ts +937 -0
  904. package/dist/telemetry.d.ts.map +1 -0
  905. package/dist/telemetry.js +470 -0
  906. package/dist/telemetry.js.map +1 -0
  907. package/dist/tui/bridge.d.ts +112 -0
  908. package/dist/tui/bridge.d.ts.map +1 -0
  909. package/dist/tui/bridge.js +9 -0
  910. package/dist/tui/bridge.js.map +1 -0
  911. package/dist/tui/channel.d.ts +44 -0
  912. package/dist/tui/channel.d.ts.map +1 -0
  913. package/dist/tui/channel.js +150 -0
  914. package/dist/tui/channel.js.map +1 -0
  915. package/dist/tui/frames.d.ts +5 -0
  916. package/dist/tui/frames.d.ts.map +1 -0
  917. package/dist/tui/frames.js +52 -0
  918. package/dist/tui/frames.js.map +1 -0
  919. package/dist/tui/index.d.ts +7 -0
  920. package/dist/tui/index.d.ts.map +1 -0
  921. package/dist/tui/index.js +8 -0
  922. package/dist/tui/index.js.map +1 -0
  923. package/dist/tui/runtime.d.ts +46 -0
  924. package/dist/tui/runtime.d.ts.map +1 -0
  925. package/dist/tui/runtime.js +101 -0
  926. package/dist/tui/runtime.js.map +1 -0
  927. package/dist/tui/scope.d.ts +46 -0
  928. package/dist/tui/scope.d.ts.map +1 -0
  929. package/dist/tui/scope.js +141 -0
  930. package/dist/tui/scope.js.map +1 -0
  931. package/dist/tui/terminal.d.ts +15 -0
  932. package/dist/tui/terminal.d.ts.map +1 -0
  933. package/dist/tui/terminal.js +37 -0
  934. package/dist/tui/terminal.js.map +1 -0
  935. package/dist/tui/theme.d.ts +17 -0
  936. package/dist/tui/theme.d.ts.map +1 -0
  937. package/dist/tui/theme.js +38 -0
  938. package/dist/tui/theme.js.map +1 -0
  939. package/dist/web/environment.d.ts +4 -0
  940. package/dist/web/environment.d.ts.map +1 -0
  941. package/dist/web/environment.js +37 -0
  942. package/dist/web/environment.js.map +1 -0
  943. package/dist/web/index.d.ts +5 -0
  944. package/dist/web/index.d.ts.map +1 -0
  945. package/dist/web/index.js +7 -0
  946. package/dist/web/index.js.map +1 -0
  947. package/dist/web/language.d.ts +7 -0
  948. package/dist/web/language.d.ts.map +1 -0
  949. package/dist/web/language.js +21 -0
  950. package/dist/web/language.js.map +1 -0
  951. package/dist/web/page.d.ts +29 -0
  952. package/dist/web/page.d.ts.map +1 -0
  953. package/dist/web/page.js +92 -0
  954. package/dist/web/page.js.map +1 -0
  955. package/dist/web/scripts.d.ts +23 -0
  956. package/dist/web/scripts.d.ts.map +1 -0
  957. package/dist/web/scripts.js +50 -0
  958. package/dist/web/scripts.js.map +1 -0
  959. package/dist/web/styles.d.ts +17 -0
  960. package/dist/web/styles.d.ts.map +1 -0
  961. package/dist/web/styles.js +218 -0
  962. package/dist/web/styles.js.map +1 -0
  963. package/dist/web/themes.d.ts +6 -0
  964. package/dist/web/themes.d.ts.map +1 -0
  965. package/dist/web/themes.js +31 -0
  966. package/dist/web/themes.js.map +1 -0
  967. package/docs/benchmarks.md +1036 -0
  968. package/docs/decisions.md +3436 -0
  969. package/docs/dependencies/book.md +1671 -0
  970. package/docs/dependencies/index.html +2641 -0
  971. package/docs/design.md +3065 -0
  972. package/docs/durable-observers/book.md +432 -0
  973. package/docs/durable-observers/index.html +517 -0
  974. package/docs/guide-plugins-hosts/book.md +957 -0
  975. package/docs/guide-plugins-hosts/index.html +952 -0
  976. package/docs/http-workers/book.md +378 -0
  977. package/docs/http-workers/index.html +515 -0
  978. package/docs/i18n/book.md +217 -0
  979. package/docs/i18n/index.html +344 -0
  980. package/docs/layer-1.md +311 -0
  981. package/docs/layer-2.md +216 -0
  982. package/docs/p3-features/README.md +6 -0
  983. package/docs/p3-features/book.md +478 -0
  984. package/docs/plugin-authoring.md +276 -0
  985. package/docs/plugin-model/book.md +186 -0
  986. package/docs/plugin-model/index.html +310 -0
  987. package/docs/plugin-primer/book.md +273 -0
  988. package/docs/plugin-primer/index.html +430 -0
  989. package/docs/slice-1.md +236 -0
  990. package/docs/slice-10.md +288 -0
  991. package/docs/slice-11.md +114 -0
  992. package/docs/slice-12.md +132 -0
  993. package/docs/slice-13.md +121 -0
  994. package/docs/slice-2.md +174 -0
  995. package/docs/slice-3a.md +296 -0
  996. package/docs/slice-3b.md +197 -0
  997. package/docs/slice-4a.md +418 -0
  998. package/docs/slice-4b.md +208 -0
  999. package/docs/slice-6a.md +676 -0
  1000. package/docs/slice-6b.md +332 -0
  1001. package/docs/slice-7b/book.md +608 -0
  1002. package/docs/slice-7b/index.html +842 -0
  1003. package/docs/slice-7b.md +255 -0
  1004. package/docs/slice-7c.md +165 -0
  1005. package/docs/slice-9.md +110 -0
  1006. package/docs/slices.md +241 -0
  1007. package/docs/store/book.md +670 -0
  1008. package/docs/store/index.html +861 -0
  1009. package/docs/store/walkthrough.md +193 -0
  1010. package/docs/theming/book.md +223 -0
  1011. package/docs/theming/index.html +371 -0
  1012. package/docs/tutorial/book.md +2169 -0
  1013. package/docs/tutorial/index.html +2112 -0
  1014. package/docs/tutorial/screens/click-after.png +0 -0
  1015. package/docs/tutorial/screens/click-before.png +0 -0
  1016. package/docs/tutorial/screens/edited.png +0 -0
  1017. package/docs/tutorial/screens/french.png +0 -0
  1018. package/docs/tutorial/screens/harbor.png +0 -0
  1019. package/docs/tutorial/screens/page.png +0 -0
  1020. package/docs/tutorial/screens/traces-ada.png +0 -0
  1021. package/docs/tutorial/screens/traces.png +0 -0
  1022. package/package.json +99 -21
  1023. package/dist/cell.d.ts +0 -122
  1024. package/dist/cell.d.ts.map +0 -1
  1025. package/dist/cell.js +0 -356
  1026. package/dist/cell.js.map +0 -1
  1027. package/dist/cluster.d.ts +0 -27
  1028. package/dist/cluster.d.ts.map +0 -1
  1029. package/dist/cluster.js +0 -230
  1030. package/dist/cluster.js.map +0 -1
  1031. package/dist/connection.d.ts +0 -270
  1032. package/dist/connection.d.ts.map +0 -1
  1033. package/dist/connection.js +0 -1216
  1034. package/dist/connection.js.map +0 -1
  1035. package/dist/contract.d.ts +0 -207
  1036. package/dist/contract.d.ts.map +0 -1
  1037. package/dist/contract.js +0 -241
  1038. package/dist/contract.js.map +0 -1
  1039. package/dist/declare.d.ts +0 -33
  1040. package/dist/declare.d.ts.map +0 -1
  1041. package/dist/declare.js +0 -2
  1042. package/dist/declare.js.map +0 -1
  1043. package/dist/errors.d.ts +0 -28
  1044. package/dist/errors.d.ts.map +0 -1
  1045. package/dist/errors.js +0 -59
  1046. package/dist/errors.js.map +0 -1
  1047. package/dist/host.d.ts +0 -348
  1048. package/dist/host.d.ts.map +0 -1
  1049. package/dist/host.js +0 -1002
  1050. package/dist/host.js.map +0 -1
  1051. package/dist/link.d.ts +0 -107
  1052. package/dist/link.d.ts.map +0 -1
  1053. package/dist/link.js +0 -355
  1054. package/dist/link.js.map +0 -1
  1055. package/dist/loader.d.ts +0 -4
  1056. package/dist/loader.d.ts.map +0 -1
  1057. package/dist/loader.js +0 -73
  1058. package/dist/loader.js.map +0 -1
  1059. package/dist/manager.d.ts +0 -115
  1060. package/dist/manager.d.ts.map +0 -1
  1061. package/dist/manager.js +0 -345
  1062. package/dist/manager.js.map +0 -1
  1063. package/dist/next/contracts/accepts.d.ts +0 -81
  1064. package/dist/next/contracts/accepts.d.ts.map +0 -1
  1065. package/dist/next/contracts/accepts.js.map +0 -1
  1066. package/dist/next/contracts/contract.d.ts +0 -121
  1067. package/dist/next/contracts/contract.d.ts.map +0 -1
  1068. package/dist/next/contracts/contract.js.map +0 -1
  1069. package/dist/next/contracts/declare.d.ts.map +0 -1
  1070. package/dist/next/contracts/declare.js.map +0 -1
  1071. package/dist/next/contracts/evolve.d.ts.map +0 -1
  1072. package/dist/next/contracts/evolve.js.map +0 -1
  1073. package/dist/next/contracts/fingerprint.d.ts +0 -16
  1074. package/dist/next/contracts/fingerprint.d.ts.map +0 -1
  1075. package/dist/next/contracts/fingerprint.js.map +0 -1
  1076. package/dist/next/contracts/history.d.ts.map +0 -1
  1077. package/dist/next/contracts/history.js.map +0 -1
  1078. package/dist/next/contracts/host-kind.d.ts.map +0 -1
  1079. package/dist/next/contracts/host-kind.js.map +0 -1
  1080. package/dist/next/contracts/index.d.ts.map +0 -1
  1081. package/dist/next/contracts/index.js.map +0 -1
  1082. package/dist/next/contracts/internal.d.ts.map +0 -1
  1083. package/dist/next/contracts/internal.js.map +0 -1
  1084. package/dist/next/contracts/names.d.ts.map +0 -1
  1085. package/dist/next/contracts/names.js.map +0 -1
  1086. package/dist/next/contracts/params.d.ts +0 -28
  1087. package/dist/next/contracts/params.d.ts.map +0 -1
  1088. package/dist/next/contracts/params.js.map +0 -1
  1089. package/dist/next/contracts/schema.d.ts.map +0 -1
  1090. package/dist/next/contracts/schema.js.map +0 -1
  1091. package/dist/next/contracts/snapshot.d.ts +0 -16
  1092. package/dist/next/contracts/snapshot.d.ts.map +0 -1
  1093. package/dist/next/contracts/snapshot.js +0 -167
  1094. package/dist/next/contracts/snapshot.js.map +0 -1
  1095. package/dist/next/data/args.d.ts +0 -50
  1096. package/dist/next/data/args.d.ts.map +0 -1
  1097. package/dist/next/data/args.js.map +0 -1
  1098. package/dist/next/data/errors.d.ts +0 -73
  1099. package/dist/next/data/errors.d.ts.map +0 -1
  1100. package/dist/next/data/errors.js +0 -107
  1101. package/dist/next/data/errors.js.map +0 -1
  1102. package/dist/next/data/failure.d.ts.map +0 -1
  1103. package/dist/next/data/failure.js +0 -72
  1104. package/dist/next/data/failure.js.map +0 -1
  1105. package/dist/next/data/index.d.ts +0 -4
  1106. package/dist/next/data/index.d.ts.map +0 -1
  1107. package/dist/next/data/index.js +0 -4
  1108. package/dist/next/data/index.js.map +0 -1
  1109. package/dist/next/data/internal.d.ts +0 -7
  1110. package/dist/next/data/internal.d.ts.map +0 -1
  1111. package/dist/next/data/internal.js +0 -8
  1112. package/dist/next/data/internal.js.map +0 -1
  1113. package/dist/next/data/params.d.ts +0 -20
  1114. package/dist/next/data/params.d.ts.map +0 -1
  1115. package/dist/next/data/params.js.map +0 -1
  1116. package/dist/next/data/principal.d.ts +0 -17
  1117. package/dist/next/data/principal.d.ts.map +0 -1
  1118. package/dist/next/data/principal.js +0 -41
  1119. package/dist/next/data/principal.js.map +0 -1
  1120. package/dist/next/data/validator.d.ts +0 -12
  1121. package/dist/next/data/validator.d.ts.map +0 -1
  1122. package/dist/next/data/validator.js +0 -34
  1123. package/dist/next/data/validator.js.map +0 -1
  1124. package/dist/next/documents/address-source.d.ts +0 -20
  1125. package/dist/next/documents/address-source.d.ts.map +0 -1
  1126. package/dist/next/documents/address-source.js.map +0 -1
  1127. package/dist/next/documents/definition.d.ts +0 -84
  1128. package/dist/next/documents/definition.d.ts.map +0 -1
  1129. package/dist/next/documents/definition.js +0 -73
  1130. package/dist/next/documents/definition.js.map +0 -1
  1131. package/dist/next/documents/documents.d.ts +0 -106
  1132. package/dist/next/documents/documents.d.ts.map +0 -1
  1133. package/dist/next/documents/documents.js +0 -224
  1134. package/dist/next/documents/documents.js.map +0 -1
  1135. package/dist/next/documents/fence.d.ts.map +0 -1
  1136. package/dist/next/documents/fence.js.map +0 -1
  1137. package/dist/next/documents/handles.d.ts +0 -76
  1138. package/dist/next/documents/handles.d.ts.map +0 -1
  1139. package/dist/next/documents/handles.js.map +0 -1
  1140. package/dist/next/documents/index.d.ts.map +0 -1
  1141. package/dist/next/documents/index.js.map +0 -1
  1142. package/dist/next/documents/internal.d.ts +0 -9
  1143. package/dist/next/documents/internal.d.ts.map +0 -1
  1144. package/dist/next/documents/internal.js.map +0 -1
  1145. package/dist/next/documents/keyed-slot.d.ts +0 -103
  1146. package/dist/next/documents/keyed-slot.d.ts.map +0 -1
  1147. package/dist/next/documents/keyed-slot.js +0 -395
  1148. package/dist/next/documents/keyed-slot.js.map +0 -1
  1149. package/dist/next/documents/line.d.ts.map +0 -1
  1150. package/dist/next/documents/line.js.map +0 -1
  1151. package/dist/next/documents/persistence.d.ts +0 -104
  1152. package/dist/next/documents/persistence.d.ts.map +0 -1
  1153. package/dist/next/documents/persistence.js +0 -128
  1154. package/dist/next/documents/persistence.js.map +0 -1
  1155. package/dist/next/documents/residency.d.ts +0 -31
  1156. package/dist/next/documents/residency.d.ts.map +0 -1
  1157. package/dist/next/documents/residency.js.map +0 -1
  1158. package/dist/next/documents/slot.d.ts +0 -109
  1159. package/dist/next/documents/slot.d.ts.map +0 -1
  1160. package/dist/next/documents/slot.js +0 -181
  1161. package/dist/next/documents/slot.js.map +0 -1
  1162. package/dist/next/documents/transaction.d.ts +0 -133
  1163. package/dist/next/documents/transaction.d.ts.map +0 -1
  1164. package/dist/next/documents/transaction.js +0 -409
  1165. package/dist/next/documents/transaction.js.map +0 -1
  1166. package/dist/next/host/activity.d.ts +0 -31
  1167. package/dist/next/host/activity.d.ts.map +0 -1
  1168. package/dist/next/host/activity.js +0 -40
  1169. package/dist/next/host/activity.js.map +0 -1
  1170. package/dist/next/host/adapted.d.ts +0 -49
  1171. package/dist/next/host/adapted.d.ts.map +0 -1
  1172. package/dist/next/host/adapted.js.map +0 -1
  1173. package/dist/next/host/attempt.d.ts +0 -278
  1174. package/dist/next/host/attempt.d.ts.map +0 -1
  1175. package/dist/next/host/attempt.js +0 -1072
  1176. package/dist/next/host/attempt.js.map +0 -1
  1177. package/dist/next/host/backoff.d.ts.map +0 -1
  1178. package/dist/next/host/backoff.js.map +0 -1
  1179. package/dist/next/host/ctx.d.ts +0 -47
  1180. package/dist/next/host/ctx.d.ts.map +0 -1
  1181. package/dist/next/host/ctx.js +0 -108
  1182. package/dist/next/host/ctx.js.map +0 -1
  1183. package/dist/next/host/deadline.d.ts.map +0 -1
  1184. package/dist/next/host/deadline.js.map +0 -1
  1185. package/dist/next/host/dependencies.d.ts.map +0 -1
  1186. package/dist/next/host/dependencies.js.map +0 -1
  1187. package/dist/next/host/destination.d.ts +0 -48
  1188. package/dist/next/host/destination.d.ts.map +0 -1
  1189. package/dist/next/host/destination.js.map +0 -1
  1190. package/dist/next/host/facet.d.ts +0 -79
  1191. package/dist/next/host/facet.d.ts.map +0 -1
  1192. package/dist/next/host/facet.js.map +0 -1
  1193. package/dist/next/host/follow.d.ts +0 -52
  1194. package/dist/next/host/follow.d.ts.map +0 -1
  1195. package/dist/next/host/follow.js.map +0 -1
  1196. package/dist/next/host/host.d.ts +0 -495
  1197. package/dist/next/host/host.d.ts.map +0 -1
  1198. package/dist/next/host/host.js +0 -1075
  1199. package/dist/next/host/host.js.map +0 -1
  1200. package/dist/next/host/index.d.ts +0 -17
  1201. package/dist/next/host/index.d.ts.map +0 -1
  1202. package/dist/next/host/index.js.map +0 -1
  1203. package/dist/next/host/internal.d.ts +0 -10
  1204. package/dist/next/host/internal.d.ts.map +0 -1
  1205. package/dist/next/host/internal.js +0 -8
  1206. package/dist/next/host/internal.js.map +0 -1
  1207. package/dist/next/host/members.d.ts +0 -50
  1208. package/dist/next/host/members.d.ts.map +0 -1
  1209. package/dist/next/host/members.js.map +0 -1
  1210. package/dist/next/host/native.d.ts +0 -55
  1211. package/dist/next/host/native.d.ts.map +0 -1
  1212. package/dist/next/host/native.js +0 -92
  1213. package/dist/next/host/native.js.map +0 -1
  1214. package/dist/next/host/object.d.ts +0 -290
  1215. package/dist/next/host/object.d.ts.map +0 -1
  1216. package/dist/next/host/object.js +0 -1127
  1217. package/dist/next/host/object.js.map +0 -1
  1218. package/dist/next/host/parked.d.ts +0 -23
  1219. package/dist/next/host/parked.d.ts.map +0 -1
  1220. package/dist/next/host/parked.js.map +0 -1
  1221. package/dist/next/host/presence.d.ts +0 -34
  1222. package/dist/next/host/presence.d.ts.map +0 -1
  1223. package/dist/next/host/presence.js.map +0 -1
  1224. package/dist/next/host/ref-state.d.ts +0 -53
  1225. package/dist/next/host/ref-state.d.ts.map +0 -1
  1226. package/dist/next/host/ref-state.js +0 -83
  1227. package/dist/next/host/ref-state.js.map +0 -1
  1228. package/dist/next/host/reference-keys.d.ts +0 -36
  1229. package/dist/next/host/reference-keys.d.ts.map +0 -1
  1230. package/dist/next/host/reference-keys.js +0 -168
  1231. package/dist/next/host/reference-keys.js.map +0 -1
  1232. package/dist/next/host/reference-source.d.ts +0 -65
  1233. package/dist/next/host/reference-source.d.ts.map +0 -1
  1234. package/dist/next/host/reference-source.js +0 -285
  1235. package/dist/next/host/reference-source.js.map +0 -1
  1236. package/dist/next/host/reference.d.ts +0 -308
  1237. package/dist/next/host/reference.d.ts.map +0 -1
  1238. package/dist/next/host/reference.js +0 -775
  1239. package/dist/next/host/reference.js.map +0 -1
  1240. package/dist/next/host/retry-on.d.ts.map +0 -1
  1241. package/dist/next/host/retry-on.js.map +0 -1
  1242. package/dist/next/host/revocation.d.ts +0 -16
  1243. package/dist/next/host/revocation.d.ts.map +0 -1
  1244. package/dist/next/host/revocation.js.map +0 -1
  1245. package/dist/next/host/root.d.ts +0 -27
  1246. package/dist/next/host/root.d.ts.map +0 -1
  1247. package/dist/next/host/root.js +0 -68
  1248. package/dist/next/host/root.js.map +0 -1
  1249. package/dist/next/host/route.d.ts +0 -64
  1250. package/dist/next/host/route.d.ts.map +0 -1
  1251. package/dist/next/host/route.js +0 -190
  1252. package/dist/next/host/route.js.map +0 -1
  1253. package/dist/next/host/routines.d.ts +0 -76
  1254. package/dist/next/host/routines.d.ts.map +0 -1
  1255. package/dist/next/host/routines.js +0 -350
  1256. package/dist/next/host/routines.js.map +0 -1
  1257. package/dist/next/host/sleep.d.ts +0 -9
  1258. package/dist/next/host/sleep.d.ts.map +0 -1
  1259. package/dist/next/host/sleep.js.map +0 -1
  1260. package/dist/next/host/staging.d.ts +0 -94
  1261. package/dist/next/host/staging.d.ts.map +0 -1
  1262. package/dist/next/host/staging.js +0 -302
  1263. package/dist/next/host/staging.js.map +0 -1
  1264. package/dist/next/host/unbound.d.ts +0 -30
  1265. package/dist/next/host/unbound.d.ts.map +0 -1
  1266. package/dist/next/host/unbound.js +0 -67
  1267. package/dist/next/host/unbound.js.map +0 -1
  1268. package/dist/next/host/uuid.d.ts.map +0 -1
  1269. package/dist/next/host/uuid.js.map +0 -1
  1270. package/dist/next/index.d.ts +0 -28
  1271. package/dist/next/index.d.ts.map +0 -1
  1272. package/dist/next/index.js +0 -18
  1273. package/dist/next/index.js.map +0 -1
  1274. package/dist/next/jobs/definition.d.ts.map +0 -1
  1275. package/dist/next/jobs/definition.js.map +0 -1
  1276. package/dist/next/jobs/index.d.ts.map +0 -1
  1277. package/dist/next/jobs/index.js.map +0 -1
  1278. package/dist/next/jobs/internal.d.ts.map +0 -1
  1279. package/dist/next/jobs/internal.js.map +0 -1
  1280. package/dist/next/jobs/job.d.ts +0 -152
  1281. package/dist/next/jobs/job.d.ts.map +0 -1
  1282. package/dist/next/jobs/job.js +0 -320
  1283. package/dist/next/jobs/job.js.map +0 -1
  1284. package/dist/next/jobs/persisted.d.ts +0 -38
  1285. package/dist/next/jobs/persisted.d.ts.map +0 -1
  1286. package/dist/next/jobs/persisted.js.map +0 -1
  1287. package/dist/next/jobs/records.d.ts +0 -231
  1288. package/dist/next/jobs/records.d.ts.map +0 -1
  1289. package/dist/next/jobs/records.js +0 -869
  1290. package/dist/next/jobs/records.js.map +0 -1
  1291. package/dist/next/jobs/run-states.d.ts +0 -69
  1292. package/dist/next/jobs/run-states.d.ts.map +0 -1
  1293. package/dist/next/jobs/run-states.js +0 -228
  1294. package/dist/next/jobs/run-states.js.map +0 -1
  1295. package/dist/next/jobs/run.d.ts +0 -113
  1296. package/dist/next/jobs/run.d.ts.map +0 -1
  1297. package/dist/next/jobs/run.js +0 -200
  1298. package/dist/next/jobs/run.js.map +0 -1
  1299. package/dist/next/jobs/running.d.ts +0 -44
  1300. package/dist/next/jobs/running.d.ts.map +0 -1
  1301. package/dist/next/jobs/running.js.map +0 -1
  1302. package/dist/next/jobs/stored.d.ts +0 -63
  1303. package/dist/next/jobs/stored.d.ts.map +0 -1
  1304. package/dist/next/jobs/stored.js.map +0 -1
  1305. package/dist/next/link/binary.d.ts.map +0 -1
  1306. package/dist/next/link/binary.js +0 -534
  1307. package/dist/next/link/binary.js.map +0 -1
  1308. package/dist/next/link/channel.d.ts +0 -63
  1309. package/dist/next/link/channel.d.ts.map +0 -1
  1310. package/dist/next/link/channel.js +0 -202
  1311. package/dist/next/link/channel.js.map +0 -1
  1312. package/dist/next/link/errors.d.ts.map +0 -1
  1313. package/dist/next/link/errors.js.map +0 -1
  1314. package/dist/next/link/index.d.ts.map +0 -1
  1315. package/dist/next/link/index.js.map +0 -1
  1316. package/dist/next/link/internal.d.ts.map +0 -1
  1317. package/dist/next/link/internal.js.map +0 -1
  1318. package/dist/next/link/ipc.d.ts.map +0 -1
  1319. package/dist/next/link/ipc.js.map +0 -1
  1320. package/dist/next/link/link.d.ts.map +0 -1
  1321. package/dist/next/link/link.js.map +0 -1
  1322. package/dist/next/link/message.d.ts +0 -249
  1323. package/dist/next/link/message.d.ts.map +0 -1
  1324. package/dist/next/link/message.js +0 -123
  1325. package/dist/next/link/message.js.map +0 -1
  1326. package/dist/next/link/part.d.ts +0 -80
  1327. package/dist/next/link/part.d.ts.map +0 -1
  1328. package/dist/next/link/part.js +0 -164
  1329. package/dist/next/link/part.js.map +0 -1
  1330. package/dist/next/link/text.d.ts.map +0 -1
  1331. package/dist/next/link/text.js +0 -335
  1332. package/dist/next/link/text.js.map +0 -1
  1333. package/dist/next/link/values.d.ts.map +0 -1
  1334. package/dist/next/link/values.js +0 -117
  1335. package/dist/next/link/values.js.map +0 -1
  1336. package/dist/next/link/websocket.d.ts.map +0 -1
  1337. package/dist/next/link/websocket.js.map +0 -1
  1338. package/dist/next/registries/contribution.d.ts.map +0 -1
  1339. package/dist/next/registries/contribution.js.map +0 -1
  1340. package/dist/next/registries/entries.d.ts.map +0 -1
  1341. package/dist/next/registries/entries.js.map +0 -1
  1342. package/dist/next/registries/index.d.ts.map +0 -1
  1343. package/dist/next/registries/index.js.map +0 -1
  1344. package/dist/next/registries/internal.d.ts.map +0 -1
  1345. package/dist/next/registries/internal.js.map +0 -1
  1346. package/dist/next/registries/record.d.ts +0 -94
  1347. package/dist/next/registries/record.d.ts.map +0 -1
  1348. package/dist/next/registries/record.js +0 -253
  1349. package/dist/next/registries/record.js.map +0 -1
  1350. package/dist/next/registries/registry.d.ts +0 -74
  1351. package/dist/next/registries/registry.d.ts.map +0 -1
  1352. package/dist/next/registries/registry.js.map +0 -1
  1353. package/dist/next/registries/value.d.ts.map +0 -1
  1354. package/dist/next/registries/value.js +0 -199
  1355. package/dist/next/registries/value.js.map +0 -1
  1356. package/dist/next/remote/calls.d.ts.map +0 -1
  1357. package/dist/next/remote/calls.js.map +0 -1
  1358. package/dist/next/remote/consumer.d.ts +0 -42
  1359. package/dist/next/remote/consumer.d.ts.map +0 -1
  1360. package/dist/next/remote/consumer.js +0 -343
  1361. package/dist/next/remote/consumer.js.map +0 -1
  1362. package/dist/next/remote/hold.d.ts +0 -130
  1363. package/dist/next/remote/hold.d.ts.map +0 -1
  1364. package/dist/next/remote/hold.js +0 -537
  1365. package/dist/next/remote/hold.js.map +0 -1
  1366. package/dist/next/remote/host-link.d.ts +0 -77
  1367. package/dist/next/remote/host-link.d.ts.map +0 -1
  1368. package/dist/next/remote/host-link.js +0 -182
  1369. package/dist/next/remote/host-link.js.map +0 -1
  1370. package/dist/next/remote/internal.d.ts.map +0 -1
  1371. package/dist/next/remote/internal.js.map +0 -1
  1372. package/dist/next/remote/path.d.ts.map +0 -1
  1373. package/dist/next/remote/path.js.map +0 -1
  1374. package/dist/next/remote/provider.d.ts +0 -76
  1375. package/dist/next/remote/provider.d.ts.map +0 -1
  1376. package/dist/next/remote/provider.js +0 -506
  1377. package/dist/next/remote/provider.js.map +0 -1
  1378. package/dist/next/remote/relay.d.ts +0 -58
  1379. package/dist/next/remote/relay.d.ts.map +0 -1
  1380. package/dist/next/remote/relay.js +0 -117
  1381. package/dist/next/remote/relay.js.map +0 -1
  1382. package/dist/next/remote/remote-object.d.ts +0 -133
  1383. package/dist/next/remote/remote-object.d.ts.map +0 -1
  1384. package/dist/next/remote/remote-object.js +0 -411
  1385. package/dist/next/remote/remote-object.js.map +0 -1
  1386. package/dist/next/remote/replica.d.ts +0 -59
  1387. package/dist/next/remote/replica.d.ts.map +0 -1
  1388. package/dist/next/remote/replica.js +0 -125
  1389. package/dist/next/remote/replica.js.map +0 -1
  1390. package/dist/next/state/batch.d.ts +0 -64
  1391. package/dist/next/state/batch.d.ts.map +0 -1
  1392. package/dist/next/state/batch.js +0 -163
  1393. package/dist/next/state/batch.js.map +0 -1
  1394. package/dist/next/state/derive.d.ts +0 -52
  1395. package/dist/next/state/derive.d.ts.map +0 -1
  1396. package/dist/next/state/derive.js +0 -182
  1397. package/dist/next/state/derive.js.map +0 -1
  1398. package/dist/next/state/index.d.ts +0 -6
  1399. package/dist/next/state/index.d.ts.map +0 -1
  1400. package/dist/next/state/index.js.map +0 -1
  1401. package/dist/next/state/internal.d.ts.map +0 -1
  1402. package/dist/next/state/internal.js.map +0 -1
  1403. package/dist/next/state/native-source.d.ts +0 -106
  1404. package/dist/next/state/native-source.d.ts.map +0 -1
  1405. package/dist/next/state/native-source.js +0 -240
  1406. package/dist/next/state/native-source.js.map +0 -1
  1407. package/dist/next/state/watchable.d.ts +0 -114
  1408. package/dist/next/state/watchable.d.ts.map +0 -1
  1409. package/dist/next/state/watchable.js +0 -156
  1410. package/dist/next/state/watchable.js.map +0 -1
  1411. package/dist/next/state/writable.d.ts +0 -32
  1412. package/dist/next/state/writable.d.ts.map +0 -1
  1413. package/dist/next/state/writable.js.map +0 -1
  1414. package/dist/next/store/adapter.d.ts +0 -67
  1415. package/dist/next/store/adapter.d.ts.map +0 -1
  1416. package/dist/next/store/adapter.js.map +0 -1
  1417. package/dist/next/store/allocator.d.ts.map +0 -1
  1418. package/dist/next/store/allocator.js.map +0 -1
  1419. package/dist/next/store/applier.d.ts.map +0 -1
  1420. package/dist/next/store/applier.js.map +0 -1
  1421. package/dist/next/store/apply-batch.d.ts +0 -12
  1422. package/dist/next/store/apply-batch.d.ts.map +0 -1
  1423. package/dist/next/store/apply-batch.js.map +0 -1
  1424. package/dist/next/store/archive.d.ts +0 -32
  1425. package/dist/next/store/archive.d.ts.map +0 -1
  1426. package/dist/next/store/archive.js +0 -129
  1427. package/dist/next/store/archive.js.map +0 -1
  1428. package/dist/next/store/backend.d.ts +0 -10
  1429. package/dist/next/store/backend.d.ts.map +0 -1
  1430. package/dist/next/store/backend.js.map +0 -1
  1431. package/dist/next/store/catalog.d.ts +0 -24
  1432. package/dist/next/store/catalog.d.ts.map +0 -1
  1433. package/dist/next/store/catalog.js.map +0 -1
  1434. package/dist/next/store/claims.d.ts.map +0 -1
  1435. package/dist/next/store/claims.js.map +0 -1
  1436. package/dist/next/store/columns.d.ts.map +0 -1
  1437. package/dist/next/store/columns.js.map +0 -1
  1438. package/dist/next/store/engine.d.ts +0 -176
  1439. package/dist/next/store/engine.d.ts.map +0 -1
  1440. package/dist/next/store/engine.js +0 -283
  1441. package/dist/next/store/engine.js.map +0 -1
  1442. package/dist/next/store/evaluate.d.ts +0 -17
  1443. package/dist/next/store/evaluate.d.ts.map +0 -1
  1444. package/dist/next/store/evaluate.js.map +0 -1
  1445. package/dist/next/store/export.d.ts +0 -17
  1446. package/dist/next/store/export.d.ts.map +0 -1
  1447. package/dist/next/store/export.js +0 -200
  1448. package/dist/next/store/export.js.map +0 -1
  1449. package/dist/next/store/expression.d.ts +0 -150
  1450. package/dist/next/store/expression.d.ts.map +0 -1
  1451. package/dist/next/store/expression.js.map +0 -1
  1452. package/dist/next/store/import.d.ts +0 -10
  1453. package/dist/next/store/import.d.ts.map +0 -1
  1454. package/dist/next/store/import.js +0 -276
  1455. package/dist/next/store/import.js.map +0 -1
  1456. package/dist/next/store/index.d.ts.map +0 -1
  1457. package/dist/next/store/index.js.map +0 -1
  1458. package/dist/next/store/json-column.d.ts +0 -33
  1459. package/dist/next/store/json-column.d.ts.map +0 -1
  1460. package/dist/next/store/json-column.js +0 -61
  1461. package/dist/next/store/json-column.js.map +0 -1
  1462. package/dist/next/store/jsonl.d.ts.map +0 -1
  1463. package/dist/next/store/jsonl.js.map +0 -1
  1464. package/dist/next/store/outbox.d.ts +0 -26
  1465. package/dist/next/store/outbox.d.ts.map +0 -1
  1466. package/dist/next/store/outbox.js.map +0 -1
  1467. package/dist/next/store/query.d.ts +0 -39
  1468. package/dist/next/store/query.d.ts.map +0 -1
  1469. package/dist/next/store/query.js.map +0 -1
  1470. package/dist/next/store/refusal.d.ts.map +0 -1
  1471. package/dist/next/store/refusal.js.map +0 -1
  1472. package/dist/next/store/rows.d.ts +0 -80
  1473. package/dist/next/store/rows.d.ts.map +0 -1
  1474. package/dist/next/store/rows.js.map +0 -1
  1475. package/dist/next/store/schema.d.ts +0 -25
  1476. package/dist/next/store/schema.d.ts.map +0 -1
  1477. package/dist/next/store/schema.js +0 -115
  1478. package/dist/next/store/schema.js.map +0 -1
  1479. package/dist/next/store/sql.d.ts +0 -73
  1480. package/dist/next/store/sql.d.ts.map +0 -1
  1481. package/dist/next/store/sql.js.map +0 -1
  1482. package/dist/next/store/step.d.ts +0 -48
  1483. package/dist/next/store/step.d.ts.map +0 -1
  1484. package/dist/next/store/step.js +0 -50
  1485. package/dist/next/store/step.js.map +0 -1
  1486. package/dist/next/store/store.d.ts +0 -161
  1487. package/dist/next/store/store.d.ts.map +0 -1
  1488. package/dist/next/store/store.js +0 -627
  1489. package/dist/next/store/store.js.map +0 -1
  1490. package/dist/next/store/table-changes.d.ts +0 -29
  1491. package/dist/next/store/table-changes.d.ts.map +0 -1
  1492. package/dist/next/store/table-changes.js.map +0 -1
  1493. package/dist/next/store/table-evolve.d.ts.map +0 -1
  1494. package/dist/next/store/table-evolve.js.map +0 -1
  1495. package/dist/next/store/table-handle.d.ts +0 -67
  1496. package/dist/next/store/table-handle.d.ts.map +0 -1
  1497. package/dist/next/store/table-handle.js +0 -101
  1498. package/dist/next/store/table-handle.js.map +0 -1
  1499. package/dist/next/store/table-history.d.ts.map +0 -1
  1500. package/dist/next/store/table-history.js.map +0 -1
  1501. package/dist/next/store/table-migration.d.ts +0 -16
  1502. package/dist/next/store/table-migration.d.ts.map +0 -1
  1503. package/dist/next/store/table-migration.js +0 -202
  1504. package/dist/next/store/table-migration.js.map +0 -1
  1505. package/dist/next/store/table-writes.d.ts.map +0 -1
  1506. package/dist/next/store/table-writes.js +0 -165
  1507. package/dist/next/store/table-writes.js.map +0 -1
  1508. package/dist/next/store/table.d.ts +0 -80
  1509. package/dist/next/store/table.d.ts.map +0 -1
  1510. package/dist/next/store/table.js.map +0 -1
  1511. package/dist/next/store/text.d.ts.map +0 -1
  1512. package/dist/next/store/text.js.map +0 -1
  1513. package/dist/next/store/writes.d.ts.map +0 -1
  1514. package/dist/next/store/writes.js.map +0 -1
  1515. package/dist/next-node/compression.d.ts +0 -7
  1516. package/dist/next-node/compression.d.ts.map +0 -1
  1517. package/dist/next-node/compression.js +0 -24
  1518. package/dist/next-node/compression.js.map +0 -1
  1519. package/dist/next-node/http/admission.d.ts.map +0 -1
  1520. package/dist/next-node/http/admission.js.map +0 -1
  1521. package/dist/next-node/http/authenticate.d.ts +0 -21
  1522. package/dist/next-node/http/authenticate.d.ts.map +0 -1
  1523. package/dist/next-node/http/authenticate.js +0 -34
  1524. package/dist/next-node/http/authenticate.js.map +0 -1
  1525. package/dist/next-node/http/cookies.d.ts +0 -24
  1526. package/dist/next-node/http/cookies.d.ts.map +0 -1
  1527. package/dist/next-node/http/cookies.js +0 -62
  1528. package/dist/next-node/http/cookies.js.map +0 -1
  1529. package/dist/next-node/http/file.d.ts.map +0 -1
  1530. package/dist/next-node/http/file.js.map +0 -1
  1531. package/dist/next-node/http/headers.d.ts.map +0 -1
  1532. package/dist/next-node/http/headers.js +0 -129
  1533. package/dist/next-node/http/headers.js.map +0 -1
  1534. package/dist/next-node/http/http.d.ts +0 -100
  1535. package/dist/next-node/http/http.d.ts.map +0 -1
  1536. package/dist/next-node/http/http.js +0 -462
  1537. package/dist/next-node/http/http.js.map +0 -1
  1538. package/dist/next-node/http/incoming.d.ts.map +0 -1
  1539. package/dist/next-node/http/incoming.js.map +0 -1
  1540. package/dist/next-node/http/index.d.ts +0 -11
  1541. package/dist/next-node/http/index.d.ts.map +0 -1
  1542. package/dist/next-node/http/index.js +0 -12
  1543. package/dist/next-node/http/index.js.map +0 -1
  1544. package/dist/next-node/http/node.d.ts.map +0 -1
  1545. package/dist/next-node/http/node.js.map +0 -1
  1546. package/dist/next-node/http/request.d.ts +0 -54
  1547. package/dist/next-node/http/request.d.ts.map +0 -1
  1548. package/dist/next-node/http/request.js +0 -116
  1549. package/dist/next-node/http/request.js.map +0 -1
  1550. package/dist/next-node/http/response.d.ts +0 -63
  1551. package/dist/next-node/http/response.d.ts.map +0 -1
  1552. package/dist/next-node/http/response.js.map +0 -1
  1553. package/dist/next-node/http/router.d.ts +0 -114
  1554. package/dist/next-node/http/router.d.ts.map +0 -1
  1555. package/dist/next-node/http/router.js +0 -261
  1556. package/dist/next-node/http/router.js.map +0 -1
  1557. package/dist/next-node/http/upgrades.d.ts +0 -58
  1558. package/dist/next-node/http/upgrades.d.ts.map +0 -1
  1559. package/dist/next-node/http/upgrades.js +0 -184
  1560. package/dist/next-node/http/upgrades.js.map +0 -1
  1561. package/dist/next-node/plugins/build.d.ts +0 -57
  1562. package/dist/next-node/plugins/build.d.ts.map +0 -1
  1563. package/dist/next-node/plugins/build.js +0 -334
  1564. package/dist/next-node/plugins/build.js.map +0 -1
  1565. package/dist/next-node/plugins/discover.d.ts +0 -36
  1566. package/dist/next-node/plugins/discover.d.ts.map +0 -1
  1567. package/dist/next-node/plugins/discover.js +0 -91
  1568. package/dist/next-node/plugins/discover.js.map +0 -1
  1569. package/dist/next-node/plugins/evaluate.d.ts +0 -33
  1570. package/dist/next-node/plugins/evaluate.d.ts.map +0 -1
  1571. package/dist/next-node/plugins/evaluate.js +0 -98
  1572. package/dist/next-node/plugins/evaluate.js.map +0 -1
  1573. package/dist/next-node/plugins/index.d.ts +0 -9
  1574. package/dist/next-node/plugins/index.d.ts.map +0 -1
  1575. package/dist/next-node/plugins/index.js +0 -11
  1576. package/dist/next-node/plugins/index.js.map +0 -1
  1577. package/dist/next-node/plugins/install.d.ts +0 -13
  1578. package/dist/next-node/plugins/install.d.ts.map +0 -1
  1579. package/dist/next-node/plugins/install.js +0 -37
  1580. package/dist/next-node/plugins/install.js.map +0 -1
  1581. package/dist/next-node/plugins/plugins.d.ts +0 -135
  1582. package/dist/next-node/plugins/plugins.d.ts.map +0 -1
  1583. package/dist/next-node/plugins/plugins.js +0 -206
  1584. package/dist/next-node/plugins/plugins.js.map +0 -1
  1585. package/dist/next-node/plugins/runtime.d.ts +0 -41
  1586. package/dist/next-node/plugins/runtime.d.ts.map +0 -1
  1587. package/dist/next-node/plugins/runtime.js +0 -136
  1588. package/dist/next-node/plugins/runtime.js.map +0 -1
  1589. package/dist/next-node/plugins/stack.d.ts.map +0 -1
  1590. package/dist/next-node/plugins/stack.js.map +0 -1
  1591. package/dist/next-node/plugins/watcher.d.ts +0 -58
  1592. package/dist/next-node/plugins/watcher.d.ts.map +0 -1
  1593. package/dist/next-node/plugins/watcher.js +0 -281
  1594. package/dist/next-node/plugins/watcher.js.map +0 -1
  1595. package/dist/next-node/workers/control.d.ts +0 -83
  1596. package/dist/next-node/workers/control.d.ts.map +0 -1
  1597. package/dist/next-node/workers/control.js +0 -77
  1598. package/dist/next-node/workers/control.js.map +0 -1
  1599. package/dist/next-node/workers/index.d.ts +0 -5
  1600. package/dist/next-node/workers/index.d.ts.map +0 -1
  1601. package/dist/next-node/workers/index.js +0 -7
  1602. package/dist/next-node/workers/index.js.map +0 -1
  1603. package/dist/next-node/workers/lock.d.ts +0 -21
  1604. package/dist/next-node/workers/lock.d.ts.map +0 -1
  1605. package/dist/next-node/workers/lock.js +0 -137
  1606. package/dist/next-node/workers/lock.js.map +0 -1
  1607. package/dist/next-node/workers/main.d.ts +0 -46
  1608. package/dist/next-node/workers/main.d.ts.map +0 -1
  1609. package/dist/next-node/workers/main.js +0 -230
  1610. package/dist/next-node/workers/main.js.map +0 -1
  1611. package/dist/next-node/workers/process.d.ts +0 -42
  1612. package/dist/next-node/workers/process.d.ts.map +0 -1
  1613. package/dist/next-node/workers/process.js +0 -125
  1614. package/dist/next-node/workers/process.js.map +0 -1
  1615. package/dist/next-node/workers/workers.d.ts +0 -80
  1616. package/dist/next-node/workers/workers.d.ts.map +0 -1
  1617. package/dist/next-node/workers/workers.js +0 -572
  1618. package/dist/next-node/workers/workers.js.map +0 -1
  1619. package/dist/node.d.ts +0 -4
  1620. package/dist/node.d.ts.map +0 -1
  1621. package/dist/node.js +0 -4
  1622. package/dist/node.js.map +0 -1
  1623. package/dist/object.d.ts +0 -438
  1624. package/dist/object.d.ts.map +0 -1
  1625. package/dist/object.js +0 -1570
  1626. package/dist/object.js.map +0 -1
  1627. package/dist/publish.d.ts +0 -5
  1628. package/dist/publish.d.ts.map +0 -1
  1629. package/dist/publish.js +0 -40
  1630. package/dist/publish.js.map +0 -1
  1631. package/dist/registry.d.ts +0 -25
  1632. package/dist/registry.d.ts.map +0 -1
  1633. package/dist/registry.js +0 -6
  1634. package/dist/registry.js.map +0 -1
  1635. package/dist/reload.d.ts +0 -126
  1636. package/dist/reload.d.ts.map +0 -1
  1637. package/dist/reload.js +0 -653
  1638. package/dist/reload.js.map +0 -1
  1639. package/dist/remote.d.ts +0 -165
  1640. package/dist/remote.d.ts.map +0 -1
  1641. package/dist/remote.js +0 -612
  1642. package/dist/remote.js.map +0 -1
  1643. package/dist/schema.d.ts +0 -25
  1644. package/dist/schema.d.ts.map +0 -1
  1645. package/dist/schema.js +0 -403
  1646. package/dist/schema.js.map +0 -1
  1647. package/dist/state.d.ts +0 -92
  1648. package/dist/state.d.ts.map +0 -1
  1649. package/dist/state.js +0 -287
  1650. package/dist/state.js.map +0 -1
  1651. package/dist/types.d.ts +0 -88
  1652. package/dist/types.d.ts.map +0 -1
  1653. package/dist/types.js +0 -2
  1654. package/dist/types.js.map +0 -1
  1655. package/dist/websocket.d.ts +0 -15
  1656. package/dist/websocket.d.ts.map +0 -1
  1657. package/dist/websocket.js +0 -16
  1658. package/dist/websocket.js.map +0 -1
  1659. package/dist/wire.d.ts +0 -197
  1660. package/dist/wire.d.ts.map +0 -1
  1661. package/dist/wire.js +0 -166
  1662. package/dist/wire.js.map +0 -1
  1663. package/docs/guide.md +0 -814
  1664. package/docs/next/benchmarks.md +0 -959
  1665. package/docs/next/decisions.md +0 -2957
  1666. package/docs/next/dependencies/book.md +0 -1671
  1667. package/docs/next/dependencies/index.html +0 -2641
  1668. package/docs/next/design.md +0 -2554
  1669. package/docs/next/durable-observers/book.md +0 -432
  1670. package/docs/next/durable-observers/index.html +0 -517
  1671. package/docs/next/guide-plugins-hosts/book.md +0 -607
  1672. package/docs/next/guide-plugins-hosts/index.html +0 -652
  1673. package/docs/next/http-workers/book.md +0 -378
  1674. package/docs/next/http-workers/index.html +0 -515
  1675. package/docs/next/layer-1.md +0 -311
  1676. package/docs/next/layer-2.md +0 -216
  1677. package/docs/next/plugin-model/book.md +0 -186
  1678. package/docs/next/plugin-model/index.html +0 -310
  1679. package/docs/next/plugin-primer/book.md +0 -273
  1680. package/docs/next/plugin-primer/index.html +0 -430
  1681. package/docs/next/slice-1.md +0 -236
  1682. package/docs/next/slice-10.md +0 -285
  1683. package/docs/next/slice-11.md +0 -93
  1684. package/docs/next/slice-2.md +0 -174
  1685. package/docs/next/slice-3a.md +0 -296
  1686. package/docs/next/slice-3b.md +0 -197
  1687. package/docs/next/slice-4a.md +0 -418
  1688. package/docs/next/slice-4b.md +0 -208
  1689. package/docs/next/slice-6a.md +0 -676
  1690. package/docs/next/slice-6b.md +0 -332
  1691. package/docs/next/slice-7b/book.md +0 -608
  1692. package/docs/next/slice-7b/index.html +0 -842
  1693. package/docs/next/slice-7b.md +0 -255
  1694. package/docs/next/slice-7c.md +0 -165
  1695. package/docs/next/slices.md +0 -230
  1696. package/docs/next/store/book.md +0 -665
  1697. package/docs/next/store/index.html +0 -861
  1698. package/docs/next/store/walkthrough.md +0 -193
  1699. package/docs/spec.md +0 -288
  1700. package/docs/tutorial.md +0 -932
  1701. /package/dist/{next/contracts → contracts}/accepts.js +0 -0
  1702. /package/dist/{next/contracts → contracts}/contract.js +0 -0
  1703. /package/dist/{next/contracts → contracts}/declare.d.ts +0 -0
  1704. /package/dist/{next/contracts → contracts}/declare.js +0 -0
  1705. /package/dist/{next/contracts → contracts}/evolve.d.ts +0 -0
  1706. /package/dist/{next/contracts → contracts}/evolve.js +0 -0
  1707. /package/dist/{next/contracts → contracts}/fingerprint.js +0 -0
  1708. /package/dist/{next/contracts → contracts}/history.d.ts +0 -0
  1709. /package/dist/{next/contracts → contracts}/history.js +0 -0
  1710. /package/dist/{next/contracts → contracts}/host-kind.d.ts +0 -0
  1711. /package/dist/{next/contracts → contracts}/host-kind.js +0 -0
  1712. /package/dist/{next/contracts → contracts}/index.d.ts +0 -0
  1713. /package/dist/{next/contracts → contracts}/index.js +0 -0
  1714. /package/dist/{next/contracts → contracts}/internal.d.ts +0 -0
  1715. /package/dist/{next/contracts → contracts}/internal.js +0 -0
  1716. /package/dist/{next/contracts → contracts}/names.d.ts +0 -0
  1717. /package/dist/{next/contracts → contracts}/names.js +0 -0
  1718. /package/dist/{next/contracts → contracts}/params.js +0 -0
  1719. /package/dist/{next/contracts → contracts}/schema.d.ts +0 -0
  1720. /package/dist/{next/contracts → contracts}/schema.js +0 -0
  1721. /package/dist/{next/data → data}/args.js +0 -0
  1722. /package/dist/{next/data → data}/failure.d.ts +0 -0
  1723. /package/dist/{next/data → data}/params.js +0 -0
  1724. /package/dist/{next/documents → documents}/address-source.js +0 -0
  1725. /package/dist/{next/documents → documents}/fence.d.ts +0 -0
  1726. /package/dist/{next/documents → documents}/fence.js +0 -0
  1727. /package/dist/{next/documents → documents}/handles.js +0 -0
  1728. /package/dist/{next/documents → documents}/index.d.ts +0 -0
  1729. /package/dist/{next/documents → documents}/index.js +0 -0
  1730. /package/dist/{next/documents → documents}/internal.js +0 -0
  1731. /package/dist/{next/documents → documents}/line.d.ts +0 -0
  1732. /package/dist/{next/documents → documents}/line.js +0 -0
  1733. /package/dist/{next/documents → documents}/residency.js +0 -0
  1734. /package/dist/{next/host → host}/adapted.js +0 -0
  1735. /package/dist/{next/host → host}/backoff.d.ts +0 -0
  1736. /package/dist/{next/host → host}/backoff.js +0 -0
  1737. /package/dist/{next/host → host}/deadline.d.ts +0 -0
  1738. /package/dist/{next/host → host}/deadline.js +0 -0
  1739. /package/dist/{next/host → host}/dependencies.d.ts +0 -0
  1740. /package/dist/{next/host → host}/dependencies.js +0 -0
  1741. /package/dist/{next/host → host}/destination.js +0 -0
  1742. /package/dist/{next/host → host}/facet.js +0 -0
  1743. /package/dist/{next/host → host}/follow.js +0 -0
  1744. /package/dist/{next/host → host}/index.js +0 -0
  1745. /package/dist/{next/host → host}/members.js +0 -0
  1746. /package/dist/{next/host → host}/parked.js +0 -0
  1747. /package/dist/{next/host → host}/presence.js +0 -0
  1748. /package/dist/{next/host → host}/retry-on.d.ts +0 -0
  1749. /package/dist/{next/host → host}/retry-on.js +0 -0
  1750. /package/dist/{next/host → host}/revocation.js +0 -0
  1751. /package/dist/{next/host → host}/sleep.js +0 -0
  1752. /package/dist/{next/host → host}/uuid.d.ts +0 -0
  1753. /package/dist/{next/host → host}/uuid.js +0 -0
  1754. /package/dist/{next/jobs → jobs}/definition.d.ts +0 -0
  1755. /package/dist/{next/jobs → jobs}/definition.js +0 -0
  1756. /package/dist/{next/jobs → jobs}/index.d.ts +0 -0
  1757. /package/dist/{next/jobs → jobs}/index.js +0 -0
  1758. /package/dist/{next/jobs → jobs}/internal.d.ts +0 -0
  1759. /package/dist/{next/jobs → jobs}/internal.js +0 -0
  1760. /package/dist/{next/jobs → jobs}/persisted.js +0 -0
  1761. /package/dist/{next/jobs → jobs}/running.js +0 -0
  1762. /package/dist/{next/jobs → jobs}/stored.js +0 -0
  1763. /package/dist/{next/link → link}/binary.d.ts +0 -0
  1764. /package/dist/{next/link → link}/errors.d.ts +0 -0
  1765. /package/dist/{next/link → link}/errors.js +0 -0
  1766. /package/dist/{next/link → link}/index.d.ts +0 -0
  1767. /package/dist/{next/link → link}/index.js +0 -0
  1768. /package/dist/{next/link → link}/internal.d.ts +0 -0
  1769. /package/dist/{next/link → link}/internal.js +0 -0
  1770. /package/dist/{next/link → link}/ipc.d.ts +0 -0
  1771. /package/dist/{next/link → link}/ipc.js +0 -0
  1772. /package/dist/{next/link → link}/link.d.ts +0 -0
  1773. /package/dist/{next/link → link}/link.js +0 -0
  1774. /package/dist/{next/link → link}/text.d.ts +0 -0
  1775. /package/dist/{next/link → link}/values.d.ts +0 -0
  1776. /package/dist/{next/link → link}/websocket.d.ts +0 -0
  1777. /package/dist/{next/link → link}/websocket.js +0 -0
  1778. /package/dist/{next-node → node}/http/admission.d.ts +0 -0
  1779. /package/dist/{next-node → node}/http/admission.js +0 -0
  1780. /package/dist/{next-node → node}/http/file.d.ts +0 -0
  1781. /package/dist/{next-node → node}/http/file.js +0 -0
  1782. /package/dist/{next-node → node}/http/headers.d.ts +0 -0
  1783. /package/dist/{next-node → node}/http/incoming.d.ts +0 -0
  1784. /package/dist/{next-node → node}/http/incoming.js +0 -0
  1785. /package/dist/{next-node → node}/http/node.d.ts +0 -0
  1786. /package/dist/{next-node → node}/http/node.js +0 -0
  1787. /package/dist/{next-node → node}/http/response.js +0 -0
  1788. /package/dist/{next-node → node}/plugins/stack.d.ts +0 -0
  1789. /package/dist/{next-node → node}/plugins/stack.js +0 -0
  1790. /package/dist/{next/registries → registries}/contribution.d.ts +0 -0
  1791. /package/dist/{next/registries → registries}/contribution.js +0 -0
  1792. /package/dist/{next/registries → registries}/entries.d.ts +0 -0
  1793. /package/dist/{next/registries → registries}/entries.js +0 -0
  1794. /package/dist/{next/registries → registries}/index.d.ts +0 -0
  1795. /package/dist/{next/registries → registries}/index.js +0 -0
  1796. /package/dist/{next/registries → registries}/internal.d.ts +0 -0
  1797. /package/dist/{next/registries → registries}/internal.js +0 -0
  1798. /package/dist/{next/registries → registries}/registry.js +0 -0
  1799. /package/dist/{next/registries → registries}/value.d.ts +0 -0
  1800. /package/dist/{next/remote → remote}/calls.d.ts +0 -0
  1801. /package/dist/{next/remote → remote}/calls.js +0 -0
  1802. /package/dist/{next/remote → remote}/internal.d.ts +0 -0
  1803. /package/dist/{next/remote → remote}/internal.js +0 -0
  1804. /package/dist/{next/remote → remote}/path.d.ts +0 -0
  1805. /package/dist/{next/remote → remote}/path.js +0 -0
  1806. /package/dist/{next/state → state}/index.js +0 -0
  1807. /package/dist/{next/state → state}/internal.d.ts +0 -0
  1808. /package/dist/{next/state → state}/internal.js +0 -0
  1809. /package/dist/{next/state → state}/writable.js +0 -0
  1810. /package/dist/{next/store → store}/adapter.js +0 -0
  1811. /package/dist/{next/store → store}/allocator.d.ts +0 -0
  1812. /package/dist/{next/store → store}/allocator.js +0 -0
  1813. /package/dist/{next/store → store}/applier.d.ts +0 -0
  1814. /package/dist/{next/store → store}/applier.js +0 -0
  1815. /package/dist/{next/store → store}/apply-batch.js +0 -0
  1816. /package/dist/{next/store → store}/backend.js +0 -0
  1817. /package/dist/{next/store → store}/catalog.js +0 -0
  1818. /package/dist/{next/store → store}/claims.d.ts +0 -0
  1819. /package/dist/{next/store → store}/claims.js +0 -0
  1820. /package/dist/{next/store → store}/columns.d.ts +0 -0
  1821. /package/dist/{next/store → store}/columns.js +0 -0
  1822. /package/dist/{next/store → store}/evaluate.js +0 -0
  1823. /package/dist/{next/store → store}/expression.js +0 -0
  1824. /package/dist/{next/store → store}/index.d.ts +0 -0
  1825. /package/dist/{next/store → store}/index.js +0 -0
  1826. /package/dist/{next/store → store}/jsonl.d.ts +0 -0
  1827. /package/dist/{next/store → store}/jsonl.js +0 -0
  1828. /package/dist/{next/store → store}/outbox.js +0 -0
  1829. /package/dist/{next/store → store}/query.js +0 -0
  1830. /package/dist/{next/store → store}/refusal.d.ts +0 -0
  1831. /package/dist/{next/store → store}/refusal.js +0 -0
  1832. /package/dist/{next/store → store}/rows.js +0 -0
  1833. /package/dist/{next/store → store}/sql.js +0 -0
  1834. /package/dist/{next/store → store}/table-changes.js +0 -0
  1835. /package/dist/{next/store → store}/table-evolve.d.ts +0 -0
  1836. /package/dist/{next/store → store}/table-evolve.js +0 -0
  1837. /package/dist/{next/store → store}/table-history.d.ts +0 -0
  1838. /package/dist/{next/store → store}/table-history.js +0 -0
  1839. /package/dist/{next/store → store}/table-writes.d.ts +0 -0
  1840. /package/dist/{next/store → store}/table.js +0 -0
  1841. /package/dist/{next/store → store}/text.d.ts +0 -0
  1842. /package/dist/{next/store → store}/text.js +0 -0
  1843. /package/dist/{next/store → store}/writes.d.ts +0 -0
  1844. /package/dist/{next/store → store}/writes.js +0 -0
  1845. /package/docs/{next/dependencies → dependencies}/model.md +0 -0
  1846. /package/docs/{next/flow-control → flow-control}/book.md +0 -0
  1847. /package/docs/{next/flow-control → flow-control}/fold/index.html +0 -0
  1848. /package/docs/{next/flow-control → flow-control}/index.html +0 -0
  1849. /package/docs/{next/flow-control → flow-control}/window/index.html +0 -0
  1850. /package/docs/{next/slice-4.md → slice-4.md} +0 -0
  1851. /package/docs/{next/slice-5.md → slice-5.md} +0 -0
  1852. /package/docs/{next/slice-7a.md → slice-7a.md} +0 -0
  1853. /package/docs/{next/slice-8.md → slice-8.md} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hold.js","sourceRoot":"","sources":["../../src/remote/hold.ts"],"names":[],"mappings":"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","sourcesContent":["// A hold arriving on a link and served here (§7, §22, W1): where it goes once the host published (waiting in the\n// unbound index until then), why it is unbound (refused: kept in the index while it waits for a name, dependency\n// model §1), the object it keeps, the notices of its object's failures and new attempts, the snapshot and subscription\n// taken in one synchronous step when a slot of the window is free, and the ops of its members per batch (sent at\n// once, or pending while the window is full), each member with its own Delta encoder. Across a reload a bound hold is\n// kept while its object shows it live (a restart's open old attempt that binds its version, decision \"Reload restarts\n// every affected object\"), then unbound (`loading` or `failed`, then a fresh `bound`; a `loading` one keeps its calls\n// in flight and takes more by its old names); a version no longer bound or a removed type leaves it waiting unbound. A\n// hold of an older version follows its object's adapted members (Q10).\n\nimport type { TelemetryContext } from \"@earendil-works/pi-telemetry\";\nimport type { Context } from \"../context/index.ts\";\nimport { type VariantData, type VariantNames, variantNames, variantOrder, variantsAt } from \"../contracts/internal.ts\";\nimport { ChordError, type FailureCause, isChordError, type Principal } from \"../data/index.ts\";\nimport { asChordError } from \"../data/internal.ts\";\nimport { type Encoder, encoder, type Op, PendingOps } from \"../delta/index.ts\";\nimport {\n\ttype Attempt,\n\ttype Caller,\n\ttype ChordObject,\n\ttype Holder,\n\ttype RefState,\n\ttype Removal,\n\tretryWalk,\n\ttype Serving,\n\ttype UnboundRequest,\n} from \"../host/internal.ts\";\nimport type { JsonValue } from \"../json.ts\";\nimport {\n\ttype BoundEntry,\n\ttype FailedMember,\n\tjsonPart,\n\ttype Limits,\n\ttype Message,\n\tNO_RETIRED,\n\toversized,\n\tparsePart,\n\ttype StateEntry,\n\twireError,\n} from \"../link/internal.ts\";\nimport { type DeriveSource, Source, type Subscriber } from \"../state/internal.ts\";\nimport { chordMetrics } from \"../telemetry.ts\";\nimport type { HostLink } from \"./host-link.ts\";\nimport type { ProviderSide } from \"./provider.ts\";\nimport { RelayedHold } from \"./relay.ts\";\n\n/** A `hold` message. */\ntype HoldMessage = Extract<Message, { readonly kind: \"hold\" }>;\n\n/**\n * What a `hold` message asks for. Whom it acts for is not part of it: a host takes that from the message once, as its\n * link allows (`ProviderSide`), and names it again only on a route link (`actingFor`). Its `chain` and `limit` are the\n * ones this host honours, sent on as they are when it relays the hold.\n */\nexport type HoldRequest = Omit<HoldMessage, \"kind\" | \"origin\" | \"hold\" | \"principal\" | \"incarnation\">;\n\n/**\n * A state member a bound hold follows: its index in the bound version, its source and subscription (which feeds this\n * record), its own encoder (R1, path interning) and the ops waiting for a slot of the window.\n */\ntype Followed = {\n\treadonly index: number;\n\t/** Its source (subscribed when it changes, a constant's never). */\n\treadonly source: DeriveSource;\n\treadonly subscriber: Subscriber;\n\treadonly encoder: Encoder;\n\treadonly pending: PendingOps;\n};\n\n/**\n * Where a hold stands: `unplaced` in the unbound index until the host's publication places it; `pending` until its\n * object is live (the activation, parking and retries; `told`: the failure its consumer was told, so the next attempt\n * is announced with `loading` and a call that crossed the failure on the wire gets it); `binding` while its object is live and its `bound` waits for a slot;\n * `bound` with the object's variant and the members it follows. A `pending` hold unbound with `loading` and the\n * `binding` after it keep the names it was bound with, `previous`: its consumer's calls sent by those names (before it\n * learnt of the `loading`) wait at its object's gate and are answered by name, design §22; only contract data, so the\n * old instance and its sources go meanwhile.\n */\ntype HoldState =\n\t| { readonly kind: \"unplaced\"; readonly request: HoldRequest }\n\t| { readonly kind: \"pending\"; readonly told?: ChordError; readonly previous?: BoundNames }\n\t| { readonly kind: \"binding\"; readonly previous?: BoundNames }\n\t| {\n\t\t\treadonly kind: \"bound\";\n\t\t\t/** The bound variant's data at the hold's version. */\n\t\t\treadonly variant: VariantData;\n\t\t\t/** The bound version's names of the variant, which the wire's indexes point into. */\n\t\t\treadonly names: VariantNames;\n\t\t\t/** The members it follows, in the order they were subscribed. */\n\t\t\treadonly followed: Followed[];\n\t\t\t/** The instance it was bound to: it follows it on while it still changes (a restart's open old attempt). */\n\t\t\treadonly instance: unknown;\n\t\t\t/**\n\t\t\t * A rebinding's names before it (`until`: its `bound`, this host's own message number): calls its consumer sent\n\t\t\t * before it applied that `bound` carry their indexes, so they are decoded by them until its `ack`.\n\t\t\t */\n\t\t\treadonly previous?: BoundNames & { readonly until: number };\n\t }\n\t/**\n\t * Refused where it arrived, with `cause`: `waiting` (not served here, another version, placed elsewhere by the\n\t * provider's code) in the unbound index until a publication wakes it; `broken` (invalid params, a cycle, a route that\n\t * refused, a part past the limits) until a `retry` restarts it.\n\t */\n\t| { readonly kind: \"refused\"; readonly request: HoldRequest; readonly cause: FailureCause }\n\t| { readonly kind: \"released\" };\n\n/** A bound hold's state. */\ntype Bound = Extract<HoldState, { readonly kind: \"bound\" }>;\n\n/** What calls need of a binding: its variant's data at the hold's version and the names the wire's indexes point into. */\ntype BoundNames = { readonly variant: VariantData; readonly names: VariantNames };\n\nconst PENDING: HoldState = { kind: \"pending\" };\n\nconst BINDING: HoldState = { kind: \"binding\" };\n\n/**\n * One hold served here: a reference to its object acting as its caller (the hold's principal). While pending, each\n * failure of its object is sent as `failed` (with the rest of its backoff window) and the next attempt as `loading`; a\n * hold that cannot be taken holds nothing: `failed { waiting }` (not served, another version) until a publication\n * re-runs its start, `failed { broken }` (invalid params, a cycle) until a `retry` does. Once live it binds when its\n * link's window has a slot, then sends a part per batch that changed its members (or keeps their ops pending while the\n * window is full), and `gone` when its object ends. It counts as one of the host's references from its arrival to its\n * end, bound or not.\n */\nexport class Hold implements Holder, UnboundRequest {\n\treadonly kind = \"served\";\n\treadonly id: number;\n\t/** A hold is declared by no object on this host. */\n\treadonly dependent = undefined;\n\t/** Presence lists show every hold. */\n\treadonly listed = true;\n\t/** Whom the hold acts for: its calls run as it, with its origin's incarnation. */\n\treadonly caller: Caller;\n\t/** The limits per part of its params and its calls' arguments: its link's, the decoded one smaller when stamped (Q2). */\n\treadonly limits: Limits;\n\treadonly #provider: ProviderSide;\n\t#state: HoldState = PENDING;\n\t/** What it asks for (its params owned), once it started: it is placed again after a reload left it unbound. */\n\t#request: HoldRequest | undefined;\n\t/** The held object, from its binding until the hold is released. */\n\t#object: ChordObject | undefined;\n\t/** The members the current batch changed, with their ops, in order. */\n\t#changes: (readonly [Followed, readonly Op[]])[] = [];\n\t/** The members that failed since the last message that carried this hold. */\n\t#failed: FailedMember[] = [];\n\t/** The members whose document was retired since the last message that carried this hold (ORed while it waits). */\n\t#retired: readonly number[] = NO_RETIRED;\n\t#touched = false;\n\t/** Whether the hold counts as one of the host's references (`host.activity`): from its arrival until it ends. */\n\t#counted = true;\n\n\tconstructor(id: number, provider: ProviderSide, caller: Caller, limits: Limits) {\n\t\tthis.id = id;\n\t\tthis.#provider = provider;\n\t\tthis.caller = caller;\n\t\tthis.limits = limits;\n\t\tprovider.link.host.count(\"references\", 1);\n\t\tprovider.link.host.metrics.upDownCounter(\"chord.holds.active\").add(1);\n\t}\n\n\t/** Whether the hold is bound: its members' changes are sent. */\n\tget bound(): boolean {\n\t\treturn this.#state.kind === \"bound\";\n\t}\n\n\t/**\n\t * Whether calls on it reach its object: bound, or by the names it was bound with while it rebinds (after a `loading`\n\t * unbind: its fresh `bound` not sent yet).\n\t */\n\tget callable(): boolean {\n\t\treturn this.#names() !== undefined;\n\t}\n\n\t/**\n\t * What a call it does not take is refused with: the failure its consumer was told (refused, or failed while pending:\n\t * the call crossed that `failed` on the wire, and its consumer shows that cause), else `not_ready` (not bound yet).\n\t */\n\tget refusal(): ChordError {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"refused\") return state.cause.error;\n\t\tif (state.kind === \"pending\" && state.told !== undefined) return state.told;\n\t\treturn new ChordError({ code: \"not_ready\", message: `hold ${this.id}: not bound yet` });\n\t}\n\n\t/**\n\t * The names its calls are decoded by: its binding's (its previous ones until its consumer acknowledged the `bound`\n\t * that brought them: another variant's indexes name other methods), or the ones it was bound with while it rebinds.\n\t */\n\t#names(): BoundNames | undefined {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"bound\") {\n\t\t\tconst { previous } = state;\n\t\t\treturn previous !== undefined && !this.#provider.acknowledged(previous.until) ? previous : state;\n\t\t}\n\t\treturn state.kind === \"pending\" || state.kind === \"binding\" ? state.previous : undefined;\n\t}\n\n\t/** Whom it acts for (the unbound index's revocation). */\n\tget principal(): Principal | undefined {\n\t\treturn this.caller.principal;\n\t}\n\n\t/** Its consumer's contract version and fingerprint (its request's): the provider binds them or it waits. */\n\tget contract(): HoldRequest {\n\t\treturn this.#request!;\n\t}\n\n\t/** Whether the hold holds no object: before the publication, or refused (revocation ends it, §4). */\n\tget unbound(): boolean {\n\t\treturn this.#object === undefined && this.#state.kind !== \"released\";\n\t}\n\n\t/**\n\t * Admits the hold: before the host's publication it waits in the unbound index, placed by the publication.\n\t * Then its params within the link's part limit (`too_large/part`), then relayed (it is replaced by a relayed hold),\n\t * or served here, its params opened and parsed (a malformed part is a protocol error), its object taken and followed\n\t * (`moved`) in the turn it arrived. A hold that cannot be served here waits refused (`#refuse`).\n\t */\n\tstart(request: HoldRequest): void {\n\t\tconst { link } = this.#provider;\n\t\tif (!link.host.published) {\n\t\t\tthis.#state = { kind: \"unplaced\", request: owned(request) };\n\t\t\tlink.host.index(request.type, this, undefined);\n\t\t\treturn;\n\t\t}\n\t\tlet served: Serving;\n\t\ttry {\n\t\t\tconst oversize = oversized(request.params, link.limits.part);\n\t\t\tif (oversize !== undefined) throw oversize;\n\t\t\tconst placed = link.host.place(request, link, this.caller, link.context);\n\t\t\tif (placed.kind === \"path\") {\n\t\t\t\t// Counted where it is served: a relayed hold is not this host's reference.\n\t\t\t\tthis.drop();\n\t\t\t\tnew RelayedHold(this.id, this.#provider, request, this.caller, placed.path).start();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet params: unknown;\n\t\t\ttry {\n\t\t\t\tparams = parsePart(link.openPart(request.params, this.limits, link.context));\n\t\t\t} catch (error) {\n\t\t\t\t// Past its limits: the hold's \\`too_large/part\\`. No JSON: a protocol error, reported, and the link closes.\n\t\t\t\tif (isChordError(error, \"too_large\")) throw error;\n\t\t\t\tlink.host.report({ kind: \"protocol_error\", error });\n\t\t\t\tlink.close();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tserved = link.host.serving(request, params, this.caller.principal!, link.context);\n\t\t} catch (error) {\n\t\t\tthis.#refuse(request, { kind: \"broken\", error: asChordError(error, request.type) });\n\t\t\treturn;\n\t\t}\n\t\tif (served.kind === \"waiting\") {\n\t\t\tthis.#refuse(request, served.cause);\n\t\t\treturn;\n\t\t}\n\t\tthis.#request = owned(request);\n\t\tconst { object } = served;\n\t\tthis.#object = object;\n\t\tobject.hold(this);\n\t\tthis.moved();\n\t}\n\n\t/**\n\t * Woken by the unbound index (out of it already): before the publication, placed now; refused `waiting`, its start\n\t * runs again, announced with `loading` (then `bound` or `failed`).\n\t */\n\twake(): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"unplaced\") {\n\t\t\tthis.#state = PENDING;\n\t\t\tthis.start(state.request);\n\t\t} else if (state.kind === \"refused\") {\n\t\t\tthis.#restart(state.request);\n\t\t}\n\t}\n\n\t/**\n\t * The object's state changed, or the hold took it: a pending hold binds once its object shows it live (when a slot\n\t * is free), sends each failure, and announces the attempt after a failure with `loading`. A bound hold (or one whose\n\t * `bound` waits for a slot) whose object no longer shows it live goes back to pending (slice 7b §6).\n\t */\n\tmoved(): void {\n\t\tconst current = this.#state;\n\t\tconst object = this.#object;\n\t\tif (object === undefined) return;\n\t\tif (current.kind === \"bound\" || current.kind === \"binding\") {\n\t\t\tconst shown = this.#shown(object);\n\t\t\tif (shown.kind === \"live\") return;\n\t\t\t// Its instance still changes (a live failure's admitted commits, a restart's old attempt draining): it follows it\n\t\t\t// on until it stopped (decision \"References are the only indirection\").\n\t\t\tif (current.kind === \"bound\" && object.attachable === current.instance) return;\n\t\t\tthis.#unbind(shown.kind === \"failed\" ? shown.cause.error : undefined);\n\t\t}\n\t\tthis.#pending(object);\n\t}\n\n\t/**\n\t * What its object shows to its version and fingerprint: `live` also while a restart's open old attempt binds them\n\t * (decision \"Reload restarts every affected object\", rule 5).\n\t */\n\t#shown(object: ChordObject): RefState {\n\t\tconst { version, fingerprint } = this.contract;\n\t\treturn object.stateFor(version, fingerprint);\n\t}\n\n\t/** Member `followed` failed with `error`: its failure waits to be sent, replacing one still waiting. */\n\t#memberFailed(followed: Followed, error: unknown): void {\n\t\tfollowed.pending.take();\n\t\tconst failure = { member: followed.index, error: wireError(error) };\n\t\tconst at = this.#failed.findIndex(({ member }) => member === followed.index);\n\t\t// A new list when one is replaced (rare): a list handed to an entry is never written to.\n\t\tif (at === -1) this.#failed.push(failure);\n\t\telse this.#failed = this.#failed.map((pending, i) => (i === at ? failure : pending));\n\t}\n\n\t/** Member `index` has a value again: a failure of it still waiting to be sent (rare) is not sent. */\n\t#memberHealed(index: number): void {\n\t\tif (this.#failed.length > 0) this.#failed = this.#failed.filter(({ member }) => member !== index);\n\t}\n\n\t/**\n\t * Its object no longer shows it live (a restart, a live failure): no longer subscribed or waiting for a slot,\n\t * pending again. With `error` (a failure, sent by `#pending`, which a consumer applies to a bound hold as a rebinding\n\t * too, model §5) its calls in flight are rejected. Without (`loading`, which tells the consumer it rebinds) they stay,\n\t * and calls by the names it was bound with keep arriving (sent before its consumer learnt of the `loading`): each gets\n\t * exactly one answer from what it waits on, the instance it already runs on (its result, or `released` at the seal)\n\t * or its object's gate (the new instance's result, its failure, `park_timeout`, its end), design §22.\n\t */\n\t#unbind(error: ChordError | undefined): void {\n\t\tconst previous = this.#names();\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"bound\") unfollow(state);\n\t\tthis.#changes = [];\n\t\tthis.#failed = [];\n\t\tthis.#retired = NO_RETIRED;\n\t\tthis.#touched = false;\n\t\tif (error !== undefined) {\n\t\t\tthis.#provider.unbound(this, error);\n\t\t\tthis.#state = PENDING;\n\t\t\treturn;\n\t\t}\n\t\tthis.#provider.unbind(this);\n\t\tthis.#state =\n\t\t\tprevious === undefined\n\t\t\t\t? PENDING\n\t\t\t\t: { kind: \"pending\", previous: { variant: previous.variant, names: previous.names } };\n\t\tthis.#provider.send({ kind: \"loading\", hold: this.id });\n\t}\n\n\t/**\n\t * A `retry` message with `hops` left of its budget: the object is asked for an attempt now (it ignores this unless\n\t * failed; parked, it passes it on, to other hosts with one hop less); a refused hold is started again (a route's\n\t * `authorize` may admit it now).\n\t */\n\tretry({ hops }: Extract<Message, { readonly kind: \"retry\" }>): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind !== \"refused\") {\n\t\t\tthis.#object?.retry(retryWalk(hops - 1));\n\t\t\treturn;\n\t\t}\n\t\tif (state.cause.kind === \"waiting\") this.#provider.link.host.unindex(state.request.type, this);\n\t\tthis.#restart(state.request);\n\t}\n\n\t/** The pending hold's part of `moved`: binds once live, sends each failure, announces the next attempt. */\n\t#pending(object: ChordObject): void {\n\t\tconst current = this.#state;\n\t\tif (current.kind !== \"pending\") return;\n\t\tconst state = this.#shown(object);\n\t\tif (state.kind === \"live\") {\n\t\t\t// Calls by the names it was bound with are still answered until the fresh `bound` is sent.\n\t\t\tthis.#state = current.previous === undefined ? BINDING : { kind: \"binding\", previous: current.previous };\n\t\t\tthis.#provider.bind(this, this.#provider.link.context);\n\t\t} else if (state.kind === \"failed\") {\n\t\t\t// Each failure and each new cause (a parked object's blocker changed) is a message of its own.\n\t\t\tconst { cause, retryAt } = state;\n\t\t\tconst retryIn = retryAt === undefined ? {} : { retryIn: Math.max(0, retryAt - Date.now()) };\n\t\t\tconst failed = { kind: cause.kind, error: wireError(cause.error) };\n\t\t\tthis.#provider.send({ kind: \"failed\", hold: this.id, cause: failed, ...retryIn });\n\t\t\t// Told a failure, its consumer rejects what it still waits on: calls by the old names are not taken any more.\n\t\t\tthis.#state = { kind: \"pending\", told: cause.error };\n\t\t} else if (state.kind === \"loading\" && current.told !== undefined) {\n\t\t\tthis.#provider.send({ kind: \"loading\", hold: this.id });\n\t\t\tthis.#state = PENDING;\n\t\t}\n\t}\n\n\t/** Starts a refused hold again, announced with `loading`. */\n\t#restart(request: HoldRequest): void {\n\t\tthis.#state = PENDING;\n\t\tthis.#provider.send({ kind: \"loading\", hold: this.id });\n\t\tthis.start(request);\n\t}\n\n\t/** Calls a method of the held object as the hold's caller, its span under `parent` (the call's carrier, extracted). */\n\tcall(method: string, args: unknown, parent: TelemetryContext, context: Context): Promise<unknown> {\n\t\treturn this.#object!.call(method, args, context, this.caller, this.contract.version, parent);\n\t}\n\n\t/**\n\t * The method at `index` of the bound variant (while it rebinds, of the names its consumer still has: its object answers\n\t * by name) and whether its result carries byte segments (its schema has a `bytes()` leaf). Throws on an index outside\n\t * the variant (a protocol error); a hold that is not callable has none.\n\t */\n\tmethod(index: number): { readonly name: string; readonly resultBytes: boolean } {\n\t\tconst bound = this.#names();\n\t\tconst name = bound?.names.methods[index];\n\t\tif (name === undefined) throw new Error(`hold ${this.id}: no method ${index}`);\n\t\treturn { name, resultBytes: bound!.variant.methods.get(name)!.result.bytes };\n\t}\n\n\t/**\n\t * The hold's binding, sent when a slot is free. The snapshot of every member, as a value or failed, and the\n\t * subscription are taken in this synchronous step (race 2), so each member's next ops continue exactly from it.\n\t * Names travel as indexes into the bound version (2b). Counts one encode (`chord.link.encodes`).\n\t */\n\tboundEntry(context: Context): BoundEntry {\n\t\tconst object = this.#object!;\n\t\t// It binds the instance its object shows it (`#shown` live): the live one, or a restart's open old attempt; the\n\t\t// object tells its holds at that attempt's seal (`moved`), so a hold waiting for a slot never binds it later.\n\t\tconst instance = object.instance!;\n\t\tconst { contract } = instance.served;\n\t\tconst state = this.#bindTo(instance);\n\t\tconst members: BoundEntry[\"members\"][number][] = [];\n\t\tconst failed: FailedMember[] = [];\n\t\tconst { version } = this.contract;\n\t\tconst current = version === contract.version;\n\t\tfor (const [index, member] of state.names.state.entries()) {\n\t\t\t// An older version's members are its instance's mapping (its refusals unbound it before: `ChordObject`).\n\t\t\tconst source = current ? object.stateMembers.get(member)! : object.liveMember(member, version);\n\t\t\tlet value: JsonValue;\n\t\t\ttry {\n\t\t\t\tvalue = source.value;\n\t\t\t} catch (error) {\n\t\t\t\t// A failed member (a derive whose compute throws) is followed: it recovers with a root replacement.\n\t\t\t\tfailed.push({ member: index, error: wireError(error) });\n\t\t\t\tif (source instanceof Source) this.#follow(state, index, source);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tmembers.push({ member: index, value: this.#provider.link.part(jsonPart(value), context) });\n\t\t\t} catch (error) {\n\t\t\t\t// A value past the link's limits: failed for this hold, which takes no more of it.\n\t\t\t\tfailed.push({ member: index, error: wireError(error) });\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t// A constant never changes: nothing to follow.\n\t\t\tif (source instanceof Source) this.#follow(state, index, source);\n\t\t}\n\t\tthis.#changes = [];\n\t\tthis.#failed = [];\n\t\tthis.#retired = NO_RETIRED;\n\t\tchordMetrics(context.telemetry.metrics).counter(\"chord.link.encodes\").add(1);\n\t\treturn { hold: this.id, variant: variantOrder(contract).indexOf(instance.variant!), members, failed };\n\t}\n\n\t/**\n\t * This batch's entry of the `state` message: the members it changed with their ops, each encoded once with its\n\t * member's encoder, and the members that failed; resets both. Counts one encode per hold (`chord.link.encodes`).\n\t */\n\tentry(context: Context): StateEntry {\n\t\tconst { link } = this.#provider;\n\t\tconst members = this.#take().map(([{ index, encoder }, ops]) => ({\n\t\t\tmember: index,\n\t\t\tops: link.part(jsonPart(encoder.encode(ops)), context),\n\t\t}));\n\t\treturn this.#entry(members, context);\n\t}\n\n\t/** The window is full: this batch's ops join the members' pending queues (raw, never mutated). */\n\tqueue(): void {\n\t\tfor (const [{ pending }, ops] of this.#take()) pending.push(ops);\n\t}\n\n\t/**\n\t * The entry of a freed slot's `state` message: each member's pending ops encoded once, or `[[\"r\", value]]` after an\n\t * overflow, all reflecting the latest commit; and the members that failed meanwhile. Counts one encode per hold.\n\t */\n\tpendingEntry(context: Context): StateEntry {\n\t\tconst { link } = this.#provider;\n\t\tconst members: StateEntry[\"members\"][number][] = [];\n\t\t// Only a bound hold has pending ops.\n\t\tfor (const { index, source, encoder, pending } of (this.#state as Bound).followed) {\n\t\t\tif (pending.size === 0) continue;\n\t\t\tconst taken = pending.take();\n\t\t\tconst ops = taken.kind === \"replace\" ? [[\"r\", source.value] as const] : taken.ops;\n\t\t\tif (ops.length > 0) members.push({ member: index, ops: link.part(jsonPart(encoder.encode(ops)), context) });\n\t\t}\n\t\treturn this.#entry(members, context);\n\t}\n\n\t/** The consumer released the hold, or its link closed: its waits stop and its object loses this reference. */\n\trelease(): void {\n\t\tthis.drop();\n\t\tthis.#object?.unhold(this);\n\t\tthis.#object = undefined;\n\t}\n\n\t/** Ends the hold without releasing its object (the host closes and ends its objects itself). */\n\tdrop(): void {\n\t\tconst state = this.#state;\n\t\tconst { host } = this.#provider.link;\n\t\tif (state.kind === \"bound\") {\n\t\t\tunfollow(state);\n\t\t} else if (state.kind === \"unplaced\" || (state.kind === \"refused\" && state.cause.kind === \"waiting\")) {\n\t\t\thost.unindex(state.request.type, this);\n\t\t}\n\t\tthis.#state = { kind: \"released\" };\n\t\tif (this.#counted) {\n\t\t\thost.count(\"references\", -1);\n\t\t\thost.metrics.upDownCounter(\"chord.holds.active\").add(-1);\n\t\t}\n\t\tthis.#counted = false;\n\t}\n\n\t/**\n\t * The object ended while held (revocation; a reload, slice 7b), or the hold was revoked (or its host closed) while it\n\t * held no object: the hold sends `gone` with `error`.\n\t */\n\tend(error: ChordError): void {\n\t\tif (this.#state.kind === \"released\") return;\n\t\tthis.#provider.forget(this, error);\n\t\tthis.drop();\n\t\tthis.#object = undefined;\n\t\tthis.#provider.send({ kind: \"gone\", hold: this.id, error: wireError(error) });\n\t}\n\n\t/**\n\t * The binding: its variant and names at the hold's version, with no member followed yet, and the names its consumer\n\t * still has (a rebinding's) until it acknowledged this `bound`, the next of this host's own messages.\n\t */\n\t#bindTo(instance: Attempt): Bound {\n\t\t// A live remote object's instance has its variant.\n\t\tconst variant = variantsAt(instance.served.contract, this.contract.version).get(instance.variant!)!;\n\t\tconst previous = this.#names();\n\t\tconst state: Bound = {\n\t\t\tkind: \"bound\",\n\t\t\tvariant,\n\t\t\tnames: variantNames(variant),\n\t\t\tfollowed: [],\n\t\t\tinstance,\n\t\t\t...(previous === undefined\n\t\t\t\t? {}\n\t\t\t\t: { previous: { variant: previous.variant, names: previous.names, until: this.#provider.nextOwn } }),\n\t\t};\n\t\tthis.#state = state;\n\t\treturn state;\n\t}\n\n\t/** A hold over a link follows its object's instances in `moved` (a fresh `bound` for a new one). */\n\tretarget(): void {}\n\n\t/** It moves nothing in `retarget`. */\n\treadonly following = false;\n\n\t/**\n\t * Its object left it (slice 7b §6): its type was removed (`not_served`) or its provider no longer binds the hold's\n\t * version (`version`): no longer subscribed, its calls in flight rejected, it waits refused with `removal.cause` in\n\t * the host's index (a publication starts it again) and the consumer is sent `failed`, which unbinds a bound hold.\n\t */\n\tremoved(removal: Removal): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"released\" || this.#object === undefined) return;\n\t\tif (state.kind === \"bound\") unfollow(state);\n\t\tthis.#changes = [];\n\t\tthis.#failed = [];\n\t\tthis.#retired = NO_RETIRED;\n\t\tthis.#touched = false;\n\t\tthis.#provider.unbound(this, removal.cause.error);\n\t\tthis.#object = undefined;\n\t\tthis.#refuse(this.contract, removal.cause);\n\t}\n\n\t/**\n\t * Follows member `index` from its snapshot on (a failed one too: it may recover in this hold): its own encoder and\n\t * pending queue, and a subscription feeding its calls into this hold's batch. Failures fold per member: a failure\n\t * drops what was pending for it and replaces a failure not sent yet (one at most per member, however long the\n\t * consumer stalls); the value after it (a root replacement) replaces the failure. A retirement waits for a value.\n\t */\n\t#follow(state: Bound, index: number, source: DeriveSource): void {\n\t\tconst followed: Followed = {\n\t\t\tindex,\n\t\t\tsource,\n\t\t\tsubscriber: {\n\t\t\t\tadvance: (call) => {\n\t\t\t\t\tthis.#touch();\n\t\t\t\t\tif (call.kind === \"failed\") {\n\t\t\t\t\t\tthis.#memberFailed(followed, call.error);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.#memberHealed(index);\n\t\t\t\t\tconst { ops, retired } = call;\n\t\t\t\t\t// A retired derive's frame may carry no ops (rule 21): only the flag travels.\n\t\t\t\t\tif (ops.length > 0) this.#changes.push([followed, ops]);\n\t\t\t\t\t// A new list per retirement (rare): the shared empty one is never written to.\n\t\t\t\t\tif (retired && !this.#retired.includes(index)) this.#retired = [...this.#retired, index];\n\t\t\t\t},\n\t\t\t\t// The member's source ended with its object, which ends this hold.\n\t\t\t\tend: () => {},\n\t\t\t\tendAfterDelivery: () => {},\n\t\t\t},\n\t\t\tencoder: encoder(),\n\t\t\tpending: new PendingOps(),\n\t\t};\n\t\t// A constant never changes: nothing to subscribe to.\n\t\tif (source instanceof Source) source.subscribe(followed.subscriber);\n\t\tstate.followed.push(followed);\n\t}\n\n\t/** Takes the current batch's changes; the hold is untouched again. */\n\t#take(): (readonly [Followed, readonly Op[]])[] {\n\t\tconst changes = this.#changes;\n\t\tthis.#changes = [];\n\t\tthis.#touched = false;\n\t\treturn changes;\n\t}\n\n\t/** A state entry with `members` and the failures and retirements since the last one; counts one encode. */\n\t#entry(members: StateEntry[\"members\"], context: Context): StateEntry {\n\t\tconst failed = this.#failed;\n\t\tlet retired = this.#retired;\n\t\tthis.#failed = [];\n\t\tthis.#retired = NO_RETIRED;\n\t\tif (retired.length > 0 && failed.length > 0) {\n\t\t\t// A failed member's retirement travels with its next value, never with its failure.\n\t\t\tconst kept = retired.filter((index) => failed.some(({ member }) => member === index));\n\t\t\tif (kept.length > 0) {\n\t\t\t\tthis.#retired = kept;\n\t\t\t\tretired = retired.filter((index) => !kept.includes(index));\n\t\t\t}\n\t\t}\n\t\tchordMetrics(context.telemetry.metrics).counter(\"chord.link.encodes\").add(1);\n\t\treturn { hold: this.id, members, failed, retired };\n\t}\n\n\t#touch(): void {\n\t\tif (this.#touched) return;\n\t\tthis.#touched = true;\n\t\tthis.#provider.touched(this);\n\t}\n\n\t/**\n\t * Refuses the hold with `cause`, holding nothing: it keeps `request`, indexed under its type while `waiting` (a\n\t * publication starts it again), for a `retry` otherwise.\n\t */\n\t#refuse(request: HoldRequest, cause: FailureCause): void {\n\t\tthis.#state = { kind: \"refused\", request: owned(request), cause };\n\t\tif (cause.kind === \"waiting\") this.#provider.link.host.index(request.type, this, cause);\n\t\tthis.#provider.send({\n\t\t\tkind: \"failed\",\n\t\t\thold: this.id,\n\t\t\tcause: { kind: cause.kind, error: wireError(cause.error) },\n\t\t});\n\t}\n}\n\n/** Stops following every member of a bound hold. */\nfunction unfollow(state: Bound): void {\n\tfor (const { source, subscriber } of state.followed) if (source instanceof Source) source.unsubscribe(subscriber);\n}\n\n/** `request` with its params owned, not a view of the message they came in (which the link's buffers may hold). */\nfunction owned(request: HoldRequest): HoldRequest {\n\tconst { params } = request;\n\treturn typeof params === \"string\" ? request : { ...request, params: (params as Uint8Array).slice() };\n}\n\n/** A `hold` message's fields naming whom it acts for. */\ntype ActingFor = Pick<HoldMessage, \"principal\" | \"incarnation\">;\n\nconst NOBODY: ActingFor = {};\n\n/**\n * The fields of a `hold` message naming whom it acts for (`caller`): sent only on a route link, whose child honours\n * them (§4); none elsewhere.\n */\nexport function actingFor(link: HostLink, { principal, incarnation }: Caller): ActingFor {\n\treturn link.role === \"route\" && principal !== undefined ? { principal, incarnation } : NOBODY;\n}\n"]}
@@ -0,0 +1,77 @@
1
+ import type { Context } from "../context/index.ts";
2
+ import type { ChordError, Principal } from "../data/index.ts";
3
+ import type { AnyHost } from "../host/internal.ts";
4
+ import { type ChannelHandler, type Codec, DeflatedPart, type Limits, type Link, type Message, type Part } from "../link/internal.ts";
5
+ import { ConsumerSide } from "./consumer.ts";
6
+ import { ProviderSide } from "./provider.ts";
7
+ /**
8
+ * How a link was made: `parent` by `connect` (holds arriving on it may name whom they act for), `child` by `accept`,
9
+ * `route` by a route's `resolve`.
10
+ */
11
+ export type LinkRole = "parent" | "child" | "route";
12
+ /** What a link is made with. */
13
+ type HostLinkOptions = {
14
+ readonly role: LinkRole;
15
+ /** The peer, as this host stamps it. */
16
+ readonly principal: Principal;
17
+ /** Skips the message schema check (framing and the owners' checks still run). */
18
+ readonly trusted: boolean;
19
+ readonly codec: Codec;
20
+ readonly limits: Limits;
21
+ };
22
+ /**
23
+ * A link of a host, both directions over one channel. Closing it, from either end, ends both sides: the provider sides
24
+ * release the peer's holds, the consumer side's holds go loading until their path's next link.
25
+ */
26
+ export declare class HostLink implements ChannelHandler {
27
+ #private;
28
+ readonly host: AnyHost;
29
+ readonly role: LinkRole;
30
+ readonly principal: Principal;
31
+ /** Whether the link is trusted: activation chains on holds arriving on it are honoured (Q5). */
32
+ readonly trusted: boolean;
33
+ /** The limits per part of what arrives on this link (Q2). */
34
+ readonly limits: Limits;
35
+ /** The parent of the work arriving on this link. */
36
+ readonly context: Context;
37
+ readonly consumer: ConsumerSide;
38
+ constructor(host: AnyHost, link: Link, options: HostLinkOptions, context: Context);
39
+ /** The peer's incarnation, from its `hello`. */
40
+ get peer(): string;
41
+ /** Whether the peer's `hello` arrived (it may have arrived while the link was made). */
42
+ get greeted(): boolean;
43
+ /** Whether the link is open; one closed already when made is not kept. */
44
+ get open(): boolean;
45
+ send(message: Message): void;
46
+ close(): void;
47
+ /** The heartbeat (see `Channel.tick`). */
48
+ tick(now: number, paused: number, ping: number, close: number): void;
49
+ opened(): void;
50
+ /** A JSON part this host originates on this link: deflated above the threshold when the host compresses. */
51
+ part(json: string, context: Context): Part;
52
+ /** The JSON of a part arriving on this link, where it is owned, within `limits`. Throws as `openPart` does. */
53
+ openPart(part: Part, limits: Limits, context: Context): string | Uint8Array;
54
+ /**
55
+ * Whether `part` waits for an asynchronous inflate before its owner can open it: deflated, not inflated yet, on a
56
+ * host without a synchronous compressor, and within the wire limit (past it, opening refuses it uninflated).
57
+ */
58
+ inflates(part: Part | undefined, limits: Limits): part is DeflatedPart;
59
+ /**
60
+ * Inflates `parts` (deflated parts an owner admitted, each with its decoded limit) one after another with the web
61
+ * `DecompressionStream`, then lets the owner handle its message again (`handle`); the channel holds the link's later
62
+ * messages until then. A link closed meanwhile stops the inflate at once and drops the message (race 13).
63
+ */
64
+ inflate(parts: readonly (readonly [DeflatedPart, number])[], handle: () => void): Promise<void>;
65
+ /**
66
+ * A message from the peer, to its side. One whose owner first waits for an asynchronous inflate returns its promise:
67
+ * the channel holds later messages until it settled.
68
+ */
69
+ message(message: Message): void | Promise<void>;
70
+ /** `provider` holds nothing any more: it goes (its relay's upstream links are told `closed`). */
71
+ drop(provider: ProviderSide): void;
72
+ /** Ends the holds on this link that hold nothing and act for a principal `revoked` names (§4). */
73
+ revokeUnbound(revoked: (principal: Principal) => boolean, error: ChordError): void;
74
+ closed(): void;
75
+ }
76
+ export {};
77
+ //# sourceMappingURL=host-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-link.d.ts","sourceRoot":"","sources":["../../src/remote/host-link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ // One link of a host (§3, §22): its channel, its role, the peer's principal, its limits per part, and both sides: a
2
+ // provider side per origin (holds and calls the peer sent, its own or a relay's for one of its downstream links) and
3
+ // the consumer side (holds and calls this host sent). Message kinds are directional, so each goes to its side; a
4
+ // revocation is honoured from the parent only. Parts are made and opened here, with the host's compressor, or inflated
5
+ // asynchronously for their owner when the host has none.
6
+ import { Channel, DeflatedPart, inflateAsync, openPart, originPart, } from "../link/internal.js";
7
+ import { ConsumerSide } from "./consumer.js";
8
+ import { ProviderSide } from "./provider.js";
9
+ /** How many concurrent calls a host accepts on each of its links, announced in `hello`. */
10
+ const CALLS = 256;
11
+ /**
12
+ * A link of a host, both directions over one channel. Closing it, from either end, ends both sides: the provider sides
13
+ * release the peer's holds, the consumer side's holds go loading until their path's next link.
14
+ */
15
+ export class HostLink {
16
+ host;
17
+ role;
18
+ principal;
19
+ /** Whether the link is trusted: activation chains on holds arriving on it are honoured (Q5). */
20
+ trusted;
21
+ /** The limits per part of what arrives on this link (Q2). */
22
+ limits;
23
+ /** The parent of the work arriving on this link. */
24
+ context;
25
+ consumer;
26
+ /**
27
+ * The provider side of each origin the peer sent holds for, made by its first and dropped once it holds nothing;
28
+ * `origin` is honoured only on parent and route links, where a relay's messages arrive (decision "Origins only from
29
+ * relays").
30
+ */
31
+ #providers = new Map();
32
+ #channel;
33
+ /** Aborted when the link closes: stops its asynchronous inflates at once. */
34
+ #closing = new AbortController();
35
+ constructor(host, link, options, context) {
36
+ this.host = host;
37
+ this.role = options.role;
38
+ this.principal = options.principal;
39
+ this.trusted = options.trusted;
40
+ this.limits = options.limits;
41
+ this.context = context;
42
+ this.consumer = new ConsumerSide(this);
43
+ const { codec, trusted } = options;
44
+ const report = (error) => host.report({ kind: "protocol_error", error });
45
+ const channel = { codec, incarnation: host.incarnation, calls: CALLS, trusted, report, metrics: host.metrics };
46
+ this.#channel = new Channel(link, this, channel, context);
47
+ host.metrics.upDownCounter("chord.links.open").add(1);
48
+ // Last: a link closed already calls `closed` at once.
49
+ this.#channel.start();
50
+ }
51
+ /** The peer's incarnation, from its `hello`. */
52
+ get peer() {
53
+ return this.#channel.peer;
54
+ }
55
+ /** Whether the peer's `hello` arrived (it may have arrived while the link was made). */
56
+ get greeted() {
57
+ return this.#channel.opened;
58
+ }
59
+ /** Whether the link is open; one closed already when made is not kept. */
60
+ get open() {
61
+ return !this.#channel.closed;
62
+ }
63
+ send(message) {
64
+ this.#channel.send(message);
65
+ }
66
+ close() {
67
+ this.#channel.close();
68
+ }
69
+ /** The heartbeat (see `Channel.tick`). */
70
+ tick(now, paused, ping, close) {
71
+ this.#channel.tick(now, paused, ping, close);
72
+ }
73
+ opened() {
74
+ this.consumer.opened(this.#channel.peerCalls);
75
+ this.host.linkOpened(this);
76
+ }
77
+ /** A JSON part this host originates on this link: deflated above the threshold when the host compresses. */
78
+ part(json, context) {
79
+ return originPart(json, this.host.compression, context);
80
+ }
81
+ /** The JSON of a part arriving on this link, where it is owned, within `limits`. Throws as `openPart` does. */
82
+ openPart(part, limits, context) {
83
+ return openPart(part, limits, this.host.compression, context);
84
+ }
85
+ /**
86
+ * Whether `part` waits for an asynchronous inflate before its owner can open it: deflated, not inflated yet, on a
87
+ * host without a synchronous compressor, and within the wire limit (past it, opening refuses it uninflated).
88
+ */
89
+ inflates(part, limits) {
90
+ return (part instanceof DeflatedPart &&
91
+ part.inflated === undefined &&
92
+ this.host.compression === undefined &&
93
+ part.bytes.byteLength <= limits.part);
94
+ }
95
+ /**
96
+ * Inflates `parts` (deflated parts an owner admitted, each with its decoded limit) one after another with the web
97
+ * `DecompressionStream`, then lets the owner handle its message again (`handle`); the channel holds the link's later
98
+ * messages until then. A link closed meanwhile stops the inflate at once and drops the message (race 13).
99
+ */
100
+ async inflate(parts, handle) {
101
+ const { signal } = this.#closing;
102
+ for (const [part, limit] of parts) {
103
+ await inflateAsync(part, limit, signal, this.context);
104
+ if (signal.aborted)
105
+ return;
106
+ }
107
+ handle();
108
+ }
109
+ /**
110
+ * A message from the peer, to its side. One whose owner first waits for an asynchronous inflate returns its promise:
111
+ * the channel holds later messages until it settled.
112
+ */
113
+ message(message) {
114
+ // A child (a tab, a TUI) relays nothing: its origins would each get their own call window and record.
115
+ if (this.role === "child" && "origin" in message && message.origin !== undefined) {
116
+ throw new Error(`${message.kind}: an origin on a child link`);
117
+ }
118
+ switch (message.kind) {
119
+ case "hold":
120
+ this.#hold(message);
121
+ break;
122
+ case "release":
123
+ case "call":
124
+ case "abort":
125
+ case "retry":
126
+ case "ack":
127
+ // An origin this link has no holds for: its ids are unknown (Q1).
128
+ return this.#providers.get(message.origin ?? 0)?.message(message);
129
+ case "closed":
130
+ this.#providers.get(message.origin)?.closed();
131
+ this.#providers.delete(message.origin);
132
+ break;
133
+ case "bound":
134
+ case "state":
135
+ case "failed":
136
+ case "loading":
137
+ case "result":
138
+ case "error":
139
+ case "gone":
140
+ return this.consumer.message(message);
141
+ case "revoke":
142
+ // Only the parent revokes; a child or a route cannot (race 6).
143
+ // JSON from the parent, the app's revocation type there as here (the same app code).
144
+ if (this.role === "parent")
145
+ this.host.revoke(message.revocation, this.context);
146
+ break;
147
+ default:
148
+ // `hello`, `ping` and `pong` are the channel's.
149
+ break;
150
+ }
151
+ }
152
+ /** `provider` holds nothing any more: it goes (its relay's upstream links are told `closed`). */
153
+ drop(provider) {
154
+ if (this.#providers.get(provider.origin) !== provider)
155
+ return;
156
+ this.#providers.delete(provider.origin);
157
+ provider.closed();
158
+ }
159
+ /** Ends the holds on this link that hold nothing and act for a principal `revoked` names (§4). */
160
+ revokeUnbound(revoked, error) {
161
+ for (const provider of this.#providers.values())
162
+ provider.revokeUnbound(revoked, error);
163
+ }
164
+ closed() {
165
+ this.host.metrics.upDownCounter("chord.links.open").add(-1);
166
+ this.#closing.abort();
167
+ for (const provider of this.#providers.values())
168
+ provider.closed();
169
+ this.#providers.clear();
170
+ this.consumer.closed();
171
+ this.host.unlink(this);
172
+ }
173
+ /** A `hold` goes to its origin's provider side, made for the origin's first. */
174
+ #hold(message) {
175
+ const origin = message.origin ?? 0;
176
+ let provider = this.#providers.get(origin);
177
+ if (provider === undefined) {
178
+ provider = new ProviderSide(this, origin, CALLS);
179
+ this.#providers.set(origin, provider);
180
+ }
181
+ provider.message(message);
182
+ }
183
+ }
184
+ //# sourceMappingURL=host-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-link.js","sourceRoot":"","sources":["../../src/remote/host-link.ts"],"names":[],"mappings":"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","sourcesContent":["// One link of a host (§3, §22): its channel, its role, the peer's principal, its limits per part, and both sides: a\n// provider side per origin (holds and calls the peer sent, its own or a relay's for one of its downstream links) and\n// the consumer side (holds and calls this host sent). Message kinds are directional, so each goes to its side; a\n// revocation is honoured from the parent only. Parts are made and opened here, with the host's compressor, or inflated\n// asynchronously for their owner when the host has none.\n\nimport type { Context } from \"../context/index.ts\";\nimport type { ChordError, Principal } from \"../data/index.ts\";\nimport type { AnyHost } from \"../host/internal.ts\";\nimport type { JsonValue } from \"../json.ts\";\nimport {\n\tChannel,\n\ttype ChannelHandler,\n\ttype Codec,\n\tDeflatedPart,\n\tinflateAsync,\n\ttype Limits,\n\ttype Link,\n\ttype Message,\n\topenPart,\n\toriginPart,\n\ttype Part,\n} from \"../link/internal.ts\";\nimport { ConsumerSide } from \"./consumer.ts\";\nimport { ProviderSide } from \"./provider.ts\";\n\n/**\n * How a link was made: `parent` by `connect` (holds arriving on it may name whom they act for), `child` by `accept`,\n * `route` by a route's `resolve`.\n */\nexport type LinkRole = \"parent\" | \"child\" | \"route\";\n\n/** What a link is made with. */\ntype HostLinkOptions = {\n\treadonly role: LinkRole;\n\t/** The peer, as this host stamps it. */\n\treadonly principal: Principal;\n\t/** Skips the message schema check (framing and the owners' checks still run). */\n\treadonly trusted: boolean;\n\treadonly codec: Codec;\n\treadonly limits: Limits;\n};\n\n/** How many concurrent calls a host accepts on each of its links, announced in `hello`. */\nconst CALLS = 256;\n\n/**\n * A link of a host, both directions over one channel. Closing it, from either end, ends both sides: the provider sides\n * release the peer's holds, the consumer side's holds go loading until their path's next link.\n */\nexport class HostLink implements ChannelHandler {\n\treadonly host: AnyHost;\n\treadonly role: LinkRole;\n\treadonly principal: Principal;\n\t/** Whether the link is trusted: activation chains on holds arriving on it are honoured (Q5). */\n\treadonly trusted: boolean;\n\t/** The limits per part of what arrives on this link (Q2). */\n\treadonly limits: Limits;\n\t/** The parent of the work arriving on this link. */\n\treadonly context: Context;\n\treadonly consumer: ConsumerSide;\n\t/**\n\t * The provider side of each origin the peer sent holds for, made by its first and dropped once it holds nothing;\n\t * `origin` is honoured only on parent and route links, where a relay's messages arrive (decision \"Origins only from\n\t * relays\").\n\t */\n\treadonly #providers = new Map<number, ProviderSide>();\n\treadonly #channel: Channel;\n\t/** Aborted when the link closes: stops its asynchronous inflates at once. */\n\treadonly #closing = new AbortController();\n\n\tconstructor(host: AnyHost, link: Link, options: HostLinkOptions, context: Context) {\n\t\tthis.host = host;\n\t\tthis.role = options.role;\n\t\tthis.principal = options.principal;\n\t\tthis.trusted = options.trusted;\n\t\tthis.limits = options.limits;\n\t\tthis.context = context;\n\t\tthis.consumer = new ConsumerSide(this);\n\t\tconst { codec, trusted } = options;\n\t\tconst report = (error: unknown): void => host.report({ kind: \"protocol_error\", error });\n\t\tconst channel = { codec, incarnation: host.incarnation, calls: CALLS, trusted, report, metrics: host.metrics };\n\t\tthis.#channel = new Channel(link, this, channel, context);\n\t\thost.metrics.upDownCounter(\"chord.links.open\").add(1);\n\t\t// Last: a link closed already calls `closed` at once.\n\t\tthis.#channel.start();\n\t}\n\n\t/** The peer's incarnation, from its `hello`. */\n\tget peer(): string {\n\t\treturn this.#channel.peer;\n\t}\n\n\t/** Whether the peer's `hello` arrived (it may have arrived while the link was made). */\n\tget greeted(): boolean {\n\t\treturn this.#channel.opened;\n\t}\n\n\t/** Whether the link is open; one closed already when made is not kept. */\n\tget open(): boolean {\n\t\treturn !this.#channel.closed;\n\t}\n\n\tsend(message: Message): void {\n\t\tthis.#channel.send(message);\n\t}\n\n\tclose(): void {\n\t\tthis.#channel.close();\n\t}\n\n\t/** The heartbeat (see `Channel.tick`). */\n\ttick(now: number, paused: number, ping: number, close: number): void {\n\t\tthis.#channel.tick(now, paused, ping, close);\n\t}\n\n\topened(): void {\n\t\tthis.consumer.opened(this.#channel.peerCalls);\n\t\tthis.host.linkOpened(this);\n\t}\n\n\t/** A JSON part this host originates on this link: deflated above the threshold when the host compresses. */\n\tpart(json: string, context: Context): Part {\n\t\treturn originPart(json, this.host.compression, context);\n\t}\n\n\t/** The JSON of a part arriving on this link, where it is owned, within `limits`. Throws as `openPart` does. */\n\topenPart(part: Part, limits: Limits, context: Context): string | Uint8Array {\n\t\treturn openPart(part, limits, this.host.compression, context);\n\t}\n\n\t/**\n\t * Whether `part` waits for an asynchronous inflate before its owner can open it: deflated, not inflated yet, on a\n\t * host without a synchronous compressor, and within the wire limit (past it, opening refuses it uninflated).\n\t */\n\tinflates(part: Part | undefined, limits: Limits): part is DeflatedPart {\n\t\treturn (\n\t\t\tpart instanceof DeflatedPart &&\n\t\t\tpart.inflated === undefined &&\n\t\t\tthis.host.compression === undefined &&\n\t\t\tpart.bytes.byteLength <= limits.part\n\t\t);\n\t}\n\n\t/**\n\t * Inflates `parts` (deflated parts an owner admitted, each with its decoded limit) one after another with the web\n\t * `DecompressionStream`, then lets the owner handle its message again (`handle`); the channel holds the link's later\n\t * messages until then. A link closed meanwhile stops the inflate at once and drops the message (race 13).\n\t */\n\tasync inflate(parts: readonly (readonly [DeflatedPart, number])[], handle: () => void): Promise<void> {\n\t\tconst { signal } = this.#closing;\n\t\tfor (const [part, limit] of parts) {\n\t\t\tawait inflateAsync(part, limit, signal, this.context);\n\t\t\tif (signal.aborted) return;\n\t\t}\n\t\thandle();\n\t}\n\n\t/**\n\t * A message from the peer, to its side. One whose owner first waits for an asynchronous inflate returns its promise:\n\t * the channel holds later messages until it settled.\n\t */\n\tmessage(message: Message): void | Promise<void> {\n\t\t// A child (a tab, a TUI) relays nothing: its origins would each get their own call window and record.\n\t\tif (this.role === \"child\" && \"origin\" in message && message.origin !== undefined) {\n\t\t\tthrow new Error(`${message.kind}: an origin on a child link`);\n\t\t}\n\t\tswitch (message.kind) {\n\t\t\tcase \"hold\":\n\t\t\t\tthis.#hold(message);\n\t\t\t\tbreak;\n\t\t\tcase \"release\":\n\t\t\tcase \"call\":\n\t\t\tcase \"abort\":\n\t\t\tcase \"retry\":\n\t\t\tcase \"ack\":\n\t\t\t\t// An origin this link has no holds for: its ids are unknown (Q1).\n\t\t\t\treturn this.#providers.get(message.origin ?? 0)?.message(message);\n\t\t\tcase \"closed\":\n\t\t\t\tthis.#providers.get(message.origin)?.closed();\n\t\t\t\tthis.#providers.delete(message.origin);\n\t\t\t\tbreak;\n\t\t\tcase \"bound\":\n\t\t\tcase \"state\":\n\t\t\tcase \"failed\":\n\t\t\tcase \"loading\":\n\t\t\tcase \"result\":\n\t\t\tcase \"error\":\n\t\t\tcase \"gone\":\n\t\t\t\treturn this.consumer.message(message);\n\t\t\tcase \"revoke\":\n\t\t\t\t// Only the parent revokes; a child or a route cannot (race 6).\n\t\t\t\t// JSON from the parent, the app's revocation type there as here (the same app code).\n\t\t\t\tif (this.role === \"parent\") this.host.revoke(message.revocation as JsonValue, this.context);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// `hello`, `ping` and `pong` are the channel's.\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/** `provider` holds nothing any more: it goes (its relay's upstream links are told `closed`). */\n\tdrop(provider: ProviderSide): void {\n\t\tif (this.#providers.get(provider.origin) !== provider) return;\n\t\tthis.#providers.delete(provider.origin);\n\t\tprovider.closed();\n\t}\n\n\t/** Ends the holds on this link that hold nothing and act for a principal `revoked` names (§4). */\n\trevokeUnbound(revoked: (principal: Principal) => boolean, error: ChordError): void {\n\t\tfor (const provider of this.#providers.values()) provider.revokeUnbound(revoked, error);\n\t}\n\n\tclosed(): void {\n\t\tthis.host.metrics.upDownCounter(\"chord.links.open\").add(-1);\n\t\tthis.#closing.abort();\n\t\tfor (const provider of this.#providers.values()) provider.closed();\n\t\tthis.#providers.clear();\n\t\tthis.consumer.closed();\n\t\tthis.host.unlink(this);\n\t}\n\n\t/** A `hold` goes to its origin's provider side, made for the origin's first. */\n\t#hold(message: Extract<Message, { readonly kind: \"hold\" }>): void {\n\t\tconst origin = message.origin ?? 0;\n\t\tlet provider = this.#providers.get(origin);\n\t\tif (provider === undefined) {\n\t\t\tprovider = new ProviderSide(this, origin, CALLS);\n\t\t\tthis.#providers.set(origin, provider);\n\t\t}\n\t\tprovider.message(message);\n\t}\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/remote/internal.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/remote/internal.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,oCAAoC;AAGpC,OAAO,EAAE,QAAQ,EAAiB,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,IAAI,EAAiC,MAAM,WAAW,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC","sourcesContent":["// Remote objects for Chord's layers: a host's links (both sides of each), the paths its upstream holds take, and the\n// objects of its remote references.\n\nexport type { HoldRequest } from \"./hold.ts\";\nexport { HostLink, type LinkRole } from \"./host-link.ts\";\nexport { Path, type PathEvent, type Upstream } from \"./path.ts\";\nexport type { ProviderSide } from \"./provider.ts\";\nexport { RemoteObject } from \"./remote-object.ts\";\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/remote/path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,iGAAiG;AACjG,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,SAAS,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAMjC;;;;GAIG;AACH,qBAAa,IAAI;;IAOhB,YAAY,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,EAE9C;IAED,0CAA0C;IAC1C,IAAI,IAAI,IAAI,QAAQ,GAAG,SAAS,CAE/B;IAED,sFAAsF;IACtF,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,+CAA+C;IAC/C,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,qFAAqF;IACrF,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAI7B;IAED,8DAA8D;IAC9D,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAG7B;IAED,iEAAiE;IACjE,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAI9B;IAED,0GAA0G;IAC1G,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAMjC;IAED,oHAAoH;IACpH,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAEnC;IAED,0CAA0C;IAC1C,OAAO,IAAI,QAAQ,EAAE,CAEpB;CACD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/remote/path.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,qGAAqG;AAErG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAiB9C,MAAM,QAAQ,GAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAEjD,MAAM,OAAO,GAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAE/C;;;;GAIG;AACH,MAAM,OAAO,IAAI;IACP,QAAQ,GAAG,IAAI,GAAG,EAAY,CAAC;IAC/B,QAAQ,CAA6B;IAC9C,KAAK,CAAuB;IAC5B,oGAAoG;IACpG,OAAO,GAAG,KAAK,CAAC;IAEhB,YAAY,OAAmC;QAC9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,sFAAsF;IACtF,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,+CAA+C;IAC/C,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,qFAAqF;IACrF,MAAM,CAAC,MAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;;YACrE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,MAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,iEAAiE;IACjE,SAAS,CAAC,IAAc;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,0GAA0G;IAC1G,YAAY,CAAC,IAAc;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO;QAChC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAClF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,oHAAoH;IACpH,WAAW,CAAC,KAAiB;QAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACN,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;CACD","sourcesContent":["// Paths (§3 recovery): where this host's upstream holds go, the parent link or a route address's link, across links.\n// Each new link of a path holds every holder of the path again; when it drops, every holder is told.\n\nimport { ChordError } from \"../data/index.ts\";\nimport type { HostLink } from \"./host-link.ts\";\nimport type { RelayedHold } from \"./relay.ts\";\nimport type { RemoteObject } from \"./remote-object.ts\";\n\n/** What a path holds on its links: one of this host's remote references, or a hold it relays. */\nexport type Upstream = RemoteObject | RelayedHold;\n\n/**\n * What changed on a path without a link, for its route: a holder attached, its link dropped (its holders went\n * loading), its last holder left.\n */\nexport type PathEvent =\n\t| { readonly kind: \"attached\"; readonly holder: Upstream }\n\t| { readonly kind: \"dropped\" }\n\t| { readonly kind: \"released\" };\n\nconst RELEASED: PathEvent = { kind: \"released\" };\n\nconst DROPPED: PathEvent = { kind: \"dropped\" };\n\n/**\n * The parent link or one route address: its current link and its holders, held on that link and again on every next\n * one. `changed` runs when it gets a holder without a link, loses its link or its last holder (a route decides whether\n * to resolve), saying which.\n */\nexport class Path {\n\treadonly #holders = new Set<Upstream>();\n\treadonly #changed: (event: PathEvent) => void;\n\t#link: HostLink | undefined;\n\t/** Whether it ever had a link: a host never connected to a parent has no parent path to wait on. */\n\t#linked = false;\n\n\tconstructor(changed: (event: PathEvent) => void) {\n\t\tthis.#changed = changed;\n\t}\n\n\t/** The current link while one is open. */\n\tget link(): HostLink | undefined {\n\t\treturn this.#link;\n\t}\n\n\t/** Whether it had a link once (it may be down now: its holders wait for the next). */\n\tget linked(): boolean {\n\t\treturn this.#linked;\n\t}\n\n\t/** Whether anything is held over this path. */\n\tget held(): boolean {\n\t\treturn this.#holders.size > 0;\n\t}\n\n\t/** Holds `holder` over this path: on the current link now, and on every next one. */\n\tattach(holder: Upstream): void {\n\t\tthis.#holders.add(holder);\n\t\tif (this.#link === undefined) this.#changed({ kind: \"attached\", holder });\n\t\telse holder.attach(this.#link);\n\t}\n\n\t/** `holder` was released or ended; no later link holds it. */\n\tdetach(holder: Upstream): void {\n\t\tthis.#holders.delete(holder);\n\t\tif (this.#holders.size === 0) this.#changed(RELEASED);\n\t}\n\n\t/** `link` is the path's link now: every holder is held on it. */\n\tconnected(link: HostLink): void {\n\t\tthis.#link = link;\n\t\tthis.#linked = true;\n\t\tfor (const holder of this.#holders) holder.attach(link);\n\t}\n\n\t/** `link` closed (its sides ended their calls already): every holder goes loading until the next link. */\n\tdisconnected(link: HostLink): void {\n\t\tif (this.#link !== link) return;\n\t\tthis.#link = undefined;\n\t\tconst error = new ChordError({ code: \"unavailable\", message: \"the link closed\" });\n\t\tfor (const holder of this.#holders) holder.dropped(error);\n\t\tthis.#changed(DROPPED);\n\t}\n\n\t/** Its address cannot be reached for now (a route's `resolve` failed, a suspension): every holder fails waiting. */\n\tunreachable(error: ChordError): void {\n\t\tfor (const holder of this.#holders) holder.unreachable(error);\n\t}\n\n\t/** Every holder, for the host's close. */\n\tholders(): Upstream[] {\n\t\treturn [...this.#holders];\n\t}\n}\n"]}
@@ -0,0 +1,89 @@
1
+ import { type Context } from "../context/index.ts";
2
+ import { ChordError, type Principal } from "../data/index.ts";
3
+ import { type ConsumerMessage, type OriginMessage, type ProviderMessage } from "../link/internal.ts";
4
+ import { Hold } from "./hold.ts";
5
+ import type { HostLink } from "./host-link.ts";
6
+ import { type RelayedHold } from "./relay.ts";
7
+ /**
8
+ * The provider side of one origin on a link. Ids are the origin's; a message naming an id this side does not know is
9
+ * ignored (Q1), one reusing a live id is a protocol error, and so are more concurrent calls than this side announced.
10
+ * This host's own `bound` and `state` messages go through the window: locally served holds wait while it is full
11
+ * (their ops in their members' pending queues, their bindings for the next slot); a call's answer, its own or a
12
+ * relayed one, sends the waiting state first. A relay forwards upstream messages at once (each upstream host keeps its
13
+ * own window for the origin it sees), so a slow consumer stalls only its origin.
14
+ */
15
+ export declare class ProviderSide {
16
+ #private;
17
+ readonly link: HostLink;
18
+ /** Whose work this side serves: 0 for the peer's own, a relay's number for one of its downstream links. */
19
+ readonly origin: number;
20
+ constructor(link: HostLink, origin: number, limit: number);
21
+ /** Handles one message of this origin; a call whose arguments wait for an asynchronous inflate returns its promise. */
22
+ message(message: ProviderMessage): void | Promise<void>;
23
+ /**
24
+ * The link closed, or the origin did (`closed`): every hold is released (relayed ones by one `closed` to each
25
+ * upstream link) and every call aborted.
26
+ */
27
+ closed(): void;
28
+ /** Sends `message` on the link with this origin. */
29
+ send(message: OriginMessage): void;
30
+ /**
31
+ * Ends with `error` every hold of this origin that acts for a principal `revoked` names and holds nothing: served
32
+ * here but unbound (before the publication, refused), or relayed and waiting for its route's link.
33
+ */
34
+ revokeUnbound(revoked: (principal: Principal) => boolean, error: ChordError): void;
35
+ /** A pending hold turned out to be relayed: it takes the hold's place in the table. */
36
+ relayed(hold: RelayedHold): void;
37
+ /** This origin's number on upstream links (one per host, never reused), with `link` as one it relays to. */
38
+ relayTo(link: HostLink): number;
39
+ /**
40
+ * A message from upstream link `from` for this origin's relayed holds, forwarded with this origin: `bound` and
41
+ * `state` join the window's senders (their `ack` goes back to `from`), a reply ends its call (after this host's own
42
+ * waiting state: `reply`), `gone` forgets its hold. A link answers only for what was relayed over it: an entry, a
43
+ * notice or a reply naming a hold (or a call) this origin did not relay over `from` is dropped (Q1); a `bound` or
44
+ * `state` left without entries is acknowledged to `from` at once. Parts travel unchecked and unparsed: the end that
45
+ * parses a part checks it against its own link's limits.
46
+ */
47
+ forward(message: ConsumerMessage, from: HostLink): void;
48
+ /** An upstream link closed: nothing more is relayed to it, nor accepted from it. */
49
+ unlinked(link: HostLink): void;
50
+ /**
51
+ * The upstream link of relayed hold `hold` dropped with `error`: its calls in flight fail, the hold goes loading
52
+ * downstream, and its path's next link holds it again.
53
+ */
54
+ upstreamDropped(hold: RelayedHold, error: ChordError): void;
55
+ /**
56
+ * Forgets a hold (released, refused or gone) and every call on it; local calls are aborted with `error` (its
57
+ * object's end for a gone hold, `released` otherwise).
58
+ */
59
+ forget(hold: Hold | RelayedHold, error?: ChordError): void;
60
+ /**
61
+ * A call ended with `reply` (a result or an error, its own or forwarded from upstream): its slot is free; nothing is
62
+ * sent for one already gone. The state waiting for a slot goes first, past the window if it is full (decision "A
63
+ * call's answer follows its state"): when the call settles at the consumer, every change this host committed before
64
+ * answering is applied there.
65
+ */
66
+ reply(id: number, reply: Extract<OriginMessage, {
67
+ readonly kind: "result" | "error";
68
+ }>): void;
69
+ /** A hold's object is live: its `bound` goes now when a slot is free, else with the next free slot's bindings. */
70
+ bind(hold: Hold, context: Context): void;
71
+ /** A hold stopped waiting for a slot: it was forgotten. */
72
+ unbind(hold: Hold): void;
73
+ /**
74
+ * A served hold left its object's binding with `error` (a failure, a removal or a version no longer bound; slice 7b
75
+ * §6, model §5): as `unbind`, and its calls in flight rejected with `error` (each slot freed once). A hold unbinding
76
+ * with `loading` keeps them (`unbind` alone).
77
+ */
78
+ unbound(hold: Hold, error: ChordError): void;
79
+ /** A hold's members changed in the current batch; its flush sends or queues it. */
80
+ touched(hold: Hold): void;
81
+ /** The number the next of this host's own `bound` and `state` messages gets (counted from 1). */
82
+ get nextOwn(): number;
83
+ /**
84
+ * Whether its consumer acknowledged this host's own message number `own`, so applied it: a call it sent after that
85
+ * arrives after the `ack` (one direction keeps its order).
86
+ */
87
+ acknowledged(own: number): boolean;
88
+ }
89
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/remote/provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAgB,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAEN,KAAK,eAAe,EAGpB,KAAK,aAAa,EAElB,KAAK,eAAe,EAKpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,YAAY,CAAC;AAuB1D;;;;;;;GAOG;AACH,qBAAa,YAAY;;IACxB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,2GAA2G;IAC3G,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAwBxB,YAAY,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAIxD;IAED,uHAAuH;IACvH,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtD;IAED;;;OAGG;IACH,MAAM,IAAI,IAAI,CAqBb;IAED,oDAAoD;IACpD,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAEjC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAOjF;IAED,uFAAuF;IACvF,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAE/B;IAED,4GAA4G;IAC5G,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAQ9B;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAiCtD;IAED,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAE7B;IAED;;;OAGG;IACH,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAK1D;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAWzD;IAED;;;;;OAKG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI,CAU5F;IAUD,kHAAkH;IAClH,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAMvC;IAED,2DAA2D;IAC3D,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAKvB;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAO3C;IAED,mFAAmF;IACnF,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAGxB;IAwND,iGAAiG;IACjG,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjC;CAgGD"}