@graview/core 0.1.9 → 0.1.12
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.
- package/README.md +19 -8
- package/dist/app.d.ts +41 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/blocks.d.ts +5 -0
- package/dist/blocks.d.ts.map +1 -0
- package/dist/blocks.js +14 -0
- package/dist/blocks.js.map +1 -0
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/check.d.ts +8 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +19 -0
- package/dist/check.js.map +1 -0
- package/dist/cli/check/arrangement.d.ts.map +1 -1
- package/dist/cli/check/arrangement.js +3 -2
- package/dist/cli/check/arrangement.js.map +1 -1
- package/dist/cli/check/brand.d.ts.map +1 -1
- package/dist/cli/check/brand.js +21 -0
- package/dist/cli/check/brand.js.map +1 -1
- package/dist/cli/check/computed.d.ts +14 -0
- package/dist/cli/check/computed.d.ts.map +1 -0
- package/dist/cli/check/computed.js +34 -0
- package/dist/cli/check/computed.js.map +1 -0
- package/dist/cli/check/hidden-reads.d.ts +4 -0
- package/dist/cli/check/hidden-reads.d.ts.map +1 -0
- package/dist/cli/check/hidden-reads.js +152 -0
- package/dist/cli/check/hidden-reads.js.map +1 -0
- package/dist/cli/check/index.d.ts +2 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +2 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/lenses.d.ts +10 -0
- package/dist/cli/check/lenses.d.ts.map +1 -1
- package/dist/cli/check/lenses.js +37 -19
- package/dist/cli/check/lenses.js.map +1 -1
- package/dist/cli/check/relations.d.ts.map +1 -1
- package/dist/cli/check/relations.js +2 -1
- package/dist/cli/check/relations.js.map +1 -1
- package/dist/cli/check/views.d.ts.map +1 -1
- package/dist/cli/check/views.js +13 -3
- package/dist/cli/check/views.js.map +1 -1
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +5 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +1 -1
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +66 -1
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +23 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/columns.d.ts +73 -0
- package/dist/columns.d.ts.map +1 -0
- package/dist/columns.js +100 -0
- package/dist/columns.js.map +1 -0
- package/dist/conformance/index.js +1 -1
- package/dist/conformance/index.js.map +1 -1
- package/dist/describe.d.ts +5 -0
- package/dist/describe.d.ts.map +1 -0
- package/dist/describe.js +19 -0
- package/dist/describe.js.map +1 -0
- package/dist/document/blocks.d.ts +187 -0
- package/dist/document/blocks.d.ts.map +1 -0
- package/dist/document/blocks.js +372 -0
- package/dist/document/blocks.js.map +1 -0
- package/dist/document/compile-checked.d.ts +8 -0
- package/dist/document/compile-checked.d.ts.map +1 -0
- package/dist/document/compile-checked.js +36 -0
- package/dist/document/compile-checked.js.map +1 -0
- package/dist/document/compile.d.ts +8 -6
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +68 -46
- package/dist/document/compile.js.map +1 -1
- package/dist/document/computed-values.d.ts +33 -0
- package/dist/document/computed-values.d.ts.map +1 -0
- package/dist/document/computed-values.js +60 -0
- package/dist/document/computed-values.js.map +1 -0
- package/dist/document/computed.d.ts +42 -0
- package/dist/document/computed.d.ts.map +1 -0
- package/dist/document/computed.js +173 -0
- package/dist/document/computed.js.map +1 -0
- package/dist/document/describe-place.d.ts +95 -0
- package/dist/document/describe-place.d.ts.map +1 -0
- package/dist/document/describe-place.js +286 -0
- package/dist/document/describe-place.js.map +1 -0
- package/dist/document/diff.d.ts.map +1 -1
- package/dist/document/diff.js +78 -4
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +908 -107
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/analyze.d.ts +22 -0
- package/dist/document/expr/analyze.d.ts.map +1 -1
- package/dist/document/expr/analyze.js +51 -4
- package/dist/document/expr/analyze.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +7 -1
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +121 -8
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/expr/index.d.ts +1 -1
- package/dist/document/expr/index.d.ts.map +1 -1
- package/dist/document/expr/index.js +1 -1
- package/dist/document/expr/index.js.map +1 -1
- package/dist/document/expr/parse.d.ts +2 -1
- package/dist/document/expr/parse.d.ts.map +1 -1
- package/dist/document/expr/parse.js +6 -3
- package/dist/document/expr/parse.js.map +1 -1
- package/dist/document/expr/print.d.ts.map +1 -1
- package/dist/document/expr/print.js +4 -2
- package/dist/document/expr/print.js.map +1 -1
- package/dist/document/graview-template.d.ts +20 -12
- package/dist/document/graview-template.d.ts.map +1 -1
- package/dist/document/graview-template.js +5 -44
- package/dist/document/graview-template.js.map +1 -1
- package/dist/document/index.d.ts +8 -8
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/index.js +5 -5
- package/dist/document/index.js.map +1 -1
- package/dist/document/instantiate-template.d.ts +14 -0
- package/dist/document/instantiate-template.d.ts.map +1 -0
- package/dist/document/instantiate-template.js +46 -0
- package/dist/document/instantiate-template.js.map +1 -0
- package/dist/document/rules.d.ts +2 -1
- package/dist/document/rules.d.ts.map +1 -1
- package/dist/document/rules.js +5 -1
- package/dist/document/rules.js.map +1 -1
- package/dist/document/schema.d.ts +46 -5
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +31 -3
- package/dist/document/schema.js.map +1 -1
- package/dist/document/template.d.ts +33 -2
- package/dist/document/template.d.ts.map +1 -1
- package/dist/document/template.js +156 -18
- package/dist/document/template.js.map +1 -1
- package/dist/document/thumbnail.d.ts +5 -4
- package/dist/document/thumbnail.d.ts.map +1 -1
- package/dist/document/thumbnail.js +29 -21
- package/dist/document/thumbnail.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +6 -1
- package/dist/document/to-document.js.map +1 -1
- package/dist/document/views.d.ts +58 -3
- package/dist/document/views.d.ts.map +1 -1
- package/dist/document/views.js +356 -24
- package/dist/document/views.js.map +1 -1
- package/dist/figures.d.ts +3 -0
- package/dist/figures.d.ts.map +1 -0
- package/dist/figures.js +14 -0
- package/dist/figures.js.map +1 -0
- package/dist/index.d.ts +3 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -7
- package/dist/index.js.map +1 -1
- package/dist/mutations/types.d.ts +12 -0
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/places.d.ts +197 -0
- package/dist/places.d.ts.map +1 -0
- package/dist/places.js +376 -0
- package/dist/places.js.map +1 -0
- package/dist/scaffold/domain.js +1 -1
- package/dist/scaffold/from-template.d.ts.map +1 -1
- package/dist/scaffold/from-template.js +3 -3
- package/dist/scaffold/from-template.js.map +1 -1
- package/dist/scaffold/project.d.ts.map +1 -1
- package/dist/scaffold/project.js +13 -0
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/ui.d.ts.map +1 -1
- package/dist/scaffold/ui.js +13 -10
- package/dist/scaffold/ui.js.map +1 -1
- package/dist/scene-districts.d.ts +5 -1
- package/dist/scene-districts.d.ts.map +1 -1
- package/dist/scene-districts.js +11 -4
- package/dist/scene-districts.js.map +1 -1
- package/dist/scene.d.ts +7 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +16 -0
- package/dist/scene.js.map +1 -0
- package/dist/schema/define-node.d.ts +3 -0
- package/dist/schema/define-node.d.ts.map +1 -1
- package/dist/schema/define-node.js +3 -1
- package/dist/schema/define-node.js.map +1 -1
- package/dist/schema/types.d.ts +17 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/theme/types.d.ts +9 -0
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/dist/views/types.d.ts +19 -0
- package/dist/views/types.d.ts.map +1 -1
- package/dist/views/types.js +14 -0
- package/dist/views/types.js.map +1 -1
- package/package.json +21 -1
package/dist/document/views.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { analyzeExpr } from "./expr/analyze.js";
|
|
2
2
|
import { ExprSyntaxError, parseExpr } from "./expr/parse.js";
|
|
3
|
-
import { error } from "./findings.js";
|
|
3
|
+
import { error, warning } from "./findings.js";
|
|
4
|
+
import { fieldSpecOf } from "./to-document.js";
|
|
4
5
|
import { parseTemplate, TemplateError } from "./template.js";
|
|
5
6
|
/*
|
|
6
7
|
* VIEW SPECS — Tier 1 custom UI, as data (ADR 0004, docs/declaration-document.md).
|
|
@@ -26,30 +27,51 @@ export const VIEW_FIELD_FORMATS = ["money", "percent", "date", "relative", "coun
|
|
|
26
27
|
export const MAX_VIEW_DEPTH = 4;
|
|
27
28
|
/** Blocks in one view, counting nested ones. */
|
|
28
29
|
export const MAX_VIEW_BLOCKS = 40;
|
|
30
|
+
/** How a `figure` block says its number (FR-81). */
|
|
31
|
+
export const FIGURE_FORMATS = ["number", "money", "percent"];
|
|
32
|
+
/** How a `list` block draws each record it lists: with the kind's own card, or its own row (FR-81, FR-82). */
|
|
33
|
+
export const LIST_AS = ["card", "row"];
|
|
34
|
+
/** The most records one list draws; a `limit` says fewer. */
|
|
35
|
+
export const MAX_LIST_LIMIT = 100;
|
|
29
36
|
/** What each block may say besides the key that names it. */
|
|
30
37
|
const BLOCK_KEYS = {
|
|
31
38
|
title: [],
|
|
39
|
+
headline: [],
|
|
40
|
+
list: ["sort", "limit", "group", "empty", "as"],
|
|
32
41
|
text: ["tone"],
|
|
33
42
|
badge: ["tone"],
|
|
34
|
-
field: ["as", "label"],
|
|
43
|
+
field: ["as", "currency", "label"],
|
|
35
44
|
progress: ["label"],
|
|
36
45
|
group: ["direction"],
|
|
37
46
|
when: ["show"],
|
|
38
47
|
divider: [],
|
|
39
|
-
figure:
|
|
48
|
+
// `{"figure": true}` is the kind's picture; `{"figure": expr, …}` a number worked out (FR-81).
|
|
49
|
+
figure: ["as", "currency", "label"],
|
|
40
50
|
};
|
|
41
51
|
const BLOCK_TYPES = Object.keys(BLOCK_KEYS);
|
|
42
|
-
const SHAPES = '{"title": "{name}"}, {"text": "…", "tone"?}, {"badge": "{status}", "tone"?}, {"field": "quote", "as"?, "label"?}, {"progress": {"value": expr, "max": expr}, "label"?}, {"group": [blocks], "direction"?: "row"|"column"}, {"when": expr, "show": [blocks]}, {"divider": true}, {"figure": true}';
|
|
43
|
-
/** The view specs of a document that has been read; empty when it has none. */
|
|
52
|
+
const SHAPES = '{"title": "{name}"}, {"headline": "{count(all(\'offer\'))} offers"}, {"figure": expr, "as"?: "number"|"money"|"percent", "currency"?, "label"?}, {"list": expr, "sort"?, "limit"?, "group"?, "empty"?, "as"?: "card"|"row"}, {"text": "…", "tone"?}, {"badge": "{status}", "tone"?}, {"field": "quote", "as"?, "currency"?, "label"?}, {"progress": {"value": expr, "max": expr}, "label"?}, {"group": [blocks], "direction"?: "row"|"column"}, {"when": expr, "show": [blocks]}, {"divider": true}, {"figure": true}';
|
|
53
|
+
/** The view specs of a document that has been read, by kind; empty when it has none. The home view is no kind's: see `homeOf`. */
|
|
44
54
|
export function viewsOf(document) {
|
|
45
|
-
return (document.views ?? {});
|
|
55
|
+
return Object.fromEntries(Object.entries(document.views ?? {}).filter(([, specs]) => !Array.isArray(specs)));
|
|
46
56
|
}
|
|
57
|
+
/** A document's home view (`views.home`, a list of blocks), when it has one. */
|
|
58
|
+
export function homeOf(document) {
|
|
59
|
+
const home = document.views?.["home"];
|
|
60
|
+
return Array.isArray(home) ? home : undefined;
|
|
61
|
+
}
|
|
62
|
+
const NO_RECORD = { field: () => false, relation: () => false, figure: false };
|
|
63
|
+
const about = (scope) => scope.kind ?? "the home";
|
|
64
|
+
const own = (record, key) => record !== undefined && Object.prototype.hasOwnProperty.call(record, key);
|
|
47
65
|
const isObject = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
|
|
48
66
|
function names(expr, path, scope) {
|
|
49
67
|
const shape = analyzeExpr(expr);
|
|
50
68
|
for (const fn of shape.unknownFunctions)
|
|
51
69
|
scope.findings.push(error("unknown-function", path, `"${fn}" is not a function the rule language knows`, "see docs/declaration-document.md#expression-language"));
|
|
52
70
|
for (const n of shape.names) {
|
|
71
|
+
if (scope.kind === null) {
|
|
72
|
+
scope.findings.push(error("view-name", path, `"${n}" names nothing here: these blocks are about no one record`, "reach records with all('<kind>'), like count(all('offer')) or first(all('party') where role == 'client').name"));
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
53
75
|
if (n === "id" || scope.spec.field(n) || scope.spec.relation(n))
|
|
54
76
|
continue;
|
|
55
77
|
scope.findings.push(error("view-name", path, `${scope.kind} has no field or relation called "${n}"`));
|
|
@@ -125,7 +147,8 @@ function oneBlock(raw, path, depth, scope) {
|
|
|
125
147
|
return;
|
|
126
148
|
}
|
|
127
149
|
const keys = Object.keys(raw);
|
|
128
|
-
|
|
150
|
+
// A list's `group` is how it is grouped, not a group block of its own.
|
|
151
|
+
const types = keys.filter((k) => BLOCK_TYPES.includes(k) && !(k === "group" && keys.includes("list")));
|
|
129
152
|
if (types.length === 0) {
|
|
130
153
|
scope.findings.push(error("view-block", path, `${keys.length > 0 ? keys.map((k) => `"${k}"`).join(", ") : "an empty object"} is not a block Graview knows`, `one of ${SHAPES}`));
|
|
131
154
|
return;
|
|
@@ -141,6 +164,7 @@ function oneBlock(raw, path, depth, scope) {
|
|
|
141
164
|
const value = raw[type];
|
|
142
165
|
switch (type) {
|
|
143
166
|
case "title":
|
|
167
|
+
case "headline":
|
|
144
168
|
case "text":
|
|
145
169
|
case "badge":
|
|
146
170
|
template(value, `${path}.${type}`, scope);
|
|
@@ -154,6 +178,7 @@ function oneBlock(raw, path, depth, scope) {
|
|
|
154
178
|
}
|
|
155
179
|
if ("as" in raw && !VIEW_FIELD_FORMATS.includes(raw["as"]))
|
|
156
180
|
scope.findings.push(error("view-format", `${path}.as`, `"${String(raw["as"])}" is not a way to show a field`, `use one of ${VIEW_FIELD_FORMATS.join(", ")}`));
|
|
181
|
+
currency(raw, path, scope, "field");
|
|
157
182
|
if ("label" in raw)
|
|
158
183
|
label(raw["label"], `${path}.label`, scope);
|
|
159
184
|
return;
|
|
@@ -166,8 +191,9 @@ function oneBlock(raw, path, depth, scope) {
|
|
|
166
191
|
expression(value["value"], `${path}.progress.value`, scope);
|
|
167
192
|
expression(value["max"], `${path}.progress.max`, scope);
|
|
168
193
|
}
|
|
194
|
+
// A meter's label is a template, like a figure's (FR-99).
|
|
169
195
|
if ("label" in raw)
|
|
170
|
-
|
|
196
|
+
template(raw["label"], `${path}.label`, scope);
|
|
171
197
|
return;
|
|
172
198
|
}
|
|
173
199
|
case "group":
|
|
@@ -182,27 +208,304 @@ function oneBlock(raw, path, depth, scope) {
|
|
|
182
208
|
else
|
|
183
209
|
blocks(raw["show"], `${path}.show`, depth + 1, scope);
|
|
184
210
|
return;
|
|
185
|
-
case "divider":
|
|
186
211
|
case "figure":
|
|
212
|
+
if (typeof value === "string")
|
|
213
|
+
return figureBlock(raw, path, scope);
|
|
214
|
+
for (const k of ["as", "currency", "label"])
|
|
215
|
+
if (k in raw)
|
|
216
|
+
scope.findings.push(error("unknown-key", `${path}.${k}`, `"${k}" belongs to a figure that works a number out; {"figure": true} is the kind's picture`, `write {"figure": "count(all('offer'))", "as": "number"}`));
|
|
217
|
+
if (value !== true)
|
|
218
|
+
scope.findings.push(error("view-block", `${path}.figure`, `a figure is a number worked out, {"figure": "sum(all('offer'), net)", "as": "money"}, or the kind's picture, {"figure": true}`));
|
|
219
|
+
else if (!scope.spec.figure)
|
|
220
|
+
scope.findings.push(error("view-figure", `${path}.figure`, `${about(scope)} has no figure to show`, scope.kind === null ? `work a number out: {"figure": "count(all('offer'))"}` : 'give the kind a "figure", or leave this block out'));
|
|
221
|
+
return;
|
|
222
|
+
case "list":
|
|
223
|
+
return listBlock(raw, path, scope);
|
|
224
|
+
case "divider":
|
|
187
225
|
if (value !== true)
|
|
188
226
|
scope.findings.push(error("view-block", `${path}.${type}`, `write {"${type}": true}`));
|
|
189
|
-
if (type === "figure" && !scope.spec.figure)
|
|
190
|
-
scope.findings.push(error("view-figure", `${path}.figure`, `${scope.kind} has no figure to show`, 'give the kind a "figure", or leave this block out'));
|
|
191
227
|
return;
|
|
192
228
|
}
|
|
193
229
|
}
|
|
230
|
+
/** A figure that works a number out (FR-81): an expression, a formatter, a currency for money, a label. */
|
|
231
|
+
function figureBlock(raw, path, scope) {
|
|
232
|
+
expression(raw["figure"], `${path}.figure`, scope);
|
|
233
|
+
if ("as" in raw && !FIGURE_FORMATS.includes(raw["as"]))
|
|
234
|
+
scope.findings.push(error("view-format", `${path}.as`, `"${String(raw["as"])}" is not a way to say a figure`, `use one of ${FIGURE_FORMATS.join(", ")}`));
|
|
235
|
+
currency(raw, path, scope, "figure");
|
|
236
|
+
// A figure's label is a template, like a headline (FR-99): "{name}, net".
|
|
237
|
+
if ("label" in raw)
|
|
238
|
+
template(raw["label"], `${path}.label`, scope);
|
|
239
|
+
}
|
|
240
|
+
/** A currency on money (FR-100): its three-letter code, on a figure or a field shown as money. Without one, the app's `brand.currency`. */
|
|
241
|
+
function currency(raw, path, scope, what) {
|
|
242
|
+
if (!("currency" in raw))
|
|
243
|
+
return;
|
|
244
|
+
if (typeof raw["currency"] !== "string" || !/^[A-Z]{3}$/.test(raw["currency"]))
|
|
245
|
+
scope.findings.push(error("view-currency", `${path}.currency`, 'a currency is its three-letter code, like "USD" or "EUR"'));
|
|
246
|
+
else if (raw["as"] !== "money")
|
|
247
|
+
scope.findings.push(error("view-currency", `${path}.currency`, `a currency belongs on a ${what} shown as money`, 'add "as": "money"'));
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* THE KINDS A LIST'S RECORDS ARE, read from its source without running it:
|
|
251
|
+
* `all('offer')` lists offers; `out('includes')` the targets of the
|
|
252
|
+
* relation from the kind the view is about; `in('answers')` the kinds that
|
|
253
|
+
* declare it; a relation by name its targets; `where`, `sort`, `first` and
|
|
254
|
+
* `either` the kinds of what they are handed. Undefined when the source
|
|
255
|
+
* does not say — then its names are not held to one kind.
|
|
256
|
+
*/
|
|
257
|
+
function listedKinds(expr, scope) {
|
|
258
|
+
const every = [...scope.kinds];
|
|
259
|
+
const targetsFrom = (kinds, relation) => {
|
|
260
|
+
const found = new Set();
|
|
261
|
+
for (const kind of kinds) {
|
|
262
|
+
const to = scope.vocabulary.namesOf(kind)?.targets?.(relation);
|
|
263
|
+
if (to === "*")
|
|
264
|
+
return every;
|
|
265
|
+
for (const target of to ?? [])
|
|
266
|
+
found.add(target);
|
|
267
|
+
}
|
|
268
|
+
return found.size > 0 ? [...found] : undefined;
|
|
269
|
+
};
|
|
270
|
+
const visit = (e) => {
|
|
271
|
+
switch (e.t) {
|
|
272
|
+
case "ident":
|
|
273
|
+
return scope.kind !== null && scope.spec.relation(e.name) ? targetsFrom([scope.kind], e.name) : undefined;
|
|
274
|
+
case "member": {
|
|
275
|
+
const from = visit(e.object);
|
|
276
|
+
return from ? targetsFrom(from, e.name) : undefined;
|
|
277
|
+
}
|
|
278
|
+
case "where":
|
|
279
|
+
return visit(e.set);
|
|
280
|
+
case "call": {
|
|
281
|
+
const first = e.args[0];
|
|
282
|
+
const word = first?.t === "lit" && typeof first.value === "string" ? first.value : undefined;
|
|
283
|
+
if (e.fn === "all")
|
|
284
|
+
return word !== undefined && scope.kinds.has(word) ? [word] : undefined;
|
|
285
|
+
// A walk from every member of a set (FR-101): out(S, 'edge') reaches what the relation leads to from S's kinds.
|
|
286
|
+
const walked = e.args.length === 2 && e.args[1]?.t === "lit" && typeof e.args[1].value === "string" ? e.args[1].value : undefined;
|
|
287
|
+
if (e.fn === "out" && walked !== undefined) {
|
|
288
|
+
const from = visit(first);
|
|
289
|
+
return from ? targetsFrom(from, walked) : undefined;
|
|
290
|
+
}
|
|
291
|
+
if (e.fn === "out")
|
|
292
|
+
return word !== undefined && scope.kind !== null ? targetsFrom([scope.kind], word) : undefined;
|
|
293
|
+
if (e.fn === "in") {
|
|
294
|
+
const relation = walked ?? word;
|
|
295
|
+
const sources = relation !== undefined ? scope.vocabulary.sources(relation) : [];
|
|
296
|
+
return sources.length > 0 ? sources : undefined;
|
|
297
|
+
}
|
|
298
|
+
if ((e.fn === "sort" || e.fn === "first") && first)
|
|
299
|
+
return visit(first);
|
|
300
|
+
if (e.fn === "either") {
|
|
301
|
+
const each = e.args.map(visit);
|
|
302
|
+
return each.every((one) => one !== undefined) ? [...new Set(each.flatMap((one) => one ?? []))] : undefined;
|
|
303
|
+
}
|
|
304
|
+
return undefined;
|
|
305
|
+
}
|
|
306
|
+
default:
|
|
307
|
+
return undefined;
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
return visit(expr);
|
|
311
|
+
}
|
|
312
|
+
/** A per-record expression of a list (its sort key), its names held to the kinds the list reaches. */
|
|
313
|
+
function memberExpression(source, path, kinds, scope) {
|
|
314
|
+
let parsed;
|
|
315
|
+
try {
|
|
316
|
+
parsed = parseExpr(source);
|
|
317
|
+
}
|
|
318
|
+
catch (e) {
|
|
319
|
+
if (!(e instanceof ExprSyntaxError))
|
|
320
|
+
throw e;
|
|
321
|
+
scope.findings.push(error("expression", path, `${e.sentence} (at character ${e.at + 1})`));
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
const shape = analyzeExpr(parsed);
|
|
325
|
+
for (const fn of shape.unknownFunctions)
|
|
326
|
+
scope.findings.push(error("unknown-function", path, `"${fn}" is not a function the rule language knows`, "see docs/declaration-document.md#expression-language"));
|
|
327
|
+
for (const e of shape.edges)
|
|
328
|
+
if (!scope.edges.has(e))
|
|
329
|
+
scope.findings.push(error("view-edge", path, `"${e}" is not a relation any kind declares`));
|
|
330
|
+
if (!kinds)
|
|
331
|
+
return;
|
|
332
|
+
for (const n of shape.names) {
|
|
333
|
+
if (n === "id" || kinds.some((kind) => scope.vocabulary.namesOf(kind)?.field(n) || scope.vocabulary.namesOf(kind)?.relation(n)))
|
|
334
|
+
continue;
|
|
335
|
+
scope.findings.push(error("view-name", path, `${kinds.join(" and ")} ${kinds.length === 1 ? "has" : "have"} no field or relation called "${n}"`));
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/** A list of records (FR-81) — chosen by an expression, or a walk from the record (FR-82) — in an order, a few, grouped, each drawn as its card or its row. */
|
|
339
|
+
function listBlock(raw, path, scope) {
|
|
340
|
+
const source = raw["list"];
|
|
341
|
+
expression(source, `${path}.list`, scope);
|
|
342
|
+
let kinds;
|
|
343
|
+
if (typeof source === "string") {
|
|
344
|
+
try {
|
|
345
|
+
kinds = listedKinds(parseExpr(source), scope);
|
|
346
|
+
}
|
|
347
|
+
catch {
|
|
348
|
+
kinds = undefined;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
/** A choice field's choices across the kinds listed — or, when the source does not say, on any kind. */
|
|
352
|
+
const choicesOf = (field) => {
|
|
353
|
+
if (!kinds)
|
|
354
|
+
return [...scope.kinds].map((kind) => scope.vocabulary.namesOf(kind)?.choices?.(field)).find((choices) => choices !== undefined);
|
|
355
|
+
const each = kinds.map((kind) => scope.vocabulary.namesOf(kind)?.choices?.(field));
|
|
356
|
+
return each.every((choices) => choices !== undefined) ? [...new Set(each.flatMap((choices) => choices ?? []))] : undefined;
|
|
357
|
+
};
|
|
358
|
+
const named = kinds ? kinds.join(" and ") : "any kind";
|
|
359
|
+
if ("sort" in raw) {
|
|
360
|
+
const sort = raw["sort"];
|
|
361
|
+
if (typeof sort === "string")
|
|
362
|
+
memberExpression(sort, `${path}.sort`, kinds, scope);
|
|
363
|
+
else if (isObject(sort) && typeof sort["by"] === "string" && Object.keys(sort).every((k) => k === "by" || k === "direction")) {
|
|
364
|
+
const direction = sort["direction"];
|
|
365
|
+
if (direction !== undefined && direction !== "asc" && direction !== "desc" && direction !== "choices") {
|
|
366
|
+
scope.findings.push(error("list-sort", `${path}.sort.direction`, `a list is sorted "asc", "desc" or "choices", not "${String(direction)}"`, '"choices" puts a choice field in the order its choices are declared'));
|
|
367
|
+
}
|
|
368
|
+
else if (direction === "choices") {
|
|
369
|
+
if (choicesOf(sort["by"]) === undefined)
|
|
370
|
+
scope.findings.push(error("list-sort", `${path}.sort.by`, `"${sort["by"]}" is not a choice field of ${named}, so it has no declared order`, 'sort by a choice field, or say "asc" or "desc"'));
|
|
371
|
+
}
|
|
372
|
+
else
|
|
373
|
+
memberExpression(sort["by"], `${path}.sort.by`, kinds, scope);
|
|
374
|
+
}
|
|
375
|
+
else
|
|
376
|
+
scope.findings.push(error("list-sort", `${path}.sort`, 'a sort is a key, like "net", or {"by": key, "direction": "asc" | "desc" | "choices"}'));
|
|
377
|
+
}
|
|
378
|
+
if ("limit" in raw) {
|
|
379
|
+
const limit = raw["limit"];
|
|
380
|
+
if (typeof limit !== "number" || !Number.isInteger(limit) || limit < 1 || limit > MAX_LIST_LIMIT)
|
|
381
|
+
scope.findings.push(error("list-limit", `${path}.limit`, `a limit is a whole number from 1 to ${MAX_LIST_LIMIT}`));
|
|
382
|
+
}
|
|
383
|
+
if ("group" in raw) {
|
|
384
|
+
const group = raw["group"];
|
|
385
|
+
const by = typeof group === "string" ? group : isObject(group) && typeof group["by"] === "string" ? group["by"] : undefined;
|
|
386
|
+
const shaped = typeof group === "string" || (isObject(group) && Object.keys(group).every((k) => k === "by" || k === "headings"));
|
|
387
|
+
if (!shaped || by === undefined) {
|
|
388
|
+
scope.findings.push(error("list-group", `${path}.group`, 'a group is a choice field, like "type", or {"by": "type", "headings": {"pain": "What hurts"}}'));
|
|
389
|
+
}
|
|
390
|
+
else {
|
|
391
|
+
const choices = choicesOf(by);
|
|
392
|
+
if (choices === undefined)
|
|
393
|
+
scope.findings.push(error("list-group", `${path}.group`, `"${by}" is not a choice field of ${named}, so it has no choices to group by`, "group by a field whose type is enum"));
|
|
394
|
+
if (isObject(group) && "headings" in group) {
|
|
395
|
+
const headings = group["headings"];
|
|
396
|
+
if (!isObject(headings) || Object.values(headings).some((words) => typeof words !== "string" || words.length === 0 || words.length > 80)) {
|
|
397
|
+
scope.findings.push(error("list-group", `${path}.group.headings`, 'headings are words per choice, like {"pain": "What hurts"}, at most 80 characters each'));
|
|
398
|
+
}
|
|
399
|
+
else if (choices) {
|
|
400
|
+
for (const choice of Object.keys(headings))
|
|
401
|
+
if (!choices.includes(choice))
|
|
402
|
+
scope.findings.push(error("list-group", `${path}.group.headings.${choice}`, `"${choice}" is not one of ${by}'s choices`, `use ${choices.join(", ")}`));
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
if ("empty" in raw && (typeof raw["empty"] !== "string" || raw["empty"].length === 0 || raw["empty"].length > 200))
|
|
408
|
+
scope.findings.push(error("list-empty", `${path}.empty`, "what an empty list says is a sentence, at most 200 characters"));
|
|
409
|
+
if ("as" in raw && !LIST_AS.includes(raw["as"]))
|
|
410
|
+
scope.findings.push(error("list-as", `${path}.as`, `a list draws each record as its "card" or its "row", not "${String(raw["as"])}"`));
|
|
411
|
+
}
|
|
194
412
|
function label(value, path, scope) {
|
|
195
413
|
if (typeof value !== "string" || value.length === 0 || value.length > 60)
|
|
196
414
|
scope.findings.push(error("view-label", path, "a label is a few words, at most 60 characters"));
|
|
197
415
|
}
|
|
198
|
-
/**
|
|
199
|
-
|
|
416
|
+
/**
|
|
417
|
+
* BRACES IN WORDS THAT ARE NO TEMPLATE (FR-99). A field's label, what an
|
|
418
|
+
* empty list says and a group's heading are drawn as written, so a `{name}`
|
|
419
|
+
* in one would be drawn with its braces; each is said, at its block's path,
|
|
420
|
+
* as a `view-braces` warning. Asked by the check (`compileDocument`,
|
|
421
|
+
* `checkApp`) and not by a page compiling what its host already checked,
|
|
422
|
+
* so the page does not carry it. `views` is a document's `views` or a
|
|
423
|
+
* declaration's `viewSpecs` at `at`; `home` a declaration's home view.
|
|
424
|
+
*/
|
|
425
|
+
export function viewBraces(views, at, home, lenses) {
|
|
426
|
+
const found = [];
|
|
427
|
+
const words = (value, path, what) => {
|
|
428
|
+
if (typeof value === "string" && /[{}]/.test(value))
|
|
429
|
+
found.push(warning("view-braces", path, `${what} is words, not a template, so "${value}" would be drawn with its braces`, 'say it without braces, or say the value in a text block: {"text": "… {name} …"}'));
|
|
430
|
+
};
|
|
431
|
+
const blocks = (list, path) => {
|
|
432
|
+
if (!Array.isArray(list))
|
|
433
|
+
return;
|
|
434
|
+
list.forEach((raw, i) => {
|
|
435
|
+
if (!isObject(raw))
|
|
436
|
+
return;
|
|
437
|
+
const at = `${path}.${i}`;
|
|
438
|
+
if ("field" in raw)
|
|
439
|
+
words(raw["label"], `${at}.label`, "a field's label");
|
|
440
|
+
if ("list" in raw) {
|
|
441
|
+
const headings = isObject(raw["group"]) ? raw["group"]["headings"] : undefined;
|
|
442
|
+
if (isObject(headings))
|
|
443
|
+
for (const [choice, heading] of Object.entries(headings))
|
|
444
|
+
words(heading, `${at}.group.headings.${choice}`, "a group's heading");
|
|
445
|
+
words(raw["empty"], `${at}.empty`, "what an empty list says");
|
|
446
|
+
}
|
|
447
|
+
else
|
|
448
|
+
blocks(raw["group"], `${at}.group`);
|
|
449
|
+
blocks(raw["show"], `${at}.show`);
|
|
450
|
+
});
|
|
451
|
+
};
|
|
452
|
+
if (isObject(views)) {
|
|
453
|
+
for (const [kind, specs] of Object.entries(views)) {
|
|
454
|
+
if (Array.isArray(specs))
|
|
455
|
+
blocks(specs, `${at}.${kind}`);
|
|
456
|
+
else if (isObject(specs))
|
|
457
|
+
for (const slot of VIEW_SLOTS)
|
|
458
|
+
blocks(specs[slot], `${at}.${kind}.${slot}`);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
blocks(home, "home");
|
|
462
|
+
if (Array.isArray(lenses))
|
|
463
|
+
lenses.forEach((lens, i) => isObject(lens) && lens["name"] === "blocks" && isObject(lens["options"]) && blocks(lens["options"]["blocks"], `lenses.${i}.options.blocks`));
|
|
464
|
+
return found;
|
|
465
|
+
}
|
|
466
|
+
/** Blocks about no one record — the home, a blocks lens — checked at `at`. */
|
|
467
|
+
function subjectless(list, at, vocabulary, kinds, edges, findings, what) {
|
|
468
|
+
const scope = { kind: null, spec: NO_RECORD, kinds, edges, vocabulary, findings, count: 0 };
|
|
469
|
+
if (Array.isArray(list) && list.length === 0)
|
|
470
|
+
findings.push(error("view-shape", at, `${what} has no blocks`, 'give it one: {"headline": "…"}'));
|
|
471
|
+
blocks(list, at, 1, scope);
|
|
472
|
+
if (scope.count > MAX_VIEW_BLOCKS)
|
|
473
|
+
findings.push(error("view-size", at, `${what} has ${scope.count} blocks; a view has at most ${MAX_VIEW_BLOCKS}`, "show less"));
|
|
474
|
+
}
|
|
475
|
+
/** The lenses drawn from blocks, by their index in `lenses`: their blocks, checked where they are written. */
|
|
476
|
+
function blockLenses(lenses, vocabulary, kinds, edges, findings) {
|
|
477
|
+
if (!Array.isArray(lenses))
|
|
478
|
+
return;
|
|
479
|
+
lenses.forEach((lens, index) => {
|
|
480
|
+
if (!isObject(lens) || lens["name"] !== "blocks" || !isObject(lens["options"]) || !("blocks" in lens["options"]))
|
|
481
|
+
return;
|
|
482
|
+
/*
|
|
483
|
+
* WARNINGS, NOT ERRORS: before FR-81 a lens called "blocks" was a lens
|
|
484
|
+
* the framework did not ship — a warning — and a document carrying one
|
|
485
|
+
* compiled. It still does; a block the lens cannot draw is left out of
|
|
486
|
+
* the picture, and the check says which at its path.
|
|
487
|
+
*/
|
|
488
|
+
const found = [];
|
|
489
|
+
subjectless(lens["options"]["blocks"], `lenses.${index}.options.blocks`, vocabulary, kinds, edges, found, `the lens "${String(lens["title"] ?? index)}"`);
|
|
490
|
+
for (const finding of found)
|
|
491
|
+
findings.push({ ...finding, severity: "warning" });
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
/** Every kind's specs, checked against what each kind holds, at `<at>.<kind>.<slot>`; and a list of blocks at `<at>.home`, the home view. */
|
|
495
|
+
function validateAll(specsByKind, at, namesOf, kinds, edges, declares, vocabulary) {
|
|
200
496
|
const findings = [];
|
|
497
|
+
if (specsByKind === undefined)
|
|
498
|
+
return findings;
|
|
201
499
|
if (!isObject(specsByKind)) {
|
|
202
500
|
findings.push(error("view-shape", at, 'views are an object of kinds, each with a "card", a "row" or a "page"'));
|
|
203
501
|
return findings;
|
|
204
502
|
}
|
|
205
503
|
for (const [kind, specs] of Object.entries(specsByKind)) {
|
|
504
|
+
// A list of blocks at `home` is the home view (FR-81); an object there is the slots of a kind called home.
|
|
505
|
+
if (kind === "home" && Array.isArray(specs)) {
|
|
506
|
+
subjectless(specs, `${at}.home`, vocabulary, kinds, edges, findings, "the home");
|
|
507
|
+
continue;
|
|
508
|
+
}
|
|
206
509
|
const spec = namesOf(kind);
|
|
207
510
|
if (!spec) {
|
|
208
511
|
findings.push(error("view-kind", `${at}.${kind}`, `"${kind}" is not a kind this ${declares} declares`));
|
|
@@ -220,7 +523,7 @@ function validateAll(specsByKind, at, namesOf, kinds, edges, declares) {
|
|
|
220
523
|
const list = specs[slot];
|
|
221
524
|
if (list === undefined)
|
|
222
525
|
continue;
|
|
223
|
-
const scope = { kind, spec, kinds, edges, findings, count: 0 };
|
|
526
|
+
const scope = { kind, spec, kinds, edges, vocabulary, findings, count: 0 };
|
|
224
527
|
blocks(list, `${at}.${kind}.${slot}`, 1, scope);
|
|
225
528
|
if (scope.count > MAX_VIEW_BLOCKS)
|
|
226
529
|
findings.push(error("view-size", `${at}.${kind}.${slot}`, `this ${slot} has ${scope.count} blocks; a view has at most ${MAX_VIEW_BLOCKS}`, "show less, or move detail to the page"));
|
|
@@ -228,37 +531,66 @@ function validateAll(specsByKind, at, namesOf, kinds, edges, declares) {
|
|
|
228
531
|
}
|
|
229
532
|
return findings;
|
|
230
533
|
}
|
|
231
|
-
/** Findings about a document's `views
|
|
534
|
+
/** Findings about a document's `views` — every kind's, and the home's — and its blocks lenses, each at its JSON path. */
|
|
232
535
|
export function validateViews(document) {
|
|
233
536
|
const kinds = new Set(Object.keys(document.kinds));
|
|
234
537
|
const edges = new Set(Object.values(document.kinds).flatMap((k) => Object.keys(k.edges ?? {})));
|
|
235
|
-
|
|
236
|
-
const spec = document.kinds[kind];
|
|
237
|
-
|
|
238
|
-
|
|
538
|
+
const namesOf = (kind) => {
|
|
539
|
+
const spec = own(document.kinds, kind) ? document.kinds[kind] : undefined;
|
|
540
|
+
// A computed field is shown like a stored one (FR-83).
|
|
541
|
+
return spec
|
|
542
|
+
? {
|
|
543
|
+
field: (n) => own(spec.fields, n) || own(spec.computed, n),
|
|
544
|
+
relation: (n) => own(spec.edges, n),
|
|
545
|
+
figure: spec.figure !== undefined,
|
|
546
|
+
choices: (n) => (own(spec.fields, n) && spec.fields[n].type === "enum" ? spec.fields[n].options : undefined),
|
|
547
|
+
targets: (n) => (own(spec.edges, n) ? spec.edges[n].to : undefined),
|
|
548
|
+
}
|
|
549
|
+
: undefined;
|
|
550
|
+
};
|
|
551
|
+
const vocabulary = { namesOf, sources: (edge) => Object.keys(document.kinds).filter((kind) => own(document.kinds[kind].edges, edge)) };
|
|
552
|
+
const findings = validateAll(document.views, "views", namesOf, kinds, edges, "document", vocabulary);
|
|
553
|
+
blockLenses(document.lenses, vocabulary, kinds, edges, findings);
|
|
554
|
+
return findings;
|
|
239
555
|
}
|
|
240
556
|
/**
|
|
241
557
|
* Findings about a declaration's view specs (FR-03), each at
|
|
242
558
|
* `viewSpecs.<kind>.<slot>.<block>`: the vocabulary a document's `views`
|
|
243
559
|
* is held to, read against the declared schema — its fields, its relations,
|
|
244
|
-
* and its figures (the kind's own, or the brand's).
|
|
560
|
+
* and its figures (the kind's own, or the brand's). With `home`, the
|
|
561
|
+
* declaration's home view at `home.<block>`; with `lenses`, the blocks of
|
|
562
|
+
* each lens drawn from blocks at `lenses.<i>.options.blocks` (FR-81).
|
|
245
563
|
*/
|
|
246
564
|
export function validateViewSpecs(schema, specs, options = {}) {
|
|
247
565
|
const declared = schema.kinds;
|
|
248
566
|
const kinds = new Set(declared);
|
|
249
567
|
const definitionOf = (kind) => schema.tryDefinition(kind);
|
|
250
568
|
const edges = new Set(declared.flatMap((kind) => Object.keys(definitionOf(kind)?.edges ?? {})));
|
|
251
|
-
|
|
569
|
+
const namesOf = (kind) => {
|
|
252
570
|
if (!kinds.has(kind))
|
|
253
571
|
return undefined;
|
|
254
572
|
const definition = definitionOf(kind);
|
|
255
573
|
const fields = definition?.fields?.shape ?? {};
|
|
256
574
|
const relations = definition?.edges ?? {};
|
|
575
|
+
const computed = definition?.computed ?? {};
|
|
257
576
|
return {
|
|
258
|
-
field: (n) => n !== "id" && n !== "kind" &&
|
|
259
|
-
relation: (n) =>
|
|
577
|
+
field: (n) => n !== "id" && n !== "kind" && (own(fields, n) || own(computed, n)),
|
|
578
|
+
relation: (n) => own(relations, n),
|
|
260
579
|
figure: definition?.figure !== undefined || options.figures?.[kind] !== undefined,
|
|
580
|
+
choices: (n) => {
|
|
581
|
+
if (!own(fields, n))
|
|
582
|
+
return undefined;
|
|
583
|
+
const spec = fieldSpecOf(fields[n]);
|
|
584
|
+
return spec?.type === "enum" ? spec.options : undefined;
|
|
585
|
+
},
|
|
586
|
+
targets: (n) => (own(relations, n) ? relations[n].to : undefined),
|
|
261
587
|
};
|
|
262
|
-
}
|
|
588
|
+
};
|
|
589
|
+
const vocabulary = { namesOf, sources: (edge) => declared.filter((kind) => own(definitionOf(kind)?.edges, edge)) };
|
|
590
|
+
const findings = validateAll(specs, options.at ?? "viewSpecs", namesOf, kinds, edges, "app", vocabulary);
|
|
591
|
+
if (options.home !== undefined)
|
|
592
|
+
subjectless(options.home, "home", vocabulary, kinds, edges, findings, "the home");
|
|
593
|
+
blockLenses(options.lenses, vocabulary, kinds, edges, findings);
|
|
594
|
+
return findings;
|
|
263
595
|
}
|
|
264
596
|
//# sourceMappingURL=views.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/document/views.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/document/views.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../src/figures.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAClG,YAAY,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/figures.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* `@graview/core/figures` — a kind's figure: the shipped set of line
|
|
3
|
+
* drawings, what one says to a model asked to draw one, and the faults that
|
|
4
|
+
* keep a drawn one honest.
|
|
5
|
+
*
|
|
6
|
+
* An entry of its own, not part of `@graview/core`: a hosted page imports
|
|
7
|
+
* that barrel up front, and a bundler places a whole module in every chunk
|
|
8
|
+
* that can reach it — so the shipped drawings, which only a face draws once
|
|
9
|
+
* it is fetched and the checker judges, rode in what every hosted page
|
|
10
|
+
* loads first. The faces, the agent's figure tool and the studio import
|
|
11
|
+
* them from here.
|
|
12
|
+
*/
|
|
13
|
+
export { FIGURES, FIGURE_NAMES, figureBrief, figureFaults, figureSvg } from "./schema/figures.js";
|
|
14
|
+
//# sourceMappingURL=figures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figures.js","sourceRoot":"","sources":["../src/figures.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC"}
|