@graview/core 0.1.48 → 0.1.50

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 (292) hide show
  1. package/dist/answer-seen.js +2 -2
  2. package/dist/answer-seen.js.map +1 -1
  3. package/dist/app.d.ts +11 -0
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js.map +1 -1
  6. package/dist/capabilities.d.ts +7 -1
  7. package/dist/capabilities.d.ts.map +1 -1
  8. package/dist/capabilities.js.map +1 -1
  9. package/dist/cli/check/forms.js +2 -2
  10. package/dist/cli/check/forms.js.map +1 -1
  11. package/dist/cli/check/index.d.ts +1 -0
  12. package/dist/cli/check/index.d.ts.map +1 -1
  13. package/dist/cli/check/index.js +1 -0
  14. package/dist/cli/check/index.js.map +1 -1
  15. package/dist/cli/check/policy.d.ts.map +1 -1
  16. package/dist/cli/check/policy.js +9 -1
  17. package/dist/cli/check/policy.js.map +1 -1
  18. package/dist/cli/check/publishing.d.ts +13 -0
  19. package/dist/cli/check/publishing.d.ts.map +1 -0
  20. package/dist/cli/check/publishing.js +36 -0
  21. package/dist/cli/check/publishing.js.map +1 -0
  22. package/dist/cli/check/relations.d.ts.map +1 -1
  23. package/dist/cli/check/relations.js +4 -1
  24. package/dist/cli/check/relations.js.map +1 -1
  25. package/dist/cli/check.d.ts.map +1 -1
  26. package/dist/cli/check.js +2 -1
  27. package/dist/cli/check.js.map +1 -1
  28. package/dist/cli/describe.d.ts.map +1 -1
  29. package/dist/cli/describe.js +15 -0
  30. package/dist/cli/describe.js.map +1 -1
  31. package/dist/cli/docs.d.ts.map +1 -1
  32. package/dist/cli/docs.js +2 -1
  33. package/dist/cli/docs.js.map +1 -1
  34. package/dist/cli/index.d.ts +1 -0
  35. package/dist/cli/index.d.ts.map +1 -1
  36. package/dist/cli/index.js +3 -1
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/document/act-spellings.d.ts +12 -0
  39. package/dist/document/act-spellings.d.ts.map +1 -0
  40. package/dist/document/act-spellings.js +56 -0
  41. package/dist/document/act-spellings.js.map +1 -0
  42. package/dist/document/blocks.d.ts.map +1 -1
  43. package/dist/document/blocks.js +4 -2
  44. package/dist/document/blocks.js.map +1 -1
  45. package/dist/document/compile.d.ts.map +1 -1
  46. package/dist/document/compile.js +5 -2
  47. package/dist/document/compile.js.map +1 -1
  48. package/dist/document/compiled.d.ts.map +1 -1
  49. package/dist/document/compiled.js +5 -0
  50. package/dist/document/compiled.js.map +1 -1
  51. package/dist/document/describe-forms.js +2 -2
  52. package/dist/document/describe-forms.js.map +1 -1
  53. package/dist/document/field-spec.d.ts.map +1 -1
  54. package/dist/document/field-spec.js +8 -2
  55. package/dist/document/field-spec.js.map +1 -1
  56. package/dist/document/format-findings.d.ts.map +1 -1
  57. package/dist/document/format-findings.js +5 -0
  58. package/dist/document/format-findings.js.map +1 -1
  59. package/dist/document/page-fields.d.ts.map +1 -1
  60. package/dist/document/page-fields.js +8 -6
  61. package/dist/document/page-fields.js.map +1 -1
  62. package/dist/document/schema.d.ts +13 -0
  63. package/dist/document/schema.d.ts.map +1 -1
  64. package/dist/document/schema.js +16 -0
  65. package/dist/document/schema.js.map +1 -1
  66. package/dist/document/to-document.d.ts.map +1 -1
  67. package/dist/document/to-document.js +1 -0
  68. package/dist/document/to-document.js.map +1 -1
  69. package/dist/document.schema.json +42 -2
  70. package/dist/field-sight.js +5 -4
  71. package/dist/field-sight.js.map +1 -1
  72. package/dist/format-error.d.ts +54 -0
  73. package/dist/format-error.d.ts.map +1 -0
  74. package/dist/format-error.js +73 -0
  75. package/dist/format-error.js.map +1 -0
  76. package/dist/formats.d.ts +16 -13
  77. package/dist/formats.d.ts.map +1 -1
  78. package/dist/formats.js +18 -17
  79. package/dist/formats.js.map +1 -1
  80. package/dist/forms.d.ts +1 -1
  81. package/dist/forms.d.ts.map +1 -1
  82. package/dist/forms.js +1 -1
  83. package/dist/forms.js.map +1 -1
  84. package/dist/graph/diff.js +1 -1
  85. package/dist/graph/diff.js.map +1 -1
  86. package/dist/graph/edge-fields.d.ts +20 -0
  87. package/dist/graph/edge-fields.d.ts.map +1 -0
  88. package/dist/graph/edge-fields.js +21 -0
  89. package/dist/graph/edge-fields.js.map +1 -0
  90. package/dist/graph/graph.d.ts +3 -0
  91. package/dist/graph/graph.d.ts.map +1 -1
  92. package/dist/graph/graph.js +57 -4
  93. package/dist/graph/graph.js.map +1 -1
  94. package/dist/graph/primitives.d.ts +22 -2
  95. package/dist/graph/primitives.d.ts.map +1 -1
  96. package/dist/graph/primitives.js +20 -0
  97. package/dist/graph/primitives.js.map +1 -1
  98. package/dist/graph/types.d.ts +15 -1
  99. package/dist/graph/types.d.ts.map +1 -1
  100. package/dist/graph/types.js +0 -0
  101. package/dist/graph/types.js.map +1 -1
  102. package/dist/history.d.ts +23 -2
  103. package/dist/history.d.ts.map +1 -1
  104. package/dist/history.js +23 -3
  105. package/dist/history.js.map +1 -1
  106. package/dist/index.d.ts +19 -7
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +15 -3
  109. package/dist/index.js.map +1 -1
  110. package/dist/integrity.d.ts.map +1 -1
  111. package/dist/integrity.js +2 -1
  112. package/dist/integrity.js.map +1 -1
  113. package/dist/intelligence-bridge.d.ts +11 -2
  114. package/dist/intelligence-bridge.d.ts.map +1 -1
  115. package/dist/linked.d.ts +1 -0
  116. package/dist/linked.d.ts.map +1 -1
  117. package/dist/linked.js +1 -0
  118. package/dist/linked.js.map +1 -1
  119. package/dist/mutations/asked-order.d.ts +54 -0
  120. package/dist/mutations/asked-order.d.ts.map +1 -0
  121. package/dist/mutations/asked-order.js +78 -0
  122. package/dist/mutations/asked-order.js.map +1 -0
  123. package/dist/mutations/define-mutation.d.ts +4 -0
  124. package/dist/mutations/define-mutation.d.ts.map +1 -1
  125. package/dist/mutations/define-mutation.js +32 -8
  126. package/dist/mutations/define-mutation.js.map +1 -1
  127. package/dist/mutations/derive-edits.d.ts.map +1 -1
  128. package/dist/mutations/derive-edits.js +3 -1
  129. package/dist/mutations/derive-edits.js.map +1 -1
  130. package/dist/mutations/form.d.ts +7 -0
  131. package/dist/mutations/form.d.ts.map +1 -1
  132. package/dist/mutations/form.js +9 -0
  133. package/dist/mutations/form.js.map +1 -1
  134. package/dist/mutations/keep-link.d.ts.map +1 -1
  135. package/dist/mutations/keep-link.js +4 -2
  136. package/dist/mutations/keep-link.js.map +1 -1
  137. package/dist/mutations/type-text.d.ts +49 -0
  138. package/dist/mutations/type-text.d.ts.map +1 -0
  139. package/dist/mutations/type-text.js +106 -0
  140. package/dist/mutations/type-text.js.map +1 -0
  141. package/dist/mutations/types.d.ts +8 -0
  142. package/dist/mutations/types.d.ts.map +1 -1
  143. package/dist/mutations/visitor-form.d.ts.map +1 -1
  144. package/dist/mutations/visitor-form.js +4 -4
  145. package/dist/mutations/visitor-form.js.map +1 -1
  146. package/dist/ops/digest.d.ts +17 -6
  147. package/dist/ops/digest.d.ts.map +1 -1
  148. package/dist/ops/digest.js +36 -15
  149. package/dist/ops/digest.js.map +1 -1
  150. package/dist/ops/kept-fields.d.ts +1 -1
  151. package/dist/ops/kept-fields.d.ts.map +1 -1
  152. package/dist/ops/kept-fields.js +4 -1
  153. package/dist/ops/kept-fields.js.map +1 -1
  154. package/dist/ops/lineage.d.ts +37 -5
  155. package/dist/ops/lineage.d.ts.map +1 -1
  156. package/dist/ops/lineage.js +47 -16
  157. package/dist/ops/lineage.js.map +1 -1
  158. package/dist/ops/log.d.ts.map +1 -1
  159. package/dist/ops/log.js +3 -0
  160. package/dist/ops/log.js.map +1 -1
  161. package/dist/ops/provenance.d.ts.map +1 -1
  162. package/dist/ops/provenance.js +3 -1
  163. package/dist/ops/provenance.js.map +1 -1
  164. package/dist/ops/revisions.d.ts +8 -2
  165. package/dist/ops/revisions.d.ts.map +1 -1
  166. package/dist/ops/revisions.js +12 -3
  167. package/dist/ops/revisions.js.map +1 -1
  168. package/dist/ops/served.d.ts.map +1 -1
  169. package/dist/ops/served.js +30 -4
  170. package/dist/ops/served.js.map +1 -1
  171. package/dist/ops/suggestions.d.ts +50 -4
  172. package/dist/ops/suggestions.d.ts.map +1 -1
  173. package/dist/ops/suggestions.js +13 -7
  174. package/dist/ops/suggestions.js.map +1 -1
  175. package/dist/ops/tidying.d.ts +33 -4
  176. package/dist/ops/tidying.d.ts.map +1 -1
  177. package/dist/ops/tidying.js +50 -9
  178. package/dist/ops/tidying.js.map +1 -1
  179. package/dist/ops/types.d.ts +51 -3
  180. package/dist/ops/types.d.ts.map +1 -1
  181. package/dist/ops/types.js +16 -1
  182. package/dist/ops/types.js.map +1 -1
  183. package/dist/ops/undo.d.ts +15 -2
  184. package/dist/ops/undo.d.ts.map +1 -1
  185. package/dist/ops/undo.js +22 -3
  186. package/dist/ops/undo.js.map +1 -1
  187. package/dist/ops/withheld.d.ts.map +1 -1
  188. package/dist/ops/withheld.js +4 -0
  189. package/dist/ops/withheld.js.map +1 -1
  190. package/dist/ops/writers.d.ts.map +1 -1
  191. package/dist/ops/writers.js +3 -0
  192. package/dist/ops/writers.js.map +1 -1
  193. package/dist/past.d.ts +1 -0
  194. package/dist/past.d.ts.map +1 -1
  195. package/dist/past.js +9 -2
  196. package/dist/past.js.map +1 -1
  197. package/dist/persistence/memory.d.ts +1 -1
  198. package/dist/persistence/memory.d.ts.map +1 -1
  199. package/dist/persistence/memory.js +5 -1
  200. package/dist/persistence/memory.js.map +1 -1
  201. package/dist/persistence/sql.d.ts +1 -1
  202. package/dist/persistence/sql.d.ts.map +1 -1
  203. package/dist/persistence/sql.js +45 -5
  204. package/dist/persistence/sql.js.map +1 -1
  205. package/dist/persistence/sqlite.d.ts +1 -0
  206. package/dist/persistence/sqlite.d.ts.map +1 -1
  207. package/dist/persistence/sqlite.js +1 -0
  208. package/dist/persistence/sqlite.js.map +1 -1
  209. package/dist/persistence/types.d.ts +34 -1
  210. package/dist/persistence/types.d.ts.map +1 -1
  211. package/dist/persistence/types.js +35 -1
  212. package/dist/persistence/types.js.map +1 -1
  213. package/dist/presence.d.ts +2 -1
  214. package/dist/presence.d.ts.map +1 -1
  215. package/dist/presence.js +2 -1
  216. package/dist/presence.js.map +1 -1
  217. package/dist/publish.d.ts +78 -0
  218. package/dist/publish.d.ts.map +1 -0
  219. package/dist/publish.js +23 -0
  220. package/dist/publish.js.map +1 -0
  221. package/dist/publishing.d.ts +10 -0
  222. package/dist/publishing.d.ts.map +1 -0
  223. package/dist/publishing.js +168 -0
  224. package/dist/publishing.js.map +1 -0
  225. package/dist/refused.d.ts +13 -6
  226. package/dist/refused.d.ts.map +1 -1
  227. package/dist/refused.js +13 -6
  228. package/dist/refused.js.map +1 -1
  229. package/dist/schema/collaborative.d.ts +14 -0
  230. package/dist/schema/collaborative.d.ts.map +1 -0
  231. package/dist/schema/collaborative.js +65 -0
  232. package/dist/schema/collaborative.js.map +1 -0
  233. package/dist/schema/json-schema.d.ts +1 -1
  234. package/dist/schema/json-schema.d.ts.map +1 -1
  235. package/dist/schema/json-schema.js +11 -1
  236. package/dist/schema/json-schema.js.map +1 -1
  237. package/dist/seen.d.ts +44 -1
  238. package/dist/seen.d.ts.map +1 -1
  239. package/dist/seen.js +59 -14
  240. package/dist/seen.js.map +1 -1
  241. package/dist/store.d.ts +79 -4
  242. package/dist/store.d.ts.map +1 -1
  243. package/dist/store.js +123 -25
  244. package/dist/store.js.map +1 -1
  245. package/dist/subscriptions.d.ts.map +1 -1
  246. package/dist/subscriptions.js +13 -1
  247. package/dist/subscriptions.js.map +1 -1
  248. package/dist/sync/engine.d.ts.map +1 -1
  249. package/dist/sync/engine.js +43 -15
  250. package/dist/sync/engine.js.map +1 -1
  251. package/dist/sync/index.d.ts +1 -1
  252. package/dist/sync/index.d.ts.map +1 -1
  253. package/dist/sync/index.js +1 -1
  254. package/dist/sync/index.js.map +1 -1
  255. package/dist/sync/types.d.ts +10 -0
  256. package/dist/sync/types.d.ts.map +1 -1
  257. package/dist/sync/types.js +8 -0
  258. package/dist/sync/types.js.map +1 -1
  259. package/dist/testing.d.ts.map +1 -1
  260. package/dist/testing.js +1 -0
  261. package/dist/testing.js.map +1 -1
  262. package/dist/text/diff.d.ts +10 -0
  263. package/dist/text/diff.d.ts.map +1 -0
  264. package/dist/text/diff.js +26 -0
  265. package/dist/text/diff.js.map +1 -0
  266. package/dist/text/since.d.ts +29 -0
  267. package/dist/text/since.d.ts.map +1 -0
  268. package/dist/text/since.js +66 -0
  269. package/dist/text/since.js.map +1 -0
  270. package/dist/text/splice.d.ts +51 -0
  271. package/dist/text/splice.d.ts.map +1 -0
  272. package/dist/text/splice.js +71 -0
  273. package/dist/text/splice.js.map +1 -0
  274. package/dist/text/typing-hook.d.ts +37 -0
  275. package/dist/text/typing-hook.d.ts.map +1 -0
  276. package/dist/text/typing-hook.js +16 -0
  277. package/dist/text/typing-hook.js.map +1 -0
  278. package/dist/tidying.d.ts +25 -7
  279. package/dist/tidying.d.ts.map +1 -1
  280. package/dist/tidying.js +26 -11
  281. package/dist/tidying.js.map +1 -1
  282. package/dist/typing.d.ts +2 -0
  283. package/dist/typing.d.ts.map +1 -0
  284. package/dist/typing.js +109 -0
  285. package/dist/typing.js.map +1 -0
  286. package/dist/version.d.ts +1 -1
  287. package/dist/version.js +1 -1
  288. package/dist/who.d.ts +1 -1
  289. package/dist/who.d.ts.map +1 -1
  290. package/dist/who.js +5 -2
  291. package/dist/who.js.map +1 -1
  292. package/package.json +12 -2
@@ -1 +1 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/persistence/sql.ts"],"names":[],"mappings":"AAyCA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAI,EAAW,EAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,cAAc,CAAC;IACpD,MAAM,IAAI,GAAG,CAAI,SAAiB,EAAE,GAAG,MAAiB,EAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAQ,CAAC;IAC7G,MAAM,GAAG,GAAG,CAAC,SAAiB,EAAE,GAAG,MAAiB,EAAQ,EAAE;QAC5D,iEAAiE;QACjE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC;YAAE,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,8BAA8B,OAAO;MACvD,KAAK;mBACQ,KAAK,SAAS,CAAC;IAChC;;;;;OAKG;IACH,MAAM,gBAAgB,GAAG,8BAA8B,UAAU;MAC7D,KAAK;mBACQ,KAAK,wBAAwB,CAAC;IAC/C,MAAM,kBAAkB,GAAG,8BAA8B,YAAY;MACjE,KAAK;mBACQ,KAAK,SAAS,CAAC;IAEhC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,GAAG,CAAC,8BAA8B,SAAS;QACvC,KAAK;;qBAEQ,KAAK,QAAQ,CAAC,CAAC;QAChC,GAAG,CAAC,8BAA8B,SAAS;QACvC,KAAK;;qBAEQ,KAAK,cAAc,CAAC,CAAC;QACtC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnB,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,SAAS,aAAa;QACpB,IAAI,YAAY;YAAE,OAAO;QACzB,GAAG,CAAC,aAAa,CAAC,CAAC;QACnB,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxB,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,QAAe,EAAW,EAAE,CACzD,IAAI,CAAmB,oBAAoB,UAAU,UAAU,KAAK,6CAA6C,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,CACnI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAU,CACvC,CAAC;IACJ,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,QAAe,EAAE,MAAwB,EAAE,IAAI,GAAG,CAAC,EAAQ,EAAE;QAC7F,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,GAAG,CAAC,eAAe,UAAU,KAAK,KAAK,iDAAiD,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAChJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;QAC5B,GAAG,CAAC,eAAe,SAAS,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;QACxD,GAAG,CAAC,eAAe,SAAS,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,MAAM,QAAQ,GAAG,IAAI,CAA6C,8BAA8B,SAAS,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;YACrI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CACnB,oCAAoC,SAAS,UAAU,KAAK,4BAA4B,EACxF,GAAG,CACJ,CAAC;YACF,MAAM,KAAK,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAiB,CAAC;gBACpD,gEAAgE;gBAChE,yDAAyD;gBACzD,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzG,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAuB;YACrC,WAAW,CAAC,GAAG,EAAE;gBACf,KAAK,CAAC,GAAG,CAAC,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAClC,GAAG,CAAC,eAAe,SAAS,KAAK,KAAK,uCAAuC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChI,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACxC,GAAG,CAAC,eAAe,SAAS,KAAK,KAAK,0DAA0D,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClJ,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG;YACd,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,KAAK,CAAC,GAAG,CAAC,CAAC;gBACX,uEAAuE;gBACvE,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;oBAAE,GAAG,CAAC,eAAe,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG;YACf,aAAa,EAAE,CAAC;YAChB,OAAO,IAAI,CAAmB,oBAAoB,OAAO,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC,GAAG,CACvG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAc,CAC3C,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG;YACtB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC7B,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,KAAK,MAAM,EAAE,IAAI,GAAG;oBAAE,GAAG,CAAC,0BAA0B,OAAO,KAAK,KAAK,+BAA+B,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzI,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG;YAClB,aAAa,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;YAC1B,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,GAAG,CAAC,eAAe,UAAU,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC1E,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU;YAC3B,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,GAAG,CAAC,0BAA0B,YAAY,KAAK,KAAK,uBAAuB,KAAK,oBAAoB,OAAO,UAAU,KAAK,kBAAkB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACnK,GAAG,CAAC,eAAe,OAAO,UAAU,KAAK,kBAAkB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9B,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACjG,GAAG,CAAC,eAAe,UAAU,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC1E,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,GAAG;YACnB,aAAa,EAAE,CAAC;YAChB,OAAO;gBACL,GAAG,EAAE,IAAI,CAAmB,oBAAoB,YAAY,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAc,CAAC;gBACxJ,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;aACzB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/persistence/sql.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAsCjE;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAI,EAAW,EAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,aAAa,CAAC;IACrD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,aAAa,CAAC;IACjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,cAAc,CAAC;IACpD,MAAM,IAAI,GAAG,CAAI,SAAiB,EAAE,GAAG,MAAiB,EAAO,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAQ,CAAC;IAC7G,MAAM,GAAG,GAAG,CAAC,SAAiB,EAAE,GAAG,MAAiB,EAAQ,EAAE;QAC5D,iEAAiE;QACjE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC;YAAE,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,IAAI,QAA6B,CAAC;IAClC,MAAM,WAAW,GAAG,GAAY,EAAE;QAChC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,oBAAoB,SAAS,UAAU,CAAC,CAAC;YAC9C,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,IAAe,EAAiB,EAAE,CACjD,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7G,MAAM,aAAa,GAAG,8BAA8B,OAAO;MACvD,KAAK;mBACQ,KAAK,SAAS,CAAC;IAChC;;;;;OAKG;IACH,MAAM,gBAAgB,GAAG,8BAA8B,UAAU;MAC7D,KAAK;mBACQ,KAAK,wBAAwB,CAAC;IAC/C,MAAM,kBAAkB,GAAG,8BAA8B,YAAY;MACjE,KAAK;mBACQ,KAAK,SAAS,CAAC;IAEhC,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,GAAG,CAAC,8BAA8B,SAAS;QACvC,KAAK;;qBAEQ,KAAK,QAAQ,CAAC,CAAC;QAChC,GAAG,CAAC,8BAA8B,SAAS;QACvC,KAAK;;qBAEQ,KAAK,cAAc,CAAC,CAAC;QACtC,+HAA+H;QAC/H,IAAI,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,eAAe,SAAS,uBAAuB,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAC5F,GAAG,CAAC,aAAa,CAAC,CAAC;QACnB,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,SAAS,aAAa;QACpB,IAAI,YAAY;YAAE,OAAO;QACzB,GAAG,CAAC,aAAa,CAAC,CAAC;QACnB,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACtB,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxB,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,QAAe,EAAW,EAAE,CACzD,IAAI,CAAmB,oBAAoB,UAAU,UAAU,KAAK,6CAA6C,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,CACnI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAU,CACvC,CAAC;IACJ,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,QAAe,EAAE,MAAwB,EAAE,IAAI,GAAG,CAAC,EAAQ,EAAE;QAC7F,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9B,GAAG,CAAC,eAAe,UAAU,KAAK,KAAK,iDAAiD,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAChJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;QAC5B,GAAG,CAAC,eAAe,SAAS,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;QACxD,GAAG,CAAC,eAAe,SAAS,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,KAAK,CAAC,IAAI,CAAC,GAAG;YACZ,MAAM,QAAQ,GAAG,IAAI,CAA6C,8BAA8B,SAAS,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;YACrI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI;YACnB,yHAAyH;YACzH,iBAAiB,SAAS,UAAU,KAAK,4BAA4B,EACrE,GAAG,CACJ,CAAC;YACF,MAAM,KAAK,GAAmB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAiB,CAAC;gBACpD,gEAAgE;gBAChE,yDAAyD;gBACzD,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,MAAM,KAAK,GAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAoC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxL,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAuB;YACrC,WAAW,CAAC,GAAG,EAAE;gBACf,KAAK,CAAC,GAAG,CAAC,CAAC;gBACX,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAClC,GAAG,CAAC,eAAe,SAAS,KAAK,KAAK,uCAAuC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChI,CAAC;gBACD,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;oBACxC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACnB,GAAG,CAAC,eAAe,SAAS,KAAK,KAAK,0DAA0D,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBAChJ,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,WAAW,EAAE;wBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,uDAAuD,CAAC,CAAC;oBACzG,GAAG,CAAC,eAAe,SAAS,KAAK,KAAK,mEAAmE,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAClK,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG;YACd,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,KAAK,CAAC,GAAG,CAAC,CAAC;gBACX,uEAAuE;gBACvE,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;oBAAE,GAAG,CAAC,eAAe,KAAK,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG;YACf,aAAa,EAAE,CAAC;YAChB,OAAO,IAAI,CAAmB,oBAAoB,OAAO,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC,GAAG,CACvG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAc,CAC3C,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO;YAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC7B,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,0GAA0G;gBAC1G,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;oBACjC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAyB,+BAA+B,OAAO,UAAU,KAAK,MAAM,EAAE,GAAG,CAAC,CAAC;oBAChH,IAAI,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,MAAM,EAAE,GAAG,KAAK,SAAS;wBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrF,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;gBAClF,CAAC,CAAC,CAAC;gBACH,KAAK,MAAM,EAAE,IAAI,GAAG;oBAAE,GAAG,CAAC,0BAA0B,OAAO,KAAK,KAAK,+BAA+B,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;YACzI,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG;YAClB,aAAa,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;YAC1B,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,GAAG,CAAC,eAAe,UAAU,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC1E,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU;YAC3B,aAAa,EAAE,CAAC;YAChB,WAAW,CAAC,GAAG,EAAE;gBACf,GAAG,CAAC,0BAA0B,YAAY,KAAK,KAAK,uBAAuB,KAAK,oBAAoB,OAAO,UAAU,KAAK,kBAAkB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBACnK,GAAG,CAAC,eAAe,OAAO,UAAU,KAAK,kBAAkB,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;gBAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC9B,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACjG,GAAG,CAAC,eAAe,UAAU,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC;gBAC1E,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACjH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,WAAW,CAAC,GAAG;YACnB,aAAa,EAAE,CAAC;YAChB,OAAO;gBACL,GAAG,EAAE,IAAI,CAAmB,oBAAoB,YAAY,UAAU,KAAK,uBAAuB,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAc,CAAC;gBACxJ,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;aACzB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -47,6 +47,7 @@ export interface SqliteAdapterOptions {
47
47
  * kind: text("kind").notNull(),
48
48
  * fromId: text("from_id").notNull(),
49
49
  * toId: text("to_id").notNull(),
50
+ * data: text("data"), // optional: a link's own id and data, when it carries them (reserved for 1.0)
50
51
  * }, (t) => [primaryKey({ columns: [t.householdId, t.position] })]);
51
52
  * ```
52
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/persistence/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uGAAuG;IACvG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACrC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CACpC;AACD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAG7F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;CAAE,CAsBhI"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/persistence/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,uGAAuG;IACvG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACrC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;CACpC;AACD,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAG7F;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;CAAE,CAsBhI"}
@@ -18,6 +18,7 @@ export { createSqlAdapter } from "./sql.js";
18
18
  * kind: text("kind").notNull(),
19
19
  * fromId: text("from_id").notNull(),
20
20
  * toId: text("to_id").notNull(),
21
+ * data: text("data"), // optional: a link's own id and data, when it carries them (reserved for 1.0)
21
22
  * }, (t) => [primaryKey({ columns: [t.householdId, t.position] })]);
22
23
  * ```
23
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/persistence/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAgB,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgC5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAChD,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACxC,OAAO,gBAAgB,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,GAAW,EAAmB,EAAE;QACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO;QACL,GAAG,EAAE;YACH,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;gBACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChF,IAAI,KAAK;oBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC;SACF;QACD,WAAW,EAAE,CAAI,EAAW,EAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAa,CAAC,EAAO;KAC/E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/persistence/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAgB,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAgC5C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAChD,CAAC;AAEX;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA6B;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACxC,OAAO,gBAAgB,CAAC,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAwB;IACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IACpD,MAAM,SAAS,GAAG,CAAC,GAAW,EAAmB,EAAE;QACjD,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO;QACL,GAAG,EAAE;YACH,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;gBACjB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,oCAAoC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChF,IAAI,KAAK;oBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBAC1C,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC;SACF;QACD,WAAW,EAAE,CAAI,EAAW,EAAK,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAa,CAAC,EAAO;KAC/E,CAAC;AACJ,CAAC"}
@@ -1,6 +1,31 @@
1
1
  import type { GraphSnapshot } from "../graph/types.js";
2
2
  import type { Epoch, LogArchive } from "../ops/log.js";
3
3
  import type { Operation } from "../ops/types.js";
4
+ /** How an append is checked: see `PersistenceAdapter.appendOps`. */
5
+ export interface AppendOptions {
6
+ /** The seq the first op appended takes, as the writer last knew the log: the compare in compare-and-set. */
7
+ readonly head?: number;
8
+ }
9
+ /**
10
+ * ANOTHER WRITER GOT THERE FIRST. The log of `scope` is at `found` — the
11
+ * seq its next op would take — not at `expected`, the head the writer last
12
+ * knew: something else appended since. Nothing was appended. A store
13
+ * hearing this is no longer the scope's one writer; reopen it to go on
14
+ * from what is stored.
15
+ */
16
+ export declare class LogHeadMovedError extends Error {
17
+ readonly scope: string;
18
+ readonly expected: number;
19
+ readonly found: number;
20
+ constructor(scope: string, expected: number, found: number);
21
+ }
22
+ /**
23
+ * The seq the next op of a log takes: one past its newest op, or — a log
24
+ * that holds none — its checkpoint's seq once compacted (FR-23), else 0.
25
+ */
26
+ export declare function headOf(ops: readonly Pick<Operation, "seq">[], horizon?: number): number;
27
+ /** Throws `LogHeadMovedError` when an append that names its head finds the log elsewhere. */
28
+ export declare function assertHead(scope: unknown, ops: readonly unknown[], options: AppendOptions | undefined, found: () => number): void;
4
29
  /**
5
30
  * The framework owns the reactive graph, invariants, diff and undo;
6
31
  * persistence is pluggable underneath. One interface, so a memory adapter
@@ -18,7 +43,15 @@ export interface PersistenceAdapter<Scope = string> {
18
43
  delete(scope: Scope): Promise<void>;
19
44
  /** Optional: adapters that keep history append the log too. */
20
45
  loadLog?(scope: Scope): Promise<Operation[]>;
21
- appendOps?(scope: Scope, ops: readonly Operation[]): Promise<void>;
46
+ /**
47
+ * Appends `ops` to the scope's log. ONE WRITER, ENFORCED: given
48
+ * `options.head` — the seq the first of them takes, as the writer last
49
+ * knew the log — an adapter compares it with the head it holds (`headOf`)
50
+ * and, when they differ, throws `LogHeadMovedError` and appends nothing,
51
+ * so two writers on one scope fail loudly rather than interleave. Without
52
+ * it the ops are appended as before. `openStore` always passes it.
53
+ */
54
+ appendOps?(scope: Scope, ops: readonly Operation[], options?: AppendOptions): Promise<void>;
22
55
  /**
23
56
  * Optional: the epochs the log folds from (FR-27), kept beside it. An
24
57
  * adapter without them reopens a store with none recorded, and ship has
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,MAAM;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,+DAA+D;IAC/D,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE;;;;OAIG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,4GAA4G;IAC5G,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM;gBAFb,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM;CAQzB;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,SAAI,GAAG,MAAM,CAElF;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,GAAG,IAAI,CAIjI;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,MAAM;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,+DAA+D;IAC/D,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C;;;;;;;OAOG;IACH,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F;;;;OAIG;IACH,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,UAAU,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACjD"}
@@ -1,2 +1,36 @@
1
- export {};
1
+ /**
2
+ * ANOTHER WRITER GOT THERE FIRST. The log of `scope` is at `found` — the
3
+ * seq its next op would take — not at `expected`, the head the writer last
4
+ * knew: something else appended since. Nothing was appended. A store
5
+ * hearing this is no longer the scope's one writer; reopen it to go on
6
+ * from what is stored.
7
+ */
8
+ export class LogHeadMovedError extends Error {
9
+ scope;
10
+ expected;
11
+ found;
12
+ constructor(scope, expected, found) {
13
+ super(`The log of "${scope}" is at seq ${found}, not ${expected} as this writer last knew it: another writer appended to it, and nothing was appended. ` +
14
+ "One writer per scope; reopen the store to go on from what is stored.");
15
+ this.scope = scope;
16
+ this.expected = expected;
17
+ this.found = found;
18
+ this.name = "LogHeadMovedError";
19
+ }
20
+ }
21
+ /**
22
+ * The seq the next op of a log takes: one past its newest op, or — a log
23
+ * that holds none — its checkpoint's seq once compacted (FR-23), else 0.
24
+ */
25
+ export function headOf(ops, horizon = 0) {
26
+ return ops.reduce((most, op) => Math.max(most, op.seq + 1), horizon);
27
+ }
28
+ /** Throws `LogHeadMovedError` when an append that names its head finds the log elsewhere. */
29
+ export function assertHead(scope, ops, options, found) {
30
+ if (options?.head === undefined || ops.length === 0)
31
+ return;
32
+ const at = found();
33
+ if (at !== options.head)
34
+ throw new LogHeadMovedError(String(scope), options.head, at);
35
+ }
2
36
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAE/B;IACA;IACA;IAHX,YACW,KAAa,EACb,QAAgB,EAChB,KAAa;QAEtB,KAAK,CACH,eAAe,KAAK,eAAe,KAAK,SAAS,QAAQ,yFAAyF;YAChJ,sEAAsE,CACzE,CAAC;QAPO,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QAMtB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAsC,EAAE,OAAO,GAAG,CAAC;IACxE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,GAAuB,EAAE,OAAkC,EAAE,KAAmB;IACzH,IAAI,OAAO,EAAE,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC5D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI;QAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxF,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type AuthorKind } from "./ops/types.js";
1
2
  export interface PresenceRobot {
2
3
  /** What the robot stands at: a node id, `kind:<kind>`, or null for its dock. */
3
4
  readonly at: string | null;
@@ -86,7 +87,7 @@ export declare function presenceStands(presence: Presence, now: number, ttlMs?:
86
87
  export declare function nextExpiry(who: readonly Presence[], now?: number): number | undefined;
87
88
  /** The parts of a participant key: who, and which tab of theirs. */
88
89
  export interface Participant {
89
- readonly kind: "human" | "agent" | "rule" | "system";
90
+ readonly kind: AuthorKind;
90
91
  readonly id?: string;
91
92
  readonly session?: string;
92
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../src/presence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../src/presence.ts"],"names":[],"mappings":"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"}
package/dist/presence.js CHANGED
@@ -10,6 +10,7 @@
10
10
  * BroadcastChannel between tabs of one origin, and two routes on the served
11
11
  * store folded into the poll it already makes.
12
12
  */
13
+ import { AUTHOR_KINDS } from "./ops/types.js";
13
14
  /** How long a presence stands after its last word: three missed heartbeats at the poll's own pace. */
14
15
  export const PRESENCE_TTL_MS = 2500;
15
16
  /**
@@ -65,7 +66,7 @@ export function nextExpiry(who, now = Date.now()) {
65
66
  }
66
67
  return next;
67
68
  }
68
- const PARTICIPANT_KINDS = new Set(["human", "agent", "rule", "system"]);
69
+ const PARTICIPANT_KINDS = new Set(AUTHOR_KINDS);
69
70
  /**
70
71
  * THE ONE DIALECT. A participant is `kind:id:session`: the op log's own
71
72
  * reading of an author (`Author.kind`, `.id`, `.session`), a figure's key on
@@ -1 +1 @@
1
- {"version":3,"file":"presence.js","sourceRoot":"","sources":["../src/presence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presence.js","sourceRoot":"","sources":["../src/presence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { AnyMutationDefinition } from "./mutations/types.js";
2
+ import type { Operation } from "./ops/types.js";
3
+ import type { Principal, Refusal } from "./permissions/types.js";
4
+ /**
5
+ * A LITE PUBLISHING LIFECYCLE (Roadmap f-publishing-lifecycle): when edits
6
+ * reach the people reading an app.
7
+ *
8
+ * `"live"`, the default, is how every app has always been: every seat is
9
+ * served the head. `"on-publish"` serves the head only to the seats whose
10
+ * roles are `working` — the collaborators, editing in real time, and an
11
+ * agent acting for one — and everyone else (a visitor, an embed, a static
12
+ * page, another app's linked read, a reader with no role) is served the
13
+ * app as it stood at the last publish. Writes always land on the head:
14
+ * what a reader sends is in the working state, and reaches readers with
15
+ * the next publish.
16
+ *
17
+ * Only what a live app's page needs is here: the declaration's shape and
18
+ * who is a reader. How a reader is served, the publish act and the
19
+ * published seq are `@graview/core/publishing`'s, which fills in
20
+ * `PUBLISHING` when it is loaded.
21
+ */
22
+ export interface Publishing {
23
+ readonly mode: "live" | "on-publish";
24
+ /** The roles served the head: the collaborators. */
25
+ readonly working: readonly string[];
26
+ /** The roles that may publish (and take a publish back). Absent, `working`. */
27
+ readonly publishers?: readonly string[];
28
+ }
29
+ /** The built-in act that publishes: every store of an `on-publish` app answers to it once `@graview/core/publishing` is loaded. */
30
+ export declare const PUBLISH = "publish";
31
+ /** Whether an app's readers are served what was published rather than the head. */
32
+ export declare const onPublish: (publishing: Publishing | undefined) => publishing is Publishing;
33
+ /**
34
+ * Whether a seat is a reader — served what was published — under this
35
+ * declaration: not the system, and (unless it asked to see the app as
36
+ * readers do) holding no `working` role, an agent's read through the
37
+ * person it acts for.
38
+ */
39
+ export declare const readsPublished: (publishing: Publishing | undefined, principal: Principal, as?: "head" | "published") => boolean;
40
+ /** What `@graview/core/publishing` teaches the store and the seat views when it is loaded. */
41
+ export interface PublishingServed {
42
+ /** A reader's view: the app as it stood at the last publish. */
43
+ served?: (store: never, principal: Principal) => unknown;
44
+ /** The built-in `publish` act a store of an app that publishes answers to, when the app declared none by the name. */
45
+ act?: (store: object, declared: ReadonlyMap<string, unknown>) => AnyMutationDefinition<never> | undefined;
46
+ /** Whether this principal may publish, and when not, why. */
47
+ verdict?: (store: object, principal: Principal) => {
48
+ readonly ok: true;
49
+ } | {
50
+ readonly ok: false;
51
+ readonly refusal: Refusal;
52
+ };
53
+ /** How far a store's readers are served. */
54
+ seq?: (store: object) => number | undefined;
55
+ /** The marker op a publish writes, appended to the store's log. */
56
+ /** What a seat view's module lends it, set by that module (`seen.ts`): so the reader's view imports none of a page's first chunk. */
57
+ kit?: {
58
+ readonly seatView: <T>(store: T, principal: Principal) => T;
59
+ readonly viewsOf: (store: object) => Map<string, unknown>;
60
+ readonly viewKey: (principal: Principal, served: "head" | "published") => string;
61
+ readonly diff: (before: never, after: never) => unknown;
62
+ readonly reads: typeof readsPublished;
63
+ };
64
+ /** The `publish` act's input, made with the page's own zod — so the module a page fetches brings none. */
65
+ input?: () => unknown;
66
+ op?: (store: object, made: {
67
+ readonly id: string;
68
+ readonly at: string;
69
+ }, call: {
70
+ readonly name: string;
71
+ readonly args: Record<string, unknown>;
72
+ }, batch: string, author: Principal, options: {
73
+ readonly intent?: string;
74
+ readonly via?: unknown;
75
+ }) => Operation;
76
+ }
77
+ export declare const PUBLISHING: PublishingServed;
78
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { actingAs, isSystem } from "./permissions/policy.js";
2
+ import * as z from "./schema/zod.js";
3
+ /** The built-in act that publishes: every store of an `on-publish` app answers to it once `@graview/core/publishing` is loaded. */
4
+ export const PUBLISH = "publish";
5
+ /** Whether an app's readers are served what was published rather than the head. */
6
+ export const onPublish = (publishing) => publishing?.mode === "on-publish";
7
+ /**
8
+ * Whether a seat is a reader — served what was published — under this
9
+ * declaration: not the system, and (unless it asked to see the app as
10
+ * readers do) holding no `working` role, an agent's read through the
11
+ * person it acts for.
12
+ */
13
+ export const readsPublished = (publishing, principal, as) => onPublish(publishing) && !isSystem(principal) && (as === "published" || !(actingAs(principal).roles ?? []).some((role) => publishing.working.includes(role)));
14
+ /*
15
+ * One object for the store, the seat view and `@graview/core/publishing`,
16
+ * found by a key every copy agrees on, as a seat's view is (`seat-of.ts`):
17
+ * the module a page fetches imports nothing of what it loaded first, so
18
+ * a bundler leaves all of that where it was — a page that never draws a
19
+ * store (the guest host) does not load the seat view for its sake.
20
+ */
21
+ export const PUBLISHING = (globalThis[Symbol.for("@graview/core:publishing")] ??= {});
22
+ PUBLISHING.input = () => z.object({ through: z.optional(z.number()) });
23
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,CAAC,MAAM,iBAAiB,CAAC;AA4BrC,mIAAmI;AACnI,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,mFAAmF;AACnF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAkC,EAA4B,EAAE,CAAC,UAAU,EAAE,IAAI,KAAK,YAAY,CAAC;AAE7H;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAkC,EAAE,SAAoB,EAAE,EAAyB,EAAW,EAAE,CAC7H,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAyBhK;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAqB,CAAE,UAA2D,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1J,UAAU,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AnyMutationDefinition } from "./mutations/types.js";
2
+ import type { OperationLog } from "./ops/log.js";
3
+ import type { Principal, Refusal } from "./permissions/types.js";
4
+ import type { Publishing } from "./publish.js";
5
+ import type { AnySchema } from "./schema/schema.js";
6
+ export declare const publishMutation: <S extends AnySchema>() => AnyMutationDefinition<S>;
7
+ export declare function publishedSeqOf(log: Pick<OperationLog, "all" | "undoneIds">): number | undefined;
8
+ /** Who may publish: a refusal in a sentence when this principal may not — whoever holds none of `publishers` (else `working`), the system aside. */
9
+ export declare function publishRefusal(publishing: Publishing | undefined, principal: Principal): Refusal | undefined;
10
+ //# sourceMappingURL=publishing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing.d.ts","sourceRoot":"","sources":["../src/publishing.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA6BpD,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,SAAS,OAAK,qBAAqB,CAAC,CAAC,CAAiD,CAAC;AAYjI,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,WAAW,CAAC,GAAG,MAAM,GAAG,SAAS,CAe/F;AAED,oJAAoJ;AACpJ,wBAAgB,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAK5G"}
@@ -0,0 +1,168 @@
1
+ import { pastOf } from "./past.js";
2
+ /** The store's and the seat view's own (`publish.ts`), found by its key: nothing of a page's first chunk is imported here. */
3
+ const PUBLISHING = (globalThis[Symbol.for("@graview/core:publishing")] ??= {});
4
+ /** What the seat view lends, once its module has run — which it has wherever a store is served. */
5
+ const kit = () => PUBLISHING.kit;
6
+ /*
7
+ * Written out here rather than imported where they are kept (`PUBLISH`,
8
+ * `onPublish`, the seat view's key and `bound`), so a page that fetches
9
+ * this asks its first chunk for as few names as it can.
10
+ */
11
+ const NAME = "publish";
12
+ const publishes = (publishing) => publishing?.mode === "on-publish";
13
+ const SEAT = Symbol.for("@graview/core:seat");
14
+ const bound = (target, prop) => {
15
+ const value = Reflect.get(target, prop, target);
16
+ return typeof value === "function" ? value.bind(target) : value;
17
+ };
18
+ /**
19
+ * "PUBLISH": no record is its subject and it makes none. Its one argument,
20
+ * `through`, publishes through an earlier seq; absent, everything to the
21
+ * head. The store writes its op itself (`publishedThrough`), so its body
22
+ * is never run; offered, as the store offers it, to `publishers`.
23
+ */
24
+ let made;
25
+ const act = () => (made ??= { name: NAME, title: "Publish", description: "Publish what collaborators have changed, so readers see it.", input: PUBLISHING.input(), apply() { } });
26
+ export const publishMutation = () => act();
27
+ /**
28
+ * HOW FAR READERS ARE SERVED: the `publishedThrough` of the last publish
29
+ * op that stands (an undone one does not — undoing a publish takes readers
30
+ * back to the one before), or `undefined` when nothing was ever published.
31
+ * Kept per log while its length and last op are the ones it was read at.
32
+ */
33
+ const READ = new WeakMap();
34
+ export function publishedSeqOf(log) {
35
+ const ops = log.all();
36
+ const last = ops.at(-1)?.id;
37
+ const held = READ.get(log);
38
+ if (held && held.length === ops.length && held.last === last)
39
+ return held.seq;
40
+ let seq;
41
+ let undone;
42
+ for (let at = ops.length - 1; at >= 0; at--) {
43
+ const op = ops[at];
44
+ if (op.publishedThrough === undefined || (undone ??= log.undoneIds()).has(op.id))
45
+ continue;
46
+ seq = op.publishedThrough;
47
+ break;
48
+ }
49
+ READ.set(log, { length: ops.length, last, seq });
50
+ return seq;
51
+ }
52
+ /** Who may publish: a refusal in a sentence when this principal may not — whoever holds none of `publishers` (else `working`), the system aside. */
53
+ export function publishRefusal(publishing, principal) {
54
+ if (!publishes(publishing))
55
+ return { mutation: NAME, message: "this app is live: every edit reaches its readers as it is made, so there is nothing to publish.", wouldNeed: [] };
56
+ const roles = publishing.publishers ?? publishing.working;
57
+ if (!kit().reads({ mode: "on-publish", working: roles }, principal))
58
+ return undefined;
59
+ return { mutation: NAME, message: `only ${roles.join(", ") || "nobody"} may publish.`, wouldNeed: [...roles] };
60
+ }
61
+ /**
62
+ * THE MARKER A PUBLISH IS: one op that touches no record and says how far
63
+ * readers are served — through itself, or through `through` when the call
64
+ * names an earlier seq the store holds — appended to the store's log.
65
+ */
66
+ const publishOp = (held, made, call, batch, author, options) => {
67
+ const { log } = held;
68
+ const seq = log.length;
69
+ const asked = call.args["through"];
70
+ if (asked !== undefined && (!Number.isInteger(asked) || asked < log.horizon || asked > seq)) {
71
+ throw new RangeError(`Cannot publish through seq ${String(asked)}: this store holds seqs ${log.horizon} to ${seq}.`);
72
+ }
73
+ const through = asked ?? seq + 1;
74
+ const was = publishedSeqOf(log) ?? log.horizon;
75
+ const changes = log.batches().filter((one) => !one.undone && one.ops.some((op) => op.seq >= was && op.seq < through && op.publishedThrough === undefined)).length;
76
+ const op = {
77
+ id: made.id,
78
+ seq,
79
+ batch,
80
+ author,
81
+ intent: through < was ? "Take back what was published" : `Publish ${changes === 1 ? "1 change" : `${changes} changes`}`,
82
+ ...(options.intent !== undefined ? { batchIntent: options.intent } : {}),
83
+ mutation: call,
84
+ primitives: [],
85
+ reads: [],
86
+ writes: [],
87
+ at: made.at,
88
+ ...(options.via !== undefined ? { via: options.via } : {}),
89
+ publishedThrough: through,
90
+ };
91
+ log.append(op);
92
+ return op;
93
+ };
94
+ /** The reads a reader's view answers from what was published; every other, and every write, is the head's. */
95
+ const PUBLISHED_READS = new Set(["graph", "log", "snapshot", "batches", "violations", "findings", "canUndo", "servedSeq", "checkpoint"]);
96
+ /**
97
+ * THE APP AS A READER IS SERVED IT, in an app that publishes: its graph,
98
+ * log, problems and history are those of the app as it stood at the last
99
+ * publish (`pastOf`) — before the first, the start of the log (the seed,
100
+ * or the horizon of a log compacted past it) — as the seat may see it;
101
+ * and every act, preview and permission still goes to the store and is
102
+ * judged at the head, where what the reader writes lands — read by readers
103
+ * when it is next published. It follows the published seq as a publish (or
104
+ * the undo of one) moves it, and tells its subscribers only when it does,
105
+ * with the change between the two.
106
+ */
107
+ function servedBehind(store, principal) {
108
+ const { seatView, viewsOf, viewKey, diff: diffSnapshots } = kit();
109
+ const views = viewsOf(store);
110
+ const key = viewKey(principal, "published");
111
+ const held = views.get(key);
112
+ if (held)
113
+ return held;
114
+ const head = seatView(store, principal);
115
+ let kept;
116
+ const now = () => {
117
+ const seq = Math.max(store.publishedSeq ?? store.log.horizon, store.log.horizon);
118
+ if (seq >= store.log.length)
119
+ return head;
120
+ const id = store.log.all()[seq - 1 - store.log.horizon]?.id;
121
+ if (kept?.seq !== seq || kept.id !== id)
122
+ kept = { seq, id, view: seatView(pastOf(store, seq), principal) };
123
+ return kept.view;
124
+ };
125
+ const seqOf = (served) => served.servedSeq;
126
+ const subscribe = (listener) => {
127
+ let from = seqOf(now());
128
+ let shot = now().graph.snapshot();
129
+ return store.subscribe((() => {
130
+ const served = now();
131
+ const to = seqOf(served);
132
+ if (to === from)
133
+ return;
134
+ const after = served.graph.snapshot();
135
+ const ops = to > from ? served.log.all().filter((op) => op.seq >= from) : [];
136
+ const diff = diffSnapshots(shot, after);
137
+ [from, shot] = [to, after];
138
+ listener(diff, ops);
139
+ }));
140
+ };
141
+ const view = new Proxy(head, {
142
+ get(target, prop) {
143
+ switch (prop) {
144
+ case SEAT:
145
+ return { store, principal };
146
+ case "subscribe":
147
+ return subscribe;
148
+ case "seenBy":
149
+ return (other, options) => store.seenBy(other, options);
150
+ case "seenFor":
151
+ return principal;
152
+ default:
153
+ return PUBLISHED_READS.has(prop) ? bound(now(), prop) : bound(target, prop);
154
+ }
155
+ },
156
+ });
157
+ views.set(key, view);
158
+ return view;
159
+ }
160
+ PUBLISHING.served = servedBehind;
161
+ PUBLISHING.act = (held, declared) => (publishes(held.publishing) && !held.past && !declared.has(NAME) ? act() : undefined);
162
+ PUBLISHING.verdict = (held, principal) => {
163
+ const refusal = publishRefusal(held.publishing, principal);
164
+ return refusal ? { ok: false, refusal } : { ok: true };
165
+ };
166
+ PUBLISHING.seq = (held) => (publishes(held.publishing) ? publishedSeqOf(held.log) : undefined);
167
+ PUBLISHING.op = publishOp;
168
+ //# sourceMappingURL=publishing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing.js","sourceRoot":"","sources":["../src/publishing.ts"],"names":[],"mappings":"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"}
package/dist/refused.d.ts CHANGED
@@ -3,9 +3,12 @@
3
3
  *
4
4
  * A refusal reached a client as a sentence and nothing else, so an MCP tool
5
5
  * and an interface told "you may not" from "it is gone" by matching words.
6
- * The set is closed and on the stability surface (docs/stability.md): a
7
- * code never changes meaning, and before 1.0 one may be added, the
8
- * changelog saying so (`unavailable`, FR-66; `refused`, FR-119).
6
+ * The set is OPEN and on the stability surface (docs/stability.md): a code
7
+ * never changes meaning, a code may be added within a major, the changelog
8
+ * saying so (`unavailable`, FR-66; `refused`, FR-119; `unauthenticated`
9
+ * and `quota`, 1.0's foundation), and a client meeting a code it does not
10
+ * know treats it as a final refusal — the change is taken back, its
11
+ * sentence shown — never as `unavailable`.
9
12
  *
10
13
  * forbidden the seat may not: the policy, a sight, an agent's `may`, a module turned off
11
14
  * missing what the call names is not there: a record, or a batch to take back
@@ -13,16 +16,20 @@
13
16
  * limit the host's hard cap: the call can never succeed as asked, however long the caller waits
14
17
  * unavailable the host takes no changes for a while — a room read-only while it is checked, storage that failed to write — and does not know for how long
15
18
  * refused the act's own rule said no to a well-formed call: a document act's `allowedWhen`, a TypeScript mutation's `ActRefusal` (FR-119)
19
+ * unauthenticated the host does not know who is asking: no session, or one that ran out; signing in again may let the same change through
20
+ * quota the account the app belongs to has used what its plan allows: the change may succeed once the allowance grows, never by waiting
16
21
  *
17
- * `limit` and `unavailable` are the host's to say; nothing in the store
18
- * says them. Neither is `busy`: busy is "not now, after `retryAfter`", and
22
+ * A body too large to take is `limit` (413), and a caller sending too much
23
+ * too fast is told `busy` with a wait (429), which is not a refusal.
24
+ * `limit`, `unavailable`, `unauthenticated` and `quota` are the host's to
25
+ * say; nothing in the store says them. Neither is `busy`: busy is "not now, after `retryAfter`", and
19
26
  * the client keeps the change and sends it again (FR-45). `unavailable` is
20
27
  * the one refusal that is not final: nothing was judged, and the client
21
28
  * keeps the change pending and sends it again, backing off as it does to
22
29
  * reconnect, until the host takes it. A refusal of any other reason is
23
30
  * final, and the change is taken back.
24
31
  */
25
- export declare const REFUSAL_REASONS: readonly ["forbidden", "missing", "invalid", "limit", "unavailable", "refused"];
32
+ export declare const REFUSAL_REASONS: readonly ["forbidden", "missing", "invalid", "limit", "unavailable", "refused", "unauthenticated", "quota"];
26
33
  export type RefusalReason = (typeof REFUSAL_REASONS)[number];
27
34
  /**
28
35
  * A REFUSAL AN ACT SAYS ITSELF, TYPED (FR-110).
@@ -1 +1 @@
1
- {"version":3,"file":"refused.d.ts","sourceRoot":"","sources":["../src/refused.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,eAAe,iFAAkF,CAAC;AAE/G,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,SAAQ,KAAK;IAEjC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa;gBADrB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,aAAyB;CAK7C"}
1
+ {"version":3,"file":"refused.d.ts","sourceRoot":"","sources":["../src/refused.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,eAAe,6GAA8G,CAAC;AAE3I,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,SAAQ,KAAK;IAEjC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,aAAa;gBADrB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,aAAyB;CAK7C"}