@graph-compose/core 1.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 +323 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/behaviors/conditions.d.ts +54 -0
- package/dist/types/behaviors/conditions.d.ts.map +1 -0
- package/dist/types/behaviors/conditions.js +103 -0
- package/dist/types/behaviors/conditions.js.map +1 -0
- package/dist/types/behaviors/index.d.ts +3 -0
- package/dist/types/behaviors/index.d.ts.map +1 -0
- package/dist/types/behaviors/index.js +19 -0
- package/dist/types/behaviors/index.js.map +1 -0
- package/dist/types/behaviors/notifications.d.ts +157 -0
- package/dist/types/behaviors/notifications.d.ts.map +1 -0
- package/dist/types/behaviors/notifications.js +89 -0
- package/dist/types/behaviors/notifications.js.map +1 -0
- package/dist/types/config/activity.d.ts +58 -0
- package/dist/types/config/activity.d.ts.map +1 -0
- package/dist/types/config/activity.js +53 -0
- package/dist/types/config/activity.js.map +1 -0
- package/dist/types/config/http.d.ts +20 -0
- package/dist/types/config/http.d.ts.map +1 -0
- package/dist/types/config/http.js +66 -0
- package/dist/types/config/http.js.map +1 -0
- package/dist/types/config/index.d.ts +5 -0
- package/dist/types/config/index.d.ts.map +1 -0
- package/dist/types/config/index.js +21 -0
- package/dist/types/config/index.js.map +1 -0
- package/dist/types/config/protocols.d.ts +3 -0
- package/dist/types/config/protocols.d.ts.map +1 -0
- package/dist/types/config/protocols.js +14 -0
- package/dist/types/config/protocols.js.map +1 -0
- package/dist/types/config/workflow.d.ts +10 -0
- package/dist/types/config/workflow.d.ts.map +1 -0
- package/dist/types/config/workflow.js +12 -0
- package/dist/types/config/workflow.js.map +1 -0
- package/dist/types/context/index.d.ts +4 -0
- package/dist/types/context/index.d.ts.map +1 -0
- package/dist/types/context/index.js +8 -0
- package/dist/types/context/index.js.map +1 -0
- package/dist/types/contracts/agents.d.ts +87 -0
- package/dist/types/contracts/agents.d.ts.map +1 -0
- package/dist/types/contracts/agents.js +94 -0
- package/dist/types/contracts/agents.js.map +1 -0
- package/dist/types/contracts/index.d.ts +3 -0
- package/dist/types/contracts/index.d.ts.map +1 -0
- package/dist/types/contracts/index.js +19 -0
- package/dist/types/contracts/index.js.map +1 -0
- package/dist/types/contracts/tools.d.ts +72 -0
- package/dist/types/contracts/tools.d.ts.map +1 -0
- package/dist/types/contracts/tools.js +101 -0
- package/dist/types/contracts/tools.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/nodes/agents.d.ts +149 -0
- package/dist/types/nodes/agents.d.ts.map +1 -0
- package/dist/types/nodes/agents.js +48 -0
- package/dist/types/nodes/agents.js.map +1 -0
- package/dist/types/nodes/common/base-node-schema.d.ts +109 -0
- package/dist/types/nodes/common/base-node-schema.d.ts.map +1 -0
- package/dist/types/nodes/common/base-node-schema.js +55 -0
- package/dist/types/nodes/common/base-node-schema.js.map +1 -0
- package/dist/types/nodes/common/index.d.ts +2 -0
- package/dist/types/nodes/common/index.d.ts.map +1 -0
- package/dist/types/nodes/common/index.js +18 -0
- package/dist/types/nodes/common/index.js.map +1 -0
- package/dist/types/nodes/destination.d.ts +148 -0
- package/dist/types/nodes/destination.d.ts.map +1 -0
- package/dist/types/nodes/destination.js +30 -0
- package/dist/types/nodes/destination.js.map +1 -0
- package/dist/types/nodes/error-boundary.d.ts +126 -0
- package/dist/types/nodes/error-boundary.d.ts.map +1 -0
- package/dist/types/nodes/error-boundary.js +24 -0
- package/dist/types/nodes/error-boundary.js.map +1 -0
- package/dist/types/nodes/http.d.ts +194 -0
- package/dist/types/nodes/http.d.ts.map +1 -0
- package/dist/types/nodes/http.js +28 -0
- package/dist/types/nodes/http.js.map +1 -0
- package/dist/types/nodes/index.d.ts +734 -0
- package/dist/types/nodes/index.d.ts.map +1 -0
- package/dist/types/nodes/index.js +48 -0
- package/dist/types/nodes/index.js.map +1 -0
- package/dist/types/nodes/iterator.d.ts +126 -0
- package/dist/types/nodes/iterator.d.ts.map +1 -0
- package/dist/types/nodes/iterator.js +21 -0
- package/dist/types/nodes/iterator.js.map +1 -0
- package/dist/types/nodes/tools.d.ts +1321 -0
- package/dist/types/nodes/tools.d.ts.map +1 -0
- package/dist/types/nodes/tools.js +65 -0
- package/dist/types/nodes/tools.js.map +1 -0
- package/dist/types/primitives/index.d.ts +2 -0
- package/dist/types/primitives/index.d.ts.map +1 -0
- package/dist/types/primitives/index.js +18 -0
- package/dist/types/primitives/index.js.map +1 -0
- package/dist/types/primitives/shared.d.ts +21 -0
- package/dist/types/primitives/shared.d.ts.map +1 -0
- package/dist/types/primitives/shared.js +113 -0
- package/dist/types/primitives/shared.js.map +1 -0
- package/dist/types/results/agent.d.ts +156 -0
- package/dist/types/results/agent.d.ts.map +1 -0
- package/dist/types/results/agent.js +54 -0
- package/dist/types/results/agent.js.map +1 -0
- package/dist/types/results/base.d.ts +4 -0
- package/dist/types/results/base.d.ts.map +1 -0
- package/dist/types/results/base.js +12 -0
- package/dist/types/results/base.js.map +1 -0
- package/dist/types/results/index.d.ts +7 -0
- package/dist/types/results/index.d.ts.map +1 -0
- package/dist/types/results/index.js +23 -0
- package/dist/types/results/index.js.map +1 -0
- package/dist/types/results/node.d.ts +38 -0
- package/dist/types/results/node.d.ts.map +1 -0
- package/dist/types/results/node.js +26 -0
- package/dist/types/results/node.js.map +1 -0
- package/dist/types/results/shared.d.ts +36 -0
- package/dist/types/results/shared.d.ts.map +1 -0
- package/dist/types/results/shared.js +31 -0
- package/dist/types/results/shared.js.map +1 -0
- package/dist/types/results/source.d.ts +53 -0
- package/dist/types/results/source.d.ts.map +1 -0
- package/dist/types/results/source.js +64 -0
- package/dist/types/results/source.js.map +1 -0
- package/dist/types/results/tool.d.ts +170 -0
- package/dist/types/results/tool.d.ts.map +1 -0
- package/dist/types/results/tool.js +110 -0
- package/dist/types/results/tool.js.map +1 -0
- package/dist/types/state/index.d.ts +2 -0
- package/dist/types/state/index.d.ts.map +1 -0
- package/dist/types/state/index.js +18 -0
- package/dist/types/state/index.js.map +1 -0
- package/dist/types/state/workflow-state.d.ts +63 -0
- package/dist/types/state/workflow-state.d.ts.map +1 -0
- package/dist/types/state/workflow-state.js +52 -0
- package/dist/types/state/workflow-state.js.map +1 -0
- package/dist/types/validation/schema.d.ts +14 -0
- package/dist/types/validation/schema.d.ts.map +1 -0
- package/dist/types/validation/schema.js +37 -0
- package/dist/types/validation/schema.js.map +1 -0
- package/dist/types/workflow.d.ts +2179 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +132 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/template/index.d.ts +39 -0
- package/dist/utils/template/index.d.ts.map +1 -0
- package/dist/utils/template/index.js +151 -0
- package/dist/utils/template/index.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6I5B,CAAC;AAEL,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WorkflowGraphSchema = void 0;
|
|
4
|
+
require("zod-openapi/extend");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const config_1 = require("./config");
|
|
7
|
+
const nodes_1 = require("./nodes");
|
|
8
|
+
exports.WorkflowGraphSchema = zod_1.z
|
|
9
|
+
.object({
|
|
10
|
+
nodes: zod_1.z.array(nodes_1.NodeSchema),
|
|
11
|
+
tools: zod_1.z
|
|
12
|
+
.array(nodes_1.ToolNodeSchema)
|
|
13
|
+
.optional()
|
|
14
|
+
.openapi({
|
|
15
|
+
description: "The tools available to the workflow. This is only used in flows where agents are used.",
|
|
16
|
+
})
|
|
17
|
+
.default([]),
|
|
18
|
+
webhookUrl: zod_1.z.string().url().optional().openapi({
|
|
19
|
+
description: "Optional webhook URL to notify when the workflow completes",
|
|
20
|
+
}),
|
|
21
|
+
context: zod_1.z.record(zod_1.z.any()).optional().openapi({
|
|
22
|
+
description: "An optional object providing initial data to the workflow execution. This data is globally accessible throughout the workflow using handlebars expressions prefixed with `context.`, like `{{ context.apiKey }}`. You can leverage the full power of the [JSONata](https://jsonata.org/) query and transformation language within these expressions when accessing context data.\n\nUse this for static configuration or any data needed by multiple nodes at the start of the workflow. For sensitive values like API keys, it is recommended to use Graph Compose's dedicated secrets management features rather than including them directly in the context.",
|
|
23
|
+
}),
|
|
24
|
+
workflowConfig: config_1.WorkflowConfigSchema.optional().openapi({
|
|
25
|
+
description: "Configuration for the workflow",
|
|
26
|
+
}),
|
|
27
|
+
meta: zod_1.z.record(zod_1.z.any()).optional().openapi({
|
|
28
|
+
description: "Any additional information about the workflow. This pretty much doesn't do anything",
|
|
29
|
+
}),
|
|
30
|
+
})
|
|
31
|
+
.superRefine((data, ctx) => {
|
|
32
|
+
// Get all agent nodes that have tools configured
|
|
33
|
+
const agentNodes = data.nodes.filter((node) => node.type === "agent" && node.tools && node.tools.length > 0);
|
|
34
|
+
// Get set of all available tool IDs
|
|
35
|
+
const availableTools = new Set(data.tools?.map(tool => tool.id) || []);
|
|
36
|
+
// Helper function to check for circular dependencies in a graph
|
|
37
|
+
const hasCircularDependencies = (nodes) => {
|
|
38
|
+
const graph = new Map();
|
|
39
|
+
nodes.forEach(node => {
|
|
40
|
+
graph.set(node.id, node.dependencies || []);
|
|
41
|
+
});
|
|
42
|
+
const visited = new Set();
|
|
43
|
+
const recursionStack = new Set();
|
|
44
|
+
const hasCycle = (nodeId) => {
|
|
45
|
+
if (!visited.has(nodeId)) {
|
|
46
|
+
visited.add(nodeId);
|
|
47
|
+
recursionStack.add(nodeId);
|
|
48
|
+
const dependencies = graph.get(nodeId) || [];
|
|
49
|
+
for (const depId of dependencies) {
|
|
50
|
+
if (!visited.has(depId) && hasCycle(depId)) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
else if (recursionStack.has(depId)) {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
recursionStack.delete(nodeId);
|
|
59
|
+
return false;
|
|
60
|
+
};
|
|
61
|
+
for (const nodeId of graph.keys()) {
|
|
62
|
+
if (!visited.has(nodeId) && hasCycle(nodeId)) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
};
|
|
68
|
+
// Helper function to validate graph tool dependencies
|
|
69
|
+
const validateGraphToolDependencies = (tool) => {
|
|
70
|
+
const nodeIds = new Set(tool.graph.nodes.map((n) => n.id));
|
|
71
|
+
for (const node of tool.graph.nodes) {
|
|
72
|
+
if (!node.dependencies)
|
|
73
|
+
continue;
|
|
74
|
+
for (const depId of node.dependencies) {
|
|
75
|
+
if (!nodeIds.has(depId)) {
|
|
76
|
+
ctx.addIssue({
|
|
77
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
78
|
+
message: `Tool "${tool.id}" contains node "${node.id}" that references non-existent dependency: ${depId}`,
|
|
79
|
+
path: [
|
|
80
|
+
"tools",
|
|
81
|
+
tool.id,
|
|
82
|
+
"graph",
|
|
83
|
+
"nodes",
|
|
84
|
+
node.id,
|
|
85
|
+
"dependencies",
|
|
86
|
+
],
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (hasCircularDependencies(tool.graph.nodes)) {
|
|
92
|
+
ctx.addIssue({
|
|
93
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
94
|
+
message: `Tool "${tool.id}" contains circular dependencies in its graph`,
|
|
95
|
+
path: ["tools", tool.id, "graph", "nodes"],
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
for (const node of agentNodes) {
|
|
100
|
+
// Check max_iterations
|
|
101
|
+
if (!node.http.config?.max_iterations ||
|
|
102
|
+
node.http.config.max_iterations <= 1) {
|
|
103
|
+
ctx.addIssue({
|
|
104
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
105
|
+
message: `Agent node '${node.id}' has tools configured but max_iterations <= 1. Tools require at least 2 iterations to complete.`,
|
|
106
|
+
path: ["nodes", node.id, "http", "config", "max_iterations"],
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// Check each tool exists and validate graph tools
|
|
110
|
+
for (const toolId of node.tools) {
|
|
111
|
+
if (!availableTools.has(toolId)) {
|
|
112
|
+
ctx.addIssue({
|
|
113
|
+
code: zod_1.z.ZodIssueCode.custom,
|
|
114
|
+
message: `Agent node '${node.id}' references undefined tool '${toolId}'`,
|
|
115
|
+
path: ["nodes", node.id, "tools"],
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// If tool exists and is a graph type, validate its dependencies
|
|
120
|
+
const tool = data.tools?.find(t => t.id === toolId);
|
|
121
|
+
if (tool && tool.type === "graph") {
|
|
122
|
+
validateGraphToolDependencies(tool);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
.openapi({
|
|
129
|
+
ref: "WorkflowGraph",
|
|
130
|
+
description: "A workflow graph is a collection of nodes that are connected to each other. It is the main object that defines the structure of a workflow.",
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./template"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extracts JSONata expression from a template string if it matches {{ expr }} format
|
|
3
|
+
* Returns null if the string is not a template expression
|
|
4
|
+
*/
|
|
5
|
+
export declare function extractJsonataExpression(template: string): string | null;
|
|
6
|
+
/**
|
|
7
|
+
* Normalizes template strings by removing newlines within {{ }} expressions
|
|
8
|
+
*/
|
|
9
|
+
export declare function normalizeTemplate(template: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Validates a single JSONata expression
|
|
12
|
+
*/
|
|
13
|
+
export declare function validateJsonataExpression(expression: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Validates a template string that may contain multiple JSONata expressions
|
|
16
|
+
*/
|
|
17
|
+
export declare function validateTemplateExpression(template: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Collects validation errors for all JSONata expressions in an object
|
|
20
|
+
*/
|
|
21
|
+
export declare function validateNestedExpressions(obj: any, path?: string[]): Array<{
|
|
22
|
+
path: string[];
|
|
23
|
+
expression: string;
|
|
24
|
+
error: string;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Type guard to check if a string contains template expressions
|
|
28
|
+
*/
|
|
29
|
+
export declare function hasTemplateExpressions(value: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Extracts all template expressions from a string
|
|
32
|
+
*/
|
|
33
|
+
export declare function extractAllExpressions(template: string): string[];
|
|
34
|
+
/**
|
|
35
|
+
* Validates that a JSONata expression returns a boolean
|
|
36
|
+
* Throws an error if the expression is invalid or doesn't return a boolean
|
|
37
|
+
*/
|
|
38
|
+
export declare function validateBooleanExpression(expression: string): boolean;
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/template/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAOrE;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CASpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,GAAG,EACR,IAAI,GAAE,MAAM,EAAO,GAClB,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA0C9D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGhE;AA4BD;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAQrE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.extractJsonataExpression = extractJsonataExpression;
|
|
7
|
+
exports.normalizeTemplate = normalizeTemplate;
|
|
8
|
+
exports.validateJsonataExpression = validateJsonataExpression;
|
|
9
|
+
exports.validateTemplateExpression = validateTemplateExpression;
|
|
10
|
+
exports.validateNestedExpressions = validateNestedExpressions;
|
|
11
|
+
exports.hasTemplateExpressions = hasTemplateExpressions;
|
|
12
|
+
exports.extractAllExpressions = extractAllExpressions;
|
|
13
|
+
exports.validateBooleanExpression = validateBooleanExpression;
|
|
14
|
+
const jsonata_1 = __importDefault(require("jsonata"));
|
|
15
|
+
/**
|
|
16
|
+
* Extracts JSONata expression from a template string if it matches {{ expr }} format
|
|
17
|
+
* Returns null if the string is not a template expression
|
|
18
|
+
*/
|
|
19
|
+
function extractJsonataExpression(template) {
|
|
20
|
+
const match = template.match(/^\{\{([\s\S]*?)\}\}$/);
|
|
21
|
+
if (match) {
|
|
22
|
+
return match[1].trim();
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Normalizes template strings by removing newlines within {{ }} expressions
|
|
28
|
+
*/
|
|
29
|
+
function normalizeTemplate(template) {
|
|
30
|
+
return template.replace(/\{\{([\s\S]*?)\}\}/g, (match, content) => {
|
|
31
|
+
return `{{${content.replace(/\s*\n\s*/g, " ")}}}`;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validates a single JSONata expression
|
|
36
|
+
*/
|
|
37
|
+
function validateJsonataExpression(expression) {
|
|
38
|
+
try {
|
|
39
|
+
(0, jsonata_1.default)(expression.trim());
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Validates a template string that may contain multiple JSONata expressions
|
|
48
|
+
*/
|
|
49
|
+
function validateTemplateExpression(template) {
|
|
50
|
+
const expressions = template.match(/\{\{([^}]+)\}\}/g);
|
|
51
|
+
if (!expressions)
|
|
52
|
+
return false; // No expressions to validate
|
|
53
|
+
return expressions.every(expr => {
|
|
54
|
+
const innerExpr = expr.slice(2, -2).trim();
|
|
55
|
+
return validateJsonataExpression(innerExpr);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Collects validation errors for all JSONata expressions in an object
|
|
60
|
+
*/
|
|
61
|
+
function validateNestedExpressions(obj, path = []) {
|
|
62
|
+
const errors = [];
|
|
63
|
+
if (typeof obj === "string") {
|
|
64
|
+
// Check for full template string
|
|
65
|
+
const fullMatch = obj.match(/^\{\{\s*([^}]+)\s*\}\}$/);
|
|
66
|
+
if (fullMatch) {
|
|
67
|
+
try {
|
|
68
|
+
(0, jsonata_1.default)(fullMatch[1].trim());
|
|
69
|
+
}
|
|
70
|
+
catch (e) {
|
|
71
|
+
errors.push({
|
|
72
|
+
path,
|
|
73
|
+
expression: fullMatch[1].trim(),
|
|
74
|
+
error: e instanceof Error ? e.message : "Unknown error",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Check for embedded expressions
|
|
80
|
+
const expressions = obj.match(/\{\{([^}]+)\}\}/g);
|
|
81
|
+
if (expressions) {
|
|
82
|
+
expressions.forEach(expr => {
|
|
83
|
+
try {
|
|
84
|
+
const expression = expr.slice(2, -2).trim();
|
|
85
|
+
(0, jsonata_1.default)(expression);
|
|
86
|
+
}
|
|
87
|
+
catch (e) {
|
|
88
|
+
errors.push({
|
|
89
|
+
path,
|
|
90
|
+
expression: expr.slice(2, -2).trim(),
|
|
91
|
+
error: e instanceof Error ? e.message : "Unknown error",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else if (typeof obj === "object" && obj !== null) {
|
|
99
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
100
|
+
errors.push(...validateNestedExpressions(value, [...path, key]));
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return errors;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Type guard to check if a string contains template expressions
|
|
107
|
+
*/
|
|
108
|
+
function hasTemplateExpressions(value) {
|
|
109
|
+
return /\{\{([^}]+)\}\}/.test(value);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Extracts all template expressions from a string
|
|
113
|
+
*/
|
|
114
|
+
function extractAllExpressions(template) {
|
|
115
|
+
const matches = template.match(/\{\{([^}]+)\}\}/g) || [];
|
|
116
|
+
return matches.map(match => match.slice(2, -2).trim());
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Infers the return type of a JSONata expression
|
|
120
|
+
*/
|
|
121
|
+
function inferExpressionType(ast) {
|
|
122
|
+
// Handle basic types
|
|
123
|
+
if (ast.type === "boolean" ||
|
|
124
|
+
ast.type === "comparison" ||
|
|
125
|
+
ast.type === "condition" ||
|
|
126
|
+
ast.type === "regex") {
|
|
127
|
+
return { type: "boolean" };
|
|
128
|
+
}
|
|
129
|
+
// Handle binary operations that result in boolean
|
|
130
|
+
if (ast.type === "binary" &&
|
|
131
|
+
["=", "!=", "<", "<=", ">", ">=", "in"].includes(ast.value)) {
|
|
132
|
+
return { type: "boolean" };
|
|
133
|
+
}
|
|
134
|
+
// For other types, return their type directly
|
|
135
|
+
return { type: ast.type };
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Validates that a JSONata expression returns a boolean
|
|
139
|
+
* Throws an error if the expression is invalid or doesn't return a boolean
|
|
140
|
+
*/
|
|
141
|
+
function validateBooleanExpression(expression) {
|
|
142
|
+
try {
|
|
143
|
+
const ast = (0, jsonata_1.default)(expression).ast();
|
|
144
|
+
const inferredType = inferExpressionType(ast);
|
|
145
|
+
return inferredType.type === "boolean";
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/template/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@graph-compose/core",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Core functionality for Graph Compose",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md"
|
|
13
|
+
],
|
|
14
|
+
"keywords": [
|
|
15
|
+
"graph",
|
|
16
|
+
"compose",
|
|
17
|
+
"core"
|
|
18
|
+
],
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/graph-compose/graph-compose.git",
|
|
22
|
+
"directory": "packages/core"
|
|
23
|
+
},
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"default": "./dist/index.js"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"uuid": "^11.0.5",
|
|
32
|
+
"zod": "^3.24.3",
|
|
33
|
+
"zod-openapi": "^4.2.4",
|
|
34
|
+
"zod-to-json-schema": "^3.24.1"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@tsconfig/node18": "^1.0.3",
|
|
38
|
+
"@types/jest": "^29.5.14",
|
|
39
|
+
"@types/node": "^18.0.0",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
41
|
+
"@typescript-eslint/parser": "^6.7.3",
|
|
42
|
+
"eslint": "^7.32.0",
|
|
43
|
+
"jest": "^29.7.0",
|
|
44
|
+
"ts-jest": "^29.1.1",
|
|
45
|
+
"typescript": "^5.0.4"
|
|
46
|
+
},
|
|
47
|
+
"jest": {
|
|
48
|
+
"preset": "ts-jest",
|
|
49
|
+
"testEnvironment": "node",
|
|
50
|
+
"testRegex": "src/__tests__/.*\\.test\\.ts$",
|
|
51
|
+
"moduleFileExtensions": [
|
|
52
|
+
"ts",
|
|
53
|
+
"js",
|
|
54
|
+
"json"
|
|
55
|
+
],
|
|
56
|
+
"transform": {
|
|
57
|
+
"^.+\\.ts$": [
|
|
58
|
+
"ts-jest",
|
|
59
|
+
{
|
|
60
|
+
"tsconfig": "tsconfig.json"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "tsc --build",
|
|
67
|
+
"watch": "tsc --build --watch",
|
|
68
|
+
"dev": "tsc --build --watch",
|
|
69
|
+
"format": "prettier --write .",
|
|
70
|
+
"lint": "eslint src",
|
|
71
|
+
"test": "jest --verbose --runInBand"
|
|
72
|
+
}
|
|
73
|
+
}
|