@graview/core 0.1.63 → 0.1.65

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 (144) hide show
  1. package/dist/catalog.d.ts +32 -2
  2. package/dist/catalog.d.ts.map +1 -1
  3. package/dist/catalog.js +1 -0
  4. package/dist/catalog.js.map +1 -1
  5. package/dist/compose.d.ts +25 -1
  6. package/dist/compose.d.ts.map +1 -1
  7. package/dist/compose.js +56 -0
  8. package/dist/compose.js.map +1 -1
  9. package/dist/conformance/index.d.ts +6 -0
  10. package/dist/conformance/index.d.ts.map +1 -1
  11. package/dist/conformance/index.js +3 -0
  12. package/dist/conformance/index.js.map +1 -1
  13. package/dist/conformance/plan-host.d.ts +73 -0
  14. package/dist/conformance/plan-host.d.ts.map +1 -0
  15. package/dist/conformance/plan-host.js +64 -0
  16. package/dist/conformance/plan-host.js.map +1 -0
  17. package/dist/conformance/told-host.d.ts +40 -0
  18. package/dist/conformance/told-host.d.ts.map +1 -0
  19. package/dist/conformance/told-host.js +57 -0
  20. package/dist/conformance/told-host.js.map +1 -0
  21. package/dist/conformance/view-revision-host.d.ts +36 -0
  22. package/dist/conformance/view-revision-host.d.ts.map +1 -0
  23. package/dist/conformance/view-revision-host.js +42 -0
  24. package/dist/conformance/view-revision-host.js.map +1 -0
  25. package/dist/document/brand-check.d.ts.map +1 -1
  26. package/dist/document/brand-check.js +8 -2
  27. package/dist/document/brand-check.js.map +1 -1
  28. package/dist/document/connection-findings.js +15 -8
  29. package/dist/document/connection-findings.js.map +1 -1
  30. package/dist/document/connection-spec.d.ts +22 -0
  31. package/dist/document/connection-spec.d.ts.map +1 -1
  32. package/dist/document/connection-spec.js +24 -2
  33. package/dist/document/connection-spec.js.map +1 -1
  34. package/dist/document/edit.js +1 -1
  35. package/dist/document/edit.js.map +1 -1
  36. package/dist/document/expr/evaluate.d.ts.map +1 -1
  37. package/dist/document/expr/evaluate.js +29 -2
  38. package/dist/document/expr/evaluate.js.map +1 -1
  39. package/dist/document/schema.d.ts +10 -0
  40. package/dist/document/schema.d.ts.map +1 -1
  41. package/dist/document/schema.js +4 -1
  42. package/dist/document/schema.js.map +1 -1
  43. package/dist/document.schema.json +45 -2
  44. package/dist/head.d.ts +81 -0
  45. package/dist/head.d.ts.map +1 -0
  46. package/dist/head.js +123 -0
  47. package/dist/head.js.map +1 -0
  48. package/dist/index.d.ts +3 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +2 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/intelligence-bridge.d.ts +2 -0
  53. package/dist/intelligence-bridge.d.ts.map +1 -1
  54. package/dist/plan-edits.d.ts +55 -0
  55. package/dist/plan-edits.d.ts.map +1 -0
  56. package/dist/plan-edits.js +84 -0
  57. package/dist/plan-edits.js.map +1 -0
  58. package/dist/presence.d.ts +10 -0
  59. package/dist/presence.d.ts.map +1 -1
  60. package/dist/presence.js.map +1 -1
  61. package/dist/revisions/beyond.d.ts +56 -0
  62. package/dist/revisions/beyond.d.ts.map +1 -0
  63. package/dist/revisions/beyond.js +112 -0
  64. package/dist/revisions/beyond.js.map +1 -0
  65. package/dist/revisions/pictured.d.ts +52 -0
  66. package/dist/revisions/pictured.d.ts.map +1 -0
  67. package/dist/revisions/pictured.js +85 -0
  68. package/dist/revisions/pictured.js.map +1 -0
  69. package/dist/revisions/problems.d.ts +57 -0
  70. package/dist/revisions/problems.d.ts.map +1 -0
  71. package/dist/revisions/problems.js +51 -0
  72. package/dist/revisions/problems.js.map +1 -0
  73. package/dist/revisions/sections.d.ts +18 -0
  74. package/dist/revisions/sections.d.ts.map +1 -0
  75. package/dist/revisions/sections.js +91 -0
  76. package/dist/revisions/sections.js.map +1 -0
  77. package/dist/revisions/view.d.ts +71 -0
  78. package/dist/revisions/view.d.ts.map +1 -0
  79. package/dist/revisions/view.js +338 -0
  80. package/dist/revisions/view.js.map +1 -0
  81. package/dist/revisions.d.ts +11 -0
  82. package/dist/revisions.d.ts.map +1 -0
  83. package/dist/revisions.js +20 -0
  84. package/dist/revisions.js.map +1 -0
  85. package/dist/scene.d.ts +2 -2
  86. package/dist/scene.d.ts.map +1 -1
  87. package/dist/scene.js +1 -1
  88. package/dist/scene.js.map +1 -1
  89. package/dist/sync/connection.d.ts.map +1 -1
  90. package/dist/sync/connection.js +12 -8
  91. package/dist/sync/connection.js.map +1 -1
  92. package/dist/sync/engine.d.ts +14 -0
  93. package/dist/sync/engine.d.ts.map +1 -1
  94. package/dist/sync/engine.js +8 -1
  95. package/dist/sync/engine.js.map +1 -1
  96. package/dist/sync/index.d.ts +2 -2
  97. package/dist/sync/index.d.ts.map +1 -1
  98. package/dist/sync/index.js +1 -1
  99. package/dist/sync/index.js.map +1 -1
  100. package/dist/sync/notion.d.ts +2 -1
  101. package/dist/sync/notion.d.ts.map +1 -1
  102. package/dist/sync/notion.js +28 -16
  103. package/dist/sync/notion.js.map +1 -1
  104. package/dist/sync/status.d.ts +1 -1
  105. package/dist/sync/status.d.ts.map +1 -1
  106. package/dist/sync/status.js +2 -1
  107. package/dist/sync/status.js.map +1 -1
  108. package/dist/sync/types.d.ts +5 -0
  109. package/dist/sync/types.d.ts.map +1 -1
  110. package/dist/sync/types.js.map +1 -1
  111. package/dist/theme/marks.d.ts +12 -0
  112. package/dist/theme/marks.d.ts.map +1 -1
  113. package/dist/theme/marks.js +5 -0
  114. package/dist/theme/marks.js.map +1 -1
  115. package/dist/told.d.ts +306 -0
  116. package/dist/told.d.ts.map +1 -0
  117. package/dist/told.js +409 -0
  118. package/dist/told.js.map +1 -0
  119. package/dist/version.d.ts +1 -1
  120. package/dist/version.js +1 -1
  121. package/dist/views/kept.d.ts +44 -0
  122. package/dist/views/kept.d.ts.map +1 -1
  123. package/dist/views/kept.js +30 -0
  124. package/dist/views/kept.js.map +1 -1
  125. package/dist/workflow-shape.d.ts +12 -6
  126. package/dist/workflow-shape.d.ts.map +1 -1
  127. package/dist/workflow-shape.js.map +1 -1
  128. package/dist/workflows/on-the-map.d.ts +14 -5
  129. package/dist/workflows/on-the-map.d.ts.map +1 -1
  130. package/dist/workflows/on-the-map.js +6 -4
  131. package/dist/workflows/on-the-map.js.map +1 -1
  132. package/dist/workflows/step-classify.d.ts +2 -0
  133. package/dist/workflows/step-classify.d.ts.map +1 -1
  134. package/dist/workflows/step-classify.js +26 -9
  135. package/dist/workflows/step-classify.js.map +1 -1
  136. package/dist/workflows/triggered.d.ts +14 -1
  137. package/dist/workflows/triggered.d.ts.map +1 -1
  138. package/dist/workflows/triggered.js +19 -2
  139. package/dist/workflows/triggered.js.map +1 -1
  140. package/dist/workflows.d.ts +2 -2
  141. package/dist/workflows.d.ts.map +1 -1
  142. package/dist/workflows.js +2 -2
  143. package/dist/workflows.js.map +1 -1
  144. package/package.json +13 -1
@@ -0,0 +1,338 @@
1
+ /*
2
+ * A VIEW'S REVISION, COMPARED WITH WHAT IT REPLACES (Roadmap
3
+ * f-revisions-say-what-broke).
4
+ *
5
+ * Homeflow's home view was rewritten whole by a chat: the "This week"
6
+ * section's markup stayed and the stylesheet that laid it out (`.hf-week`,
7
+ * `.hf-wk-*`) did not, and the first screen it was pictured by looked as it
8
+ * had. Nothing said so. This says it: the classes the new drawing still uses
9
+ * that some rule styled before and none styles now, the selectors taken out
10
+ * whose markup is still drawn, the sections drawn before and not now, and
11
+ * how the page's height moved — each in a sentence and as an entry.
12
+ *
13
+ * A class that was never styled — a hook for `graview.on`, a utility a
14
+ * view draws for its own reading — is never said: only "styled before,
15
+ * unstyled now". What a side is read from is the best it was handed: the
16
+ * stylesheet a run drew with and the tree it drew (a headless run's `css`
17
+ * and `drawing`, or a page's), else what its source's strings say.
18
+ */
19
+ import { elementsOf, sectionsOfDrawing } from "./sections.js";
20
+ /** Where an interpolation stood in a template's text: never part of a class or a selector. */
21
+ const HOLE = "\u0000";
22
+ /**
23
+ * THE STRINGS A SCRIPT SAYS: each quoted string and template's text, an
24
+ * interpolation left as a hole. Comments and regular expressions are passed
25
+ * over; nothing is run.
26
+ */
27
+ export function stringsOfSource(source) {
28
+ const out = [];
29
+ const n = source.length;
30
+ let i = 0;
31
+ let last = "";
32
+ const unescape = (text) => text.replace(/\\(u\{[0-9a-fA-F]+\}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2}|.)/gs, (_, e) => (e === "n" ? "\n" : e === "t" ? "\t" : e[0] === "u" || e[0] === "x" ? String.fromCodePoint(parseInt(e.replace(/[ux{}]/g, ""), 16)) : e));
33
+ const quoted = (quote) => {
34
+ const start = ++i;
35
+ while (i < n && source[i] !== quote && source[i] !== "\n")
36
+ i += source[i] === "\\" ? 2 : 1;
37
+ const text = source.slice(start, i);
38
+ i++;
39
+ return unescape(text);
40
+ };
41
+ const regex = () => {
42
+ i++;
43
+ let inClass = false;
44
+ while (i < n && source[i] !== "\n") {
45
+ const c = source[i];
46
+ if (c === "\\")
47
+ i += 2;
48
+ else if (c === "[")
49
+ (inClass = true), i++;
50
+ else if (c === "]")
51
+ (inClass = false), i++;
52
+ else if (c === "/" && !inClass)
53
+ break;
54
+ else
55
+ i++;
56
+ }
57
+ i++;
58
+ while (i < n && /[a-z]/i.test(source[i]))
59
+ i++;
60
+ };
61
+ const template = () => {
62
+ i++;
63
+ let text = "";
64
+ while (i < n) {
65
+ const c = source[i];
66
+ if (c === "\\") {
67
+ text += unescape(source.slice(i, i + 2));
68
+ i += 2;
69
+ }
70
+ else if (c === "`") {
71
+ i++;
72
+ return text;
73
+ }
74
+ else if (c === "$" && source[i + 1] === "{") {
75
+ i += 2;
76
+ code(true);
77
+ text += HOLE;
78
+ }
79
+ else {
80
+ text += c;
81
+ i++;
82
+ }
83
+ }
84
+ return text;
85
+ };
86
+ function code(inHole) {
87
+ let depth = 0;
88
+ while (i < n) {
89
+ const c = source[i];
90
+ if (c === "/" && source[i + 1] === "/") {
91
+ const end = source.indexOf("\n", i);
92
+ i = end < 0 ? n : end;
93
+ }
94
+ else if (c === "/" && source[i + 1] === "*") {
95
+ const end = source.indexOf("*/", i + 2);
96
+ i = end < 0 ? n : end + 2;
97
+ }
98
+ else if (c === '"' || c === "'") {
99
+ out.push(quoted(c));
100
+ last = "a";
101
+ }
102
+ else if (c === "`") {
103
+ out.push(template());
104
+ last = "a";
105
+ }
106
+ else if (c === "/" && (last === "" || "(,=:[!&|?{};+-*%<>~^".includes(last))) {
107
+ regex();
108
+ last = "a";
109
+ }
110
+ else {
111
+ if (c === "{")
112
+ depth++;
113
+ if (c === "}") {
114
+ if (inHole && depth === 0) {
115
+ i++;
116
+ return;
117
+ }
118
+ depth--;
119
+ }
120
+ if (!/\s/.test(c))
121
+ last = c;
122
+ i++;
123
+ }
124
+ }
125
+ }
126
+ code(false);
127
+ return out;
128
+ }
129
+ /** A selector as it is compared: its whitespace and its combinators' spacing made one. */
130
+ const normalSelector = (selector) => selector
131
+ .replace(/\s+/g, " ")
132
+ .replace(/\s*([>+~,])\s*/g, "$1")
133
+ .trim();
134
+ /** Splits a selector list on its top-level commas. */
135
+ function splitList(list) {
136
+ const out = [];
137
+ let depth = 0;
138
+ let from = 0;
139
+ for (let at = 0; at < list.length; at++) {
140
+ const c = list[at];
141
+ if (c === "(" || c === "[")
142
+ depth++;
143
+ else if (c === ")" || c === "]")
144
+ depth--;
145
+ else if (c === "," && depth === 0) {
146
+ out.push(list.slice(from, at));
147
+ from = at + 1;
148
+ }
149
+ }
150
+ out.push(list.slice(from));
151
+ return out.map(normalSelector).filter(Boolean);
152
+ }
153
+ /** The at-rules whose blocks hold style rules of their own. */
154
+ const GROUPING = new Set(["media", "supports", "container", "layer", "scope", "document"]);
155
+ /** Every style rule's selector in a stylesheet, each once, in order. A keyframe's steps and a font's face are not selectors. */
156
+ export function selectorsOfStylesheet(css) {
157
+ const text = css.replace(/\/\*[\s\S]*?\*\//g, "");
158
+ const out = [];
159
+ const skipString = (at) => {
160
+ const quote = text[at];
161
+ let i = at + 1;
162
+ while (i < text.length && text[i] !== quote)
163
+ i += text[i] === "\\" ? 2 : 1;
164
+ return i + 1;
165
+ };
166
+ const skipBlock = (at) => {
167
+ let depth = 1;
168
+ let i = at;
169
+ while (i < text.length && depth > 0) {
170
+ const c = text[i];
171
+ if (c === '"' || c === "'") {
172
+ i = skipString(i);
173
+ continue;
174
+ }
175
+ if (c === "{")
176
+ depth++;
177
+ else if (c === "}")
178
+ depth--;
179
+ i++;
180
+ }
181
+ return i;
182
+ };
183
+ const rules = (from) => {
184
+ let prelude = "";
185
+ let at = from;
186
+ while (at < text.length) {
187
+ const c = text[at];
188
+ if (c === '"' || c === "'") {
189
+ const end = skipString(at);
190
+ prelude += text.slice(at, end);
191
+ at = end;
192
+ }
193
+ else if (c === "}")
194
+ return at + 1;
195
+ else if (c === ";") {
196
+ prelude = "";
197
+ at++;
198
+ }
199
+ else if (c === "{") {
200
+ const head = prelude.trim();
201
+ prelude = "";
202
+ if (head.startsWith("@")) {
203
+ const name = (/^@([\w-]+)/.exec(head)?.[1] ?? "").toLowerCase();
204
+ at = GROUPING.has(name) ? rules(at + 1) : skipBlock(at + 1);
205
+ }
206
+ else {
207
+ out.push(...splitList(head));
208
+ at = skipBlock(at + 1);
209
+ }
210
+ }
211
+ else {
212
+ prelude += c;
213
+ at++;
214
+ }
215
+ }
216
+ return at;
217
+ };
218
+ rules(0);
219
+ return [...new Set(out)];
220
+ }
221
+ /** The classes and ids a selector names, as `.name` and `#name`; what is inside `[…]` and strings is not read. */
222
+ export function namesInSelector(selector) {
223
+ const plain = selector.replace(/\[[^\]]*\]/g, "").replace(/"[^"]*"|'[^']*'/g, "");
224
+ return [...new Set([...plain.matchAll(/([.#])(-?[_a-zA-Z -￿][\w -￿-]*)/g)].map((m) => `${m[1]}${m[2]}`))];
225
+ }
226
+ /** A selector a string of a script could hold, and not the words or the markup a string also holds. */
227
+ const looksLikeSelector = (selector) => !selector.includes(HOLE) && selector.length < 300 && !/[<;!@]|=>|^\d/.test(selector) && /^[\w\s.#:>+~*()[\]="'^$|,\\%-]+$/u.test(selector);
228
+ const CLASS_ATTRIBUTE = /\b(?:class|className)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
229
+ const ID_ATTRIBUTE = /\bid\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
230
+ const HEADING_MARKUP = /<h([1-6])\b[^>]*>([\s\S]*?)<\/h\1\s*>/gi;
231
+ const NAMED_LANDMARK = /<(section|nav|main|aside|header|footer|article|form)\b[^>]*?\baria-label\s*=\s*(?:"([^"]*)"|'([^']*)')/gi;
232
+ function readSide(side) {
233
+ const strings = side.css === undefined || (side.drawing === undefined && side.classes === undefined) ? stringsOfSource(side.source) : [];
234
+ const selectors = side.css !== undefined
235
+ ? selectorsOfStylesheet(side.css)
236
+ : [...new Set(strings.filter((one) => one.includes("{") && one.includes("}")).flatMap((one) => selectorsOfStylesheet(one)).filter(looksLikeSelector))];
237
+ const drawn = new Set();
238
+ let sections;
239
+ if (side.drawing) {
240
+ for (const element of elementsOf(side.drawing)) {
241
+ for (const one of (element.getAttribute("class") ?? "").split(/\s+/))
242
+ if (one)
243
+ drawn.add(`.${one}`);
244
+ const id = element.getAttribute("id");
245
+ if (id)
246
+ drawn.add(`#${id}`);
247
+ }
248
+ sections = sectionsOfDrawing(side.drawing);
249
+ }
250
+ else {
251
+ const tokens = (match) => (match[1] ?? match[2] ?? "").split(/\s+/).filter((one) => one && !one.includes(HOLE));
252
+ for (const text of strings) {
253
+ for (const match of text.matchAll(CLASS_ATTRIBUTE))
254
+ for (const one of tokens(match))
255
+ drawn.add(`.${one}`);
256
+ for (const match of text.matchAll(ID_ATTRIBUTE))
257
+ for (const one of tokens(match))
258
+ drawn.add(`#${one}`);
259
+ }
260
+ const seen = new Set();
261
+ sections = [];
262
+ const add = (name, as) => {
263
+ const clean = name.replace(/\s+/g, " ").trim();
264
+ if (!clean || clean.includes(HOLE) || seen.has(clean.toLowerCase()))
265
+ return;
266
+ seen.add(clean.toLowerCase());
267
+ sections.push({ name: clean, as });
268
+ };
269
+ for (const text of strings) {
270
+ for (const match of text.matchAll(NAMED_LANDMARK))
271
+ add(match[2] ?? match[3] ?? "", match[1].toLowerCase());
272
+ for (const match of text.matchAll(HEADING_MARKUP))
273
+ add(match[2].replace(/<[^>]*>/g, ""), "heading");
274
+ }
275
+ }
276
+ for (const one of side.classes ?? [])
277
+ drawn.add(`.${one}`);
278
+ return { from: side.drawing || side.classes ? "drawing" : "source", selectors, drawn, sections };
279
+ }
280
+ const MOST_NAMED = 8;
281
+ const listed = (names) => (names.length <= MOST_NAMED ? names.join(", ") : `${names.slice(0, MOST_NAMED).join(", ")} and ${names.length - MOST_NAMED} more`);
282
+ const px = (n) => `${Math.round(n).toLocaleString("en-US")}px`;
283
+ /**
284
+ * WHAT A REVISION OF A VIEW BROKE, against the version it replaces: the
285
+ * classes it still draws that lost every rule styling them, the selectors
286
+ * taken out while the markup they matched is still drawn, the sections
287
+ * drawn before and not now, and how the page's height moved.
288
+ */
289
+ export function compareViewRevision(before, after) {
290
+ const was = readSide(before);
291
+ const now = readSide(after);
292
+ const styledNow = new Set(now.selectors.flatMap(namesInSelector));
293
+ const styledBefore = new Map();
294
+ for (const selector of was.selectors)
295
+ for (const name of namesInSelector(selector))
296
+ if (name.startsWith("."))
297
+ styledBefore.set(name, [...(styledBefore.get(name) ?? []), selector]);
298
+ const unstyled = [...styledBefore]
299
+ .filter(([name]) => now.drawn.has(name) && !styledNow.has(name))
300
+ .map(([name, styledBy]) => ({ class: name.slice(1), styledBy }));
301
+ const unstyledNames = new Set(unstyled.map((one) => `.${one.class}`));
302
+ const kept = new Set(now.selectors);
303
+ const selectorsRemoved = was.selectors
304
+ .filter((selector) => !kept.has(selector))
305
+ .map((selector) => ({ selector, names: namesInSelector(selector) }))
306
+ .filter((one) => one.names.length > 0 && one.names.every((name) => now.drawn.has(name) && (was.from === "source" || was.drawn.has(name))));
307
+ const present = new Set(now.sections.map((one) => one.name.toLowerCase()));
308
+ const sectionsMissing = was.sections.filter((one) => !present.has(one.name.toLowerCase()));
309
+ const height = before.height !== undefined && after.height !== undefined && before.height > 0
310
+ ? { before: before.height, after: after.height, change: after.height - before.height, ratio: Math.round(((after.height - before.height) / before.height) * 1000) / 1000 }
311
+ : undefined;
312
+ const heightMoved = height !== undefined && Math.abs(height.ratio) >= 0.1 && Math.abs(height.change) >= 50;
313
+ const said = [];
314
+ if (unstyled.length > 0) {
315
+ const names = unstyled.map((one) => `.${one.class}`);
316
+ said.push(`${unstyled.length === 1 ? "A class" : `${unstyled.length} classes`} it still draws lost every rule that styled ${unstyled.length === 1 ? "it" : "them"} before: ${listed(names)}. Put back the rules for ${unstyled.length === 1 ? "it" : "them"}, or stop drawing ${unstyled.length === 1 ? "it" : "them"}.`);
317
+ }
318
+ /* A rule whose loss a class already said explains is not said again. */
319
+ const notSaid = selectorsRemoved.filter((one) => !one.names.some((name) => unstyledNames.has(name)));
320
+ if (notSaid.length > 0)
321
+ said.push(`${notSaid.length === 1 ? "A rule was" : `${notSaid.length} rules were`} taken out while the markup ${notSaid.length === 1 ? "it" : "they"} styled is still drawn: ${listed(notSaid.map((one) => `"${one.selector}"`))}.`);
322
+ if (sectionsMissing.length > 0)
323
+ said.push(`${sectionsMissing.length === 1 ? "A section" : `${sectionsMissing.length} sections`} drawn before ${sectionsMissing.length === 1 ? "is" : "are"} not drawn now: ${listed(sectionsMissing.map((one) => `"${one.name}"`))}.`);
324
+ if (height && heightMoved)
325
+ said.push(`The page is ${px(height.after)} tall, ${height.change < 0 ? "down" : "up"} from ${px(height.before)} (${height.change < 0 ? "−" : "+"}${Math.round(Math.abs(height.ratio) * 100)}%).`);
326
+ const regressed = said.length > 0;
327
+ return {
328
+ regressed,
329
+ unstyled,
330
+ selectorsRemoved,
331
+ sectionsMissing,
332
+ ...(height ? { height } : {}),
333
+ read: { before: was.from, after: now.from },
334
+ said,
335
+ text: regressed ? said.join(" ") : `Nothing it drew before lost its style, and no section it drew is gone${height ? "; the page is about as tall" : ""}.`,
336
+ };
337
+ }
338
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/revisions/view.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export { compareViewRevision, namesInSelector, selectorsOfStylesheet, stringsOfSource } from "./revisions/view.js";
2
+ export type { HeightChange, RemovedSelector, UnstyledClass, ViewRevision, ViewRevisionSide } from "./revisions/view.js";
3
+ export { sectionsOfDrawing } from "./revisions/sections.js";
4
+ export type { DrawnSection, ElementLike } from "./revisions/sections.js";
5
+ export { MEASURE_PICTURED_PAGE, picturedCoverage } from "./revisions/pictured.js";
6
+ export type { PageMeasure, PictureCoverage, PlacedSection } from "./revisions/pictured.js";
7
+ export { problemsMade, viewProblemKey } from "./revisions/problems.js";
8
+ export type { ChangedProblem, ProblemSet, ProblemsMade, ViewProblem } from "./revisions/problems.js";
9
+ export { beyondAsked } from "./revisions/beyond.js";
10
+ export type { ActReach, BeyondAskedOptions, BeyondChange } from "./revisions/beyond.js";
11
+ //# sourceMappingURL=revisions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revisions.d.ts","sourceRoot":"","sources":["../src/revisions.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnH,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,20 @@
1
+ /*
2
+ * `@graview/core/revisions` — WHAT A CHANGE BROKE, SAID WITH THE CHANGE
3
+ * (Roadmap f-revisions-say-what-broke).
4
+ *
5
+ * A host that applies a revised view or runs an act tells whoever asked
6
+ * what it broke, in the same answer: a view's classes still drawn and no
7
+ * longer styled, its rules taken out from under markup still drawn, its
8
+ * sections gone, its height moved (`compareViewRevision`); how much of a
9
+ * page a picture held and the sections it left out (`MEASURE_PICTURED_PAGE`,
10
+ * `picturedCoverage`); the rules that held and fail, and the view problems
11
+ * new, with the act that repairs each (`problemsMade`); and the records and
12
+ * links an act changed beyond what it was asked (`beyondAsked`). Each is
13
+ * pure, judges nothing on its own, and is a host's: no page imports it.
14
+ */
15
+ export { compareViewRevision, namesInSelector, selectorsOfStylesheet, stringsOfSource } from "./revisions/view.js";
16
+ export { sectionsOfDrawing } from "./revisions/sections.js";
17
+ export { MEASURE_PICTURED_PAGE, picturedCoverage } from "./revisions/pictured.js";
18
+ export { problemsMade, viewProblemKey } from "./revisions/problems.js";
19
+ export { beyondAsked } from "./revisions/beyond.js";
20
+ //# sourceMappingURL=revisions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revisions.js","sourceRoot":"","sources":["../src/revisions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/scene.d.ts CHANGED
@@ -6,6 +6,6 @@ export { sceneDistricts } from "./scene-districts.js";
6
6
  export type { SceneDistrict, SceneDistrictOptions } from "./scene-districts.js";
7
7
  export { sceneThumbnail } from "./document/thumbnail.js";
8
8
  export type { SceneThumbnailOptions, ThumbnailSource } from "./document/thumbnail.js";
9
- export { agoWords, lastRunWords, workflowSpots, workflowsOnTheMap } from "./workflows/on-the-map.js";
10
- export type { MapAct, MapWorkflow, RunSaid, SpotPlot, WorkflowSpot } from "./workflows/on-the-map.js";
9
+ export { agoWords, lastRunWords, runCount, workflowSpots, workflowsOnTheMap } from "./workflows/on-the-map.js";
10
+ export type { MapAct, MapWorkflow, RunCount, RunSaid, SpotPlot, WorkflowSpot } from "./workflows/on-the-map.js";
11
11
  //# sourceMappingURL=scene.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7I,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrG,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACrG,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7I,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrG,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEtF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/G,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/scene.js CHANGED
@@ -15,5 +15,5 @@ export { districtBlocks, heightOf, roadsOf, TIER_HEIGHT, villageCap, villageOf }
15
15
  export { sceneDistricts } from "./scene-districts.js";
16
16
  export { sceneThumbnail } from "./document/thumbnail.js";
17
17
  /* The app's workflows on the map (Roadmap f-jobs-declared): where each stands, what it is wired to, and its last run in words. */
18
- export { agoWords, lastRunWords, workflowSpots, workflowsOnTheMap } from "./workflows/on-the-map.js";
18
+ export { agoWords, lastRunWords, runCount, workflowSpots, workflowsOnTheMap } from "./workflows/on-the-map.js";
19
19
  //# sourceMappingURL=scene.js.map
package/dist/scene.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scene.js","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE7I,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,kIAAkI;AAClI,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../src/scene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE7I,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,kIAAkI;AAClI,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/sync/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAmB,KAAK,cAAc,EAAqC,KAAK,oBAAoB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAO3K,OAAO,EAAE,UAAU,EAAqB,KAAK,WAAW,EAAqC,MAAM,aAAa,CAAC;AACjH,OAAO,EAAkB,KAAK,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EAA6D,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzG,OAAO,EAAqB,KAAK,UAAU,EAA4B,MAAM,aAAa,CAAC;AAE3F,OAAO,KAAK,EAAgB,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5G,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC;AAEnD,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS;IAChD,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,uGAAuG;IACvG,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9D,4HAA4H;IAC5H,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,6FAA6F;IAC7F,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,iHAAiH;IACjH,GAAG,CAAC,IAAI,IAAI,CAAC;CACd;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,SAAS;IAC7C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,+GAA+G;IAC/G,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAmCD,iGAAiG;AACjG,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhF;AAED,8OAA8O;AAC9O,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,IAAI,IAAI,CAAC;IACb,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAC7B;AAED,sCAAsC;AACtC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,qBAAqB,EAAE,OAAO,GAAE,oBAAyB,GAAG,WAAW,CAEtI;AAED,qGAAqG;AACrG,eAAO,MAAM,cAAc,GAAI,KAAK,UAAU,EAAE,OAAO,MAAM,KAAG,MAA8D,CAAC;AAoN/H,qLAAqL;AACrL,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CACrD;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,mBAAmB,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC,EAAE,CAAA;CAAE,CAMrP;AAmHD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAExG;AAqCD,6EAA6E;AAC7E,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAGpF"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/sync/connection.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { fieldSpecOf } from "../document/field-spec.js";
2
- import { notionSourcesOf } from "../document/connection-spec.js";
2
+ import { guestsInField, guestsViaRelation, notionSourcesOf } from "../document/connection-spec.js";
3
3
  import { humanizeField } from "../schema/humanize.js";
4
4
  import { GOOGLE_COLORS, MADE_BY_GRAVIEW, inConnectionFilter, tagPattern } from "./connection-filter.js";
5
5
  import { relationActName } from "../mutations/derived-names.js";
@@ -224,14 +224,16 @@ function googleMapping(app, declaration, options = {}) {
224
224
  const normalize = {};
225
225
  let edges;
226
226
  let guests;
227
- if (typeof fields.guests === "string") {
227
+ const inField = guestsInField(fields.guests);
228
+ const viaRelation = guestsViaRelation(fields.guests);
229
+ if (inField) {
228
230
  /*
229
231
  * THE GUESTS IN A FIELD: a list of addresses, or one email, kept as the
230
232
  * attendees. Read back as the sorted addresses (the first alone for an
231
233
  * email field), so an address added in the calendar lands in the field
232
234
  * and nothing is dropped.
233
235
  */
234
- const field = fields.guests;
236
+ const field = inField.field;
235
237
  const single = specs[field]?.type === "email";
236
238
  guestsField[field] = "attendees";
237
239
  encode[field] = (value) => attendeesOf(value);
@@ -245,7 +247,7 @@ function googleMapping(app, declaration, options = {}) {
245
247
  return single ? (found[0] ?? null) : found;
246
248
  };
247
249
  }
248
- else if (fields.guests) {
250
+ else if (viaRelation) {
249
251
  /*
250
252
  * THE GUESTS THROUGH A RELATION: the edge's remote ids are guest keys.
251
253
  * Read back, each attendee is the key of the person with Invite me who
@@ -253,7 +255,7 @@ function googleMapping(app, declaration, options = {}) {
253
255
  * as part of the relation's value until a person matches it. Sent, the
254
256
  * keys are split back into addresses, once each.
255
257
  */
256
- const { via, emails = "emails", invite = "inviteMe" } = fields.guests;
258
+ const { via, emails = "emails", invite = "inviteMe" } = viaRelation;
257
259
  const reaches = edgeSpecs(app, kind)[via]?.to;
258
260
  const book = guestBook({ ...(options.graph ? { graph: options.graph } : {}), kinds: reaches === undefined || reaches === "*" ? [] : reaches, emails, invite });
259
261
  guests = book;
@@ -570,11 +572,13 @@ function googleConnection(run, declaration) {
570
572
  * `max` held to.
571
573
  */
572
574
  function keptGuests(app, declaration, store, book) {
573
- const spec = declaration.fields.guests;
575
+ // The guests in a field hold to `max` as the relation's do (request:guests-field-form-takes-max).
576
+ const inField = guestsInField(declaration.fields.guests);
577
+ if (inField)
578
+ return { field: inField.field, addresses: (value) => addressesOf(value), ...(inField.max !== undefined ? { max: inField.max } : {}), notify: inField.notify === true };
579
+ const spec = guestsViaRelation(declaration.fields.guests);
574
580
  if (spec === undefined)
575
581
  return undefined;
576
- if (typeof spec === "string")
577
- return { field: spec, addresses: (value) => addressesOf(value) };
578
582
  const reaches = edgeSpecs(app, declaration.kind)[spec.via]?.to;
579
583
  const kinds = new Set(reaches === undefined || reaches === "*" ? [] : reaches);
580
584
  const emails = spec.emails ?? "emails";