@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
@@ -0,0 +1,37 @@
1
+ import type { Primitive } from "../graph/primitives.js";
2
+ import type { FieldRevision } from "../ops/revisions.js";
3
+ import type { Operation } from "../ops/types.js";
4
+ import type { AnyMutationDefinition } from "../mutations/types.js";
5
+ /** The name of the act that types into a text field typed together. */
6
+ export declare const TYPE_TEXT = "type-text";
7
+ /** What a store hands the hooks: its declaration, graph and log. */
8
+ export interface TypingStore {
9
+ readonly schema: {
10
+ tryDefinition(kind: string): unknown;
11
+ };
12
+ readonly graph: {
13
+ getNode(id: string): unknown;
14
+ };
15
+ readonly log: {
16
+ all(): readonly Operation[];
17
+ readonly horizon: number;
18
+ };
19
+ }
20
+ export declare const TYPING: {
21
+ /** "Type text", for one store: a keystroke carried over the log since the revision it was made at. */
22
+ typeText?: (store: TypingStore) => AnyMutationDefinition<never>;
23
+ /** Who may type into a field of a record of a kind: the acts any one of which permits it. */
24
+ via?: (schema: TypingStore["schema"], mutations: readonly AnyMutationDefinition<never>[], kind: string | undefined, field: unknown) => readonly string[];
25
+ /** Whether one field of a kind is typed together, by the declaration. */
26
+ collaborative?: (schema: TypingStore["schema"], kind: string | undefined, field: string) => boolean;
27
+ /** These primitives with each whole write over text typed together written as a splice. */
28
+ asSplices?: (store: TypingStore, primitives: readonly Primitive[], base?: readonly FieldRevision[]) => Primitive[];
29
+ /** What each op of an undo puts back, newest first, its splices carried over the typing since. */
30
+ undone?: (log: readonly Operation[], ops: readonly Operation[]) => {
31
+ readonly op: Operation;
32
+ readonly primitives: readonly Primitive[];
33
+ }[];
34
+ /** Of a later op, against what an undo takes back: true when it only typed on text the undo only typed, else the records whose typed text it wrote whole. */
35
+ aside?: (targets: readonly Primitive[], later: Operation) => true | readonly string[];
36
+ };
37
+ //# sourceMappingURL=typing-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing-hook.d.ts","sourceRoot":"","sources":["../../src/text/typing-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAenE,uEAAuE;AACvE,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE;QAAE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE;QAAE,GAAG,IAAI,SAAS,SAAS,EAAE,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED,eAAO,MAAM,MAAM,EAAE;IACnB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAChE,6FAA6F;IAC7F,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,CAAC;IACzJ,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACpG,2FAA2F;IAC3F,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,CAAC,EAAE,SAAS,aAAa,EAAE,KAAK,SAAS,EAAE,CAAC;IACnH,kGAAkG;IAClG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,SAAS,EAAE,KAAK;QAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;KAAE,EAAE,CAAC;IAC3I,6JAA6J;IAC7J,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,SAAS,MAAM,EAAE,CAAC;CAClF,CAAC"}
@@ -0,0 +1,16 @@
1
+ /*
2
+ * WHAT TYPING TOGETHER NEEDS THAT A PAGE OPENING AN APP DOES NOT (Roadmap
3
+ * f-collab-text). An app opens far more often than somebody types into a
4
+ * long field, so the store carries only these hooks; `@graview/core/typing`
5
+ * fills them — a keystroke carried over the log since its revision, a whole
6
+ * write merged as a splice, an undo carried over others' typing — and a
7
+ * host that serves seats loads it (`@graview/ship`'s server entry does), as
8
+ * a face does once a field typed together is focused. Unloaded, a store
9
+ * answers to no `type-text`, writes a whole value as a patch, and lets a
10
+ * later keystroke on a field block an undo of typing in it, as any later
11
+ * write does.
12
+ */
13
+ /** The name of the act that types into a text field typed together. */
14
+ export const TYPE_TEXT = "type-text";
15
+ export const TYPING = {};
16
+ //# sourceMappingURL=typing-hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing-hook.js","sourceRoot":"","sources":["../../src/text/typing-hook.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AASrC,MAAM,CAAC,MAAM,MAAM,GAaf,EAAE,CAAC"}
package/dist/tidying.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  import type { MutationCall } from "./mutations/types.js";
2
2
  import { type Lineage } from "./ops/lineage.js";
3
- import { type Suggestion } from "./ops/suggestions.js";
3
+ import { type Dismissal, type Suggestion } from "./ops/suggestions.js";
4
4
  import type { Author, Operation, Via } from "./ops/types.js";
5
5
  import type { Principal } from "./permissions/types.js";
6
6
  import type { AnySchema } from "./schema/schema.js";
7
7
  import type { ApplyOptions, ApplyResult, Store } from "./store.js";
8
- export { declinedIn, declinesIn, suggestionKey, tidyingOf, tidyingRefusal } from "./ops/tidying.js";
9
- export { suggestionsIn } from "./ops/suggestions.js";
10
- export type { Suggestion } from "./ops/suggestions.js";
8
+ export { declinedIn, declinesIn, meaningKey, suggestionKey, tidyingOf, tidyingRefusal } from "./ops/tidying.js";
9
+ export type { ActMeanings } from "./ops/tidying.js";
10
+ export { isDismissed, suggestionsIn } from "./ops/suggestions.js";
11
+ export type { Dismissal, DismissalStore, Suggestion, WaitingOptions } from "./ops/suggestions.js";
11
12
  export { digestWords, foldDigests, isSuggestionBatch } from "./ops/digest.js";
12
13
  export type { ActivityRow } from "./ops/digest.js";
13
14
  export { LEFT_ALONE } from "./graph/archived.js";
@@ -21,6 +22,17 @@ export interface SuggestOptions {
21
22
  readonly lineage: Lineage;
22
23
  readonly via?: Via;
23
24
  readonly intent?: string;
25
+ /**
26
+ * WHEN IT STOPS WAITING, as an ISO time (`Operation.expiresAt`): then it
27
+ * leaves the tray and cannot be accepted, and an actor that still thinks
28
+ * so judges it again. Unsaid, it waits until a person answers it.
29
+ */
30
+ readonly expiresAt?: string;
31
+ }
32
+ /** What reading the suggestions waiting is told besides who reads them. */
33
+ export interface SuggestionsOptions {
34
+ /** What the person reading said "not now" to (`Dismissal`), kept where the host keeps their own state. */
35
+ readonly dismissed?: readonly Dismissal[];
24
36
  }
25
37
  /**
26
38
  * A SUGGESTION THAT WAITS. The calls are judged as `applyAll` would judge
@@ -40,9 +52,11 @@ export declare function suggest<S extends AnySchema>(store: Store<S>, calls: rea
40
52
  * THE SUGGESTIONS WAITING, oldest first — as `principal` may see them,
41
53
  * when one is named, or as the seat a seat's view (`seenBy`) is of: a
42
54
  * suggestion that names a record the seat may not see is not among them
43
- * (it is withheld, as any op that names one is).
55
+ * (it is withheld, as any op that names one is). One that expired is not
56
+ * waiting; one the reader said "not now" to (`options.dismissed`) is left
57
+ * out for them alone.
44
58
  */
45
- export declare function suggestions<S extends AnySchema>(store: Store<S>, principal?: Principal): readonly Suggestion[];
59
+ export declare function suggestions<S extends AnySchema>(store: Store<S>, principal?: Principal, options?: SuggestionsOptions): readonly Suggestion[];
46
60
  /**
47
61
  * ACCEPT A SUGGESTION: its calls applied as one gesture, as the person
48
62
  * (`options.author`, or the store's principal) — judged as any change of
@@ -57,6 +71,10 @@ export declare function acceptSuggestion<S extends AnySchema>(store: Store<S>, i
57
71
  * to the app's own actor from now on. Undone, it waits again.
58
72
  */
59
73
  export declare function declineSuggestion<S extends AnySchema>(store: Store<S>, id: string, options?: ApplyOptions): ApplyResult<S>;
60
- /** The op that declined these calls — the whole suggestion, or any one of them on its own — or undefined: what an actor asks before it suggests. */
74
+ /**
75
+ * The op that declined these calls — the whole suggestion, or any one of
76
+ * them on its own, as asked or meaning the same (`meaningKey`) — or
77
+ * undefined: what an actor asks before it suggests.
78
+ */
61
79
  export declare function declined(store: Pick<Store<AnySchema>, "log">, calls: readonly MutationCall[]): Operation | undefined;
62
80
  //# sourceMappingURL=tidying.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tidying.d.ts","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,CAmC5I;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,UAAU,EAAE,CAO9G;AASD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAK7H;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAK9H;AAED,oJAAoJ;AACpJ,wBAAgB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,SAAS,CAEpH"}
1
+ {"version":3,"file":"tidying.d.ts","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAA0B,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChH,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,0GAA0G;IAC1G,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAC3C;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,CAuC5I;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB,GAAG,SAAS,UAAU,EAAE,CAOhJ;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAK7H;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAK9H;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,SAAS,CAGpH"}
package/dist/tidying.js CHANGED
@@ -16,12 +16,12 @@
16
16
  */
17
17
  import { GraphError } from "./graph/graph.js";
18
18
  import { lineageOf } from "./ops/lineage.js";
19
- import { suggestionsIn } from "./ops/suggestions.js";
20
- import { declinedIn, suggestionKey } from "./ops/tidying.js";
19
+ import { expired, suggestionsIn } from "./ops/suggestions.js";
20
+ import { declinedIn, meaningKey } from "./ops/tidying.js";
21
21
  import { seatOf } from "./seat-of.js";
22
22
  import { EMPTY_DIFF } from "./graph/diff.js";
23
- export { declinedIn, declinesIn, suggestionKey, tidyingOf, tidyingRefusal } from "./ops/tidying.js";
24
- export { suggestionsIn } from "./ops/suggestions.js";
23
+ export { declinedIn, declinesIn, meaningKey, suggestionKey, tidyingOf, tidyingRefusal } from "./ops/tidying.js";
24
+ export { isDismissed, suggestionsIn } from "./ops/suggestions.js";
25
25
  export { digestWords, foldDigests, isSuggestionBatch } from "./ops/digest.js";
26
26
  export { LEFT_ALONE } from "./graph/archived.js";
27
27
  const keptOf = (store) => store;
@@ -46,8 +46,12 @@ export function suggest(store, calls, options) {
46
46
  if (lineage === undefined)
47
47
  throw new GraphError("A suggestion says what it is based on: { basis, confidence? }");
48
48
  const author = options.author ?? kept.by;
49
- const key = suggestionKey(calls);
50
- const waiting = suggestions(whole).find((one) => suggestionKey(one.calls) === key);
49
+ if (options.expiresAt !== undefined && Number.isNaN(Date.parse(options.expiresAt)))
50
+ throw new GraphError(`A suggestion expires at a time: "${options.expiresAt}" is not one (an ISO time, like 2026-10-23T06:00:00Z).`);
51
+ // The same change, however it is spelled, is the one that waits — even one a person said "not now" to.
52
+ const meanings = kept.actMeanings();
53
+ const key = meaningKey(calls, meanings);
54
+ const waiting = suggestions(whole).find((one) => meaningKey(one.calls, meanings) === key);
51
55
  if (waiting)
52
56
  return whole.log.get(waiting.id);
53
57
  kept.refuseDeclined(calls, author);
@@ -73,6 +77,7 @@ export function suggest(store, calls, options) {
73
77
  ...given("via", options.via),
74
78
  lineage,
75
79
  suggests: calls,
80
+ ...given("expiresAt", options.expiresAt),
76
81
  };
77
82
  whole.log.append(op);
78
83
  whole.notify(EMPTY_DIFF, [op]);
@@ -82,19 +87,24 @@ export function suggest(store, calls, options) {
82
87
  * THE SUGGESTIONS WAITING, oldest first — as `principal` may see them,
83
88
  * when one is named, or as the seat a seat's view (`seenBy`) is of: a
84
89
  * suggestion that names a record the seat may not see is not among them
85
- * (it is withheld, as any op that names one is).
90
+ * (it is withheld, as any op that names one is). One that expired is not
91
+ * waiting; one the reader said "not now" to (`options.dismissed`) is left
92
+ * out for them alone.
86
93
  */
87
- export function suggestions(store, principal) {
94
+ export function suggestions(store, principal, options = {}) {
88
95
  const seat = seatOf(store);
89
96
  const whole = seat?.store ?? store;
90
97
  const who = principal ?? seat?.principal;
91
98
  // A seat that sees everything is handed the store itself.
92
99
  const ops = (who !== undefined ? whole.seenBy(who) : whole).log.all();
93
- return suggestionsIn(ops, (id) => whole.graph.has(id));
100
+ return suggestionsIn(ops, (id) => whole.graph.has(id), { now: keptOf(whole).now(), dismissed: options.dismissed });
94
101
  }
95
102
  /** A suggestion still waiting that this author may see, or a sentence saying it is not. */
96
103
  function waitingFor(store, id, author) {
97
104
  const found = suggestions(store, author).find((one) => one.id === id);
105
+ const op = found ? undefined : store.log.get(id);
106
+ if (op?.suggests && expired(op, keptOf(store).now()))
107
+ throw new GraphError(`That suggestion expired on ${op.expiresAt.slice(0, 10)}.`);
98
108
  if (!found)
99
109
  throw new GraphError("That suggestion is no longer waiting: it was accepted or declined, or it is not one you can see.");
100
110
  return found;
@@ -123,8 +133,13 @@ export function declineSuggestion(store, id, options = {}) {
123
133
  const suggestion = waitingFor(whole, id, author);
124
134
  return whole.undo(suggestion.batch, { ...options, author });
125
135
  }
126
- /** The op that declined these calls — the whole suggestion, or any one of them on its own — or undefined: what an actor asks before it suggests. */
136
+ /**
137
+ * The op that declined these calls — the whole suggestion, or any one of
138
+ * them on its own, as asked or meaning the same (`meaningKey`) — or
139
+ * undefined: what an actor asks before it suggests.
140
+ */
127
141
  export function declined(store, calls) {
128
- return declinedIn(store.log.all(), calls);
142
+ const kept = store;
143
+ return declinedIn(store.log.all(), calls, typeof kept.actMeanings === "function" ? kept.actMeanings() : undefined);
129
144
  }
130
145
  //# sourceMappingURL=tidying.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tidying.js","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tidying.js","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAmC,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAI5E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEhH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA0CjD,MAAM,MAAM,GAAG,CAAsB,KAAe,EAAE,EAAE,CAAC,KAA2B,CAAC;AACrF,MAAM,KAAK,GAAG,CAAsB,GAAM,EAAE,KAAoB,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAA8B,CAAC;AAEhJ;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAsB,KAAe,EAAE,KAA8B,EAAE,OAAuB;IACnH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,UAAU,CAAC,+DAA+D,CAAC,CAAC;IACjH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;IACzC,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,oCAAoC,OAAO,CAAC,SAAS,wDAAwD,CAAC,CAAC;IACxN,uGAAuG;IACvG,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1F,IAAI,OAAO;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACnC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;IAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7F,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,MAAM,EAAE,GAAc;QACpB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM;QACrB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC9B,MAAM;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvD,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;QACvC,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,EAAE;QACV,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE;QACd,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;QAC5B,OAAO;QACP,QAAQ,EAAE,KAAK;QACf,GAAG,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC;KACzC,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrB,KAAK,CAAC,MAAM,CAAC,UAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAsB,KAAe,EAAE,SAAqB,EAAE,UAA8B,EAAE;IACvH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC;IACnC,MAAM,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;IACzC,0DAA0D;IAC1D,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtE,OAAO,aAAa,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AACrH,CAAC;AAED,2FAA2F;AAC3F,SAAS,UAAU,CAAsB,KAAe,EAAE,EAAU,EAAE,MAA0B;IAC9F,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,MAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,EAAE,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,8BAA8B,EAAE,CAAC,SAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IACxI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,UAAU,CAAC,kGAAkG,CAAC,CAAC;IACrI,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAsB,KAAe,EAAE,EAAU,EAAE,UAAwB,EAAE;IAC3G,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,UAAU,CAAC,OAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACvH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAsB,KAAe,EAAE,EAAU,EAAE,UAAwB,EAAE;IAC5G,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAoC,EAAE,KAA8B;IAC3F,MAAM,IAAI,GAAG,KAA4C,CAAC;IAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACrH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=typing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":""}
package/dist/typing.js ADDED
@@ -0,0 +1,109 @@
1
+ import { inverseOf } from "./ops/inverse.js";
2
+ import { typeTextMutation, typeTextVia } from "./mutations/type-text.js";
3
+ import { collaborativeFieldOf } from "./schema/collaborative.js";
4
+ import { carried, splicesOn, textAt, wholeAsSplice, writesWhole } from "./text/since.js";
5
+ import { TYPING } from "./text/typing-hook.js";
6
+ /**
7
+ * A WHOLE VALUE WRITTEN OVER TEXT TYPED TOGETHER IS A SPLICE: a patch an
8
+ * act, an edit, an agent or an import writes to such a field, where the
9
+ * record holds text, is rewritten into the one splice that makes the change
10
+ * — against the text the caller read at the revision `base` names for it,
11
+ * else against the text now. A field that holds no text yet, or is cleared,
12
+ * is written whole, as before. Read in order, so a record the same op made
13
+ * or a field it already changed is read as it will be.
14
+ */
15
+ function asSplices(store, primitives, base) {
16
+ if (!primitives.some((one) => one.op === "patch-node"))
17
+ return [...primitives];
18
+ const made = new Set();
19
+ const touched = new Set();
20
+ const out = [];
21
+ for (const primitive of primitives) {
22
+ if (primitive.op === "add-node")
23
+ made.add(primitive.node.id);
24
+ if (primitive.op !== "patch-node" || made.has(primitive.id)) {
25
+ if (primitive.op === "splice-text")
26
+ touched.add(`${primitive.id}\u0000${primitive.field}`);
27
+ out.push(primitive);
28
+ continue;
29
+ }
30
+ const record = store.graph.getNode(primitive.id);
31
+ const before = {};
32
+ const after = {};
33
+ const splices = [];
34
+ for (const [field, value] of Object.entries(primitive.after)) {
35
+ const current = record?.[field];
36
+ const at = `${primitive.id}\u0000${field}`;
37
+ if (typeof value === "string" && typeof current === "string" && current !== "" && !touched.has(at) && collaborativeFieldOf(store.schema, record?.kind, field)) {
38
+ const claimed = base?.find((entry) => entry.node === primitive.id && entry.field === field);
39
+ const splice = wholeAsSplice(current, value, claimed ? textAt(store.log.all(), store.log.horizon, primitive.id, field, claimed.rev, current) : undefined);
40
+ if (splice) {
41
+ splices.push({ op: "splice-text", id: primitive.id, field, ...splice });
42
+ touched.add(at);
43
+ continue;
44
+ }
45
+ // Merged, it changes nothing: written as the caller wrote it, a patch of what the field already holds.
46
+ }
47
+ before[field] = primitive.before[field];
48
+ after[field] = value;
49
+ touched.add(at);
50
+ }
51
+ if (Object.keys(after).length > 0)
52
+ out.push(splices.length > 0 ? { op: "patch-node", id: primitive.id, before, after } : primitive);
53
+ out.push(...splices);
54
+ }
55
+ return out;
56
+ }
57
+ /**
58
+ * WHAT EACH OP OF AN UNDO PUTS BACK, newest first, as the store appends
59
+ * them: its inverse, with each splice in it carried over every splice of
60
+ * the same field that came after it — the rest of its own op, the log
61
+ * since, and what the undo has put back already. So an undo of one
62
+ * person's typing takes back only their words: text somebody else typed
63
+ * since stays where it went, and text of theirs somebody else already
64
+ * deleted shrinks out of what is taken back.
65
+ */
66
+ function undone(log, ops) {
67
+ const putBack = [];
68
+ return [...ops]
69
+ .sort((a, b) => b.seq - a.seq)
70
+ .map((op) => {
71
+ const inverse = inverseOf(op);
72
+ if (!inverse.some((one) => one.op === "splice-text")) {
73
+ putBack.push(...inverse);
74
+ return { op, primitives: inverse };
75
+ }
76
+ const later = log.filter((one) => one.seq > op.seq).flatMap((one) => one.primitives);
77
+ const count = op.primitives.length;
78
+ const out = [];
79
+ inverse.forEach((one, at) => {
80
+ if (one.op !== "splice-text")
81
+ return void out.push(one);
82
+ const splice = carried(one, splicesOn([...op.primitives.slice(count - at), ...later, ...putBack, ...out], one.id, one.field));
83
+ if (splice.removed !== "" || splice.inserted !== "")
84
+ out.push({ op: "splice-text", id: one.id, field: one.field, ...splice });
85
+ });
86
+ putBack.push(...out);
87
+ return { op, primitives: out };
88
+ });
89
+ }
90
+ /**
91
+ * TYPING ON TEXT ONLY TYPED, SINCE, STANDS IN NOBODY'S WAY: a later op that
92
+ * only splices, into fields the undone ops wrote no other way than by
93
+ * splicing, read the record for its text, and the undo carries its inverse
94
+ * over that typing. Text written whole since — or the record taken out —
95
+ * still blocks an undo of typing into it, whatever that op read.
96
+ */
97
+ function aside(targets, later) {
98
+ const wholes = (node, field) => targets.some((one) => writesWhole(one, node, field));
99
+ if (later.primitives.length > 0 && later.primitives.every((one) => one.op === "splice-text" && !wholes(one.id, one.field)))
100
+ return true;
101
+ return targets.flatMap((one) => (one.op === "splice-text" && later.primitives.some((other) => writesWhole(other, one.id, one.field)) ? [one.id] : []));
102
+ }
103
+ TYPING.typeText = typeTextMutation;
104
+ TYPING.via = typeTextVia;
105
+ TYPING.collaborative = collaborativeFieldOf;
106
+ TYPING.asSplices = asSplices;
107
+ TYPING.undone = undone;
108
+ TYPING.aside = aside;
109
+ //# sourceMappingURL=typing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.js","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** The version of @graview/* that this build is — every package shares it. Written by scripts/write-framework-version.mjs. */
2
- export declare const FRAMEWORK_VERSION = "0.1.48";
2
+ export declare const FRAMEWORK_VERSION = "0.1.50";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** The version of @graview/* that this build is — every package shares it. Written by scripts/write-framework-version.mjs. */
2
- export const FRAMEWORK_VERSION = "0.1.48";
2
+ export const FRAMEWORK_VERSION = "0.1.50";
3
3
  //# sourceMappingURL=version.js.map
package/dist/who.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Author } from "./ops/types.js";
1
+ import { type Author } from "./ops/types.js";
2
2
  import type { Principal } from "./permissions/types.js";
3
3
  import type { AnySchema } from "./schema/schema.js";
4
4
  /**
package/dist/who.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"who.d.ts","sourceRoot":"","sources":["../src/who.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,CAAC,EAC3D,KAAK,EAAE;IACL,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IAC9G,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACtF,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GACA,MAAM,CA8BR"}
1
+ {"version":3,"file":"who.d.ts","sourceRoot":"","sources":["../src/who.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,YAAY,CAAC,EAC3D,KAAK,EAAE;IACL,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAA;KAAE,CAAC;IAC9G,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IACtF,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GACA,MAAM,CAgCR"}
package/dist/who.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { authorKindOf } from "./ops/types.js";
1
2
  import { labelOf } from "./schema/define-node.js";
2
3
  /**
3
4
  * AN AUTHOR BY NAME. A principal's id is its user node's id where the app
@@ -17,8 +18,10 @@ export function nameOfAuthor(author, where) {
17
18
  const { onBehalfOf, ...itself } = author;
18
19
  return `${nameOfAuthor(itself, where)}, for ${nameOfAuthor(onBehalfOf, where)}`;
19
20
  }
21
+ // A kind a newer build wrote reads as the app itself (`authorKindOf`).
22
+ const kind = authorKindOf(author);
20
23
  if (author.id === undefined)
21
- return author.name ?? (author.kind === "agent" ? "an agent" : author.kind);
24
+ return author.name ?? (kind === "agent" ? "an agent" : kind === "visitor" ? "a visitor" : kind);
22
25
  const node = where.graph.getNode(author.id);
23
26
  if (node)
24
27
  return labelOf(where.schema.tryDefinition(node.kind), node);
@@ -44,7 +47,7 @@ export function nameOfAuthor(author, where) {
44
47
  return "a visitor via a form";
45
48
  // A plain name ("kai") is how a host without seats names somebody; a namespaced id is not a name.
46
49
  if (/[:_/]/.test(author.id))
47
- return { human: "somebody", agent: "an agent", rule: "a rule", system: "the system" }[author.kind];
50
+ return { human: "somebody", visitor: "a visitor", agent: "an agent", rule: "a rule", system: "the system" }[kind];
48
51
  return author.id;
49
52
  }
50
53
  //# sourceMappingURL=who.js.map
package/dist/who.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"who.js","sourceRoot":"","sources":["../src/who.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAmBlD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA2D,EAC3D,KAMC;IAED;;;OAGG;IACH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;QACzC,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxG,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzH,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAC/B,sHAAsH;IACtH,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACpC;;;;;OAKG;IACH,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC;IAC5D,qHAAqH;IACrH,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,sBAAsB,CAAC;IACjE,kGAAkG;IAClG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChI,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"who.js","sourceRoot":"","sources":["../src/who.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAmBlD;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA2D,EAC3D,KAMC;IAED;;;OAGG;IACH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;QACzC,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAClF,CAAC;IACD,uEAAuE;IACvE,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7H,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzH,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IAC/B,sHAAsH;IACtH,IAAI,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC;IACpC;;;;;OAKG;IACH,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,aAAa,CAAC;IAC5D,qHAAqH;IACrH,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,sBAAsB,CAAC;IACjE,kGAAkG;IAClG,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/I,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graview/core",
3
- "version": "0.1.48",
3
+ "version": "0.1.50",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -93,10 +93,18 @@
93
93
  "types": "./dist/seat.d.ts",
94
94
  "default": "./dist/seat.js"
95
95
  },
96
+ "./publishing": {
97
+ "types": "./dist/publishing.d.ts",
98
+ "default": "./dist/publishing.js"
99
+ },
96
100
  "./field-sight": {
97
101
  "types": "./dist/field-sight.d.ts",
98
102
  "default": "./dist/field-sight.js"
99
103
  },
104
+ "./typing": {
105
+ "types": "./dist/typing.d.ts",
106
+ "default": "./dist/typing.js"
107
+ },
100
108
  "./search": {
101
109
  "types": "./dist/search.d.ts",
102
110
  "default": "./dist/search.js"
@@ -181,7 +189,9 @@
181
189
  ],
182
190
  "sideEffects": [
183
191
  "./dist/field-sight.js",
184
- "./src/field-sight.ts"
192
+ "./src/field-sight.ts",
193
+ "./dist/publishing.js",
194
+ "./src/publishing.ts"
185
195
  ],
186
196
  "repository": {
187
197
  "type": "git",