@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
@@ -78,6 +78,85 @@ function otherEndFindings(name, act, document) {
78
78
  }
79
79
  return out;
80
80
  }
81
+ /** Whether a value written as it is (not a `$ref`, not an expression) is one the field could hold. */
82
+ function literalFits(value, type) {
83
+ if (value === null || typeof value === "object")
84
+ return true;
85
+ if (typeof value === "string" && /^\$[A-Za-z]/.test(value))
86
+ return true;
87
+ switch (type) {
88
+ case "number":
89
+ case "integer":
90
+ case "duration":
91
+ return typeof value === "number";
92
+ case "boolean":
93
+ return typeof value === "boolean";
94
+ case "string":
95
+ case "text":
96
+ case "enum":
97
+ case "date":
98
+ case "datetime":
99
+ case "url":
100
+ case "email":
101
+ case "phone":
102
+ return typeof value === "string";
103
+ default:
104
+ return true;
105
+ }
106
+ }
107
+ /**
108
+ * What an act says of the records linked to its subject (Roadmap
109
+ * f-acts-update-linked): a `setsLinked` names, for a subject the act is
110
+ * `on`, a relation that joins its kind to another — declared on it, or
111
+ * pointing at it — and sets fields each kind at the far end has, with
112
+ * values they could hold.
113
+ */
114
+ function linkedFindings(name, act, document) {
115
+ const out = [];
116
+ if (!act.setsLinked)
117
+ return out;
118
+ const at = `acts.${name}.setsLinked`;
119
+ const subject = asArray(act.on);
120
+ if (subject.length === 0) {
121
+ out.push(error("act-sets-linked-relation", at, `"${name}" sets the records linked to its subject, and is on no kind`, 'say which kind it is "on"; the relations it carries values through are that kind\'s'));
122
+ return out;
123
+ }
124
+ for (const [relation, set] of Object.entries(act.setsLinked)) {
125
+ const here = `${at}.${relation}`;
126
+ const declaredOn = subject.filter((kind) => document.kinds[kind]?.edges?.[relation] !== undefined);
127
+ const pointingAt = Object.entries(document.kinds).filter(([, spec]) => {
128
+ const to = spec.edges?.[relation]?.to;
129
+ return to !== undefined && (to === "*" || subject.some((kind) => to.includes(kind)));
130
+ });
131
+ if (declaredOn.length === 0 && pointingAt.length === 0) {
132
+ const own = [...new Set(subject.flatMap((kind) => Object.keys(document.kinds[kind]?.edges ?? {})))];
133
+ const noun = subject.map((kind) => withArticle(kind)).join(" or ");
134
+ out.push(error("act-sets-linked-relation", here, `"${relation}" is not a relation that joins ${noun} to anything, so "${name}" has no linked records to set through it`, own.length > 0 ? `name one of ${subject.join(" or ")}'s relations: ${own.join(", ")}` : `declare a relation on ${subject.join(" or ")} first`));
135
+ continue;
136
+ }
137
+ const end = farEnd(document.kinds, relation, subject);
138
+ if (!end || end.kinds === "*")
139
+ continue;
140
+ for (const [field, value] of Object.entries(set)) {
141
+ for (const kind of end.kinds) {
142
+ const spec = document.kinds[kind];
143
+ if (!spec)
144
+ continue;
145
+ const f = spec.fields[field];
146
+ if (!f) {
147
+ if (spec.computed?.[field] !== undefined)
148
+ out.push(error("computed-written", `${here}.${field}`, `${kind}'s ${field} is worked out, not written: no act can set it`, "set the stored fields it is worked out from"));
149
+ else
150
+ out.push(error("act-sets-linked-field", `${here}.${field}`, `${kind}, at the far end of "${relation}", has no field "${field}"`, `set one of ${kind}'s fields: ${Object.keys(spec.fields).join(", ")}`));
151
+ continue;
152
+ }
153
+ if (!literalFits(value, f.type))
154
+ out.push(error("act-sets-linked-field", `${here}.${field}`, `${kind}'s ${field} holds ${withArticle(f.type)}, and ${JSON.stringify(value)} is not one`, `write ${withArticle(f.type)}, an argument ("$name") or an expression ({ "expr": … })`));
155
+ }
156
+ }
157
+ }
158
+ return out;
159
+ }
81
160
  /**
82
161
  * What an act's `$me` needs (Roadmap f-act-as-me): a kind that says it is
83
162
  * the people, since `$me` is the acting person's own record of it; and,
@@ -112,7 +191,7 @@ function meFindings(name, act, document) {
112
191
  }
113
192
  /** Every range, other-end and `$me` finding of a document, in its order: fields, then acts. */
114
193
  export function actFindings(document) {
115
- return [...rangeFindings(document), ...neverArchivedFindings(document), ...neverTidiedFindings(document), ...Object.entries(document.acts ?? {}).flatMap(([name, act]) => [...otherEndFindings(name, act, document), ...meFindings(name, act, document)])];
194
+ return [...rangeFindings(document), ...neverArchivedFindings(document), ...neverTidiedFindings(document), ...Object.entries(document.acts ?? {}).flatMap(([name, act]) => [...otherEndFindings(name, act, document), ...linkedFindings(name, act, document), ...meFindings(name, act, document)])];
116
195
  }
117
196
  /**
118
197
  * WHAT A DOCUMENT SAYS OF TIDYING, JUDGED (`@graview/core/tidying`): a grant
@@ -1 +1 @@
1
- {"version":3,"file":"act-findings.js","sourceRoot":"","sources":["../../src/document/act-findings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"act-findings.js","sourceRoot":"","sources":["../../src/document/act-findings.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { Ground } from "../theme/ground.js";
2
2
  import { type Finding } from "./findings.js";
3
- import type { BrandSpec } from "./schema.js";
3
+ import { type BrandSpec } from "./schema.js";
4
+ import { type CssRefusal } from "../css/sanitize.js";
4
5
  export interface BrandCheckOptions {
5
6
  /** Web fonts the host serves itself, beyond `DOCUMENT_FONTS`. */
6
7
  readonly fonts?: readonly string[];
@@ -17,6 +18,19 @@ export declare function subtitleSentence(drawn: boolean): string;
17
18
  export declare function emojiIconSentence(emoji: string, hasLogo: boolean): string;
18
19
  /** What setting a page background does, said the same by an edit and by the preview of a change. */
19
20
  export declare function groundWords(ground: Ground): string;
21
+ /** What the opening screen is now, said the same by an edit and by the preview of a change (Roadmap f-splash-in-document). */
22
+ export declare function splashSentence(splash: unknown): string;
23
+ /** How a splash's shader is refused, wherever it is judged. */
24
+ export declare const SPLASH_SHADER_FIX: string;
20
25
  export declare const EMOJI_FIX = "say { \"favicon\": { \"emoji\": \"\uD83C\uDFE1\" } } with one standard emoji; a skin tone, a flag or a joined emoji like \uD83D\uDC69\uD83C\uDFFD\u200D\uD83C\uDF3E counts as one";
26
+ /** Whether every view is drawn with the app's own stylesheet first (Roadmap f-app-wide-view-theme), said the same by an edit and by the preview of a change. */
27
+ export declare function viewsCssSentence(given: boolean): string;
28
+ /** Whether a view fades between records, said the same by an edit and by the preview of a change. */
29
+ export declare function viewsMotionSentence(motion: "none" | "fade" | undefined): string;
30
+ /** What the open kit left out of a stylesheet, as its author wrote it: "url() in background", "@import", "position: fixed", "the selector :host". */
31
+ export declare function cssRefusalWords(refusal: CssRefusal): string;
32
+ /** The refusals of one stylesheet, each said once, the first few. */
33
+ export declare function cssRefusalsSaid(refused: readonly CssRefusal[]): string;
34
+ export declare const VIEWS_CSS_FIX = "a view's stylesheet loads nothing and stays in its own tree: no url() but url(#id) on a paint, no @import or @font-face, no :host; the app's own tokens (var(--graview-accent), --graview-panel, --graview-font-display, \u2026) are there to draw with";
21
35
  export declare function brandFindings(brand: Partial<BrandSpec> | undefined, options?: BrandCheckOptions): Finding[];
22
36
  //# sourceMappingURL=brand-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brand-check.d.ts","sourceRoot":"","sources":["../../src/document/brand-check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAW7C,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,wFAAwF,CAAC;AAE1H,4GAA4G;AAC5G,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AACD,qHAAqH;AACrH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AACD,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAEzE;AACD,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AACD,eAAO,MAAM,SAAS,sLAAmI,CAAC;AAE1J,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,EAAE,CAiD/G"}
1
+ {"version":3,"file":"brand-check.d.ts","sourceRoot":"","sources":["../../src/document/brand-check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAUzE,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qFAAqF;AACrF,eAAO,MAAM,oBAAoB,wFAAwF,CAAC;AAE1H,4GAA4G;AAC5G,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AACD,qHAAqH;AACrH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AACD,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAEzE;AACD,oGAAoG;AACpG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AACD,8HAA8H;AAC9H,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAKtD;AACD,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,QAA6H,CAAC;AAE5J,eAAO,MAAM,SAAS,sLAAmI,CAAC;AAE1J,gKAAgK;AAChK,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEvD;AACD,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/E;AACD,qJAAqJ;AACrJ,wBAAgB,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAmB3D;AACD,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAItE;AACD,eAAO,MAAM,aAAa,4PAAuP,CAAC;AAElR,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,EAAE,CA0E/G"}
@@ -4,7 +4,10 @@ import { darkPageFor, groundProblem } from "../theme/ground-check.js";
4
4
  import { fontProblem } from "../theme/fonts.js";
5
5
  import { emojiProblem, markProblem } from "../theme/marks.js";
6
6
  import { error, warning } from "./findings.js";
7
+ import { SPLASH_SHADERS, SPLASH_STYLES } from "./schema.js";
7
8
  import { logoParts } from "./logo.js";
9
+ import { OPEN_MAX_STYLESHEET } from "../css/tables.js";
10
+ import { sanitizeStylesheet } from "../css/sanitize.js";
8
11
  /** Said wherever a brand is judged: a fallback beside a dark logo is never drawn. */
9
12
  export const LOGO_FALLBACK_UNUSED = "the dark logo is drawn in the dark scheme, so the light one is never inverted there";
10
13
  /** How a page icon's emoji is refused, wherever it is judged: the document, an edit, a TypeScript brand. */
@@ -26,7 +29,53 @@ export function groundWords(ground) {
26
29
  return `The app's page background becomes ${given.light}, and ${given.dark} in the dark.`;
27
30
  return given.light ? `The app's page background becomes ${given.light}.` : `The app's page background in the dark becomes ${given.dark}.`;
28
31
  }
32
+ /** What the opening screen is now, said the same by an edit and by the preview of a change (Roadmap f-splash-in-document). */
33
+ export function splashSentence(splash) {
34
+ if (!splash || typeof splash !== "object")
35
+ return "The app opens on Graview's own screen.";
36
+ const { style, shader } = splash;
37
+ const how = style === "editorial" ? "an editorial screen" : style === "shader" ? `a shader screen${typeof shader === "string" ? ` (${shader})` : ""}` : style === "ascii" ? "an ASCII screen" : "a plain screen";
38
+ return `The app opens on ${how} while it loads.`;
39
+ }
40
+ /** How a splash's shader is refused, wherever it is judged. */
41
+ export const SPLASH_SHADER_FIX = `say "shader": one of ${SPLASH_SHADERS.map((name) => `"${name}"`).join(", ")}, or leave it out for "${SPLASH_SHADERS[0]}"`;
29
42
  export const EMOJI_FIX = 'say { "favicon": { "emoji": "🏡" } } with one standard emoji; a skin tone, a flag or a joined emoji like 👩🏽‍🌾 counts as one';
43
+ /** Whether every view is drawn with the app's own stylesheet first (Roadmap f-app-wide-view-theme), said the same by an edit and by the preview of a change. */
44
+ export function viewsCssSentence(given) {
45
+ return given ? "Every view is drawn with the app's own stylesheet before its own." : "Every view is drawn with its own stylesheet alone.";
46
+ }
47
+ /** Whether a view fades between records, said the same by an edit and by the preview of a change. */
48
+ export function viewsMotionSentence(motion) {
49
+ return motion === "fade" ? "A view fades when the record it shows changes." : "A view changes records with no fade.";
50
+ }
51
+ /** What the open kit left out of a stylesheet, as its author wrote it: "url() in background", "@import", "position: fixed", "the selector :host". */
52
+ export function cssRefusalWords(refusal) {
53
+ switch (refusal.reason) {
54
+ case "url":
55
+ return refusal.name ? `url() in ${refusal.name}` : "url()";
56
+ case "function":
57
+ return `${refusal.name}()`;
58
+ case "property":
59
+ return `the property ${refusal.name}`;
60
+ case "at-rule":
61
+ return refusal.name ?? "an at-rule";
62
+ case "value":
63
+ return `a value of ${refusal.name}`;
64
+ case "selector":
65
+ return refusal.name ? `the selector :${refusal.name}` : "a selector";
66
+ case "unreadable":
67
+ return refusal.name ? `${refusal.name} it cannot read` : "CSS it cannot read";
68
+ case "size":
69
+ return "its length";
70
+ }
71
+ }
72
+ /** The refusals of one stylesheet, each said once, the first few. */
73
+ export function cssRefusalsSaid(refused) {
74
+ const said = [...new Set(refused.map(cssRefusalWords))];
75
+ const shown = said.slice(0, 4);
76
+ return said.length > shown.length ? `${shown.join(", ")} and ${said.length - shown.length} more` : shown.join(", ");
77
+ }
78
+ export const VIEWS_CSS_FIX = "a view's stylesheet loads nothing and stays in its own tree: no url() but url(#id) on a paint, no @import or @font-face, no :host; the app's own tokens (var(--graview-accent), --graview-panel, --graview-font-display, …) are there to draw with";
30
79
  export function brandFindings(brand, options = {}) {
31
80
  const out = [];
32
81
  if (!brand)
@@ -55,6 +104,37 @@ export function brandFindings(brand, options = {}) {
55
104
  if (problem)
56
105
  out.push(error("brand-font", `${at}.typography.${role}`, `the ${role} face cannot be used: ${problem}`, 'say "system-serif", "system-sans" or "system-mono", or a face on the list'));
57
106
  }
107
+ /*
108
+ * THE OPENING SCREEN (Roadmap f-splash-in-document): its image is a mark
109
+ * as the logo is, its shader one the renderer ships by name — never code
110
+ * — and a shader named on a style that draws none is said, not kept quiet.
111
+ */
112
+ const splash = brand.splash;
113
+ if (splash && typeof splash === "object") {
114
+ const picture = typeof splash.image === "string" ? markProblem(splash.image) : null;
115
+ if (picture)
116
+ out.push(error("brand-splash-image", `${at}.splash.image`, `the opening screen's image cannot be drawn as given, because ${picture}`, "Graview draws an image exactly as it is given, never rewritten: remove that and give it again, or give the path Graview Cloud's add_image answers with"));
117
+ if (!SPLASH_STYLES.includes(splash.style))
118
+ out.push(error("brand-splash-style", `${at}.splash.style`, `${JSON.stringify(splash.style)} is not a way an opening screen draws`, `say "style": one of ${SPLASH_STYLES.map((name) => `"${name}"`).join(", ")}`));
119
+ if (typeof splash.shader === "string" && !SPLASH_SHADERS.includes(splash.shader))
120
+ out.push(error("brand-splash-shader", `${at}.splash.shader`, `"${splash.shader}" is not a shader the opening screen ships; a document names one, it never carries one`, SPLASH_SHADER_FIX));
121
+ else if (typeof splash.shader === "string" && splash.style !== "shader")
122
+ out.push(warning("brand-splash-shader", `${at}.splash.shader`, `the shader "${splash.shader}" is never drawn, because the opening screen's style is "${splash.style}"`, 'say "style": "shader", or remove "shader"'));
123
+ }
124
+ /*
125
+ * THE STYLESHEET EVERY VIEW GETS (Roadmap f-app-wide-view-theme), held to
126
+ * the one sanitizer a page draws it through: what the open kit leaves out
127
+ * is said here by name, and left out there too — a warning, since the
128
+ * rest of the sheet is drawn, as a view's own is. One too long for a
129
+ * stylesheet draws nothing, and that is an error.
130
+ */
131
+ if (typeof brand.views?.css === "string") {
132
+ const judged = sanitizeStylesheet(brand.views.css);
133
+ if (judged.refused.some((one) => one.reason === "size"))
134
+ out.push(error("brand-views-css", `${at}.views.css`, `the stylesheet every view gets is longer than the ${OPEN_MAX_STYLESHEET.toLocaleString("en-US")} characters a stylesheet may be, so no view is drawn with it`, "keep to what every view shares, and leave a view's own rules to the view"));
135
+ else if (judged.refused.length > 0)
136
+ out.push(warning("brand-views-css", `${at}.views.css`, `the stylesheet every view gets has CSS the open kit leaves out (${cssRefusalsSaid(judged.refused)}), so every view is drawn without ${judged.refused.length === 1 ? "it" : "those parts"}`, VIEWS_CSS_FIX));
137
+ }
58
138
  // A zone its times could not be said on (Roadmap f-app-time-zone), refused by name.
59
139
  const unzoned = typeof brand.timeZone === "string" ? timeZoneProblem(brand.timeZone) : undefined;
60
140
  if (unzoned)
@@ -1 +1 @@
1
- {"version":3,"file":"brand-check.js","sourceRoot":"","sources":["../../src/document/brand-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brand-check.js","sourceRoot":"","sources":["../../src/document/brand-check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/document/brand.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAYnD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAsC7E;AAED,qJAAqJ;AACrJ,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAG5G"}
1
+ {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../../src/document/brand.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAYnD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAwC7E;AAED,qJAAqJ;AACrJ,wBAAgB,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAG5G"}
@@ -50,6 +50,8 @@ export function brandOf(document, findings) {
50
50
  ...(spec.shape ? { shape: spec.shape } : {}),
51
51
  ...(spec.accents ? { accents: spec.accents } : {}),
52
52
  ...(spec.scheme ? { scheme: spec.scheme } : {}),
53
+ // What every worker view inherits (Roadmap f-app-wide-view-theme): the host draws the stylesheet through the one sanitizer, so what the checker warned of is left out there too.
54
+ ...(spec.views && (spec.views.css || spec.views.motion) ? { views: { ...(spec.views.css ? { css: spec.views.css } : {}), ...(spec.views.motion ? { motion: spec.views.motion } : {}) } } : {}),
53
55
  };
54
56
  }
55
57
  /** The app's money (FR-100): what `{x | money}` says, from the brand's currency and locale alone — and its zone, the clock an instant is said on. */
@@ -1 +1 @@
1
- {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/document/brand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC;;;;;;;;;GASG;AACH,MAAM,UAAU,OAAO,CAAC,QAAyB,EAAE,QAAmB;IACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IAClC,8GAA8G;IAC9G,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,0EAA0E,EAAE,uEAAuE,CAAC,CAAC,CAAC;QACrM,MAAM,GAAG,SAAS,CAAC;QACnB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IACD,0GAA0G;IAC1G,sHAAsH;IACtH,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,gFAAgF,OAAO,CAAC,GAAG,EAAE,EAAE,uDAAuD,CAAC,CAAC,CAAC;IACpO,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;IACxC,0KAA0K;IAC1K,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;QAChC,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;aAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;aACrF,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,KAAe,CAAC,CAAC,CAAC,CAC5D;QACH,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,OAA4B;QACvG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,QAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,qJAAqJ;AACrJ,MAAM,UAAU,OAAO,CAAC,QAAyB;IAC/C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IAC5D,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACjH,CAAC"}
1
+ {"version":3,"file":"brand.js","sourceRoot":"","sources":["../../src/document/brand.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile-checked.d.ts","sourceRoot":"","sources":["../../src/document/compile-checked.ts"],"names":[],"mappings":"AAUA,OAAO,EAA8D,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAc5J;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,gBAAgB,GAAG,eAAe,CAgC9G"}
1
+ {"version":3,"file":"compile-checked.d.ts","sourceRoot":"","sources":["../../src/document/compile-checked.ts"],"names":[],"mappings":"AAWA,OAAO,EAA8D,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAc5J;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,gBAAgB,GAAG,eAAe,CAgC9G"}
@@ -5,6 +5,7 @@ import { linkedFindings } from "./linked-findings.js";
5
5
  import { connectionFindings } from "./connection-findings.js";
6
6
  import { factFindings, roleFindings } from "./facts-and-roles.js";
7
7
  import { computedFindings } from "./computed.js";
8
+ import { exprTypeFindings } from "./expr-type-findings.js";
8
9
  import { brandFindings } from "./brand-check.js";
9
10
  import { formatFindings } from "./format-findings.js";
10
11
  import { frameworkPath, inDocumentText } from "./framework-path.js";
@@ -33,13 +34,13 @@ export function compileDocument(raw, options = {}) {
33
34
  const read = readDocument(raw).document;
34
35
  // A name written in the other convention is told its right spelling (`right-names.ts`).
35
36
  const named = withRightNames(compiled.findings, raw);
36
- return { ok: false, findings: read ? [...named, ...actFindings(read), ...computedFindings(read), ...factFindings(read), ...roleFindings(read), ...formatFindings(read), ...linkedFindings(read), ...connectionFindings(read), ...documentJobFindings(read), ...documentAliasFindings(read)] : named };
37
+ return { ok: false, findings: read ? [...named, ...actFindings(read), ...computedFindings(read), ...exprTypeFindings(read), ...factFindings(read), ...roleFindings(read), ...formatFindings(read), ...linkedFindings(read), ...connectionFindings(read), ...documentJobFindings(read), ...documentAliasFindings(read)] : named };
37
38
  }
38
39
  const { app, document } = compiled;
39
40
  // What the brand may hold (FR-124): a mark that could act or load, a face from off the list.
40
41
  // A block's key is its own in its view: a face claims it by that key.
41
42
  // A relation to another app's kinds (FR-171), said in the checker's words, not the page's.
42
- const own = [...linkedFindings(document), ...actFindings(document), ...formatFindings(document), ...computedFindings(document), ...factFindings(document), ...roleFindings(document), ...brandFindings(document.brand, options.fonts ? { fonts: options.fonts } : {}), ...viewKeys(document.views, "views", undefined, document.lenses), ...connectionFindings(document, app), ...documentJobFindings(document), ...documentAliasFindings(document)];
43
+ const own = [...linkedFindings(document), ...actFindings(document), ...formatFindings(document), ...computedFindings(document), ...exprTypeFindings(document), ...factFindings(document), ...roleFindings(document), ...brandFindings(document.brand, options.fonts ? { fonts: options.fonts } : {}), ...viewKeys(document.views, "views", undefined, document.lenses), ...connectionFindings(document, app), ...documentJobFindings(document), ...documentAliasFindings(document)];
43
44
  if (hasErrors(own))
44
45
  return { ok: false, findings: [...compiled.findings, ...own] };
45
46
  // Braces in a block's plain words (FR-99): asked here, with the checker, and not of a page that compiles without it.
@@ -1 +1 @@
1
- {"version":3,"file":"compile-checked.js","sourceRoot":"","sources":["../../src/document/compile-checked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile-checked.js","sourceRoot":"","sources":["../../src/document/compile-checked.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/document/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAGL,KAAK,OAAO,EAGZ,KAAK,eAAe,EAGrB,MAAM,aAAa,CAAC;AAWrB,OAAO,EAML,KAAK,SAAS,EAId,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkBjG,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAID,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAuCzH;AA4BD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAe5E;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,SAAS,SAAS,EAAE,CA+BvF;AAwQD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,gBAAgB,GAAG,eAAe,CAS1H;AAoJD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAMnG;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/document/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAGL,KAAK,OAAO,EAGZ,KAAK,eAAe,EAGrB,MAAM,aAAa,CAAC;AAYrB,OAAO,EAML,KAAK,SAAS,EAId,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EAErB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAkBjG,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACtC;AAID,mGAAmG;AACnG,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAuCzH;AA4BD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAe5E;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,SAAS,SAAS,EAAE,CAiCvF;AAqSD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,gBAAgB,GAAG,eAAe,CAS1H;AAsJD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAMnG;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -13,6 +13,7 @@ import { parseTemplate, TemplateError } from "./template-parse.js";
13
13
  import { upgradeDocument } from "./upgrade.js";
14
14
  import { homeOf, validateViews, viewsOf } from "./views.js";
15
15
  import { farEnd } from "./far-end.js";
16
+ import { resolveCovers } from "./covers.js";
16
17
  import { parsedComputed, workedOutAlone } from "./computed.js";
17
18
  import { durationsOf } from "./durations.js";
18
19
  import { fieldsKeptInStep } from "./kept-in-step.js";
@@ -134,6 +135,10 @@ export function effectsOf(act, document) {
134
135
  // What it sets on the record at the other end (FR-115): that record is its `$to`.
135
136
  if (act.setsOther && (act.connects || act.severs))
136
137
  effects.push({ set: act.setsOther, target: "$to" });
138
+ // What it sets on every record its subject is already linked to through a relation (Roadmap f-acts-update-linked), each in turn its `$to`.
139
+ if (act.setsLinked && subject.length > 0)
140
+ for (const [relation, set] of Object.entries(act.setsLinked))
141
+ effects.push({ set, through: relation });
137
142
  if (act.removes)
138
143
  effects.push({ remove: "$subject" });
139
144
  if (act.effects)
@@ -145,7 +150,8 @@ function tryExpr(source, path, findings) {
145
150
  const expr = parseExpr(source);
146
151
  const shape = analyzeExpr(expr);
147
152
  for (const fn of shape.unknownFunctions)
148
- findings.push(error("unknown-function", path, `"${fn}" is not a function the rule language knows`, "see docs/declaration-document.md#expression-language"));
153
+ findings.push(error("unknown-function", path, `"${fn}" is not a function the rule language knows`, "see the rule language in the graview-invariant skill"));
154
+ // What the declaration alone shows of its types — a date built from a number — is the checker's to say (`expr-type-findings.ts`).
149
155
  return expr;
150
156
  }
151
157
  catch (e) {
@@ -282,6 +288,9 @@ function validate(document) {
282
288
  if (refName(effect.from) === "subject" && subjectKinds.length === 0)
283
289
  findings.push(error("act-subject", `${at}.on`, `"${name}" acts on "$subject" but does not say which kinds it is "on"`));
284
290
  }
291
+ else if ("through" in effect) {
292
+ // The relation and the far kind's fields are judged with the checker (`act-findings.ts`); its values are read standing on the subject.
293
+ }
285
294
  else if ("set" in effect) {
286
295
  const target = refName(effect.target ?? "$subject");
287
296
  const targetKinds = target === "subject" ? subjectKinds : created.has(target ?? "") ? [created.get(target)] : [];
@@ -305,9 +314,10 @@ function validate(document) {
305
314
  findings.push(error("act-subject", `${at}.on`, `"${name}" removes "$subject" but does not say which kinds it is "on"`));
306
315
  }
307
316
  const values = "set" in effect && effect.set ? Object.values(effect.set) : [];
317
+ const valuesAt = "through" in effect ? `${at}.setsLinked.${effect.through}` : `${where}.set`;
308
318
  values.forEach((v) => {
309
319
  if (v && typeof v === "object" && !Array.isArray(v) && "expr" in v)
310
- tryExpr(v.expr, `${where}.set`, findings);
320
+ tryExpr(v.expr, valuesAt, findings);
311
321
  });
312
322
  });
313
323
  if (act.allowedWhen)
@@ -320,6 +330,23 @@ function validate(document) {
320
330
  if (rule.over !== "graph" && !kinds.has(rule.over))
321
331
  findings.push(error("rule-kind", `${at}.over`, `"${rule.over}" is not a kind this document declares`));
322
332
  const spec = rule.over === "graph" ? undefined : document.kinds[rule.over];
333
+ /*
334
+ * A COVERAGE RULE names its walk rather than an expression (Roadmap
335
+ * f-rule-covers-every): the relations must exist and lead from the
336
+ * rule's kind to the covered one, said in the person's voice at the
337
+ * key that is wrong. It is judged over links alone, so no cost is
338
+ * warned of.
339
+ */
340
+ if (rule.covers && spec) {
341
+ const resolved = resolveCovers(rule.over, rule.covers, (relation) => edges.get(relation), (kind) => kinds.has(kind));
342
+ if ("problem" in resolved) {
343
+ const { key, message, fix } = resolved.problem;
344
+ if (key === "every")
345
+ findings.push(error("rule-kind", `${at}.covers.every`, message, fix));
346
+ else
347
+ findings.push(error("rule-covers-relation", `${at}.covers.${key}`, message, fix));
348
+ }
349
+ }
323
350
  for (const key of ["when", "require"]) {
324
351
  const source = rule[key];
325
352
  if (!source)
@@ -393,7 +420,7 @@ function argsOf(act, effects, document, edges) {
393
420
  /** The kinds a record argument names, by argument: what a `set` on it (a `setsOther`) is checked against. */
394
421
  const named = new Map();
395
422
  const usesSubject = subjectKinds.length > 0 ||
396
- effects.some((e) => ("remove" in e && refName(e.remove) === "subject") || ("from" in e && (refName(e.from) === "subject" || refName(e.to) === "subject")) || ("set" in e && !("create" in e) && refName(e.target ?? "$subject") === "subject"));
423
+ effects.some((e) => ("remove" in e && refName(e.remove) === "subject") || ("from" in e && (refName(e.from) === "subject" || refName(e.to) === "subject")) || ("set" in e && !("create" in e) && !("through" in e) && refName(e.target ?? "$subject") === "subject") || "through" in e);
397
424
  if (usesSubject)
398
425
  args.set(SUBJECT_ARG, { ref: subjectKinds.length > 0 ? subjectKinds : "*", required: true });
399
426
  const declared = act.args ?? {};
@@ -441,6 +468,18 @@ function argsOf(act, effects, document, edges) {
441
468
  note(arg, () => ({ ref: kinds, required: true }));
442
469
  }
443
470
  }
471
+ else if ("through" in effect) {
472
+ // A value carried to the records at the far end of a relation: `$to` is each of them in turn, never an argument.
473
+ const far = farEnd(document.kinds, effect.through, subjectKinds);
474
+ const farKind = far && far.kinds !== "*" ? far.kinds[0] : undefined;
475
+ for (const [field, value] of Object.entries(effect.set)) {
476
+ const arg = refName(value);
477
+ if (!arg || arg === "to")
478
+ continue;
479
+ const spec = farKind ? document.kinds[farKind]?.fields[field] : undefined;
480
+ note(arg, () => (spec ? { field: spec, optional: true, required: false } : { any: true, required: false }), spec);
481
+ }
482
+ }
444
483
  else if ("set" in effect) {
445
484
  const target = refName(effect.target ?? "$subject");
446
485
  const targetKind = target === "subject" ? subjectKinds[0] : (created.get(target ?? "") ?? named.get(target ?? "")?.[0]);
@@ -535,7 +574,7 @@ function planOf(document, findings) {
535
574
  // What it may sever: what it says it severs, and what it replaces (FR-115).
536
575
  const severs = [...new Set(effects.flatMap((e) => ("sever" in e ? [e.sever] : "replace" in e ? e.replace : [])))];
537
576
  // An act WRITES only what it sets on its subject; setting fields on a record it just made is part of making it.
538
- const writes = [...new Set(effects.flatMap((e) => ("set" in e && !("create" in e) && (refName(e.target ?? "$subject") === "subject") ? Object.keys(e.set) : [])))];
577
+ const writes = [...new Set(effects.flatMap((e) => ("set" in e && !("create" in e) && !("through" in e) && (refName(e.target ?? "$subject") === "subject") ? Object.keys(e.set) : [])))];
539
578
  /*
540
579
  * And what it sets on the record at an end of a link it makes or breaks
541
580
  * (FR-115's `setsOther`), by that end's kinds: not the subject's, but a
@@ -555,7 +594,7 @@ function planOf(document, findings) {
555
594
  }
556
595
  const writesOther = {};
557
596
  for (const e of effects) {
558
- if (!("set" in e) || "create" in e)
597
+ if (!("set" in e) || "create" in e || "through" in e)
559
598
  continue;
560
599
  const target = refName(e.target ?? "$subject");
561
600
  for (const kind of (target && target !== "subject" && ends.get(target)) || [])
@@ -564,7 +603,7 @@ function planOf(document, findings) {
564
603
  // What it sets on its subject to a fixed value, whatever it is told — a named step (FR-108), resolved as `apply` resolves a literal.
565
604
  const sets = {};
566
605
  for (const e of effects) {
567
- if (!("set" in e) || "create" in e || refName(e.target ?? "$subject") !== "subject")
606
+ if (!("set" in e) || "create" in e || "through" in e || refName(e.target ?? "$subject") !== "subject")
568
607
  continue;
569
608
  for (const [field, v] of Object.entries(e.set ?? {})) {
570
609
  if ((typeof v === "string" && refName(v) === undefined) || typeof v === "number" || typeof v === "boolean")
@@ -607,9 +646,11 @@ function planOf(document, findings) {
607
646
  // ── rules ────────────────────────────────────────────────────────────────
608
647
  const rules = {};
609
648
  for (const [name, rule] of Object.entries(document.rules ?? {})) {
649
+ const covers = rule.covers && rule.over !== "graph" ? resolveCovers(rule.over, rule.covers, (relation) => edges.get(relation), (kind) => kind in document.kinds) : undefined;
610
650
  rules[name] = {
611
651
  title: rule.title ?? name.replace(/-/g, " "),
612
- require: parseExpr(rule.require),
652
+ ...(rule.require ? { require: parseExpr(rule.require) } : {}),
653
+ ...(covers && "plan" in covers ? { covers: covers.plan } : {}),
613
654
  ...(rule.when ? { when: parseExpr(rule.when) } : {}),
614
655
  ...(rule.says ? { says: saidAsDeclared(parseTemplate(rule.says), document.kinds[rule.over]?.fields) } : {}),
615
656
  };