@beehexa/hexasync-template-frontend-flow 2608.15.1 → 2608.20.31
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/dist/flow.d.ts +13 -0
- package/dist/flow.d.ts.map +1 -1
- package/dist/flow.js +18 -3
- package/dist/flow.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/liquid.d.ts +54 -0
- package/dist/liquid.d.ts.map +1 -0
- package/dist/liquid.js +75 -0
- package/dist/liquid.js.map +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +7 -2
- package/dist/render.js.map +1 -1
- package/dist/routes.d.ts +18 -1
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +33 -0
- package/dist/routes.js.map +1 -1
- package/dist/workflows.d.ts +2 -2
- package/dist/workflows.d.ts.map +1 -1
- package/dist/workflows.js.map +1 -1
- package/package.json +2 -2
package/dist/flow.d.ts
CHANGED
|
@@ -19,6 +19,19 @@ export interface LocateRequest {
|
|
|
19
19
|
readonly workflow: FrontendWorkflowKey;
|
|
20
20
|
readonly stepKey?: string;
|
|
21
21
|
readonly address: string;
|
|
22
|
+
/**
|
|
23
|
+
* For a SYNTHESISED node: the step that produced it, and the path that reaches it (Jazz, 2026-08-17).
|
|
24
|
+
*
|
|
25
|
+
* The same pair the worker package's `LocateRequest` carries, and for the same reason — see it for the full note.
|
|
26
|
+
* `path` is relative to the step (`['metadata','then']`, `['next','else','if']`) and its tail may be synthetic, so a
|
|
27
|
+
* locator resolves the longest AUTHORED prefix.
|
|
28
|
+
*
|
|
29
|
+
* Absent for a WORKFLOW-owned junction — the START terminal and the unresolved targets every route naming one
|
|
30
|
+
* converges on. Those belong to no step, so there is no step-relative path and nothing to point a caret at; the
|
|
31
|
+
* model already declines to claim an `owner` for them.
|
|
32
|
+
*/
|
|
33
|
+
readonly ownerStepKey?: string;
|
|
34
|
+
readonly path?: readonly string[];
|
|
22
35
|
}
|
|
23
36
|
/** One node in a frontend flow. */
|
|
24
37
|
export interface FrontendFlowNode extends NodeLocation {
|
package/dist/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAeA,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,aAAa,CAAC;AAErB,kHAAkH;AAClH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QACtE,QAAQ,CAAC,GAAG,EAAE;YAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;KACrE,CAAC;IACF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/flow.js
CHANGED
|
@@ -182,13 +182,28 @@ function oneWorkflow(workflow, raw, base, locate) {
|
|
|
182
182
|
nodes.push({
|
|
183
183
|
...shared,
|
|
184
184
|
address: own,
|
|
185
|
-
|
|
186
|
-
|
|
185
|
+
/**
|
|
186
|
+
* An `end` is a terminal and an `unknown` is a step-shaped box; neither branches.
|
|
187
|
+
*
|
|
188
|
+
* `'expression'` DOES: a `next:` template is a decision whose arms the reader can see, so it draws as a
|
|
189
|
+
* diamond like an authored `if` (2026-08-20, reported as *"the `next` MUST ALWAYS be a diamond if it is
|
|
190
|
+
* not a step key"*). Two kinds, one shape — the kind stays distinct so a consumer can tell an authored
|
|
191
|
+
* branch from a template without reading the label.
|
|
192
|
+
*/
|
|
193
|
+
decides: point.kind === 'if' || point.kind === 'expression',
|
|
187
194
|
label: point.label,
|
|
188
195
|
junction: point.kind,
|
|
189
196
|
// A workflow-owned junction has no owning STEP to point at, and claiming one would be false.
|
|
190
197
|
...(point.owner === '' ? {} : { owner }),
|
|
191
|
-
...(locate?.({
|
|
198
|
+
...(locate?.({
|
|
199
|
+
workflow,
|
|
200
|
+
address: own,
|
|
201
|
+
// Withheld for a workflow-owned junction, on the same grounds `owner` is: there is no step whose document path
|
|
202
|
+
// could resolve, and handing over `''` would ask the locator to look for a step named nothing.
|
|
203
|
+
...(point.owner === ''
|
|
204
|
+
? {}
|
|
205
|
+
: { ownerStepKey: point.owner, path: point.path }),
|
|
206
|
+
}) ?? {}),
|
|
192
207
|
});
|
|
193
208
|
}
|
|
194
209
|
const endAddress = (end) => end.kind === 'step'
|
package/dist/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,wBAAwB,GAGzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,GAInB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,UAAU,EACV,eAAe,EACf,WAAW,EACX,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,wBAAwB,GAGzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,kBAAkB,GAInB,MAAM,aAAa,CAAC;AAyFrB,gCAAgC;AAChC,SAAS,MAAM,CACb,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,IAAI,GAAG,GAA8B,CAAC;IAC5C;;;;;;;OAOG;IACH,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC7D,qHAAqH;IACrH,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,OAAO;QACL,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS;YAChC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE;YACnC,CAAC,CAAC,EAAE,CAAC;QACP,gGAAgG;QAChG,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD;;;WAGG;QACH,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAC1D,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE;YAC5B,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC3D,MAAM,IAAI,GAAG,WAAW,CAAC;QACvB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7D,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC;KAClC,CAAC,CAAC;IAEH,gGAAgG;IAChG,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CACrD,KAAK,CAAC,MAAM,CACV,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACnD,CAAC,CACF,CACF,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjB,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CACrE,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,WAAW,CAClB,QAA6B,EAC7B,GAAc,EACd,IAAY,EACZ,MAAmC;IAEnC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACpC;;;;;;;;;;;OAWG;IACH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,2FAA2F;IAC3F,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,MAAM,KAAK,GAAyC,EAAE,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,SAAS;QACjC,8GAA8G;QAC9G,iEAAiE;QACjE,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,QAAQ,GAAwD,EAAE,CAAC;IACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAW,CAAC;IAEnE,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,CAAC;QACrC;;;;;;;;;;;WAWG;QACH;;;;;;;;;;;;;;;;WAgBG;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,gBAAgB,GACpB,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC;YACpC,IAAI,CAAC,QAAQ,KAAK,IAAI;YACtB,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ;YACjC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,MAAM;YACT,OAAO,EAAE,GAAG;YACZ,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,IAAI,CAAC,GAAG;YACjB,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAC9B,QAAQ,EACR,wBAAwB,CAAC,QAAQ,CAAC,CACnC,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpC;;;;;;WAMG;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,GAAG,GAAG,WAAW,CAAC;YACtB,UAAU,CAAC,KAAK,CAAC;YACjB,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACpD,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,MAAM;YACT,OAAO,EAAE,GAAG;YACZ;;;;;;;eAOG;YACH,OAAO,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3D,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,6FAA6F;YAC7F,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACxC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACX,QAAQ;gBACR,OAAO,EAAE,GAAG;gBACZ,+GAA+G;gBAC/G,+FAA+F;gBAC/F,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;oBACpB,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;aACrD,CAAC,IAAI,EAAE,CAAC;SACV,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAY,EAAsB,EAAE,CACtD,GAAG,CAAC,IAAI,KAAK,MAAM;QACjB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;QACxB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS;QACrD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,EAAE;YACF,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,wBAAwB,CAAC,QAAQ,CAAC;QACzC,OAAO;QACP,OAAO;QACP,KAAK;QACL,KAAK;QACL,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,EAAE,qBAAqB,EAAE,aAAa,EAAE;YAC1C,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,4 +19,5 @@ export { CONNECTOR_WORKFLOW_KEYS, TEMPLATE_WORKFLOW_KEYS, FRONTEND_WORKFLOW_KEYS
|
|
|
19
19
|
export { frontendRouteGraph, branchArm, type FrontendStep, type FrontendRouteGraph, type Junction, type JunctionKind, type GraphEdge, type EdgeEnd, } from './routes.js';
|
|
20
20
|
export { frontendFlow, type FrontendFlow, type FrontendFlowInput, type FrontendWorkflowFlow, type FrontendFlowNode, type FrontendFlowEdge, type NodeLocation, type LocateRequest, } from './flow.js';
|
|
21
21
|
export { renderMermaid, renderMarkdown, renderDocumentMarkdown, } from './render.js';
|
|
22
|
+
export { looksLikeTemplate, templateTargets } from './liquid.js';
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EACT,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,EACT,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,OAAO,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,4 +19,5 @@ export { CONNECTOR_WORKFLOW_KEYS, TEMPLATE_WORKFLOW_KEYS, FRONTEND_WORKFLOW_KEYS
|
|
|
19
19
|
export { frontendRouteGraph, branchArm, } from './routes.js';
|
|
20
20
|
export { frontendFlow, } from './flow.js';
|
|
21
21
|
export { renderMermaid, renderMarkdown, renderDocumentMarkdown, } from './render.js';
|
|
22
|
+
export { looksLikeTemplate, templateTargets } from './liquid.js';
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,GAKV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,SAAS,GAOV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,GAQb,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,GAKV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,SAAS,GAOV,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,YAAY,GAQb,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/liquid.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading the step keys out of a Liquid `next:` template — the frontend's answer to the worker's Scriban one.
|
|
3
|
+
*
|
|
4
|
+
* ### What was undrawn, and it was recorded before it was reported
|
|
5
|
+
*
|
|
6
|
+
* `routes.ts` carried this note: *"**23 real `next` values** are Liquid templates … Both the reference and this
|
|
7
|
+
* model render each as ONE unresolved node labelled with the whole template, so ~23 genuinely reachable routes
|
|
8
|
+
* are undrawn on both sides. That is faithful, and it is a real gap."* It was deferred because *"resolving
|
|
9
|
+
* them needs its own reader and its own decision about what to draw when a branch is undecidable
|
|
10
|
+
* statically."*
|
|
11
|
+
*
|
|
12
|
+
* This is the reader. The decision came from the person reading the diagrams: *"this is actually kind of
|
|
13
|
+
* liquid syntax which has `{% ... %}` inside it, this must works similar to how scriban syntax works. and the
|
|
14
|
+
* `next` MUST ALWAYS be a diamond if it is not a step key."*
|
|
15
|
+
*
|
|
16
|
+
* ### Why splitting on the tags is the whole algorithm
|
|
17
|
+
*
|
|
18
|
+
* Liquid emits the literal text BETWEEN its tags. So in
|
|
19
|
+
* `{% assign codeSize = … %}{% if codeSize > 0 %}CHECK_PROFILE_STATUS{% else %}FILL_STORE_URL{% endif %}`
|
|
20
|
+
* the two things this template can ever produce are `CHECK_PROFILE_STATUS` and `FILL_STORE_URL` — the literal
|
|
21
|
+
* chunks — and a `next` is used as a step key verbatim. Nothing about the CONDITIONS needs understanding to
|
|
22
|
+
* know the set of possible targets, which is exactly why this does not need a Liquid engine.
|
|
23
|
+
*
|
|
24
|
+
* That is the difference from the worker: Scriban names its targets `"QUOTED"` inside the expression, so the
|
|
25
|
+
* worker reads quoted strings; Liquid names them bare, in the emitted text. Both forms are accepted here,
|
|
26
|
+
* because a `"QUOTED"` chunk costs one line and a wrong guess about which dialect a document uses costs a
|
|
27
|
+
* whole diagram.
|
|
28
|
+
*
|
|
29
|
+
* ### Measured against the corpus, 2026-08-20
|
|
30
|
+
*
|
|
31
|
+
* 20 Liquid `next` values across `LightspeedXSeries`, `SapoOmniV3PublicApp`, `ShopifyPublicApp`,
|
|
32
|
+
* `ShoplinePublicApp`, `TikTokShopGatewayV3` and `Zalo`. Every one yields 2 or 3 chunks and every chunk is a
|
|
33
|
+
* step key declared in the same workflow — see `liquid.spec.ts`, which walks the real files rather than
|
|
34
|
+
* asserting a fixture.
|
|
35
|
+
*/
|
|
36
|
+
/**
|
|
37
|
+
* Is this route text a TEMPLATE rather than a step key?
|
|
38
|
+
*
|
|
39
|
+
* Only a real tag counts. A bare unknown target (`GONE`, a typo) is not a template and must not become one:
|
|
40
|
+
* it is a broken pointer, and drawing a decision there would claim a choice the document does not make.
|
|
41
|
+
*/
|
|
42
|
+
export declare function looksLikeTemplate(text: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Every step key a template can emit, in the order it could emit them, without duplicates.
|
|
45
|
+
*
|
|
46
|
+
* Order matters for the diagram: the arms come out in authored order, so the arrow a reader traces first is
|
|
47
|
+
* the branch written first.
|
|
48
|
+
*
|
|
49
|
+
* A chunk that is not shaped like a step key is DROPPED rather than guessed at — `true`/`false` from a
|
|
50
|
+
* condition template, a fragment of prose, a chunk with spaces. The caller drops anything that is not a
|
|
51
|
+
* declared step on top of that, so a plausible-looking chunk still cannot invent a node.
|
|
52
|
+
*/
|
|
53
|
+
export declare function templateTargets(text: string): readonly string[];
|
|
54
|
+
//# sourceMappingURL=liquid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquid.d.ts","sourceRoot":"","sources":["../src/liquid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAQH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAa/D"}
|
package/dist/liquid.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reading the step keys out of a Liquid `next:` template — the frontend's answer to the worker's Scriban one.
|
|
3
|
+
*
|
|
4
|
+
* ### What was undrawn, and it was recorded before it was reported
|
|
5
|
+
*
|
|
6
|
+
* `routes.ts` carried this note: *"**23 real `next` values** are Liquid templates … Both the reference and this
|
|
7
|
+
* model render each as ONE unresolved node labelled with the whole template, so ~23 genuinely reachable routes
|
|
8
|
+
* are undrawn on both sides. That is faithful, and it is a real gap."* It was deferred because *"resolving
|
|
9
|
+
* them needs its own reader and its own decision about what to draw when a branch is undecidable
|
|
10
|
+
* statically."*
|
|
11
|
+
*
|
|
12
|
+
* This is the reader. The decision came from the person reading the diagrams: *"this is actually kind of
|
|
13
|
+
* liquid syntax which has `{% ... %}` inside it, this must works similar to how scriban syntax works. and the
|
|
14
|
+
* `next` MUST ALWAYS be a diamond if it is not a step key."*
|
|
15
|
+
*
|
|
16
|
+
* ### Why splitting on the tags is the whole algorithm
|
|
17
|
+
*
|
|
18
|
+
* Liquid emits the literal text BETWEEN its tags. So in
|
|
19
|
+
* `{% assign codeSize = … %}{% if codeSize > 0 %}CHECK_PROFILE_STATUS{% else %}FILL_STORE_URL{% endif %}`
|
|
20
|
+
* the two things this template can ever produce are `CHECK_PROFILE_STATUS` and `FILL_STORE_URL` — the literal
|
|
21
|
+
* chunks — and a `next` is used as a step key verbatim. Nothing about the CONDITIONS needs understanding to
|
|
22
|
+
* know the set of possible targets, which is exactly why this does not need a Liquid engine.
|
|
23
|
+
*
|
|
24
|
+
* That is the difference from the worker: Scriban names its targets `"QUOTED"` inside the expression, so the
|
|
25
|
+
* worker reads quoted strings; Liquid names them bare, in the emitted text. Both forms are accepted here,
|
|
26
|
+
* because a `"QUOTED"` chunk costs one line and a wrong guess about which dialect a document uses costs a
|
|
27
|
+
* whole diagram.
|
|
28
|
+
*
|
|
29
|
+
* ### Measured against the corpus, 2026-08-20
|
|
30
|
+
*
|
|
31
|
+
* 20 Liquid `next` values across `LightspeedXSeries`, `SapoOmniV3PublicApp`, `ShopifyPublicApp`,
|
|
32
|
+
* `ShoplinePublicApp`, `TikTokShopGatewayV3` and `Zalo`. Every one yields 2 or 3 chunks and every chunk is a
|
|
33
|
+
* step key declared in the same workflow — see `liquid.spec.ts`, which walks the real files rather than
|
|
34
|
+
* asserting a fixture.
|
|
35
|
+
*/
|
|
36
|
+
/** Both tag forms, so a document written in either dialect reads correctly. */
|
|
37
|
+
const TAGS = /\{%[\s\S]*?%\}|\{\{[\s\S]*?\}\}/g;
|
|
38
|
+
/** A step key: what `key:` accepts, and what a `next` is compared against. */
|
|
39
|
+
const STEP_KEY = /^[A-Za-z0-9_]+$/;
|
|
40
|
+
/**
|
|
41
|
+
* Is this route text a TEMPLATE rather than a step key?
|
|
42
|
+
*
|
|
43
|
+
* Only a real tag counts. A bare unknown target (`GONE`, a typo) is not a template and must not become one:
|
|
44
|
+
* it is a broken pointer, and drawing a decision there would claim a choice the document does not make.
|
|
45
|
+
*/
|
|
46
|
+
export function looksLikeTemplate(text) {
|
|
47
|
+
return /\{%[\s\S]*?%\}/.test(text) || /\{\{[\s\S]*?\}\}/.test(text);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Every step key a template can emit, in the order it could emit them, without duplicates.
|
|
51
|
+
*
|
|
52
|
+
* Order matters for the diagram: the arms come out in authored order, so the arrow a reader traces first is
|
|
53
|
+
* the branch written first.
|
|
54
|
+
*
|
|
55
|
+
* A chunk that is not shaped like a step key is DROPPED rather than guessed at — `true`/`false` from a
|
|
56
|
+
* condition template, a fragment of prose, a chunk with spaces. The caller drops anything that is not a
|
|
57
|
+
* declared step on top of that, so a plausible-looking chunk still cannot invent a node.
|
|
58
|
+
*/
|
|
59
|
+
export function templateTargets(text) {
|
|
60
|
+
const out = [];
|
|
61
|
+
const add = (candidate) => {
|
|
62
|
+
const value = candidate.trim();
|
|
63
|
+
if (value === '' || !STEP_KEY.test(value) || out.includes(value))
|
|
64
|
+
return;
|
|
65
|
+
out.push(value);
|
|
66
|
+
};
|
|
67
|
+
// The literal chunks — what Liquid actually emits.
|
|
68
|
+
for (const chunk of text.split(TAGS))
|
|
69
|
+
add(chunk);
|
|
70
|
+
// And any `"QUOTED"` key inside a tag, which is how the Scriban dialect names one.
|
|
71
|
+
for (const match of text.matchAll(/"([A-Za-z0-9_]+)"/g))
|
|
72
|
+
add(match[1]);
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=liquid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liquid.js","sourceRoot":"","sources":["../src/liquid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,+EAA+E;AAC/E,MAAM,IAAI,GAAG,kCAAkC,CAAC;AAEhD,8EAA8E;AAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,SAAiB,EAAQ,EAAE;QACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,KAAK,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QACzE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,mDAAmD;IACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACjD,mFAAmF;IACnF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACxE,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAiCpE,4GAA4G;AAC5G,wBAAgB,aAAa,CAC3B,GAAG,EAAE,oBAAoB,EACzB,IAAI,GAAE,aAAkB,GACvB,MAAM,CAOR;AAED,uGAAuG;AACvG,wBAAgB,cAAc,CAC5B,GAAG,EAAE,oBAAoB,EACzB,IAAI,GAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE,aAAa,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,MAAM,CAWR"}
|
package/dist/render.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* package both may import (AD-21). This file says what a FRONTEND node looks like — and the differences from the worker
|
|
6
6
|
* side are real, not incidental.
|
|
7
7
|
*/
|
|
8
|
-
import { renderFlowMermaid, renderFlowMarkdown, } from '@beehexa/hexasync-template-model';
|
|
8
|
+
import { renderFlowMermaid, composeNodeLabel, renderFlowMarkdown, } from '@beehexa/hexasync-template-model';
|
|
9
9
|
/**
|
|
10
10
|
* A node's label.
|
|
11
11
|
*
|
|
@@ -14,7 +14,12 @@ import { renderFlowMermaid, renderFlowMarkdown, } from '@beehexa/hexasync-templa
|
|
|
14
14
|
* worker side has no equivalent: a worker step's identity in that corpus IS its key.
|
|
15
15
|
*/
|
|
16
16
|
function labelOf(node) {
|
|
17
|
-
|
|
17
|
+
// COMPOSED, not a fallback chain (2026-08-20). This was
|
|
18
|
+
// `node.label ?? node.name ?? node.stepKey ?? node.address`, so a step with a name drew its name and
|
|
19
|
+
// dropped the key and the type — both already on the node. A reader beside the YAML could not tell which
|
|
20
|
+
// `key:` a box was, and `next:`/`outputs:` reference steps BY KEY. One composer for both runtimes, in
|
|
21
|
+
// `template-model`, so the two diagrams cannot start labelling differently.
|
|
22
|
+
return composeNodeLabel(node);
|
|
18
23
|
}
|
|
19
24
|
function groupOf(one) {
|
|
20
25
|
return {
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAGnB,MAAM,kCAAkC,CAAC;AAG1C;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,IAA2C;IAC1D,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,kCAAkC,CAAC;AAG1C;;;;;;GAMG;AACH,SAAS,OAAO,CAAC,IAA2C;IAC1D,wDAAwD;IACxD,qGAAqG;IACrG,yGAAyG;IACzG,sGAAsG;IACtG,4EAA4E;IAC5E,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,OAAO,CAAC,GAAyB;IACxC,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,OAAO;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,+GAA+G;YAC/G,kEAAkE;YAClE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK;SAC/D,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,aAAa,CAC3B,GAAyB,EACzB,IAAI,GAAkB,EAAE;IAExB,oHAAoH;IACpH,0BAA0B;IAC1B,OAAO,iBAAiB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE;QAClD,UAAU,EAAE,KAAK;QACjB,GAAG,IAAI;KACR,CAAC,CAAC;AACL,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,cAAc,CAC5B,GAAyB,EACzB,IAAI,GAAgD,EAAE;IAEtD,OAAO,kBAAkB,CACvB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,EACvB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EACd,GAAG,CAAC,KAAK,EACT;QACE,UAAU,EAAE,KAAK;QACjB,GAAG,IAAI;KACR,CACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAkB,EAClB,IAAI,GAAgD,EAAE;IAEtD;;;;;OAKG;IACH,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,OAAO,IAAI,CAAC,KAAK,IAAI,WAAW,qDAAqD,CAAC;IAC/F,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC"}
|
package/dist/routes.d.ts
CHANGED
|
@@ -54,6 +54,14 @@ export interface FrontendStep {
|
|
|
54
54
|
readonly metadata?: unknown;
|
|
55
55
|
/** The cancel route. */
|
|
56
56
|
readonly onCancelled?: unknown;
|
|
57
|
+
/**
|
|
58
|
+
* ⛔ `errorHandlers` is NOT here, and that absence is a decision — see the note below on dead properties.
|
|
59
|
+
*
|
|
60
|
+
* 3 real steps declare one (Zalo, TikTokShopGatewayV3, LightspeedXSeries) and NO implementation reads it:
|
|
61
|
+
* not the dashboard engine, not `core.api`, not the CLI, not the shipped schemas. Drawing its arms would
|
|
62
|
+
* invent routes the runtime never takes, which is what NFR-1 forbids and what this module's own note
|
|
63
|
+
* records having got wrong once before.
|
|
64
|
+
*/
|
|
57
65
|
/**
|
|
58
66
|
* An ENTRY point. `true` or the STRING `'true'` — the reference's `isTruthyFlag` accepts both, and 3 real
|
|
59
67
|
* declarations use the string form.
|
|
@@ -61,7 +69,16 @@ export interface FrontendStep {
|
|
|
61
69
|
readonly root?: unknown;
|
|
62
70
|
}
|
|
63
71
|
/** What a synthesised node is. */
|
|
64
|
-
export type JunctionKind = 'if' | 'unknown' | 'end' | 'start'
|
|
72
|
+
export type JunctionKind = 'if' | 'unknown' | 'end' | 'start'
|
|
73
|
+
/**
|
|
74
|
+
* A `next:` that is a TEMPLATE rather than a step key — drawn as a diamond (2026-08-20).
|
|
75
|
+
*
|
|
76
|
+
* Its own kind rather than reusing `'if'`, because the two are different facts about the document: an `'if'`
|
|
77
|
+
* junction comes from an authored `then`/`else` branch, and this comes from a template whose branches the
|
|
78
|
+
* reader can see but a static view cannot resolve. Both DECIDE, so both draw as a diamond — see
|
|
79
|
+
* `flow.ts`'s `decides`. The kind is what lets a consumer tell them apart without parsing the label.
|
|
80
|
+
*/
|
|
81
|
+
| 'expression';
|
|
65
82
|
/** A node the document does not declare. `path` is relative to the owning step. */
|
|
66
83
|
export interface Junction {
|
|
67
84
|
readonly path: readonly string[];
|
package/dist/routes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0GAA0G;IAC1G,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEH,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,0GAA0G;IAC1G,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,kCAAkC;AAClC,MAAM,MAAM,YAAY,GACpB,IAAI,GACJ,SAAS,GACT,KAAK,GACL,OAAO;AACT;;;;;;;GAOG;GACD,YAAY,CAAC;AAEjB,mFAAmF;AACnF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC/C;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC,CAAC;AAEN,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CACtC;AAuCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,SAAS,EAAE,SAAS,GAAG,QAAQ,GAC9B,OAAO,CAIT;AAYD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,YAAY,EAAE;AAC9B,uFAAuF;AACvF,UAAU,SAAU,GACnB,kBAAkB,CAkSpB"}
|
package/dist/routes.js
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
* its own decision about what to draw when a branch is undecidable statically. Deferred, with the premise corrected
|
|
44
44
|
* so nobody re-derives the false one.
|
|
45
45
|
*/
|
|
46
|
+
import { looksLikeTemplate, templateTargets } from './liquid.js';
|
|
46
47
|
const stepEnd = (key) => ({ kind: 'step', key });
|
|
47
48
|
/**
|
|
48
49
|
* A short, stable digest of an unresolved target — used as its ADDRESS segment instead of the target text.
|
|
@@ -240,6 +241,38 @@ startLabel = 'START') {
|
|
|
240
241
|
edges.push({ from, to: stepEnd(target), ...labelled });
|
|
241
242
|
continue;
|
|
242
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* A TEMPLATE names its targets, so it is a DIAMOND with one arrow per target (2026-08-20).
|
|
246
|
+
*
|
|
247
|
+
* Reported: *"this is actually kind of liquid syntax which has `{% … %}` inside it, this must works
|
|
248
|
+
* similar to how scriban syntax works. and the `next` MUST ALWAYS be a diamond if it is not a step
|
|
249
|
+
* key … currently the node is not connected to the next which is not correct."*
|
|
250
|
+
*
|
|
251
|
+
* Right on both counts, and the gap was already written down in this module's own note — 20 real
|
|
252
|
+
* `next` templates across six connectors drew as one unresolved BOX with no outgoing edges, so every
|
|
253
|
+
* route they name was undrawn. `liquid.ts` reads the targets; this draws them.
|
|
254
|
+
*
|
|
255
|
+
* Owned by the STEP, not the workflow, and NOT converged by target text — unlike the ghost below. A
|
|
256
|
+
* decision belongs to the step that makes it, so two steps carrying the same template get a diamond
|
|
257
|
+
* each. That is the worker's shape for the same situation (`routeGraph.ts`, the `expression` branch)
|
|
258
|
+
* and the reason this is `[...path, 'expression']` there too.
|
|
259
|
+
*
|
|
260
|
+
* The arrows are UNLABELLED, exactly as the worker draws them: which branch it takes is a run-time
|
|
261
|
+
* fact, and labelling one `YES` would assert an order the template does not promise.
|
|
262
|
+
*
|
|
263
|
+
* A template that resolves NOTHING still draws its diamond. It is a decision either way, and a
|
|
264
|
+
* diamond with no exits says "the flow branches here and I cannot tell where it goes" — which is
|
|
265
|
+
* true, and is what the reader asked for over a box that says nothing at all.
|
|
266
|
+
*/
|
|
267
|
+
if (looksLikeTemplate(target)) {
|
|
268
|
+
const point = junction(owner, [...path, 'expression'], 'expression', target);
|
|
269
|
+
edges.push({ from, to: point, ...labelled });
|
|
270
|
+
for (const reachable of templateTargets(target)) {
|
|
271
|
+
if (known.has(reachable))
|
|
272
|
+
edges.push({ from: point, to: stepEnd(reachable) });
|
|
273
|
+
}
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
243
276
|
/**
|
|
244
277
|
* An unresolved target is a NODE, and routes naming the SAME target CONVERGE on it.
|
|
245
278
|
*
|
package/dist/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/workflows.d.ts
CHANGED
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
* is exactly the invention NFR-1 forbids.
|
|
23
23
|
*/
|
|
24
24
|
/** The five workflows a CONNECTOR DEFINITION may declare, in the order the reference implementation lists them. */
|
|
25
|
-
export declare const CONNECTOR_WORKFLOW_KEYS: readonly [
|
|
25
|
+
export declare const CONNECTOR_WORKFLOW_KEYS: readonly ['appRegistrationSteps', 'authorizationSteps', 'authorizationCallbackSteps', 'installStandaloneCallbackSteps', 'setupSteps'];
|
|
26
26
|
/** The one a TEMPLATE declares. Separate because it lives on a different document. */
|
|
27
|
-
export declare const TEMPLATE_WORKFLOW_KEYS: readonly [
|
|
27
|
+
export declare const TEMPLATE_WORKFLOW_KEYS: readonly ['creationSteps'];
|
|
28
28
|
export type ConnectorWorkflowKey = (typeof CONNECTOR_WORKFLOW_KEYS)[number];
|
|
29
29
|
export type TemplateWorkflowKey = (typeof TEMPLATE_WORKFLOW_KEYS)[number];
|
|
30
30
|
export type FrontendWorkflowKey = ConnectorWorkflowKey | TemplateWorkflowKey;
|
package/dist/workflows.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,mHAAmH;AACnH,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,mHAAmH;AACnH,eAAO,MAAM,uBAAuB,YAClC,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,EAC5B,gCAAgC,EAChC,YAAY,CACJ,CAAC;AAEX,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,YAAI,eAAe,CAAU,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAE7E,eAAO,MAAM,sBAAsB,EAAE,SAAS,mBAAmB,EAGhE,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAC7C,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAQpC,CAAC;AAEF,+GAA+G;AAC/G,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvD,wBAAgB,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,eAAe,CAInE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AACjC;;;GAGG;AACH,aAAa,GAAE,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,KAAK,MAChC,GACb,SAAS,mBAAmB,EAAE,CAKhC"}
|
package/dist/workflows.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,mHAAmH;AACnH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,sBAAsB;IACtB,oBAAoB;IACpB,4BAA4B;IAC5B,gCAAgC;IAChC,YAAY;CACJ,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAe,CAAU,CAAC;AAMjE,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,GAAG,uBAAuB;IAC1B,GAAG,sBAAsB;CAC1B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAEjC;IACF,oBAAoB,EAAE,kBAAkB;IACxC,kBAAkB,EAAE,eAAe;IACnC,0BAA0B,EAAE,wBAAwB;IACpD,8BAA8B,EAAE,6BAA6B;IAC7D,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,kBAAkB;CAClC,CAAC;AAKF,MAAM,UAAU,SAAS,CAAC,GAAwB;IAChD,OAAQ,uBAA6C,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAiC;AACjC;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,mHAAmH;AACnH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,sBAAsB;IACtB,oBAAoB;IACpB,4BAA4B;IAC5B,gCAAgC;IAChC,YAAY;CACJ,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,eAAe,CAAU,CAAC;AAMjE,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,GAAG,uBAAuB;IAC1B,GAAG,sBAAsB;CAC1B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAEjC;IACF,oBAAoB,EAAE,kBAAkB;IACxC,kBAAkB,EAAE,eAAe;IACnC,0BAA0B,EAAE,wBAAwB;IACpD,8BAA8B,EAAE,6BAA6B;IAC7D,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,kBAAkB;CAClC,CAAC;AAKF,MAAM,UAAU,SAAS,CAAC,GAAwB;IAChD,OAAQ,uBAA6C,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjE,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,UAAU,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAiC;AACjC;;;GAGG;AACH,aAAa,GAA0C,CAAC,KAAK,EAAE,EAAE,CAC/D,KAAK,CAAC,MAAM;IAEd,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beehexa/hexasync-template-frontend-flow",
|
|
3
|
-
"version": "2608.
|
|
3
|
+
"version": "2608.20.31",
|
|
4
4
|
"description": "The flow model for a frontend onboarding workflow — creationSteps and the five connector workflows.",
|
|
5
5
|
"license": "SEE LICENSE IN ../../LICENSE",
|
|
6
6
|
"type": "module",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"build": "tsc -p tsconfig.build.json"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@beehexa/hexasync-template-model": "2608.
|
|
23
|
+
"@beehexa/hexasync-template-model": "2608.20.31"
|
|
24
24
|
},
|
|
25
25
|
"hexasync": {
|
|
26
26
|
"layer": "core"
|