@peripheries/renderer 0.8.1 → 0.9.0
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 +33 -2
- package/dist/catalog.js +2 -2
- package/dist/chunks/{projection-CDMo5g6t.js → projection-DNj8lq4J.js} +3 -3
- package/dist/chunks/projection-DNj8lq4J.js.map +1 -0
- package/dist/chunks/query-BsvcULsk.js +457 -0
- package/dist/chunks/query-BsvcULsk.js.map +1 -0
- package/dist/chunks/references-BawYmQMY.js +131 -0
- package/dist/chunks/references-BawYmQMY.js.map +1 -0
- package/dist/chunks/{structure-Bp7xbPck.js → structure-BdsfUYHS.js} +137 -110
- package/dist/chunks/structure-BdsfUYHS.js.map +1 -0
- package/dist/chunks/{validate-Cz2tUUdm.js → validate-Bji5gGV1.js} +163 -10
- package/dist/chunks/validate-Bji5gGV1.js.map +1 -0
- package/dist/core.js +306 -48
- package/dist/core.js.map +1 -1
- package/dist/react.js +26 -17
- package/dist/react.js.map +1 -1
- package/dist/testing.js +11 -0
- package/dist/testing.js.map +1 -1
- package/dist/types/core/actions.d.ts +33 -1
- package/dist/types/core/cell-props.d.ts +2 -2
- package/dist/types/core/data-context.d.ts +7 -5
- package/dist/types/core/diagnostics.d.ts +59 -3
- package/dist/types/core/graph.d.ts +6 -2
- package/dist/types/core/index.d.ts +7 -4
- package/dist/types/core/load-page.d.ts +31 -7
- package/dist/types/core/query.d.ts +93 -0
- package/dist/types/core/references.d.ts +27 -5
- package/dist/types/core/selected.d.ts +9 -0
- package/dist/types/react/cell-view.d.ts +5 -0
- package/dist/types/react/page-renderer.d.ts +10 -1
- package/dist/types/testing/golden.d.ts +5 -0
- package/package.json +4 -3
- package/dist/chunks/projection-CDMo5g6t.js.map +0 -1
- package/dist/chunks/structure-Bp7xbPck.js.map +0 -1
- package/dist/chunks/validate-Cz2tUUdm.js.map +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as isEach, n as EACH_DEFAULT_AS, t as EACH } from "./references-BawYmQMY.js";
|
|
2
|
+
import { d as validateDescriptor, f as variableLabels, i as descriptorShape, u as shapeAt } from "./query-BsvcULsk.js";
|
|
3
|
+
import { _ as actionProblems, h as usesStructureLayout, m as structureIssues } from "./structure-BdsfUYHS.js";
|
|
4
|
+
import { DEFAULT_STATE, STATE_NAMES, WALK_DEFAULTS, isDescriptorBinding, isGraphAction, isStateName } from "@peripheries/runtime";
|
|
3
5
|
//#region packages/renderer/src/core/graph.ts
|
|
4
6
|
function systemsFromProcess(row) {
|
|
5
7
|
const out = {};
|
|
@@ -55,15 +57,19 @@ function resolveWalkStart(cell, pageGraphNodeId) {
|
|
|
55
57
|
var RESERVED_LABELS = [
|
|
56
58
|
"_traversal",
|
|
57
59
|
"params",
|
|
58
|
-
"baseProps"
|
|
60
|
+
"baseProps",
|
|
61
|
+
"viewer",
|
|
62
|
+
"context",
|
|
63
|
+
"input",
|
|
64
|
+
"scope"
|
|
59
65
|
];
|
|
60
66
|
var RESERVED$1 = new Set(RESERVED_LABELS);
|
|
61
|
-
var STRICT_REF$
|
|
67
|
+
var STRICT_REF$2 = /^@([A-Za-z0-9_$-]+)(\.[A-Za-z0-9_$[\]-]+)*$/;
|
|
62
68
|
function referencedLabels(cell) {
|
|
63
69
|
const out = new Set();
|
|
64
70
|
const visit = (v, local) => {
|
|
65
71
|
if (typeof v === "string") {
|
|
66
|
-
const m = STRICT_REF$
|
|
72
|
+
const m = STRICT_REF$2.exec(v);
|
|
67
73
|
if (m && !local.has(m[1])) out.add(m[1]);
|
|
68
74
|
} else if (Array.isArray(v)) v.forEach((x) => visit(x, local));
|
|
69
75
|
else if (isEach(v)) {
|
|
@@ -204,6 +210,56 @@ function readWalk(raw, request) {
|
|
|
204
210
|
};
|
|
205
211
|
}
|
|
206
212
|
//#endregion
|
|
213
|
+
//#region packages/renderer/src/core/selected.ts
|
|
214
|
+
var STRICT_REF$1 = /^@([A-Za-z0-9_$-]+)((?:\.[A-Za-z0-9_$[\]-]+)*)$/;
|
|
215
|
+
var shapes = new Map();
|
|
216
|
+
function shapeOf(d) {
|
|
217
|
+
if (!shapes.has(d)) {
|
|
218
|
+
let shape = null;
|
|
219
|
+
try {
|
|
220
|
+
shape = descriptorShape(d);
|
|
221
|
+
} catch {}
|
|
222
|
+
shapes.set(d, shape);
|
|
223
|
+
}
|
|
224
|
+
return shapes.get(d);
|
|
225
|
+
}
|
|
226
|
+
function selectionIssues(cell, queries, at) {
|
|
227
|
+
const out = [];
|
|
228
|
+
const top = new Map(Object.entries(queries).map(([label, d]) => [label, shapeOf(d)]));
|
|
229
|
+
const shapeOfRef = (ref, scope, path) => {
|
|
230
|
+
const m = STRICT_REF$1.exec(ref);
|
|
231
|
+
if (!m || !scope.has(m[1])) return null;
|
|
232
|
+
const shape = scope.get(m[1]);
|
|
233
|
+
if (!shape) return null;
|
|
234
|
+
const segments = m[2].split(".").filter(Boolean);
|
|
235
|
+
const found = shapeAt(shape, segments);
|
|
236
|
+
if (!found) out.push({
|
|
237
|
+
severity: "error",
|
|
238
|
+
code: "REF_NOT_SELECTED",
|
|
239
|
+
cellId: cell.id,
|
|
240
|
+
label: m[1],
|
|
241
|
+
path,
|
|
242
|
+
message: `${ref}: the query behind @${m[1]} selects nothing at "${segments.join(".")}" (check the field and its alias)`
|
|
243
|
+
});
|
|
244
|
+
return found;
|
|
245
|
+
};
|
|
246
|
+
const visit = (v, path, scope) => {
|
|
247
|
+
if (typeof v === "string") return void shapeOfRef(v, scope, path);
|
|
248
|
+
if (Array.isArray(v)) return v.forEach((x, i) => visit(x, `${path}[${i}]`, scope));
|
|
249
|
+
if (!v || typeof v !== "object") return;
|
|
250
|
+
if (isEach(v)) {
|
|
251
|
+
const list = typeof v["@each"] === "string" ? shapeOfRef(v[EACH], scope, `${path}.${EACH}`) : null;
|
|
252
|
+
const element = list?.kind === "list" ? list.of : list?.kind === "leaf" ? list : null;
|
|
253
|
+
const as = typeof v.as === "string" ? v.as : EACH_DEFAULT_AS;
|
|
254
|
+
return visit(v.map, `${path}.map`, new Map([...scope, [as, element]]));
|
|
255
|
+
}
|
|
256
|
+
for (const [k, x] of Object.entries(v)) visit(x, `${path}.${k}`, scope);
|
|
257
|
+
};
|
|
258
|
+
visit(cell.props, `${at}.props`, top);
|
|
259
|
+
visit(cell.conditions, `${at}.conditions`, top);
|
|
260
|
+
return out;
|
|
261
|
+
}
|
|
262
|
+
//#endregion
|
|
207
263
|
//#region packages/renderer/src/core/validate.ts
|
|
208
264
|
var words = (name) => name.replace(/([a-z0-9])([A-Z])/g, "$1 $2").toLowerCase().split(/[\s_-]+/).filter(Boolean);
|
|
209
265
|
function editDistance(a, b) {
|
|
@@ -241,6 +297,26 @@ var WALK_DIRECTIONS = [
|
|
|
241
297
|
var BUCKETS = RESPONSIVE_BUCKETS;
|
|
242
298
|
var SCOPES = STORE_SCOPES;
|
|
243
299
|
var DIRECTIONS = WALK_DIRECTIONS;
|
|
300
|
+
var RESERVED = new Set(RESERVED_LABELS);
|
|
301
|
+
function descriptorsIn(queries) {
|
|
302
|
+
const out = {};
|
|
303
|
+
if (!queries || typeof queries !== "object") return out;
|
|
304
|
+
for (const [label, b] of Object.entries(queries)) if (isDescriptorBinding(b) && b.descriptor && typeof b.descriptor === "object") out[label] = b.descriptor;
|
|
305
|
+
return out;
|
|
306
|
+
}
|
|
307
|
+
function checkQueryReads(queries, inScope, path, push, cellId) {
|
|
308
|
+
for (const [label, d] of Object.entries(queries)) {
|
|
309
|
+
const read = variableLabels(d).filter((l) => inScope.has(l));
|
|
310
|
+
if (read.length) push({
|
|
311
|
+
severity: "error",
|
|
312
|
+
code: "QUERY_READS_QUERY",
|
|
313
|
+
cellId,
|
|
314
|
+
label,
|
|
315
|
+
path: `${path}.${label}.descriptor.variables`,
|
|
316
|
+
message: `"${label}"'s variables read ${read.map((l) => `@${l}`).join(", ")}, another query's label; a query reads node bindings, walks and statics only`
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
}
|
|
244
320
|
function checkBindings(queries, path, push, cellId, template = false) {
|
|
245
321
|
if (queries === void 0) return;
|
|
246
322
|
if (!queries || typeof queries !== "object" || Array.isArray(queries)) {
|
|
@@ -267,14 +343,42 @@ function checkBindings(queries, path, push, cellId, template = false) {
|
|
|
267
343
|
});
|
|
268
344
|
continue;
|
|
269
345
|
}
|
|
346
|
+
if (RESERVED.has(label)) {
|
|
347
|
+
push({
|
|
348
|
+
severity: "error",
|
|
349
|
+
code: "LABEL_RESERVED",
|
|
350
|
+
cellId,
|
|
351
|
+
label,
|
|
352
|
+
path: at,
|
|
353
|
+
message: `"${label}" is reserved (${RESERVED_LABELS.join(", ")}); declare the data under another label`
|
|
354
|
+
});
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
if ("descriptor" in b) {
|
|
358
|
+
if ("graph_node_id" in b) push({
|
|
359
|
+
severity: "error",
|
|
360
|
+
code: "BINDING_INVALID",
|
|
361
|
+
cellId,
|
|
362
|
+
label,
|
|
363
|
+
path: at,
|
|
364
|
+
message: `"${label}" names both a descriptor and a graph_node_id; a binding is one or the other`
|
|
365
|
+
});
|
|
366
|
+
else for (const d of validateDescriptor(b.descriptor, `${at}.descriptor`)) push({
|
|
367
|
+
...d,
|
|
368
|
+
path: d.path ?? at,
|
|
369
|
+
cellId,
|
|
370
|
+
label
|
|
371
|
+
});
|
|
372
|
+
continue;
|
|
373
|
+
}
|
|
270
374
|
if (typeof b.registry === "string") {
|
|
271
375
|
push({
|
|
272
|
-
severity: "
|
|
376
|
+
severity: "error",
|
|
273
377
|
code: "UNSUPPORTED_REGISTRY_BINDING",
|
|
274
378
|
cellId,
|
|
275
379
|
label,
|
|
276
380
|
path: at,
|
|
277
|
-
message: `"${label}" names the registry query ${b.registry}
|
|
381
|
+
message: `"${label}" names the registry query ${b.registry}; the host contract is retired, so bind a query (a recipe's descriptor) or a graph node instead`
|
|
278
382
|
});
|
|
279
383
|
continue;
|
|
280
384
|
}
|
|
@@ -353,7 +457,6 @@ var EACH_KEYS = new Set([
|
|
|
353
457
|
"as",
|
|
354
458
|
"map"
|
|
355
459
|
]);
|
|
356
|
-
var RESERVED = new Set(RESERVED_LABELS);
|
|
357
460
|
function eachFormProblems(value) {
|
|
358
461
|
const out = [];
|
|
359
462
|
if (typeof value["@each"] !== "string" || !STRICT_REF.test(value["@each"])) out.push(`"@each" must be a whole \`@label.path\` reference to a list`);
|
|
@@ -379,6 +482,43 @@ function checkProjections(value, path, push, cellId) {
|
|
|
379
482
|
});
|
|
380
483
|
checkProjections(value.map, `${path}.map`, push, cellId);
|
|
381
484
|
}
|
|
485
|
+
function checkActions(cell, path, push) {
|
|
486
|
+
if (cell.actions === void 0) return;
|
|
487
|
+
if (!cell.actions || typeof cell.actions !== "object" || Array.isArray(cell.actions)) {
|
|
488
|
+
push({
|
|
489
|
+
severity: "error",
|
|
490
|
+
code: "ACTION_INVALID",
|
|
491
|
+
cellId: cell.id,
|
|
492
|
+
path: `${path}.actions`,
|
|
493
|
+
message: "actions must be an object of name → declaration"
|
|
494
|
+
});
|
|
495
|
+
return;
|
|
496
|
+
}
|
|
497
|
+
for (const [name, decl] of Object.entries(cell.actions)) {
|
|
498
|
+
const at = `${path}.actions.${name}`;
|
|
499
|
+
if (isGraphAction(decl)) for (const p of actionProblems(decl)) push({
|
|
500
|
+
severity: "error",
|
|
501
|
+
code: "ACTION_INVALID",
|
|
502
|
+
cellId: cell.id,
|
|
503
|
+
path: p.field ? `${at}.${p.field}` : at,
|
|
504
|
+
message: `${name}: ${p.message}`
|
|
505
|
+
});
|
|
506
|
+
else if (typeof decl === "string" || decl && typeof decl === "object" && "registry" in decl) push({
|
|
507
|
+
severity: "legacy",
|
|
508
|
+
code: "ACTION_REGISTRY",
|
|
509
|
+
cellId: cell.id,
|
|
510
|
+
path: at,
|
|
511
|
+
message: `${name} names a registry mutation; declare it as { action, … } with @input for what the component passes`
|
|
512
|
+
});
|
|
513
|
+
else push({
|
|
514
|
+
severity: "error",
|
|
515
|
+
code: "ACTION_INVALID",
|
|
516
|
+
cellId: cell.id,
|
|
517
|
+
path: at,
|
|
518
|
+
message: `${name} isn't an action declaration`
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
}
|
|
382
522
|
function checkStore(cell, path, push) {
|
|
383
523
|
for (const [kind, key] of [
|
|
384
524
|
["selections", "channel"],
|
|
@@ -493,6 +633,7 @@ function validateCell(cell, catalog, path = "cell", ids, options = {}) {
|
|
|
493
633
|
message: `child cell "${child}" is not on the page`
|
|
494
634
|
});
|
|
495
635
|
checkBindings(cell.data?.queries, `${path}.data.queries`, push, cellId, options.template);
|
|
636
|
+
checkActions(cell, path, push);
|
|
496
637
|
checkProjections(cell.props, `${path}.props`, push, cellId);
|
|
497
638
|
checkProjections(cell.conditions, `${path}.conditions`, push, cellId);
|
|
498
639
|
checkTraversal(cell.traversal, `${path}.traversal`, push, cellId);
|
|
@@ -538,6 +679,18 @@ function validatePage(page, catalog) {
|
|
|
538
679
|
});
|
|
539
680
|
list.forEach((cell, i) => out.push(...validateCell(cell, catalog, `content.cells[${i}]`, ids, options)));
|
|
540
681
|
checkBindings(page.content?.data?.queries, "content.data.queries", (d) => out.push(d), void 0, options.template);
|
|
682
|
+
const pageQueries = descriptorsIn(page.content?.data?.queries);
|
|
683
|
+
checkQueryReads(pageQueries, new Set(Object.keys(pageQueries)), "content.data.queries", (d) => out.push(d));
|
|
684
|
+
list.forEach((cell, i) => {
|
|
685
|
+
if (!cell || typeof cell !== "object" || !cell.component) return;
|
|
686
|
+
const own = descriptorsIn(cell.data?.queries);
|
|
687
|
+
const at = `content.cells[${i}]`;
|
|
688
|
+
checkQueryReads(own, new Set([...Object.keys(pageQueries), ...Object.keys(own)]), `${at}.data.queries`, (d) => out.push(d), cell.id);
|
|
689
|
+
const inScope = {};
|
|
690
|
+
for (const [label, d] of Object.entries(pageQueries)) if (!cell.data?.queries?.[label]) inScope[label] = d;
|
|
691
|
+
Object.assign(inScope, own);
|
|
692
|
+
if (Object.keys(inScope).length) out.push(...selectionIssues(cell, inScope, at));
|
|
693
|
+
});
|
|
541
694
|
if (usesStructureLayout(page.layout)) for (const issue of structureIssues(page.layout?.structure, list)) out.push({
|
|
542
695
|
severity: "error",
|
|
543
696
|
code: "STRUCTURE_INVALID",
|
|
@@ -547,6 +700,6 @@ function validatePage(page, catalog) {
|
|
|
547
700
|
return out;
|
|
548
701
|
}
|
|
549
702
|
//#endregion
|
|
550
|
-
export {
|
|
703
|
+
export { stateValue as _, nearestNames as a, walkRequest as b, selectionIssues as c, needsWalk as d, readField as f, stateNames as g, resolveWalkStart as h, eachFormProblems as i, RESERVED_LABELS as l, referencedLabels as m, STORE_SCOPES as n, validateCell as o, readWalk as p, WALK_DIRECTIONS as r, validatePage as s, RESPONSIVE_BUCKETS as t, mergeStates as u, systemsFromProcess as v, walkKey as y };
|
|
551
704
|
|
|
552
|
-
//# sourceMappingURL=validate-
|
|
705
|
+
//# sourceMappingURL=validate-Bji5gGV1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-Bji5gGV1.js","names":["RESERVED","STRICT_REF","STRICT_REF"],"sources":["../../src/core/graph.ts","../../src/core/selected.ts","../../src/core/validate.ts"],"mappings":"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"}
|