@earendil-works/chord 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1853) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +50 -90
  3. package/dist/contracts/accepts.d.ts +81 -0
  4. package/dist/contracts/accepts.d.ts.map +1 -0
  5. package/dist/contracts/accepts.js.map +1 -0
  6. package/dist/contracts/contract.d.ts +121 -0
  7. package/dist/contracts/contract.d.ts.map +1 -0
  8. package/dist/contracts/contract.js.map +1 -0
  9. package/dist/contracts/declare.d.ts.map +1 -0
  10. package/dist/contracts/declare.js.map +1 -0
  11. package/dist/contracts/evolve.d.ts.map +1 -0
  12. package/dist/contracts/evolve.js.map +1 -0
  13. package/dist/contracts/fingerprint.d.ts +16 -0
  14. package/dist/contracts/fingerprint.d.ts.map +1 -0
  15. package/dist/contracts/fingerprint.js.map +1 -0
  16. package/dist/contracts/history.d.ts.map +1 -0
  17. package/dist/contracts/history.js.map +1 -0
  18. package/dist/contracts/host-kind.d.ts.map +1 -0
  19. package/dist/contracts/host-kind.js.map +1 -0
  20. package/dist/contracts/index.d.ts.map +1 -0
  21. package/dist/contracts/index.js.map +1 -0
  22. package/dist/contracts/internal.d.ts.map +1 -0
  23. package/dist/contracts/internal.js.map +1 -0
  24. package/dist/contracts/names.d.ts.map +1 -0
  25. package/dist/contracts/names.js.map +1 -0
  26. package/dist/contracts/params.d.ts +28 -0
  27. package/dist/contracts/params.d.ts.map +1 -0
  28. package/dist/contracts/params.js.map +1 -0
  29. package/dist/contracts/schema.d.ts.map +1 -0
  30. package/dist/contracts/schema.js.map +1 -0
  31. package/dist/contracts/snapshot.d.ts +16 -0
  32. package/dist/contracts/snapshot.d.ts.map +1 -0
  33. package/dist/contracts/snapshot.js +167 -0
  34. package/dist/contracts/snapshot.js.map +1 -0
  35. package/dist/data/args.d.ts +50 -0
  36. package/dist/data/args.d.ts.map +1 -0
  37. package/dist/data/args.js.map +1 -0
  38. package/dist/data/errors.d.ts +80 -0
  39. package/dist/data/errors.d.ts.map +1 -0
  40. package/dist/data/errors.js +116 -0
  41. package/dist/data/errors.js.map +1 -0
  42. package/dist/data/failure.d.ts.map +1 -0
  43. package/dist/data/failure.js +77 -0
  44. package/dist/data/failure.js.map +1 -0
  45. package/dist/data/index.d.ts +4 -0
  46. package/dist/data/index.d.ts.map +1 -0
  47. package/dist/data/index.js +5 -0
  48. package/dist/data/index.js.map +1 -0
  49. package/dist/data/internal.d.ts +7 -0
  50. package/dist/data/internal.d.ts.map +1 -0
  51. package/dist/data/internal.js +8 -0
  52. package/dist/data/internal.js.map +1 -0
  53. package/dist/data/params.d.ts +20 -0
  54. package/dist/data/params.d.ts.map +1 -0
  55. package/dist/data/params.js.map +1 -0
  56. package/dist/data/principal.d.ts +22 -0
  57. package/dist/data/principal.d.ts.map +1 -0
  58. package/dist/data/principal.js +49 -0
  59. package/dist/data/principal.js.map +1 -0
  60. package/dist/data/validator.d.ts +12 -0
  61. package/dist/data/validator.d.ts.map +1 -0
  62. package/dist/data/validator.js +35 -0
  63. package/dist/data/validator.js.map +1 -0
  64. package/dist/documents/address-source.d.ts +20 -0
  65. package/dist/documents/address-source.d.ts.map +1 -0
  66. package/dist/documents/address-source.js.map +1 -0
  67. package/dist/documents/definition.d.ts +84 -0
  68. package/dist/documents/definition.d.ts.map +1 -0
  69. package/dist/documents/definition.js +74 -0
  70. package/dist/documents/definition.js.map +1 -0
  71. package/dist/documents/documents.d.ts +126 -0
  72. package/dist/documents/documents.d.ts.map +1 -0
  73. package/dist/documents/documents.js +248 -0
  74. package/dist/documents/documents.js.map +1 -0
  75. package/dist/documents/fence.d.ts.map +1 -0
  76. package/dist/documents/fence.js.map +1 -0
  77. package/dist/documents/handles.d.ts +76 -0
  78. package/dist/documents/handles.d.ts.map +1 -0
  79. package/dist/documents/handles.js.map +1 -0
  80. package/dist/documents/index.d.ts.map +1 -0
  81. package/dist/documents/index.js.map +1 -0
  82. package/dist/documents/internal.d.ts +9 -0
  83. package/dist/documents/internal.d.ts.map +1 -0
  84. package/dist/documents/internal.js.map +1 -0
  85. package/dist/documents/keyed-slot.d.ts +103 -0
  86. package/dist/documents/keyed-slot.d.ts.map +1 -0
  87. package/dist/documents/keyed-slot.js +395 -0
  88. package/dist/documents/keyed-slot.js.map +1 -0
  89. package/dist/documents/line.d.ts.map +1 -0
  90. package/dist/documents/line.js.map +1 -0
  91. package/dist/documents/persistence.d.ts +104 -0
  92. package/dist/documents/persistence.d.ts.map +1 -0
  93. package/dist/documents/persistence.js +129 -0
  94. package/dist/documents/persistence.js.map +1 -0
  95. package/dist/documents/residency.d.ts +31 -0
  96. package/dist/documents/residency.d.ts.map +1 -0
  97. package/dist/documents/residency.js.map +1 -0
  98. package/dist/documents/slot.d.ts +109 -0
  99. package/dist/documents/slot.d.ts.map +1 -0
  100. package/dist/documents/slot.js +181 -0
  101. package/dist/documents/slot.js.map +1 -0
  102. package/dist/documents/transaction.d.ts +143 -0
  103. package/dist/documents/transaction.d.ts.map +1 -0
  104. package/dist/documents/transaction.js +442 -0
  105. package/dist/documents/transaction.js.map +1 -0
  106. package/dist/host/activity.d.ts +31 -0
  107. package/dist/host/activity.d.ts.map +1 -0
  108. package/dist/host/activity.js +40 -0
  109. package/dist/host/activity.js.map +1 -0
  110. package/dist/host/adapted.d.ts +49 -0
  111. package/dist/host/adapted.d.ts.map +1 -0
  112. package/dist/host/adapted.js.map +1 -0
  113. package/dist/host/attempt.d.ts +308 -0
  114. package/dist/host/attempt.d.ts.map +1 -0
  115. package/dist/host/attempt.js +1199 -0
  116. package/dist/host/attempt.js.map +1 -0
  117. package/dist/host/backoff.d.ts.map +1 -0
  118. package/dist/host/backoff.js.map +1 -0
  119. package/dist/host/ctx.d.ts +94 -0
  120. package/dist/host/ctx.d.ts.map +1 -0
  121. package/dist/host/ctx.js +200 -0
  122. package/dist/host/ctx.js.map +1 -0
  123. package/dist/host/deadline.d.ts.map +1 -0
  124. package/dist/host/deadline.js.map +1 -0
  125. package/dist/host/dependencies.d.ts.map +1 -0
  126. package/dist/host/dependencies.js.map +1 -0
  127. package/dist/host/destination.d.ts +48 -0
  128. package/dist/host/destination.d.ts.map +1 -0
  129. package/dist/host/destination.js.map +1 -0
  130. package/dist/host/facet.d.ts +84 -0
  131. package/dist/host/facet.d.ts.map +1 -0
  132. package/dist/host/facet.js.map +1 -0
  133. package/dist/host/follow.d.ts +52 -0
  134. package/dist/host/follow.d.ts.map +1 -0
  135. package/dist/host/follow.js.map +1 -0
  136. package/dist/host/host.d.ts +571 -0
  137. package/dist/host/host.d.ts.map +1 -0
  138. package/dist/host/host.js +1318 -0
  139. package/dist/host/host.js.map +1 -0
  140. package/dist/host/index.d.ts +17 -0
  141. package/dist/host/index.d.ts.map +1 -0
  142. package/dist/host/index.js.map +1 -0
  143. package/dist/host/internal.d.ts +11 -0
  144. package/dist/host/internal.d.ts.map +1 -0
  145. package/dist/host/internal.js +9 -0
  146. package/dist/host/internal.js.map +1 -0
  147. package/dist/host/members.d.ts +50 -0
  148. package/dist/host/members.d.ts.map +1 -0
  149. package/dist/host/members.js.map +1 -0
  150. package/dist/host/native.d.ts +64 -0
  151. package/dist/host/native.d.ts.map +1 -0
  152. package/dist/host/native.js +126 -0
  153. package/dist/host/native.js.map +1 -0
  154. package/dist/host/object.d.ts +331 -0
  155. package/dist/host/object.d.ts.map +1 -0
  156. package/dist/host/object.js +1296 -0
  157. package/dist/host/object.js.map +1 -0
  158. package/dist/host/old-work.d.ts +34 -0
  159. package/dist/host/old-work.d.ts.map +1 -0
  160. package/dist/host/old-work.js +52 -0
  161. package/dist/host/old-work.js.map +1 -0
  162. package/dist/host/parked.d.ts +23 -0
  163. package/dist/host/parked.d.ts.map +1 -0
  164. package/dist/host/parked.js.map +1 -0
  165. package/dist/host/presence.d.ts +34 -0
  166. package/dist/host/presence.d.ts.map +1 -0
  167. package/dist/host/presence.js.map +1 -0
  168. package/dist/host/readiness.d.ts +27 -0
  169. package/dist/host/readiness.d.ts.map +1 -0
  170. package/dist/host/readiness.js +134 -0
  171. package/dist/host/readiness.js.map +1 -0
  172. package/dist/host/ref-state.d.ts +53 -0
  173. package/dist/host/ref-state.d.ts.map +1 -0
  174. package/dist/host/ref-state.js +83 -0
  175. package/dist/host/ref-state.js.map +1 -0
  176. package/dist/host/reference-keys.d.ts +36 -0
  177. package/dist/host/reference-keys.d.ts.map +1 -0
  178. package/dist/host/reference-keys.js +168 -0
  179. package/dist/host/reference-keys.js.map +1 -0
  180. package/dist/host/reference-source.d.ts +65 -0
  181. package/dist/host/reference-source.d.ts.map +1 -0
  182. package/dist/host/reference-source.js +285 -0
  183. package/dist/host/reference-source.js.map +1 -0
  184. package/dist/host/reference.d.ts +321 -0
  185. package/dist/host/reference.d.ts.map +1 -0
  186. package/dist/host/reference.js +797 -0
  187. package/dist/host/reference.js.map +1 -0
  188. package/dist/host/reload-cycle.d.ts +16 -0
  189. package/dist/host/reload-cycle.d.ts.map +1 -0
  190. package/dist/host/reload-cycle.js +81 -0
  191. package/dist/host/reload-cycle.js.map +1 -0
  192. package/dist/host/retry-on.d.ts.map +1 -0
  193. package/dist/host/retry-on.js.map +1 -0
  194. package/dist/host/revocation.d.ts +16 -0
  195. package/dist/host/revocation.d.ts.map +1 -0
  196. package/dist/host/revocation.js.map +1 -0
  197. package/dist/host/root.d.ts +37 -0
  198. package/dist/host/root.d.ts.map +1 -0
  199. package/dist/host/root.js +68 -0
  200. package/dist/host/root.js.map +1 -0
  201. package/dist/host/route.d.ts +64 -0
  202. package/dist/host/route.d.ts.map +1 -0
  203. package/dist/host/route.js +227 -0
  204. package/dist/host/route.js.map +1 -0
  205. package/dist/host/routines.d.ts +78 -0
  206. package/dist/host/routines.d.ts.map +1 -0
  207. package/dist/host/routines.js +398 -0
  208. package/dist/host/routines.js.map +1 -0
  209. package/dist/host/sleep.d.ts +9 -0
  210. package/dist/host/sleep.d.ts.map +1 -0
  211. package/dist/host/sleep.js.map +1 -0
  212. package/dist/host/staging.d.ts +94 -0
  213. package/dist/host/staging.d.ts.map +1 -0
  214. package/dist/host/staging.js +304 -0
  215. package/dist/host/staging.js.map +1 -0
  216. package/dist/host/unbound-clock.d.ts +23 -0
  217. package/dist/host/unbound-clock.d.ts.map +1 -0
  218. package/dist/host/unbound-clock.js +58 -0
  219. package/dist/host/unbound-clock.js.map +1 -0
  220. package/dist/host/unbound.d.ts +37 -0
  221. package/dist/host/unbound.d.ts.map +1 -0
  222. package/dist/host/unbound.js +88 -0
  223. package/dist/host/unbound.js.map +1 -0
  224. package/dist/host/uuid.d.ts.map +1 -0
  225. package/dist/host/uuid.js.map +1 -0
  226. package/dist/index.d.ts +29 -19
  227. package/dist/index.d.ts.map +1 -1
  228. package/dist/index.js +20 -10
  229. package/dist/index.js.map +1 -1
  230. package/dist/jobs/definition.d.ts.map +1 -0
  231. package/dist/jobs/definition.js.map +1 -0
  232. package/dist/jobs/index.d.ts.map +1 -0
  233. package/dist/jobs/index.js.map +1 -0
  234. package/dist/jobs/internal.d.ts.map +1 -0
  235. package/dist/jobs/internal.js.map +1 -0
  236. package/dist/jobs/job.d.ts +149 -0
  237. package/dist/jobs/job.d.ts.map +1 -0
  238. package/dist/jobs/job.js +387 -0
  239. package/dist/jobs/job.js.map +1 -0
  240. package/dist/jobs/persisted.d.ts +38 -0
  241. package/dist/jobs/persisted.d.ts.map +1 -0
  242. package/dist/jobs/persisted.js.map +1 -0
  243. package/dist/jobs/records.d.ts +231 -0
  244. package/dist/jobs/records.d.ts.map +1 -0
  245. package/dist/jobs/records.js +871 -0
  246. package/dist/jobs/records.js.map +1 -0
  247. package/dist/jobs/run-states.d.ts +69 -0
  248. package/dist/jobs/run-states.d.ts.map +1 -0
  249. package/dist/jobs/run-states.js +228 -0
  250. package/dist/jobs/run-states.js.map +1 -0
  251. package/dist/jobs/run.d.ts +117 -0
  252. package/dist/jobs/run.d.ts.map +1 -0
  253. package/dist/jobs/run.js +204 -0
  254. package/dist/jobs/run.js.map +1 -0
  255. package/dist/jobs/running.d.ts +44 -0
  256. package/dist/jobs/running.d.ts.map +1 -0
  257. package/dist/jobs/running.js.map +1 -0
  258. package/dist/jobs/stored.d.ts +63 -0
  259. package/dist/jobs/stored.d.ts.map +1 -0
  260. package/dist/jobs/stored.js.map +1 -0
  261. package/dist/link/binary.d.ts.map +1 -0
  262. package/dist/link/binary.js +544 -0
  263. package/dist/link/binary.js.map +1 -0
  264. package/dist/link/channel.d.ts +68 -0
  265. package/dist/link/channel.d.ts.map +1 -0
  266. package/dist/link/channel.js +215 -0
  267. package/dist/link/channel.js.map +1 -0
  268. package/dist/link/errors.d.ts.map +1 -0
  269. package/dist/link/errors.js.map +1 -0
  270. package/dist/link/index.d.ts.map +1 -0
  271. package/dist/link/index.js.map +1 -0
  272. package/dist/link/internal.d.ts.map +1 -0
  273. package/dist/link/internal.js.map +1 -0
  274. package/dist/link/ipc.d.ts.map +1 -0
  275. package/dist/link/ipc.js.map +1 -0
  276. package/dist/link/link.d.ts.map +1 -0
  277. package/dist/link/link.js.map +1 -0
  278. package/dist/link/message.d.ts +262 -0
  279. package/dist/link/message.d.ts.map +1 -0
  280. package/dist/link/message.js +156 -0
  281. package/dist/link/message.js.map +1 -0
  282. package/dist/link/part.d.ts +80 -0
  283. package/dist/link/part.d.ts.map +1 -0
  284. package/dist/link/part.js +165 -0
  285. package/dist/link/part.js.map +1 -0
  286. package/dist/link/text.d.ts.map +1 -0
  287. package/dist/link/text.js +355 -0
  288. package/dist/link/text.js.map +1 -0
  289. package/dist/link/values.d.ts.map +1 -0
  290. package/dist/link/values.js +121 -0
  291. package/dist/link/values.js.map +1 -0
  292. package/dist/link/websocket.d.ts.map +1 -0
  293. package/dist/link/websocket.js.map +1 -0
  294. package/dist/node/app/app.d.ts +269 -0
  295. package/dist/node/app/app.d.ts.map +1 -0
  296. package/dist/node/app/app.js +513 -0
  297. package/dist/node/app/app.js.map +1 -0
  298. package/dist/node/app/archive.d.ts +37 -0
  299. package/dist/node/app/archive.d.ts.map +1 -0
  300. package/dist/node/app/archive.js +204 -0
  301. package/dist/node/app/archive.js.map +1 -0
  302. package/dist/node/app/blobs.d.ts +23 -0
  303. package/dist/node/app/blobs.d.ts.map +1 -0
  304. package/dist/node/app/blobs.js +64 -0
  305. package/dist/node/app/blobs.js.map +1 -0
  306. package/dist/node/app/data.d.ts +35 -0
  307. package/dist/node/app/data.d.ts.map +1 -0
  308. package/dist/node/app/data.js +44 -0
  309. package/dist/node/app/data.js.map +1 -0
  310. package/dist/node/app/ephemeral-sessions.d.ts +20 -0
  311. package/dist/node/app/ephemeral-sessions.d.ts.map +1 -0
  312. package/dist/node/app/ephemeral-sessions.js +69 -0
  313. package/dist/node/app/ephemeral-sessions.js.map +1 -0
  314. package/dist/node/app/ephemeral.d.ts +11 -0
  315. package/dist/node/app/ephemeral.d.ts.map +1 -0
  316. package/dist/node/app/ephemeral.js +34 -0
  317. package/dist/node/app/ephemeral.js.map +1 -0
  318. package/dist/node/app/files-copy.d.ts +13 -0
  319. package/dist/node/app/files-copy.d.ts.map +1 -0
  320. package/dist/node/app/files-copy.js +86 -0
  321. package/dist/node/app/files-copy.js.map +1 -0
  322. package/dist/node/app/files-entry.d.ts +4 -0
  323. package/dist/node/app/files-entry.d.ts.map +1 -0
  324. package/dist/node/app/files-entry.js +7 -0
  325. package/dist/node/app/files-entry.js.map +1 -0
  326. package/dist/node/app/files-index.d.ts +180 -0
  327. package/dist/node/app/files-index.d.ts.map +1 -0
  328. package/dist/node/app/files-index.js +535 -0
  329. package/dist/node/app/files-index.js.map +1 -0
  330. package/dist/node/app/files.d.ts +363 -0
  331. package/dist/node/app/files.d.ts.map +1 -0
  332. package/dist/node/app/files.js +368 -0
  333. package/dist/node/app/files.js.map +1 -0
  334. package/dist/node/app/folder-views.d.ts +21 -0
  335. package/dist/node/app/folder-views.d.ts.map +1 -0
  336. package/dist/node/app/folder-views.js +55 -0
  337. package/dist/node/app/folder-views.js.map +1 -0
  338. package/dist/node/app/index.d.ts +12 -0
  339. package/dist/node/app/index.d.ts.map +1 -0
  340. package/dist/node/app/index.js +15 -0
  341. package/dist/node/app/index.js.map +1 -0
  342. package/dist/node/app/info.d.ts +66 -0
  343. package/dist/node/app/info.d.ts.map +1 -0
  344. package/dist/node/app/info.js +37 -0
  345. package/dist/node/app/info.js.map +1 -0
  346. package/dist/node/app/invite.d.ts +5 -0
  347. package/dist/node/app/invite.d.ts.map +1 -0
  348. package/dist/node/app/invite.js +64 -0
  349. package/dist/node/app/invite.js.map +1 -0
  350. package/dist/node/app/layout.d.ts +36 -0
  351. package/dist/node/app/layout.d.ts.map +1 -0
  352. package/dist/node/app/layout.js +87 -0
  353. package/dist/node/app/layout.js.map +1 -0
  354. package/dist/node/app/owner.d.ts +31 -0
  355. package/dist/node/app/owner.d.ts.map +1 -0
  356. package/dist/node/app/owner.js +104 -0
  357. package/dist/node/app/owner.js.map +1 -0
  358. package/dist/node/app/pairing.d.ts +55 -0
  359. package/dist/node/app/pairing.d.ts.map +1 -0
  360. package/dist/node/app/pairing.js +183 -0
  361. package/dist/node/app/pairing.js.map +1 -0
  362. package/dist/node/app/secrets.d.ts +16 -0
  363. package/dist/node/app/secrets.d.ts.map +1 -0
  364. package/dist/node/app/secrets.js +72 -0
  365. package/dist/node/app/secrets.js.map +1 -0
  366. package/dist/node/app/sessions.d.ts +72 -0
  367. package/dist/node/app/sessions.d.ts.map +1 -0
  368. package/dist/node/app/sessions.js +222 -0
  369. package/dist/node/app/sessions.js.map +1 -0
  370. package/dist/node/app/tar.d.ts +24 -0
  371. package/dist/node/app/tar.d.ts.map +1 -0
  372. package/dist/node/app/tar.js +167 -0
  373. package/dist/node/app/tar.js.map +1 -0
  374. package/dist/node/app/uploads.d.ts +37 -0
  375. package/dist/node/app/uploads.d.ts.map +1 -0
  376. package/dist/node/app/uploads.js +157 -0
  377. package/dist/node/app/uploads.js.map +1 -0
  378. package/dist/node/app/users.d.ts +37 -0
  379. package/dist/node/app/users.d.ts.map +1 -0
  380. package/dist/node/app/users.js +62 -0
  381. package/dist/node/app/users.js.map +1 -0
  382. package/dist/node/app/worker.d.ts +18 -0
  383. package/dist/node/app/worker.d.ts.map +1 -0
  384. package/dist/node/app/worker.js +84 -0
  385. package/dist/node/app/worker.js.map +1 -0
  386. package/dist/node/compression.d.ts +7 -0
  387. package/dist/node/compression.d.ts.map +1 -0
  388. package/dist/node/compression.js +25 -0
  389. package/dist/node/compression.js.map +1 -0
  390. package/dist/node/http/admission.d.ts.map +1 -0
  391. package/dist/node/http/admission.js.map +1 -0
  392. package/dist/node/http/authenticate.d.ts +21 -0
  393. package/dist/node/http/authenticate.d.ts.map +1 -0
  394. package/dist/node/http/authenticate.js +34 -0
  395. package/dist/node/http/authenticate.js.map +1 -0
  396. package/dist/node/http/cookies.d.ts +32 -0
  397. package/dist/node/http/cookies.d.ts.map +1 -0
  398. package/dist/node/http/cookies.js +70 -0
  399. package/dist/node/http/cookies.js.map +1 -0
  400. package/dist/node/http/file.d.ts.map +1 -0
  401. package/dist/node/http/file.js.map +1 -0
  402. package/dist/node/http/headers.d.ts.map +1 -0
  403. package/dist/node/http/headers.js +136 -0
  404. package/dist/node/http/headers.js.map +1 -0
  405. package/dist/node/http/http.d.ts +111 -0
  406. package/dist/node/http/http.d.ts.map +1 -0
  407. package/dist/node/http/http.js +524 -0
  408. package/dist/node/http/http.js.map +1 -0
  409. package/dist/node/http/incoming.d.ts.map +1 -0
  410. package/dist/node/http/incoming.js.map +1 -0
  411. package/dist/node/http/index.d.ts +11 -0
  412. package/dist/node/http/index.d.ts.map +1 -0
  413. package/dist/node/http/index.js +12 -0
  414. package/dist/node/http/index.js.map +1 -0
  415. package/dist/node/http/node.d.ts.map +1 -0
  416. package/dist/node/http/node.js.map +1 -0
  417. package/dist/node/http/request.d.ts +60 -0
  418. package/dist/node/http/request.d.ts.map +1 -0
  419. package/dist/node/http/request.js +118 -0
  420. package/dist/node/http/request.js.map +1 -0
  421. package/dist/node/http/response.d.ts +63 -0
  422. package/dist/node/http/response.d.ts.map +1 -0
  423. package/dist/node/http/response.js.map +1 -0
  424. package/dist/node/http/router.d.ts +132 -0
  425. package/dist/node/http/router.d.ts.map +1 -0
  426. package/dist/node/http/router.js +267 -0
  427. package/dist/node/http/router.js.map +1 -0
  428. package/dist/node/http/upgrades.d.ts +61 -0
  429. package/dist/node/http/upgrades.d.ts.map +1 -0
  430. package/dist/node/http/upgrades.js +192 -0
  431. package/dist/node/http/upgrades.js.map +1 -0
  432. package/dist/node/plugins/base-inputs.d.ts +14 -0
  433. package/dist/node/plugins/base-inputs.d.ts.map +1 -0
  434. package/dist/node/plugins/base-inputs.js +33 -0
  435. package/dist/node/plugins/base-inputs.js.map +1 -0
  436. package/dist/node/plugins/build.d.ts +77 -0
  437. package/dist/node/plugins/build.d.ts.map +1 -0
  438. package/dist/node/plugins/build.js +576 -0
  439. package/dist/node/plugins/build.js.map +1 -0
  440. package/dist/node/plugins/css-modules.d.ts +13 -0
  441. package/dist/node/plugins/css-modules.d.ts.map +1 -0
  442. package/dist/node/plugins/css-modules.js +58 -0
  443. package/dist/node/plugins/css-modules.js.map +1 -0
  444. package/dist/node/plugins/discover.d.ts +67 -0
  445. package/dist/node/plugins/discover.d.ts.map +1 -0
  446. package/dist/node/plugins/discover.js +369 -0
  447. package/dist/node/plugins/discover.js.map +1 -0
  448. package/dist/node/plugins/evaluate.d.ts +33 -0
  449. package/dist/node/plugins/evaluate.d.ts.map +1 -0
  450. package/dist/node/plugins/evaluate.js +121 -0
  451. package/dist/node/plugins/evaluate.js.map +1 -0
  452. package/dist/node/plugins/index.d.ts +11 -0
  453. package/dist/node/plugins/index.d.ts.map +1 -0
  454. package/dist/node/plugins/index.js +13 -0
  455. package/dist/node/plugins/index.js.map +1 -0
  456. package/dist/node/plugins/install.d.ts +38 -0
  457. package/dist/node/plugins/install.d.ts.map +1 -0
  458. package/dist/node/plugins/install.js +213 -0
  459. package/dist/node/plugins/install.js.map +1 -0
  460. package/dist/node/plugins/plugins.d.ts +162 -0
  461. package/dist/node/plugins/plugins.d.ts.map +1 -0
  462. package/dist/node/plugins/plugins.js +244 -0
  463. package/dist/node/plugins/plugins.js.map +1 -0
  464. package/dist/node/plugins/runtime.d.ts +57 -0
  465. package/dist/node/plugins/runtime.d.ts.map +1 -0
  466. package/dist/node/plugins/runtime.js +92 -0
  467. package/dist/node/plugins/runtime.js.map +1 -0
  468. package/dist/node/plugins/stack.d.ts.map +1 -0
  469. package/dist/node/plugins/stack.js.map +1 -0
  470. package/dist/node/plugins/testing.d.ts +58 -0
  471. package/dist/node/plugins/testing.d.ts.map +1 -0
  472. package/dist/node/plugins/testing.js +210 -0
  473. package/dist/node/plugins/testing.js.map +1 -0
  474. package/dist/node/plugins/watcher.d.ts +69 -0
  475. package/dist/node/plugins/watcher.d.ts.map +1 -0
  476. package/dist/node/plugins/watcher.js +622 -0
  477. package/dist/node/plugins/watcher.js.map +1 -0
  478. package/dist/node/surfaces/bundle.d.ts +31 -0
  479. package/dist/node/surfaces/bundle.d.ts.map +1 -0
  480. package/dist/node/surfaces/bundle.js +118 -0
  481. package/dist/node/surfaces/bundle.js.map +1 -0
  482. package/dist/node/surfaces/current.d.ts +17 -0
  483. package/dist/node/surfaces/current.d.ts.map +1 -0
  484. package/dist/node/surfaces/current.js +54 -0
  485. package/dist/node/surfaces/current.js.map +1 -0
  486. package/dist/node/surfaces/index.d.ts +6 -0
  487. package/dist/node/surfaces/index.d.ts.map +1 -0
  488. package/dist/node/surfaces/index.js +6 -0
  489. package/dist/node/surfaces/index.js.map +1 -0
  490. package/dist/node/surfaces/published.d.ts +27 -0
  491. package/dist/node/surfaces/published.d.ts.map +1 -0
  492. package/dist/node/surfaces/published.js +142 -0
  493. package/dist/node/surfaces/published.js.map +1 -0
  494. package/dist/node/surfaces/served.d.ts +15 -0
  495. package/dist/node/surfaces/served.d.ts.map +1 -0
  496. package/dist/node/surfaces/served.js +42 -0
  497. package/dist/node/surfaces/served.js.map +1 -0
  498. package/dist/node/surfaces/surface-build.d.ts +53 -0
  499. package/dist/node/surfaces/surface-build.d.ts.map +1 -0
  500. package/dist/node/surfaces/surface-build.js +105 -0
  501. package/dist/node/surfaces/surface-build.js.map +1 -0
  502. package/dist/node/surfaces/tui.d.ts +40 -0
  503. package/dist/node/surfaces/tui.d.ts.map +1 -0
  504. package/dist/node/surfaces/tui.js +55 -0
  505. package/dist/node/surfaces/tui.js.map +1 -0
  506. package/dist/node/surfaces/web.d.ts +56 -0
  507. package/dist/node/surfaces/web.d.ts.map +1 -0
  508. package/dist/node/surfaces/web.js +108 -0
  509. package/dist/node/surfaces/web.js.map +1 -0
  510. package/dist/node/tui/actions.d.ts +49 -0
  511. package/dist/node/tui/actions.d.ts.map +1 -0
  512. package/dist/node/tui/actions.js +195 -0
  513. package/dist/node/tui/actions.js.map +1 -0
  514. package/dist/node/tui/credentials.d.ts +17 -0
  515. package/dist/node/tui/credentials.d.ts.map +1 -0
  516. package/dist/node/tui/credentials.js +54 -0
  517. package/dist/node/tui/credentials.js.map +1 -0
  518. package/dist/node/tui/filter.d.ts +5 -0
  519. package/dist/node/tui/filter.d.ts.map +1 -0
  520. package/dist/node/tui/filter.js +79 -0
  521. package/dist/node/tui/filter.js.map +1 -0
  522. package/dist/node/tui/index.d.ts +6 -0
  523. package/dist/node/tui/index.d.ts.map +1 -0
  524. package/dist/node/tui/index.js +6 -0
  525. package/dist/node/tui/index.js.map +1 -0
  526. package/dist/node/tui/launcher.d.ts +40 -0
  527. package/dist/node/tui/launcher.d.ts.map +1 -0
  528. package/dist/node/tui/launcher.js +439 -0
  529. package/dist/node/tui/launcher.js.map +1 -0
  530. package/dist/node/tui/pipe.d.ts +18 -0
  531. package/dist/node/tui/pipe.d.ts.map +1 -0
  532. package/dist/node/tui/pipe.js +134 -0
  533. package/dist/node/tui/pipe.js.map +1 -0
  534. package/dist/node/tui/sandbox.d.ts +54 -0
  535. package/dist/node/tui/sandbox.d.ts.map +1 -0
  536. package/dist/node/tui/sandbox.js +431 -0
  537. package/dist/node/tui/sandbox.js.map +1 -0
  538. package/dist/node/workers/base.d.ts +30 -0
  539. package/dist/node/workers/base.d.ts.map +1 -0
  540. package/dist/node/workers/base.js +255 -0
  541. package/dist/node/workers/base.js.map +1 -0
  542. package/dist/node/workers/child.d.ts +4 -0
  543. package/dist/node/workers/child.d.ts.map +1 -0
  544. package/dist/node/workers/child.js +6 -0
  545. package/dist/node/workers/child.js.map +1 -0
  546. package/dist/node/workers/control.d.ts +83 -0
  547. package/dist/node/workers/control.d.ts.map +1 -0
  548. package/dist/node/workers/control.js +77 -0
  549. package/dist/node/workers/control.js.map +1 -0
  550. package/dist/node/workers/index.d.ts +4 -0
  551. package/dist/node/workers/index.d.ts.map +1 -0
  552. package/dist/node/workers/index.js +7 -0
  553. package/dist/node/workers/index.js.map +1 -0
  554. package/dist/node/workers/lock.d.ts +30 -0
  555. package/dist/node/workers/lock.d.ts.map +1 -0
  556. package/dist/node/workers/lock.js +180 -0
  557. package/dist/node/workers/lock.js.map +1 -0
  558. package/dist/node/workers/main.d.ts +46 -0
  559. package/dist/node/workers/main.d.ts.map +1 -0
  560. package/dist/node/workers/main.js +230 -0
  561. package/dist/node/workers/main.js.map +1 -0
  562. package/dist/node/workers/process.d.ts +42 -0
  563. package/dist/node/workers/process.d.ts.map +1 -0
  564. package/dist/node/workers/process.js +125 -0
  565. package/dist/node/workers/process.js.map +1 -0
  566. package/dist/node/workers/workers.d.ts +122 -0
  567. package/dist/node/workers/workers.d.ts.map +1 -0
  568. package/dist/node/workers/workers.js +677 -0
  569. package/dist/node/workers/workers.js.map +1 -0
  570. package/dist/react/hooks.d.ts +43 -0
  571. package/dist/react/hooks.d.ts.map +1 -0
  572. package/dist/react/hooks.js +82 -0
  573. package/dist/react/hooks.js.map +1 -0
  574. package/dist/react/index.d.ts +3 -0
  575. package/dist/react/index.d.ts.map +1 -0
  576. package/dist/react/index.js +4 -0
  577. package/dist/react/index.js.map +1 -0
  578. package/dist/react/stores.d.ts +9 -0
  579. package/dist/react/stores.d.ts.map +1 -0
  580. package/dist/react/stores.js +37 -0
  581. package/dist/react/stores.js.map +1 -0
  582. package/dist/registries/contribution.d.ts.map +1 -0
  583. package/dist/registries/contribution.js.map +1 -0
  584. package/dist/registries/entries.d.ts.map +1 -0
  585. package/dist/registries/entries.js.map +1 -0
  586. package/dist/registries/index.d.ts.map +1 -0
  587. package/dist/registries/index.js.map +1 -0
  588. package/dist/registries/internal.d.ts.map +1 -0
  589. package/dist/registries/internal.js.map +1 -0
  590. package/dist/registries/record.d.ts +115 -0
  591. package/dist/registries/record.d.ts.map +1 -0
  592. package/dist/registries/record.js +283 -0
  593. package/dist/registries/record.js.map +1 -0
  594. package/dist/registries/registry.d.ts +74 -0
  595. package/dist/registries/registry.d.ts.map +1 -0
  596. package/dist/registries/registry.js.map +1 -0
  597. package/dist/registries/value.d.ts.map +1 -0
  598. package/dist/registries/value.js +224 -0
  599. package/dist/registries/value.js.map +1 -0
  600. package/dist/remote/calls.d.ts.map +1 -0
  601. package/dist/remote/calls.js.map +1 -0
  602. package/dist/remote/consumer.d.ts +43 -0
  603. package/dist/remote/consumer.d.ts.map +1 -0
  604. package/dist/remote/consumer.js +350 -0
  605. package/dist/remote/consumer.js.map +1 -0
  606. package/dist/remote/hold.d.ts +141 -0
  607. package/dist/remote/hold.d.ts.map +1 -0
  608. package/dist/remote/hold.js +579 -0
  609. package/dist/remote/hold.js.map +1 -0
  610. package/dist/remote/host-link.d.ts +77 -0
  611. package/dist/remote/host-link.d.ts.map +1 -0
  612. package/dist/remote/host-link.js +184 -0
  613. package/dist/remote/host-link.js.map +1 -0
  614. package/dist/remote/internal.d.ts.map +1 -0
  615. package/dist/remote/internal.js.map +1 -0
  616. package/dist/remote/path.d.ts.map +1 -0
  617. package/dist/remote/path.js.map +1 -0
  618. package/dist/remote/provider.d.ts +89 -0
  619. package/dist/remote/provider.d.ts.map +1 -0
  620. package/dist/remote/provider.js +597 -0
  621. package/dist/remote/provider.js.map +1 -0
  622. package/dist/remote/relay.d.ts +69 -0
  623. package/dist/remote/relay.d.ts.map +1 -0
  624. package/dist/remote/relay.js +219 -0
  625. package/dist/remote/relay.js.map +1 -0
  626. package/dist/remote/remote-object.d.ts +138 -0
  627. package/dist/remote/remote-object.d.ts.map +1 -0
  628. package/dist/remote/remote-object.js +492 -0
  629. package/dist/remote/remote-object.js.map +1 -0
  630. package/dist/remote/replica.d.ts +59 -0
  631. package/dist/remote/replica.d.ts.map +1 -0
  632. package/dist/remote/replica.js +125 -0
  633. package/dist/remote/replica.js.map +1 -0
  634. package/dist/sqlite/node.d.ts +9 -1
  635. package/dist/sqlite/node.d.ts.map +1 -1
  636. package/dist/sqlite/node.js +9 -3
  637. package/dist/sqlite/node.js.map +1 -1
  638. package/dist/state/batch.d.ts +64 -0
  639. package/dist/state/batch.d.ts.map +1 -0
  640. package/dist/state/batch.js +164 -0
  641. package/dist/state/batch.js.map +1 -0
  642. package/dist/state/derive.d.ts +52 -0
  643. package/dist/state/derive.d.ts.map +1 -0
  644. package/dist/state/derive.js +182 -0
  645. package/dist/state/derive.js.map +1 -0
  646. package/dist/state/index.d.ts +6 -0
  647. package/dist/state/index.d.ts.map +1 -0
  648. package/dist/state/index.js.map +1 -0
  649. package/dist/state/internal.d.ts.map +1 -0
  650. package/dist/state/internal.js.map +1 -0
  651. package/dist/state/native-source.d.ts +106 -0
  652. package/dist/state/native-source.d.ts.map +1 -0
  653. package/dist/state/native-source.js +240 -0
  654. package/dist/state/native-source.js.map +1 -0
  655. package/dist/state/watchable.d.ts +114 -0
  656. package/dist/state/watchable.d.ts.map +1 -0
  657. package/dist/state/watchable.js +156 -0
  658. package/dist/state/watchable.js.map +1 -0
  659. package/dist/state/writable.d.ts +32 -0
  660. package/dist/state/writable.d.ts.map +1 -0
  661. package/dist/state/writable.js.map +1 -0
  662. package/dist/store/adapter.d.ts +67 -0
  663. package/dist/store/adapter.d.ts.map +1 -0
  664. package/dist/store/adapter.js.map +1 -0
  665. package/dist/store/allocator.d.ts.map +1 -0
  666. package/dist/store/allocator.js.map +1 -0
  667. package/dist/store/applier.d.ts.map +1 -0
  668. package/dist/store/applier.js.map +1 -0
  669. package/dist/store/apply-batch.d.ts +12 -0
  670. package/dist/store/apply-batch.d.ts.map +1 -0
  671. package/dist/store/apply-batch.js.map +1 -0
  672. package/dist/store/archive.d.ts +32 -0
  673. package/dist/store/archive.d.ts.map +1 -0
  674. package/dist/store/archive.js +130 -0
  675. package/dist/store/archive.js.map +1 -0
  676. package/dist/store/backend.d.ts +10 -0
  677. package/dist/store/backend.d.ts.map +1 -0
  678. package/dist/store/backend.js.map +1 -0
  679. package/dist/store/catalog.d.ts +24 -0
  680. package/dist/store/catalog.d.ts.map +1 -0
  681. package/dist/store/catalog.js.map +1 -0
  682. package/dist/store/claims.d.ts.map +1 -0
  683. package/dist/store/claims.js.map +1 -0
  684. package/dist/store/columns.d.ts.map +1 -0
  685. package/dist/store/columns.js.map +1 -0
  686. package/dist/store/engine.d.ts +176 -0
  687. package/dist/store/engine.d.ts.map +1 -0
  688. package/dist/store/engine.js +283 -0
  689. package/dist/store/engine.js.map +1 -0
  690. package/dist/store/evaluate.d.ts +17 -0
  691. package/dist/store/evaluate.d.ts.map +1 -0
  692. package/dist/store/evaluate.js.map +1 -0
  693. package/dist/store/export.d.ts +17 -0
  694. package/dist/store/export.d.ts.map +1 -0
  695. package/dist/store/export.js +200 -0
  696. package/dist/store/export.js.map +1 -0
  697. package/dist/store/expression.d.ts +150 -0
  698. package/dist/store/expression.d.ts.map +1 -0
  699. package/dist/store/expression.js.map +1 -0
  700. package/dist/store/import.d.ts +10 -0
  701. package/dist/store/import.d.ts.map +1 -0
  702. package/dist/store/import.js +276 -0
  703. package/dist/store/import.js.map +1 -0
  704. package/dist/store/index.d.ts.map +1 -0
  705. package/dist/store/index.js.map +1 -0
  706. package/dist/store/json-column.d.ts +33 -0
  707. package/dist/store/json-column.d.ts.map +1 -0
  708. package/dist/store/json-column.js +62 -0
  709. package/dist/store/json-column.js.map +1 -0
  710. package/dist/store/jsonl.d.ts.map +1 -0
  711. package/dist/store/jsonl.js.map +1 -0
  712. package/dist/store/live-query.d.ts +108 -0
  713. package/dist/store/live-query.d.ts.map +1 -0
  714. package/dist/store/live-query.js +254 -0
  715. package/dist/store/live-query.js.map +1 -0
  716. package/dist/store/outbox.d.ts +26 -0
  717. package/dist/store/outbox.d.ts.map +1 -0
  718. package/dist/store/outbox.js.map +1 -0
  719. package/dist/store/query.d.ts +39 -0
  720. package/dist/store/query.d.ts.map +1 -0
  721. package/dist/store/query.js.map +1 -0
  722. package/dist/store/refusal.d.ts.map +1 -0
  723. package/dist/store/refusal.js.map +1 -0
  724. package/dist/store/rows.d.ts +80 -0
  725. package/dist/store/rows.d.ts.map +1 -0
  726. package/dist/store/rows.js.map +1 -0
  727. package/dist/store/schema.d.ts +25 -0
  728. package/dist/store/schema.d.ts.map +1 -0
  729. package/dist/store/schema.js +115 -0
  730. package/dist/store/schema.js.map +1 -0
  731. package/dist/store/sql.d.ts +73 -0
  732. package/dist/store/sql.d.ts.map +1 -0
  733. package/dist/store/sql.js.map +1 -0
  734. package/dist/store/step.d.ts +50 -0
  735. package/dist/store/step.d.ts.map +1 -0
  736. package/dist/store/step.js +52 -0
  737. package/dist/store/step.js.map +1 -0
  738. package/dist/store/store.d.ts +171 -0
  739. package/dist/store/store.d.ts.map +1 -0
  740. package/dist/store/store.js +818 -0
  741. package/dist/store/store.js.map +1 -0
  742. package/dist/store/table-changes.d.ts +29 -0
  743. package/dist/store/table-changes.d.ts.map +1 -0
  744. package/dist/store/table-changes.js.map +1 -0
  745. package/dist/store/table-evolve.d.ts.map +1 -0
  746. package/dist/store/table-evolve.js.map +1 -0
  747. package/dist/store/table-handle.d.ts +73 -0
  748. package/dist/store/table-handle.d.ts.map +1 -0
  749. package/dist/store/table-handle.js +101 -0
  750. package/dist/store/table-handle.js.map +1 -0
  751. package/dist/store/table-history.d.ts.map +1 -0
  752. package/dist/store/table-history.js.map +1 -0
  753. package/dist/store/table-migration.d.ts +16 -0
  754. package/dist/store/table-migration.d.ts.map +1 -0
  755. package/dist/store/table-migration.js +202 -0
  756. package/dist/store/table-migration.js.map +1 -0
  757. package/dist/store/table-writes.d.ts.map +1 -0
  758. package/dist/store/table-writes.js +170 -0
  759. package/dist/store/table-writes.js.map +1 -0
  760. package/dist/store/table.d.ts +80 -0
  761. package/dist/store/table.d.ts.map +1 -0
  762. package/dist/store/table.js.map +1 -0
  763. package/dist/store/text.d.ts.map +1 -0
  764. package/dist/store/text.js.map +1 -0
  765. package/dist/store/writes.d.ts.map +1 -0
  766. package/dist/store/writes.js.map +1 -0
  767. package/dist/surfaces/active-language.d.ts +20 -0
  768. package/dist/surfaces/active-language.d.ts.map +1 -0
  769. package/dist/surfaces/active-language.js +78 -0
  770. package/dist/surfaces/active-language.js.map +1 -0
  771. package/dist/surfaces/active-theme.d.ts +16 -0
  772. package/dist/surfaces/active-theme.d.ts.map +1 -0
  773. package/dist/surfaces/active-theme.js +47 -0
  774. package/dist/surfaces/active-theme.js.map +1 -0
  775. package/dist/surfaces/client.d.ts +96 -0
  776. package/dist/surfaces/client.d.ts.map +1 -0
  777. package/dist/surfaces/client.js +264 -0
  778. package/dist/surfaces/client.js.map +1 -0
  779. package/dist/surfaces/connection.d.ts +49 -0
  780. package/dist/surfaces/connection.d.ts.map +1 -0
  781. package/dist/surfaces/connection.js +142 -0
  782. package/dist/surfaces/connection.js.map +1 -0
  783. package/dist/surfaces/format.d.ts +5 -0
  784. package/dist/surfaces/format.d.ts.map +1 -0
  785. package/dist/surfaces/format.js +37 -0
  786. package/dist/surfaces/format.js.map +1 -0
  787. package/dist/surfaces/index.d.ts +15 -0
  788. package/dist/surfaces/index.d.ts.map +1 -0
  789. package/dist/surfaces/index.js +18 -0
  790. package/dist/surfaces/index.js.map +1 -0
  791. package/dist/surfaces/language.d.ts +53 -0
  792. package/dist/surfaces/language.d.ts.map +1 -0
  793. package/dist/surfaces/language.js +74 -0
  794. package/dist/surfaces/language.js.map +1 -0
  795. package/dist/surfaces/loaded.d.ts +42 -0
  796. package/dist/surfaces/loaded.d.ts.map +1 -0
  797. package/dist/surfaces/loaded.js +116 -0
  798. package/dist/surfaces/loaded.js.map +1 -0
  799. package/dist/surfaces/locale-choice.d.ts +25 -0
  800. package/dist/surfaces/locale-choice.d.ts.map +1 -0
  801. package/dist/surfaces/locale-choice.js +14 -0
  802. package/dist/surfaces/locale-choice.js.map +1 -0
  803. package/dist/surfaces/messages.d.ts +67 -0
  804. package/dist/surfaces/messages.d.ts.map +1 -0
  805. package/dist/surfaces/messages.js +112 -0
  806. package/dist/surfaces/messages.js.map +1 -0
  807. package/dist/surfaces/page-state.d.ts +14 -0
  808. package/dist/surfaces/page-state.d.ts.map +1 -0
  809. package/dist/surfaces/page-state.js +43 -0
  810. package/dist/surfaces/page-state.js.map +1 -0
  811. package/dist/surfaces/preference.d.ts +32 -0
  812. package/dist/surfaces/preference.d.ts.map +1 -0
  813. package/dist/surfaces/preference.js +72 -0
  814. package/dist/surfaces/preference.js.map +1 -0
  815. package/dist/surfaces/registered.d.ts +33 -0
  816. package/dist/surfaces/registered.d.ts.map +1 -0
  817. package/dist/surfaces/registered.js +51 -0
  818. package/dist/surfaces/registered.js.map +1 -0
  819. package/dist/surfaces/scripts.d.ts +84 -0
  820. package/dist/surfaces/scripts.d.ts.map +1 -0
  821. package/dist/surfaces/scripts.js +28 -0
  822. package/dist/surfaces/scripts.js.map +1 -0
  823. package/dist/surfaces/theme-choice.d.ts +31 -0
  824. package/dist/surfaces/theme-choice.d.ts.map +1 -0
  825. package/dist/surfaces/theme-choice.js +18 -0
  826. package/dist/surfaces/theme-choice.js.map +1 -0
  827. package/dist/surfaces/themes.d.ts +43 -0
  828. package/dist/surfaces/themes.d.ts.map +1 -0
  829. package/dist/surfaces/themes.js +110 -0
  830. package/dist/surfaces/themes.js.map +1 -0
  831. package/dist/surfaces/translations.d.ts +29 -0
  832. package/dist/surfaces/translations.d.ts.map +1 -0
  833. package/dist/surfaces/translations.js +57 -0
  834. package/dist/surfaces/translations.js.map +1 -0
  835. package/dist/sync/batch.d.ts +18 -0
  836. package/dist/sync/batch.d.ts.map +1 -0
  837. package/dist/sync/batch.js +125 -0
  838. package/dist/sync/batch.js.map +1 -0
  839. package/dist/sync/client.d.ts +166 -0
  840. package/dist/sync/client.d.ts.map +1 -0
  841. package/dist/sync/client.js +438 -0
  842. package/dist/sync/client.js.map +1 -0
  843. package/dist/sync/files.d.ts +46 -0
  844. package/dist/sync/files.d.ts.map +1 -0
  845. package/dist/sync/files.js +13 -0
  846. package/dist/sync/files.js.map +1 -0
  847. package/dist/sync/filesystem.d.ts +37 -0
  848. package/dist/sync/filesystem.d.ts.map +1 -0
  849. package/dist/sync/filesystem.js +185 -0
  850. package/dist/sync/filesystem.js.map +1 -0
  851. package/dist/sync/index.d.ts +8 -0
  852. package/dist/sync/index.d.ts.map +1 -0
  853. package/dist/sync/index.js +9 -0
  854. package/dist/sync/index.js.map +1 -0
  855. package/dist/sync/lines.d.ts +18 -0
  856. package/dist/sync/lines.d.ts.map +1 -0
  857. package/dist/sync/lines.js +46 -0
  858. package/dist/sync/lines.js.map +1 -0
  859. package/dist/sync/remote.d.ts +130 -0
  860. package/dist/sync/remote.d.ts.map +1 -0
  861. package/dist/sync/remote.js +46 -0
  862. package/dist/sync/remote.js.map +1 -0
  863. package/dist/sync/state.d.ts +17 -0
  864. package/dist/sync/state.d.ts.map +1 -0
  865. package/dist/sync/state.js +40 -0
  866. package/dist/sync/state.js.map +1 -0
  867. package/dist/telemetry-ingest/batch.d.ts +70 -0
  868. package/dist/telemetry-ingest/batch.d.ts.map +1 -0
  869. package/dist/telemetry-ingest/batch.js +110 -0
  870. package/dist/telemetry-ingest/batch.js.map +1 -0
  871. package/dist/telemetry-ingest/facet.d.ts +21 -0
  872. package/dist/telemetry-ingest/facet.d.ts.map +1 -0
  873. package/dist/telemetry-ingest/facet.js +96 -0
  874. package/dist/telemetry-ingest/facet.js.map +1 -0
  875. package/dist/telemetry-ingest/index.d.ts +5 -0
  876. package/dist/telemetry-ingest/index.d.ts.map +1 -0
  877. package/dist/telemetry-ingest/index.js +8 -0
  878. package/dist/telemetry-ingest/index.js.map +1 -0
  879. package/dist/telemetry-ingest/recorder.d.ts +50 -0
  880. package/dist/telemetry-ingest/recorder.d.ts.map +1 -0
  881. package/dist/telemetry-ingest/recorder.js +298 -0
  882. package/dist/telemetry-ingest/recorder.js.map +1 -0
  883. package/dist/telemetry-ingest/sender.d.ts +14 -0
  884. package/dist/telemetry-ingest/sender.d.ts.map +1 -0
  885. package/dist/telemetry-ingest/sender.js +64 -0
  886. package/dist/telemetry-ingest/sender.js.map +1 -0
  887. package/dist/telemetry-sqlite/index.d.ts +13 -4
  888. package/dist/telemetry-sqlite/index.d.ts.map +1 -1
  889. package/dist/telemetry-sqlite/index.js +81 -241
  890. package/dist/telemetry-sqlite/index.js.map +1 -1
  891. package/dist/telemetry-sqlite/node.d.ts +13 -0
  892. package/dist/telemetry-sqlite/node.d.ts.map +1 -0
  893. package/dist/telemetry-sqlite/node.js +27 -0
  894. package/dist/telemetry-sqlite/node.js.map +1 -0
  895. package/dist/telemetry-sqlite/schema.d.ts +9 -0
  896. package/dist/telemetry-sqlite/schema.d.ts.map +1 -0
  897. package/dist/telemetry-sqlite/schema.js +61 -0
  898. package/dist/telemetry-sqlite/schema.js.map +1 -0
  899. package/dist/telemetry-sqlite/store.d.ts +3 -0
  900. package/dist/telemetry-sqlite/store.d.ts.map +1 -1
  901. package/dist/telemetry-sqlite/store.js +24 -13
  902. package/dist/telemetry-sqlite/store.js.map +1 -1
  903. package/dist/telemetry.d.ts +937 -0
  904. package/dist/telemetry.d.ts.map +1 -0
  905. package/dist/telemetry.js +470 -0
  906. package/dist/telemetry.js.map +1 -0
  907. package/dist/tui/bridge.d.ts +112 -0
  908. package/dist/tui/bridge.d.ts.map +1 -0
  909. package/dist/tui/bridge.js +9 -0
  910. package/dist/tui/bridge.js.map +1 -0
  911. package/dist/tui/channel.d.ts +44 -0
  912. package/dist/tui/channel.d.ts.map +1 -0
  913. package/dist/tui/channel.js +150 -0
  914. package/dist/tui/channel.js.map +1 -0
  915. package/dist/tui/frames.d.ts +5 -0
  916. package/dist/tui/frames.d.ts.map +1 -0
  917. package/dist/tui/frames.js +52 -0
  918. package/dist/tui/frames.js.map +1 -0
  919. package/dist/tui/index.d.ts +7 -0
  920. package/dist/tui/index.d.ts.map +1 -0
  921. package/dist/tui/index.js +8 -0
  922. package/dist/tui/index.js.map +1 -0
  923. package/dist/tui/runtime.d.ts +46 -0
  924. package/dist/tui/runtime.d.ts.map +1 -0
  925. package/dist/tui/runtime.js +101 -0
  926. package/dist/tui/runtime.js.map +1 -0
  927. package/dist/tui/scope.d.ts +46 -0
  928. package/dist/tui/scope.d.ts.map +1 -0
  929. package/dist/tui/scope.js +141 -0
  930. package/dist/tui/scope.js.map +1 -0
  931. package/dist/tui/terminal.d.ts +15 -0
  932. package/dist/tui/terminal.d.ts.map +1 -0
  933. package/dist/tui/terminal.js +37 -0
  934. package/dist/tui/terminal.js.map +1 -0
  935. package/dist/tui/theme.d.ts +17 -0
  936. package/dist/tui/theme.d.ts.map +1 -0
  937. package/dist/tui/theme.js +38 -0
  938. package/dist/tui/theme.js.map +1 -0
  939. package/dist/web/environment.d.ts +4 -0
  940. package/dist/web/environment.d.ts.map +1 -0
  941. package/dist/web/environment.js +37 -0
  942. package/dist/web/environment.js.map +1 -0
  943. package/dist/web/index.d.ts +5 -0
  944. package/dist/web/index.d.ts.map +1 -0
  945. package/dist/web/index.js +7 -0
  946. package/dist/web/index.js.map +1 -0
  947. package/dist/web/language.d.ts +7 -0
  948. package/dist/web/language.d.ts.map +1 -0
  949. package/dist/web/language.js +21 -0
  950. package/dist/web/language.js.map +1 -0
  951. package/dist/web/page.d.ts +29 -0
  952. package/dist/web/page.d.ts.map +1 -0
  953. package/dist/web/page.js +92 -0
  954. package/dist/web/page.js.map +1 -0
  955. package/dist/web/scripts.d.ts +23 -0
  956. package/dist/web/scripts.d.ts.map +1 -0
  957. package/dist/web/scripts.js +50 -0
  958. package/dist/web/scripts.js.map +1 -0
  959. package/dist/web/styles.d.ts +17 -0
  960. package/dist/web/styles.d.ts.map +1 -0
  961. package/dist/web/styles.js +218 -0
  962. package/dist/web/styles.js.map +1 -0
  963. package/dist/web/themes.d.ts +6 -0
  964. package/dist/web/themes.d.ts.map +1 -0
  965. package/dist/web/themes.js +31 -0
  966. package/dist/web/themes.js.map +1 -0
  967. package/docs/benchmarks.md +1036 -0
  968. package/docs/decisions.md +3436 -0
  969. package/docs/dependencies/book.md +1671 -0
  970. package/docs/dependencies/index.html +2641 -0
  971. package/docs/design.md +3065 -0
  972. package/docs/durable-observers/book.md +432 -0
  973. package/docs/durable-observers/index.html +517 -0
  974. package/docs/guide-plugins-hosts/book.md +957 -0
  975. package/docs/guide-plugins-hosts/index.html +952 -0
  976. package/docs/http-workers/book.md +378 -0
  977. package/docs/http-workers/index.html +515 -0
  978. package/docs/i18n/book.md +217 -0
  979. package/docs/i18n/index.html +344 -0
  980. package/docs/layer-1.md +311 -0
  981. package/docs/layer-2.md +216 -0
  982. package/docs/p3-features/README.md +6 -0
  983. package/docs/p3-features/book.md +478 -0
  984. package/docs/plugin-authoring.md +276 -0
  985. package/docs/plugin-model/book.md +186 -0
  986. package/docs/plugin-model/index.html +310 -0
  987. package/docs/plugin-primer/book.md +273 -0
  988. package/docs/plugin-primer/index.html +430 -0
  989. package/docs/slice-1.md +236 -0
  990. package/docs/slice-10.md +288 -0
  991. package/docs/slice-11.md +114 -0
  992. package/docs/slice-12.md +132 -0
  993. package/docs/slice-13.md +121 -0
  994. package/docs/slice-2.md +174 -0
  995. package/docs/slice-3a.md +296 -0
  996. package/docs/slice-3b.md +197 -0
  997. package/docs/slice-4a.md +418 -0
  998. package/docs/slice-4b.md +208 -0
  999. package/docs/slice-6a.md +676 -0
  1000. package/docs/slice-6b.md +332 -0
  1001. package/docs/slice-7b/book.md +608 -0
  1002. package/docs/slice-7b/index.html +842 -0
  1003. package/docs/slice-7b.md +255 -0
  1004. package/docs/slice-7c.md +165 -0
  1005. package/docs/slice-9.md +110 -0
  1006. package/docs/slices.md +241 -0
  1007. package/docs/store/book.md +670 -0
  1008. package/docs/store/index.html +861 -0
  1009. package/docs/store/walkthrough.md +193 -0
  1010. package/docs/theming/book.md +223 -0
  1011. package/docs/theming/index.html +371 -0
  1012. package/docs/tutorial/book.md +2169 -0
  1013. package/docs/tutorial/index.html +2112 -0
  1014. package/docs/tutorial/screens/click-after.png +0 -0
  1015. package/docs/tutorial/screens/click-before.png +0 -0
  1016. package/docs/tutorial/screens/edited.png +0 -0
  1017. package/docs/tutorial/screens/french.png +0 -0
  1018. package/docs/tutorial/screens/harbor.png +0 -0
  1019. package/docs/tutorial/screens/page.png +0 -0
  1020. package/docs/tutorial/screens/traces-ada.png +0 -0
  1021. package/docs/tutorial/screens/traces.png +0 -0
  1022. package/package.json +99 -21
  1023. package/dist/cell.d.ts +0 -122
  1024. package/dist/cell.d.ts.map +0 -1
  1025. package/dist/cell.js +0 -356
  1026. package/dist/cell.js.map +0 -1
  1027. package/dist/cluster.d.ts +0 -27
  1028. package/dist/cluster.d.ts.map +0 -1
  1029. package/dist/cluster.js +0 -230
  1030. package/dist/cluster.js.map +0 -1
  1031. package/dist/connection.d.ts +0 -270
  1032. package/dist/connection.d.ts.map +0 -1
  1033. package/dist/connection.js +0 -1216
  1034. package/dist/connection.js.map +0 -1
  1035. package/dist/contract.d.ts +0 -207
  1036. package/dist/contract.d.ts.map +0 -1
  1037. package/dist/contract.js +0 -241
  1038. package/dist/contract.js.map +0 -1
  1039. package/dist/declare.d.ts +0 -33
  1040. package/dist/declare.d.ts.map +0 -1
  1041. package/dist/declare.js +0 -2
  1042. package/dist/declare.js.map +0 -1
  1043. package/dist/errors.d.ts +0 -28
  1044. package/dist/errors.d.ts.map +0 -1
  1045. package/dist/errors.js +0 -59
  1046. package/dist/errors.js.map +0 -1
  1047. package/dist/host.d.ts +0 -348
  1048. package/dist/host.d.ts.map +0 -1
  1049. package/dist/host.js +0 -1002
  1050. package/dist/host.js.map +0 -1
  1051. package/dist/link.d.ts +0 -107
  1052. package/dist/link.d.ts.map +0 -1
  1053. package/dist/link.js +0 -355
  1054. package/dist/link.js.map +0 -1
  1055. package/dist/loader.d.ts +0 -4
  1056. package/dist/loader.d.ts.map +0 -1
  1057. package/dist/loader.js +0 -73
  1058. package/dist/loader.js.map +0 -1
  1059. package/dist/manager.d.ts +0 -115
  1060. package/dist/manager.d.ts.map +0 -1
  1061. package/dist/manager.js +0 -345
  1062. package/dist/manager.js.map +0 -1
  1063. package/dist/next/contracts/accepts.d.ts +0 -81
  1064. package/dist/next/contracts/accepts.d.ts.map +0 -1
  1065. package/dist/next/contracts/accepts.js.map +0 -1
  1066. package/dist/next/contracts/contract.d.ts +0 -121
  1067. package/dist/next/contracts/contract.d.ts.map +0 -1
  1068. package/dist/next/contracts/contract.js.map +0 -1
  1069. package/dist/next/contracts/declare.d.ts.map +0 -1
  1070. package/dist/next/contracts/declare.js.map +0 -1
  1071. package/dist/next/contracts/evolve.d.ts.map +0 -1
  1072. package/dist/next/contracts/evolve.js.map +0 -1
  1073. package/dist/next/contracts/fingerprint.d.ts +0 -16
  1074. package/dist/next/contracts/fingerprint.d.ts.map +0 -1
  1075. package/dist/next/contracts/fingerprint.js.map +0 -1
  1076. package/dist/next/contracts/history.d.ts.map +0 -1
  1077. package/dist/next/contracts/history.js.map +0 -1
  1078. package/dist/next/contracts/host-kind.d.ts.map +0 -1
  1079. package/dist/next/contracts/host-kind.js.map +0 -1
  1080. package/dist/next/contracts/index.d.ts.map +0 -1
  1081. package/dist/next/contracts/index.js.map +0 -1
  1082. package/dist/next/contracts/internal.d.ts.map +0 -1
  1083. package/dist/next/contracts/internal.js.map +0 -1
  1084. package/dist/next/contracts/names.d.ts.map +0 -1
  1085. package/dist/next/contracts/names.js.map +0 -1
  1086. package/dist/next/contracts/params.d.ts +0 -28
  1087. package/dist/next/contracts/params.d.ts.map +0 -1
  1088. package/dist/next/contracts/params.js.map +0 -1
  1089. package/dist/next/contracts/schema.d.ts.map +0 -1
  1090. package/dist/next/contracts/schema.js.map +0 -1
  1091. package/dist/next/contracts/snapshot.d.ts +0 -16
  1092. package/dist/next/contracts/snapshot.d.ts.map +0 -1
  1093. package/dist/next/contracts/snapshot.js +0 -167
  1094. package/dist/next/contracts/snapshot.js.map +0 -1
  1095. package/dist/next/data/args.d.ts +0 -50
  1096. package/dist/next/data/args.d.ts.map +0 -1
  1097. package/dist/next/data/args.js.map +0 -1
  1098. package/dist/next/data/errors.d.ts +0 -73
  1099. package/dist/next/data/errors.d.ts.map +0 -1
  1100. package/dist/next/data/errors.js +0 -107
  1101. package/dist/next/data/errors.js.map +0 -1
  1102. package/dist/next/data/failure.d.ts.map +0 -1
  1103. package/dist/next/data/failure.js +0 -72
  1104. package/dist/next/data/failure.js.map +0 -1
  1105. package/dist/next/data/index.d.ts +0 -4
  1106. package/dist/next/data/index.d.ts.map +0 -1
  1107. package/dist/next/data/index.js +0 -4
  1108. package/dist/next/data/index.js.map +0 -1
  1109. package/dist/next/data/internal.d.ts +0 -7
  1110. package/dist/next/data/internal.d.ts.map +0 -1
  1111. package/dist/next/data/internal.js +0 -8
  1112. package/dist/next/data/internal.js.map +0 -1
  1113. package/dist/next/data/params.d.ts +0 -20
  1114. package/dist/next/data/params.d.ts.map +0 -1
  1115. package/dist/next/data/params.js.map +0 -1
  1116. package/dist/next/data/principal.d.ts +0 -17
  1117. package/dist/next/data/principal.d.ts.map +0 -1
  1118. package/dist/next/data/principal.js +0 -41
  1119. package/dist/next/data/principal.js.map +0 -1
  1120. package/dist/next/data/validator.d.ts +0 -12
  1121. package/dist/next/data/validator.d.ts.map +0 -1
  1122. package/dist/next/data/validator.js +0 -34
  1123. package/dist/next/data/validator.js.map +0 -1
  1124. package/dist/next/documents/address-source.d.ts +0 -20
  1125. package/dist/next/documents/address-source.d.ts.map +0 -1
  1126. package/dist/next/documents/address-source.js.map +0 -1
  1127. package/dist/next/documents/definition.d.ts +0 -84
  1128. package/dist/next/documents/definition.d.ts.map +0 -1
  1129. package/dist/next/documents/definition.js +0 -73
  1130. package/dist/next/documents/definition.js.map +0 -1
  1131. package/dist/next/documents/documents.d.ts +0 -106
  1132. package/dist/next/documents/documents.d.ts.map +0 -1
  1133. package/dist/next/documents/documents.js +0 -224
  1134. package/dist/next/documents/documents.js.map +0 -1
  1135. package/dist/next/documents/fence.d.ts.map +0 -1
  1136. package/dist/next/documents/fence.js.map +0 -1
  1137. package/dist/next/documents/handles.d.ts +0 -76
  1138. package/dist/next/documents/handles.d.ts.map +0 -1
  1139. package/dist/next/documents/handles.js.map +0 -1
  1140. package/dist/next/documents/index.d.ts.map +0 -1
  1141. package/dist/next/documents/index.js.map +0 -1
  1142. package/dist/next/documents/internal.d.ts +0 -9
  1143. package/dist/next/documents/internal.d.ts.map +0 -1
  1144. package/dist/next/documents/internal.js.map +0 -1
  1145. package/dist/next/documents/keyed-slot.d.ts +0 -103
  1146. package/dist/next/documents/keyed-slot.d.ts.map +0 -1
  1147. package/dist/next/documents/keyed-slot.js +0 -395
  1148. package/dist/next/documents/keyed-slot.js.map +0 -1
  1149. package/dist/next/documents/line.d.ts.map +0 -1
  1150. package/dist/next/documents/line.js.map +0 -1
  1151. package/dist/next/documents/persistence.d.ts +0 -104
  1152. package/dist/next/documents/persistence.d.ts.map +0 -1
  1153. package/dist/next/documents/persistence.js +0 -128
  1154. package/dist/next/documents/persistence.js.map +0 -1
  1155. package/dist/next/documents/residency.d.ts +0 -31
  1156. package/dist/next/documents/residency.d.ts.map +0 -1
  1157. package/dist/next/documents/residency.js.map +0 -1
  1158. package/dist/next/documents/slot.d.ts +0 -109
  1159. package/dist/next/documents/slot.d.ts.map +0 -1
  1160. package/dist/next/documents/slot.js +0 -181
  1161. package/dist/next/documents/slot.js.map +0 -1
  1162. package/dist/next/documents/transaction.d.ts +0 -133
  1163. package/dist/next/documents/transaction.d.ts.map +0 -1
  1164. package/dist/next/documents/transaction.js +0 -409
  1165. package/dist/next/documents/transaction.js.map +0 -1
  1166. package/dist/next/host/activity.d.ts +0 -31
  1167. package/dist/next/host/activity.d.ts.map +0 -1
  1168. package/dist/next/host/activity.js +0 -40
  1169. package/dist/next/host/activity.js.map +0 -1
  1170. package/dist/next/host/adapted.d.ts +0 -49
  1171. package/dist/next/host/adapted.d.ts.map +0 -1
  1172. package/dist/next/host/adapted.js.map +0 -1
  1173. package/dist/next/host/attempt.d.ts +0 -278
  1174. package/dist/next/host/attempt.d.ts.map +0 -1
  1175. package/dist/next/host/attempt.js +0 -1072
  1176. package/dist/next/host/attempt.js.map +0 -1
  1177. package/dist/next/host/backoff.d.ts.map +0 -1
  1178. package/dist/next/host/backoff.js.map +0 -1
  1179. package/dist/next/host/ctx.d.ts +0 -47
  1180. package/dist/next/host/ctx.d.ts.map +0 -1
  1181. package/dist/next/host/ctx.js +0 -108
  1182. package/dist/next/host/ctx.js.map +0 -1
  1183. package/dist/next/host/deadline.d.ts.map +0 -1
  1184. package/dist/next/host/deadline.js.map +0 -1
  1185. package/dist/next/host/dependencies.d.ts.map +0 -1
  1186. package/dist/next/host/dependencies.js.map +0 -1
  1187. package/dist/next/host/destination.d.ts +0 -48
  1188. package/dist/next/host/destination.d.ts.map +0 -1
  1189. package/dist/next/host/destination.js.map +0 -1
  1190. package/dist/next/host/facet.d.ts +0 -79
  1191. package/dist/next/host/facet.d.ts.map +0 -1
  1192. package/dist/next/host/facet.js.map +0 -1
  1193. package/dist/next/host/follow.d.ts +0 -52
  1194. package/dist/next/host/follow.d.ts.map +0 -1
  1195. package/dist/next/host/follow.js.map +0 -1
  1196. package/dist/next/host/host.d.ts +0 -495
  1197. package/dist/next/host/host.d.ts.map +0 -1
  1198. package/dist/next/host/host.js +0 -1075
  1199. package/dist/next/host/host.js.map +0 -1
  1200. package/dist/next/host/index.d.ts +0 -17
  1201. package/dist/next/host/index.d.ts.map +0 -1
  1202. package/dist/next/host/index.js.map +0 -1
  1203. package/dist/next/host/internal.d.ts +0 -10
  1204. package/dist/next/host/internal.d.ts.map +0 -1
  1205. package/dist/next/host/internal.js +0 -8
  1206. package/dist/next/host/internal.js.map +0 -1
  1207. package/dist/next/host/members.d.ts +0 -50
  1208. package/dist/next/host/members.d.ts.map +0 -1
  1209. package/dist/next/host/members.js.map +0 -1
  1210. package/dist/next/host/native.d.ts +0 -55
  1211. package/dist/next/host/native.d.ts.map +0 -1
  1212. package/dist/next/host/native.js +0 -92
  1213. package/dist/next/host/native.js.map +0 -1
  1214. package/dist/next/host/object.d.ts +0 -290
  1215. package/dist/next/host/object.d.ts.map +0 -1
  1216. package/dist/next/host/object.js +0 -1127
  1217. package/dist/next/host/object.js.map +0 -1
  1218. package/dist/next/host/parked.d.ts +0 -23
  1219. package/dist/next/host/parked.d.ts.map +0 -1
  1220. package/dist/next/host/parked.js.map +0 -1
  1221. package/dist/next/host/presence.d.ts +0 -34
  1222. package/dist/next/host/presence.d.ts.map +0 -1
  1223. package/dist/next/host/presence.js.map +0 -1
  1224. package/dist/next/host/ref-state.d.ts +0 -53
  1225. package/dist/next/host/ref-state.d.ts.map +0 -1
  1226. package/dist/next/host/ref-state.js +0 -83
  1227. package/dist/next/host/ref-state.js.map +0 -1
  1228. package/dist/next/host/reference-keys.d.ts +0 -36
  1229. package/dist/next/host/reference-keys.d.ts.map +0 -1
  1230. package/dist/next/host/reference-keys.js +0 -168
  1231. package/dist/next/host/reference-keys.js.map +0 -1
  1232. package/dist/next/host/reference-source.d.ts +0 -65
  1233. package/dist/next/host/reference-source.d.ts.map +0 -1
  1234. package/dist/next/host/reference-source.js +0 -285
  1235. package/dist/next/host/reference-source.js.map +0 -1
  1236. package/dist/next/host/reference.d.ts +0 -308
  1237. package/dist/next/host/reference.d.ts.map +0 -1
  1238. package/dist/next/host/reference.js +0 -775
  1239. package/dist/next/host/reference.js.map +0 -1
  1240. package/dist/next/host/retry-on.d.ts.map +0 -1
  1241. package/dist/next/host/retry-on.js.map +0 -1
  1242. package/dist/next/host/revocation.d.ts +0 -16
  1243. package/dist/next/host/revocation.d.ts.map +0 -1
  1244. package/dist/next/host/revocation.js.map +0 -1
  1245. package/dist/next/host/root.d.ts +0 -27
  1246. package/dist/next/host/root.d.ts.map +0 -1
  1247. package/dist/next/host/root.js +0 -68
  1248. package/dist/next/host/root.js.map +0 -1
  1249. package/dist/next/host/route.d.ts +0 -64
  1250. package/dist/next/host/route.d.ts.map +0 -1
  1251. package/dist/next/host/route.js +0 -190
  1252. package/dist/next/host/route.js.map +0 -1
  1253. package/dist/next/host/routines.d.ts +0 -76
  1254. package/dist/next/host/routines.d.ts.map +0 -1
  1255. package/dist/next/host/routines.js +0 -350
  1256. package/dist/next/host/routines.js.map +0 -1
  1257. package/dist/next/host/sleep.d.ts +0 -9
  1258. package/dist/next/host/sleep.d.ts.map +0 -1
  1259. package/dist/next/host/sleep.js.map +0 -1
  1260. package/dist/next/host/staging.d.ts +0 -94
  1261. package/dist/next/host/staging.d.ts.map +0 -1
  1262. package/dist/next/host/staging.js +0 -302
  1263. package/dist/next/host/staging.js.map +0 -1
  1264. package/dist/next/host/unbound.d.ts +0 -30
  1265. package/dist/next/host/unbound.d.ts.map +0 -1
  1266. package/dist/next/host/unbound.js +0 -67
  1267. package/dist/next/host/unbound.js.map +0 -1
  1268. package/dist/next/host/uuid.d.ts.map +0 -1
  1269. package/dist/next/host/uuid.js.map +0 -1
  1270. package/dist/next/index.d.ts +0 -28
  1271. package/dist/next/index.d.ts.map +0 -1
  1272. package/dist/next/index.js +0 -18
  1273. package/dist/next/index.js.map +0 -1
  1274. package/dist/next/jobs/definition.d.ts.map +0 -1
  1275. package/dist/next/jobs/definition.js.map +0 -1
  1276. package/dist/next/jobs/index.d.ts.map +0 -1
  1277. package/dist/next/jobs/index.js.map +0 -1
  1278. package/dist/next/jobs/internal.d.ts.map +0 -1
  1279. package/dist/next/jobs/internal.js.map +0 -1
  1280. package/dist/next/jobs/job.d.ts +0 -152
  1281. package/dist/next/jobs/job.d.ts.map +0 -1
  1282. package/dist/next/jobs/job.js +0 -320
  1283. package/dist/next/jobs/job.js.map +0 -1
  1284. package/dist/next/jobs/persisted.d.ts +0 -38
  1285. package/dist/next/jobs/persisted.d.ts.map +0 -1
  1286. package/dist/next/jobs/persisted.js.map +0 -1
  1287. package/dist/next/jobs/records.d.ts +0 -231
  1288. package/dist/next/jobs/records.d.ts.map +0 -1
  1289. package/dist/next/jobs/records.js +0 -869
  1290. package/dist/next/jobs/records.js.map +0 -1
  1291. package/dist/next/jobs/run-states.d.ts +0 -69
  1292. package/dist/next/jobs/run-states.d.ts.map +0 -1
  1293. package/dist/next/jobs/run-states.js +0 -228
  1294. package/dist/next/jobs/run-states.js.map +0 -1
  1295. package/dist/next/jobs/run.d.ts +0 -113
  1296. package/dist/next/jobs/run.d.ts.map +0 -1
  1297. package/dist/next/jobs/run.js +0 -200
  1298. package/dist/next/jobs/run.js.map +0 -1
  1299. package/dist/next/jobs/running.d.ts +0 -44
  1300. package/dist/next/jobs/running.d.ts.map +0 -1
  1301. package/dist/next/jobs/running.js.map +0 -1
  1302. package/dist/next/jobs/stored.d.ts +0 -63
  1303. package/dist/next/jobs/stored.d.ts.map +0 -1
  1304. package/dist/next/jobs/stored.js.map +0 -1
  1305. package/dist/next/link/binary.d.ts.map +0 -1
  1306. package/dist/next/link/binary.js +0 -534
  1307. package/dist/next/link/binary.js.map +0 -1
  1308. package/dist/next/link/channel.d.ts +0 -63
  1309. package/dist/next/link/channel.d.ts.map +0 -1
  1310. package/dist/next/link/channel.js +0 -202
  1311. package/dist/next/link/channel.js.map +0 -1
  1312. package/dist/next/link/errors.d.ts.map +0 -1
  1313. package/dist/next/link/errors.js.map +0 -1
  1314. package/dist/next/link/index.d.ts.map +0 -1
  1315. package/dist/next/link/index.js.map +0 -1
  1316. package/dist/next/link/internal.d.ts.map +0 -1
  1317. package/dist/next/link/internal.js.map +0 -1
  1318. package/dist/next/link/ipc.d.ts.map +0 -1
  1319. package/dist/next/link/ipc.js.map +0 -1
  1320. package/dist/next/link/link.d.ts.map +0 -1
  1321. package/dist/next/link/link.js.map +0 -1
  1322. package/dist/next/link/message.d.ts +0 -249
  1323. package/dist/next/link/message.d.ts.map +0 -1
  1324. package/dist/next/link/message.js +0 -123
  1325. package/dist/next/link/message.js.map +0 -1
  1326. package/dist/next/link/part.d.ts +0 -80
  1327. package/dist/next/link/part.d.ts.map +0 -1
  1328. package/dist/next/link/part.js +0 -164
  1329. package/dist/next/link/part.js.map +0 -1
  1330. package/dist/next/link/text.d.ts.map +0 -1
  1331. package/dist/next/link/text.js +0 -335
  1332. package/dist/next/link/text.js.map +0 -1
  1333. package/dist/next/link/values.d.ts.map +0 -1
  1334. package/dist/next/link/values.js +0 -117
  1335. package/dist/next/link/values.js.map +0 -1
  1336. package/dist/next/link/websocket.d.ts.map +0 -1
  1337. package/dist/next/link/websocket.js.map +0 -1
  1338. package/dist/next/registries/contribution.d.ts.map +0 -1
  1339. package/dist/next/registries/contribution.js.map +0 -1
  1340. package/dist/next/registries/entries.d.ts.map +0 -1
  1341. package/dist/next/registries/entries.js.map +0 -1
  1342. package/dist/next/registries/index.d.ts.map +0 -1
  1343. package/dist/next/registries/index.js.map +0 -1
  1344. package/dist/next/registries/internal.d.ts.map +0 -1
  1345. package/dist/next/registries/internal.js.map +0 -1
  1346. package/dist/next/registries/record.d.ts +0 -94
  1347. package/dist/next/registries/record.d.ts.map +0 -1
  1348. package/dist/next/registries/record.js +0 -253
  1349. package/dist/next/registries/record.js.map +0 -1
  1350. package/dist/next/registries/registry.d.ts +0 -74
  1351. package/dist/next/registries/registry.d.ts.map +0 -1
  1352. package/dist/next/registries/registry.js.map +0 -1
  1353. package/dist/next/registries/value.d.ts.map +0 -1
  1354. package/dist/next/registries/value.js +0 -199
  1355. package/dist/next/registries/value.js.map +0 -1
  1356. package/dist/next/remote/calls.d.ts.map +0 -1
  1357. package/dist/next/remote/calls.js.map +0 -1
  1358. package/dist/next/remote/consumer.d.ts +0 -42
  1359. package/dist/next/remote/consumer.d.ts.map +0 -1
  1360. package/dist/next/remote/consumer.js +0 -343
  1361. package/dist/next/remote/consumer.js.map +0 -1
  1362. package/dist/next/remote/hold.d.ts +0 -130
  1363. package/dist/next/remote/hold.d.ts.map +0 -1
  1364. package/dist/next/remote/hold.js +0 -537
  1365. package/dist/next/remote/hold.js.map +0 -1
  1366. package/dist/next/remote/host-link.d.ts +0 -77
  1367. package/dist/next/remote/host-link.d.ts.map +0 -1
  1368. package/dist/next/remote/host-link.js +0 -182
  1369. package/dist/next/remote/host-link.js.map +0 -1
  1370. package/dist/next/remote/internal.d.ts.map +0 -1
  1371. package/dist/next/remote/internal.js.map +0 -1
  1372. package/dist/next/remote/path.d.ts.map +0 -1
  1373. package/dist/next/remote/path.js.map +0 -1
  1374. package/dist/next/remote/provider.d.ts +0 -76
  1375. package/dist/next/remote/provider.d.ts.map +0 -1
  1376. package/dist/next/remote/provider.js +0 -506
  1377. package/dist/next/remote/provider.js.map +0 -1
  1378. package/dist/next/remote/relay.d.ts +0 -58
  1379. package/dist/next/remote/relay.d.ts.map +0 -1
  1380. package/dist/next/remote/relay.js +0 -117
  1381. package/dist/next/remote/relay.js.map +0 -1
  1382. package/dist/next/remote/remote-object.d.ts +0 -133
  1383. package/dist/next/remote/remote-object.d.ts.map +0 -1
  1384. package/dist/next/remote/remote-object.js +0 -411
  1385. package/dist/next/remote/remote-object.js.map +0 -1
  1386. package/dist/next/remote/replica.d.ts +0 -59
  1387. package/dist/next/remote/replica.d.ts.map +0 -1
  1388. package/dist/next/remote/replica.js +0 -125
  1389. package/dist/next/remote/replica.js.map +0 -1
  1390. package/dist/next/state/batch.d.ts +0 -64
  1391. package/dist/next/state/batch.d.ts.map +0 -1
  1392. package/dist/next/state/batch.js +0 -163
  1393. package/dist/next/state/batch.js.map +0 -1
  1394. package/dist/next/state/derive.d.ts +0 -52
  1395. package/dist/next/state/derive.d.ts.map +0 -1
  1396. package/dist/next/state/derive.js +0 -182
  1397. package/dist/next/state/derive.js.map +0 -1
  1398. package/dist/next/state/index.d.ts +0 -6
  1399. package/dist/next/state/index.d.ts.map +0 -1
  1400. package/dist/next/state/index.js.map +0 -1
  1401. package/dist/next/state/internal.d.ts.map +0 -1
  1402. package/dist/next/state/internal.js.map +0 -1
  1403. package/dist/next/state/native-source.d.ts +0 -106
  1404. package/dist/next/state/native-source.d.ts.map +0 -1
  1405. package/dist/next/state/native-source.js +0 -240
  1406. package/dist/next/state/native-source.js.map +0 -1
  1407. package/dist/next/state/watchable.d.ts +0 -114
  1408. package/dist/next/state/watchable.d.ts.map +0 -1
  1409. package/dist/next/state/watchable.js +0 -156
  1410. package/dist/next/state/watchable.js.map +0 -1
  1411. package/dist/next/state/writable.d.ts +0 -32
  1412. package/dist/next/state/writable.d.ts.map +0 -1
  1413. package/dist/next/state/writable.js.map +0 -1
  1414. package/dist/next/store/adapter.d.ts +0 -67
  1415. package/dist/next/store/adapter.d.ts.map +0 -1
  1416. package/dist/next/store/adapter.js.map +0 -1
  1417. package/dist/next/store/allocator.d.ts.map +0 -1
  1418. package/dist/next/store/allocator.js.map +0 -1
  1419. package/dist/next/store/applier.d.ts.map +0 -1
  1420. package/dist/next/store/applier.js.map +0 -1
  1421. package/dist/next/store/apply-batch.d.ts +0 -12
  1422. package/dist/next/store/apply-batch.d.ts.map +0 -1
  1423. package/dist/next/store/apply-batch.js.map +0 -1
  1424. package/dist/next/store/archive.d.ts +0 -32
  1425. package/dist/next/store/archive.d.ts.map +0 -1
  1426. package/dist/next/store/archive.js +0 -129
  1427. package/dist/next/store/archive.js.map +0 -1
  1428. package/dist/next/store/backend.d.ts +0 -10
  1429. package/dist/next/store/backend.d.ts.map +0 -1
  1430. package/dist/next/store/backend.js.map +0 -1
  1431. package/dist/next/store/catalog.d.ts +0 -24
  1432. package/dist/next/store/catalog.d.ts.map +0 -1
  1433. package/dist/next/store/catalog.js.map +0 -1
  1434. package/dist/next/store/claims.d.ts.map +0 -1
  1435. package/dist/next/store/claims.js.map +0 -1
  1436. package/dist/next/store/columns.d.ts.map +0 -1
  1437. package/dist/next/store/columns.js.map +0 -1
  1438. package/dist/next/store/engine.d.ts +0 -176
  1439. package/dist/next/store/engine.d.ts.map +0 -1
  1440. package/dist/next/store/engine.js +0 -283
  1441. package/dist/next/store/engine.js.map +0 -1
  1442. package/dist/next/store/evaluate.d.ts +0 -17
  1443. package/dist/next/store/evaluate.d.ts.map +0 -1
  1444. package/dist/next/store/evaluate.js.map +0 -1
  1445. package/dist/next/store/export.d.ts +0 -17
  1446. package/dist/next/store/export.d.ts.map +0 -1
  1447. package/dist/next/store/export.js +0 -200
  1448. package/dist/next/store/export.js.map +0 -1
  1449. package/dist/next/store/expression.d.ts +0 -150
  1450. package/dist/next/store/expression.d.ts.map +0 -1
  1451. package/dist/next/store/expression.js.map +0 -1
  1452. package/dist/next/store/import.d.ts +0 -10
  1453. package/dist/next/store/import.d.ts.map +0 -1
  1454. package/dist/next/store/import.js +0 -276
  1455. package/dist/next/store/import.js.map +0 -1
  1456. package/dist/next/store/index.d.ts.map +0 -1
  1457. package/dist/next/store/index.js.map +0 -1
  1458. package/dist/next/store/json-column.d.ts +0 -33
  1459. package/dist/next/store/json-column.d.ts.map +0 -1
  1460. package/dist/next/store/json-column.js +0 -61
  1461. package/dist/next/store/json-column.js.map +0 -1
  1462. package/dist/next/store/jsonl.d.ts.map +0 -1
  1463. package/dist/next/store/jsonl.js.map +0 -1
  1464. package/dist/next/store/outbox.d.ts +0 -26
  1465. package/dist/next/store/outbox.d.ts.map +0 -1
  1466. package/dist/next/store/outbox.js.map +0 -1
  1467. package/dist/next/store/query.d.ts +0 -39
  1468. package/dist/next/store/query.d.ts.map +0 -1
  1469. package/dist/next/store/query.js.map +0 -1
  1470. package/dist/next/store/refusal.d.ts.map +0 -1
  1471. package/dist/next/store/refusal.js.map +0 -1
  1472. package/dist/next/store/rows.d.ts +0 -80
  1473. package/dist/next/store/rows.d.ts.map +0 -1
  1474. package/dist/next/store/rows.js.map +0 -1
  1475. package/dist/next/store/schema.d.ts +0 -25
  1476. package/dist/next/store/schema.d.ts.map +0 -1
  1477. package/dist/next/store/schema.js +0 -115
  1478. package/dist/next/store/schema.js.map +0 -1
  1479. package/dist/next/store/sql.d.ts +0 -73
  1480. package/dist/next/store/sql.d.ts.map +0 -1
  1481. package/dist/next/store/sql.js.map +0 -1
  1482. package/dist/next/store/step.d.ts +0 -48
  1483. package/dist/next/store/step.d.ts.map +0 -1
  1484. package/dist/next/store/step.js +0 -50
  1485. package/dist/next/store/step.js.map +0 -1
  1486. package/dist/next/store/store.d.ts +0 -161
  1487. package/dist/next/store/store.d.ts.map +0 -1
  1488. package/dist/next/store/store.js +0 -627
  1489. package/dist/next/store/store.js.map +0 -1
  1490. package/dist/next/store/table-changes.d.ts +0 -29
  1491. package/dist/next/store/table-changes.d.ts.map +0 -1
  1492. package/dist/next/store/table-changes.js.map +0 -1
  1493. package/dist/next/store/table-evolve.d.ts.map +0 -1
  1494. package/dist/next/store/table-evolve.js.map +0 -1
  1495. package/dist/next/store/table-handle.d.ts +0 -67
  1496. package/dist/next/store/table-handle.d.ts.map +0 -1
  1497. package/dist/next/store/table-handle.js +0 -101
  1498. package/dist/next/store/table-handle.js.map +0 -1
  1499. package/dist/next/store/table-history.d.ts.map +0 -1
  1500. package/dist/next/store/table-history.js.map +0 -1
  1501. package/dist/next/store/table-migration.d.ts +0 -16
  1502. package/dist/next/store/table-migration.d.ts.map +0 -1
  1503. package/dist/next/store/table-migration.js +0 -202
  1504. package/dist/next/store/table-migration.js.map +0 -1
  1505. package/dist/next/store/table-writes.d.ts.map +0 -1
  1506. package/dist/next/store/table-writes.js +0 -165
  1507. package/dist/next/store/table-writes.js.map +0 -1
  1508. package/dist/next/store/table.d.ts +0 -80
  1509. package/dist/next/store/table.d.ts.map +0 -1
  1510. package/dist/next/store/table.js.map +0 -1
  1511. package/dist/next/store/text.d.ts.map +0 -1
  1512. package/dist/next/store/text.js.map +0 -1
  1513. package/dist/next/store/writes.d.ts.map +0 -1
  1514. package/dist/next/store/writes.js.map +0 -1
  1515. package/dist/next-node/compression.d.ts +0 -7
  1516. package/dist/next-node/compression.d.ts.map +0 -1
  1517. package/dist/next-node/compression.js +0 -24
  1518. package/dist/next-node/compression.js.map +0 -1
  1519. package/dist/next-node/http/admission.d.ts.map +0 -1
  1520. package/dist/next-node/http/admission.js.map +0 -1
  1521. package/dist/next-node/http/authenticate.d.ts +0 -21
  1522. package/dist/next-node/http/authenticate.d.ts.map +0 -1
  1523. package/dist/next-node/http/authenticate.js +0 -34
  1524. package/dist/next-node/http/authenticate.js.map +0 -1
  1525. package/dist/next-node/http/cookies.d.ts +0 -24
  1526. package/dist/next-node/http/cookies.d.ts.map +0 -1
  1527. package/dist/next-node/http/cookies.js +0 -62
  1528. package/dist/next-node/http/cookies.js.map +0 -1
  1529. package/dist/next-node/http/file.d.ts.map +0 -1
  1530. package/dist/next-node/http/file.js.map +0 -1
  1531. package/dist/next-node/http/headers.d.ts.map +0 -1
  1532. package/dist/next-node/http/headers.js +0 -129
  1533. package/dist/next-node/http/headers.js.map +0 -1
  1534. package/dist/next-node/http/http.d.ts +0 -100
  1535. package/dist/next-node/http/http.d.ts.map +0 -1
  1536. package/dist/next-node/http/http.js +0 -462
  1537. package/dist/next-node/http/http.js.map +0 -1
  1538. package/dist/next-node/http/incoming.d.ts.map +0 -1
  1539. package/dist/next-node/http/incoming.js.map +0 -1
  1540. package/dist/next-node/http/index.d.ts +0 -11
  1541. package/dist/next-node/http/index.d.ts.map +0 -1
  1542. package/dist/next-node/http/index.js +0 -12
  1543. package/dist/next-node/http/index.js.map +0 -1
  1544. package/dist/next-node/http/node.d.ts.map +0 -1
  1545. package/dist/next-node/http/node.js.map +0 -1
  1546. package/dist/next-node/http/request.d.ts +0 -54
  1547. package/dist/next-node/http/request.d.ts.map +0 -1
  1548. package/dist/next-node/http/request.js +0 -116
  1549. package/dist/next-node/http/request.js.map +0 -1
  1550. package/dist/next-node/http/response.d.ts +0 -63
  1551. package/dist/next-node/http/response.d.ts.map +0 -1
  1552. package/dist/next-node/http/response.js.map +0 -1
  1553. package/dist/next-node/http/router.d.ts +0 -114
  1554. package/dist/next-node/http/router.d.ts.map +0 -1
  1555. package/dist/next-node/http/router.js +0 -261
  1556. package/dist/next-node/http/router.js.map +0 -1
  1557. package/dist/next-node/http/upgrades.d.ts +0 -58
  1558. package/dist/next-node/http/upgrades.d.ts.map +0 -1
  1559. package/dist/next-node/http/upgrades.js +0 -184
  1560. package/dist/next-node/http/upgrades.js.map +0 -1
  1561. package/dist/next-node/plugins/build.d.ts +0 -57
  1562. package/dist/next-node/plugins/build.d.ts.map +0 -1
  1563. package/dist/next-node/plugins/build.js +0 -334
  1564. package/dist/next-node/plugins/build.js.map +0 -1
  1565. package/dist/next-node/plugins/discover.d.ts +0 -36
  1566. package/dist/next-node/plugins/discover.d.ts.map +0 -1
  1567. package/dist/next-node/plugins/discover.js +0 -91
  1568. package/dist/next-node/plugins/discover.js.map +0 -1
  1569. package/dist/next-node/plugins/evaluate.d.ts +0 -33
  1570. package/dist/next-node/plugins/evaluate.d.ts.map +0 -1
  1571. package/dist/next-node/plugins/evaluate.js +0 -98
  1572. package/dist/next-node/plugins/evaluate.js.map +0 -1
  1573. package/dist/next-node/plugins/index.d.ts +0 -9
  1574. package/dist/next-node/plugins/index.d.ts.map +0 -1
  1575. package/dist/next-node/plugins/index.js +0 -11
  1576. package/dist/next-node/plugins/index.js.map +0 -1
  1577. package/dist/next-node/plugins/install.d.ts +0 -13
  1578. package/dist/next-node/plugins/install.d.ts.map +0 -1
  1579. package/dist/next-node/plugins/install.js +0 -37
  1580. package/dist/next-node/plugins/install.js.map +0 -1
  1581. package/dist/next-node/plugins/plugins.d.ts +0 -135
  1582. package/dist/next-node/plugins/plugins.d.ts.map +0 -1
  1583. package/dist/next-node/plugins/plugins.js +0 -206
  1584. package/dist/next-node/plugins/plugins.js.map +0 -1
  1585. package/dist/next-node/plugins/runtime.d.ts +0 -41
  1586. package/dist/next-node/plugins/runtime.d.ts.map +0 -1
  1587. package/dist/next-node/plugins/runtime.js +0 -136
  1588. package/dist/next-node/plugins/runtime.js.map +0 -1
  1589. package/dist/next-node/plugins/stack.d.ts.map +0 -1
  1590. package/dist/next-node/plugins/stack.js.map +0 -1
  1591. package/dist/next-node/plugins/watcher.d.ts +0 -58
  1592. package/dist/next-node/plugins/watcher.d.ts.map +0 -1
  1593. package/dist/next-node/plugins/watcher.js +0 -281
  1594. package/dist/next-node/plugins/watcher.js.map +0 -1
  1595. package/dist/next-node/workers/control.d.ts +0 -83
  1596. package/dist/next-node/workers/control.d.ts.map +0 -1
  1597. package/dist/next-node/workers/control.js +0 -77
  1598. package/dist/next-node/workers/control.js.map +0 -1
  1599. package/dist/next-node/workers/index.d.ts +0 -5
  1600. package/dist/next-node/workers/index.d.ts.map +0 -1
  1601. package/dist/next-node/workers/index.js +0 -7
  1602. package/dist/next-node/workers/index.js.map +0 -1
  1603. package/dist/next-node/workers/lock.d.ts +0 -21
  1604. package/dist/next-node/workers/lock.d.ts.map +0 -1
  1605. package/dist/next-node/workers/lock.js +0 -137
  1606. package/dist/next-node/workers/lock.js.map +0 -1
  1607. package/dist/next-node/workers/main.d.ts +0 -46
  1608. package/dist/next-node/workers/main.d.ts.map +0 -1
  1609. package/dist/next-node/workers/main.js +0 -230
  1610. package/dist/next-node/workers/main.js.map +0 -1
  1611. package/dist/next-node/workers/process.d.ts +0 -42
  1612. package/dist/next-node/workers/process.d.ts.map +0 -1
  1613. package/dist/next-node/workers/process.js +0 -125
  1614. package/dist/next-node/workers/process.js.map +0 -1
  1615. package/dist/next-node/workers/workers.d.ts +0 -80
  1616. package/dist/next-node/workers/workers.d.ts.map +0 -1
  1617. package/dist/next-node/workers/workers.js +0 -572
  1618. package/dist/next-node/workers/workers.js.map +0 -1
  1619. package/dist/node.d.ts +0 -4
  1620. package/dist/node.d.ts.map +0 -1
  1621. package/dist/node.js +0 -4
  1622. package/dist/node.js.map +0 -1
  1623. package/dist/object.d.ts +0 -438
  1624. package/dist/object.d.ts.map +0 -1
  1625. package/dist/object.js +0 -1570
  1626. package/dist/object.js.map +0 -1
  1627. package/dist/publish.d.ts +0 -5
  1628. package/dist/publish.d.ts.map +0 -1
  1629. package/dist/publish.js +0 -40
  1630. package/dist/publish.js.map +0 -1
  1631. package/dist/registry.d.ts +0 -25
  1632. package/dist/registry.d.ts.map +0 -1
  1633. package/dist/registry.js +0 -6
  1634. package/dist/registry.js.map +0 -1
  1635. package/dist/reload.d.ts +0 -126
  1636. package/dist/reload.d.ts.map +0 -1
  1637. package/dist/reload.js +0 -653
  1638. package/dist/reload.js.map +0 -1
  1639. package/dist/remote.d.ts +0 -165
  1640. package/dist/remote.d.ts.map +0 -1
  1641. package/dist/remote.js +0 -612
  1642. package/dist/remote.js.map +0 -1
  1643. package/dist/schema.d.ts +0 -25
  1644. package/dist/schema.d.ts.map +0 -1
  1645. package/dist/schema.js +0 -403
  1646. package/dist/schema.js.map +0 -1
  1647. package/dist/state.d.ts +0 -92
  1648. package/dist/state.d.ts.map +0 -1
  1649. package/dist/state.js +0 -287
  1650. package/dist/state.js.map +0 -1
  1651. package/dist/types.d.ts +0 -88
  1652. package/dist/types.d.ts.map +0 -1
  1653. package/dist/types.js +0 -2
  1654. package/dist/types.js.map +0 -1
  1655. package/dist/websocket.d.ts +0 -15
  1656. package/dist/websocket.d.ts.map +0 -1
  1657. package/dist/websocket.js +0 -16
  1658. package/dist/websocket.js.map +0 -1
  1659. package/dist/wire.d.ts +0 -197
  1660. package/dist/wire.d.ts.map +0 -1
  1661. package/dist/wire.js +0 -166
  1662. package/dist/wire.js.map +0 -1
  1663. package/docs/guide.md +0 -814
  1664. package/docs/next/benchmarks.md +0 -959
  1665. package/docs/next/decisions.md +0 -2957
  1666. package/docs/next/dependencies/book.md +0 -1671
  1667. package/docs/next/dependencies/index.html +0 -2641
  1668. package/docs/next/design.md +0 -2554
  1669. package/docs/next/durable-observers/book.md +0 -432
  1670. package/docs/next/durable-observers/index.html +0 -517
  1671. package/docs/next/guide-plugins-hosts/book.md +0 -607
  1672. package/docs/next/guide-plugins-hosts/index.html +0 -652
  1673. package/docs/next/http-workers/book.md +0 -378
  1674. package/docs/next/http-workers/index.html +0 -515
  1675. package/docs/next/layer-1.md +0 -311
  1676. package/docs/next/layer-2.md +0 -216
  1677. package/docs/next/plugin-model/book.md +0 -186
  1678. package/docs/next/plugin-model/index.html +0 -310
  1679. package/docs/next/plugin-primer/book.md +0 -273
  1680. package/docs/next/plugin-primer/index.html +0 -430
  1681. package/docs/next/slice-1.md +0 -236
  1682. package/docs/next/slice-10.md +0 -285
  1683. package/docs/next/slice-11.md +0 -93
  1684. package/docs/next/slice-2.md +0 -174
  1685. package/docs/next/slice-3a.md +0 -296
  1686. package/docs/next/slice-3b.md +0 -197
  1687. package/docs/next/slice-4a.md +0 -418
  1688. package/docs/next/slice-4b.md +0 -208
  1689. package/docs/next/slice-6a.md +0 -676
  1690. package/docs/next/slice-6b.md +0 -332
  1691. package/docs/next/slice-7b/book.md +0 -608
  1692. package/docs/next/slice-7b/index.html +0 -842
  1693. package/docs/next/slice-7b.md +0 -255
  1694. package/docs/next/slice-7c.md +0 -165
  1695. package/docs/next/slices.md +0 -230
  1696. package/docs/next/store/book.md +0 -665
  1697. package/docs/next/store/index.html +0 -861
  1698. package/docs/next/store/walkthrough.md +0 -193
  1699. package/docs/spec.md +0 -288
  1700. package/docs/tutorial.md +0 -932
  1701. /package/dist/{next/contracts → contracts}/accepts.js +0 -0
  1702. /package/dist/{next/contracts → contracts}/contract.js +0 -0
  1703. /package/dist/{next/contracts → contracts}/declare.d.ts +0 -0
  1704. /package/dist/{next/contracts → contracts}/declare.js +0 -0
  1705. /package/dist/{next/contracts → contracts}/evolve.d.ts +0 -0
  1706. /package/dist/{next/contracts → contracts}/evolve.js +0 -0
  1707. /package/dist/{next/contracts → contracts}/fingerprint.js +0 -0
  1708. /package/dist/{next/contracts → contracts}/history.d.ts +0 -0
  1709. /package/dist/{next/contracts → contracts}/history.js +0 -0
  1710. /package/dist/{next/contracts → contracts}/host-kind.d.ts +0 -0
  1711. /package/dist/{next/contracts → contracts}/host-kind.js +0 -0
  1712. /package/dist/{next/contracts → contracts}/index.d.ts +0 -0
  1713. /package/dist/{next/contracts → contracts}/index.js +0 -0
  1714. /package/dist/{next/contracts → contracts}/internal.d.ts +0 -0
  1715. /package/dist/{next/contracts → contracts}/internal.js +0 -0
  1716. /package/dist/{next/contracts → contracts}/names.d.ts +0 -0
  1717. /package/dist/{next/contracts → contracts}/names.js +0 -0
  1718. /package/dist/{next/contracts → contracts}/params.js +0 -0
  1719. /package/dist/{next/contracts → contracts}/schema.d.ts +0 -0
  1720. /package/dist/{next/contracts → contracts}/schema.js +0 -0
  1721. /package/dist/{next/data → data}/args.js +0 -0
  1722. /package/dist/{next/data → data}/failure.d.ts +0 -0
  1723. /package/dist/{next/data → data}/params.js +0 -0
  1724. /package/dist/{next/documents → documents}/address-source.js +0 -0
  1725. /package/dist/{next/documents → documents}/fence.d.ts +0 -0
  1726. /package/dist/{next/documents → documents}/fence.js +0 -0
  1727. /package/dist/{next/documents → documents}/handles.js +0 -0
  1728. /package/dist/{next/documents → documents}/index.d.ts +0 -0
  1729. /package/dist/{next/documents → documents}/index.js +0 -0
  1730. /package/dist/{next/documents → documents}/internal.js +0 -0
  1731. /package/dist/{next/documents → documents}/line.d.ts +0 -0
  1732. /package/dist/{next/documents → documents}/line.js +0 -0
  1733. /package/dist/{next/documents → documents}/residency.js +0 -0
  1734. /package/dist/{next/host → host}/adapted.js +0 -0
  1735. /package/dist/{next/host → host}/backoff.d.ts +0 -0
  1736. /package/dist/{next/host → host}/backoff.js +0 -0
  1737. /package/dist/{next/host → host}/deadline.d.ts +0 -0
  1738. /package/dist/{next/host → host}/deadline.js +0 -0
  1739. /package/dist/{next/host → host}/dependencies.d.ts +0 -0
  1740. /package/dist/{next/host → host}/dependencies.js +0 -0
  1741. /package/dist/{next/host → host}/destination.js +0 -0
  1742. /package/dist/{next/host → host}/facet.js +0 -0
  1743. /package/dist/{next/host → host}/follow.js +0 -0
  1744. /package/dist/{next/host → host}/index.js +0 -0
  1745. /package/dist/{next/host → host}/members.js +0 -0
  1746. /package/dist/{next/host → host}/parked.js +0 -0
  1747. /package/dist/{next/host → host}/presence.js +0 -0
  1748. /package/dist/{next/host → host}/retry-on.d.ts +0 -0
  1749. /package/dist/{next/host → host}/retry-on.js +0 -0
  1750. /package/dist/{next/host → host}/revocation.js +0 -0
  1751. /package/dist/{next/host → host}/sleep.js +0 -0
  1752. /package/dist/{next/host → host}/uuid.d.ts +0 -0
  1753. /package/dist/{next/host → host}/uuid.js +0 -0
  1754. /package/dist/{next/jobs → jobs}/definition.d.ts +0 -0
  1755. /package/dist/{next/jobs → jobs}/definition.js +0 -0
  1756. /package/dist/{next/jobs → jobs}/index.d.ts +0 -0
  1757. /package/dist/{next/jobs → jobs}/index.js +0 -0
  1758. /package/dist/{next/jobs → jobs}/internal.d.ts +0 -0
  1759. /package/dist/{next/jobs → jobs}/internal.js +0 -0
  1760. /package/dist/{next/jobs → jobs}/persisted.js +0 -0
  1761. /package/dist/{next/jobs → jobs}/running.js +0 -0
  1762. /package/dist/{next/jobs → jobs}/stored.js +0 -0
  1763. /package/dist/{next/link → link}/binary.d.ts +0 -0
  1764. /package/dist/{next/link → link}/errors.d.ts +0 -0
  1765. /package/dist/{next/link → link}/errors.js +0 -0
  1766. /package/dist/{next/link → link}/index.d.ts +0 -0
  1767. /package/dist/{next/link → link}/index.js +0 -0
  1768. /package/dist/{next/link → link}/internal.d.ts +0 -0
  1769. /package/dist/{next/link → link}/internal.js +0 -0
  1770. /package/dist/{next/link → link}/ipc.d.ts +0 -0
  1771. /package/dist/{next/link → link}/ipc.js +0 -0
  1772. /package/dist/{next/link → link}/link.d.ts +0 -0
  1773. /package/dist/{next/link → link}/link.js +0 -0
  1774. /package/dist/{next/link → link}/text.d.ts +0 -0
  1775. /package/dist/{next/link → link}/values.d.ts +0 -0
  1776. /package/dist/{next/link → link}/websocket.d.ts +0 -0
  1777. /package/dist/{next/link → link}/websocket.js +0 -0
  1778. /package/dist/{next-node → node}/http/admission.d.ts +0 -0
  1779. /package/dist/{next-node → node}/http/admission.js +0 -0
  1780. /package/dist/{next-node → node}/http/file.d.ts +0 -0
  1781. /package/dist/{next-node → node}/http/file.js +0 -0
  1782. /package/dist/{next-node → node}/http/headers.d.ts +0 -0
  1783. /package/dist/{next-node → node}/http/incoming.d.ts +0 -0
  1784. /package/dist/{next-node → node}/http/incoming.js +0 -0
  1785. /package/dist/{next-node → node}/http/node.d.ts +0 -0
  1786. /package/dist/{next-node → node}/http/node.js +0 -0
  1787. /package/dist/{next-node → node}/http/response.js +0 -0
  1788. /package/dist/{next-node → node}/plugins/stack.d.ts +0 -0
  1789. /package/dist/{next-node → node}/plugins/stack.js +0 -0
  1790. /package/dist/{next/registries → registries}/contribution.d.ts +0 -0
  1791. /package/dist/{next/registries → registries}/contribution.js +0 -0
  1792. /package/dist/{next/registries → registries}/entries.d.ts +0 -0
  1793. /package/dist/{next/registries → registries}/entries.js +0 -0
  1794. /package/dist/{next/registries → registries}/index.d.ts +0 -0
  1795. /package/dist/{next/registries → registries}/index.js +0 -0
  1796. /package/dist/{next/registries → registries}/internal.d.ts +0 -0
  1797. /package/dist/{next/registries → registries}/internal.js +0 -0
  1798. /package/dist/{next/registries → registries}/registry.js +0 -0
  1799. /package/dist/{next/registries → registries}/value.d.ts +0 -0
  1800. /package/dist/{next/remote → remote}/calls.d.ts +0 -0
  1801. /package/dist/{next/remote → remote}/calls.js +0 -0
  1802. /package/dist/{next/remote → remote}/internal.d.ts +0 -0
  1803. /package/dist/{next/remote → remote}/internal.js +0 -0
  1804. /package/dist/{next/remote → remote}/path.d.ts +0 -0
  1805. /package/dist/{next/remote → remote}/path.js +0 -0
  1806. /package/dist/{next/state → state}/index.js +0 -0
  1807. /package/dist/{next/state → state}/internal.d.ts +0 -0
  1808. /package/dist/{next/state → state}/internal.js +0 -0
  1809. /package/dist/{next/state → state}/writable.js +0 -0
  1810. /package/dist/{next/store → store}/adapter.js +0 -0
  1811. /package/dist/{next/store → store}/allocator.d.ts +0 -0
  1812. /package/dist/{next/store → store}/allocator.js +0 -0
  1813. /package/dist/{next/store → store}/applier.d.ts +0 -0
  1814. /package/dist/{next/store → store}/applier.js +0 -0
  1815. /package/dist/{next/store → store}/apply-batch.js +0 -0
  1816. /package/dist/{next/store → store}/backend.js +0 -0
  1817. /package/dist/{next/store → store}/catalog.js +0 -0
  1818. /package/dist/{next/store → store}/claims.d.ts +0 -0
  1819. /package/dist/{next/store → store}/claims.js +0 -0
  1820. /package/dist/{next/store → store}/columns.d.ts +0 -0
  1821. /package/dist/{next/store → store}/columns.js +0 -0
  1822. /package/dist/{next/store → store}/evaluate.js +0 -0
  1823. /package/dist/{next/store → store}/expression.js +0 -0
  1824. /package/dist/{next/store → store}/index.d.ts +0 -0
  1825. /package/dist/{next/store → store}/index.js +0 -0
  1826. /package/dist/{next/store → store}/jsonl.d.ts +0 -0
  1827. /package/dist/{next/store → store}/jsonl.js +0 -0
  1828. /package/dist/{next/store → store}/outbox.js +0 -0
  1829. /package/dist/{next/store → store}/query.js +0 -0
  1830. /package/dist/{next/store → store}/refusal.d.ts +0 -0
  1831. /package/dist/{next/store → store}/refusal.js +0 -0
  1832. /package/dist/{next/store → store}/rows.js +0 -0
  1833. /package/dist/{next/store → store}/sql.js +0 -0
  1834. /package/dist/{next/store → store}/table-changes.js +0 -0
  1835. /package/dist/{next/store → store}/table-evolve.d.ts +0 -0
  1836. /package/dist/{next/store → store}/table-evolve.js +0 -0
  1837. /package/dist/{next/store → store}/table-history.d.ts +0 -0
  1838. /package/dist/{next/store → store}/table-history.js +0 -0
  1839. /package/dist/{next/store → store}/table-writes.d.ts +0 -0
  1840. /package/dist/{next/store → store}/table.js +0 -0
  1841. /package/dist/{next/store → store}/text.d.ts +0 -0
  1842. /package/dist/{next/store → store}/text.js +0 -0
  1843. /package/dist/{next/store → store}/writes.d.ts +0 -0
  1844. /package/dist/{next/store → store}/writes.js +0 -0
  1845. /package/docs/{next/dependencies → dependencies}/model.md +0 -0
  1846. /package/docs/{next/flow-control → flow-control}/book.md +0 -0
  1847. /package/docs/{next/flow-control → flow-control}/fold/index.html +0 -0
  1848. /package/docs/{next/flow-control → flow-control}/index.html +0 -0
  1849. /package/docs/{next/flow-control → flow-control}/window/index.html +0 -0
  1850. /package/docs/{next/slice-4.md → slice-4.md} +0 -0
  1851. /package/docs/{next/slice-5.md → slice-5.md} +0 -0
  1852. /package/docs/{next/slice-7a.md → slice-7a.md} +0 -0
  1853. /package/docs/{next/slice-8.md → slice-8.md} +0 -0
@@ -0,0 +1,39 @@
1
+ import type { SqliteValue } from "../sqlite/index.ts";
2
+ import type { Columns, ColumnTypeOf, ValueOf } from "./columns.ts";
3
+ import { type ColumnRef, type Condition, type WhereNode } from "./expression.ts";
4
+ import type { Order } from "./sql.ts";
5
+ import type { TableDefinition } from "./table.ts";
6
+ /** The column references a table's callbacks get: `e.path`, `e.at`. */
7
+ export type ColumnRefs<C extends Columns> = {
8
+ readonly [K in keyof C & string]: ColumnRef<ValueOf<C[K]>, ColumnTypeOf<C[K]>>;
9
+ };
10
+ /** A query of `table`: its rows, in key order. */
11
+ export declare function query<C extends Columns, K extends readonly string[]>(table: TableDefinition<C, K>): Query<C, K>;
12
+ /**
13
+ * An immutable query of one table: an optional condition (several `where`s are `and`ed) and an order (`orderBy`
14
+ * columns, one direction, the key appended unless already there).
15
+ */
16
+ export declare class Query<C extends Columns = Columns, K extends readonly string[] = readonly string[]> {
17
+ #private;
18
+ readonly table: TableDefinition<C, K>;
19
+ readonly condition: WhereNode | undefined;
20
+ constructor(table: TableDefinition<C, K>, condition: WhereNode | undefined, orderBy: readonly string[], direction: "asc" | "desc" | undefined);
21
+ /** This query with `fn`'s condition too. */
22
+ where(fn: (row: ColumnRefs<C>) => Condition): Query<C, K>;
23
+ /**
24
+ * This query ordered by `fn`'s column next (a non-`opt` `str` or `int` one), in `direction`: one direction per
25
+ * query, no column twice (`invalid/args`).
26
+ */
27
+ orderBy(fn: (row: ColumnRefs<C>) => ColumnRef<unknown, "str" | "int">, direction?: "asc" | "desc"): Query<C, K>;
28
+ /** The order of its rows: the `orderBy` columns, then the key columns not among them. */
29
+ get order(): Order;
30
+ }
31
+ /** The cursor of the position after a row with the order values `values` in the table named `table` (its SQL name). */
32
+ export declare function encodeCursor(table: string, order: Order, values: readonly SqliteValue[]): string;
33
+ /**
34
+ * The order values of `cursor` (a trust boundary: an app hands it back): one made for `table`'s `order` (any
35
+ * condition) in the table named `sqlName` (another object's table of the same definition is another table), each value
36
+ * of its column's type; `invalid/args` otherwise.
37
+ */
38
+ export declare function decodeCursor(table: TableDefinition, sqlName: string, order: Order, cursor: unknown): SqliteValue[];
39
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/store/query.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAgB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,uEAAuE;AACvE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,OAAO,IAAI;IAC3C,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E,CAAC;AAEF,kDAAkD;AAClD,wBAAgB,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAE/G;AAED;;;GAGG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;;IAC9F,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IAI1C,YACC,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,EAMrC;IAED,4CAA4C;IAC5C,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAKxD;IAED;;;OAGG;IACH,OAAO,CACN,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,EAC7D,SAAS,GAAE,KAAK,GAAG,MAAc,GAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAab;IAED,yFAAyF;IACzF,IAAI,KAAK,IAAI,KAAK,CAGjB;CACD;AAED,uHAAuH;AACvH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAKhG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,GAAG,WAAW,EAAE,CAuBlH"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/store/query.ts"],"names":[],"mappings":"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","sourcesContent":["// Queries (decision \"Query runner\"; slice 6a §6, rule 17): `query(Table).where(…).orderBy(…)` as immutable data\n// (the condition compiled when given, the order with the key appended as the tie-break), and the opaque cursors that\n// continue a page, bound to the table, the order columns and the direction.\n\nimport { invalid } from \"../data/internal.ts\";\nimport type { SqliteValue } from \"../sqlite/index.ts\";\nimport type { Columns, ColumnTypeOf, ValueOf } from \"./columns.ts\";\nimport { type ColumnRef, type Condition, compileWhere, type WhereNode } from \"./expression.ts\";\nimport { checkScalar } from \"./rows.ts\";\nimport type { Order } from \"./sql.ts\";\nimport type { TableDefinition } from \"./table.ts\";\n\n/** The column references a table's callbacks get: `e.path`, `e.at`. */\nexport type ColumnRefs<C extends Columns> = {\n\treadonly [K in keyof C & string]: ColumnRef<ValueOf<C[K]>, ColumnTypeOf<C[K]>>;\n};\n\n/** A query of `table`: its rows, in key order. */\nexport function query<C extends Columns, K extends readonly string[]>(table: TableDefinition<C, K>): Query<C, K> {\n\treturn new Query(table, undefined, [], undefined);\n}\n\n/**\n * An immutable query of one table: an optional condition (several `where`s are `and`ed) and an order (`orderBy`\n * columns, one direction, the key appended unless already there).\n */\nexport class Query<C extends Columns = Columns, K extends readonly string[] = readonly string[]> {\n\treadonly table: TableDefinition<C, K>;\n\treadonly condition: WhereNode | undefined;\n\treadonly #orderBy: readonly string[];\n\treadonly #direction: \"asc\" | \"desc\" | undefined;\n\n\tconstructor(\n\t\ttable: TableDefinition<C, K>,\n\t\tcondition: WhereNode | undefined,\n\t\torderBy: readonly string[],\n\t\tdirection: \"asc\" | \"desc\" | undefined,\n\t) {\n\t\tthis.table = table;\n\t\tthis.condition = condition;\n\t\tthis.#orderBy = orderBy;\n\t\tthis.#direction = direction;\n\t}\n\n\t/** This query with `fn`'s condition too. */\n\twhere(fn: (row: ColumnRefs<C>) => Condition): Query<C, K> {\n\t\t// The refs are the table's columns, typed by `C`.\n\t\tconst compiled = compileWhere(this.table, fn(this.table.refs as ColumnRefs<C>), \"where\");\n\t\tconst condition = this.condition === undefined ? compiled : { and: [this.condition, compiled] };\n\t\treturn new Query(this.table, condition, this.#orderBy, this.#direction);\n\t}\n\n\t/**\n\t * This query ordered by `fn`'s column next (a non-`opt` `str` or `int` one), in `direction`: one direction per\n\t * query, no column twice (`invalid/args`).\n\t */\n\torderBy(\n\t\tfn: (row: ColumnRefs<C>) => ColumnRef<unknown, \"str\" | \"int\">,\n\t\tdirection: \"asc\" | \"desc\" = \"asc\",\n\t): Query<C, K> {\n\t\tconst table = this.table;\n\t\t// The refs are `C`'s columns; what the plugin's callback returns is checked below.\n\t\tconst ref = fn(table.refs as ColumnRefs<C>) as ColumnRef | undefined;\n\t\tconst column = table.byName.get(ref?.column ?? \"\");\n\t\tif (column === undefined || column.optional || (column.type !== \"str\" && column.type !== \"int\")) {\n\t\t\tthrow invalid(\"args\", `${table.name}: orderBy: expected a non-opt str() or int() column`);\n\t\t}\n\t\tif (this.#orderBy.includes(column.name)) throw invalid(\"args\", `${table.name}: orderBy: \"${column.name}\" twice`);\n\t\tif (this.#direction !== undefined && this.#direction !== direction) {\n\t\t\tthrow invalid(\"args\", `${table.name}: orderBy: one direction per query`);\n\t\t}\n\t\treturn new Query(table, this.condition, [...this.#orderBy, column.name], direction);\n\t}\n\n\t/** The order of its rows: the `orderBy` columns, then the key columns not among them. */\n\tget order(): Order {\n\t\tconst columns = [...this.#orderBy, ...this.table.key.filter((column) => !this.#orderBy.includes(column))];\n\t\treturn { columns, direction: this.#direction ?? \"asc\" };\n\t}\n}\n\n/** The cursor of the position after a row with the order values `values` in the table named `table` (its SQL name). */\nexport function encodeCursor(table: string, order: Order, values: readonly SqliteValue[]): string {\n\tconst json = JSON.stringify({ t: table, o: order.columns, d: order.direction, v: values });\n\tlet binary = \"\";\n\tfor (const byte of new TextEncoder().encode(json)) binary += String.fromCharCode(byte);\n\treturn btoa(binary).replaceAll(\"+\", \"-\").replaceAll(\"/\", \"_\").replace(/=+$/, \"\");\n}\n\n/**\n * The order values of `cursor` (a trust boundary: an app hands it back): one made for `table`'s `order` (any\n * condition) in the table named `sqlName` (another object's table of the same definition is another table), each value\n * of its column's type; `invalid/args` otherwise.\n */\nexport function decodeCursor(table: TableDefinition, sqlName: string, order: Order, cursor: unknown): SqliteValue[] {\n\tconst refuse = (): never => {\n\t\tthrow invalid(\"args\", `${table.name}: the cursor is not one of this table's order`);\n\t};\n\tif (typeof cursor !== \"string\") return refuse();\n\tlet decoded: unknown;\n\ttry {\n\t\tconst binary = atob(cursor.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\"));\n\t\tdecoded = JSON.parse(\n\t\t\tnew TextDecoder(\"utf-8\", { fatal: true }).decode(Uint8Array.from(binary, (c) => c.charCodeAt(0))),\n\t\t);\n\t} catch {\n\t\treturn refuse();\n\t}\n\t// Wire input: every field is checked below.\n\tconst { t, o, d, v } = (decoded ?? {}) as { t?: unknown; o?: unknown; d?: unknown; v?: unknown };\n\tif (t !== sqlName || d !== order.direction || JSON.stringify(o) !== JSON.stringify(order.columns)) refuse();\n\tif (!Array.isArray(v) || v.length !== order.columns.length) return refuse();\n\treturn order.columns.map((name, index) => {\n\t\tconst column = table.byName.get(name)!;\n\t\t// Order columns are non-opt `str` or `int` (checked when the query was built).\n\t\treturn checkScalar(column.type as \"str\" | \"int\", v[index], `${table.name}: cursor`) as string | number;\n\t});\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal.d.ts","sourceRoot":"","sources":["../../src/store/refusal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAE5D,qHAAqH;AACrH,MAAM,MAAM,OAAO,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAK3D;;;GAGG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAc5E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refusal.js","sourceRoot":"","sources":["../../src/store/refusal.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,+GAA+G;AAC/G,6GAA6G;AAE7G,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAO5D,0GAA0G;AAC1G,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,KAAa;IACtD,IAAI,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,EAAE,CAAC;QAClH,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,KAAK,2CAA2C,OAAO,GAAG,CAAC;QAC9E,OAAO;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAC9F,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,KAAK,mCAAmC,OAAO,GAAG,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,KAAc,EAAE,OAAe;IAC/C,MAAM,IAAI,GAAI,KAAoD,EAAE,OAAO,CAAC;IAC5E,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,KAAK,uBAAuB,CAAC;IACtE,OAAO,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC;AACpD,CAAC","sourcesContent":["// A refused commit as Chord's owners take it (slice 6b D4, §1.4): the store rejects a step it rolled back with the\n// step's own error, unchanged (Durable's Storage semantics); Chord classifies it: an `int` column's `CHECK` (a\n// plugin's value out of range) fails only its transaction, any other refusal means memory and disk disagree.\n\nimport { ChordError, isChordError } from \"../data/index.ts\";\n\n/** How a Chord commit ended that the store rejected: `check` fails the transaction only, `broken` its object too. */\nexport type Refusal =\n\t| { readonly kind: \"check\"; readonly error: ChordError }\n\t| { readonly kind: \"broken\"; readonly error: ChordError };\n\n/** SQLite's extended result code `SQLITE_CONSTRAINT_CHECK`, which Node's binding reports as `errcode`. */\nconst SQLITE_CONSTRAINT_CHECK = 275;\n\n/**\n * The refusal behind `error`, a store commit's rejection; `undefined` when it is the store's own (`released` at\n * admission or after close, `unavailable/storage_failed` once stopped), which the owner rethrows as it is.\n */\nexport function refusalOf(error: unknown, label: string): Refusal | undefined {\n\tif (isChordError(error, \"released\") || (isChordError(error, \"unavailable\") && error.reason === \"storage_failed\")) {\n\t\treturn undefined;\n\t}\n\tconst message = error instanceof Error ? error.message : String(error);\n\tif (isCheck(error, message)) {\n\t\tconst refused = `${label}: a value is out of its column's range (${message})`;\n\t\treturn {\n\t\t\tkind: \"check\",\n\t\t\terror: new ChordError({ code: \"invalid\", reason: \"args\", message: refused }, { cause: error }),\n\t\t};\n\t}\n\tconst refused = `${label}: the store refused the commit (${message})`;\n\treturn { kind: \"broken\", error: new ChordError({ code: \"unavailable\", message: refused }, { cause: error }) };\n}\n\n/**\n * Whether a refusal is a `CHECK` failure: SQLite's extended code where the binding has one (Node), the message\n * otherwise (the Durable Object facade has no extended codes).\n */\nfunction isCheck(error: unknown, message: string): boolean {\n\tconst code = (error as { readonly errcode?: unknown } | undefined)?.errcode;\n\tif (typeof code === \"number\") return code === SQLITE_CONSTRAINT_CHECK;\n\treturn message.includes(\"CHECK constraint failed\");\n}\n"]}
@@ -0,0 +1,80 @@
1
+ import type { Context } from "../context/index.ts";
2
+ import type { JsonValue } from "../json.ts";
3
+ import type { SqliteValue } from "../sqlite/index.ts";
4
+ import type { Column, ColumnType } from "./columns.ts";
5
+ /** A scalar cell as the store keeps it in rows, writes and operands: a well-formed string, a number or a boolean. */
6
+ export type Scalar = string | number | boolean;
7
+ /** A row as the outbox records it: the stored values, `opt(...)` columns absent when `NULL`. */
8
+ export type StoredRow = {
9
+ readonly [column: string]: Scalar | JsonValue;
10
+ };
11
+ /** A `put` ready for the step: its parameters in `physical` order and its record. */
12
+ export type EncodedRow = {
13
+ readonly params: readonly SqliteValue[];
14
+ readonly row: StoredRow;
15
+ /** Each written `json(...)` column's version. */
16
+ readonly columns: {
17
+ readonly [column: string]: number;
18
+ };
19
+ /** The row's key identity, as `EncodedKey.id`. */
20
+ readonly id: string;
21
+ };
22
+ /** A key ready for the store: its parameters in key order, its record and its identity within one table. */
23
+ export type EncodedKey = {
24
+ readonly params: readonly SqliteValue[];
25
+ readonly key: {
26
+ readonly [column: string]: Scalar;
27
+ };
28
+ /** `JSON.stringify` of the parameters: equal keys, equal ids. */
29
+ readonly id: string;
30
+ };
31
+ /** The physical name of a `json(...)` column's version column, and of the row's eager-step version. */
32
+ export declare function versionColumn(column: string): string;
33
+ /** The row's eager-step version column (W11): set by `put` and eager migration steps only. */
34
+ export declare const ROW_VERSION = "$v";
35
+ /** The physical column order of a stored row: the declared columns, each `json(...)` column's version, then `$v`. */
36
+ export declare function physicalColumns(columns: readonly {
37
+ readonly name: string;
38
+ readonly type: ColumnType;
39
+ }[]): string[];
40
+ /** A scalar as SQLite binds it: booleans as 0 and 1. */
41
+ export declare function toSqlite(scalar: Scalar): string | number;
42
+ /**
43
+ * A table version's codec: `put` rows and keys checked and encoded, stored rows decoded. `physical` is the column
44
+ * order of an encoded row (`physicalColumns`).
45
+ */
46
+ export declare class RowCodec {
47
+ #private;
48
+ readonly physical: readonly string[];
49
+ constructor(columns: readonly Column[], key: readonly string[], table: string);
50
+ /**
51
+ * Checks and encodes a `put` row of table version `version` (a trust boundary): a plain object with every
52
+ * non-`opt` column (a defaulted one filled in) and no other field; `invalid/args` otherwise.
53
+ */
54
+ put(row: unknown, version: number): EncodedRow;
55
+ /** Checks and encodes a key (a trust boundary): an object with exactly the key columns; `invalid/args` otherwise. */
56
+ key(key: unknown, what: string): EncodedKey;
57
+ /**
58
+ * A stored row as reads return it: booleans from 0 and 1, `opt(...)` columns absent when `NULL`, `json(...)` cells
59
+ * parsed and migrated on access (a cell the code cannot read throws, see `JsonColumn.read`).
60
+ */
61
+ decode(stored: {
62
+ readonly [column: string]: SqliteValue;
63
+ }, context: Context): {
64
+ [column: string]: unknown;
65
+ };
66
+ }
67
+ /** A checked cell: what is bound and what is recorded. */
68
+ type Cell = {
69
+ readonly param: SqliteValue;
70
+ readonly stored: Scalar | JsonValue;
71
+ };
72
+ /** Checks and encodes a value of `column`; a `json(...)` value is serialized, not walked (R9). */
73
+ export declare function encodeCell(column: Column, value: unknown, what: string): Cell;
74
+ /**
75
+ * A value of a scalar column type as the store keeps it (a trust boundary): `str` well-formed without NUL, `int` a
76
+ * safe integer, `num` finite, `bool` a boolean; `invalid/args` otherwise.
77
+ */
78
+ export declare function checkScalar(type: "str" | "int" | "num" | "bool", value: unknown, what: string): Scalar;
79
+ export {};
80
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/store/rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/store/rows.ts"],"names":[],"mappings":"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","sourcesContent":["// Rows (slice 6a §5 \"Values at write\", §9): one compiled codec per table version between a plugin's rows and keys\n// (a trust boundary, checked closed) and what the store binds and reads; `json(...)` cells serialized at staging\n// (rule 8), never walked (R9), and migrated on access when read.\n\nimport type { Context } from \"../context/index.ts\";\nimport { invalid } from \"../data/internal.ts\";\nimport type { JsonValue } from \"../json.ts\";\nimport type { SqliteValue } from \"../sqlite/index.ts\";\nimport type { Column, ColumnType } from \"./columns.ts\";\nimport { storedText } from \"./text.ts\";\n\n/** A scalar cell as the store keeps it in rows, writes and operands: a well-formed string, a number or a boolean. */\nexport type Scalar = string | number | boolean;\n\n/** A row as the outbox records it: the stored values, `opt(...)` columns absent when `NULL`. */\nexport type StoredRow = { readonly [column: string]: Scalar | JsonValue };\n\n/** A `put` ready for the step: its parameters in `physical` order and its record. */\nexport type EncodedRow = {\n\treadonly params: readonly SqliteValue[];\n\treadonly row: StoredRow;\n\t/** Each written `json(...)` column's version. */\n\treadonly columns: { readonly [column: string]: number };\n\t/** The row's key identity, as `EncodedKey.id`. */\n\treadonly id: string;\n};\n\n/** A key ready for the store: its parameters in key order, its record and its identity within one table. */\nexport type EncodedKey = {\n\treadonly params: readonly SqliteValue[];\n\treadonly key: { readonly [column: string]: Scalar };\n\t/** `JSON.stringify` of the parameters: equal keys, equal ids. */\n\treadonly id: string;\n};\n\n/** The physical name of a `json(...)` column's version column, and of the row's eager-step version. */\nexport function versionColumn(column: string): string {\n\treturn `${column}$v`;\n}\n\n/** The row's eager-step version column (W11): set by `put` and eager migration steps only. */\nexport const ROW_VERSION = \"$v\";\n\n/** The physical column order of a stored row: the declared columns, each `json(...)` column's version, then `$v`. */\nexport function physicalColumns(columns: readonly { readonly name: string; readonly type: ColumnType }[]): string[] {\n\treturn [\n\t\t...columns.map(({ name }) => name),\n\t\t...columns.filter(({ type }) => type === \"json\").map(({ name }) => versionColumn(name)),\n\t\tROW_VERSION,\n\t];\n}\n\n/** A scalar as SQLite binds it: booleans as 0 and 1. */\nexport function toSqlite(scalar: Scalar): string | number {\n\treturn scalar === true ? 1 : scalar === false ? 0 : scalar;\n}\n\n/**\n * A table version's codec: `put` rows and keys checked and encoded, stored rows decoded. `physical` is the column\n * order of an encoded row (`physicalColumns`).\n */\nexport class RowCodec {\n\treadonly physical: readonly string[];\n\treadonly #columns: readonly Column[];\n\treadonly #key: readonly Column[];\n\treadonly #json: readonly Extract<Column, { readonly type: \"json\" }>[];\n\treadonly #names: ReadonlySet<string>;\n\treadonly #keyNames: ReadonlySet<string>;\n\t/** The positions of the key columns in `physical`. */\n\treadonly #keyPositions: readonly number[];\n\treadonly #table: string;\n\n\tconstructor(columns: readonly Column[], key: readonly string[], table: string) {\n\t\tthis.#columns = columns;\n\t\tthis.#key = key.map((name) => columns.find((column) => column.name === name)!);\n\t\tthis.#json = columns.filter(\n\t\t\t(column): column is Extract<Column, { readonly type: \"json\" }> => column.type === \"json\",\n\t\t);\n\t\tthis.#names = new Set(columns.map(({ name }) => name));\n\t\tthis.#keyNames = new Set(key);\n\t\tthis.#keyPositions = key.map((name) => columns.findIndex((column) => column.name === name));\n\t\tthis.#table = table;\n\t\tthis.physical = physicalColumns(columns);\n\t}\n\n\t/**\n\t * Checks and encodes a `put` row of table version `version` (a trust boundary): a plain object with every\n\t * non-`opt` column (a defaulted one filled in) and no other field; `invalid/args` otherwise.\n\t */\n\tput(row: unknown, version: number): EncodedRow {\n\t\tconst what = `${this.#table}: put`;\n\t\tconst fields = this.#closed(row, this.#names, what);\n\t\tconst params: SqliteValue[] = [];\n\t\tconst stored: { [column: string]: Scalar | JsonValue } = {};\n\t\tconst versions: { [column: string]: number } = {};\n\t\tfor (const column of this.#columns) {\n\t\t\tlet value = fields[column.name];\n\t\t\tif (value === undefined && column.type !== \"json\") value = column.default;\n\t\t\tif (value === undefined) {\n\t\t\t\tif (!column.optional) throw invalid(\"args\", `${what}: column \"${column.name}\" is missing`);\n\t\t\t\tparams.push(null);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst cell = encodeCell(column, value, `${what}: column \"${column.name}\"`);\n\t\t\tparams.push(cell.param);\n\t\t\tstored[column.name] = cell.stored;\n\t\t}\n\t\tfor (const column of this.#json) {\n\t\t\tconst present = Object.hasOwn(stored, column.name);\n\t\t\tif (present) versions[column.name] = column.json.version;\n\t\t\tparams.push(present ? column.json.version : null);\n\t\t}\n\t\tparams.push(version);\n\t\tconst id = JSON.stringify(this.#keyPositions.map((position) => params[position]));\n\t\treturn { params, row: stored, columns: versions, id };\n\t}\n\n\t/** Checks and encodes a key (a trust boundary): an object with exactly the key columns; `invalid/args` otherwise. */\n\tkey(key: unknown, what: string): EncodedKey {\n\t\tconst fields = this.#closed(key, this.#keyNames, `${this.#table}: ${what}: the key`);\n\t\tconst params: SqliteValue[] = [];\n\t\tconst stored: { [column: string]: Scalar } = {};\n\t\tfor (const column of this.#key) {\n\t\t\tconst value = fields[column.name];\n\t\t\tconst where = `${this.#table}: ${what}: key column \"${column.name}\"`;\n\t\t\tif (value === undefined) throw invalid(\"args\", `${where} is missing`);\n\t\t\tconst cell = encodeScalar(column, value, where);\n\t\t\tparams.push(cell);\n\t\t\tstored[column.name] = cell;\n\t\t}\n\t\treturn { params, key: stored, id: JSON.stringify(params) };\n\t}\n\n\t/**\n\t * A stored row as reads return it: booleans from 0 and 1, `opt(...)` columns absent when `NULL`, `json(...)` cells\n\t * parsed and migrated on access (a cell the code cannot read throws, see `JsonColumn.read`).\n\t */\n\tdecode(stored: { readonly [column: string]: SqliteValue }, context: Context): { [column: string]: unknown } {\n\t\tconst row: { [column: string]: unknown } = {};\n\t\tfor (const column of this.#columns) {\n\t\t\tconst value = stored[column.name];\n\t\t\tif (value === null || value === undefined) continue;\n\t\t\tif (column.type === \"bool\") row[column.name] = value === 1;\n\t\t\telse if (column.type === \"json\") {\n\t\t\t\tconst version = stored[versionColumn(column.name)] as number;\n\t\t\t\trow[column.name] = column.json.read(value as string, version, `${this.#table}.${column.name}`, context);\n\t\t\t} else row[column.name] = value;\n\t\t}\n\t\treturn row;\n\t}\n\n\t/** `value`'s own fields when it is a plain object with only fields of `names`; `invalid/args` otherwise. */\n\t#closed(value: unknown, names: ReadonlySet<string>, what: string): { readonly [field: string]: unknown } {\n\t\tif (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n\t\t\tthrow invalid(\"args\", `${what}: expected an object`);\n\t\t}\n\t\tfor (const field of Object.keys(value)) {\n\t\t\tif (!names.has(field)) throw invalid(\"args\", `${what}: unknown column \"${field}\"`);\n\t\t}\n\t\t// Checked above: a plain object with known fields.\n\t\treturn value as { readonly [field: string]: unknown };\n\t}\n}\n\n/** A checked cell: what is bound and what is recorded. */\ntype Cell = { readonly param: SqliteValue; readonly stored: Scalar | JsonValue };\n\n/** Checks and encodes a value of `column`; a `json(...)` value is serialized, not walked (R9). */\nexport function encodeCell(column: Column, value: unknown, what: string): Cell {\n\tif (column.type !== \"json\") {\n\t\tconst stored = checkScalar(column.type, value, what);\n\t\treturn { param: toSqlite(stored), stored };\n\t}\n\tlet text: string | undefined;\n\ttry {\n\t\ttext = JSON.stringify(value);\n\t} catch (error) {\n\t\tthrow invalid(\"args\", `${what}: not JSON (${error instanceof Error ? error.message : String(error)})`);\n\t}\n\tif (text === undefined) throw invalid(\"args\", `${what}: not JSON`);\n\t// `JSON.stringify` accepted it; the recorded value is the one serialized. It is kept, not copied or parsed back:\n\t// same-host values are immutable by convention, so the outbox serializing it again in the step records this text\n\t// (a plugin mutating a value after `tx.put` breaks that convention, as for any other value it hands over).\n\treturn { param: text, stored: value as JsonValue };\n}\n\n/** Checks a scalar value of `column` and returns what is bound (booleans as 0 and 1). */\nfunction encodeScalar(column: Column, value: unknown, what: string): string | number {\n\tif (column.type === \"json\") throw invalid(\"args\", `${what}: a json(...) column has no scalar value`);\n\treturn toSqlite(checkScalar(column.type, value, what));\n}\n\n/**\n * A value of a scalar column type as the store keeps it (a trust boundary): `str` well-formed without NUL, `int` a\n * safe integer, `num` finite, `bool` a boolean; `invalid/args` otherwise.\n */\nexport function checkScalar(type: \"str\" | \"int\" | \"num\" | \"bool\", value: unknown, what: string): Scalar {\n\tswitch (type) {\n\t\tcase \"str\":\n\t\t\tif (typeof value === \"string\") return storedText(value, what);\n\t\t\tbreak;\n\t\tcase \"int\":\n\t\t\tif (Number.isSafeInteger(value)) return value as number;\n\t\t\tbreak;\n\t\tcase \"num\":\n\t\t\tif (typeof value === \"number\" && Number.isFinite(value)) return value;\n\t\t\tbreak;\n\t\tcase \"bool\":\n\t\t\tif (typeof value === \"boolean\") return value;\n\t\t\tbreak;\n\t}\n\tthrow invalid(\"args\", `${what}: ${JSON.stringify(value) ?? String(value)} is not a ${type} value`);\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import { type SqliteDatabase } from "../sqlite/index.ts";
2
+ /** The store's tables. */
3
+ export declare const TABLES: {
4
+ readonly meta: "chord_meta";
5
+ readonly tables: "chord_tables";
6
+ readonly documents: "chord_documents";
7
+ readonly revisions: "chord_revisions";
8
+ readonly outbox: "chord_outbox";
9
+ };
10
+ /** The store's schema version: the newest entry of its history (archives carry it). */
11
+ export declare const STORE_SCHEMA: number;
12
+ /** The store's metadata row, as `openStore` reads it once. */
13
+ export type MetaRow = {
14
+ readonly last_seq: number;
15
+ readonly next_id: number;
16
+ readonly outbox: number;
17
+ readonly outbox_floor: number;
18
+ };
19
+ /**
20
+ * Brings `db` to the store's newest schema (one transaction) and checks that it stores text as UTF-8 (the store
21
+ * compares text by its bytes); returns the metadata row. A store already there is read in one statement, without the
22
+ * migrations' write transaction (most opens: the cost of a reopen).
23
+ */
24
+ export declare function applyStoreSchema(db: SqliteDatabase): Promise<MetaRow>;
25
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAEtG,0BAA0B;AAC1B,eAAO,MAAM,MAAM;aAClB,IAAI,EAAE,YAAY;aAClB,MAAM,EAAE,cAAc;aACtB,SAAS,EAAE,iBAAiB;aAC5B,SAAS,EAAE,iBAAiB;aAC5B,MAAM,EAAE,cAAc;CACb,CAAC;AAmEX,uFAAuF;AACvF,eAAO,MAAM,YAAY,QAA6B,CAAC;AAEvD,8DAA8D;AAC9D,MAAM,MAAM,OAAO,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAY3E"}
@@ -0,0 +1,115 @@
1
+ // The store's own SQL schema (slice 6a §2): its metadata, the recorded table definitions, the documents engine's
2
+ // records and revisions, and the outbox; versioned by `applySqliteMigrations`. Declared tables are named
3
+ // `"<owner>:<table>"`, so no name here can meet one of them.
4
+ import { applySqliteMigrations } from "../sqlite/index.js";
5
+ /** The store's tables. */
6
+ export const TABLES = {
7
+ meta: "chord_meta",
8
+ tables: "chord_tables",
9
+ documents: "chord_documents",
10
+ revisions: "chord_revisions",
11
+ outbox: "chord_outbox",
12
+ };
13
+ /**
14
+ * The schema history; never change an entry, append one (nothing is deployed yet: slice 6b changed entry 1 in place).
15
+ * `chord_meta` is one row: `last_seq`, the allocator's next id (D3; from 2, id 1 is Durable's root conversation), and
16
+ * the outbox setting with its floor (the seq it starts after, advanced by `trim`). A document record keeps its
17
+ * history rule (R1), its current base's version and fingerprint and a `revision` counter for the conditional
18
+ * `UPDATE`; the partial unique index refuses two live records at one address. Entry 2 adds the indexes of reads at a
19
+ * point (slice 6b §1.5): an address's incarnations by creation, an owner's namespace by id, a document's bases (a
20
+ * partial index: deltas write no entry).
21
+ */
22
+ const MIGRATIONS = [
23
+ {
24
+ version: 1,
25
+ statements: [
26
+ `CREATE TABLE ${TABLES.meta} (
27
+ singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
28
+ last_seq INTEGER NOT NULL,
29
+ next_id INTEGER NOT NULL,
30
+ outbox INTEGER NOT NULL CHECK (outbox IN (0, 1)),
31
+ outbox_floor INTEGER NOT NULL
32
+ ) STRICT`,
33
+ `INSERT INTO ${TABLES.meta} (singleton, last_seq, next_id, outbox, outbox_floor) VALUES (1, 0, 2, 0, 0)`,
34
+ `CREATE TABLE ${TABLES.tables} (name TEXT PRIMARY KEY, definition TEXT NOT NULL) STRICT, WITHOUT ROWID`,
35
+ `CREATE TABLE ${TABLES.documents} (
36
+ id INTEGER PRIMARY KEY,
37
+ owner TEXT NOT NULL,
38
+ namespace TEXT NOT NULL,
39
+ kind TEXT NOT NULL,
40
+ key TEXT NOT NULL,
41
+ history TEXT NOT NULL CHECK (history IN ('none', 'latest', 'rewindable')),
42
+ created_at INTEGER NOT NULL,
43
+ retired_at INTEGER,
44
+ meta TEXT,
45
+ revision INTEGER NOT NULL,
46
+ version INTEGER NOT NULL,
47
+ fingerprint TEXT NOT NULL
48
+ ) STRICT`,
49
+ `CREATE UNIQUE INDEX chord_documents_live ON ${TABLES.documents} (owner, namespace, kind, key)
50
+ WHERE retired_at IS NULL`,
51
+ `CREATE TABLE ${TABLES.revisions} (
52
+ document_id INTEGER NOT NULL,
53
+ seq INTEGER NOT NULL,
54
+ kind TEXT NOT NULL CHECK (kind IN ('base', 'delta')),
55
+ version INTEGER NOT NULL,
56
+ content TEXT NOT NULL,
57
+ PRIMARY KEY (document_id, seq)
58
+ ) STRICT, WITHOUT ROWID`,
59
+ `CREATE TABLE ${TABLES.outbox} (
60
+ seq INTEGER PRIMARY KEY,
61
+ format INTEGER NOT NULL,
62
+ next_id INTEGER NOT NULL,
63
+ writes TEXT NOT NULL
64
+ ) STRICT`,
65
+ ],
66
+ },
67
+ {
68
+ version: 2,
69
+ statements: [
70
+ `CREATE INDEX chord_documents_address ON ${TABLES.documents} (owner, namespace, kind, key, created_at)`,
71
+ `CREATE INDEX chord_documents_scope ON ${TABLES.documents} (owner, namespace, id)`,
72
+ // Only bases are looked up by it (a load's newest base at or below a point): deltas write no entry.
73
+ `CREATE INDEX chord_revisions_bases ON ${TABLES.revisions} (document_id, seq) WHERE kind = 'base'`,
74
+ ],
75
+ },
76
+ ];
77
+ /** The store's schema version: the newest entry of its history (archives carry it). */
78
+ export const STORE_SCHEMA = MIGRATIONS.at(-1).version;
79
+ /**
80
+ * Brings `db` to the store's newest schema (one transaction) and checks that it stores text as UTF-8 (the store
81
+ * compares text by its bytes); returns the metadata row. A store already there is read in one statement, without the
82
+ * migrations' write transaction (most opens: the cost of a reopen).
83
+ */
84
+ export async function applyStoreSchema(db) {
85
+ const current = await currentMeta(db);
86
+ if (current !== undefined)
87
+ return current;
88
+ const encoding = await db.get("PRAGMA encoding");
89
+ if (encoding?.encoding !== "UTF-8")
90
+ throw new Error(`store: the database encoding is ${encoding?.encoding}, not UTF-8`);
91
+ await applySqliteMigrations(db, MIGRATIONS, { table: "chord_store_schema" });
92
+ const meta = await db.get(`SELECT last_seq, next_id, outbox, outbox_floor FROM ${TABLES.meta} WHERE singleton = 1`);
93
+ if (meta === undefined)
94
+ throw new Error("store: the metadata row is missing");
95
+ return meta;
96
+ }
97
+ /** The schema version, the encoding and the metadata row of a store, in one read. */
98
+ const CURRENT_META = `SELECT s.version, e.encoding, m.last_seq, m.next_id, m.outbox, m.outbox_floor
99
+ FROM chord_store_schema s, pragma_encoding e, ${TABLES.meta} m WHERE s.singleton = 1 AND m.singleton = 1`;
100
+ /** The metadata row of a store at the newest schema in UTF-8; `undefined` for any other database. */
101
+ async function currentMeta(db) {
102
+ let row;
103
+ try {
104
+ row = await db.get(CURRENT_META);
105
+ }
106
+ catch {
107
+ // A database without the store's tables (new, or not a store) or a backend without `pragma_encoding`: the
108
+ // migrations' path creates, refuses or reads it.
109
+ return undefined;
110
+ }
111
+ if (row === undefined || row.version !== STORE_SCHEMA || row.encoding !== "UTF-8")
112
+ return undefined;
113
+ return { last_seq: row.last_seq, next_id: row.next_id, outbox: row.outbox, outbox_floor: row.outbox_floor };
114
+ }
115
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/store/schema.ts"],"names":[],"mappings":"AAAA,iHAAiH;AACjH,yGAAyG;AACzG,6DAA6D;AAE7D,OAAO,EAAE,qBAAqB,EAA6C,MAAM,oBAAoB,CAAC;AAEtG,0BAA0B;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;IACtB,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;CACb,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,UAAU,GAA+B;IAC9C;QACC,OAAO,EAAE,CAAC;QACV,UAAU,EAAE;YACX,gBAAgB,MAAM,CAAC,IAAI;;;;;;YAMlB;YACT,eAAe,MAAM,CAAC,IAAI,8EAA8E;YACxG,gBAAgB,MAAM,CAAC,MAAM,0EAA0E;YACvG,gBAAgB,MAAM,CAAC,SAAS;;;;;;;;;;;;;YAavB;YACT,+CAA+C,MAAM,CAAC,SAAS;6BACrC;YAC1B,gBAAgB,MAAM,CAAC,SAAS;;;;;;;2BAOR;YACxB,gBAAgB,MAAM,CAAC,MAAM;;;;;YAKpB;SACT;KACD;IACD;QACC,OAAO,EAAE,CAAC;QACV,UAAU,EAAE;YACX,2CAA2C,MAAM,CAAC,SAAS,4CAA4C;YACvG,yCAAyC,MAAM,CAAC,SAAS,yBAAyB;YAClF,oGAAoG;YACpG,yCAAyC,MAAM,CAAC,SAAS,yCAAyC;SAClG;KACD;CACD,CAAC;AAEF,uFAAuF;AACvF,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,OAAO,CAAC;AAUvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAkB;IACxD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,CAAgC,iBAAiB,CAAC,CAAC;IAChF,IAAI,QAAQ,EAAE,QAAQ,KAAK,OAAO;QACjC,MAAM,IAAI,KAAK,CAAC,mCAAmC,QAAQ,EAAE,QAAQ,aAAa,CAAC,CAAC;IACrF,MAAM,qBAAqB,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,GAAG,CACxB,uDAAuD,MAAM,CAAC,IAAI,sBAAsB,CACxF,CAAC;IACF,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAC9E,OAAO,IAAI,CAAC;AACb,CAAC;AAED,qFAAqF;AACrF,MAAM,YAAY,GAAG;iDAC4B,MAAM,CAAC,IAAI,8CAA8C,CAAC;AAE3G,qGAAqG;AACrG,KAAK,UAAU,WAAW,CAAC,EAAkB;IAC5C,IAAI,GAAoF,CAAC;IACzF,IAAI,CAAC;QACJ,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACR,0GAA0G;QAC1G,iDAAiD;QACjD,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACpG,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;AAC7G,CAAC","sourcesContent":["// The store's own SQL schema (slice 6a §2): its metadata, the recorded table definitions, the documents engine's\n// records and revisions, and the outbox; versioned by `applySqliteMigrations`. Declared tables are named\n// `\"<owner>:<table>\"`, so no name here can meet one of them.\n\nimport { applySqliteMigrations, type SqliteDatabase, type SqliteMigration } from \"../sqlite/index.ts\";\n\n/** The store's tables. */\nexport const TABLES = {\n\tmeta: \"chord_meta\",\n\ttables: \"chord_tables\",\n\tdocuments: \"chord_documents\",\n\trevisions: \"chord_revisions\",\n\toutbox: \"chord_outbox\",\n} as const;\n\n/**\n * The schema history; never change an entry, append one (nothing is deployed yet: slice 6b changed entry 1 in place).\n * `chord_meta` is one row: `last_seq`, the allocator's next id (D3; from 2, id 1 is Durable's root conversation), and\n * the outbox setting with its floor (the seq it starts after, advanced by `trim`). A document record keeps its\n * history rule (R1), its current base's version and fingerprint and a `revision` counter for the conditional\n * `UPDATE`; the partial unique index refuses two live records at one address. Entry 2 adds the indexes of reads at a\n * point (slice 6b §1.5): an address's incarnations by creation, an owner's namespace by id, a document's bases (a\n * partial index: deltas write no entry).\n */\nconst MIGRATIONS: readonly SqliteMigration[] = [\n\t{\n\t\tversion: 1,\n\t\tstatements: [\n\t\t\t`CREATE TABLE ${TABLES.meta} (\n\t\t\t\tsingleton INTEGER PRIMARY KEY CHECK (singleton = 1),\n\t\t\t\tlast_seq INTEGER NOT NULL,\n\t\t\t\tnext_id INTEGER NOT NULL,\n\t\t\t\toutbox INTEGER NOT NULL CHECK (outbox IN (0, 1)),\n\t\t\t\toutbox_floor INTEGER NOT NULL\n\t\t\t) STRICT`,\n\t\t\t`INSERT INTO ${TABLES.meta} (singleton, last_seq, next_id, outbox, outbox_floor) VALUES (1, 0, 2, 0, 0)`,\n\t\t\t`CREATE TABLE ${TABLES.tables} (name TEXT PRIMARY KEY, definition TEXT NOT NULL) STRICT, WITHOUT ROWID`,\n\t\t\t`CREATE TABLE ${TABLES.documents} (\n\t\t\t\tid INTEGER PRIMARY KEY,\n\t\t\t\towner TEXT NOT NULL,\n\t\t\t\tnamespace TEXT NOT NULL,\n\t\t\t\tkind TEXT NOT NULL,\n\t\t\t\tkey TEXT NOT NULL,\n\t\t\t\thistory TEXT NOT NULL CHECK (history IN ('none', 'latest', 'rewindable')),\n\t\t\t\tcreated_at INTEGER NOT NULL,\n\t\t\t\tretired_at INTEGER,\n\t\t\t\tmeta TEXT,\n\t\t\t\trevision INTEGER NOT NULL,\n\t\t\t\tversion INTEGER NOT NULL,\n\t\t\t\tfingerprint TEXT NOT NULL\n\t\t\t) STRICT`,\n\t\t\t`CREATE UNIQUE INDEX chord_documents_live ON ${TABLES.documents} (owner, namespace, kind, key)\n\t\t\t\tWHERE retired_at IS NULL`,\n\t\t\t`CREATE TABLE ${TABLES.revisions} (\n\t\t\t\tdocument_id INTEGER NOT NULL,\n\t\t\t\tseq INTEGER NOT NULL,\n\t\t\t\tkind TEXT NOT NULL CHECK (kind IN ('base', 'delta')),\n\t\t\t\tversion INTEGER NOT NULL,\n\t\t\t\tcontent TEXT NOT NULL,\n\t\t\t\tPRIMARY KEY (document_id, seq)\n\t\t\t) STRICT, WITHOUT ROWID`,\n\t\t\t`CREATE TABLE ${TABLES.outbox} (\n\t\t\t\tseq INTEGER PRIMARY KEY,\n\t\t\t\tformat INTEGER NOT NULL,\n\t\t\t\tnext_id INTEGER NOT NULL,\n\t\t\t\twrites TEXT NOT NULL\n\t\t\t) STRICT`,\n\t\t],\n\t},\n\t{\n\t\tversion: 2,\n\t\tstatements: [\n\t\t\t`CREATE INDEX chord_documents_address ON ${TABLES.documents} (owner, namespace, kind, key, created_at)`,\n\t\t\t`CREATE INDEX chord_documents_scope ON ${TABLES.documents} (owner, namespace, id)`,\n\t\t\t// Only bases are looked up by it (a load's newest base at or below a point): deltas write no entry.\n\t\t\t`CREATE INDEX chord_revisions_bases ON ${TABLES.revisions} (document_id, seq) WHERE kind = 'base'`,\n\t\t],\n\t},\n];\n\n/** The store's schema version: the newest entry of its history (archives carry it). */\nexport const STORE_SCHEMA = MIGRATIONS.at(-1)!.version;\n\n/** The store's metadata row, as `openStore` reads it once. */\nexport type MetaRow = {\n\treadonly last_seq: number;\n\treadonly next_id: number;\n\treadonly outbox: number;\n\treadonly outbox_floor: number;\n};\n\n/**\n * Brings `db` to the store's newest schema (one transaction) and checks that it stores text as UTF-8 (the store\n * compares text by its bytes); returns the metadata row. A store already there is read in one statement, without the\n * migrations' write transaction (most opens: the cost of a reopen).\n */\nexport async function applyStoreSchema(db: SqliteDatabase): Promise<MetaRow> {\n\tconst current = await currentMeta(db);\n\tif (current !== undefined) return current;\n\tconst encoding = await db.get<{ readonly encoding: string }>(\"PRAGMA encoding\");\n\tif (encoding?.encoding !== \"UTF-8\")\n\t\tthrow new Error(`store: the database encoding is ${encoding?.encoding}, not UTF-8`);\n\tawait applySqliteMigrations(db, MIGRATIONS, { table: \"chord_store_schema\" });\n\tconst meta = await db.get<MetaRow>(\n\t\t`SELECT last_seq, next_id, outbox, outbox_floor FROM ${TABLES.meta} WHERE singleton = 1`,\n\t);\n\tif (meta === undefined) throw new Error(\"store: the metadata row is missing\");\n\treturn meta;\n}\n\n/** The schema version, the encoding and the metadata row of a store, in one read. */\nconst CURRENT_META = `SELECT s.version, e.encoding, m.last_seq, m.next_id, m.outbox, m.outbox_floor\n\tFROM chord_store_schema s, pragma_encoding e, ${TABLES.meta} m WHERE s.singleton = 1 AND m.singleton = 1`;\n\n/** The metadata row of a store at the newest schema in UTF-8; `undefined` for any other database. */\nasync function currentMeta(db: SqliteDatabase): Promise<MetaRow | undefined> {\n\tlet row: (MetaRow & { readonly version: number; readonly encoding: string }) | undefined;\n\ttry {\n\t\trow = await db.get(CURRENT_META);\n\t} catch {\n\t\t// A database without the store's tables (new, or not a store) or a backend without `pragma_encoding`: the\n\t\t// migrations' path creates, refuses or reads it.\n\t\treturn undefined;\n\t}\n\tif (row === undefined || row.version !== STORE_SCHEMA || row.encoding !== \"UTF-8\") return undefined;\n\treturn { last_seq: row.last_seq, next_id: row.next_id, outbox: row.outbox, outbox_floor: row.outbox_floor };\n}\n"]}
@@ -0,0 +1,73 @@
1
+ import type { SqliteValue } from "../sqlite/index.ts";
2
+ import type { Column, ColumnRecord } from "./columns.ts";
3
+ import type { SetNode, WhereNode } from "./expression.ts";
4
+ /** A statement and its parameters. */
5
+ export type Statement = {
6
+ readonly sql: string;
7
+ readonly params: SqliteValue[];
8
+ };
9
+ /** An order of rows: the order columns (the key appended as the tie-break) and one direction. */
10
+ export type Order = {
11
+ readonly columns: readonly string[];
12
+ readonly direction: "asc" | "desc";
13
+ };
14
+ /** A quoted SQL identifier. */
15
+ export declare function quote(name: string): string;
16
+ /** The SQL name of an owner's table: `<owner>:<table>` (R2), injective since neither part contains `:`. */
17
+ export declare function tableSqlName(owner: string, table: string): string;
18
+ /**
19
+ * `CREATE TABLE` for `columns` (as recorded) and `key`: `STRICT`, the key as primary key (`WITHOUT ROWID`, except
20
+ * for a single `int` key, which becomes the rowid: the fastest point lookups, and rows of any size), an `int`
21
+ * column checked within ±(2^53 - 1) (rule 10), a `bool` one within 0 and 1, a `json(...)` one as `TEXT` with its
22
+ * version column, and the row's `$v`.
23
+ */
24
+ export declare function createTableSql(table: string, columns: {
25
+ readonly [name: string]: ColumnRecord;
26
+ }, key: readonly string[]): string;
27
+ /** The definitions of one column: itself, and a `json(...)` column's version column. */
28
+ export declare function columnSql(name: string, column: ColumnRecord): string[];
29
+ /**
30
+ * The physical columns of a recorded table in the order `RowCodec.physical` uses (`physicalColumns`), and its
31
+ * whole-row `INSERT OR REPLACE` over them.
32
+ */
33
+ export declare function recordedPut(table: string, columns: {
34
+ readonly [name: string]: ColumnRecord;
35
+ }): {
36
+ readonly physical: readonly string[];
37
+ readonly sql: string;
38
+ };
39
+ /** `CREATE INDEX` named `<table>:<index>` over `columns`, the key appended (every index ends with it). */
40
+ export declare function createIndexSql(table: string, index: string, columns: readonly string[], key: readonly string[]): string;
41
+ /** `DROP INDEX` of `<table>:<index>`. */
42
+ export declare function dropIndexSql(table: string, index: string): string;
43
+ /**
44
+ * The statements of one table at one version, rendered once per table handle: the fixed ones as texts, the ones
45
+ * over compiled conditions and `set`s on demand.
46
+ */
47
+ export declare class TableSql {
48
+ #private;
49
+ readonly table: string;
50
+ /** `INSERT OR REPLACE` of a whole row, in `RowCodec.physical`'s order (`put` is an upsert). */
51
+ readonly put: string;
52
+ readonly get: string;
53
+ readonly delete: string;
54
+ constructor(table: string, columns: readonly Pick<Column, "name" | "type">[], physical: readonly string[], key: readonly string[]);
55
+ /** `SELECT` of `columns` of one row by key: a point lookup, without the `ORDER BY` and `LIMIT` of a page. */
56
+ getColumns(columns: readonly string[]): string;
57
+ /** `UPDATE` of one row by key; `versions` gives each `json(...)` column's version to stamp. */
58
+ update(set: SetNode, key: readonly SqliteValue[], versions: ReadonlyMap<string, number>): Statement;
59
+ /** `UPDATE` of every row matching `where`. */
60
+ updateWhere(where: WhereNode, set: SetNode, versions: ReadonlyMap<string, number>): Statement;
61
+ /** `DELETE` of every row matching `where`. */
62
+ deleteWhere(where: WhereNode): Statement;
63
+ /**
64
+ * A page: rows matching `where` in `order`, after the order values `after` (row-value comparison; the key in the
65
+ * order makes it total), at most `limit` (bound); every column, or only `columns`.
66
+ */
67
+ select(where: WhereNode | undefined, order: Order, after: readonly SqliteValue[] | undefined, limit: number, columns?: readonly string[]): Statement;
68
+ /** `count(*)` of the rows matching `where`. */
69
+ count(where: WhereNode | undefined): Statement;
70
+ }
71
+ /** A condition with its operands bound; SQL's `NULL` rules are the vocabulary's. */
72
+ export declare function whereSql(node: WhereNode, params: SqliteValue[]): string;
73
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/store/sql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/store/sql.ts"],"names":[],"mappings":"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","sourcesContent":["// SQL of declared tables (slice 6a §5, §6, §7): the DDL a table definition renders, and the statements of its reads\n// and writes, generated from the compiled vocabulary with every value bound and every identifier quoted. Names were\n// checked at declaration (and at import), so no `\"` occurs in them and quoting is always safe.\n\nimport type { SqliteValue } from \"../sqlite/index.ts\";\nimport type { Column, ColumnRecord } from \"./columns.ts\";\nimport type { ExprNode, SetNode, WhereNode } from \"./expression.ts\";\nimport { physicalColumns, ROW_VERSION, toSqlite, versionColumn } from \"./rows.ts\";\nimport { prefixUpperBound } from \"./text.ts\";\n\n/** A statement and its parameters. */\nexport type Statement = { readonly sql: string; readonly params: SqliteValue[] };\n\n/** An order of rows: the order columns (the key appended as the tie-break) and one direction. */\nexport type Order = { readonly columns: readonly string[]; readonly direction: \"asc\" | \"desc\" };\n\n/** A quoted SQL identifier. */\nexport function quote(name: string): string {\n\treturn `\"${name}\"`;\n}\n\n/** The SQL name of an owner's table: `<owner>:<table>` (R2), injective since neither part contains `:`. */\nexport function tableSqlName(owner: string, table: string): string {\n\treturn `${owner}:${table}`;\n}\n\n/**\n * `CREATE TABLE` for `columns` (as recorded) and `key`: `STRICT`, the key as primary key (`WITHOUT ROWID`, except\n * for a single `int` key, which becomes the rowid: the fastest point lookups, and rows of any size), an `int`\n * column checked within ±(2^53 - 1) (rule 10), a `bool` one within 0 and 1, a `json(...)` one as `TEXT` with its\n * version column, and the row's `$v`.\n */\nexport function createTableSql(\n\ttable: string,\n\tcolumns: { readonly [name: string]: ColumnRecord },\n\tkey: readonly string[],\n): string {\n\tconst definitions = Object.entries(columns).flatMap(([name, column]) => columnSql(name, column));\n\tdefinitions.push(`${quote(ROW_VERSION)} INTEGER NOT NULL`);\n\tdefinitions.push(`PRIMARY KEY (${key.map(quote).join(\", \")})`);\n\tconst rowid = key.length === 1 && columns[key[0]!]!.type === \"int\";\n\treturn `CREATE TABLE ${quote(table)} (${definitions.join(\", \")}) STRICT${rowid ? \"\" : \", WITHOUT ROWID\"}`;\n}\n\nconst SAFE = Number.MAX_SAFE_INTEGER;\n\n/** The definitions of one column: itself, and a `json(...)` column's version column. */\nexport function columnSql(name: string, column: ColumnRecord): string[] {\n\tconst nullability = column.optional ? \"\" : \" NOT NULL\";\n\tconst defaulted = column.default === undefined ? \"\" : ` DEFAULT ${literal(column.default)}`;\n\tconst id = quote(name);\n\tswitch (column.type) {\n\t\tcase \"str\":\n\t\t\treturn [`${id} TEXT${nullability}${defaulted}`];\n\t\tcase \"int\":\n\t\t\treturn [`${id} INTEGER${nullability}${defaulted} CHECK (${id} BETWEEN ${-SAFE} AND ${SAFE})`];\n\t\tcase \"num\":\n\t\t\treturn [`${id} REAL${nullability}${defaulted}`];\n\t\tcase \"bool\":\n\t\t\treturn [`${id} INTEGER${nullability}${defaulted} CHECK (${id} IN (0, 1))`];\n\t\tcase \"json\":\n\t\t\treturn [`${id} TEXT${nullability}`, `${quote(versionColumn(name))} INTEGER${nullability}`];\n\t}\n}\n\n/** A default as a SQL literal: declaration data (checked), which DDL cannot bind. */\nfunction literal(value: string | number | boolean): string {\n\tif (typeof value === \"string\") return `'${value.replaceAll(\"'\", \"''\")}'`;\n\treturn typeof value === \"boolean\" ? (value ? \"1\" : \"0\") : String(value);\n}\n\n/**\n * The physical columns of a recorded table in the order `RowCodec.physical` uses (`physicalColumns`), and its\n * whole-row `INSERT OR REPLACE` over them.\n */\nexport function recordedPut(\n\ttable: string,\n\tcolumns: { readonly [name: string]: ColumnRecord },\n): { readonly physical: readonly string[]; readonly sql: string } {\n\tconst physical = physicalColumns(Object.entries(columns).map(([name, { type }]) => ({ name, type })));\n\treturn { physical, sql: putSql(table, physical) };\n}\n\n/** `INSERT OR REPLACE` of a whole row over `physical` (`put` is an upsert). */\nfunction putSql(table: string, physical: readonly string[]): string {\n\treturn `INSERT OR REPLACE INTO ${quote(table)} (${physical.map(quote).join(\", \")}) VALUES (${physical.map(() => \"?\").join(\", \")})`;\n}\n\n/** `CREATE INDEX` named `<table>:<index>` over `columns`, the key appended (every index ends with it). */\nexport function createIndexSql(\n\ttable: string,\n\tindex: string,\n\tcolumns: readonly string[],\n\tkey: readonly string[],\n): string {\n\tconst all = [...columns, ...key.filter((column) => !columns.includes(column))];\n\treturn `CREATE INDEX ${quote(`${table}:${index}`)} ON ${quote(table)} (${all.map(quote).join(\", \")})`;\n}\n\n/** `DROP INDEX` of `<table>:<index>`. */\nexport function dropIndexSql(table: string, index: string): string {\n\treturn `DROP INDEX ${quote(`${table}:${index}`)}`;\n}\n\n/**\n * The statements of one table at one version, rendered once per table handle: the fixed ones as texts, the ones\n * over compiled conditions and `set`s on demand.\n */\nexport class TableSql {\n\treadonly table: string;\n\t/** The columns a read selects: the declared ones and each `json(...)` column's version. */\n\treadonly #select: string;\n\treadonly #byKey: string;\n\t/** `INSERT OR REPLACE` of a whole row, in `RowCodec.physical`'s order (`put` is an upsert). */\n\treadonly put: string;\n\treadonly get: string;\n\treadonly delete: string;\n\n\tconstructor(\n\t\ttable: string,\n\t\tcolumns: readonly Pick<Column, \"name\" | \"type\">[],\n\t\tphysical: readonly string[],\n\t\tkey: readonly string[],\n\t) {\n\t\tthis.table = table;\n\t\tconst id = quote(table);\n\t\tthis.#select = [\n\t\t\t...columns.map(({ name }) => quote(name)),\n\t\t\t...columns.filter(({ type }) => type === \"json\").map(({ name }) => quote(versionColumn(name))),\n\t\t].join(\", \");\n\t\tthis.#byKey = key.map((column) => `${quote(column)} = ?`).join(\" AND \");\n\t\tthis.put = putSql(table, physical);\n\t\tthis.get = `SELECT ${this.#select} FROM ${id} WHERE ${this.#byKey}`;\n\t\tthis.delete = `DELETE FROM ${id} WHERE ${this.#byKey}`;\n\t}\n\n\t/** `SELECT` of `columns` of one row by key: a point lookup, without the `ORDER BY` and `LIMIT` of a page. */\n\tgetColumns(columns: readonly string[]): string {\n\t\treturn `SELECT ${columns.map(quote).join(\", \")} FROM ${quote(this.table)} WHERE ${this.#byKey}`;\n\t}\n\n\t/** `UPDATE` of one row by key; `versions` gives each `json(...)` column's version to stamp. */\n\tupdate(set: SetNode, key: readonly SqliteValue[], versions: ReadonlyMap<string, number>): Statement {\n\t\tconst params: SqliteValue[] = [];\n\t\tconst assignments = setSql(set, versions, params);\n\t\tparams.push(...key);\n\t\treturn { sql: `UPDATE ${quote(this.table)} SET ${assignments} WHERE ${this.#byKey}`, params };\n\t}\n\n\t/** `UPDATE` of every row matching `where`. */\n\tupdateWhere(where: WhereNode, set: SetNode, versions: ReadonlyMap<string, number>): Statement {\n\t\tconst params: SqliteValue[] = [];\n\t\tconst assignments = setSql(set, versions, params);\n\t\tconst condition = whereSql(where, params);\n\t\treturn { sql: `UPDATE ${quote(this.table)} SET ${assignments} WHERE ${condition}`, params };\n\t}\n\n\t/** `DELETE` of every row matching `where`. */\n\tdeleteWhere(where: WhereNode): Statement {\n\t\tconst params: SqliteValue[] = [];\n\t\treturn { sql: `DELETE FROM ${quote(this.table)} WHERE ${whereSql(where, params)}`, params };\n\t}\n\n\t/**\n\t * A page: rows matching `where` in `order`, after the order values `after` (row-value comparison; the key in the\n\t * order makes it total), at most `limit` (bound); every column, or only `columns`.\n\t */\n\tselect(\n\t\twhere: WhereNode | undefined,\n\t\torder: Order,\n\t\tafter: readonly SqliteValue[] | undefined,\n\t\tlimit: number,\n\t\tcolumns?: readonly string[],\n\t): Statement {\n\t\tconst params: SqliteValue[] = [];\n\t\tconst conditions: string[] = [];\n\t\tif (where !== undefined) conditions.push(whereSql(where, params));\n\t\tif (after !== undefined) {\n\t\t\tconst columns = order.columns.map(quote).join(\", \");\n\t\t\tconditions.push(`(${columns}) ${order.direction === \"asc\" ? \">\" : \"<\"} (${after.map(() => \"?\").join(\", \")})`);\n\t\t\tparams.push(...after);\n\t\t}\n\t\tconst filter = conditions.length === 0 ? \"\" : ` WHERE ${conditions.join(\" AND \")}`;\n\t\tconst direction = order.direction === \"asc\" ? \"ASC\" : \"DESC\";\n\t\tconst sorting = order.columns.map((column) => `${quote(column)} ${direction}`).join(\", \");\n\t\tparams.push(limit);\n\t\tconst select = columns === undefined ? this.#select : columns.map(quote).join(\", \");\n\t\treturn { sql: `SELECT ${select} FROM ${quote(this.table)}${filter} ORDER BY ${sorting} LIMIT ?`, params };\n\t}\n\n\t/** `count(*)` of the rows matching `where`. */\n\tcount(where: WhereNode | undefined): Statement {\n\t\tconst params: SqliteValue[] = [];\n\t\tconst filter = where === undefined ? \"\" : ` WHERE ${whereSql(where, params)}`;\n\t\treturn { sql: `SELECT count(*) AS count FROM ${quote(this.table)}${filter}`, params };\n\t}\n}\n\n/** The assignments of `set`; a written `json(...)` column also stamps its version (a clear stamps `NULL`). */\nfunction setSql(set: SetNode, versions: ReadonlyMap<string, number>, params: SqliteValue[]): string {\n\tconst assignments: string[] = [];\n\tfor (const [column, node] of Object.entries(set)) {\n\t\tassignments.push(`${quote(column)} = ${exprSql(node, params)}`);\n\t\tconst version = versions.get(column);\n\t\tif (version !== undefined) {\n\t\t\tassignments.push(`${quote(versionColumn(column))} = ?`);\n\t\t\tparams.push(node === null ? null : version);\n\t\t}\n\t}\n\treturn assignments.join(\", \");\n}\n\nfunction exprSql(node: ExprNode, params: SqliteValue[]): string {\n\tif (node === null) return \"NULL\";\n\tif (typeof node !== \"object\") {\n\t\tparams.push(toSqlite(node));\n\t\treturn \"?\";\n\t}\n\tif (\"col\" in node) return quote(node.col);\n\tif (\"json\" in node) {\n\t\t// Serialized once at staging already (rule 8): this cannot throw.\n\t\tparams.push(JSON.stringify(node.json));\n\t\treturn \"?\";\n\t}\n\tif (\"when\" in node) {\n\t\tconst [condition, a, b] = node.when;\n\t\treturn `(CASE WHEN ${whereSql(condition, params)} THEN ${exprSql(a, params)} ELSE ${exprSql(b, params)} END)`;\n\t}\n\tif (\"replacePrefix\" in node) {\n\t\tconst [subject, from, to] = node.replacePrefix;\n\t\tconst length = [...from].length;\n\t\t// SQLite's `substr` counts characters of UTF-8 text: code points, as the prefix's length does.\n\t\t// Parameters in the order their `?` occur in the text.\n\t\tconst value = exprSql(subject, params);\n\t\tparams.push(length, from, to);\n\t\tconst rest = exprSql(subject, params);\n\t\tparams.push(length + 1);\n\t\tconst unchanged = exprSql(subject, params);\n\t\treturn `(CASE WHEN substr(${value}, 1, ?) = ? THEN ? || substr(${rest}, ?) ELSE ${unchanged} END)`;\n\t}\n\tif (\"coalesce\" in node)\n\t\treturn `coalesce(${exprSql(node.coalesce[0], params)}, ${exprSql(node.coalesce[1], params)})`;\n\tif (\"add\" in node) return `(${exprSql(node.add[0], params)} + ${exprSql(node.add[1], params)})`;\n\tif (\"sub\" in node) return `(${exprSql(node.sub[0], params)} - ${exprSql(node.sub[1], params)})`;\n\tif (\"max\" in node) return `max(${exprSql(node.max[0], params)}, ${exprSql(node.max[1], params)})`;\n\tif (\"min\" in node) return `min(${exprSql(node.min[0], params)}, ${exprSql(node.min[1], params)})`;\n\treturn `(${exprSql(node.concat[0], params)} || ${exprSql(node.concat[1], params)})`;\n}\n\nconst COMPARISONS = { eq: \"=\", ne: \"<>\", lt: \"<\", lte: \"<=\", gt: \">\", gte: \">=\" } as const;\n\n/** A condition with its operands bound; SQL's `NULL` rules are the vocabulary's. */\nexport function whereSql(node: WhereNode, params: SqliteValue[]): string {\n\tif (\"and\" in node)\n\t\treturn node.and.length === 0 ? \"1\" : `(${node.and.map((each) => whereSql(each, params)).join(\" AND \")})`;\n\tif (\"or\" in node)\n\t\treturn node.or.length === 0 ? \"0\" : `(${node.or.map((each) => whereSql(each, params)).join(\" OR \")})`;\n\tif (\"not\" in node) return `(NOT ${whereSql(node.not, params)})`;\n\tif (\"isNull\" in node) return `${quote(node.isNull)} IS NULL`;\n\tif (\"inArray\" in node) {\n\t\tconst [column, values] = node.inArray;\n\t\tparams.push(JSON.stringify(values.map(toSqlite)));\n\t\treturn `${quote(column)} IN (SELECT value FROM json_each(?))`;\n\t}\n\tif (\"prefix\" in node) {\n\t\tconst [column, prefix] = node.prefix;\n\t\tconst upper = prefixUpperBound(prefix);\n\t\tparams.push(prefix);\n\t\tif (upper === undefined) return `${quote(column)} >= ?`;\n\t\tparams.push(upper);\n\t\treturn `(${quote(column)} >= ? AND ${quote(column)} < ?)`;\n\t}\n\t// The remaining nodes are the comparisons, one entry each; `Object.entries` loses that.\n\tconst [op, [column, value]] = Object.entries(node)[0] as [\n\t\tkeyof typeof COMPARISONS,\n\t\treadonly [string, string | number | boolean],\n\t];\n\tparams.push(toSqlite(value));\n\treturn `${quote(column)} ${COMPARISONS[op]} ?`;\n}\n"]}
@@ -0,0 +1,50 @@
1
+ import type { SqliteExecutor, SqliteValue } from "../sqlite/index.ts";
2
+ import type { IdAllocator } from "./allocator.ts";
3
+ import type { TableRecord } from "./catalog.ts";
4
+ import type { StoreWrite } from "./writes.ts";
5
+ /**
6
+ * Where a staged write goes in its commit: retirements, creations, then everything else, each phase in staging order.
7
+ * A retirement frees a live address before a creation takes it (the partial unique index); an adapter's composite
8
+ * write orders its own parts inside `write`.
9
+ */
10
+ export type WriteOrder = "retire" | "create" | "write";
11
+ /** A write staged for the commit step: its order and what it does there, returning the writes as recorded. */
12
+ export type StagedWrite = {
13
+ readonly order: WriteOrder;
14
+ /**
15
+ * Applies the write inside the step's backend transaction; resolves with the writes as the outbox records them, in
16
+ * the order applied, with what only the step knows resolved (its seq, a record's revision).
17
+ */
18
+ apply(step: Step): Promise<readonly StoreWrite[]>;
19
+ };
20
+ /**
21
+ * One commit step: its backend transaction, its seq, the store's id allocator (D3: ids are taken from it as the
22
+ * writes apply, never copied), the ids of the documents it created, the table records it changed (the store's catalog
23
+ * takes them after `COMMIT`), the statements it ran (`chord.store.statements`) and the table rows its writes changed
24
+ * (`chord.commit`'s `rows`). Its reads are the step reader of adapters: they see the step's own writes.
25
+ */
26
+ export declare class Step {
27
+ #private;
28
+ readonly executor: SqliteExecutor;
29
+ readonly seq: number;
30
+ readonly ids: IdAllocator;
31
+ /** The ids of the commit's created documents, in the order of their writes. */
32
+ readonly created: number[];
33
+ /** The table records this step changed, by SQL name. */
34
+ readonly tables: Map<string, TableRecord>;
35
+ statements: number;
36
+ /** Table rows its writes changed: a `put` one, the others the count their statement returned. */
37
+ rows: number;
38
+ constructor(executor: SqliteExecutor, seq: number, ids: IdAllocator, catalog: ReadonlyMap<string, TableRecord>);
39
+ /** The record of table `name` as this step leaves it so far. */
40
+ table(name: string): TableRecord | undefined;
41
+ /** Runs one statement. */
42
+ run(sql: string, ...params: SqliteValue[]): Promise<void>;
43
+ /** Runs one statement and resolves with the rows it changed. */
44
+ runCounted(sql: string, ...params: SqliteValue[]): Promise<number>;
45
+ /** Runs one query for its first row. */
46
+ get<T extends object>(sql: string, ...params: SqliteValue[]): Promise<T | undefined>;
47
+ /** Runs one query. */
48
+ all<T extends object>(sql: string, ...params: SqliteValue[]): Promise<T[]>;
49
+ }
50
+ //# sourceMappingURL=step.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/store/step.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvD,8GAA8G;AAC9G,MAAM,MAAM,WAAW,GAAG;IACzB,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;CAClD,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,IAAI;;IAChB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IAChC,wDAAwD;IACxD,QAAQ,CAAC,MAAM,2BAAkC;IAEjD,UAAU,SAAK;IACf,iGAAiG;IACjG,IAAI,SAAK;IAET,YAAY,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EAK7G;IAED,gEAAgE;IAChE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE3C;IAED,0BAA0B;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxD;IAED,gEAAgE;IAChE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE;IAED,wCAAwC;IACxC,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAGnF;IAED,sBAAsB;IACtB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAGzE;CACD"}