@earendil-works/chord 1.4.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 (1299) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/README.md +115 -90
  3. package/dist/context/index.d.ts +1 -1
  4. package/dist/context/index.d.ts.map +1 -1
  5. package/dist/context/index.js +1 -1
  6. package/dist/context/index.js.map +1 -1
  7. package/dist/contracts/accepts.d.ts +81 -0
  8. package/dist/contracts/accepts.d.ts.map +1 -0
  9. package/dist/contracts/accepts.js +123 -0
  10. package/dist/contracts/accepts.js.map +1 -0
  11. package/dist/contracts/contract.d.ts +121 -0
  12. package/dist/contracts/contract.d.ts.map +1 -0
  13. package/dist/contracts/contract.js +50 -0
  14. package/dist/contracts/contract.js.map +1 -0
  15. package/dist/contracts/declare.d.ts +107 -0
  16. package/dist/contracts/declare.d.ts.map +1 -0
  17. package/dist/contracts/declare.js +136 -0
  18. package/dist/contracts/declare.js.map +1 -0
  19. package/dist/contracts/evolve.d.ts +92 -0
  20. package/dist/contracts/evolve.d.ts.map +1 -0
  21. package/dist/contracts/evolve.js +179 -0
  22. package/dist/contracts/evolve.js.map +1 -0
  23. package/dist/contracts/fingerprint.d.ts +16 -0
  24. package/dist/contracts/fingerprint.d.ts.map +1 -0
  25. package/dist/contracts/fingerprint.js +50 -0
  26. package/dist/contracts/fingerprint.js.map +1 -0
  27. package/dist/contracts/history.d.ts +71 -0
  28. package/dist/contracts/history.d.ts.map +1 -0
  29. package/dist/contracts/history.js +3 -0
  30. package/dist/contracts/history.js.map +1 -0
  31. package/dist/contracts/host-kind.d.ts +40 -0
  32. package/dist/contracts/host-kind.d.ts.map +1 -0
  33. package/dist/contracts/host-kind.js +37 -0
  34. package/dist/contracts/host-kind.js.map +1 -0
  35. package/dist/contracts/index.d.ts +7 -0
  36. package/dist/contracts/index.d.ts.map +1 -0
  37. package/dist/contracts/index.js +6 -0
  38. package/dist/contracts/index.js.map +1 -0
  39. package/dist/contracts/internal.d.ts +10 -0
  40. package/dist/contracts/internal.d.ts.map +1 -0
  41. package/dist/contracts/internal.js +9 -0
  42. package/dist/contracts/internal.js.map +1 -0
  43. package/dist/contracts/names.d.ts +3 -0
  44. package/dist/contracts/names.d.ts.map +1 -0
  45. package/dist/contracts/names.js +13 -0
  46. package/dist/contracts/names.js.map +1 -0
  47. package/dist/contracts/params.d.ts +28 -0
  48. package/dist/contracts/params.d.ts.map +1 -0
  49. package/dist/contracts/params.js +50 -0
  50. package/dist/contracts/params.js.map +1 -0
  51. package/dist/contracts/schema.d.ts +102 -0
  52. package/dist/contracts/schema.d.ts.map +1 -0
  53. package/dist/contracts/schema.js +103 -0
  54. package/dist/contracts/schema.js.map +1 -0
  55. package/dist/contracts/snapshot.d.ts +16 -0
  56. package/dist/contracts/snapshot.d.ts.map +1 -0
  57. package/dist/contracts/snapshot.js +167 -0
  58. package/dist/contracts/snapshot.js.map +1 -0
  59. package/dist/data/args.d.ts +50 -0
  60. package/dist/data/args.d.ts.map +1 -0
  61. package/dist/data/args.js +83 -0
  62. package/dist/data/args.js.map +1 -0
  63. package/dist/data/errors.d.ts +80 -0
  64. package/dist/data/errors.d.ts.map +1 -0
  65. package/dist/data/errors.js +116 -0
  66. package/dist/data/errors.js.map +1 -0
  67. package/dist/data/failure.d.ts +26 -0
  68. package/dist/data/failure.d.ts.map +1 -0
  69. package/dist/data/failure.js +77 -0
  70. package/dist/data/failure.js.map +1 -0
  71. package/dist/data/index.d.ts +4 -0
  72. package/dist/data/index.d.ts.map +1 -0
  73. package/dist/data/index.js +5 -0
  74. package/dist/data/index.js.map +1 -0
  75. package/dist/data/internal.d.ts +7 -0
  76. package/dist/data/internal.d.ts.map +1 -0
  77. package/dist/data/internal.js +8 -0
  78. package/dist/data/internal.js.map +1 -0
  79. package/dist/data/params.d.ts +20 -0
  80. package/dist/data/params.d.ts.map +1 -0
  81. package/dist/data/params.js +31 -0
  82. package/dist/data/params.js.map +1 -0
  83. package/dist/data/principal.d.ts +22 -0
  84. package/dist/data/principal.d.ts.map +1 -0
  85. package/dist/data/principal.js +49 -0
  86. package/dist/data/principal.js.map +1 -0
  87. package/dist/data/validator.d.ts +12 -0
  88. package/dist/data/validator.d.ts.map +1 -0
  89. package/dist/data/validator.js +35 -0
  90. package/dist/data/validator.js.map +1 -0
  91. package/dist/delta/apply-immutable-trusted.js +3 -4
  92. package/dist/delta/apply-immutable-trusted.js.map +1 -1
  93. package/dist/delta/diff.d.ts.map +1 -1
  94. package/dist/delta/diff.js +5 -3
  95. package/dist/delta/diff.js.map +1 -1
  96. package/dist/delta/index.d.ts +9 -1
  97. package/dist/delta/index.d.ts.map +1 -1
  98. package/dist/delta/index.js +15 -11
  99. package/dist/delta/index.js.map +1 -1
  100. package/dist/delta/pending.d.ts +36 -0
  101. package/dist/delta/pending.d.ts.map +1 -0
  102. package/dist/delta/pending.js +143 -0
  103. package/dist/delta/pending.js.map +1 -0
  104. package/dist/delta/tracker.d.ts +12 -0
  105. package/dist/delta/tracker.d.ts.map +1 -1
  106. package/dist/delta/tracker.js +109 -39
  107. package/dist/delta/tracker.js.map +1 -1
  108. package/dist/documents/address-source.d.ts +20 -0
  109. package/dist/documents/address-source.d.ts.map +1 -0
  110. package/dist/documents/address-source.js +44 -0
  111. package/dist/documents/address-source.js.map +1 -0
  112. package/dist/documents/definition.d.ts +84 -0
  113. package/dist/documents/definition.d.ts.map +1 -0
  114. package/dist/documents/definition.js +74 -0
  115. package/dist/documents/definition.js.map +1 -0
  116. package/dist/documents/documents.d.ts +126 -0
  117. package/dist/documents/documents.d.ts.map +1 -0
  118. package/dist/documents/documents.js +248 -0
  119. package/dist/documents/documents.js.map +1 -0
  120. package/dist/documents/fence.d.ts +9 -0
  121. package/dist/documents/fence.d.ts.map +1 -0
  122. package/dist/documents/fence.js +15 -0
  123. package/dist/documents/fence.js.map +1 -0
  124. package/dist/documents/handles.d.ts +76 -0
  125. package/dist/documents/handles.d.ts.map +1 -0
  126. package/dist/documents/handles.js +66 -0
  127. package/dist/documents/handles.js.map +1 -0
  128. package/dist/documents/index.d.ts +4 -0
  129. package/dist/documents/index.d.ts.map +1 -0
  130. package/dist/documents/index.js +3 -0
  131. package/dist/documents/index.js.map +1 -0
  132. package/dist/documents/internal.d.ts +9 -0
  133. package/dist/documents/internal.d.ts.map +1 -0
  134. package/dist/documents/internal.js +9 -0
  135. package/dist/documents/internal.js.map +1 -0
  136. package/dist/documents/keyed-slot.d.ts +103 -0
  137. package/dist/documents/keyed-slot.d.ts.map +1 -0
  138. package/dist/documents/keyed-slot.js +395 -0
  139. package/dist/documents/keyed-slot.js.map +1 -0
  140. package/dist/documents/line.d.ts +7 -0
  141. package/dist/documents/line.d.ts.map +1 -0
  142. package/dist/documents/line.js +14 -0
  143. package/dist/documents/line.js.map +1 -0
  144. package/dist/documents/persistence.d.ts +104 -0
  145. package/dist/documents/persistence.d.ts.map +1 -0
  146. package/dist/documents/persistence.js +129 -0
  147. package/dist/documents/persistence.js.map +1 -0
  148. package/dist/documents/residency.d.ts +31 -0
  149. package/dist/documents/residency.d.ts.map +1 -0
  150. package/dist/documents/residency.js +93 -0
  151. package/dist/documents/residency.js.map +1 -0
  152. package/dist/documents/slot.d.ts +109 -0
  153. package/dist/documents/slot.d.ts.map +1 -0
  154. package/dist/documents/slot.js +181 -0
  155. package/dist/documents/slot.js.map +1 -0
  156. package/dist/documents/transaction.d.ts +143 -0
  157. package/dist/documents/transaction.d.ts.map +1 -0
  158. package/dist/documents/transaction.js +442 -0
  159. package/dist/documents/transaction.js.map +1 -0
  160. package/dist/host/activity.d.ts +31 -0
  161. package/dist/host/activity.d.ts.map +1 -0
  162. package/dist/host/activity.js +40 -0
  163. package/dist/host/activity.js.map +1 -0
  164. package/dist/host/adapted.d.ts +49 -0
  165. package/dist/host/adapted.d.ts.map +1 -0
  166. package/dist/host/adapted.js +214 -0
  167. package/dist/host/adapted.js.map +1 -0
  168. package/dist/host/attempt.d.ts +308 -0
  169. package/dist/host/attempt.d.ts.map +1 -0
  170. package/dist/host/attempt.js +1199 -0
  171. package/dist/host/attempt.js.map +1 -0
  172. package/dist/host/backoff.d.ts +29 -0
  173. package/dist/host/backoff.d.ts.map +1 -0
  174. package/dist/host/backoff.js +69 -0
  175. package/dist/host/backoff.js.map +1 -0
  176. package/dist/host/ctx.d.ts +94 -0
  177. package/dist/host/ctx.d.ts.map +1 -0
  178. package/dist/host/ctx.js +200 -0
  179. package/dist/host/ctx.js.map +1 -0
  180. package/dist/host/deadline.d.ts +12 -0
  181. package/dist/host/deadline.d.ts.map +1 -0
  182. package/dist/host/deadline.js +40 -0
  183. package/dist/host/deadline.js.map +1 -0
  184. package/dist/host/dependencies.d.ts +65 -0
  185. package/dist/host/dependencies.d.ts.map +1 -0
  186. package/dist/host/dependencies.js +115 -0
  187. package/dist/host/dependencies.js.map +1 -0
  188. package/dist/host/destination.d.ts +48 -0
  189. package/dist/host/destination.d.ts.map +1 -0
  190. package/dist/host/destination.js +101 -0
  191. package/dist/host/destination.js.map +1 -0
  192. package/dist/host/facet.d.ts +84 -0
  193. package/dist/host/facet.d.ts.map +1 -0
  194. package/dist/host/facet.js +55 -0
  195. package/dist/host/facet.js.map +1 -0
  196. package/dist/host/follow.d.ts +52 -0
  197. package/dist/host/follow.d.ts.map +1 -0
  198. package/dist/host/follow.js +207 -0
  199. package/dist/host/follow.js.map +1 -0
  200. package/dist/host/host.d.ts +571 -0
  201. package/dist/host/host.d.ts.map +1 -0
  202. package/dist/host/host.js +1318 -0
  203. package/dist/host/host.js.map +1 -0
  204. package/dist/host/index.d.ts +17 -0
  205. package/dist/host/index.d.ts.map +1 -0
  206. package/dist/host/index.js +6 -0
  207. package/dist/host/index.js.map +1 -0
  208. package/dist/host/internal.d.ts +11 -0
  209. package/dist/host/internal.d.ts.map +1 -0
  210. package/dist/host/internal.js +9 -0
  211. package/dist/host/internal.js.map +1 -0
  212. package/dist/host/members.d.ts +50 -0
  213. package/dist/host/members.d.ts.map +1 -0
  214. package/dist/host/members.js +107 -0
  215. package/dist/host/members.js.map +1 -0
  216. package/dist/host/native.d.ts +64 -0
  217. package/dist/host/native.d.ts.map +1 -0
  218. package/dist/host/native.js +126 -0
  219. package/dist/host/native.js.map +1 -0
  220. package/dist/host/object.d.ts +331 -0
  221. package/dist/host/object.d.ts.map +1 -0
  222. package/dist/host/object.js +1296 -0
  223. package/dist/host/object.js.map +1 -0
  224. package/dist/host/old-work.d.ts +34 -0
  225. package/dist/host/old-work.d.ts.map +1 -0
  226. package/dist/host/old-work.js +52 -0
  227. package/dist/host/old-work.js.map +1 -0
  228. package/dist/host/parked.d.ts +23 -0
  229. package/dist/host/parked.d.ts.map +1 -0
  230. package/dist/host/parked.js +79 -0
  231. package/dist/host/parked.js.map +1 -0
  232. package/dist/host/presence.d.ts +34 -0
  233. package/dist/host/presence.d.ts.map +1 -0
  234. package/dist/host/presence.js +117 -0
  235. package/dist/host/presence.js.map +1 -0
  236. package/dist/host/readiness.d.ts +27 -0
  237. package/dist/host/readiness.d.ts.map +1 -0
  238. package/dist/host/readiness.js +134 -0
  239. package/dist/host/readiness.js.map +1 -0
  240. package/dist/host/ref-state.d.ts +53 -0
  241. package/dist/host/ref-state.d.ts.map +1 -0
  242. package/dist/host/ref-state.js +83 -0
  243. package/dist/host/ref-state.js.map +1 -0
  244. package/dist/host/reference-keys.d.ts +36 -0
  245. package/dist/host/reference-keys.d.ts.map +1 -0
  246. package/dist/host/reference-keys.js +168 -0
  247. package/dist/host/reference-keys.js.map +1 -0
  248. package/dist/host/reference-source.d.ts +65 -0
  249. package/dist/host/reference-source.d.ts.map +1 -0
  250. package/dist/host/reference-source.js +285 -0
  251. package/dist/host/reference-source.js.map +1 -0
  252. package/dist/host/reference.d.ts +321 -0
  253. package/dist/host/reference.d.ts.map +1 -0
  254. package/dist/host/reference.js +797 -0
  255. package/dist/host/reference.js.map +1 -0
  256. package/dist/host/reload-cycle.d.ts +16 -0
  257. package/dist/host/reload-cycle.d.ts.map +1 -0
  258. package/dist/host/reload-cycle.js +81 -0
  259. package/dist/host/reload-cycle.js.map +1 -0
  260. package/dist/host/retry-on.d.ts +28 -0
  261. package/dist/host/retry-on.d.ts.map +1 -0
  262. package/dist/host/retry-on.js +52 -0
  263. package/dist/host/retry-on.js.map +1 -0
  264. package/dist/host/revocation.d.ts +16 -0
  265. package/dist/host/revocation.d.ts.map +1 -0
  266. package/dist/host/revocation.js +27 -0
  267. package/dist/host/revocation.js.map +1 -0
  268. package/dist/host/root.d.ts +37 -0
  269. package/dist/host/root.d.ts.map +1 -0
  270. package/dist/host/root.js +68 -0
  271. package/dist/host/root.js.map +1 -0
  272. package/dist/host/route.d.ts +64 -0
  273. package/dist/host/route.d.ts.map +1 -0
  274. package/dist/host/route.js +227 -0
  275. package/dist/host/route.js.map +1 -0
  276. package/dist/host/routines.d.ts +78 -0
  277. package/dist/host/routines.d.ts.map +1 -0
  278. package/dist/host/routines.js +398 -0
  279. package/dist/host/routines.js.map +1 -0
  280. package/dist/host/sleep.d.ts +9 -0
  281. package/dist/host/sleep.d.ts.map +1 -0
  282. package/dist/host/sleep.js +40 -0
  283. package/dist/host/sleep.js.map +1 -0
  284. package/dist/host/staging.d.ts +94 -0
  285. package/dist/host/staging.d.ts.map +1 -0
  286. package/dist/host/staging.js +304 -0
  287. package/dist/host/staging.js.map +1 -0
  288. package/dist/host/unbound-clock.d.ts +23 -0
  289. package/dist/host/unbound-clock.d.ts.map +1 -0
  290. package/dist/host/unbound-clock.js +58 -0
  291. package/dist/host/unbound-clock.js.map +1 -0
  292. package/dist/host/unbound.d.ts +37 -0
  293. package/dist/host/unbound.d.ts.map +1 -0
  294. package/dist/host/unbound.js +88 -0
  295. package/dist/host/unbound.js.map +1 -0
  296. package/dist/host/uuid.d.ts +3 -0
  297. package/dist/host/uuid.d.ts.map +1 -0
  298. package/dist/host/uuid.js +38 -0
  299. package/dist/host/uuid.js.map +1 -0
  300. package/dist/index.d.ts +29 -18
  301. package/dist/index.d.ts.map +1 -1
  302. package/dist/index.js +20 -9
  303. package/dist/index.js.map +1 -1
  304. package/dist/jobs/definition.d.ts +96 -0
  305. package/dist/jobs/definition.d.ts.map +1 -0
  306. package/dist/jobs/definition.js +83 -0
  307. package/dist/jobs/definition.js.map +1 -0
  308. package/dist/jobs/index.d.ts +5 -0
  309. package/dist/jobs/index.d.ts.map +1 -0
  310. package/dist/jobs/index.js +3 -0
  311. package/dist/jobs/index.js.map +1 -0
  312. package/dist/jobs/internal.d.ts +3 -0
  313. package/dist/jobs/internal.d.ts.map +1 -0
  314. package/dist/jobs/internal.js +4 -0
  315. package/dist/jobs/internal.js.map +1 -0
  316. package/dist/jobs/job.d.ts +149 -0
  317. package/dist/jobs/job.d.ts.map +1 -0
  318. package/dist/jobs/job.js +387 -0
  319. package/dist/jobs/job.js.map +1 -0
  320. package/dist/jobs/persisted.d.ts +38 -0
  321. package/dist/jobs/persisted.d.ts.map +1 -0
  322. package/dist/jobs/persisted.js +95 -0
  323. package/dist/jobs/persisted.js.map +1 -0
  324. package/dist/jobs/records.d.ts +231 -0
  325. package/dist/jobs/records.d.ts.map +1 -0
  326. package/dist/jobs/records.js +871 -0
  327. package/dist/jobs/records.js.map +1 -0
  328. package/dist/jobs/run-states.d.ts +69 -0
  329. package/dist/jobs/run-states.d.ts.map +1 -0
  330. package/dist/jobs/run-states.js +228 -0
  331. package/dist/jobs/run-states.js.map +1 -0
  332. package/dist/jobs/run.d.ts +117 -0
  333. package/dist/jobs/run.d.ts.map +1 -0
  334. package/dist/jobs/run.js +204 -0
  335. package/dist/jobs/run.js.map +1 -0
  336. package/dist/jobs/running.d.ts +44 -0
  337. package/dist/jobs/running.d.ts.map +1 -0
  338. package/dist/jobs/running.js +117 -0
  339. package/dist/jobs/running.js.map +1 -0
  340. package/dist/jobs/stored.d.ts +63 -0
  341. package/dist/jobs/stored.d.ts.map +1 -0
  342. package/dist/jobs/stored.js +55 -0
  343. package/dist/jobs/stored.js.map +1 -0
  344. package/dist/link/binary.d.ts +4 -0
  345. package/dist/link/binary.d.ts.map +1 -0
  346. package/dist/link/binary.js +544 -0
  347. package/dist/link/binary.js.map +1 -0
  348. package/dist/link/channel.d.ts +68 -0
  349. package/dist/link/channel.d.ts.map +1 -0
  350. package/dist/link/channel.js +215 -0
  351. package/dist/link/channel.js.map +1 -0
  352. package/dist/link/errors.d.ts +7 -0
  353. package/dist/link/errors.d.ts.map +1 -0
  354. package/dist/link/errors.js +21 -0
  355. package/dist/link/errors.js.map +1 -0
  356. package/dist/link/index.d.ts +8 -0
  357. package/dist/link/index.d.ts.map +1 -0
  358. package/dist/link/index.js +8 -0
  359. package/dist/link/index.js.map +1 -0
  360. package/dist/link/internal.d.ts +9 -0
  361. package/dist/link/internal.d.ts.map +1 -0
  362. package/dist/link/internal.js +10 -0
  363. package/dist/link/internal.js.map +1 -0
  364. package/dist/link/ipc.d.ts +22 -0
  365. package/dist/link/ipc.d.ts.map +1 -0
  366. package/dist/link/ipc.js +64 -0
  367. package/dist/link/ipc.js.map +1 -0
  368. package/dist/link/link.d.ts +34 -0
  369. package/dist/link/link.d.ts.map +1 -0
  370. package/dist/link/link.js +87 -0
  371. package/dist/link/link.js.map +1 -0
  372. package/dist/link/message.d.ts +262 -0
  373. package/dist/link/message.d.ts.map +1 -0
  374. package/dist/link/message.js +156 -0
  375. package/dist/link/message.js.map +1 -0
  376. package/dist/link/part.d.ts +80 -0
  377. package/dist/link/part.d.ts.map +1 -0
  378. package/dist/link/part.js +165 -0
  379. package/dist/link/part.js.map +1 -0
  380. package/dist/link/text.d.ts +6 -0
  381. package/dist/link/text.d.ts.map +1 -0
  382. package/dist/link/text.js +355 -0
  383. package/dist/link/text.js.map +1 -0
  384. package/dist/link/values.d.ts +40 -0
  385. package/dist/link/values.d.ts.map +1 -0
  386. package/dist/link/values.js +121 -0
  387. package/dist/link/values.js.map +1 -0
  388. package/dist/link/websocket.d.ts +26 -0
  389. package/dist/link/websocket.d.ts.map +1 -0
  390. package/dist/link/websocket.js +91 -0
  391. package/dist/link/websocket.js.map +1 -0
  392. package/dist/node/app/app.d.ts +269 -0
  393. package/dist/node/app/app.d.ts.map +1 -0
  394. package/dist/node/app/app.js +513 -0
  395. package/dist/node/app/app.js.map +1 -0
  396. package/dist/node/app/archive.d.ts +37 -0
  397. package/dist/node/app/archive.d.ts.map +1 -0
  398. package/dist/node/app/archive.js +204 -0
  399. package/dist/node/app/archive.js.map +1 -0
  400. package/dist/node/app/blobs.d.ts +23 -0
  401. package/dist/node/app/blobs.d.ts.map +1 -0
  402. package/dist/node/app/blobs.js +64 -0
  403. package/dist/node/app/blobs.js.map +1 -0
  404. package/dist/node/app/data.d.ts +35 -0
  405. package/dist/node/app/data.d.ts.map +1 -0
  406. package/dist/node/app/data.js +44 -0
  407. package/dist/node/app/data.js.map +1 -0
  408. package/dist/node/app/ephemeral-sessions.d.ts +20 -0
  409. package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
  410. package/dist/node/app/ephemeral-sessions.js +69 -0
  411. package/dist/node/app/ephemeral-sessions.js.map +1 -0
  412. package/dist/node/app/ephemeral.d.ts +11 -0
  413. package/dist/node/app/ephemeral.d.ts.map +1 -0
  414. package/dist/node/app/ephemeral.js +34 -0
  415. package/dist/node/app/ephemeral.js.map +1 -0
  416. package/dist/node/app/files-copy.d.ts +13 -0
  417. package/dist/node/app/files-copy.d.ts.map +1 -0
  418. package/dist/node/app/files-copy.js +86 -0
  419. package/dist/node/app/files-copy.js.map +1 -0
  420. package/dist/node/app/files-entry.d.ts +4 -0
  421. package/dist/node/app/files-entry.d.ts.map +1 -0
  422. package/dist/node/app/files-entry.js +7 -0
  423. package/dist/node/app/files-entry.js.map +1 -0
  424. package/dist/node/app/files-index.d.ts +180 -0
  425. package/dist/node/app/files-index.d.ts.map +1 -0
  426. package/dist/node/app/files-index.js +535 -0
  427. package/dist/node/app/files-index.js.map +1 -0
  428. package/dist/node/app/files.d.ts +363 -0
  429. package/dist/node/app/files.d.ts.map +1 -0
  430. package/dist/node/app/files.js +368 -0
  431. package/dist/node/app/files.js.map +1 -0
  432. package/dist/node/app/folder-views.d.ts +21 -0
  433. package/dist/node/app/folder-views.d.ts.map +1 -0
  434. package/dist/node/app/folder-views.js +55 -0
  435. package/dist/node/app/folder-views.js.map +1 -0
  436. package/dist/node/app/index.d.ts +12 -0
  437. package/dist/node/app/index.d.ts.map +1 -0
  438. package/dist/node/app/index.js +15 -0
  439. package/dist/node/app/index.js.map +1 -0
  440. package/dist/node/app/info.d.ts +66 -0
  441. package/dist/node/app/info.d.ts.map +1 -0
  442. package/dist/node/app/info.js +37 -0
  443. package/dist/node/app/info.js.map +1 -0
  444. package/dist/node/app/invite.d.ts +5 -0
  445. package/dist/node/app/invite.d.ts.map +1 -0
  446. package/dist/node/app/invite.js +64 -0
  447. package/dist/node/app/invite.js.map +1 -0
  448. package/dist/node/app/layout.d.ts +36 -0
  449. package/dist/node/app/layout.d.ts.map +1 -0
  450. package/dist/node/app/layout.js +87 -0
  451. package/dist/node/app/layout.js.map +1 -0
  452. package/dist/node/app/owner.d.ts +31 -0
  453. package/dist/node/app/owner.d.ts.map +1 -0
  454. package/dist/node/app/owner.js +104 -0
  455. package/dist/node/app/owner.js.map +1 -0
  456. package/dist/node/app/pairing.d.ts +55 -0
  457. package/dist/node/app/pairing.d.ts.map +1 -0
  458. package/dist/node/app/pairing.js +183 -0
  459. package/dist/node/app/pairing.js.map +1 -0
  460. package/dist/node/app/secrets.d.ts +16 -0
  461. package/dist/node/app/secrets.d.ts.map +1 -0
  462. package/dist/node/app/secrets.js +72 -0
  463. package/dist/node/app/secrets.js.map +1 -0
  464. package/dist/node/app/sessions.d.ts +72 -0
  465. package/dist/node/app/sessions.d.ts.map +1 -0
  466. package/dist/node/app/sessions.js +222 -0
  467. package/dist/node/app/sessions.js.map +1 -0
  468. package/dist/node/app/tar.d.ts +24 -0
  469. package/dist/node/app/tar.d.ts.map +1 -0
  470. package/dist/node/app/tar.js +167 -0
  471. package/dist/node/app/tar.js.map +1 -0
  472. package/dist/node/app/uploads.d.ts +37 -0
  473. package/dist/node/app/uploads.d.ts.map +1 -0
  474. package/dist/node/app/uploads.js +157 -0
  475. package/dist/node/app/uploads.js.map +1 -0
  476. package/dist/node/app/users.d.ts +37 -0
  477. package/dist/node/app/users.d.ts.map +1 -0
  478. package/dist/node/app/users.js +62 -0
  479. package/dist/node/app/users.js.map +1 -0
  480. package/dist/node/app/worker.d.ts +18 -0
  481. package/dist/node/app/worker.d.ts.map +1 -0
  482. package/dist/node/app/worker.js +84 -0
  483. package/dist/node/app/worker.js.map +1 -0
  484. package/dist/node/compression.d.ts +7 -0
  485. package/dist/node/compression.d.ts.map +1 -0
  486. package/dist/node/compression.js +25 -0
  487. package/dist/node/compression.js.map +1 -0
  488. package/dist/node/http/admission.d.ts +63 -0
  489. package/dist/node/http/admission.d.ts.map +1 -0
  490. package/dist/node/http/admission.js +134 -0
  491. package/dist/node/http/admission.js.map +1 -0
  492. package/dist/node/http/authenticate.d.ts +21 -0
  493. package/dist/node/http/authenticate.d.ts.map +1 -0
  494. package/dist/node/http/authenticate.js +34 -0
  495. package/dist/node/http/authenticate.js.map +1 -0
  496. package/dist/node/http/cookies.d.ts +32 -0
  497. package/dist/node/http/cookies.d.ts.map +1 -0
  498. package/dist/node/http/cookies.js +70 -0
  499. package/dist/node/http/cookies.js.map +1 -0
  500. package/dist/node/http/file.d.ts +23 -0
  501. package/dist/node/http/file.d.ts.map +1 -0
  502. package/dist/node/http/file.js +94 -0
  503. package/dist/node/http/file.js.map +1 -0
  504. package/dist/node/http/headers.d.ts +37 -0
  505. package/dist/node/http/headers.d.ts.map +1 -0
  506. package/dist/node/http/headers.js +136 -0
  507. package/dist/node/http/headers.js.map +1 -0
  508. package/dist/node/http/http.d.ts +111 -0
  509. package/dist/node/http/http.d.ts.map +1 -0
  510. package/dist/node/http/http.js +524 -0
  511. package/dist/node/http/http.js.map +1 -0
  512. package/dist/node/http/incoming.d.ts +19 -0
  513. package/dist/node/http/incoming.d.ts.map +1 -0
  514. package/dist/node/http/incoming.js +31 -0
  515. package/dist/node/http/incoming.js.map +1 -0
  516. package/dist/node/http/index.d.ts +11 -0
  517. package/dist/node/http/index.d.ts.map +1 -0
  518. package/dist/node/http/index.js +12 -0
  519. package/dist/node/http/index.js.map +1 -0
  520. package/dist/node/http/node.d.ts +78 -0
  521. package/dist/node/http/node.d.ts.map +1 -0
  522. package/dist/node/http/node.js +291 -0
  523. package/dist/node/http/node.js.map +1 -0
  524. package/dist/node/http/request.d.ts +60 -0
  525. package/dist/node/http/request.d.ts.map +1 -0
  526. package/dist/node/http/request.js +118 -0
  527. package/dist/node/http/request.js.map +1 -0
  528. package/dist/node/http/response.d.ts +63 -0
  529. package/dist/node/http/response.d.ts.map +1 -0
  530. package/dist/node/http/response.js +202 -0
  531. package/dist/node/http/response.js.map +1 -0
  532. package/dist/node/http/router.d.ts +132 -0
  533. package/dist/node/http/router.d.ts.map +1 -0
  534. package/dist/node/http/router.js +267 -0
  535. package/dist/node/http/router.js.map +1 -0
  536. package/dist/node/http/upgrades.d.ts +61 -0
  537. package/dist/node/http/upgrades.d.ts.map +1 -0
  538. package/dist/node/http/upgrades.js +192 -0
  539. package/dist/node/http/upgrades.js.map +1 -0
  540. package/dist/node/plugins/base-inputs.d.ts +14 -0
  541. package/dist/node/plugins/base-inputs.d.ts.map +1 -0
  542. package/dist/node/plugins/base-inputs.js +33 -0
  543. package/dist/node/plugins/base-inputs.js.map +1 -0
  544. package/dist/node/plugins/build.d.ts +77 -0
  545. package/dist/node/plugins/build.d.ts.map +1 -0
  546. package/dist/node/plugins/build.js +576 -0
  547. package/dist/node/plugins/build.js.map +1 -0
  548. package/dist/node/plugins/css-modules.d.ts +13 -0
  549. package/dist/node/plugins/css-modules.d.ts.map +1 -0
  550. package/dist/node/plugins/css-modules.js +58 -0
  551. package/dist/node/plugins/css-modules.js.map +1 -0
  552. package/dist/node/plugins/discover.d.ts +67 -0
  553. package/dist/node/plugins/discover.d.ts.map +1 -0
  554. package/dist/node/plugins/discover.js +369 -0
  555. package/dist/node/plugins/discover.js.map +1 -0
  556. package/dist/node/plugins/evaluate.d.ts +33 -0
  557. package/dist/node/plugins/evaluate.d.ts.map +1 -0
  558. package/dist/node/plugins/evaluate.js +121 -0
  559. package/dist/node/plugins/evaluate.js.map +1 -0
  560. package/dist/node/plugins/index.d.ts +11 -0
  561. package/dist/node/plugins/index.d.ts.map +1 -0
  562. package/dist/node/plugins/index.js +13 -0
  563. package/dist/node/plugins/index.js.map +1 -0
  564. package/dist/node/plugins/install.d.ts +38 -0
  565. package/dist/node/plugins/install.d.ts.map +1 -0
  566. package/dist/node/plugins/install.js +213 -0
  567. package/dist/node/plugins/install.js.map +1 -0
  568. package/dist/node/plugins/plugins.d.ts +162 -0
  569. package/dist/node/plugins/plugins.d.ts.map +1 -0
  570. package/dist/node/plugins/plugins.js +244 -0
  571. package/dist/node/plugins/plugins.js.map +1 -0
  572. package/dist/node/plugins/runtime.d.ts +57 -0
  573. package/dist/node/plugins/runtime.d.ts.map +1 -0
  574. package/dist/node/plugins/runtime.js +92 -0
  575. package/dist/node/plugins/runtime.js.map +1 -0
  576. package/dist/node/plugins/stack.d.ts +16 -0
  577. package/dist/node/plugins/stack.d.ts.map +1 -0
  578. package/dist/node/plugins/stack.js +61 -0
  579. package/dist/node/plugins/stack.js.map +1 -0
  580. package/dist/node/plugins/testing.d.ts +58 -0
  581. package/dist/node/plugins/testing.d.ts.map +1 -0
  582. package/dist/node/plugins/testing.js +210 -0
  583. package/dist/node/plugins/testing.js.map +1 -0
  584. package/dist/node/plugins/watcher.d.ts +69 -0
  585. package/dist/node/plugins/watcher.d.ts.map +1 -0
  586. package/dist/node/plugins/watcher.js +622 -0
  587. package/dist/node/plugins/watcher.js.map +1 -0
  588. package/dist/node/surfaces/bundle.d.ts +31 -0
  589. package/dist/node/surfaces/bundle.d.ts.map +1 -0
  590. package/dist/node/surfaces/bundle.js +118 -0
  591. package/dist/node/surfaces/bundle.js.map +1 -0
  592. package/dist/node/surfaces/current.d.ts +17 -0
  593. package/dist/node/surfaces/current.d.ts.map +1 -0
  594. package/dist/node/surfaces/current.js +54 -0
  595. package/dist/node/surfaces/current.js.map +1 -0
  596. package/dist/node/surfaces/index.d.ts +6 -0
  597. package/dist/node/surfaces/index.d.ts.map +1 -0
  598. package/dist/node/surfaces/index.js +6 -0
  599. package/dist/node/surfaces/index.js.map +1 -0
  600. package/dist/node/surfaces/published.d.ts +27 -0
  601. package/dist/node/surfaces/published.d.ts.map +1 -0
  602. package/dist/node/surfaces/published.js +142 -0
  603. package/dist/node/surfaces/published.js.map +1 -0
  604. package/dist/node/surfaces/served.d.ts +15 -0
  605. package/dist/node/surfaces/served.d.ts.map +1 -0
  606. package/dist/node/surfaces/served.js +42 -0
  607. package/dist/node/surfaces/served.js.map +1 -0
  608. package/dist/node/surfaces/surface-build.d.ts +53 -0
  609. package/dist/node/surfaces/surface-build.d.ts.map +1 -0
  610. package/dist/node/surfaces/surface-build.js +105 -0
  611. package/dist/node/surfaces/surface-build.js.map +1 -0
  612. package/dist/node/surfaces/tui.d.ts +40 -0
  613. package/dist/node/surfaces/tui.d.ts.map +1 -0
  614. package/dist/node/surfaces/tui.js +55 -0
  615. package/dist/node/surfaces/tui.js.map +1 -0
  616. package/dist/node/surfaces/web.d.ts +56 -0
  617. package/dist/node/surfaces/web.d.ts.map +1 -0
  618. package/dist/node/surfaces/web.js +108 -0
  619. package/dist/node/surfaces/web.js.map +1 -0
  620. package/dist/node/tui/actions.d.ts +49 -0
  621. package/dist/node/tui/actions.d.ts.map +1 -0
  622. package/dist/node/tui/actions.js +195 -0
  623. package/dist/node/tui/actions.js.map +1 -0
  624. package/dist/node/tui/credentials.d.ts +17 -0
  625. package/dist/node/tui/credentials.d.ts.map +1 -0
  626. package/dist/node/tui/credentials.js +54 -0
  627. package/dist/node/tui/credentials.js.map +1 -0
  628. package/dist/node/tui/filter.d.ts +5 -0
  629. package/dist/node/tui/filter.d.ts.map +1 -0
  630. package/dist/node/tui/filter.js +79 -0
  631. package/dist/node/tui/filter.js.map +1 -0
  632. package/dist/node/tui/index.d.ts +6 -0
  633. package/dist/node/tui/index.d.ts.map +1 -0
  634. package/dist/node/tui/index.js +6 -0
  635. package/dist/node/tui/index.js.map +1 -0
  636. package/dist/node/tui/launcher.d.ts +40 -0
  637. package/dist/node/tui/launcher.d.ts.map +1 -0
  638. package/dist/node/tui/launcher.js +439 -0
  639. package/dist/node/tui/launcher.js.map +1 -0
  640. package/dist/node/tui/pipe.d.ts +18 -0
  641. package/dist/node/tui/pipe.d.ts.map +1 -0
  642. package/dist/node/tui/pipe.js +134 -0
  643. package/dist/node/tui/pipe.js.map +1 -0
  644. package/dist/node/tui/sandbox.d.ts +54 -0
  645. package/dist/node/tui/sandbox.d.ts.map +1 -0
  646. package/dist/node/tui/sandbox.js +431 -0
  647. package/dist/node/tui/sandbox.js.map +1 -0
  648. package/dist/node/workers/base.d.ts +30 -0
  649. package/dist/node/workers/base.d.ts.map +1 -0
  650. package/dist/node/workers/base.js +255 -0
  651. package/dist/node/workers/base.js.map +1 -0
  652. package/dist/node/workers/child.d.ts +4 -0
  653. package/dist/node/workers/child.d.ts.map +1 -0
  654. package/dist/node/workers/child.js +6 -0
  655. package/dist/node/workers/child.js.map +1 -0
  656. package/dist/node/workers/control.d.ts +83 -0
  657. package/dist/node/workers/control.d.ts.map +1 -0
  658. package/dist/node/workers/control.js +77 -0
  659. package/dist/node/workers/control.js.map +1 -0
  660. package/dist/node/workers/index.d.ts +4 -0
  661. package/dist/node/workers/index.d.ts.map +1 -0
  662. package/dist/node/workers/index.js +7 -0
  663. package/dist/node/workers/index.js.map +1 -0
  664. package/dist/node/workers/lock.d.ts +30 -0
  665. package/dist/node/workers/lock.d.ts.map +1 -0
  666. package/dist/node/workers/lock.js +180 -0
  667. package/dist/node/workers/lock.js.map +1 -0
  668. package/dist/node/workers/main.d.ts +46 -0
  669. package/dist/node/workers/main.d.ts.map +1 -0
  670. package/dist/node/workers/main.js +230 -0
  671. package/dist/node/workers/main.js.map +1 -0
  672. package/dist/node/workers/process.d.ts +42 -0
  673. package/dist/node/workers/process.d.ts.map +1 -0
  674. package/dist/node/workers/process.js +125 -0
  675. package/dist/node/workers/process.js.map +1 -0
  676. package/dist/node/workers/workers.d.ts +122 -0
  677. package/dist/node/workers/workers.d.ts.map +1 -0
  678. package/dist/node/workers/workers.js +677 -0
  679. package/dist/node/workers/workers.js.map +1 -0
  680. package/dist/output.d.ts +1 -1
  681. package/dist/output.d.ts.map +1 -1
  682. package/dist/output.js +4 -2
  683. package/dist/output.js.map +1 -1
  684. package/dist/react/hooks.d.ts +43 -0
  685. package/dist/react/hooks.d.ts.map +1 -0
  686. package/dist/react/hooks.js +82 -0
  687. package/dist/react/hooks.js.map +1 -0
  688. package/dist/react/index.d.ts +3 -0
  689. package/dist/react/index.d.ts.map +1 -0
  690. package/dist/react/index.js +4 -0
  691. package/dist/react/index.js.map +1 -0
  692. package/dist/react/stores.d.ts +9 -0
  693. package/dist/react/stores.d.ts.map +1 -0
  694. package/dist/react/stores.js +37 -0
  695. package/dist/react/stores.js.map +1 -0
  696. package/dist/registries/contribution.d.ts +50 -0
  697. package/dist/registries/contribution.d.ts.map +1 -0
  698. package/dist/registries/contribution.js +129 -0
  699. package/dist/registries/contribution.js.map +1 -0
  700. package/dist/registries/entries.d.ts +18 -0
  701. package/dist/registries/entries.d.ts.map +1 -0
  702. package/dist/registries/entries.js +42 -0
  703. package/dist/registries/entries.js.map +1 -0
  704. package/dist/registries/index.d.ts +3 -0
  705. package/dist/registries/index.d.ts.map +1 -0
  706. package/dist/registries/index.js +5 -0
  707. package/dist/registries/index.js.map +1 -0
  708. package/dist/registries/internal.d.ts +4 -0
  709. package/dist/registries/internal.d.ts.map +1 -0
  710. package/dist/registries/internal.js +5 -0
  711. package/dist/registries/internal.js.map +1 -0
  712. package/dist/registries/record.d.ts +115 -0
  713. package/dist/registries/record.d.ts.map +1 -0
  714. package/dist/registries/record.js +283 -0
  715. package/dist/registries/record.js.map +1 -0
  716. package/dist/registries/registry.d.ts +74 -0
  717. package/dist/registries/registry.d.ts.map +1 -0
  718. package/dist/registries/registry.js +14 -0
  719. package/dist/registries/registry.js.map +1 -0
  720. package/dist/registries/value.d.ts +48 -0
  721. package/dist/registries/value.d.ts.map +1 -0
  722. package/dist/registries/value.js +224 -0
  723. package/dist/registries/value.js.map +1 -0
  724. package/dist/remote/calls.d.ts +25 -0
  725. package/dist/remote/calls.d.ts.map +1 -0
  726. package/dist/remote/calls.js +62 -0
  727. package/dist/remote/calls.js.map +1 -0
  728. package/dist/remote/consumer.d.ts +43 -0
  729. package/dist/remote/consumer.d.ts.map +1 -0
  730. package/dist/remote/consumer.js +350 -0
  731. package/dist/remote/consumer.js.map +1 -0
  732. package/dist/remote/hold.d.ts +141 -0
  733. package/dist/remote/hold.d.ts.map +1 -0
  734. package/dist/remote/hold.js +579 -0
  735. package/dist/remote/hold.js.map +1 -0
  736. package/dist/remote/host-link.d.ts +77 -0
  737. package/dist/remote/host-link.d.ts.map +1 -0
  738. package/dist/remote/host-link.js +184 -0
  739. package/dist/remote/host-link.js.map +1 -0
  740. package/dist/remote/internal.d.ts +6 -0
  741. package/dist/remote/internal.d.ts.map +1 -0
  742. package/dist/remote/internal.js +6 -0
  743. package/dist/remote/internal.js.map +1 -0
  744. package/dist/remote/path.d.ts +46 -0
  745. package/dist/remote/path.d.ts.map +1 -0
  746. package/dist/remote/path.js +73 -0
  747. package/dist/remote/path.js.map +1 -0
  748. package/dist/remote/provider.d.ts +89 -0
  749. package/dist/remote/provider.d.ts.map +1 -0
  750. package/dist/remote/provider.js +597 -0
  751. package/dist/remote/provider.js.map +1 -0
  752. package/dist/remote/relay.d.ts +69 -0
  753. package/dist/remote/relay.d.ts.map +1 -0
  754. package/dist/remote/relay.js +219 -0
  755. package/dist/remote/relay.js.map +1 -0
  756. package/dist/remote/remote-object.d.ts +138 -0
  757. package/dist/remote/remote-object.d.ts.map +1 -0
  758. package/dist/remote/remote-object.js +492 -0
  759. package/dist/remote/remote-object.js.map +1 -0
  760. package/dist/remote/replica.d.ts +59 -0
  761. package/dist/remote/replica.d.ts.map +1 -0
  762. package/dist/remote/replica.js +125 -0
  763. package/dist/remote/replica.js.map +1 -0
  764. package/dist/sqlite/cloudflare.d.ts +2 -0
  765. package/dist/sqlite/cloudflare.d.ts.map +1 -1
  766. package/dist/sqlite/cloudflare.js +10 -0
  767. package/dist/sqlite/cloudflare.js.map +1 -1
  768. package/dist/sqlite/database.d.ts +5 -2
  769. package/dist/sqlite/database.d.ts.map +1 -1
  770. package/dist/sqlite/database.js.map +1 -1
  771. package/dist/sqlite/node.d.ts +13 -2
  772. package/dist/sqlite/node.d.ts.map +1 -1
  773. package/dist/sqlite/node.js +31 -8
  774. package/dist/sqlite/node.js.map +1 -1
  775. package/dist/state/batch.d.ts +64 -0
  776. package/dist/state/batch.d.ts.map +1 -0
  777. package/dist/state/batch.js +164 -0
  778. package/dist/state/batch.js.map +1 -0
  779. package/dist/state/derive.d.ts +52 -0
  780. package/dist/state/derive.d.ts.map +1 -0
  781. package/dist/state/derive.js +182 -0
  782. package/dist/state/derive.js.map +1 -0
  783. package/dist/state/index.d.ts +6 -0
  784. package/dist/state/index.d.ts.map +1 -0
  785. package/dist/state/index.js +4 -0
  786. package/dist/state/index.js.map +1 -0
  787. package/dist/state/internal.d.ts +6 -0
  788. package/dist/state/internal.d.ts.map +1 -0
  789. package/dist/state/internal.js +8 -0
  790. package/dist/state/internal.js.map +1 -0
  791. package/dist/state/native-source.d.ts +106 -0
  792. package/dist/state/native-source.d.ts.map +1 -0
  793. package/dist/state/native-source.js +240 -0
  794. package/dist/state/native-source.js.map +1 -0
  795. package/dist/state/watchable.d.ts +114 -0
  796. package/dist/state/watchable.d.ts.map +1 -0
  797. package/dist/state/watchable.js +156 -0
  798. package/dist/state/watchable.js.map +1 -0
  799. package/dist/state/writable.d.ts +32 -0
  800. package/dist/state/writable.d.ts.map +1 -0
  801. package/dist/state/writable.js +49 -0
  802. package/dist/state/writable.js.map +1 -0
  803. package/dist/store/adapter.d.ts +67 -0
  804. package/dist/store/adapter.d.ts.map +1 -0
  805. package/dist/store/adapter.js +118 -0
  806. package/dist/store/adapter.js.map +1 -0
  807. package/dist/store/allocator.d.ts +17 -0
  808. package/dist/store/allocator.d.ts.map +1 -0
  809. package/dist/store/allocator.js +30 -0
  810. package/dist/store/allocator.js.map +1 -0
  811. package/dist/store/applier.d.ts +8 -0
  812. package/dist/store/applier.d.ts.map +1 -0
  813. package/dist/store/applier.js +375 -0
  814. package/dist/store/applier.js.map +1 -0
  815. package/dist/store/apply-batch.d.ts +12 -0
  816. package/dist/store/apply-batch.d.ts.map +1 -0
  817. package/dist/store/apply-batch.js +83 -0
  818. package/dist/store/apply-batch.js.map +1 -0
  819. package/dist/store/archive.d.ts +32 -0
  820. package/dist/store/archive.d.ts.map +1 -0
  821. package/dist/store/archive.js +130 -0
  822. package/dist/store/archive.js.map +1 -0
  823. package/dist/store/backend.d.ts +10 -0
  824. package/dist/store/backend.d.ts.map +1 -0
  825. package/dist/store/backend.js +15 -0
  826. package/dist/store/backend.js.map +1 -0
  827. package/dist/store/catalog.d.ts +24 -0
  828. package/dist/store/catalog.d.ts.map +1 -0
  829. package/dist/store/catalog.js +17 -0
  830. package/dist/store/catalog.js.map +1 -0
  831. package/dist/store/claims.d.ts +23 -0
  832. package/dist/store/claims.d.ts.map +1 -0
  833. package/dist/store/claims.js +65 -0
  834. package/dist/store/claims.js.map +1 -0
  835. package/dist/store/columns.d.ts +77 -0
  836. package/dist/store/columns.d.ts.map +1 -0
  837. package/dist/store/columns.js +77 -0
  838. package/dist/store/columns.js.map +1 -0
  839. package/dist/store/engine.d.ts +176 -0
  840. package/dist/store/engine.d.ts.map +1 -0
  841. package/dist/store/engine.js +283 -0
  842. package/dist/store/engine.js.map +1 -0
  843. package/dist/store/evaluate.d.ts +17 -0
  844. package/dist/store/evaluate.d.ts.map +1 -0
  845. package/dist/store/evaluate.js +128 -0
  846. package/dist/store/evaluate.js.map +1 -0
  847. package/dist/store/export.d.ts +17 -0
  848. package/dist/store/export.d.ts.map +1 -0
  849. package/dist/store/export.js +200 -0
  850. package/dist/store/export.js.map +1 -0
  851. package/dist/store/expression.d.ts +150 -0
  852. package/dist/store/expression.d.ts.map +1 -0
  853. package/dist/store/expression.js +268 -0
  854. package/dist/store/expression.js.map +1 -0
  855. package/dist/store/import.d.ts +10 -0
  856. package/dist/store/import.d.ts.map +1 -0
  857. package/dist/store/import.js +276 -0
  858. package/dist/store/import.js.map +1 -0
  859. package/dist/store/index.d.ts +16 -0
  860. package/dist/store/index.d.ts.map +1 -0
  861. package/dist/store/index.js +13 -0
  862. package/dist/store/index.js.map +1 -0
  863. package/dist/store/json-column.d.ts +33 -0
  864. package/dist/store/json-column.d.ts.map +1 -0
  865. package/dist/store/json-column.js +62 -0
  866. package/dist/store/json-column.js.map +1 -0
  867. package/dist/store/jsonl.d.ts +9 -0
  868. package/dist/store/jsonl.d.ts.map +1 -0
  869. package/dist/store/jsonl.js +61 -0
  870. package/dist/store/jsonl.js.map +1 -0
  871. package/dist/store/live-query.d.ts +108 -0
  872. package/dist/store/live-query.d.ts.map +1 -0
  873. package/dist/store/live-query.js +254 -0
  874. package/dist/store/live-query.js.map +1 -0
  875. package/dist/store/outbox.d.ts +26 -0
  876. package/dist/store/outbox.d.ts.map +1 -0
  877. package/dist/store/outbox.js +80 -0
  878. package/dist/store/outbox.js.map +1 -0
  879. package/dist/store/query.d.ts +39 -0
  880. package/dist/store/query.d.ts.map +1 -0
  881. package/dist/store/query.js +97 -0
  882. package/dist/store/query.js.map +1 -0
  883. package/dist/store/refusal.d.ts +15 -0
  884. package/dist/store/refusal.d.ts.map +1 -0
  885. package/dist/store/refusal.js +36 -0
  886. package/dist/store/refusal.js.map +1 -0
  887. package/dist/store/rows.d.ts +80 -0
  888. package/dist/store/rows.d.ts.map +1 -0
  889. package/dist/store/rows.js +183 -0
  890. package/dist/store/rows.js.map +1 -0
  891. package/dist/store/schema.d.ts +25 -0
  892. package/dist/store/schema.d.ts.map +1 -0
  893. package/dist/store/schema.js +115 -0
  894. package/dist/store/schema.js.map +1 -0
  895. package/dist/store/sql.d.ts +73 -0
  896. package/dist/store/sql.d.ts.map +1 -0
  897. package/dist/store/sql.js +234 -0
  898. package/dist/store/sql.js.map +1 -0
  899. package/dist/store/step.d.ts +50 -0
  900. package/dist/store/step.d.ts.map +1 -0
  901. package/dist/store/step.js +52 -0
  902. package/dist/store/step.js.map +1 -0
  903. package/dist/store/store.d.ts +171 -0
  904. package/dist/store/store.d.ts.map +1 -0
  905. package/dist/store/store.js +818 -0
  906. package/dist/store/store.js.map +1 -0
  907. package/dist/store/table-changes.d.ts +29 -0
  908. package/dist/store/table-changes.d.ts.map +1 -0
  909. package/dist/store/table-changes.js +102 -0
  910. package/dist/store/table-changes.js.map +1 -0
  911. package/dist/store/table-evolve.d.ts +74 -0
  912. package/dist/store/table-evolve.d.ts.map +1 -0
  913. package/dist/store/table-evolve.js +201 -0
  914. package/dist/store/table-evolve.js.map +1 -0
  915. package/dist/store/table-handle.d.ts +73 -0
  916. package/dist/store/table-handle.d.ts.map +1 -0
  917. package/dist/store/table-handle.js +101 -0
  918. package/dist/store/table-handle.js.map +1 -0
  919. package/dist/store/table-history.d.ts +75 -0
  920. package/dist/store/table-history.d.ts.map +1 -0
  921. package/dist/store/table-history.js +42 -0
  922. package/dist/store/table-history.js.map +1 -0
  923. package/dist/store/table-migration.d.ts +16 -0
  924. package/dist/store/table-migration.d.ts.map +1 -0
  925. package/dist/store/table-migration.js +202 -0
  926. package/dist/store/table-migration.js.map +1 -0
  927. package/dist/store/table-writes.d.ts +125 -0
  928. package/dist/store/table-writes.d.ts.map +1 -0
  929. package/dist/store/table-writes.js +170 -0
  930. package/dist/store/table-writes.js.map +1 -0
  931. package/dist/store/table.d.ts +80 -0
  932. package/dist/store/table.d.ts.map +1 -0
  933. package/dist/store/table.js +103 -0
  934. package/dist/store/table.js.map +1 -0
  935. package/dist/store/text.d.ts +14 -0
  936. package/dist/store/text.d.ts.map +1 -0
  937. package/dist/store/text.js +51 -0
  938. package/dist/store/text.js.map +1 -0
  939. package/dist/store/writes.d.ts +5 -0
  940. package/dist/store/writes.d.ts.map +1 -0
  941. package/dist/store/writes.js +4 -0
  942. package/dist/store/writes.js.map +1 -0
  943. package/dist/surfaces/active-language.d.ts +20 -0
  944. package/dist/surfaces/active-language.d.ts.map +1 -0
  945. package/dist/surfaces/active-language.js +78 -0
  946. package/dist/surfaces/active-language.js.map +1 -0
  947. package/dist/surfaces/active-theme.d.ts +16 -0
  948. package/dist/surfaces/active-theme.d.ts.map +1 -0
  949. package/dist/surfaces/active-theme.js +47 -0
  950. package/dist/surfaces/active-theme.js.map +1 -0
  951. package/dist/surfaces/client.d.ts +96 -0
  952. package/dist/surfaces/client.d.ts.map +1 -0
  953. package/dist/surfaces/client.js +264 -0
  954. package/dist/surfaces/client.js.map +1 -0
  955. package/dist/surfaces/connection.d.ts +49 -0
  956. package/dist/surfaces/connection.d.ts.map +1 -0
  957. package/dist/surfaces/connection.js +142 -0
  958. package/dist/surfaces/connection.js.map +1 -0
  959. package/dist/surfaces/format.d.ts +5 -0
  960. package/dist/surfaces/format.d.ts.map +1 -0
  961. package/dist/surfaces/format.js +37 -0
  962. package/dist/surfaces/format.js.map +1 -0
  963. package/dist/surfaces/index.d.ts +15 -0
  964. package/dist/surfaces/index.d.ts.map +1 -0
  965. package/dist/surfaces/index.js +18 -0
  966. package/dist/surfaces/index.js.map +1 -0
  967. package/dist/surfaces/language.d.ts +53 -0
  968. package/dist/surfaces/language.d.ts.map +1 -0
  969. package/dist/surfaces/language.js +74 -0
  970. package/dist/surfaces/language.js.map +1 -0
  971. package/dist/surfaces/loaded.d.ts +42 -0
  972. package/dist/surfaces/loaded.d.ts.map +1 -0
  973. package/dist/surfaces/loaded.js +116 -0
  974. package/dist/surfaces/loaded.js.map +1 -0
  975. package/dist/surfaces/locale-choice.d.ts +25 -0
  976. package/dist/surfaces/locale-choice.d.ts.map +1 -0
  977. package/dist/surfaces/locale-choice.js +14 -0
  978. package/dist/surfaces/locale-choice.js.map +1 -0
  979. package/dist/surfaces/messages.d.ts +67 -0
  980. package/dist/surfaces/messages.d.ts.map +1 -0
  981. package/dist/surfaces/messages.js +112 -0
  982. package/dist/surfaces/messages.js.map +1 -0
  983. package/dist/surfaces/page-state.d.ts +14 -0
  984. package/dist/surfaces/page-state.d.ts.map +1 -0
  985. package/dist/surfaces/page-state.js +43 -0
  986. package/dist/surfaces/page-state.js.map +1 -0
  987. package/dist/surfaces/preference.d.ts +32 -0
  988. package/dist/surfaces/preference.d.ts.map +1 -0
  989. package/dist/surfaces/preference.js +72 -0
  990. package/dist/surfaces/preference.js.map +1 -0
  991. package/dist/surfaces/registered.d.ts +33 -0
  992. package/dist/surfaces/registered.d.ts.map +1 -0
  993. package/dist/surfaces/registered.js +51 -0
  994. package/dist/surfaces/registered.js.map +1 -0
  995. package/dist/surfaces/scripts.d.ts +84 -0
  996. package/dist/surfaces/scripts.d.ts.map +1 -0
  997. package/dist/surfaces/scripts.js +28 -0
  998. package/dist/surfaces/scripts.js.map +1 -0
  999. package/dist/surfaces/theme-choice.d.ts +31 -0
  1000. package/dist/surfaces/theme-choice.d.ts.map +1 -0
  1001. package/dist/surfaces/theme-choice.js +18 -0
  1002. package/dist/surfaces/theme-choice.js.map +1 -0
  1003. package/dist/surfaces/themes.d.ts +43 -0
  1004. package/dist/surfaces/themes.d.ts.map +1 -0
  1005. package/dist/surfaces/themes.js +110 -0
  1006. package/dist/surfaces/themes.js.map +1 -0
  1007. package/dist/surfaces/translations.d.ts +29 -0
  1008. package/dist/surfaces/translations.d.ts.map +1 -0
  1009. package/dist/surfaces/translations.js +57 -0
  1010. package/dist/surfaces/translations.js.map +1 -0
  1011. package/dist/sync/batch.d.ts +18 -0
  1012. package/dist/sync/batch.d.ts.map +1 -0
  1013. package/dist/sync/batch.js +125 -0
  1014. package/dist/sync/batch.js.map +1 -0
  1015. package/dist/sync/client.d.ts +166 -0
  1016. package/dist/sync/client.d.ts.map +1 -0
  1017. package/dist/sync/client.js +438 -0
  1018. package/dist/sync/client.js.map +1 -0
  1019. package/dist/sync/files.d.ts +46 -0
  1020. package/dist/sync/files.d.ts.map +1 -0
  1021. package/dist/sync/files.js +13 -0
  1022. package/dist/sync/files.js.map +1 -0
  1023. package/dist/sync/filesystem.d.ts +37 -0
  1024. package/dist/sync/filesystem.d.ts.map +1 -0
  1025. package/dist/sync/filesystem.js +185 -0
  1026. package/dist/sync/filesystem.js.map +1 -0
  1027. package/dist/sync/index.d.ts +8 -0
  1028. package/dist/sync/index.d.ts.map +1 -0
  1029. package/dist/sync/index.js +9 -0
  1030. package/dist/sync/index.js.map +1 -0
  1031. package/dist/sync/lines.d.ts +18 -0
  1032. package/dist/sync/lines.d.ts.map +1 -0
  1033. package/dist/sync/lines.js +46 -0
  1034. package/dist/sync/lines.js.map +1 -0
  1035. package/dist/sync/remote.d.ts +130 -0
  1036. package/dist/sync/remote.d.ts.map +1 -0
  1037. package/dist/sync/remote.js +46 -0
  1038. package/dist/sync/remote.js.map +1 -0
  1039. package/dist/sync/state.d.ts +17 -0
  1040. package/dist/sync/state.d.ts.map +1 -0
  1041. package/dist/sync/state.js +40 -0
  1042. package/dist/sync/state.js.map +1 -0
  1043. package/dist/telemetry-ingest/batch.d.ts +70 -0
  1044. package/dist/telemetry-ingest/batch.d.ts.map +1 -0
  1045. package/dist/telemetry-ingest/batch.js +110 -0
  1046. package/dist/telemetry-ingest/batch.js.map +1 -0
  1047. package/dist/telemetry-ingest/facet.d.ts +21 -0
  1048. package/dist/telemetry-ingest/facet.d.ts.map +1 -0
  1049. package/dist/telemetry-ingest/facet.js +96 -0
  1050. package/dist/telemetry-ingest/facet.js.map +1 -0
  1051. package/dist/telemetry-ingest/index.d.ts +5 -0
  1052. package/dist/telemetry-ingest/index.d.ts.map +1 -0
  1053. package/dist/telemetry-ingest/index.js +8 -0
  1054. package/dist/telemetry-ingest/index.js.map +1 -0
  1055. package/dist/telemetry-ingest/recorder.d.ts +50 -0
  1056. package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
  1057. package/dist/telemetry-ingest/recorder.js +298 -0
  1058. package/dist/telemetry-ingest/recorder.js.map +1 -0
  1059. package/dist/telemetry-ingest/sender.d.ts +14 -0
  1060. package/dist/telemetry-ingest/sender.d.ts.map +1 -0
  1061. package/dist/telemetry-ingest/sender.js +64 -0
  1062. package/dist/telemetry-ingest/sender.js.map +1 -0
  1063. package/dist/telemetry-sqlite/index.d.ts +13 -4
  1064. package/dist/telemetry-sqlite/index.d.ts.map +1 -1
  1065. package/dist/telemetry-sqlite/index.js +81 -241
  1066. package/dist/telemetry-sqlite/index.js.map +1 -1
  1067. package/dist/telemetry-sqlite/node.d.ts +13 -0
  1068. package/dist/telemetry-sqlite/node.d.ts.map +1 -0
  1069. package/dist/telemetry-sqlite/node.js +27 -0
  1070. package/dist/telemetry-sqlite/node.js.map +1 -0
  1071. package/dist/telemetry-sqlite/schema.d.ts +9 -0
  1072. package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
  1073. package/dist/telemetry-sqlite/schema.js +61 -0
  1074. package/dist/telemetry-sqlite/schema.js.map +1 -0
  1075. package/dist/telemetry-sqlite/store.d.ts +3 -0
  1076. package/dist/telemetry-sqlite/store.d.ts.map +1 -1
  1077. package/dist/telemetry-sqlite/store.js +24 -13
  1078. package/dist/telemetry-sqlite/store.js.map +1 -1
  1079. package/dist/telemetry.d.ts +937 -0
  1080. package/dist/telemetry.d.ts.map +1 -0
  1081. package/dist/telemetry.js +470 -0
  1082. package/dist/telemetry.js.map +1 -0
  1083. package/dist/tui/bridge.d.ts +112 -0
  1084. package/dist/tui/bridge.d.ts.map +1 -0
  1085. package/dist/tui/bridge.js +9 -0
  1086. package/dist/tui/bridge.js.map +1 -0
  1087. package/dist/tui/channel.d.ts +44 -0
  1088. package/dist/tui/channel.d.ts.map +1 -0
  1089. package/dist/tui/channel.js +150 -0
  1090. package/dist/tui/channel.js.map +1 -0
  1091. package/dist/tui/frames.d.ts +5 -0
  1092. package/dist/tui/frames.d.ts.map +1 -0
  1093. package/dist/tui/frames.js +52 -0
  1094. package/dist/tui/frames.js.map +1 -0
  1095. package/dist/tui/index.d.ts +7 -0
  1096. package/dist/tui/index.d.ts.map +1 -0
  1097. package/dist/tui/index.js +8 -0
  1098. package/dist/tui/index.js.map +1 -0
  1099. package/dist/tui/runtime.d.ts +46 -0
  1100. package/dist/tui/runtime.d.ts.map +1 -0
  1101. package/dist/tui/runtime.js +101 -0
  1102. package/dist/tui/runtime.js.map +1 -0
  1103. package/dist/tui/scope.d.ts +46 -0
  1104. package/dist/tui/scope.d.ts.map +1 -0
  1105. package/dist/tui/scope.js +141 -0
  1106. package/dist/tui/scope.js.map +1 -0
  1107. package/dist/tui/terminal.d.ts +15 -0
  1108. package/dist/tui/terminal.d.ts.map +1 -0
  1109. package/dist/tui/terminal.js +37 -0
  1110. package/dist/tui/terminal.js.map +1 -0
  1111. package/dist/tui/theme.d.ts +17 -0
  1112. package/dist/tui/theme.d.ts.map +1 -0
  1113. package/dist/tui/theme.js +38 -0
  1114. package/dist/tui/theme.js.map +1 -0
  1115. package/dist/watch.d.ts +194 -0
  1116. package/dist/watch.d.ts.map +1 -0
  1117. package/dist/watch.js +383 -0
  1118. package/dist/watch.js.map +1 -0
  1119. package/dist/web/environment.d.ts +4 -0
  1120. package/dist/web/environment.d.ts.map +1 -0
  1121. package/dist/web/environment.js +37 -0
  1122. package/dist/web/environment.js.map +1 -0
  1123. package/dist/web/index.d.ts +5 -0
  1124. package/dist/web/index.d.ts.map +1 -0
  1125. package/dist/web/index.js +7 -0
  1126. package/dist/web/index.js.map +1 -0
  1127. package/dist/web/language.d.ts +7 -0
  1128. package/dist/web/language.d.ts.map +1 -0
  1129. package/dist/web/language.js +21 -0
  1130. package/dist/web/language.js.map +1 -0
  1131. package/dist/web/page.d.ts +29 -0
  1132. package/dist/web/page.d.ts.map +1 -0
  1133. package/dist/web/page.js +92 -0
  1134. package/dist/web/page.js.map +1 -0
  1135. package/dist/web/scripts.d.ts +23 -0
  1136. package/dist/web/scripts.d.ts.map +1 -0
  1137. package/dist/web/scripts.js +50 -0
  1138. package/dist/web/scripts.js.map +1 -0
  1139. package/dist/web/styles.d.ts +17 -0
  1140. package/dist/web/styles.d.ts.map +1 -0
  1141. package/dist/web/styles.js +218 -0
  1142. package/dist/web/styles.js.map +1 -0
  1143. package/dist/web/themes.d.ts +6 -0
  1144. package/dist/web/themes.d.ts.map +1 -0
  1145. package/dist/web/themes.js +31 -0
  1146. package/dist/web/themes.js.map +1 -0
  1147. package/docs/benchmarks.md +1036 -0
  1148. package/docs/decisions.md +3436 -0
  1149. package/docs/dependencies/book.md +1671 -0
  1150. package/docs/dependencies/index.html +2641 -0
  1151. package/docs/dependencies/model.md +330 -0
  1152. package/docs/design.md +3065 -0
  1153. package/docs/durable-observers/book.md +432 -0
  1154. package/docs/durable-observers/index.html +517 -0
  1155. package/docs/flow-control/book.md +333 -0
  1156. package/docs/flow-control/fold/index.html +265 -0
  1157. package/docs/flow-control/index.html +548 -0
  1158. package/docs/flow-control/window/index.html +228 -0
  1159. package/docs/guide-plugins-hosts/book.md +957 -0
  1160. package/docs/guide-plugins-hosts/index.html +952 -0
  1161. package/docs/http-workers/book.md +378 -0
  1162. package/docs/http-workers/index.html +515 -0
  1163. package/docs/i18n/book.md +217 -0
  1164. package/docs/i18n/index.html +344 -0
  1165. package/docs/layer-1.md +311 -0
  1166. package/docs/layer-2.md +216 -0
  1167. package/docs/p3-features/README.md +6 -0
  1168. package/docs/p3-features/book.md +478 -0
  1169. package/docs/plugin-authoring.md +276 -0
  1170. package/docs/plugin-model/book.md +186 -0
  1171. package/docs/plugin-model/index.html +310 -0
  1172. package/docs/plugin-primer/book.md +273 -0
  1173. package/docs/plugin-primer/index.html +430 -0
  1174. package/docs/slice-1.md +236 -0
  1175. package/docs/slice-10.md +288 -0
  1176. package/docs/slice-11.md +114 -0
  1177. package/docs/slice-12.md +132 -0
  1178. package/docs/slice-13.md +121 -0
  1179. package/docs/slice-2.md +174 -0
  1180. package/docs/slice-3a.md +296 -0
  1181. package/docs/slice-3b.md +197 -0
  1182. package/docs/slice-4.md +146 -0
  1183. package/docs/slice-4a.md +418 -0
  1184. package/docs/slice-4b.md +208 -0
  1185. package/docs/slice-5.md +281 -0
  1186. package/docs/slice-6a.md +676 -0
  1187. package/docs/slice-6b.md +332 -0
  1188. package/docs/slice-7a.md +130 -0
  1189. package/docs/slice-7b/book.md +608 -0
  1190. package/docs/slice-7b/index.html +842 -0
  1191. package/docs/slice-7b.md +255 -0
  1192. package/docs/slice-7c.md +165 -0
  1193. package/docs/slice-8.md +194 -0
  1194. package/docs/slice-9.md +110 -0
  1195. package/docs/slices.md +241 -0
  1196. package/docs/store/book.md +670 -0
  1197. package/docs/store/index.html +861 -0
  1198. package/docs/store/walkthrough.md +193 -0
  1199. package/docs/theming/book.md +223 -0
  1200. package/docs/theming/index.html +371 -0
  1201. package/docs/tutorial/book.md +2169 -0
  1202. package/docs/tutorial/index.html +2112 -0
  1203. package/docs/tutorial/screens/click-after.png +0 -0
  1204. package/docs/tutorial/screens/click-before.png +0 -0
  1205. package/docs/tutorial/screens/edited.png +0 -0
  1206. package/docs/tutorial/screens/french.png +0 -0
  1207. package/docs/tutorial/screens/harbor.png +0 -0
  1208. package/docs/tutorial/screens/page.png +0 -0
  1209. package/docs/tutorial/screens/traces-ada.png +0 -0
  1210. package/docs/tutorial/screens/traces.png +0 -0
  1211. package/package.json +114 -20
  1212. package/src/delta/README.md +69 -0
  1213. package/dist/cell.d.ts +0 -122
  1214. package/dist/cell.d.ts.map +0 -1
  1215. package/dist/cell.js +0 -356
  1216. package/dist/cell.js.map +0 -1
  1217. package/dist/cluster.d.ts +0 -27
  1218. package/dist/cluster.d.ts.map +0 -1
  1219. package/dist/cluster.js +0 -230
  1220. package/dist/cluster.js.map +0 -1
  1221. package/dist/connection.d.ts +0 -270
  1222. package/dist/connection.d.ts.map +0 -1
  1223. package/dist/connection.js +0 -1216
  1224. package/dist/connection.js.map +0 -1
  1225. package/dist/contract.d.ts +0 -208
  1226. package/dist/contract.d.ts.map +0 -1
  1227. package/dist/contract.js +0 -246
  1228. package/dist/contract.js.map +0 -1
  1229. package/dist/declare.d.ts +0 -33
  1230. package/dist/declare.d.ts.map +0 -1
  1231. package/dist/declare.js +0 -2
  1232. package/dist/declare.js.map +0 -1
  1233. package/dist/errors.d.ts +0 -28
  1234. package/dist/errors.d.ts.map +0 -1
  1235. package/dist/errors.js +0 -59
  1236. package/dist/errors.js.map +0 -1
  1237. package/dist/host.d.ts +0 -348
  1238. package/dist/host.d.ts.map +0 -1
  1239. package/dist/host.js +0 -1000
  1240. package/dist/host.js.map +0 -1
  1241. package/dist/link.d.ts +0 -107
  1242. package/dist/link.d.ts.map +0 -1
  1243. package/dist/link.js +0 -355
  1244. package/dist/link.js.map +0 -1
  1245. package/dist/loader.d.ts +0 -4
  1246. package/dist/loader.d.ts.map +0 -1
  1247. package/dist/loader.js +0 -73
  1248. package/dist/loader.js.map +0 -1
  1249. package/dist/manager.d.ts +0 -115
  1250. package/dist/manager.d.ts.map +0 -1
  1251. package/dist/manager.js +0 -345
  1252. package/dist/manager.js.map +0 -1
  1253. package/dist/node.d.ts +0 -4
  1254. package/dist/node.d.ts.map +0 -1
  1255. package/dist/node.js +0 -4
  1256. package/dist/node.js.map +0 -1
  1257. package/dist/object.d.ts +0 -438
  1258. package/dist/object.d.ts.map +0 -1
  1259. package/dist/object.js +0 -1571
  1260. package/dist/object.js.map +0 -1
  1261. package/dist/publish.d.ts +0 -5
  1262. package/dist/publish.d.ts.map +0 -1
  1263. package/dist/publish.js +0 -40
  1264. package/dist/publish.js.map +0 -1
  1265. package/dist/registry.d.ts +0 -25
  1266. package/dist/registry.d.ts.map +0 -1
  1267. package/dist/registry.js +0 -6
  1268. package/dist/registry.js.map +0 -1
  1269. package/dist/reload.d.ts +0 -126
  1270. package/dist/reload.d.ts.map +0 -1
  1271. package/dist/reload.js +0 -653
  1272. package/dist/reload.js.map +0 -1
  1273. package/dist/remote.d.ts +0 -165
  1274. package/dist/remote.d.ts.map +0 -1
  1275. package/dist/remote.js +0 -612
  1276. package/dist/remote.js.map +0 -1
  1277. package/dist/schema.d.ts +0 -21
  1278. package/dist/schema.d.ts.map +0 -1
  1279. package/dist/schema.js +0 -228
  1280. package/dist/schema.js.map +0 -1
  1281. package/dist/state.d.ts +0 -92
  1282. package/dist/state.d.ts.map +0 -1
  1283. package/dist/state.js +0 -287
  1284. package/dist/state.js.map +0 -1
  1285. package/dist/types.d.ts +0 -88
  1286. package/dist/types.d.ts.map +0 -1
  1287. package/dist/types.js +0 -2
  1288. package/dist/types.js.map +0 -1
  1289. package/dist/websocket.d.ts +0 -15
  1290. package/dist/websocket.d.ts.map +0 -1
  1291. package/dist/websocket.js +0 -16
  1292. package/dist/websocket.js.map +0 -1
  1293. package/dist/wire.d.ts +0 -216
  1294. package/dist/wire.d.ts.map +0 -1
  1295. package/dist/wire.js +0 -165
  1296. package/dist/wire.js.map +0 -1
  1297. package/docs/guide.md +0 -814
  1298. package/docs/spec.md +0 -288
  1299. package/docs/tutorial.md +0 -931
@@ -0,0 +1,164 @@
1
+ // The batch (W1), one per host: a commit adopts inside it, then every watched value that changed gets one frame, then
2
+ // the flushes it collected run (a link sends one message); Chord calls that would reenter it are refused while it runs.
3
+ import { invalid } from "../data/internal.js";
4
+ import { chordMetrics } from "../telemetry.js";
5
+ /** A host's batch: the reentrancy flag, the watched sources a commit changed, and where background errors go. */
6
+ export class Batch {
7
+ /** Reports a throwing watch listener's error (to the host's `onError`); what watches get as their `report`. */
8
+ reportListener;
9
+ #report;
10
+ #metrics;
11
+ /** Set while adopting, delivering or computing a derive; one flag per host. */
12
+ #running = false;
13
+ /** Set while a pure compute runs (a derive's, a registry's `compose`): nothing may change a source then. */
14
+ #computing = false;
15
+ /** The watched sources the current commit changed, each listed once by its `changed`. */
16
+ #changed = [];
17
+ /** What runs once the current commit's frames were delivered, each listed once by its `flushing`. */
18
+ #flushes = [];
19
+ /** Set while the current commit's flushes run (its links send). */
20
+ #sending = false;
21
+ /** Changes `within` deferred while the flushes sent, for the next commit. */
22
+ #later = [];
23
+ /** Changes `soon` collected for the commit on the next microtask, while one is queued. */
24
+ #soon;
25
+ constructor(report, metrics) {
26
+ this.#report = report;
27
+ this.reportListener = (error) => report({ kind: "listener_error", error });
28
+ this.#metrics = chordMetrics(metrics);
29
+ }
30
+ /** Whether a commit's adoption, a delivery or a derive compute runs now: a change made now lands in this batch. */
31
+ get running() {
32
+ return this.#running;
33
+ }
34
+ /** Throws `invalid/reentrant` inside the batch: `operation` may not run during adoptions or derive computes. */
35
+ assertOutside(operation) {
36
+ if (this.#running)
37
+ throw invalid("reentrant", `${operation} inside a commit or a derive compute`);
38
+ }
39
+ /**
40
+ * Throws `invalid/reentrant` inside a pure compute (a derive's, a registry's `compose`): `operation` would change a
41
+ * source while one is computed from it. Changes inside an adoption are fine (they land in its batch).
42
+ */
43
+ assertNotComputing(operation) {
44
+ if (this.#computing)
45
+ throw invalid("reentrant", `${operation} inside a derive compute or a compose`);
46
+ }
47
+ /** Runs the pure compute `work` (`run`, and changes refused: `assertNotComputing`); nests. */
48
+ compute(work) {
49
+ const running = this.#running;
50
+ const computing = this.#computing;
51
+ this.#running = true;
52
+ this.#computing = true;
53
+ try {
54
+ return work();
55
+ }
56
+ finally {
57
+ this.#running = running;
58
+ this.#computing = computing;
59
+ }
60
+ }
61
+ /** Runs `work` with reentrant calls refused; nests (a derive compute inside a commit). */
62
+ run(work) {
63
+ const outer = this.#running;
64
+ this.#running = true;
65
+ try {
66
+ return work();
67
+ }
68
+ finally {
69
+ this.#running = outer;
70
+ }
71
+ }
72
+ /**
73
+ * Runs one commit's adoptions, then, still synchronously, delivers a frame for every watched value they changed
74
+ * (watched derives recompute through their reads), then runs the flushes the deliveries listed. A delivery or flush
75
+ * that throws is reported; the others still run. What `within` deferred while the flushes sent runs as the next
76
+ * commit, right after.
77
+ */
78
+ commit(adopt, context) {
79
+ this.run(() => {
80
+ try {
81
+ adopt();
82
+ for (const source of this.#changed) {
83
+ try {
84
+ source.deliver(context);
85
+ }
86
+ catch (error) {
87
+ this.#report({ kind: "delivery_failed", error });
88
+ }
89
+ }
90
+ this.#sending = true;
91
+ for (const flush of this.#flushes) {
92
+ try {
93
+ flush(context);
94
+ }
95
+ catch (error) {
96
+ this.#report({ kind: "delivery_failed", error });
97
+ }
98
+ }
99
+ }
100
+ finally {
101
+ this.#sending = false;
102
+ this.#changed = [];
103
+ this.#flushes = [];
104
+ }
105
+ });
106
+ const later = this.#later;
107
+ if (later.length === 0)
108
+ return;
109
+ this.#later = [];
110
+ this.commit(() => {
111
+ for (const each of later)
112
+ each();
113
+ }, context);
114
+ }
115
+ /**
116
+ * Runs `adopt` inside the commit running now, which delivers what it changed; outside one, as a commit of its own;
117
+ * while a commit's flushes send, as the next commit (a link closing while it sends ends its holds: their departure
118
+ * lands in the next batch, so one commit stays one message per link and origin). For changes that happen wherever a
119
+ * reference binds or ends (`host.references`, `host.activity`).
120
+ */
121
+ within(adopt, context) {
122
+ if (this.#sending)
123
+ this.#later.push(adopt);
124
+ else if (this.#running)
125
+ adopt();
126
+ else
127
+ this.commit(adopt, context);
128
+ }
129
+ /**
130
+ * Runs `adopt` in one commit on the next microtask, together with every other `soon` until then (changes arriving
131
+ * outside any commit, as a followed runtime's calls off its commit step: one batch for all of them). `context` is
132
+ * the first one's.
133
+ */
134
+ soon(adopt, context) {
135
+ if (this.#soon !== undefined) {
136
+ this.#soon.push(adopt);
137
+ return;
138
+ }
139
+ const soon = [adopt];
140
+ this.#soon = soon;
141
+ queueMicrotask(() => {
142
+ this.#soon = undefined;
143
+ this.commit(() => {
144
+ for (const each of soon)
145
+ each();
146
+ }, context);
147
+ });
148
+ }
149
+ /** Lists a watched source the current commit changed. */
150
+ changed(source) {
151
+ this.#changed.push(source);
152
+ }
153
+ /** Lists `flush` to run at the end of the current commit, after its deliveries (a link sending what they fed it). */
154
+ flushing(flush) {
155
+ this.#flushes.push(flush);
156
+ }
157
+ /**
158
+ * Counts one unit of derive or registry work on the host's metrics (a lazy read has no context to count through).
159
+ */
160
+ count(counter) {
161
+ this.#metrics.counter(counter).add(1);
162
+ }
163
+ }
164
+ //# sourceMappingURL=batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/state/batch.ts"],"names":[],"mappings":"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","sourcesContent":["// The batch (W1), one per host: a commit adopts inside it, then every watched value that changed gets one frame, then\n// the flushes it collected run (a link sends one message); Chord calls that would reenter it are refused while it runs.\n\nimport type { TelemetryMetrics } from \"@earendil-works/pi-telemetry\";\nimport type { Context } from \"../context/index.ts\";\nimport { invalid } from \"../data/internal.ts\";\nimport { type ChordMetrics, chordMetrics } from \"../telemetry.ts\";\n\n/** What a batch reports: a watch listener that threw, or a frame delivery that threw (a derive's value is no JSON). */\nexport type BatchError =\n\t| { readonly kind: \"listener_error\"; readonly error: unknown }\n\t| { readonly kind: \"delivery_failed\"; readonly error: unknown };\n\n/** What a commit lists to get its frame delivered: a watched source it changed (JSON or native). */\nexport interface Delivered {\n\t/** Delivers this batch's frame to its watches and subscribers; called once per batch that listed it. */\n\tdeliver(context: Context): void;\n}\n\n/** A host's batch: the reentrancy flag, the watched sources a commit changed, and where background errors go. */\nexport class Batch {\n\t/** Reports a throwing watch listener's error (to the host's `onError`); what watches get as their `report`. */\n\treadonly reportListener: (error: unknown) => void;\n\treadonly #report: (error: BatchError) => void;\n\treadonly #metrics: ChordMetrics;\n\t/** Set while adopting, delivering or computing a derive; one flag per host. */\n\t#running = false;\n\t/** Set while a pure compute runs (a derive's, a registry's `compose`): nothing may change a source then. */\n\t#computing = false;\n\t/** The watched sources the current commit changed, each listed once by its `changed`. */\n\t#changed: Delivered[] = [];\n\t/** What runs once the current commit's frames were delivered, each listed once by its `flushing`. */\n\t#flushes: ((context: Context) => void)[] = [];\n\t/** Set while the current commit's flushes run (its links send). */\n\t#sending = false;\n\t/** Changes `within` deferred while the flushes sent, for the next commit. */\n\t#later: (() => void)[] = [];\n\t/** Changes `soon` collected for the commit on the next microtask, while one is queued. */\n\t#soon: (() => void)[] | undefined;\n\n\tconstructor(report: (error: BatchError) => void, metrics: TelemetryMetrics | undefined) {\n\t\tthis.#report = report;\n\t\tthis.reportListener = (error) => report({ kind: \"listener_error\", error });\n\t\tthis.#metrics = chordMetrics(metrics);\n\t}\n\n\t/** Whether a commit's adoption, a delivery or a derive compute runs now: a change made now lands in this batch. */\n\tget running(): boolean {\n\t\treturn this.#running;\n\t}\n\n\t/** Throws `invalid/reentrant` inside the batch: `operation` may not run during adoptions or derive computes. */\n\tassertOutside(operation: string): void {\n\t\tif (this.#running) throw invalid(\"reentrant\", `${operation} inside a commit or a derive compute`);\n\t}\n\n\t/**\n\t * Throws `invalid/reentrant` inside a pure compute (a derive's, a registry's `compose`): `operation` would change a\n\t * source while one is computed from it. Changes inside an adoption are fine (they land in its batch).\n\t */\n\tassertNotComputing(operation: string): void {\n\t\tif (this.#computing) throw invalid(\"reentrant\", `${operation} inside a derive compute or a compose`);\n\t}\n\n\t/** Runs the pure compute `work` (`run`, and changes refused: `assertNotComputing`); nests. */\n\tcompute<T>(work: () => T): T {\n\t\tconst running = this.#running;\n\t\tconst computing = this.#computing;\n\t\tthis.#running = true;\n\t\tthis.#computing = true;\n\t\ttry {\n\t\t\treturn work();\n\t\t} finally {\n\t\t\tthis.#running = running;\n\t\t\tthis.#computing = computing;\n\t\t}\n\t}\n\n\t/** Runs `work` with reentrant calls refused; nests (a derive compute inside a commit). */\n\trun<T>(work: () => T): T {\n\t\tconst outer = this.#running;\n\t\tthis.#running = true;\n\t\ttry {\n\t\t\treturn work();\n\t\t} finally {\n\t\t\tthis.#running = outer;\n\t\t}\n\t}\n\n\t/**\n\t * Runs one commit's adoptions, then, still synchronously, delivers a frame for every watched value they changed\n\t * (watched derives recompute through their reads), then runs the flushes the deliveries listed. A delivery or flush\n\t * that throws is reported; the others still run. What `within` deferred while the flushes sent runs as the next\n\t * commit, right after.\n\t */\n\tcommit(adopt: () => void, context: Context): void {\n\t\tthis.run(() => {\n\t\t\ttry {\n\t\t\t\tadopt();\n\t\t\t\tfor (const source of this.#changed) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsource.deliver(context);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.#report({ kind: \"delivery_failed\", error });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.#sending = true;\n\t\t\t\tfor (const flush of this.#flushes) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tflush(context);\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tthis.#report({ kind: \"delivery_failed\", error });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.#sending = false;\n\t\t\t\tthis.#changed = [];\n\t\t\t\tthis.#flushes = [];\n\t\t\t}\n\t\t});\n\t\tconst later = this.#later;\n\t\tif (later.length === 0) return;\n\t\tthis.#later = [];\n\t\tthis.commit(() => {\n\t\t\tfor (const each of later) each();\n\t\t}, context);\n\t}\n\n\t/**\n\t * Runs `adopt` inside the commit running now, which delivers what it changed; outside one, as a commit of its own;\n\t * while a commit's flushes send, as the next commit (a link closing while it sends ends its holds: their departure\n\t * lands in the next batch, so one commit stays one message per link and origin). For changes that happen wherever a\n\t * reference binds or ends (`host.references`, `host.activity`).\n\t */\n\twithin(adopt: () => void, context: Context): void {\n\t\tif (this.#sending) this.#later.push(adopt);\n\t\telse if (this.#running) adopt();\n\t\telse this.commit(adopt, context);\n\t}\n\n\t/**\n\t * Runs `adopt` in one commit on the next microtask, together with every other `soon` until then (changes arriving\n\t * outside any commit, as a followed runtime's calls off its commit step: one batch for all of them). `context` is\n\t * the first one's.\n\t */\n\tsoon(adopt: () => void, context: Context): void {\n\t\tif (this.#soon !== undefined) {\n\t\t\tthis.#soon.push(adopt);\n\t\t\treturn;\n\t\t}\n\t\tconst soon = [adopt];\n\t\tthis.#soon = soon;\n\t\tqueueMicrotask(() => {\n\t\t\tthis.#soon = undefined;\n\t\t\tthis.commit(() => {\n\t\t\t\tfor (const each of soon) each();\n\t\t\t}, context);\n\t\t});\n\t}\n\n\t/** Lists a watched source the current commit changed. */\n\tchanged(source: Delivered): void {\n\t\tthis.#changed.push(source);\n\t}\n\n\t/** Lists `flush` to run at the end of the current commit, after its deliveries (a link sending what they fed it). */\n\tflushing(flush: (context: Context) => void): void {\n\t\tthis.#flushes.push(flush);\n\t}\n\n\t/**\n\t * Counts one unit of derive or registry work on the host's metrics (a lazy read has no context to count through).\n\t */\n\tcount(\n\t\tcounter:\n\t\t\t| \"chord.derive.computes\"\n\t\t\t| \"chord.derive.diffs\"\n\t\t\t| \"chord.registry.composes\"\n\t\t\t| \"chord.registry.adapts\"\n\t\t\t| \"chord.contract.adapts\",\n\t): void {\n\t\tthis.#metrics.counter(counter).add(1);\n\t}\n}\n"]}
@@ -0,0 +1,52 @@
1
+ import type { Context } from "../context/index.ts";
2
+ import type { JsonValue } from "../json.ts";
3
+ import type { Batch } from "./batch.ts";
4
+ import { NativeSource } from "./native-source.ts";
5
+ import { type Constant, type Dependent, Source, type WatchStart } from "./watchable.ts";
6
+ /** A JSON watchable as Chord follows it (a state member, a JSON derive source): a source, or a constant. */
7
+ export type DeriveSource = Source | Constant;
8
+ /** What a derive reads: a JSON source or constant, or a native source (a `writable`, a registry value, `ref.state`). */
9
+ export type DeriveInput = DeriveSource | NativeSource;
10
+ /**
11
+ * A derive: `compute` over its sources' values, recomputed on read when dirty, so each compute runs at most once per
12
+ * batch and after its sources. A commit only marks it; the batch recomputes it only when something watched depends on
13
+ * it.
14
+ */
15
+ export declare class Derive extends Source implements Dependent {
16
+ #private;
17
+ constructor(sources: readonly unknown[], compute: (values: readonly unknown[]) => JsonValue, batch: Batch);
18
+ get value(): JsonValue;
19
+ /** Its value, or while failed its failure and last good value (a detached derive throws). */
20
+ start(): WatchStart;
21
+ /**
22
+ * Starts reading its sources, as `resolve` maps the declared ones (at activation); the first read computes.
23
+ * `report` gets a throw of its compute, once per failure episode (a value ends it); a failing source's error is its
24
+ * source's to report.
25
+ */
26
+ attach(resolve: (source: unknown, index: number) => DeriveInput, report: (error: unknown) => void): void;
27
+ /** Its object ended: no source keeps it, its watches end `ended`, reads throw `error` (the object's). */
28
+ detach(error: Error): void;
29
+ /**
30
+ * A source changed: mark this derive and its dependents dirty, flags only; a failed one too, which recomputes on its
31
+ * next read and heals when its sources give a value it can compute. An already dirty derive has dirty dependents
32
+ * (every read recomputes its sources first), so marking stops there.
33
+ */
34
+ invalidate(): void;
35
+ /**
36
+ * A source's document was retired in this batch (`Source.retiredInBatch`): a watched derive's frame carries the
37
+ * flag, and the derives reading this one are told too.
38
+ */
39
+ sourceRetired(visited: Set<Dependent>): void;
40
+ /**
41
+ * Delivers the frame: the diff from the watches' value, a retirement even without ops (rule 21). A compute that
42
+ * throws gives one failure call when the watches had a value (one per failure episode), the watches stay open; a
43
+ * retirement waits for the next value.
44
+ */
45
+ deliver(context: Context): void;
46
+ }
47
+ /**
48
+ * Maps an array calling `f` only for object elements not seen before (by identity), returning the previous result for
49
+ * the others; primitive elements are mapped every time. The cache is weak: dropped elements take their results along.
50
+ */
51
+ export declare function mapShared<E, R extends JsonValue>(f: (element: E) => R): (elements: readonly E[]) => R[];
52
+ //# sourceMappingURL=derive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../src/state/derive.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAa,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEnG,4GAA4G;AAC5G,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7C,wHAAwH;AACxH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAoBtD;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,MAAO,YAAW,SAAS;;IAgBtD,YAAY,OAAO,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,EAAE,KAAK,EAIxG;IAED,IAAI,KAAK,IAAI,SAAS,CAKrB;IAED,6FAA6F;IAC7F,KAAK,IAAI,UAAU,CAOlB;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAOvG;IAED,yGAAyG;IACzG,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CASzB;IAED;;;;OAIG;IACH,UAAU,IAAI,IAAI,CAMjB;IAED;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAM3C;IAED;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmB9B;CA0BD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,CAavG"}
@@ -0,0 +1,182 @@
1
+ // Derives (§12): values computed from watchables, pulled when read and marked dirty by commits; and `mapShared`, which
2
+ // keeps unchanged elements identical so a derive's diff stays cheap.
3
+ import { diffRevisions } from "../delta/index.js";
4
+ import { NativeSource } from "./native-source.js";
5
+ import { handedOut, Source } from "./watchable.js";
6
+ const DIRTY = { kind: "dirty" };
7
+ const NO_OPS = [];
8
+ /** What a failed derive's watches had: no value, so its next value frame replaces the value whole. */
9
+ const NO_VALUE = Symbol("no value");
10
+ /**
11
+ * A derive: `compute` over its sources' values, recomputed on read when dirty, so each compute runs at most once per
12
+ * batch and after its sources. A commit only marks it; the batch recomputes it only when something watched depends on
13
+ * it.
14
+ */
15
+ export class Derive extends Source {
16
+ #compute;
17
+ /** The sources as declared, until `attach` resolves them. */
18
+ #declared;
19
+ #sources = [];
20
+ #state = { kind: "dirty" };
21
+ /** The value this derive's watches have, kept from its marking to its frame in the batch. */
22
+ #framed;
23
+ /** Whether a source's document was retired in the current batch while this derive is watched (rule 21). */
24
+ #retired = false;
25
+ /** Reports a failure of its compute to its owner (`attach`); once per failure episode, which a value ends. */
26
+ #report;
27
+ #failing = false;
28
+ /** Its last good value, which a watch opened while it is failed starts at (`NO_VALUE` before the first). */
29
+ #good = NO_VALUE;
30
+ constructor(sources, compute, batch) {
31
+ super(batch);
32
+ this.#declared = sources;
33
+ this.#compute = compute;
34
+ }
35
+ get value() {
36
+ const state = this.#state;
37
+ if (state.kind === "clean")
38
+ return state.value;
39
+ if (state.kind === "dirty")
40
+ return this.#recompute();
41
+ throw state.error;
42
+ }
43
+ /** Its value, or while failed its failure and last good value (a detached derive throws). */
44
+ start() {
45
+ try {
46
+ return { kind: "value", value: this.value };
47
+ }
48
+ catch (error) {
49
+ if (this.#state.kind !== "failed")
50
+ throw error;
51
+ return { kind: "failed", error, last: this.#good === NO_VALUE ? undefined : this.#good };
52
+ }
53
+ }
54
+ /**
55
+ * Starts reading its sources, as `resolve` maps the declared ones (at activation); the first read computes.
56
+ * `report` gets a throw of its compute, once per failure episode (a value ends it); a failing source's error is its
57
+ * source's to report.
58
+ */
59
+ attach(resolve, report) {
60
+ this.#report = report;
61
+ this.#sources = this.#declared.map(resolve);
62
+ this.#declared = undefined;
63
+ for (const source of this.#sources) {
64
+ if (source instanceof Source || source instanceof NativeSource)
65
+ source.dependents.add(this);
66
+ }
67
+ }
68
+ /** Its object ended: no source keeps it, its watches end `ended`, reads throw `error` (the object's). */
69
+ detach(error) {
70
+ for (const source of this.#sources) {
71
+ if (source instanceof Source || source instanceof NativeSource)
72
+ source.dependents.delete(this);
73
+ }
74
+ this.#sources = [];
75
+ this.#declared = undefined;
76
+ this.#state = { kind: "detached", error };
77
+ this.#framed = undefined;
78
+ this.endWatches();
79
+ }
80
+ /**
81
+ * A source changed: mark this derive and its dependents dirty, flags only; a failed one too, which recomputes on its
82
+ * next read and heals when its sources give a value it can compute. An already dirty derive has dirty dependents
83
+ * (every read recomputes its sources first), so marking stops there.
84
+ */
85
+ invalidate() {
86
+ const state = this.#state;
87
+ if (state.kind === "dirty" || state.kind === "detached")
88
+ return;
89
+ if (this.watched)
90
+ this.#framed = state.kind === "clean" ? state.value : NO_VALUE;
91
+ this.#state = DIRTY;
92
+ this.changed();
93
+ }
94
+ /**
95
+ * A source's document was retired in this batch (`Source.retiredInBatch`): a watched derive's frame carries the
96
+ * flag, and the derives reading this one are told too.
97
+ */
98
+ sourceRetired(visited) {
99
+ // Once per derive per retirement: a diamond of derives is walked in its size, not once per path.
100
+ if (visited.has(this))
101
+ return;
102
+ visited.add(this);
103
+ if (this.watched)
104
+ this.#retired = true;
105
+ for (const derive of this.dependents)
106
+ derive.sourceRetired(visited);
107
+ }
108
+ /**
109
+ * Delivers the frame: the diff from the watches' value, a retirement even without ops (rule 21). A compute that
110
+ * throws gives one failure call when the watches had a value (one per failure episode), the watches stay open; a
111
+ * retirement waits for the next value.
112
+ */
113
+ deliver(context) {
114
+ const before = this.#framed;
115
+ const retired = this.#retired;
116
+ this.#framed = undefined;
117
+ let after;
118
+ try {
119
+ after = this.value;
120
+ }
121
+ catch (error) {
122
+ // Still failed since the last call: nothing new for the watches.
123
+ if (before !== NO_VALUE)
124
+ this.failWatches(error, context);
125
+ return;
126
+ }
127
+ this.#retired = false;
128
+ let ops = NO_OPS;
129
+ if (after !== before) {
130
+ this.batch.count("chord.derive.diffs");
131
+ ops = before === NO_VALUE ? [["r", after]] : diffRevisions(before, after);
132
+ }
133
+ if (ops.length > 0 || retired)
134
+ this.publish(after, ops, retired, context);
135
+ }
136
+ #recompute() {
137
+ return this.batch.compute(() => {
138
+ try {
139
+ this.batch.count("chord.derive.computes");
140
+ // A failing source throws its own error here, so a derive over a failed derive fails with the same error.
141
+ const values = this.#sources.map((source) => source.value);
142
+ let value;
143
+ try {
144
+ value = this.#compute(values);
145
+ }
146
+ catch (error) {
147
+ if (!this.#failing)
148
+ this.#report?.(handedOut(error));
149
+ this.#failing = true;
150
+ throw error;
151
+ }
152
+ this.#failing = false;
153
+ this.#state = { kind: "clean", value };
154
+ this.#good = value;
155
+ return value;
156
+ }
157
+ catch (error) {
158
+ this.#state = { kind: "failed", error };
159
+ throw error;
160
+ }
161
+ });
162
+ }
163
+ }
164
+ /**
165
+ * Maps an array calling `f` only for object elements not seen before (by identity), returning the previous result for
166
+ * the others; primitive elements are mapped every time. The cache is weak: dropped elements take their results along.
167
+ */
168
+ export function mapShared(f) {
169
+ const results = new WeakMap();
170
+ return (elements) => elements.map((element) => {
171
+ // The decided rule: identity caching for objects only.
172
+ if (typeof element !== "object" || element === null)
173
+ return f(element);
174
+ let result = results.get(element);
175
+ if (result === undefined) {
176
+ result = f(element);
177
+ results.set(element, result);
178
+ }
179
+ return result;
180
+ });
181
+ }
182
+ //# sourceMappingURL=derive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../src/state/derive.ts"],"names":[],"mappings":"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","sourcesContent":["// Derives (§12): values computed from watchables, pulled when read and marked dirty by commits; and `mapShared`, which\n// keeps unchanged elements identical so a derive's diff stays cheap.\n\nimport type { Context } from \"../context/index.ts\";\nimport { diffRevisions, type Op } from \"../delta/index.ts\";\nimport type { JsonValue } from \"../json.ts\";\nimport type { Batch } from \"./batch.ts\";\nimport { NativeSource } from \"./native-source.ts\";\nimport { type Constant, type Dependent, handedOut, Source, type WatchStart } from \"./watchable.ts\";\n\n/** A JSON watchable as Chord follows it (a state member, a JSON derive source): a source, or a constant. */\nexport type DeriveSource = Source | Constant;\n\n/** What a derive reads: a JSON source or constant, or a native source (a `writable`, a registry value, `ref.state`). */\nexport type DeriveInput = DeriveSource | NativeSource;\n\n/**\n * Where a derive stands. `dirty`: a source changed since the last compute (or there was none). A failed derive (its\n * compute threw) throws its error until a source it reads changes or is re-bound, then recomputes (self-healing, design\n * §11); a detached one (its object ended) throws its object's error for good.\n */\ntype DeriveState =\n\t| { readonly kind: \"dirty\" }\n\t| { readonly kind: \"clean\"; readonly value: JsonValue }\n\t| { readonly kind: \"failed\"; readonly error: unknown }\n\t| { readonly kind: \"detached\"; readonly error: unknown };\n\nconst DIRTY: DeriveState = { kind: \"dirty\" };\n\nconst NO_OPS: readonly Op[] = [];\n\n/** What a failed derive's watches had: no value, so its next value frame replaces the value whole. */\nconst NO_VALUE: unique symbol = Symbol(\"no value\");\n\n/**\n * A derive: `compute` over its sources' values, recomputed on read when dirty, so each compute runs at most once per\n * batch and after its sources. A commit only marks it; the batch recomputes it only when something watched depends on\n * it.\n */\nexport class Derive extends Source implements Dependent {\n\treadonly #compute: (values: readonly unknown[]) => JsonValue;\n\t/** The sources as declared, until `attach` resolves them. */\n\t#declared: readonly unknown[] | undefined;\n\t#sources: readonly DeriveInput[] = [];\n\t#state: DeriveState = { kind: \"dirty\" };\n\t/** The value this derive's watches have, kept from its marking to its frame in the batch. */\n\t#framed: JsonValue | typeof NO_VALUE | undefined;\n\t/** Whether a source's document was retired in the current batch while this derive is watched (rule 21). */\n\t#retired = false;\n\t/** Reports a failure of its compute to its owner (`attach`); once per failure episode, which a value ends. */\n\t#report: ((error: unknown) => void) | undefined;\n\t#failing = false;\n\t/** Its last good value, which a watch opened while it is failed starts at (`NO_VALUE` before the first). */\n\t#good: JsonValue | typeof NO_VALUE = NO_VALUE;\n\n\tconstructor(sources: readonly unknown[], compute: (values: readonly unknown[]) => JsonValue, batch: Batch) {\n\t\tsuper(batch);\n\t\tthis.#declared = sources;\n\t\tthis.#compute = compute;\n\t}\n\n\tget value(): JsonValue {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"clean\") return state.value;\n\t\tif (state.kind === \"dirty\") return this.#recompute();\n\t\tthrow state.error;\n\t}\n\n\t/** Its value, or while failed its failure and last good value (a detached derive throws). */\n\tstart(): WatchStart {\n\t\ttry {\n\t\t\treturn { kind: \"value\", value: this.value };\n\t\t} catch (error) {\n\t\t\tif (this.#state.kind !== \"failed\") throw error;\n\t\t\treturn { kind: \"failed\", error, last: this.#good === NO_VALUE ? undefined : this.#good };\n\t\t}\n\t}\n\n\t/**\n\t * Starts reading its sources, as `resolve` maps the declared ones (at activation); the first read computes.\n\t * `report` gets a throw of its compute, once per failure episode (a value ends it); a failing source's error is its\n\t * source's to report.\n\t */\n\tattach(resolve: (source: unknown, index: number) => DeriveInput, report: (error: unknown) => void): void {\n\t\tthis.#report = report;\n\t\tthis.#sources = this.#declared!.map(resolve);\n\t\tthis.#declared = undefined;\n\t\tfor (const source of this.#sources) {\n\t\t\tif (source instanceof Source || source instanceof NativeSource) source.dependents.add(this);\n\t\t}\n\t}\n\n\t/** Its object ended: no source keeps it, its watches end `ended`, reads throw `error` (the object's). */\n\tdetach(error: Error): void {\n\t\tfor (const source of this.#sources) {\n\t\t\tif (source instanceof Source || source instanceof NativeSource) source.dependents.delete(this);\n\t\t}\n\t\tthis.#sources = [];\n\t\tthis.#declared = undefined;\n\t\tthis.#state = { kind: \"detached\", error };\n\t\tthis.#framed = undefined;\n\t\tthis.endWatches();\n\t}\n\n\t/**\n\t * A source changed: mark this derive and its dependents dirty, flags only; a failed one too, which recomputes on its\n\t * next read and heals when its sources give a value it can compute. An already dirty derive has dirty dependents\n\t * (every read recomputes its sources first), so marking stops there.\n\t */\n\tinvalidate(): void {\n\t\tconst state = this.#state;\n\t\tif (state.kind === \"dirty\" || state.kind === \"detached\") return;\n\t\tif (this.watched) this.#framed = state.kind === \"clean\" ? state.value : NO_VALUE;\n\t\tthis.#state = DIRTY;\n\t\tthis.changed();\n\t}\n\n\t/**\n\t * A source's document was retired in this batch (`Source.retiredInBatch`): a watched derive's frame carries the\n\t * flag, and the derives reading this one are told too.\n\t */\n\tsourceRetired(visited: Set<Dependent>): void {\n\t\t// Once per derive per retirement: a diamond of derives is walked in its size, not once per path.\n\t\tif (visited.has(this)) return;\n\t\tvisited.add(this);\n\t\tif (this.watched) this.#retired = true;\n\t\tfor (const derive of this.dependents) derive.sourceRetired(visited);\n\t}\n\n\t/**\n\t * Delivers the frame: the diff from the watches' value, a retirement even without ops (rule 21). A compute that\n\t * throws gives one failure call when the watches had a value (one per failure episode), the watches stay open; a\n\t * retirement waits for the next value.\n\t */\n\tdeliver(context: Context): void {\n\t\tconst before = this.#framed!;\n\t\tconst retired = this.#retired;\n\t\tthis.#framed = undefined;\n\t\tlet after: JsonValue;\n\t\ttry {\n\t\t\tafter = this.value;\n\t\t} catch (error) {\n\t\t\t// Still failed since the last call: nothing new for the watches.\n\t\t\tif (before !== NO_VALUE) this.failWatches(error, context);\n\t\t\treturn;\n\t\t}\n\t\tthis.#retired = false;\n\t\tlet ops: readonly Op[] = NO_OPS;\n\t\tif (after !== before) {\n\t\t\tthis.batch.count(\"chord.derive.diffs\");\n\t\t\tops = before === NO_VALUE ? [[\"r\", after]] : diffRevisions(before, after);\n\t\t}\n\t\tif (ops.length > 0 || retired) this.publish(after, ops, retired, context);\n\t}\n\n\t#recompute(): JsonValue {\n\t\treturn this.batch.compute(() => {\n\t\t\ttry {\n\t\t\t\tthis.batch.count(\"chord.derive.computes\");\n\t\t\t\t// A failing source throws its own error here, so a derive over a failed derive fails with the same error.\n\t\t\t\tconst values = this.#sources.map((source) => source.value);\n\t\t\t\tlet value: JsonValue;\n\t\t\t\ttry {\n\t\t\t\t\tvalue = this.#compute(values);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (!this.#failing) this.#report?.(handedOut(error));\n\t\t\t\t\tthis.#failing = true;\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t\tthis.#failing = false;\n\t\t\t\tthis.#state = { kind: \"clean\", value };\n\t\t\t\tthis.#good = value;\n\t\t\t\treturn value;\n\t\t\t} catch (error) {\n\t\t\t\tthis.#state = { kind: \"failed\", error };\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t});\n\t}\n}\n\n/**\n * Maps an array calling `f` only for object elements not seen before (by identity), returning the previous result for\n * the others; primitive elements are mapped every time. The cache is weak: dropped elements take their results along.\n */\nexport function mapShared<E, R extends JsonValue>(f: (element: E) => R): (elements: readonly E[]) => R[] {\n\tconst results = new WeakMap<object, R>();\n\treturn (elements) =>\n\t\telements.map((element) => {\n\t\t\t// The decided rule: identity caching for objects only.\n\t\t\tif (typeof element !== \"object\" || element === null) return f(element);\n\t\t\tlet result = results.get(element);\n\t\t\tif (result === undefined) {\n\t\t\t\tresult = f(element);\n\t\t\t\tresults.set(element, result);\n\t\t\t}\n\t\t\treturn result;\n\t\t});\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export type { Watchable } from "../watch.ts";
2
+ export { mapShared } from "./derive.ts";
3
+ export type { NativeObservation, NativeObserver } from "./native-source.ts";
4
+ export { constant } from "./watchable.ts";
5
+ export type { Writable } from "./writable.ts";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,4 @@
1
+ // State for apps: watchables, constants, writables, observers of native sources, and the derive helper `mapShared`.
2
+ export { mapShared } from "./derive.js";
3
+ export { constant } from "./watchable.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA,oHAAoH;AAGpH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["// State for apps: watchables, constants, writables, observers of native sources, and the derive helper `mapShared`.\n\nexport type { Watchable } from \"../watch.ts\";\nexport { mapShared } from \"./derive.ts\";\nexport type { NativeObservation, NativeObserver } from \"./native-source.ts\";\nexport { constant } from \"./watchable.ts\";\nexport type { Writable } from \"./writable.ts\";\n"]}
@@ -0,0 +1,6 @@
1
+ export { Batch, type BatchError, type Delivered } from "./batch.ts";
2
+ export { Derive, type DeriveInput, type DeriveSource } from "./derive.ts";
3
+ export { FollowedSource, type NativeObservation, type NativeObserver, NativeSource, type NativeStart, } from "./native-source.ts";
4
+ export { Constant, type Dependent, handedOut, Source, type Subscriber, type WatchStart } from "./watchable.ts";
5
+ export { type WritableOwner, WritableSource } from "./writable.ts";
6
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/state/internal.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EACN,cAAc,EACd,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,YAAY,EACZ,KAAK,WAAW,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/G,OAAO,EAAE,KAAK,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ // State for Chord's layers: the batch, sources (JSON and native), derives, constants and writables behind the
2
+ // app's watchables.
3
+ export { Batch } from "./batch.js";
4
+ export { Derive } from "./derive.js";
5
+ export { FollowedSource, NativeSource, } from "./native-source.js";
6
+ export { Constant, handedOut, Source } from "./watchable.js";
7
+ export { WritableSource } from "./writable.js";
8
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/state/internal.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAC9G,oBAAoB;AAEpB,OAAO,EAAE,KAAK,EAAmC,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,MAAM,EAAuC,MAAM,aAAa,CAAC;AAC1E,OAAO,EACN,cAAc,EAGd,YAAY,GAEZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAkB,SAAS,EAAE,MAAM,EAAoC,MAAM,gBAAgB,CAAC;AAC/G,OAAO,EAAsB,cAAc,EAAE,MAAM,eAAe,CAAC","sourcesContent":["// State for Chord's layers: the batch, sources (JSON and native), derives, constants and writables behind the\n// app's watchables.\n\nexport { Batch, type BatchError, type Delivered } from \"./batch.ts\";\nexport { Derive, type DeriveInput, type DeriveSource } from \"./derive.ts\";\nexport {\n\tFollowedSource,\n\ttype NativeObservation,\n\ttype NativeObserver,\n\tNativeSource,\n\ttype NativeStart,\n} from \"./native-source.ts\";\nexport { Constant, type Dependent, handedOut, Source, type Subscriber, type WatchStart } from \"./watchable.ts\";\nexport { type WritableOwner, WritableSource } from \"./writable.ts\";\n"]}
@@ -0,0 +1,106 @@
1
+ import type { Context } from "../context/index.ts";
2
+ import { NativeWatch, type NativeWatchable, type NativeWatchCall, type NativeWatchHandle, type WatchEnd } from "../watch.ts";
3
+ import type { Batch } from "./batch.ts";
4
+ import { type Dependent } from "./watchable.ts";
5
+ /**
6
+ * A synchronous observer of a native source (Durable's observer shape): `advance` is called inside the batch that
7
+ * changed the source, so it only records; `end` once, when the source ended (`ended`) or the observer's context was
8
+ * aborted (`aborted`).
9
+ */
10
+ export interface NativeObserver<T> {
11
+ /** The source's call of this batch: its new value, or a failure it may recover from. */
12
+ advance(call: NativeWatchCall<T>, context: Context): void;
13
+ /** The observer is detached for good with `end`. */
14
+ end(end: WatchEnd): void;
15
+ }
16
+ /** What `observe` gives: the value the observer starts at, and how to detach it (Durable's `Observation`). */
17
+ export type NativeObservation<T> = {
18
+ readonly value: T;
19
+ detach(): void;
20
+ };
21
+ /**
22
+ * What a new watch of a native source starts at: its value, or while it is failed, the failure and its last good value
23
+ * (`last` undefined when it never had one: a watch cannot start then).
24
+ */
25
+ export type NativeStart<T> = {
26
+ readonly kind: "value";
27
+ readonly value: T;
28
+ } | {
29
+ readonly kind: "failed";
30
+ readonly error: unknown;
31
+ readonly last: {
32
+ readonly value: T;
33
+ } | undefined;
34
+ };
35
+ /**
36
+ * A native source as derives and registry tables read it: its value (`start()` while it may fail), the dependents a
37
+ * change marks (`changed()`, inside a batch), and the host's batch until it ended. How its watches get their calls is
38
+ * the subclass's (`FollowedSource` for writables and registry values; `ref.state` gives each state to its watches).
39
+ */
40
+ export declare abstract class NativeSource<T = unknown> implements NativeWatchable<T> {
41
+ #private;
42
+ /** Derives and registry tables reading this source; each removes itself when it stops. */
43
+ readonly dependents: Set<Dependent>;
44
+ /** `batch` undefined: made ended (a released reference's state). */
45
+ constructor(batch: Batch | undefined);
46
+ abstract get value(): T;
47
+ abstract watch(context: Context): Promise<NativeWatchHandle<T>>;
48
+ /** What a new watch starts at; a source that can fail and recover tells its failure. */
49
+ start(): NativeStart<T>;
50
+ /**
51
+ * Its value now as a contribution reads it: throws its failure while it is failed, where `.value` keeps the last good
52
+ * value for readers (a registry whose `compose` threw).
53
+ */
54
+ current(): T;
55
+ /** The host's batch, `undefined` once the source ended. */
56
+ protected get batch(): Batch | undefined;
57
+ /** Records a change inside the current batch: every dependent marked. */
58
+ protected changed(): void;
59
+ /** Ends the source for good: its dependents dropped, the batch let go. */
60
+ protected end(): void;
61
+ }
62
+ /**
63
+ * A native source its followers get through the batch (a writable, a registry value): a change lists it for one frame
64
+ * when someone follows it; the frame is its value then, delivered only when it is another value (identity) than the
65
+ * one its followers have, or after a failure, whose call comes once per episode.
66
+ */
67
+ export declare abstract class FollowedSource<T = unknown> extends NativeSource<T> {
68
+ #private;
69
+ /** Whether a watch or an observer follows it (a registry value also while readers wait for its first value). */
70
+ get watched(): boolean;
71
+ watch(context: Context): Promise<NativeWatch<T>>;
72
+ /**
73
+ * `watch` without the Promise. On a failed source it opens at the last good value and its first call is the
74
+ * failure; with no value to start at it throws the failure. An ended source gives a watch that has ended.
75
+ */
76
+ openWatch(context: Context): NativeWatch<T>;
77
+ /**
78
+ * Attaches a synchronous observer at the current value (Durable's `observeXXX`); it counts as following, so a lazy
79
+ * value is computed in the batch that changed it. Throws the failure when there is no value to start at; aborting
80
+ * `context` detaches it (`aborted`); the source's end detaches it too (`ended`), its abort listener removed.
81
+ */
82
+ observe(observer: NativeObserver<T>, context: Context): NativeObservation<T>;
83
+ /**
84
+ * Feeds `observer` every call from now on, inside each batch, also while the source has no value (Chord's own
85
+ * followers: `retryOn`). Nothing is delivered for the current value.
86
+ */
87
+ subscribe(observer: NativeObserver<T>): void;
88
+ unsubscribe(observer: NativeObserver<T>): void;
89
+ /** Delivers this batch's frame: the new value when the followers have another, or a failure once per episode. */
90
+ deliver(context: Context): void;
91
+ /**
92
+ * Records a change inside the current batch: every dependent marked, and the source listed for a frame when someone
93
+ * follows it (or `watched` says so).
94
+ */
95
+ protected changed(): void;
96
+ /**
97
+ * Lists the source for a frame in the current batch when someone follows it (or `watched` says so), its dependents
98
+ * left as they are (marked already).
99
+ */
100
+ protected list(): void;
101
+ /** Nothing follows it any more (no watch, no observer): a subclass drops what it kept for followers. */
102
+ protected unfollowed(): void;
103
+ /** Ends the source for good: watches and observers end `ended` (their abort listeners removed). */
104
+ protected end(): void;
105
+ }
106
+ //# sourceMappingURL=native-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-source.d.ts","sourceRoot":"","sources":["../../src/state/native-source.ts"],"names":[],"mappings":"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"}