@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.
Files changed (35) hide show
  1. package/README.md +33 -2
  2. package/dist/catalog.js +2 -2
  3. package/dist/chunks/{projection-CDMo5g6t.js → projection-DNj8lq4J.js} +3 -3
  4. package/dist/chunks/projection-DNj8lq4J.js.map +1 -0
  5. package/dist/chunks/query-BsvcULsk.js +457 -0
  6. package/dist/chunks/query-BsvcULsk.js.map +1 -0
  7. package/dist/chunks/references-BawYmQMY.js +131 -0
  8. package/dist/chunks/references-BawYmQMY.js.map +1 -0
  9. package/dist/chunks/{structure-Bp7xbPck.js → structure-BdsfUYHS.js} +137 -110
  10. package/dist/chunks/structure-BdsfUYHS.js.map +1 -0
  11. package/dist/chunks/{validate-Cz2tUUdm.js → validate-Bji5gGV1.js} +163 -10
  12. package/dist/chunks/validate-Bji5gGV1.js.map +1 -0
  13. package/dist/core.js +306 -48
  14. package/dist/core.js.map +1 -1
  15. package/dist/react.js +26 -17
  16. package/dist/react.js.map +1 -1
  17. package/dist/testing.js +11 -0
  18. package/dist/testing.js.map +1 -1
  19. package/dist/types/core/actions.d.ts +33 -1
  20. package/dist/types/core/cell-props.d.ts +2 -2
  21. package/dist/types/core/data-context.d.ts +7 -5
  22. package/dist/types/core/diagnostics.d.ts +59 -3
  23. package/dist/types/core/graph.d.ts +6 -2
  24. package/dist/types/core/index.d.ts +7 -4
  25. package/dist/types/core/load-page.d.ts +31 -7
  26. package/dist/types/core/query.d.ts +93 -0
  27. package/dist/types/core/references.d.ts +27 -5
  28. package/dist/types/core/selected.d.ts +9 -0
  29. package/dist/types/react/cell-view.d.ts +5 -0
  30. package/dist/types/react/page-renderer.d.ts +10 -1
  31. package/dist/types/testing/golden.d.ts +5 -0
  32. package/package.json +4 -3
  33. package/dist/chunks/projection-CDMo5g6t.js.map +0 -1
  34. package/dist/chunks/structure-Bp7xbPck.js.map +0 -1
  35. package/dist/chunks/validate-Cz2tUUdm.js.map +0 -1
@@ -1,5 +1,7 @@
1
- import { _ as EACH_DEFAULT_AS, g as EACH, h as usesStructureLayout, m as structureIssues, y as isEach } from "./structure-Bp7xbPck.js";
2
- import { DEFAULT_STATE, STATE_NAMES, WALK_DEFAULTS, isStateName } from "@peripheries/runtime";
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$1 = /^@([A-Za-z0-9_$-]+)(\.[A-Za-z0-9_$[\]-]+)*$/;
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$1.exec(v);
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: "warning",
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}, which the host no longer runs (R2 maps or retires it)`
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 { systemsFromProcess as _, nearestNames as a, RESERVED_LABELS as c, readField as d, readWalk as f, stateValue as g, stateNames as h, eachFormProblems as i, mergeStates as l, resolveWalkStart as m, STORE_SCOPES as n, validateCell as o, referencedLabels as p, WALK_DIRECTIONS as r, validatePage as s, RESPONSIVE_BUCKETS as t, needsWalk as u, walkKey as v, walkRequest as y };
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-Cz2tUUdm.js.map
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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"}