yaml-flow 3.1.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -20
- package/board-live-cards-cli.js +37 -0
- package/browser/card-compute.js +132 -431
- package/browser/live-cards.js +41 -27
- package/browser/live-cards.schema.json +59 -77
- package/dist/card-compute/index.cjs +135 -415
- package/dist/card-compute/index.cjs.map +1 -1
- package/dist/card-compute/index.d.cts +52 -49
- package/dist/card-compute/index.d.ts +52 -49
- package/dist/card-compute/index.js +134 -415
- package/dist/card-compute/index.js.map +1 -1
- package/dist/cli/board-live-cards-cli.cjs +2379 -0
- package/dist/cli/board-live-cards-cli.cjs.map +1 -0
- package/dist/cli/board-live-cards-cli.d.cts +213 -0
- package/dist/cli/board-live-cards-cli.d.ts +213 -0
- package/dist/cli/board-live-cards-cli.js +2332 -0
- package/dist/cli/board-live-cards-cli.js.map +1 -0
- package/dist/{constants-B2zqu10b.d.ts → constants-DuzE5n03.d.ts} +2 -2
- package/dist/{constants-DJZU1pwJ.d.cts → constants-ozjf1Ejw.d.cts} +2 -2
- package/dist/continuous-event-graph/index.cjs +201 -448
- package/dist/continuous-event-graph/index.cjs.map +1 -1
- package/dist/continuous-event-graph/index.d.cts +16 -340
- package/dist/continuous-event-graph/index.d.ts +16 -340
- package/dist/continuous-event-graph/index.js +198 -448
- package/dist/continuous-event-graph/index.js.map +1 -1
- package/dist/event-graph/index.cjs +4 -4
- package/dist/event-graph/index.cjs.map +1 -1
- package/dist/event-graph/index.d.cts +5 -5
- package/dist/event-graph/index.d.ts +5 -5
- package/dist/event-graph/index.js +4 -4
- package/dist/event-graph/index.js.map +1 -1
- package/dist/index.cjs +278 -533
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +8 -7
- package/dist/index.d.ts +8 -7
- package/dist/index.js +278 -533
- package/dist/index.js.map +1 -1
- package/dist/inference/index.cjs +138 -19
- package/dist/inference/index.cjs.map +1 -1
- package/dist/inference/index.d.cts +2 -2
- package/dist/inference/index.d.ts +2 -2
- package/dist/inference/index.js +138 -19
- package/dist/inference/index.js.map +1 -1
- package/dist/journal-BJDjWb5Q.d.cts +343 -0
- package/dist/journal-B_2JnBMF.d.ts +343 -0
- package/dist/step-machine/index.cjs +18 -1
- package/dist/step-machine/index.cjs.map +1 -1
- package/dist/step-machine/index.d.cts +2 -2
- package/dist/step-machine/index.d.ts +2 -2
- package/dist/step-machine/index.js +18 -1
- package/dist/step-machine/index.js.map +1 -1
- package/dist/stores/file.d.cts +1 -1
- package/dist/stores/file.d.ts +1 -1
- package/dist/stores/index.d.cts +1 -1
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/localStorage.d.cts +1 -1
- package/dist/stores/localStorage.d.ts +1 -1
- package/dist/stores/memory.d.cts +1 -1
- package/dist/stores/memory.d.ts +1 -1
- package/dist/{types-BwvgvlOO.d.cts → types-BzLD8bjb.d.cts} +1 -1
- package/dist/{types-ClRA8hzC.d.ts → types-C2eJ7DAV.d.ts} +1 -1
- package/dist/{types-DEj7OakX.d.cts → types-CMFSIjpc.d.cts} +39 -4
- package/dist/{types-DEj7OakX.d.ts → types-CMFSIjpc.d.ts} +39 -4
- package/dist/{types-FZ_eyErS.d.cts → types-ycun84cq.d.cts} +1 -0
- package/dist/{types-FZ_eyErS.d.ts → types-ycun84cq.d.ts} +1 -0
- package/dist/{validate-DEZ2Ymdb.d.ts → validate-DJQTQ6bP.d.ts} +1 -1
- package/dist/{validate-DqKTZg_o.d.cts → validate-ke92Cleg.d.cts} +1 -1
- package/examples/browser/boards/portfolio-tracker/cards/holdings-table.json +22 -0
- package/examples/browser/boards/portfolio-tracker/cards/portfolio-form.json +16 -0
- package/examples/browser/boards/portfolio-tracker/cards/portfolio-value.json +15 -0
- package/examples/browser/boards/portfolio-tracker/cards/price-fetch.json +15 -0
- package/examples/browser/boards/portfolio-tracker/fetch-prices.js +43 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.bat +7 -0
- package/examples/browser/boards/portfolio-tracker/portfolio-tracker.js +189 -0
- package/examples/browser/livecards-browser/index.html +688 -0
- package/examples/browser/{index.html → step-machine-browser/index.html} +53 -53
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/holdings-table.json +22 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +43 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +15 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/cards/price-fetch.json +15 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/fetch-prices.js +48 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +58 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +27 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +25 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +29 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +27 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/status-cli.js +25 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +37 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +53 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +35 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +227 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +38 -0
- package/examples/cli/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +29 -0
- package/examples/cli/step-machine-demo/jsonata-init-board-cli.js +36 -0
- package/examples/cli/step-machine-demo/jsonata-init-board.flow.yaml +30 -0
- package/examples/cli/step-machine-demo/one-step-cli-only.flow.yaml +19 -0
- package/examples/cli/step-machine-demo/step-cli-echo-y.js +15 -0
- package/examples/cli/step-machine-demo/step2-double-cli.js +39 -0
- package/examples/cli/step-machine-demo/two-step-math-handlers.js +32 -0
- package/examples/cli/step-machine-demo/two-step-math.flow.yaml +31 -0
- package/examples/cli/step-machine-demo/two-step-mixed-handlers.js +24 -0
- package/examples/cli/step-machine-demo/two-step-mixed.flow.yaml +35 -0
- package/examples/index.html +792 -0
- package/examples/{batch → npm-libs/batch}/batch-step-machine.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/live-cards-board.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/live-portfolio-dashboard.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/portfolio-tracker.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/reactive-monitoring.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/reactive-pipeline.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/soc-incident-board.ts +1 -1
- package/examples/{continuous-event-graph → npm-libs/continuous-event-graph}/stock-dashboard.ts +1 -1
- package/examples/{event-graph → npm-libs/event-graph}/ci-cd-pipeline.ts +1 -1
- package/examples/{event-graph → npm-libs/event-graph}/executor-diamond.ts +1 -1
- package/examples/{event-graph → npm-libs/event-graph}/executor-pipeline.ts +1 -1
- package/examples/{event-graph → npm-libs/event-graph}/research-pipeline.ts +1 -1
- package/examples/{graph-of-graphs → npm-libs/graph-of-graphs}/multi-stage-etl.ts +1 -1
- package/examples/{graph-of-graphs → npm-libs/graph-of-graphs}/url-processing-pipeline.ts +1 -1
- package/examples/{inference → npm-libs/inference}/azure-deployment.ts +1 -1
- package/examples/{inference → npm-libs/inference}/copilot-cli.ts +1 -1
- package/examples/{inference → npm-libs/inference}/data-pipeline.ts +1 -1
- package/examples/{inference → npm-libs/inference}/pluggable-adapters.ts +1 -1
- package/examples/{node → npm-libs/node}/ai-conversation.ts +1 -1
- package/examples/{node → npm-libs/node}/simple-greeting.ts +2 -2
- package/examples/step-machine-cli/portfolio-tracker/cards/holdings-table.json +22 -0
- package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-form.json +43 -0
- package/examples/step-machine-cli/portfolio-tracker/cards/portfolio-value.json +15 -0
- package/examples/step-machine-cli/portfolio-tracker/cards/price-fetch.json +15 -0
- package/examples/step-machine-cli/portfolio-tracker/fetch-prices.js +48 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/_board-cli.js +58 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/add-cards-cli.js +27 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/init-board-cli.js +25 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/reset-board-dir-cli.js +29 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/retrigger-cli.js +27 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/status-cli.js +25 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/update-holdings-cli.js +37 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/wait-completed-cli.js +53 -0
- package/examples/step-machine-cli/portfolio-tracker/handlers/write-prices-cli.js +35 -0
- package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.flow.yaml +227 -0
- package/examples/step-machine-cli/portfolio-tracker/portfolio-tracker.input.json +38 -0
- package/examples/step-machine-cli/portfolio-tracker/run-portfolio-tracker.bat +29 -0
- package/package.json +12 -1
- package/schema/board-status.schema.json +118 -0
- package/schema/flow.schema.json +5 -0
- package/schema/live-cards.schema.json +59 -77
- package/step-machine-cli.js +674 -0
- /package/examples/{flows → npm-libs/flows}/ai-conversation.yaml +0 -0
- /package/examples/{flows → npm-libs/flows}/order-processing.yaml +0 -0
- /package/examples/{flows → npm-libs/flows}/simple-greeting.yaml +0 -0
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
declare function validateLiveCardSchema(node: unknown): ValidationResult;
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* card-compute —
|
|
25
|
+
* card-compute — JSONata-powered compute engine for LiveCards nodes.
|
|
26
26
|
*
|
|
27
27
|
* Isomorphic: works in browser, Node.js, and bundlers.
|
|
28
|
-
* No DOM dependency.
|
|
28
|
+
* No DOM dependency. Compute expressions are JSONata strings.
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
31
|
* ```typescript
|
|
@@ -34,75 +34,78 @@ declare function validateLiveCardSchema(node: unknown): ValidationResult;
|
|
|
34
34
|
* const node = {
|
|
35
35
|
* id: 'sales',
|
|
36
36
|
* state: { data: [{ revenue: 100 }, { revenue: 200 }] },
|
|
37
|
-
* compute:
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
37
|
+
* compute: [
|
|
38
|
+
* { bindTo: 'total', expr: '$sum(state.data.revenue)' },
|
|
39
|
+
* { bindTo: 'avg', expr: '$average(state.data.revenue)' },
|
|
40
|
+
* ],
|
|
41
41
|
* };
|
|
42
|
-
* CardCompute.run(node);
|
|
43
|
-
* // node.
|
|
44
|
-
* // node.
|
|
42
|
+
* await CardCompute.run(node);
|
|
43
|
+
* // node.computed_values.total === 300
|
|
44
|
+
* // node.computed_values.avg === 150
|
|
45
45
|
* ```
|
|
46
|
+
*
|
|
47
|
+
* Expressions are evaluated against { state, requires, computed_values }.
|
|
48
|
+
* computed_values is ephemeral — never persisted to disk.
|
|
46
49
|
*/
|
|
47
|
-
/** A
|
|
48
|
-
interface
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
cond?: ComputeExpr;
|
|
55
|
-
then?: unknown;
|
|
56
|
-
else?: unknown;
|
|
57
|
-
format?: string;
|
|
58
|
-
decimals?: number;
|
|
59
|
-
separator?: string;
|
|
60
|
-
direction?: 'asc' | 'desc';
|
|
61
|
-
start?: number;
|
|
62
|
-
end?: number;
|
|
63
|
-
depth?: number;
|
|
64
|
-
path?: string;
|
|
65
|
-
value?: unknown;
|
|
50
|
+
/** A source definition: cli writes to outputFile; bindTo names the sources.* key in compute context. */
|
|
51
|
+
interface ComputeSource {
|
|
52
|
+
bindTo: string;
|
|
53
|
+
outputFile?: string;
|
|
54
|
+
cli?: string;
|
|
55
|
+
script?: string;
|
|
56
|
+
optionalForCompletionGating?: boolean;
|
|
66
57
|
[key: string]: unknown;
|
|
67
58
|
}
|
|
59
|
+
/** Options for CardCompute.run() */
|
|
60
|
+
interface RunOptions {
|
|
61
|
+
/** Pre-loaded sources data map (keyed by bindTo). Use in browser or when caller loads files. */
|
|
62
|
+
sourcesData?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
/** A single compute step: bindTo names the computed_values key; expr is a JSONata expression. */
|
|
65
|
+
interface ComputeStep {
|
|
66
|
+
bindTo: string;
|
|
67
|
+
expr: string;
|
|
68
|
+
}
|
|
68
69
|
/** Minimal node shape expected by CardCompute. */
|
|
69
70
|
interface ComputeNode {
|
|
70
71
|
id?: string;
|
|
71
72
|
state?: Record<string, unknown>;
|
|
72
|
-
|
|
73
|
+
requires?: Record<string, unknown>;
|
|
74
|
+
sources?: ComputeSource[];
|
|
75
|
+
compute?: ComputeStep[];
|
|
76
|
+
computed_values?: Record<string, unknown>;
|
|
77
|
+
/** Ephemeral: populated by run() from sourcesData option. Never persisted. */
|
|
78
|
+
_sourcesData?: Record<string, unknown>;
|
|
73
79
|
[key: string]: unknown;
|
|
74
80
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Run all compute steps on a node.
|
|
83
|
+
* Each step's expr is evaluated against { state, requires, sources, computed_values }.
|
|
84
|
+
* Results are written to node.computed_values[bindTo].
|
|
85
|
+
* computed_values and _sourcesData are reset on each call — ephemeral, never persisted.
|
|
86
|
+
*
|
|
87
|
+
* @param options.sourcesData Pre-loaded map of { [bindTo]: data } for sources namespace.
|
|
88
|
+
* In Node/CLI: loaded from outputFiles by the caller (card-handler).
|
|
89
|
+
* In browser: passed in by the caller (e.g. from fetch results).
|
|
90
|
+
*/
|
|
91
|
+
declare function run(node: ComputeNode, options?: RunOptions): Promise<ComputeNode>;
|
|
92
|
+
/**
|
|
93
|
+
* Evaluate a single JSONata expression against a node's context.
|
|
94
|
+
* Context is { state, requires, sources, computed_values }.
|
|
95
|
+
*/
|
|
96
|
+
declare function evalExpr(expr: string, node: ComputeNode): Promise<unknown>;
|
|
81
97
|
declare function resolve(node: ComputeNode, path: string): unknown;
|
|
82
|
-
declare function registerFunction(name: string, fn: ComputeFn): void;
|
|
83
98
|
/** Result of validateNode — ok: true means valid, ok: false has errors[]. */
|
|
84
99
|
interface ValidationResult {
|
|
85
100
|
ok: boolean;
|
|
86
101
|
errors: string[];
|
|
87
102
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Validate a node against the LiveCards schema.
|
|
90
|
-
* Lightweight structural check — no external dependencies.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```typescript
|
|
94
|
-
* const result = CardCompute.validate(node);
|
|
95
|
-
* if (!result.ok) console.error(result.errors);
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
103
|
declare function validateNode(node: unknown): ValidationResult;
|
|
99
104
|
declare const CardCompute: {
|
|
100
105
|
run: typeof run;
|
|
101
106
|
eval: typeof evalExpr;
|
|
102
107
|
resolve: typeof resolve;
|
|
103
108
|
validate: typeof validateNode;
|
|
104
|
-
registerFunction: typeof registerFunction;
|
|
105
|
-
readonly functions: Record<string, ComputeFn>;
|
|
106
109
|
};
|
|
107
110
|
|
|
108
|
-
export { CardCompute, type
|
|
111
|
+
export { CardCompute, type ComputeNode, type ComputeSource, type ComputeStep, type RunOptions, type ValidationResult, CardCompute as default, validateLiveCardSchema };
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
declare function validateLiveCardSchema(node: unknown): ValidationResult;
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
|
-
* card-compute —
|
|
25
|
+
* card-compute — JSONata-powered compute engine for LiveCards nodes.
|
|
26
26
|
*
|
|
27
27
|
* Isomorphic: works in browser, Node.js, and bundlers.
|
|
28
|
-
* No DOM dependency.
|
|
28
|
+
* No DOM dependency. Compute expressions are JSONata strings.
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
31
|
* ```typescript
|
|
@@ -34,75 +34,78 @@ declare function validateLiveCardSchema(node: unknown): ValidationResult;
|
|
|
34
34
|
* const node = {
|
|
35
35
|
* id: 'sales',
|
|
36
36
|
* state: { data: [{ revenue: 100 }, { revenue: 200 }] },
|
|
37
|
-
* compute:
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
37
|
+
* compute: [
|
|
38
|
+
* { bindTo: 'total', expr: '$sum(state.data.revenue)' },
|
|
39
|
+
* { bindTo: 'avg', expr: '$average(state.data.revenue)' },
|
|
40
|
+
* ],
|
|
41
41
|
* };
|
|
42
|
-
* CardCompute.run(node);
|
|
43
|
-
* // node.
|
|
44
|
-
* // node.
|
|
42
|
+
* await CardCompute.run(node);
|
|
43
|
+
* // node.computed_values.total === 300
|
|
44
|
+
* // node.computed_values.avg === 150
|
|
45
45
|
* ```
|
|
46
|
+
*
|
|
47
|
+
* Expressions are evaluated against { state, requires, computed_values }.
|
|
48
|
+
* computed_values is ephemeral — never persisted to disk.
|
|
46
49
|
*/
|
|
47
|
-
/** A
|
|
48
|
-
interface
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
cond?: ComputeExpr;
|
|
55
|
-
then?: unknown;
|
|
56
|
-
else?: unknown;
|
|
57
|
-
format?: string;
|
|
58
|
-
decimals?: number;
|
|
59
|
-
separator?: string;
|
|
60
|
-
direction?: 'asc' | 'desc';
|
|
61
|
-
start?: number;
|
|
62
|
-
end?: number;
|
|
63
|
-
depth?: number;
|
|
64
|
-
path?: string;
|
|
65
|
-
value?: unknown;
|
|
50
|
+
/** A source definition: cli writes to outputFile; bindTo names the sources.* key in compute context. */
|
|
51
|
+
interface ComputeSource {
|
|
52
|
+
bindTo: string;
|
|
53
|
+
outputFile?: string;
|
|
54
|
+
cli?: string;
|
|
55
|
+
script?: string;
|
|
56
|
+
optionalForCompletionGating?: boolean;
|
|
66
57
|
[key: string]: unknown;
|
|
67
58
|
}
|
|
59
|
+
/** Options for CardCompute.run() */
|
|
60
|
+
interface RunOptions {
|
|
61
|
+
/** Pre-loaded sources data map (keyed by bindTo). Use in browser or when caller loads files. */
|
|
62
|
+
sourcesData?: Record<string, unknown>;
|
|
63
|
+
}
|
|
64
|
+
/** A single compute step: bindTo names the computed_values key; expr is a JSONata expression. */
|
|
65
|
+
interface ComputeStep {
|
|
66
|
+
bindTo: string;
|
|
67
|
+
expr: string;
|
|
68
|
+
}
|
|
68
69
|
/** Minimal node shape expected by CardCompute. */
|
|
69
70
|
interface ComputeNode {
|
|
70
71
|
id?: string;
|
|
71
72
|
state?: Record<string, unknown>;
|
|
72
|
-
|
|
73
|
+
requires?: Record<string, unknown>;
|
|
74
|
+
sources?: ComputeSource[];
|
|
75
|
+
compute?: ComputeStep[];
|
|
76
|
+
computed_values?: Record<string, unknown>;
|
|
77
|
+
/** Ephemeral: populated by run() from sourcesData option. Never persisted. */
|
|
78
|
+
_sourcesData?: Record<string, unknown>;
|
|
73
79
|
[key: string]: unknown;
|
|
74
80
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
/**
|
|
82
|
+
* Run all compute steps on a node.
|
|
83
|
+
* Each step's expr is evaluated against { state, requires, sources, computed_values }.
|
|
84
|
+
* Results are written to node.computed_values[bindTo].
|
|
85
|
+
* computed_values and _sourcesData are reset on each call — ephemeral, never persisted.
|
|
86
|
+
*
|
|
87
|
+
* @param options.sourcesData Pre-loaded map of { [bindTo]: data } for sources namespace.
|
|
88
|
+
* In Node/CLI: loaded from outputFiles by the caller (card-handler).
|
|
89
|
+
* In browser: passed in by the caller (e.g. from fetch results).
|
|
90
|
+
*/
|
|
91
|
+
declare function run(node: ComputeNode, options?: RunOptions): Promise<ComputeNode>;
|
|
92
|
+
/**
|
|
93
|
+
* Evaluate a single JSONata expression against a node's context.
|
|
94
|
+
* Context is { state, requires, sources, computed_values }.
|
|
95
|
+
*/
|
|
96
|
+
declare function evalExpr(expr: string, node: ComputeNode): Promise<unknown>;
|
|
81
97
|
declare function resolve(node: ComputeNode, path: string): unknown;
|
|
82
|
-
declare function registerFunction(name: string, fn: ComputeFn): void;
|
|
83
98
|
/** Result of validateNode — ok: true means valid, ok: false has errors[]. */
|
|
84
99
|
interface ValidationResult {
|
|
85
100
|
ok: boolean;
|
|
86
101
|
errors: string[];
|
|
87
102
|
}
|
|
88
|
-
/**
|
|
89
|
-
* Validate a node against the LiveCards schema.
|
|
90
|
-
* Lightweight structural check — no external dependencies.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```typescript
|
|
94
|
-
* const result = CardCompute.validate(node);
|
|
95
|
-
* if (!result.ok) console.error(result.errors);
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
103
|
declare function validateNode(node: unknown): ValidationResult;
|
|
99
104
|
declare const CardCompute: {
|
|
100
105
|
run: typeof run;
|
|
101
106
|
eval: typeof evalExpr;
|
|
102
107
|
resolve: typeof resolve;
|
|
103
108
|
validate: typeof validateNode;
|
|
104
|
-
registerFunction: typeof registerFunction;
|
|
105
|
-
readonly functions: Record<string, ComputeFn>;
|
|
106
109
|
};
|
|
107
110
|
|
|
108
|
-
export { CardCompute, type
|
|
111
|
+
export { CardCompute, type ComputeNode, type ComputeSource, type ComputeStep, type RunOptions, type ValidationResult, CardCompute as default, validateLiveCardSchema };
|