@beehexa/hexasync-template-report-render 2608.8.3 → 2608.20.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beehexa/hexasync-template-report-render",
3
- "version": "2608.8.3",
3
+ "version": "2608.20.18",
4
4
  "description": "Markdown and HTML renderers for the report models.",
5
5
  "license": "SEE LICENSE IN ../../LICENSE",
6
6
  "type": "module",
@@ -20,9 +20,11 @@
20
20
  "build": "tsc -p tsconfig.build.json"
21
21
  },
22
22
  "dependencies": {
23
- "@beehexa/hexasync-template-compose": "2608.8.3",
24
- "@beehexa/hexasync-template-report-model": "2608.8.3",
25
- "@beehexa/hexasync-template-validate": "2608.8.3"
23
+ "@beehexa/hexasync-template-compose": "2608.20.18",
24
+ "@beehexa/hexasync-template-frontend-flow": "2608.20.18",
25
+ "@beehexa/hexasync-template-report-model": "2608.20.18",
26
+ "@beehexa/hexasync-template-validate": "2608.20.18",
27
+ "@beehexa/hexasync-template-worker-flow": "2608.20.18"
26
28
  },
27
29
  "hexasync": {
28
30
  "layer": "adapter"
@@ -1,12 +0,0 @@
1
- /** A run of diff lines: either shown as-is, or a collapsible run of unchanged context. */
2
- export interface DiffSegment {
3
- collapsed: boolean;
4
- lines: string[];
5
- }
6
- /**
7
- * Split a unified diff (lines prefixed ' '/'- '/'+ ') into segments, keeping
8
- * `context` unchanged lines around every change and collapsing longer unchanged
9
- * runs so a caller can render them behind an expandable ellipsis.
10
- */
11
- export declare function collapseDiff(diffText: string, context?: number): DiffSegment[];
12
- //# sourceMappingURL=diffCollapse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diffCollapse.d.ts","sourceRoot":"","sources":["../src/diffCollapse.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,WAAW,EAAE,CAuBzE"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Split a unified diff (lines prefixed ' '/'- '/'+ ') into segments, keeping
3
- * `context` unchanged lines around every change and collapsing longer unchanged
4
- * runs so a caller can render them behind an expandable ellipsis.
5
- */
6
- export function collapseDiff(diffText, context = 2) {
7
- const lines = diffText.split('\n');
8
- const isChange = (l) => !!l && (l.startsWith('+ ') || l.startsWith('- '));
9
- const keep = lines.map((l, i) => {
10
- if (isChange(l))
11
- return true;
12
- for (let d = 1; d <= context; d++) {
13
- if (isChange(lines[i - d]) || isChange(lines[i + d]))
14
- return true;
15
- }
16
- return false;
17
- });
18
- const segments = [];
19
- let i = 0;
20
- while (i < lines.length) {
21
- const k = keep[i];
22
- const start = i;
23
- while (i < lines.length && keep[i] === k)
24
- i++;
25
- const run = lines.slice(start, i);
26
- // Collapse only unchanged runs long enough to be worth hiding.
27
- segments.push({ collapsed: !k && run.length > context, lines: run });
28
- }
29
- return segments;
30
- }
31
- //# sourceMappingURL=diffCollapse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"diffCollapse.js","sourceRoot":"","sources":["../src/diffCollapse.ts"],"names":[],"mappings":"AAMA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,OAAO,GAAG,CAAC;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,CAAqB,EAAE,EAAE,CACzC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9B,IAAI,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,+DAA+D;QAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,51 +0,0 @@
1
- import { ComponentFlow, FlowStep } from '@beehexa/hexasync-template-report-model';
2
- /** Step keys quoted inside a Scriban/expression string (e.g. `"SAVE_ORDER"`). */
3
- /**
4
- * The step keys a routing EXPRESSION can name — every quoted identifier in it.
5
- *
6
- * Exported (2026-08-07) so the VS Code extension's diagram resolves a route leaf exactly as this chart and
7
- * the FLOW-6 rule do. It previously had no way to, and the module header already records what happens when
8
- * two views each grow their own idea of routing: both were wrong about `data`-branching IF steps, differently.
9
- */
10
- export declare function quotedKeys(expr: string): string[];
11
- /** Whether a route value is an expression rather than a step key. Exported with `quotedKeys`, and for the
12
- * same reason. */
13
- export declare function looksLikeExpression(s: string): boolean;
14
- /**
15
- * Render a creation-workflow (`creationSteps`) as a `flowchart TD` Mermaid string,
16
- * mirroring control-center's connector-workflow generator: a START stadium into the
17
- * `root` step(s); rectangles for normal steps and rhombi for decisions (`type: IF`/
18
- * `SWITCH` or an object `next`); edges from linear `next` (string), IF `then`/`else`
19
- * (YES/NO), SWITCH `cases`/`default`, object `next` `then`/`else` (aka `success`/
20
- * `failed`), and `onCancelled` (Cancel); a shared END stadium for terminal steps.
21
- */
22
- /** One resolved route out of a step. */
23
- export interface FlowEdge {
24
- readonly from: string;
25
- /** The target step key, or undefined when the target names no step in this phase. */
26
- readonly to?: string;
27
- /** `YES` / `NO` for a conditional, the branch key for a SWITCH, `onError`, else undefined. */
28
- readonly label?: string;
29
- /** The raw value the route was written as, for a reader who needs to see the expression. */
30
- readonly raw?: string;
31
- }
32
- /**
33
- * Every route out of every step, as DATA — the same resolution the mermaid builder draws.
34
- *
35
- * Exported so a second renderer cannot grow a second idea of what routes where. That is not hypothetical: the
36
- * chart and the FLOW-6 rule each had their own, and both were wrong about `data`-branching IF steps in
37
- * different ways. One definition, two consumers.
38
- *
39
- * The semantics are the runtime's (`core.api/hexasync.steps/Execution/NextStepBuilder.cs`):
40
- *
41
- * * a **string** is a step key, or a scriban expression that renders to one — for a static view, every
42
- * quoted key inside the expression that names a real step is a possible route;
43
- * * an **object** `{ if, then, else }` is a branch, and `then`/`else` are themselves routes;
44
- * * for a step whose type is `IF`, its **`data`** is that object — `IfStepExecutor` passes `StepData` to the
45
- * builder — and for a `SWITCH`, `data`'s keys are the branches;
46
- * * an empty or absent route is the end of the flow, and yields no edge.
47
- */
48
- export declare function flowEdges(steps: readonly FlowStep[]): readonly FlowEdge[];
49
- /** Render a component flow as a Mermaid definition string. */
50
- export declare function buildMermaid(flow: ComponentFlow): string;
51
- //# sourceMappingURL=flowChart.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowChart.d.ts","sourceRoot":"","sources":["../src/flowChart.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,QAAQ,EACT,MAAM,yCAAyC,CAAC;AAgCjD,iFAAiF;AACjF;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAMjD;AAED;mBACmB;AACnB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEtD;AAiLD;;;;;;;GAOG;AACH,wCAAwC;AACxC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4FAA4F;IAC5F,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,QAAQ,EAAE,CA4EzE;AA6GD,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAqCxD"}
package/dist/flowChart.js DELETED
@@ -1,445 +0,0 @@
1
- /**
2
- * Build a Mermaid `flowchart LR` for a puller/pusher's step phases, mirroring the
3
- * conventions dashboard-v2 uses in its Sync Logs → Flow tab:
4
- * - one subgraph per non-empty phase (`beforePullSteps`, `pullSteps`, …),
5
- * - one rectangle node per step (label = step `name` falling back to `key`),
6
- * - edges driven by each step's `next` (string key, `{if,then,else}` object, or
7
- * a Scriban expression referencing quoted step keys),
8
- * - phases chained entry-to-entry so the overall order reads left-to-right.
9
- * Pure string formatting — no I/O.
10
- */
11
- /** Sanitize a value into a Mermaid-safe node/subgraph id. */
12
- function mermaidId(value) {
13
- return value.replace(/[^a-zA-Z0-9_]/g, '_');
14
- }
15
- /** Escape a value for use inside a quoted Mermaid label. Only `"` (which would close
16
- * the quoted label) and newlines need escaping — braces/pipes render fine inside a
17
- * quoted label, whereas HTML numeric entities (`&#123;`) are mangled by Mermaid. This
18
- * matters for raw Scriban expression labels, which contain `{{ … | … }}`. */
19
- function escapeLabel(value) {
20
- return String(value ?? '')
21
- .replace(/"/g, '&quot;')
22
- .replace(/\r?\n/g, ' ');
23
- }
24
- function nodeId(phaseKey, stepKey) {
25
- return `${mermaidId(phaseKey)}_${mermaidId(stepKey)}`;
26
- }
27
- /** Step keys quoted inside a Scriban/expression string (e.g. `"SAVE_ORDER"`). */
28
- /**
29
- * The step keys a routing EXPRESSION can name — every quoted identifier in it.
30
- *
31
- * Exported (2026-08-07) so the VS Code extension's diagram resolves a route leaf exactly as this chart and
32
- * the FLOW-6 rule do. It previously had no way to, and the module header already records what happens when
33
- * two views each grow their own idea of routing: both were wrong about `data`-branching IF steps, differently.
34
- */
35
- export function quotedKeys(expr) {
36
- const out = [];
37
- const re = /"([A-Za-z0-9_]+)"/g;
38
- let m;
39
- while ((m = re.exec(expr)))
40
- out.push(m[1]);
41
- return out;
42
- }
43
- /** Whether a route value is an expression rather than a step key. Exported with `quotedKeys`, and for the
44
- * same reason. */
45
- export function looksLikeExpression(s) {
46
- return s.includes('{{') || s.includes('}}') || /"[A-Za-z0-9_]+"/.test(s);
47
- }
48
- function buildPhase(phaseKey, steps,
49
- /**
50
- * Kept in the signature, unused since the IF/SWITCH-via-`data` routing was ungated (2026-08-06).
51
- *
52
- * The callers pass it and the flag still means something to the model, so removing it from the signature
53
- * would be a wider change than the fix; naming it `_newKind` records that nothing here reads it any more.
54
- */
55
- _newKind = false) {
56
- const nodeLines = [];
57
- const edgeLines = [];
58
- const seenEdges = new Set();
59
- const byKey = new Map(steps.map((s) => [s.key, s]));
60
- let diamondSeq = 0;
61
- const pushEdge = (line) => {
62
- if (!seenEdges.has(line)) {
63
- seenEdges.add(line);
64
- edgeLines.push(line);
65
- }
66
- };
67
- for (const step of steps) {
68
- nodeLines.push(` ${nodeId(phaseKey, step.key)}["${escapeLabel(step.label)}"]`);
69
- }
70
- /** Resolve a target key to a node id, synthesizing a stadium for an unknown target
71
- * (e.g. a cross-phase onError / fromStep reference). New-kind only. */
72
- const targetNode = (k) => {
73
- if (byKey.has(k))
74
- return nodeId(phaseKey, k);
75
- const uId = `${mermaidId(phaseKey)}_UNK_${mermaidId(k)}`;
76
- const decl = ` ${uId}(["${escapeLabel(k)}"])`;
77
- if (!nodeLines.includes(decl))
78
- nodeLines.push(decl);
79
- return uId;
80
- };
81
- /** Draw a labeled edge from a node to a (possibly synthesized) target. New-kind only. */
82
- const linkLabeled = (fromId, next, label) => {
83
- if (next == null || next === '')
84
- return;
85
- if (typeof next === 'object') {
86
- linkFrom(fromId, next);
87
- return;
88
- }
89
- pushEdge(` ${fromId} -->|"${escapeLabel(label)}"| ${targetNode(String(next))}`);
90
- };
91
- const linkFrom = (fromId, next) => {
92
- if (next == null || next === '')
93
- return;
94
- // Hierarchical conditional: { if, then, else } → diamond with YES/NO branches.
95
- if (typeof next === 'object') {
96
- const cond = next;
97
- const dId = `${mermaidId(phaseKey)}_D_${++diamondSeq}`;
98
- nodeLines.push(` ${dId}{"${escapeLabel(cond.if ?? '?')}"}`);
99
- pushEdge(` ${fromId} --> ${dId}`);
100
- if (typeof cond.then === 'string' && byKey.has(cond.then)) {
101
- pushEdge(` ${dId} -->|"YES"| ${nodeId(phaseKey, cond.then)}`);
102
- }
103
- else if (cond.then && typeof cond.then === 'object') {
104
- linkFrom(dId, cond.then);
105
- }
106
- if (typeof cond.else === 'string' && byKey.has(cond.else)) {
107
- pushEdge(` ${dId} -->|"NO"| ${nodeId(phaseKey, cond.else)}`);
108
- }
109
- else if (cond.else && typeof cond.else === 'object') {
110
- linkFrom(dId, cond.else);
111
- }
112
- return;
113
- }
114
- const s = String(next);
115
- // Direct step key.
116
- if (byKey.has(s)) {
117
- pushEdge(` ${fromId} --> ${nodeId(phaseKey, s)}`);
118
- return;
119
- }
120
- // Scriban/expression: diamond → each quoted key that names a real step.
121
- if (looksLikeExpression(s)) {
122
- const targets = quotedKeys(s).filter((k) => byKey.has(k));
123
- if (targets.length > 0) {
124
- const dId = `${mermaidId(phaseKey)}_EXPR_${++diamondSeq}`;
125
- nodeLines.push(` ${dId}{"${escapeLabel(s)}"}`);
126
- pushEdge(` ${fromId} --> ${dId}`);
127
- for (const t of targets) {
128
- pushEdge(` ${dId} --> ${nodeId(phaseKey, t)}`);
129
- }
130
- return;
131
- }
132
- }
133
- // Unknown terminal target → stadium node.
134
- const uId = `${mermaidId(phaseKey)}_UNK_${mermaidId(s)}`;
135
- nodeLines.push(` ${uId}(["${escapeLabel(s)}"])`);
136
- pushEdge(` ${fromId} --> ${uId}`);
137
- };
138
- for (const step of steps) {
139
- const fromId = nodeId(phaseKey, step.key);
140
- /**
141
- * IF / SWITCH routing via `data` — for EVERY kind, not new-kind only (reported 2026-08-06).
142
- *
143
- * This block was gated on `newKind`, and `toFlowStep`'s own comment recorded the assumption behind it:
144
- * *"New-kind fields; harmless for old-kind steps (all undefined)."* A shipped OLD-kind pusher disproves
145
- * it — `001-projects/nla-extensions/nla-backorder/.../Backorder_BackOrderItemEstimatedDate_Pusher.yaml`
146
- * has three `displayType: IF` steps whose branches are in `data.then` / `data.else`. Gated out, they fell
147
- * through to `step.next`, which an IF step does not have, so six of its seven nodes were drawn with no
148
- * edges at all — the reported chart.
149
- *
150
- * The runtime settles which is right: `IfStepExecutor.ExecuteAsync` passes the step's own `StepData` into
151
- * `NextStepBuilder`, so `data: { if, then, else }` IS that step's next, whatever kind of flow it sits in.
152
- *
153
- * Safe to ungate: every clause is guarded by the presence of the field it reads, so an old-kind step
154
- * with no `stepType`, no `data`, no `onError` and no `fromStep` takes exactly the path it took before.
155
- */
156
- const st = String(step.stepType ?? '').toUpperCase();
157
- const d = step.data && typeof step.data === 'object'
158
- ? step.data
159
- : undefined;
160
- if (st === 'IF' && d) {
161
- if (d.then != null)
162
- linkLabeled(fromId, d.then, 'YES');
163
- if (d.else != null)
164
- linkLabeled(fromId, d.else, 'NO');
165
- // A conditional in `data` does not preclude a plain `next`; draw it when it is there.
166
- if (d.then == null && d.else == null)
167
- linkFrom(fromId, step.next);
168
- }
169
- else if (st === 'SWITCH' && d && !Array.isArray(d)) {
170
- for (const branchKey of Object.keys(d))
171
- linkLabeled(fromId, branchKey, branchKey);
172
- }
173
- else {
174
- linkFrom(fromId, step.next);
175
- }
176
- if (step.onError)
177
- linkLabeled(fromId, step.onError, 'onError');
178
- // Exception back-reference: fromStep → this step. New-kind in practice, inert without `fromStep`.
179
- if (step.fromStep)
180
- pushEdge(` ${targetNode(step.fromStep)} -->|"Exception"| ${fromId}`);
181
- }
182
- // Entry nodes: rootStep steps, or the first step if none is flagged.
183
- const roots = steps.filter((s) => s.rootStep);
184
- const entrySteps = roots.length > 0 ? roots : steps.slice(0, 1);
185
- const entryIds = entrySteps.map((s) => nodeId(phaseKey, s.key));
186
- // Tails = every terminal step (no successor `next`), so each end-point chains to
187
- // the next phase — not merely the last-declared step (which may still branch on).
188
- // Falls back to the last step in document order when nothing is terminal.
189
- /**
190
- * A step is TERMINAL when nothing routes out of it — `next` and a `data` conditional alike.
191
- *
192
- * Reading `next` alone made every `data`-branching IF step look terminal, so each was chained to the next
193
- * phase's entry: an edge the flow does not have, drawn beside the branches it was missing.
194
- */
195
- const isTerminal = (s) => {
196
- const branch = s.data && typeof s.data === 'object'
197
- ? s.data
198
- : undefined;
199
- if (branch && (branch.then != null || branch.else != null))
200
- return false;
201
- return s.next == null || s.next === '';
202
- };
203
- const terminals = steps.filter(isTerminal);
204
- const tailSteps = terminals.length > 0 ? terminals : [steps[steps.length - 1]];
205
- const tailIds = tailSteps.map((s) => nodeId(phaseKey, s.key));
206
- return { key: phaseKey, entryIds, tailIds, nodeLines, edgeLines };
207
- }
208
- /**
209
- * Every route out of every step, as DATA — the same resolution the mermaid builder draws.
210
- *
211
- * Exported so a second renderer cannot grow a second idea of what routes where. That is not hypothetical: the
212
- * chart and the FLOW-6 rule each had their own, and both were wrong about `data`-branching IF steps in
213
- * different ways. One definition, two consumers.
214
- *
215
- * The semantics are the runtime's (`core.api/hexasync.steps/Execution/NextStepBuilder.cs`):
216
- *
217
- * * a **string** is a step key, or a scriban expression that renders to one — for a static view, every
218
- * quoted key inside the expression that names a real step is a possible route;
219
- * * an **object** `{ if, then, else }` is a branch, and `then`/`else` are themselves routes;
220
- * * for a step whose type is `IF`, its **`data`** is that object — `IfStepExecutor` passes `StepData` to the
221
- * builder — and for a `SWITCH`, `data`'s keys are the branches;
222
- * * an empty or absent route is the end of the flow, and yields no edge.
223
- */
224
- export function flowEdges(steps) {
225
- const known = new Set(steps.map((s) => s.key));
226
- const out = [];
227
- /** Walk one route value, iteratively — `then`/`else` nest without bound. */
228
- const routes = (from, value, label) => {
229
- const stack = [
230
- { value, ...(label ? { label } : {}) },
231
- ];
232
- while (stack.length > 0) {
233
- const item = stack.pop();
234
- const node = item.value;
235
- if (node == null || node === '')
236
- continue;
237
- if (typeof node === 'object' && !Array.isArray(node)) {
238
- const cond = node;
239
- stack.push({ value: cond.else, label: 'NO' });
240
- stack.push({ value: cond.then, label: 'YES' });
241
- continue;
242
- }
243
- const text = String(node);
244
- if (known.has(text)) {
245
- out.push({
246
- from,
247
- to: text,
248
- ...(item.label ? { label: item.label } : {}),
249
- });
250
- continue;
251
- }
252
- if (looksLikeExpression(text)) {
253
- // A scriban expression: every quoted key naming a real step is a route it can take. Reported with the
254
- // raw expression, because which one it takes is a run-time fact a static view cannot know.
255
- const targets = quotedKeys(text).filter((k) => known.has(k));
256
- for (const target of targets) {
257
- out.push({
258
- from,
259
- to: target,
260
- raw: text,
261
- ...(item.label ? { label: item.label } : {}),
262
- });
263
- }
264
- if (targets.length === 0)
265
- out.push({
266
- from,
267
- raw: text,
268
- ...(item.label ? { label: item.label } : {}),
269
- });
270
- continue;
271
- }
272
- // Names no step in this phase — a route out of it, kept so the reader sees the dead end.
273
- out.push({
274
- from,
275
- raw: text,
276
- ...(item.label ? { label: item.label } : {}),
277
- });
278
- }
279
- };
280
- for (const step of steps) {
281
- const type = String(step.stepType ?? '').toUpperCase();
282
- const data = step.data && typeof step.data === 'object' && !Array.isArray(step.data)
283
- ? step.data
284
- : undefined;
285
- if (type === 'IF' && data) {
286
- if (data.then != null)
287
- routes(step.key, data.then, 'YES');
288
- if (data.else != null)
289
- routes(step.key, data.else, 'NO');
290
- if (data.then == null && data.else == null)
291
- routes(step.key, step.next);
292
- }
293
- else if (type === 'SWITCH' && data) {
294
- for (const branch of Object.keys(data))
295
- routes(step.key, branch, branch);
296
- }
297
- else {
298
- routes(step.key, step.next);
299
- }
300
- if (step.onError)
301
- routes(step.key, step.onError, 'onError');
302
- }
303
- return out;
304
- }
305
- function buildCreationMermaid(flow) {
306
- const steps = flow.phases[0]?.steps ?? [];
307
- if (steps.length === 0)
308
- return 'flowchart TD\n empty["No steps"]';
309
- const wf = 'creationSteps';
310
- const byKey = new Set(steps.map((s) => s.key));
311
- const nid = (k) => `${mermaidId(wf)}_${mermaidId(k)}`;
312
- const startId = `${mermaidId(wf)}_START`;
313
- const endId = `${mermaidId(wf)}_END`;
314
- const nodeLines = [];
315
- const extraNodes = new Map();
316
- const edgeLines = [];
317
- const seenEdges = new Set();
318
- let endUsed = false;
319
- const isDecision = (s) => s.stepType === 'IF' ||
320
- s.stepType === 'SWITCH' ||
321
- (!!s.next && typeof s.next === 'object');
322
- for (const s of steps) {
323
- const label = escapeLabel(s.label);
324
- nodeLines.push(isDecision(s)
325
- ? ` ${nid(s.key)}{"${label}"}`
326
- : ` ${nid(s.key)}["${label}"]`);
327
- }
328
- const pushEdge = (line) => {
329
- if (!seenEdges.has(line)) {
330
- seenEdges.add(line);
331
- edgeLines.push(line);
332
- }
333
- };
334
- /** Resolve a target key to a node id, synthesizing a stadium for unknown targets. */
335
- const target = (k) => {
336
- if (byKey.has(k))
337
- return nid(k);
338
- const uid = `${mermaidId(wf)}_UNK_${mermaidId(k)}`;
339
- if (!extraNodes.has(uid))
340
- extraNodes.set(uid, ` ${uid}(["${escapeLabel(k)}"])`);
341
- return uid;
342
- };
343
- const edge = (from, to, label) => pushEdge(label
344
- ? ` ${from} -->|"${escapeLabel(label)}"| ${to}`
345
- : ` ${from} --> ${to}`);
346
- for (const s of steps) {
347
- const from = nid(s.key);
348
- const md = s.metadata && typeof s.metadata === 'object' ? s.metadata : {};
349
- const before = edgeLines.length;
350
- let isDecisionStep = false;
351
- if (s.stepType === 'IF') {
352
- isDecisionStep = true;
353
- if (md.then != null)
354
- edge(from, target(String(md.then)), 'YES');
355
- if (md.else != null)
356
- edge(from, target(String(md.else)), 'NO');
357
- }
358
- else if (s.stepType === 'SWITCH') {
359
- isDecisionStep = true;
360
- const cases = md.cases && typeof md.cases === 'object' ? md.cases : {};
361
- for (const [caseVal, tgt] of Object.entries(cases)) {
362
- edge(from, target(String(tgt)), caseVal);
363
- }
364
- if (md.default != null)
365
- edge(from, target(String(md.default)), 'default');
366
- }
367
- else if (s.next && typeof s.next === 'object') {
368
- isDecisionStep = true;
369
- const nb = s.next;
370
- const thenT = nb.then ?? nb.success;
371
- const elseT = nb.else ?? nb.failed;
372
- if (typeof thenT === 'string')
373
- edge(from, target(thenT), 'YES');
374
- if (typeof elseT === 'string')
375
- edge(from, target(elseT), 'NO');
376
- }
377
- else if (typeof s.next === 'string' && s.next.trim() !== '') {
378
- edge(from, target(s.next));
379
- }
380
- else {
381
- endUsed = true;
382
- edge(from, endId);
383
- }
384
- if (s.onCancelled)
385
- edge(from, target(s.onCancelled), 'Cancel');
386
- // A decision step that produced NO edge at all (empty metadata, and no
387
- // onCancelled) would otherwise dangle; link it to END so the chart stays
388
- // connected. Checked after onCancelled so a cancel-only decision isn't also
389
- // given a spurious normal-completion END edge.
390
- if (isDecisionStep && edgeLines.length === before) {
391
- endUsed = true;
392
- edge(from, endId);
393
- }
394
- }
395
- const roots = steps.filter((s) => s.rootStep);
396
- const entries = (roots.length > 0 ? roots : steps.slice(0, 1)).map((s) => nid(s.key));
397
- const lines = ['flowchart TD'];
398
- lines.push(` ${startId}(["Profile Creation"])`);
399
- lines.push(...nodeLines);
400
- for (const decl of extraNodes.values())
401
- lines.push(decl);
402
- if (endUsed)
403
- lines.push(` ${endId}(["END"])`);
404
- for (const entry of entries)
405
- pushEdge(` ${startId} --> ${entry}`);
406
- lines.push(...edgeLines);
407
- return lines.join('\n');
408
- }
409
- /** Render a component flow as a Mermaid definition string. */
410
- export function buildMermaid(flow) {
411
- if (flow.kind === 'creation')
412
- return buildCreationMermaid(flow);
413
- const phases = flow.phases.filter((p) => p.steps.length > 0);
414
- if (phases.length === 0) {
415
- return 'flowchart LR\n empty["No steps"]';
416
- }
417
- const lines = ['flowchart LR'];
418
- const newKind = flow.newKind === true;
419
- const builds = phases.map((p) => buildPhase(p.name, p.steps, newKind));
420
- for (const b of builds) {
421
- lines.push(` subgraph sg_${mermaidId(b.key)}["${escapeLabel(b.key)}"]`);
422
- lines.push(' direction LR');
423
- lines.push(...b.nodeLines);
424
- lines.push(...b.edgeLines);
425
- lines.push(' end');
426
- }
427
- // Chain phases: each terminal of the previous phase → each entry of the next,
428
- // so no end-point dead-ends when a phase has multiple terminals.
429
- const seenInterEdges = new Set();
430
- for (let i = 1; i < builds.length; i++) {
431
- const prev = builds[i - 1];
432
- const cur = builds[i];
433
- for (const from of prev.tailIds) {
434
- for (const to of cur.entryIds) {
435
- const line = ` ${from} --> ${to}`;
436
- if (from && to && !seenInterEdges.has(line)) {
437
- seenInterEdges.add(line);
438
- lines.push(line);
439
- }
440
- }
441
- }
442
- }
443
- return lines.join('\n');
444
- }
445
- //# sourceMappingURL=flowChart.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowChart.js","sourceRoot":"","sources":["../src/flowChart.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * Report renderers (AD-4, ADAPTER).
3
- *
4
- * Turns the inert models from `@beehexa/hexasync-template-report-model` into Markdown and HTML. This is
5
- * an adapter rather than core for one reason that matters: it emits markup. Keeping it out of
6
- * core is what guarantees no core package can produce HTML (Story 1.2, AC 5).
7
- *
8
- * `renderMarkdown.ts` / `renderHtml.ts` were `mergeReport.ts` / `mergeReportHtml.ts` in the CLI.
9
- * Renamed on the way out because "merge report" described where they lived, not what they do.
10
- */
11
- export { renderReport, escHtml } from './renderMarkdown.js';
12
- export { renderReportHtml, esc } from './renderHtml.js';
13
- export { buildMermaid, flowEdges, looksLikeExpression, quotedKeys, type FlowEdge, } from './flowChart.js';
14
- export { collapseDiff } from './diffCollapse.js';
15
- export { renderValidationReport } from './renderValidation.js';
16
- export { renderValidationReportHtml } from './renderValidationHtml.js';
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,UAAU,EACV,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js DELETED
@@ -1,17 +0,0 @@
1
- /**
2
- * Report renderers (AD-4, ADAPTER).
3
- *
4
- * Turns the inert models from `@beehexa/hexasync-template-report-model` into Markdown and HTML. This is
5
- * an adapter rather than core for one reason that matters: it emits markup. Keeping it out of
6
- * core is what guarantees no core package can produce HTML (Story 1.2, AC 5).
7
- *
8
- * `renderMarkdown.ts` / `renderHtml.ts` were `mergeReport.ts` / `mergeReportHtml.ts` in the CLI.
9
- * Renamed on the way out because "merge report" described where they lived, not what they do.
10
- */
11
- export { renderReport, escHtml } from './renderMarkdown.js';
12
- export { renderReportHtml, esc } from './renderHtml.js';
13
- export { buildMermaid, flowEdges, looksLikeExpression, quotedKeys, } from './flowChart.js';
14
- export { collapseDiff } from './diffCollapse.js';
15
- export { renderValidationReport } from './renderValidation.js';
16
- export { renderValidationReportHtml } from './renderValidationHtml.js';
17
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACL,YAAY,EACZ,SAAS,EACT,mBAAmB,EACnB,UAAU,GAEX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC"}