@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
@@ -0,0 +1,131 @@
1
+ //#region packages/renderer/src/core/references.ts
2
+ var STRICT_REF = /^@[A-Za-z0-9_$-]+(\.[A-Za-z0-9_$[\]-]+)*$/;
3
+ var INTERPOLATION = /\$\{(?:context\.)?([^}]+)\}/g;
4
+ var UnresolvedReference = class extends Error {
5
+ loading;
6
+ constructor(message, loading = false) {
7
+ super(message);
8
+ this.loading = loading;
9
+ }
10
+ };
11
+ function walk(root, path) {
12
+ let cur = root;
13
+ for (const seg of path) {
14
+ if (cur === null || cur === void 0) throw new UnresolvedReference(`null before "${seg}"`);
15
+ if (Array.isArray(cur) && /^\d+$/.test(seg)) {
16
+ const i = Number(seg);
17
+ if (i >= cur.length) throw new UnresolvedReference(`index ${i} out of range`);
18
+ cur = cur[i];
19
+ } else if (typeof cur === "object" || Array.isArray(cur)) cur = cur[seg];
20
+ else throw new UnresolvedReference(`"${seg}" on a ${typeof cur}`);
21
+ }
22
+ return cur;
23
+ }
24
+ function resolveRef(ref, ctx) {
25
+ const [key, ...path] = ref.slice(1).split(".");
26
+ const entry = ctx.data[key];
27
+ if (!entry) throw new UnresolvedReference(`no data "${key}"`);
28
+ if (entry.isLoading) throw new UnresolvedReference(`"${key}" is loading`, true);
29
+ if (entry.error) throw new UnresolvedReference(`"${key}" failed`);
30
+ return path.length ? walk(entry.data, path) : entry.data;
31
+ }
32
+ function interpolate(s, params) {
33
+ return s.replace(INTERPOLATION, (whole, path) => {
34
+ let cur = params;
35
+ for (const seg of path.split(".")) {
36
+ if (cur === null || cur === void 0) return whole;
37
+ cur = cur[seg];
38
+ }
39
+ return cur === void 0 ? whole : String(cur);
40
+ });
41
+ }
42
+ function resolveString(s, ctx) {
43
+ const text = interpolate(s, ctx.params);
44
+ if (!text.startsWith("@")) return text;
45
+ try {
46
+ const value = resolveRef(text, ctx);
47
+ if (value === void 0 && STRICT_REF.test(text)) ctx.onUnresolved?.(text);
48
+ return value;
49
+ } catch (e) {
50
+ if (!(e instanceof UnresolvedReference)) throw e;
51
+ if (!STRICT_REF.test(text)) return s;
52
+ if (e.loading) ctx.onLoading?.(text);
53
+ else ctx.onUnresolved?.(text);
54
+ return;
55
+ }
56
+ }
57
+ var EACH = "@each";
58
+ var EACH_DEFAULT_AS = "item";
59
+ var isEach = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && "@each" in value;
60
+ function resolveEach(each, ctx) {
61
+ const source = typeof each["@each"] === "string" ? resolveString(each[EACH], ctx) : void 0;
62
+ if (!Array.isArray(source)) {
63
+ if (source !== void 0) ctx.onUnresolved?.(String(each[EACH]));
64
+ return;
65
+ }
66
+ const as = each.as ?? "item";
67
+ return source.map((element) => resolveReferences(each.map, {
68
+ ...ctx,
69
+ data: {
70
+ ...ctx.data,
71
+ [as]: settled(element)
72
+ }
73
+ }));
74
+ }
75
+ function resolveReferences(value, ctx) {
76
+ if (value === null || value === void 0) return value;
77
+ if (typeof value === "string") return resolveString(value, ctx);
78
+ if (Array.isArray(value)) return value.map((v) => resolveReferences(v, ctx));
79
+ if (isEach(value)) return resolveEach(value, ctx);
80
+ if (typeof value === "object") {
81
+ const out = {};
82
+ for (const [k, v] of Object.entries(value)) out[k] = resolveReferences(v, ctx);
83
+ return out;
84
+ }
85
+ return value;
86
+ }
87
+ var settled = (data) => ({
88
+ data,
89
+ isLoading: false,
90
+ error: null
91
+ });
92
+ function cellResolutionContext(_cell, page, own, baseProps, who) {
93
+ const pageDeclared = own?.pageDeclared ?? new Set();
94
+ const data = { ...page.data };
95
+ for (const [label, entry] of Object.entries(own?.static ?? {})) if (!pageDeclared.has(label)) data[label] = entry;
96
+ for (const [label, entry] of Object.entries(own?.walk?.labels ?? {})) if (!pageDeclared.has(label) && !own?.declared?.[label]) data[label] = entry;
97
+ Object.assign(data, own?.declared);
98
+ data._traversal = settled(own?.walk?.traversal ?? {
99
+ nodes: [],
100
+ edges: []
101
+ });
102
+ data.params = settled(page.params);
103
+ if (baseProps !== void 0) data.baseProps = settled(baseProps);
104
+ if (who?.viewer !== void 0) data.viewer = settled(who.viewer);
105
+ if (who?.context !== void 0) data.context = settled(who.context);
106
+ return {
107
+ data,
108
+ params: page.params
109
+ };
110
+ }
111
+ var pageContext = (context, page) => ({
112
+ ...context,
113
+ pageId: page.id,
114
+ projectId: page.project_id,
115
+ processId: page.process_id
116
+ });
117
+ var cellContext = (context, cell) => ({
118
+ ...context,
119
+ nodeId: cell.graph_node_id ?? cell.metadata?.graph_node_id
120
+ });
121
+ function passesConditions(conditions, ctx) {
122
+ if (!conditions) return true;
123
+ const { showIf, hideIf } = conditions;
124
+ if (showIf !== void 0 && showIf !== "" && !resolveReferences(showIf, ctx)) return false;
125
+ if (hideIf !== void 0 && hideIf !== "" && resolveReferences(hideIf, ctx)) return false;
126
+ return true;
127
+ }
128
+ //#endregion
129
+ export { isEach as a, resolveReferences as c, cellResolutionContext as i, settled as l, EACH_DEFAULT_AS as n, pageContext as o, cellContext as r, passesConditions as s, EACH as t };
130
+
131
+ //# sourceMappingURL=references-BawYmQMY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references-BawYmQMY.js","names":[],"sources":["../../src/core/references.ts"],"mappings":"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"}
@@ -1,121 +1,148 @@
1
- import { SECTION_KINDS as SECTION_KINDS$1 } from "@peripheries/runtime";
2
- //#region packages/renderer/src/core/references.ts
3
- var STRICT_REF = /^@[A-Za-z0-9_$-]+(\.[A-Za-z0-9_$[\]-]+)*$/;
4
- var INTERPOLATION = /\$\{(?:context\.)?([^}]+)\}/g;
5
- var UnresolvedReference = class extends Error {
6
- loading;
7
- constructor(message, loading = false) {
8
- super(message);
9
- this.loading = loading;
10
- }
11
- };
12
- function walk(root, path) {
13
- let cur = root;
14
- for (const seg of path) {
15
- if (cur === null || cur === void 0) throw new UnresolvedReference(`null before "${seg}"`);
16
- if (Array.isArray(cur) && /^\d+$/.test(seg)) {
17
- const i = Number(seg);
18
- if (i >= cur.length) throw new UnresolvedReference(`index ${i} out of range`);
19
- cur = cur[i];
20
- } else if (typeof cur === "object" || Array.isArray(cur)) cur = cur[seg];
21
- else throw new UnresolvedReference(`"${seg}" on a ${typeof cur}`);
22
- }
23
- return cur;
1
+ import { a as isEach, c as resolveReferences, l as settled } from "./references-BawYmQMY.js";
2
+ import { ACTION_FIELDS, ACTION_KINDS, SECTION_KINDS as SECTION_KINDS$1, isGraphAction } from "@peripheries/runtime";
3
+ //#region packages/renderer/src/core/actions.ts
4
+ var actionBindingKey = (registry, entityKey) => entityKey ? `${registry}#${entityKey}` : registry;
5
+ function normalizeActionDeclaration(decl) {
6
+ if (typeof decl === "string") return decl.trim() ? {
7
+ registry: decl.trim(),
8
+ bindingKey: decl.trim()
9
+ } : null;
10
+ if (!decl || typeof decl !== "object") return null;
11
+ const d = decl;
12
+ const registry = typeof d.registry === "string" ? d.registry.trim() : "";
13
+ if (!registry) return null;
14
+ const entityKey = typeof d.entityKey === "string" && d.entityKey.trim() ? d.entityKey.trim() : void 0;
15
+ return {
16
+ registry,
17
+ ...entityKey ? { entityKey } : {},
18
+ bindingKey: actionBindingKey(registry, entityKey)
19
+ };
24
20
  }
25
- function resolveRef(ref, ctx) {
26
- const [key, ...path] = ref.slice(1).split(".");
27
- const entry = ctx.data[key];
28
- if (!entry) throw new UnresolvedReference(`no data "${key}"`);
29
- if (entry.isLoading) throw new UnresolvedReference(`"${key}" is loading`, true);
30
- if (entry.error) throw new UnresolvedReference(`"${key}" failed`);
31
- return path.length ? walk(entry.data, path) : entry.data;
21
+ function projectCellActions(declarations, pageActions) {
22
+ if (!declarations || !pageActions) return void 0;
23
+ const out = {};
24
+ for (const [name, raw] of Object.entries(declarations)) {
25
+ const decl = normalizeActionDeclaration(raw);
26
+ if (!decl) continue;
27
+ const fn = pageActions[decl.bindingKey] ?? pageActions[decl.registry] ?? pageActions[name];
28
+ if (fn) out[name] = fn;
29
+ }
30
+ return Object.keys(out).length ? out : void 0;
32
31
  }
33
- function interpolate(s, params) {
34
- return s.replace(INTERPOLATION, (whole, path) => {
35
- let cur = params;
36
- for (const seg of path.split(".")) {
37
- if (cur === null || cur === void 0) return whole;
38
- cur = cur[seg];
39
- }
40
- return cur === void 0 ? whole : String(cur);
32
+ var STRICT_REF = /^@([A-Za-z0-9_$-]+)(\.[A-Za-z0-9_$[\]-]+)*$/;
33
+ var isObject = (v) => !!v && typeof v === "object" && !Array.isArray(v);
34
+ function actionProblems(decl) {
35
+ const out = [];
36
+ const kind = decl.action;
37
+ if (!ACTION_KINDS.includes(kind)) return [{
38
+ field: "action",
39
+ message: `"${String(decl.action)}" isn't an action; use one of ${ACTION_KINDS.join(", ")}`
40
+ }];
41
+ const { required, optional } = ACTION_FIELDS[kind];
42
+ for (const f of required) if (decl[f] === void 0) out.push({
43
+ field: f,
44
+ message: `${kind} needs "${f}"`
41
45
  });
46
+ for (const f of Object.keys(decl)) if (f !== "action" && !required.includes(f) && !optional.includes(f)) out.push({
47
+ field: f,
48
+ message: `${kind} takes no "${f}" (it takes ${[...required, ...optional].join(", ")})`
49
+ });
50
+ if (kind === "append" && decl.patch === void 0 === (decl.data === void 0)) out.push({
51
+ field: "patch",
52
+ message: "append takes \"patch\" (merged) or \"data\" (replaces), one of the two"
53
+ });
54
+ const visit = (v, field) => {
55
+ if (typeof v === "string") {
56
+ if (v.startsWith("@") && !STRICT_REF.test(v)) out.push({
57
+ field,
58
+ message: `"${v}" isn't a whole \`@label.path\` reference`
59
+ });
60
+ } else if (Array.isArray(v)) v.forEach((x) => visit(x, field));
61
+ else if (isObject(v)) {
62
+ if (isEach(v)) out.push({
63
+ field,
64
+ message: "an action takes no projection (@each)"
65
+ });
66
+ else Object.values(v).forEach((x) => visit(x, field));
67
+ }
68
+ };
69
+ for (const [f, v] of Object.entries(decl)) if (f !== "action") visit(v, f);
70
+ return out;
42
71
  }
43
- function resolveString(s, ctx) {
44
- const text = interpolate(s, ctx.params);
45
- if (!text.startsWith("@")) return text;
46
- try {
47
- const value = resolveRef(text, ctx);
48
- if (value === void 0 && STRICT_REF.test(text)) ctx.onUnresolved?.(text);
49
- return value;
50
- } catch (e) {
51
- if (!(e instanceof UnresolvedReference)) throw e;
52
- if (!STRICT_REF.test(text)) return s;
53
- if (!e.loading) ctx.onUnresolved?.(text);
54
- return;
55
- }
72
+ function actionReferences(decl) {
73
+ const out = new Set();
74
+ const visit = (v) => {
75
+ if (typeof v === "string") {
76
+ const m = STRICT_REF.exec(v);
77
+ if (m) out.add(m[1]);
78
+ } else if (Array.isArray(v)) v.forEach(visit);
79
+ else if (isObject(v)) Object.values(v).forEach(visit);
80
+ };
81
+ for (const [f, v] of Object.entries(decl)) if (f !== "action") visit(v);
82
+ return [...out];
56
83
  }
57
- var EACH = "@each";
58
- var EACH_DEFAULT_AS = "item";
59
- var isEach = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && "@each" in value;
60
- function resolveEach(each, ctx) {
61
- const source = typeof each["@each"] === "string" ? resolveString(each[EACH], ctx) : void 0;
62
- if (!Array.isArray(source)) {
63
- if (source !== void 0) ctx.onUnresolved?.(String(each[EACH]));
64
- return;
65
- }
66
- const as = each.as ?? "item";
67
- return source.map((element) => resolveReferences(each.map, {
84
+ function resolveAction(name, cellId, decl, ctx, input) {
85
+ const problems = actionProblems(decl);
86
+ if (problems.length) return { result: {
87
+ success: false,
88
+ code: "INVALID",
89
+ errors: problems.map((p) => ({
90
+ message: p.message,
91
+ field: p.field
92
+ }))
93
+ } };
94
+ const unresolved = [];
95
+ const scope = {
68
96
  ...ctx,
69
97
  data: {
70
98
  ...ctx.data,
71
- [as]: settled(element)
72
- }
73
- }));
74
- }
75
- function resolveReferences(value, ctx) {
76
- if (value === null || value === void 0) return value;
77
- if (typeof value === "string") return resolveString(value, ctx);
78
- if (Array.isArray(value)) return value.map((v) => resolveReferences(v, ctx));
79
- if (isEach(value)) return resolveEach(value, ctx);
80
- if (typeof value === "object") {
81
- const out = {};
82
- for (const [k, v] of Object.entries(value)) out[k] = resolveReferences(v, ctx);
83
- return out;
84
- }
85
- return value;
86
- }
87
- var settled = (data) => ({
88
- data,
89
- isLoading: false,
90
- error: null
91
- });
92
- function cellResolutionContext(cell, page, own, baseProps) {
93
- const pageDeclared = own?.pageDeclared ?? new Set();
94
- const data = { ...page.data };
95
- for (const [label, entry] of Object.entries(own?.static ?? {})) if (!pageDeclared.has(label)) data[label] = entry;
96
- for (const [label, entry] of Object.entries(own?.walk?.labels ?? {})) if (!pageDeclared.has(label) && !own?.declared?.[label]) data[label] = entry;
97
- Object.assign(data, own?.declared);
98
- for (const [friendly, decl] of Object.entries(cell.data?.queries ?? {})) {
99
- const registry = decl.registry;
100
- if (registry && page.data[registry]) data[friendly] = page.data[registry];
101
- }
102
- data._traversal = settled(own?.walk?.traversal ?? {
103
- nodes: [],
104
- edges: []
105
- });
106
- data.params = settled(page.params);
107
- if (baseProps !== void 0) data.baseProps = settled(baseProps);
108
- return {
109
- data,
110
- params: page.params
99
+ input: settled(input ?? {})
100
+ },
101
+ onUnresolved: (ref) => unresolved.push(ref)
111
102
  };
103
+ const { action, ...fields } = decl;
104
+ const args = resolveReferences(fields, scope);
105
+ const { required } = ACTION_FIELDS[action];
106
+ const missing = required.filter((f) => args[f] === void 0 || args[f] === null);
107
+ if (missing.length) return { result: {
108
+ success: false,
109
+ code: "INVALID",
110
+ errors: missing.map((f) => ({
111
+ field: f,
112
+ message: `"${f}" resolved to nothing${unresolved.length ? ` (${unresolved.join(", ")})` : ""}`
113
+ }))
114
+ } };
115
+ return { action: {
116
+ action,
117
+ args,
118
+ name,
119
+ cellId
120
+ } };
112
121
  }
113
- function passesConditions(conditions, ctx) {
114
- if (!conditions) return true;
115
- const { showIf, hideIf } = conditions;
116
- if (showIf !== void 0 && showIf !== "" && !resolveReferences(showIf, ctx)) return false;
117
- if (hideIf !== void 0 && hideIf !== "" && resolveReferences(hideIf, ctx)) return false;
118
- return true;
122
+ function declaredActions(cell, ctx, runAction) {
123
+ const out = {};
124
+ for (const [name, decl] of Object.entries(cell.actions ?? {})) {
125
+ if (!isGraphAction(decl)) continue;
126
+ out[name] = async (input) => {
127
+ if (!runAction) return {
128
+ success: false,
129
+ code: "FAILED",
130
+ errors: [{ message: "this page runs no actions here" }]
131
+ };
132
+ const resolved = resolveAction(name, cell.id, decl, ctx, input);
133
+ if ("result" in resolved) return resolved.result;
134
+ try {
135
+ return await runAction(resolved.action);
136
+ } catch (e) {
137
+ return {
138
+ success: false,
139
+ code: "FAILED",
140
+ errors: [{ message: e.message }]
141
+ };
142
+ }
143
+ };
144
+ }
145
+ return Object.keys(out).length ? out : void 0;
119
146
  }
120
147
  //#endregion
121
148
  //#region packages/renderer/src/core/structure.ts
@@ -327,6 +354,6 @@ function nodePrintStyle(node) {
327
354
  } : void 0;
328
355
  }
329
356
  //#endregion
330
- export { settled as S, EACH_DEFAULT_AS as _, deriveSectionReferences as a, passesConditions as b, nodePrintStyle as c, referencesFor as d, sectionAnchor as f, EACH as g, usesStructureLayout as h, deriveSectionNumbering as i, normalizeStructure as l, structureIssues as m, SECTION_KINDS$1 as n, isSectionNode as o, sortByOrder as p, deriveElementReferences as r, mergeSectionReferences as s, PAGE_DOCUMENT as t, numberingFor as u, cellResolutionContext as v, resolveReferences as x, isEach as y };
357
+ export { resolveAction as S, actionProblems as _, deriveSectionReferences as a, normalizeActionDeclaration as b, nodePrintStyle as c, referencesFor as d, sectionAnchor as f, actionBindingKey as g, usesStructureLayout as h, deriveSectionNumbering as i, normalizeStructure as l, structureIssues as m, SECTION_KINDS$1 as n, isSectionNode as o, sortByOrder as p, deriveElementReferences as r, mergeSectionReferences as s, PAGE_DOCUMENT as t, numberingFor as u, actionReferences as v, projectCellActions as x, declaredActions as y };
331
358
 
332
- //# sourceMappingURL=structure-Bp7xbPck.js.map
359
+ //# sourceMappingURL=structure-BdsfUYHS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure-BdsfUYHS.js","names":["SECTION_KINDS"],"sources":["../../src/core/actions.ts","../../src/core/structure.ts"],"mappings":"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"}