@graview/core 0.1.61 → 0.1.62

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 (235) hide show
  1. package/README.md +13 -1
  2. package/dist/app-places.d.ts.map +1 -1
  3. package/dist/app-places.js +2 -2
  4. package/dist/app-places.js.map +1 -1
  5. package/dist/app.d.ts +10 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/capabilities.js +1 -1
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/cli/check/hidden-reads.d.ts.map +1 -1
  11. package/dist/cli/check/hidden-reads.js +26 -0
  12. package/dist/cli/check/hidden-reads.js.map +1 -1
  13. package/dist/cli/check/index.d.ts +1 -0
  14. package/dist/cli/check/index.d.ts.map +1 -1
  15. package/dist/cli/check/index.js +1 -0
  16. package/dist/cli/check/index.js.map +1 -1
  17. package/dist/cli/check/tidying.d.ts +14 -0
  18. package/dist/cli/check/tidying.d.ts.map +1 -0
  19. package/dist/cli/check/tidying.js +24 -0
  20. package/dist/cli/check/tidying.js.map +1 -0
  21. package/dist/cli/check.d.ts.map +1 -1
  22. package/dist/cli/check.js +2 -1
  23. package/dist/cli/check.js.map +1 -1
  24. package/dist/cli/describe.d.ts.map +1 -1
  25. package/dist/cli/describe.js +14 -1
  26. package/dist/cli/describe.js.map +1 -1
  27. package/dist/cli/document-schema.d.ts.map +1 -1
  28. package/dist/cli/document-schema.js +6 -2
  29. package/dist/cli/document-schema.js.map +1 -1
  30. package/dist/cli/index.js +1 -1
  31. package/dist/cli/index.js.map +1 -1
  32. package/dist/compose.d.ts +11 -3
  33. package/dist/compose.d.ts.map +1 -1
  34. package/dist/compose.js +12 -2
  35. package/dist/compose.js.map +1 -1
  36. package/dist/css/sanitize.d.ts +125 -0
  37. package/dist/css/sanitize.d.ts.map +1 -0
  38. package/dist/css/sanitize.js +989 -0
  39. package/dist/css/sanitize.js.map +1 -0
  40. package/dist/css/tables.d.ts +55 -0
  41. package/dist/css/tables.d.ts.map +1 -0
  42. package/dist/css/tables.js +137 -0
  43. package/dist/css/tables.js.map +1 -0
  44. package/dist/css.d.ts +20 -0
  45. package/dist/css.d.ts.map +1 -0
  46. package/dist/css.js +19 -0
  47. package/dist/css.js.map +1 -0
  48. package/dist/days.d.ts +15 -0
  49. package/dist/days.d.ts.map +1 -1
  50. package/dist/days.js +21 -0
  51. package/dist/days.js.map +1 -1
  52. package/dist/describe.d.ts +1 -1
  53. package/dist/describe.d.ts.map +1 -1
  54. package/dist/document/act-findings.d.ts.map +1 -1
  55. package/dist/document/act-findings.js +80 -1
  56. package/dist/document/act-findings.js.map +1 -1
  57. package/dist/document/brand-check.d.ts +15 -1
  58. package/dist/document/brand-check.d.ts.map +1 -1
  59. package/dist/document/brand-check.js +80 -0
  60. package/dist/document/brand-check.js.map +1 -1
  61. package/dist/document/brand.d.ts.map +1 -1
  62. package/dist/document/brand.js +2 -0
  63. package/dist/document/brand.js.map +1 -1
  64. package/dist/document/compile-checked.d.ts.map +1 -1
  65. package/dist/document/compile-checked.js +3 -2
  66. package/dist/document/compile-checked.js.map +1 -1
  67. package/dist/document/compile.d.ts.map +1 -1
  68. package/dist/document/compile.js +48 -7
  69. package/dist/document/compile.js.map +1 -1
  70. package/dist/document/compiled.d.ts +18 -3
  71. package/dist/document/compiled.d.ts.map +1 -1
  72. package/dist/document/compiled.js +84 -8
  73. package/dist/document/compiled.js.map +1 -1
  74. package/dist/document/connection-findings.js +85 -7
  75. package/dist/document/connection-findings.js.map +1 -1
  76. package/dist/document/connection-spec.d.ts +6 -0
  77. package/dist/document/connection-spec.d.ts.map +1 -1
  78. package/dist/document/connection-spec.js +19 -1
  79. package/dist/document/connection-spec.js.map +1 -1
  80. package/dist/document/covers.d.ts +48 -0
  81. package/dist/document/covers.d.ts.map +1 -0
  82. package/dist/document/covers.js +90 -0
  83. package/dist/document/covers.js.map +1 -0
  84. package/dist/document/describe-place.d.ts +3 -0
  85. package/dist/document/describe-place.d.ts.map +1 -1
  86. package/dist/document/describe-place.js +11 -0
  87. package/dist/document/describe-place.js.map +1 -1
  88. package/dist/document/described.d.ts +28 -0
  89. package/dist/document/described.d.ts.map +1 -1
  90. package/dist/document/diff.js +10 -1
  91. package/dist/document/diff.js.map +1 -1
  92. package/dist/document/edit.d.ts.map +1 -1
  93. package/dist/document/edit.js +103 -7
  94. package/dist/document/edit.js.map +1 -1
  95. package/dist/document/expr/evaluate.d.ts +10 -1
  96. package/dist/document/expr/evaluate.d.ts.map +1 -1
  97. package/dist/document/expr/evaluate.js +110 -2
  98. package/dist/document/expr/evaluate.js.map +1 -1
  99. package/dist/document/expr/index.d.ts +1 -0
  100. package/dist/document/expr/index.d.ts.map +1 -1
  101. package/dist/document/expr/index.js +2 -0
  102. package/dist/document/expr/index.js.map +1 -1
  103. package/dist/document/expr/typing.d.ts +24 -0
  104. package/dist/document/expr/typing.d.ts.map +1 -0
  105. package/dist/document/expr/typing.js +219 -0
  106. package/dist/document/expr/typing.js.map +1 -0
  107. package/dist/document/expr/when.d.ts +52 -0
  108. package/dist/document/expr/when.d.ts.map +1 -0
  109. package/dist/document/expr/when.js +215 -0
  110. package/dist/document/expr/when.js.map +1 -0
  111. package/dist/document/expr-type-findings.d.ts +5 -0
  112. package/dist/document/expr-type-findings.d.ts.map +1 -0
  113. package/dist/document/expr-type-findings.js +90 -0
  114. package/dist/document/expr-type-findings.js.map +1 -0
  115. package/dist/document/index.d.ts +6 -3
  116. package/dist/document/index.d.ts.map +1 -1
  117. package/dist/document/index.js +5 -2
  118. package/dist/document/index.js.map +1 -1
  119. package/dist/document/linked-findings.js +1 -1
  120. package/dist/document/linked-findings.js.map +1 -1
  121. package/dist/document/rule-line.d.ts +7 -3
  122. package/dist/document/rule-line.d.ts.map +1 -1
  123. package/dist/document/rule-line.js +17 -2
  124. package/dist/document/rule-line.js.map +1 -1
  125. package/dist/document/rule-reads.d.ts.map +1 -1
  126. package/dist/document/rule-reads.js +3 -1
  127. package/dist/document/rule-reads.js.map +1 -1
  128. package/dist/document/rules.d.ts +30 -0
  129. package/dist/document/rules.d.ts.map +1 -1
  130. package/dist/document/rules.js +74 -0
  131. package/dist/document/rules.js.map +1 -1
  132. package/dist/document/schema.d.ts +75 -2
  133. package/dist/document/schema.d.ts.map +1 -1
  134. package/dist/document/schema.js +82 -4
  135. package/dist/document/schema.js.map +1 -1
  136. package/dist/document/to-document.d.ts.map +1 -1
  137. package/dist/document/to-document.js +3 -1
  138. package/dist/document/to-document.js.map +1 -1
  139. package/dist/document.schema.json +262 -5
  140. package/dist/index.d.ts +6 -5
  141. package/dist/index.d.ts.map +1 -1
  142. package/dist/index.js +5 -3
  143. package/dist/index.js.map +1 -1
  144. package/dist/invariants/types.d.ts +7 -2
  145. package/dist/invariants/types.d.ts.map +1 -1
  146. package/dist/lines.d.ts.map +1 -1
  147. package/dist/lines.js +6 -2
  148. package/dist/lines.js.map +1 -1
  149. package/dist/mutations/types.d.ts +9 -0
  150. package/dist/mutations/types.d.ts.map +1 -1
  151. package/dist/mutations/vote-suggestion.d.ts +67 -0
  152. package/dist/mutations/vote-suggestion.d.ts.map +1 -0
  153. package/dist/mutations/vote-suggestion.js +36 -0
  154. package/dist/mutations/vote-suggestion.js.map +1 -0
  155. package/dist/navigate.d.ts +7 -3
  156. package/dist/navigate.d.ts.map +1 -1
  157. package/dist/navigate.js +7 -3
  158. package/dist/navigate.js.map +1 -1
  159. package/dist/ops/lineage.d.ts +11 -1
  160. package/dist/ops/lineage.d.ts.map +1 -1
  161. package/dist/ops/lineage.js +6 -2
  162. package/dist/ops/lineage.js.map +1 -1
  163. package/dist/ops/suggestions.d.ts +33 -1
  164. package/dist/ops/suggestions.d.ts.map +1 -1
  165. package/dist/ops/suggestions.js +44 -2
  166. package/dist/ops/suggestions.js.map +1 -1
  167. package/dist/ops/types.d.ts +13 -0
  168. package/dist/ops/types.d.ts.map +1 -1
  169. package/dist/ops/types.js.map +1 -1
  170. package/dist/place-names.d.ts +42 -0
  171. package/dist/place-names.d.ts.map +1 -0
  172. package/dist/place-names.js +43 -0
  173. package/dist/place-names.js.map +1 -0
  174. package/dist/places.d.ts +2 -0
  175. package/dist/places.d.ts.map +1 -1
  176. package/dist/places.js +2 -0
  177. package/dist/places.js.map +1 -1
  178. package/dist/starting-document.d.ts +32 -0
  179. package/dist/starting-document.d.ts.map +1 -1
  180. package/dist/starting-document.js +35 -4
  181. package/dist/starting-document.js.map +1 -1
  182. package/dist/store.d.ts +29 -0
  183. package/dist/store.d.ts.map +1 -1
  184. package/dist/store.js +134 -21
  185. package/dist/store.js.map +1 -1
  186. package/dist/sync/connection.d.ts +11 -1
  187. package/dist/sync/connection.d.ts.map +1 -1
  188. package/dist/sync/connection.js +94 -22
  189. package/dist/sync/connection.js.map +1 -1
  190. package/dist/sync/engine.d.ts.map +1 -1
  191. package/dist/sync/engine.js +5 -3
  192. package/dist/sync/engine.js.map +1 -1
  193. package/dist/sync/google-calendar.d.ts +8 -0
  194. package/dist/sync/google-calendar.d.ts.map +1 -1
  195. package/dist/sync/google-calendar.js +12 -2
  196. package/dist/sync/google-calendar.js.map +1 -1
  197. package/dist/sync/guests.d.ts +44 -0
  198. package/dist/sync/guests.d.ts.map +1 -0
  199. package/dist/sync/guests.js +57 -0
  200. package/dist/sync/guests.js.map +1 -0
  201. package/dist/sync/types.d.ts +9 -0
  202. package/dist/sync/types.d.ts.map +1 -1
  203. package/dist/sync/types.js.map +1 -1
  204. package/dist/testing.js +1 -1
  205. package/dist/testing.js.map +1 -1
  206. package/dist/theme/contrast.d.ts +2 -0
  207. package/dist/theme/contrast.d.ts.map +1 -1
  208. package/dist/theme/contrast.js +4 -0
  209. package/dist/theme/contrast.js.map +1 -1
  210. package/dist/theme/ground.d.ts +1 -2
  211. package/dist/theme/ground.d.ts.map +1 -1
  212. package/dist/theme/ground.js +2 -5
  213. package/dist/theme/ground.js.map +1 -1
  214. package/dist/theme/marks.d.ts +14 -2
  215. package/dist/theme/marks.d.ts.map +1 -1
  216. package/dist/theme/marks.js +20 -3
  217. package/dist/theme/marks.js.map +1 -1
  218. package/dist/theme/types.d.ts +22 -0
  219. package/dist/theme/types.d.ts.map +1 -1
  220. package/dist/theme/types.js.map +1 -1
  221. package/dist/tidying.d.ts +30 -4
  222. package/dist/tidying.d.ts.map +1 -1
  223. package/dist/tidying.js +110 -5
  224. package/dist/tidying.js.map +1 -1
  225. package/dist/trait-vocabulary.d.ts +17 -0
  226. package/dist/trait-vocabulary.d.ts.map +1 -0
  227. package/dist/trait-vocabulary.js +16 -0
  228. package/dist/trait-vocabulary.js.map +1 -0
  229. package/dist/traits.d.ts +14 -7
  230. package/dist/traits.d.ts.map +1 -1
  231. package/dist/traits.js +33 -12
  232. package/dist/traits.js.map +1 -1
  233. package/dist/version.d.ts +1 -1
  234. package/dist/version.js +1 -1
  235. package/package.json +11 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mutations/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mutations/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { Lineage } from "../ops/lineage.js";
2
+ import type { Operation } from "../ops/types.js";
3
+ import type { Principal } from "../permissions/types.js";
4
+ import type { AnySchema } from "../schema/schema.js";
5
+ import type { AnyMutationDefinition, MutationCall } from "./types.js";
6
+ /** The name of the act that votes on a suggestion (Roadmap f-suggestion-votes). */
7
+ export declare const VOTE_SUGGESTION = "vote-suggestion";
8
+ /** A vote on a suggestion: for it, against it, or none (a vote withdrawn). */
9
+ export type Vote = "for" | "against" | null;
10
+ /** What a vote's op keeps (`Operation.vote`): which suggestion, and which way. */
11
+ export interface SuggestionVote {
12
+ /** The id of the suggestion's op. */
13
+ readonly suggestion: string;
14
+ readonly vote: Vote;
15
+ }
16
+ /**
17
+ * WHAT THE DECLARATION SAYS OF SUGGESTIONS AS A WHOLE (`tidying` at the
18
+ * top of a document, Roadmap f-suggestion-votes): `autoAcceptAt`, the
19
+ * number of votes for a suggestion at which the app's own actor makes it
20
+ * without waiting for someone who may. Absent, a suggestion waits until
21
+ * one of them decides, however many voted. Handed to the store
22
+ * (`StoreOptions.tidying`), which is where it is honored.
23
+ */
24
+ export interface AppTidying {
25
+ readonly autoAcceptAt?: number;
26
+ }
27
+ /**
28
+ * "VOTE ON A SUGGESTION" (Roadmap f-suggestion-votes): what Accept and
29
+ * Decline do from a seat that may see a suggestion and may not make the
30
+ * change — a reader, a visitor by link — so the person is heard rather
31
+ * than refused. Its arguments are the suggestion's id and the vote: `for`,
32
+ * `against`, or `null` to withdraw one. One standing vote per person: a
33
+ * later one replaces it.
34
+ *
35
+ * Every store answers to it and no list offers it: it is not one of the
36
+ * app's acts, and the tray offers it as Accept and Decline. It goes over
37
+ * the wire like any call, and is permitted to whoever may see the
38
+ * suggestion. The store makes its op itself (`VOTING.op`, filled in by
39
+ * `@graview/core/tidying`): no primitives, the vote on the op, so it folds
40
+ * to nothing and a build before it reads it as a change that touched
41
+ * nothing.
42
+ */
43
+ export declare function voteSuggestionMutation<S extends AnySchema>(): AnyMutationDefinition<S>;
44
+ /** What `@graview/core/tidying` teaches the store about votes when it is loaded, as `PUBLISHING` does for a publish. */
45
+ export interface VotingServed {
46
+ /** The vote's op, judged as the voter sees the suggestion: a sentence when it is not waiting for them. */
47
+ op?: (store: object, made: {
48
+ readonly id: string;
49
+ readonly at: string;
50
+ }, call: MutationCall, batch: string, author: Principal, options: {
51
+ readonly via?: unknown;
52
+ }) => Operation;
53
+ /**
54
+ * What the vote just kept has the app's own actor make, when the
55
+ * declaration says a suggestion is made at `autoAcceptAt` votes for and
56
+ * this one reached it: the suggestion's calls, the actor, and a lineage
57
+ * naming the suggestion and its voters. Undefined when nothing is to be
58
+ * made.
59
+ */
60
+ accepting?: (store: object, vote: Operation) => {
61
+ readonly calls: readonly MutationCall[];
62
+ readonly author: Principal;
63
+ readonly lineage: Lineage;
64
+ } | undefined;
65
+ }
66
+ export declare const VOTING: VotingServed;
67
+ //# sourceMappingURL=vote-suggestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vote-suggestion.d.ts","sourceRoot":"","sources":["../../src/mutations/vote-suggestion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtE,mFAAmF;AACnF,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,8EAA8E;AAC9E,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAStF;AAED,wHAAwH;AACxH,MAAM,WAAW,YAAY;IAC3B,0GAA0G;IAC1G,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;IACjL;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAChK;AAMD,eAAO,MAAM,MAAM,EAAE,YAAoH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import * as z from "../schema/zod.js";
2
+ /** The name of the act that votes on a suggestion (Roadmap f-suggestion-votes). */
3
+ export const VOTE_SUGGESTION = "vote-suggestion";
4
+ /**
5
+ * "VOTE ON A SUGGESTION" (Roadmap f-suggestion-votes): what Accept and
6
+ * Decline do from a seat that may see a suggestion and may not make the
7
+ * change — a reader, a visitor by link — so the person is heard rather
8
+ * than refused. Its arguments are the suggestion's id and the vote: `for`,
9
+ * `against`, or `null` to withdraw one. One standing vote per person: a
10
+ * later one replaces it.
11
+ *
12
+ * Every store answers to it and no list offers it: it is not one of the
13
+ * app's acts, and the tray offers it as Accept and Decline. It goes over
14
+ * the wire like any call, and is permitted to whoever may see the
15
+ * suggestion. The store makes its op itself (`VOTING.op`, filled in by
16
+ * `@graview/core/tidying`): no primitives, the vote on the op, so it folds
17
+ * to nothing and a build before it reads it as a change that touched
18
+ * nothing.
19
+ */
20
+ export function voteSuggestionMutation() {
21
+ return {
22
+ name: VOTE_SUGGESTION,
23
+ title: "Vote on a suggestion",
24
+ input: z.object({ suggestion: z.string(), vote: z.union([z.literal("for"), z.literal("against"), z.null()]) }),
25
+ apply() {
26
+ // The store makes the op (`VOTING.op`); nothing of the graph changes.
27
+ },
28
+ };
29
+ }
30
+ /*
31
+ * One object for the store and `@graview/core/tidying`, found by a key
32
+ * every copy agrees on, as the seat view and publishing are: the module a
33
+ * page fetches to draw the tray imports nothing of what it loaded first.
34
+ */
35
+ export const VOTING = (globalThis[Symbol.for("@graview/core:voting")] ??= {});
36
+ //# sourceMappingURL=vote-suggestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vote-suggestion.js","sourceRoot":"","sources":["../../src/mutations/vote-suggestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AAOtC,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAwBjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAU;QACvH,KAAK;YACH,sEAAsE;QACxE,CAAC;KAC0B,CAAC;AAChC,CAAC;AAeD;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiB,CAAE,UAAuD,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC"}
@@ -5,9 +5,13 @@
5
5
  * section: "Shipping soon" })` arrives at a path narrowed and to a section
6
6
  * (`narrowedPath`, `/features?filter=stage%3Abuilding#shipping-soon`), the
7
7
  * filter in the words a list's arranging line writes and the section as
8
- * the address says it (`sectionSlug`). Off the main entry: only the routed
9
- * face's way of going and a worker view's host reach it, each fetched as
10
- * it is drawn.
8
+ * the address says it (`sectionSlug`). What a view may name at all —
9
+ * `overview`, `home`, a kind's list, a titled place — is one vocabulary
10
+ * (`placeNamesOf` from the declaration, `placeNamesFrom` from what a face
11
+ * holds; FR-235), so the headless check and the live host agree. Off the
12
+ * main entry: only the routed face's way of going and a worker view's
13
+ * host reach it, each fetched as it is drawn.
11
14
  */
12
15
  export { narrowedPath, sectionSlug } from "./views/address.js";
16
+ export { placeNamesFrom, placeNamesOf, type PlaceName, type PlaceNameIs, type PlaceNamesOptions } from "./place-names.js";
13
17
  //# sourceMappingURL=navigate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/navigate.js CHANGED
@@ -5,9 +5,13 @@
5
5
  * section: "Shipping soon" })` arrives at a path narrowed and to a section
6
6
  * (`narrowedPath`, `/features?filter=stage%3Abuilding#shipping-soon`), the
7
7
  * filter in the words a list's arranging line writes and the section as
8
- * the address says it (`sectionSlug`). Off the main entry: only the routed
9
- * face's way of going and a worker view's host reach it, each fetched as
10
- * it is drawn.
8
+ * the address says it (`sectionSlug`). What a view may name at all —
9
+ * `overview`, `home`, a kind's list, a titled place — is one vocabulary
10
+ * (`placeNamesOf` from the declaration, `placeNamesFrom` from what a face
11
+ * holds; FR-235), so the headless check and the live host agree. Off the
12
+ * main entry: only the routed face's way of going and a worker view's
13
+ * host reach it, each fetched as it is drawn.
11
14
  */
12
15
  export { narrowedPath, sectionSlug } from "./views/address.js";
16
+ export { placeNamesFrom, placeNamesOf } from "./place-names.js";
13
17
  //# sourceMappingURL=navigate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"navigate.js","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAA4D,MAAM,kBAAkB,CAAC"}
@@ -68,6 +68,14 @@ export interface Lineage {
68
68
  * At most 200, each 3–240 characters.
69
69
  */
70
70
  readonly read?: readonly string[];
71
+ /**
72
+ * WHO VOTED FOR THE SUGGESTION THIS CHANGE MADE (Roadmap
73
+ * f-suggestion-votes): the ids of the people whose standing votes were
74
+ * for it when the app's own actor made it at the declaration's
75
+ * `autoAcceptAt`. At most 200, each 1–120 characters. A person's id may
76
+ * be a record's, which the op then names as it names any id.
77
+ */
78
+ readonly voters?: readonly string[];
71
79
  }
72
80
  /** The longest basis an op keeps: a reason, not a transcript. */
73
81
  export declare const LINEAGE_BASIS_LIMIT = 500;
@@ -77,6 +85,8 @@ export declare const LINEAGE_MODEL_LIMIT = 120;
77
85
  export declare const LINEAGE_EVIDENCE_LIMIT = 50;
78
86
  /** The most fields a lineage says its basis read. */
79
87
  export declare const LINEAGE_READ_LIMIT = 200;
88
+ /** The most people a lineage names as having voted for the suggestion it made. */
89
+ export declare const LINEAGE_VOTERS_LIMIT = 200;
80
90
  /** The longest a whole lineage is, written out as JSON: what bounds the keys a later build adds. */
81
91
  export declare const LINEAGE_LIMIT = 4000;
82
92
  /**
@@ -85,7 +95,7 @@ export declare const LINEAGE_LIMIT = 4000;
85
95
  * GraphError: a basis of 1–500 characters, a confidence from 0 to 1, a
86
96
  * model, suggestion, interaction, actor and run of 1–120 characters,
87
97
  * evidence of at most 50 such ids, the fields its basis read as at most
88
- * 200 `<id>#<field>`, no key that would reach a prototype, and
98
+ * 200 `<id>#<field>`, voters of at most 200 such ids, no key that would reach a prototype, and
89
99
  * the whole at most 4000 characters written out. Asked before anything is
90
100
  * kept; nothing said is no lineage.
91
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,8GAA8G;AAC9G,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,oGAAoG;AACpG,eAAO,MAAM,aAAa,OAAO,CAAC;AAiBlC;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAqB7D"}
1
+ {"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,8GAA8G;AAC9G,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,oGAAoG;AACpG,eAAO,MAAM,aAAa,OAAO,CAAC;AAiBlC;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAsB7D"}
@@ -7,6 +7,8 @@ export const LINEAGE_MODEL_LIMIT = 120;
7
7
  export const LINEAGE_EVIDENCE_LIMIT = 50;
8
8
  /** The most fields a lineage says its basis read. */
9
9
  export const LINEAGE_READ_LIMIT = 200;
10
+ /** The most people a lineage names as having voted for the suggestion it made. */
11
+ export const LINEAGE_VOTERS_LIMIT = 200;
10
12
  /** The longest a whole lineage is, written out as JSON: what bounds the keys a later build adds. */
11
13
  export const LINEAGE_LIMIT = 4000;
12
14
  /** The keys that name something in 1–120 characters. */
@@ -26,7 +28,7 @@ const asJson = (value) => {
26
28
  * GraphError: a basis of 1–500 characters, a confidence from 0 to 1, a
27
29
  * model, suggestion, interaction, actor and run of 1–120 characters,
28
30
  * evidence of at most 50 such ids, the fields its basis read as at most
29
- * 200 `<id>#<field>`, no key that would reach a prototype, and
31
+ * 200 `<id>#<field>`, voters of at most 200 such ids, no key that would reach a prototype, and
30
32
  * the whole at most 4000 characters written out. Asked before anything is
31
33
  * kept; nothing said is no lineage.
32
34
  */
@@ -52,13 +54,15 @@ export function lineageOf(value) {
52
54
  fits &&= Array.isArray(said) && said.length <= LINEAGE_EVIDENCE_LIMIT && said.every(isName);
53
55
  else if (key === "read")
54
56
  fits &&= Array.isArray(said) && said.length <= LINEAGE_READ_LIMIT && said.every(isFieldRead);
57
+ else if (key === "voters")
58
+ fits &&= Array.isArray(said) && said.length <= LINEAGE_VOTERS_LIMIT && said.every(isName);
55
59
  else
56
60
  fits &&= key !== "__proto__" && key !== "constructor" && key !== "prototype" && (said = asJson(said)) !== undefined;
57
61
  if (fits)
58
62
  kept[key] = said;
59
63
  }
60
64
  if (!fits)
61
- throw new GraphError("A lineage is { basis: 1 to 500 characters, confidence?: 0 to 1, model?, suggestion?, interaction?, actor?, run?: 1 to 120 characters, evidence?: up to 50 ids, read?: up to 200 <id>#<field> }");
65
+ throw new GraphError("A lineage is { basis: 1 to 500 characters, confidence?: 0 to 1, model?, suggestion?, interaction?, actor?, run?: 1 to 120 characters, evidence?: up to 50 ids, read?: up to 200 <id>#<field>, voters?: up to 200 ids }");
62
66
  if (JSON.stringify(kept).length > LINEAGE_LIMIT)
63
67
  throw new GraphError(`A lineage is at most ${LINEAGE_LIMIT} characters written out.`);
64
68
  return kept;
@@ -1 +1 @@
1
- {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { MutationCall } from "../mutations/types.js";
2
+ import type { Vote } from "../mutations/vote-suggestion.js";
3
+ import type { Principal } from "../permissions/types.js";
2
4
  import type { Lineage } from "./lineage.js";
3
5
  import type { Author, Operation } from "./types.js";
4
6
  /** A suggestion that waits: what it proposes, who proposed it, on what basis, and how sure. */
@@ -16,6 +18,20 @@ export interface Suggestion {
16
18
  readonly expiresAt?: string;
17
19
  /** The records its calls name, so a tray can point at them. */
18
20
  readonly about: readonly string[];
21
+ /**
22
+ * THE VOTES ON IT (Roadmap f-suggestion-votes): how many people's
23
+ * standing vote is for it and against it, and the reader's own when they
24
+ * cast one (`mine`) — what a tray shows beside Accept to whoever may
25
+ * decide, says back to a voter, and a list sorts on.
26
+ */
27
+ readonly tally: SuggestionTally;
28
+ }
29
+ /** The standing votes on a suggestion, counted (Roadmap f-suggestion-votes). */
30
+ export interface SuggestionTally {
31
+ readonly for: number;
32
+ readonly against: number;
33
+ /** The reader's own standing vote, when one was named to `suggestions` and they cast one. */
34
+ readonly mine?: "for" | "against";
19
35
  }
20
36
  /**
21
37
  * "NOT NOW": ONE PERSON PUT A SUGGESTION OUT OF SIGHT, without saying no
@@ -55,7 +71,21 @@ export interface WaitingOptions {
55
71
  readonly now?: string;
56
72
  /** What the person reading said "not now" to; those are not among what waits for them. */
57
73
  readonly dismissed?: readonly Dismissal[] | undefined;
74
+ /** Who is reading, so each suggestion's `tally.mine` is their standing vote (Roadmap f-suggestion-votes). */
75
+ readonly voter?: Principal | undefined;
58
76
  }
77
+ /** Who a vote is counted as: the person, for an agent acting for one; a seat with no id, by its session. */
78
+ export declare const voterId: (author: Author) => string | undefined;
79
+ /**
80
+ * THE STANDING VOTES IN A LOG, by suggestion then by voter (Roadmap
81
+ * f-suggestion-votes): each person's latest vote that still stands — a
82
+ * later vote replaces an earlier one, `null` withdraws it, an undone vote
83
+ * never counted, and a vote withheld from the reader is not theirs to
84
+ * count. One pass over the ops, asked once per reading.
85
+ */
86
+ export declare function votesIn(ops: readonly Operation[]): ReadonlyMap<string, ReadonlyMap<string, Exclude<Vote, null>>>;
87
+ /** The votes on one suggestion, counted, with the reader's own when they are named. */
88
+ export declare function tallyOf(votes: ReadonlyMap<string, Exclude<Vote, null>> | undefined, voter?: Principal): SuggestionTally;
59
89
  /** Whether a suggestion's op has stopped waiting by its own expiry. */
60
90
  export declare const expired: (op: Pick<Operation, "expiresAt">, now: string) => boolean;
61
91
  /** Whether one person put this suggestion out of sight, as of now. */
@@ -66,7 +96,9 @@ export declare const isDismissed: (dismissed: readonly Dismissal[] | undefined,
66
96
  * that was taken back later), a live undo declined it, or it expired. A
67
97
  * withheld op is no suggestion for the seat it was withheld from. `has`
68
98
  * keeps, of the ids its calls name, the records (`about`). One the reader
69
- * said "not now" to (`options.dismissed`) is left out for them.
99
+ * said "not now" to (`options.dismissed`) is left out for them. Each
100
+ * carries the standing votes on it (`tally`), the reader's own among them
101
+ * when `options.voter` names them.
70
102
  */
71
103
  export declare function suggestionsIn(ops: readonly Operation[], has?: (id: string) => boolean, options?: WaitingOptions): Suggestion[];
72
104
  //# sourceMappingURL=suggestions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AASpD,+FAA+F;AAC/F,MAAM,WAAW,UAAU;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,IAAI,IAAI,SAAS,SAAS,EAAE,CAAC;IAC7B,qEAAqE;IACrE,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,sEAAsE;IACtE,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,2GAA2G;IAC3G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;CACvD;AAED,uEAAuE;AACvE,eAAO,MAAM,OAAO,GAAI,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,MAAM,KAAG,OAAoF,CAAC;AAE7J,sEAAsE;AACtE,eAAO,MAAM,WAAW,GAAI,WAAW,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,IAAI,MAAM,EAAE,KAAK,MAAM,KAAG,OAC6B,CAAC;AAEjI;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,GAAG,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAoB,EAAE,OAAO,GAAE,cAAmB,GAAG,UAAU,EAAE,CAY9I"}
1
+ {"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,43 @@
1
+ import { actingAs } from "../permissions/policy.js";
1
2
  import { undoneIn } from "./log.js";
3
+ /** Who a vote is counted as: the person, for an agent acting for one; a seat with no id, by its session. */
4
+ export const voterId = (author) => actingAs(author).id ?? author.session;
5
+ /**
6
+ * THE STANDING VOTES IN A LOG, by suggestion then by voter (Roadmap
7
+ * f-suggestion-votes): each person's latest vote that still stands — a
8
+ * later vote replaces an earlier one, `null` withdraws it, an undone vote
9
+ * never counted, and a vote withheld from the reader is not theirs to
10
+ * count. One pass over the ops, asked once per reading.
11
+ */
12
+ export function votesIn(ops) {
13
+ const undone = undoneIn(ops);
14
+ const standing = new Map();
15
+ for (const op of ops) {
16
+ if (op.vote === undefined || op.withheld || undone.has(op.id))
17
+ continue;
18
+ const who = voterId(op.author);
19
+ if (who === undefined)
20
+ continue;
21
+ let votes = standing.get(op.vote.suggestion);
22
+ if (!votes)
23
+ standing.set(op.vote.suggestion, (votes = new Map()));
24
+ if (op.vote.vote === null)
25
+ votes.delete(who);
26
+ else
27
+ votes.set(who, op.vote.vote);
28
+ }
29
+ return standing;
30
+ }
31
+ /** The votes on one suggestion, counted, with the reader's own when they are named. */
32
+ export function tallyOf(votes, voter) {
33
+ let votedFor = 0;
34
+ let against = 0;
35
+ for (const vote of votes?.values() ?? [])
36
+ vote === "for" ? votedFor++ : against++;
37
+ const me = voter && voterId(voter);
38
+ const mine = me !== undefined ? votes?.get(me) : undefined;
39
+ return { for: votedFor, against, ...(mine !== undefined ? { mine } : {}) };
40
+ }
2
41
  /** Whether a suggestion's op has stopped waiting by its own expiry. */
3
42
  export const expired = (op, now) => op.expiresAt !== undefined && Date.parse(op.expiresAt) <= Date.parse(now);
4
43
  /** Whether one person put this suggestion out of sight, as of now. */
@@ -9,19 +48,22 @@ export const isDismissed = (dismissed, id, now) => (dismissed ?? []).some((one)
9
48
  * that was taken back later), a live undo declined it, or it expired. A
10
49
  * withheld op is no suggestion for the seat it was withheld from. `has`
11
50
  * keeps, of the ids its calls name, the records (`about`). One the reader
12
- * said "not now" to (`options.dismissed`) is left out for them.
51
+ * said "not now" to (`options.dismissed`) is left out for them. Each
52
+ * carries the standing votes on it (`tally`), the reader's own among them
53
+ * when `options.voter` names them.
13
54
  */
14
55
  export function suggestionsIn(ops, has = () => true, options = {}) {
15
56
  const undone = undoneIn(ops);
16
57
  const accepted = new Set(ops.map((op) => op.lineage?.suggestion));
17
58
  const now = options.now ?? new Date().toISOString();
59
+ let votes;
18
60
  return ops
19
61
  .filter((op) => op.suggests && !op.withheld && !undone.has(op.id) && !accepted.has(op.id) && !expired(op, now) && !isDismissed(options.dismissed, op.id, now))
20
62
  .map(({ id, batch, suggests, intent, author, lineage, at, expiresAt }) => {
21
63
  const about = new Set();
22
64
  // Every string its calls hold, kept where it is a record.
23
65
  JSON.stringify(suggests.map((call) => call.args), (_, value) => (typeof value === "string" && has(value) && about.add(value), value));
24
- return { id, batch, calls: suggests, intent, author, ...(lineage ? { lineage } : {}), at, expiresAt, about: [...about] };
66
+ return { id, batch, calls: suggests, intent, author, ...(lineage ? { lineage } : {}), at, expiresAt, about: [...about], tally: tallyOf((votes ??= votesIn(ops)).get(id), options.voter) };
25
67
  });
26
68
  }
27
69
  //# sourceMappingURL=suggestions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAqEpC,uEAAuE;AACvE,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAgC,EAAE,GAAW,EAAW,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE7J,sEAAsE;AACtE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAA2C,EAAE,EAAU,EAAE,GAAW,EAAW,EAAE,CAC3G,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEjI;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,GAAyB,EAAE,MAA+B,GAAG,EAAE,CAAC,IAAI,EAAE,UAA0B,EAAE;IAC9H,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpD,OAAO,GAAG;SACP,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SAC7J,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACvE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;QAChC,0DAA0D;QAC1D,IAAI,CAAC,SAAS,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvI,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;IAC5H,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Primitive } from "../graph/primitives.js";
2
2
  import type { MutationCall } from "../mutations/types.js";
3
3
  import type { Lineage } from "./lineage.js";
4
+ import type { SuggestionVote } from "../mutations/vote-suggestion.js";
4
5
  /**
5
6
  * WHO CAN AUTHOR AN OP, AS THIS BUILD KNOWS THEM. The set is open: a kind
6
7
  * may be added within a major, and a reader that meets one it does not know
@@ -182,6 +183,18 @@ export interface Operation {
182
183
  * anew. Absent, it waits until a person answers it.
183
184
  */
184
185
  readonly expiresAt?: string;
186
+ /**
187
+ * A VOTE ON A SUGGESTION (Roadmap f-suggestion-votes): set on the op of
188
+ * the built-in `vote-suggestion` act, which touches no record — what
189
+ * Accept and Decline keep for a seat that may see the suggestion and
190
+ * may not make its change. `{ suggestion, vote }`, the vote `for`,
191
+ * `against` or `null` (one withdrawn); one standing vote per person, the
192
+ * latest. Read into a suggestion's `tally` (`suggestions`,
193
+ * `@graview/core/tidying`). An op without it reads as before, and folds
194
+ * the same; a build before it reads this one as a change that touched
195
+ * nothing.
196
+ */
197
+ readonly vote?: SuggestionVote;
185
198
  /**
186
199
  * HOW FAR READERS ARE SERVED, set by a publish (Roadmap
187
200
  * f-publishing-lifecycle): in an `on-publish` app, the seats not
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAErF,MAAM,kBAAkB,GAAyB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAA6C;IACxE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,MAAO,CAAC,IAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAErF,MAAM,kBAAkB,GAAyB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAA6C;IACxE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,MAAO,CAAC,IAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxF,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { GraviewApp } from "./app.js";
2
+ import type { AnySchema } from "./schema/schema.js";
3
+ import type { HostView, PagesArrangement, Place } from "./views/types.js";
4
+ /** What one name a view may use is: the Scene, the home, a kind's list, or a titled place. */
5
+ export type PlaceNameIs = "overview" | "home" | "list" | "place";
6
+ /** One name a view may send somebody to: its slug, what a reader knows it as, the kind it is over, and what it is. */
7
+ export interface PlaceName {
8
+ /** The word a link or `navigate` uses: `overview`, `home`, a kind's plural slug, a place's slug. */
9
+ readonly as: string;
10
+ /** What a reader knows it as: "Scene", "Home", "Features", "The board". */
11
+ readonly title: string;
12
+ /** The kind it is over; null for the Scene and the home. */
13
+ readonly kind: string | null;
14
+ readonly is: PlaceNameIs;
15
+ /** Kept off the lists (`pages.hide`, a hidden lens); still a name a view may use. */
16
+ readonly hidden?: boolean;
17
+ }
18
+ export interface PlaceNamesOptions {
19
+ /** The views the host keeps, by their manifests: each titled view of many is a place a view may name. */
20
+ readonly views?: readonly HostView[];
21
+ /** The kinds the viewer is kept from: no list of theirs, and no place over them, is a name for this viewer. */
22
+ readonly kept?: ReadonlySet<string>;
23
+ }
24
+ /**
25
+ * THE NAMES A VIEW MAY USE, FROM THE DECLARATION: what the headless check
26
+ * (`@graview/guest/headless`) and a host that describes a place hold a
27
+ * link to. The same list `placeNamesFrom` builds from what a face holds.
28
+ */
29
+ export declare function placeNamesOf<S extends AnySchema>(app: GraviewApp<S>, options?: PlaceNamesOptions): readonly PlaceName[];
30
+ /**
31
+ * THE SAME NAMES FROM WHAT A FACE HOLDS: the schema, the places its view
32
+ * registry names (each declared lens, each registered picture, each titled
33
+ * view the host keeps), and the arrangement — what the live host of a
34
+ * worker view judges a link by (`@graview/guest`'s `createLinks`), and what
35
+ * the routed face and the Scene go to. One builder with `placeNamesOf`, so
36
+ * the check and the page can never disagree about which names exist.
37
+ */
38
+ export declare function placeNamesFrom(schema: AnySchema, places: readonly Place[], options?: {
39
+ readonly pages?: PagesArrangement;
40
+ readonly kept?: ReadonlySet<string>;
41
+ }): readonly PlaceName[];
42
+ //# sourceMappingURL=place-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place-names.d.ts","sourceRoot":"","sources":["../src/place-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAsB1E,8FAA8F;AAC9F,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,sHAAsH;AACtH,MAAM,WAAW,SAAS;IACxB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAsBD,MAAM,WAAW,iBAAiB;IAChC,yGAAyG;IACzG,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,iBAAsB,GAAG,SAAS,SAAS,EAAE,CAE3H;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAO,GAAG,SAAS,SAAS,EAAE,CAE1L"}
@@ -0,0 +1,43 @@
1
+ import { placesFrom, placesOf } from "./app-places.js";
2
+ import { HOME_SLUG } from "./places.js";
3
+ const nameOf = (place) => ({
4
+ as: place.slug,
5
+ title: place.title,
6
+ kind: place.kind,
7
+ is: place.kind === null ? (place.slug === HOME_SLUG ? "home" : "overview") : place.address.startsWith("/places/") ? "place" : "list",
8
+ ...(place.hidden ? { hidden: true } : {}),
9
+ });
10
+ /** Each name once, the first listed winning: a lens titled "Overview" does not take the Scene's word. */
11
+ function namesOf(listed, kept) {
12
+ const out = [];
13
+ for (const place of listed) {
14
+ if (place.kind !== null && kept.has(place.kind))
15
+ continue;
16
+ if (place.over?.some((kind) => kept.has(kind)))
17
+ continue;
18
+ if (out.some((one) => one.as === place.slug))
19
+ continue;
20
+ out.push(nameOf(place));
21
+ }
22
+ return out;
23
+ }
24
+ /**
25
+ * THE NAMES A VIEW MAY USE, FROM THE DECLARATION: what the headless check
26
+ * (`@graview/guest/headless`) and a host that describes a place hold a
27
+ * link to. The same list `placeNamesFrom` builds from what a face holds.
28
+ */
29
+ export function placeNamesOf(app, options = {}) {
30
+ return namesOf(placesOf(app, options.views ? { views: options.views } : {}), options.kept ?? new Set());
31
+ }
32
+ /**
33
+ * THE SAME NAMES FROM WHAT A FACE HOLDS: the schema, the places its view
34
+ * registry names (each declared lens, each registered picture, each titled
35
+ * view the host keeps), and the arrangement — what the live host of a
36
+ * worker view judges a link by (`@graview/guest`'s `createLinks`), and what
37
+ * the routed face and the Scene go to. One builder with `placeNamesOf`, so
38
+ * the check and the page can never disagree about which names exist.
39
+ */
40
+ export function placeNamesFrom(schema, places, options = {}) {
41
+ return namesOf(placesFrom(schema, places, options.pages ? { pages: options.pages } : {}), options.kept ?? new Set());
42
+ }
43
+ //# sourceMappingURL=place-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"place-names.js","sourceRoot":"","sources":["../src/place-names.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwCxC,MAAM,MAAM,GAAG,CAAC,KAAe,EAAa,EAAE,CAAC,CAAC;IAC9C,EAAE,EAAE,KAAK,CAAC,IAAI;IACd,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;IACpI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC1C,CAAC,CAAC;AAEH,yGAAyG;AACzG,SAAS,OAAO,CAAC,MAA2B,EAAE,IAAyB;IACrE,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1D,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACzD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACvD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAsB,GAAkB,EAAE,UAA6B,EAAE;IACnG,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,MAAwB,EAAE,UAAsF,EAAE;IAClK,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AACvH,CAAC"}
package/dist/places.d.ts CHANGED
@@ -178,6 +178,8 @@ export declare function primaryOf(pages: PagesArrangement | undefined, schema: A
178
178
  readonly kinds: ReadonlySet<string>;
179
179
  readonly places: ReadonlySet<string>;
180
180
  } | undefined;
181
+ /** The home's address word: what a link or a view's navigate names the app's front page by (FR-235). */
182
+ export declare const HOME_SLUG = "home";
181
183
  /** The scene's address word (FR-132), whatever the declaration calls the scene. */
182
184
  export declare const OVERVIEW_SLUG = "overview";
183
185
  /** The scene's address on the routed face (FR-132); its stop rides on it as the fragment. */
@@ -1 +1 @@
1
- {"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"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"}