@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.
Files changed (155) hide show
  1. package/README.md +323 -0
  2. package/dist/index.d.ts +6 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +24 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/tsconfig.tsbuildinfo +1 -0
  7. package/dist/types/behaviors/conditions.d.ts +54 -0
  8. package/dist/types/behaviors/conditions.d.ts.map +1 -0
  9. package/dist/types/behaviors/conditions.js +103 -0
  10. package/dist/types/behaviors/conditions.js.map +1 -0
  11. package/dist/types/behaviors/index.d.ts +3 -0
  12. package/dist/types/behaviors/index.d.ts.map +1 -0
  13. package/dist/types/behaviors/index.js +19 -0
  14. package/dist/types/behaviors/index.js.map +1 -0
  15. package/dist/types/behaviors/notifications.d.ts +157 -0
  16. package/dist/types/behaviors/notifications.d.ts.map +1 -0
  17. package/dist/types/behaviors/notifications.js +89 -0
  18. package/dist/types/behaviors/notifications.js.map +1 -0
  19. package/dist/types/config/activity.d.ts +58 -0
  20. package/dist/types/config/activity.d.ts.map +1 -0
  21. package/dist/types/config/activity.js +53 -0
  22. package/dist/types/config/activity.js.map +1 -0
  23. package/dist/types/config/http.d.ts +20 -0
  24. package/dist/types/config/http.d.ts.map +1 -0
  25. package/dist/types/config/http.js +66 -0
  26. package/dist/types/config/http.js.map +1 -0
  27. package/dist/types/config/index.d.ts +5 -0
  28. package/dist/types/config/index.d.ts.map +1 -0
  29. package/dist/types/config/index.js +21 -0
  30. package/dist/types/config/index.js.map +1 -0
  31. package/dist/types/config/protocols.d.ts +3 -0
  32. package/dist/types/config/protocols.d.ts.map +1 -0
  33. package/dist/types/config/protocols.js +14 -0
  34. package/dist/types/config/protocols.js.map +1 -0
  35. package/dist/types/config/workflow.d.ts +10 -0
  36. package/dist/types/config/workflow.d.ts.map +1 -0
  37. package/dist/types/config/workflow.js +12 -0
  38. package/dist/types/config/workflow.js.map +1 -0
  39. package/dist/types/context/index.d.ts +4 -0
  40. package/dist/types/context/index.d.ts.map +1 -0
  41. package/dist/types/context/index.js +8 -0
  42. package/dist/types/context/index.js.map +1 -0
  43. package/dist/types/contracts/agents.d.ts +87 -0
  44. package/dist/types/contracts/agents.d.ts.map +1 -0
  45. package/dist/types/contracts/agents.js +94 -0
  46. package/dist/types/contracts/agents.js.map +1 -0
  47. package/dist/types/contracts/index.d.ts +3 -0
  48. package/dist/types/contracts/index.d.ts.map +1 -0
  49. package/dist/types/contracts/index.js +19 -0
  50. package/dist/types/contracts/index.js.map +1 -0
  51. package/dist/types/contracts/tools.d.ts +72 -0
  52. package/dist/types/contracts/tools.d.ts.map +1 -0
  53. package/dist/types/contracts/tools.js +101 -0
  54. package/dist/types/contracts/tools.js.map +1 -0
  55. package/dist/types/index.d.ts +10 -0
  56. package/dist/types/index.d.ts.map +1 -0
  57. package/dist/types/index.js +26 -0
  58. package/dist/types/index.js.map +1 -0
  59. package/dist/types/nodes/agents.d.ts +149 -0
  60. package/dist/types/nodes/agents.d.ts.map +1 -0
  61. package/dist/types/nodes/agents.js +48 -0
  62. package/dist/types/nodes/agents.js.map +1 -0
  63. package/dist/types/nodes/common/base-node-schema.d.ts +109 -0
  64. package/dist/types/nodes/common/base-node-schema.d.ts.map +1 -0
  65. package/dist/types/nodes/common/base-node-schema.js +55 -0
  66. package/dist/types/nodes/common/base-node-schema.js.map +1 -0
  67. package/dist/types/nodes/common/index.d.ts +2 -0
  68. package/dist/types/nodes/common/index.d.ts.map +1 -0
  69. package/dist/types/nodes/common/index.js +18 -0
  70. package/dist/types/nodes/common/index.js.map +1 -0
  71. package/dist/types/nodes/destination.d.ts +148 -0
  72. package/dist/types/nodes/destination.d.ts.map +1 -0
  73. package/dist/types/nodes/destination.js +30 -0
  74. package/dist/types/nodes/destination.js.map +1 -0
  75. package/dist/types/nodes/error-boundary.d.ts +126 -0
  76. package/dist/types/nodes/error-boundary.d.ts.map +1 -0
  77. package/dist/types/nodes/error-boundary.js +24 -0
  78. package/dist/types/nodes/error-boundary.js.map +1 -0
  79. package/dist/types/nodes/http.d.ts +194 -0
  80. package/dist/types/nodes/http.d.ts.map +1 -0
  81. package/dist/types/nodes/http.js +28 -0
  82. package/dist/types/nodes/http.js.map +1 -0
  83. package/dist/types/nodes/index.d.ts +734 -0
  84. package/dist/types/nodes/index.d.ts.map +1 -0
  85. package/dist/types/nodes/index.js +48 -0
  86. package/dist/types/nodes/index.js.map +1 -0
  87. package/dist/types/nodes/iterator.d.ts +126 -0
  88. package/dist/types/nodes/iterator.d.ts.map +1 -0
  89. package/dist/types/nodes/iterator.js +21 -0
  90. package/dist/types/nodes/iterator.js.map +1 -0
  91. package/dist/types/nodes/tools.d.ts +1321 -0
  92. package/dist/types/nodes/tools.d.ts.map +1 -0
  93. package/dist/types/nodes/tools.js +65 -0
  94. package/dist/types/nodes/tools.js.map +1 -0
  95. package/dist/types/primitives/index.d.ts +2 -0
  96. package/dist/types/primitives/index.d.ts.map +1 -0
  97. package/dist/types/primitives/index.js +18 -0
  98. package/dist/types/primitives/index.js.map +1 -0
  99. package/dist/types/primitives/shared.d.ts +21 -0
  100. package/dist/types/primitives/shared.d.ts.map +1 -0
  101. package/dist/types/primitives/shared.js +113 -0
  102. package/dist/types/primitives/shared.js.map +1 -0
  103. package/dist/types/results/agent.d.ts +156 -0
  104. package/dist/types/results/agent.d.ts.map +1 -0
  105. package/dist/types/results/agent.js +54 -0
  106. package/dist/types/results/agent.js.map +1 -0
  107. package/dist/types/results/base.d.ts +4 -0
  108. package/dist/types/results/base.d.ts.map +1 -0
  109. package/dist/types/results/base.js +12 -0
  110. package/dist/types/results/base.js.map +1 -0
  111. package/dist/types/results/index.d.ts +7 -0
  112. package/dist/types/results/index.d.ts.map +1 -0
  113. package/dist/types/results/index.js +23 -0
  114. package/dist/types/results/index.js.map +1 -0
  115. package/dist/types/results/node.d.ts +38 -0
  116. package/dist/types/results/node.d.ts.map +1 -0
  117. package/dist/types/results/node.js +26 -0
  118. package/dist/types/results/node.js.map +1 -0
  119. package/dist/types/results/shared.d.ts +36 -0
  120. package/dist/types/results/shared.d.ts.map +1 -0
  121. package/dist/types/results/shared.js +31 -0
  122. package/dist/types/results/shared.js.map +1 -0
  123. package/dist/types/results/source.d.ts +53 -0
  124. package/dist/types/results/source.d.ts.map +1 -0
  125. package/dist/types/results/source.js +64 -0
  126. package/dist/types/results/source.js.map +1 -0
  127. package/dist/types/results/tool.d.ts +170 -0
  128. package/dist/types/results/tool.d.ts.map +1 -0
  129. package/dist/types/results/tool.js +110 -0
  130. package/dist/types/results/tool.js.map +1 -0
  131. package/dist/types/state/index.d.ts +2 -0
  132. package/dist/types/state/index.d.ts.map +1 -0
  133. package/dist/types/state/index.js +18 -0
  134. package/dist/types/state/index.js.map +1 -0
  135. package/dist/types/state/workflow-state.d.ts +63 -0
  136. package/dist/types/state/workflow-state.d.ts.map +1 -0
  137. package/dist/types/state/workflow-state.js +52 -0
  138. package/dist/types/state/workflow-state.js.map +1 -0
  139. package/dist/types/validation/schema.d.ts +14 -0
  140. package/dist/types/validation/schema.d.ts.map +1 -0
  141. package/dist/types/validation/schema.js +37 -0
  142. package/dist/types/validation/schema.js.map +1 -0
  143. package/dist/types/workflow.d.ts +2179 -0
  144. package/dist/types/workflow.d.ts.map +1 -0
  145. package/dist/types/workflow.js +132 -0
  146. package/dist/types/workflow.js.map +1 -0
  147. package/dist/utils/index.d.ts +2 -0
  148. package/dist/utils/index.d.ts.map +1 -0
  149. package/dist/utils/index.js +18 -0
  150. package/dist/utils/index.js.map +1 -0
  151. package/dist/utils/template/index.d.ts +39 -0
  152. package/dist/utils/template/index.d.ts.map +1 -0
  153. package/dist/utils/template/index.js +151 -0
  154. package/dist/utils/template/index.js.map +1 -0
  155. 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":";;;AAAA,8BAA4B;AAE5B,6BAAwB;AACxB,qCAAgD;AAChD,mCAAqD;AAGxC,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,CAAC;IACN,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,kBAAU,CAAC;IAC1B,KAAK,EAAE,OAAC;SACL,KAAK,CAAC,sBAAc,CAAC;SACrB,QAAQ,EAAE;SACV,OAAO,CAAC;QACP,WAAW,EACT,wFAAwF;KAC3F,CAAC;SACD,OAAO,CAAC,EAAE,CAAC;IACd,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QAC9C,WAAW,EAAE,4DAA4D;KAC1E,CAAC;IACF,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QAC5C,WAAW,EACT,ioBAAioB;KACpoB,CAAC;IACF,cAAc,EAAE,6BAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACtD,WAAW,EAAE,gCAAgC;KAC9C,CAAC;IACF,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;QACzC,WAAW,EACT,qFAAqF;KACxF,CAAC;CACH,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,iDAAiD;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAClC,CAAC,IAAI,EAAqB,EAAE,CAC1B,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAC/D,CAAC;IAEF,oCAAoC;IACpC,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAEvE,gEAAgE;IAChE,MAAM,uBAAuB,GAAG,CAAC,KAAY,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACnB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,MAAM,cAAc,GAAG,IAAI,GAAG,EAAE,CAAC;QAEjC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAW,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACpB,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAE3B,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7C,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;yBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBACrC,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,sDAAsD;IACtD,MAAM,6BAA6B,GAAG,CAAC,IAAS,EAAE,EAAE;QAClD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEhE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,YAAY;gBAAE,SAAS;YAEjC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,GAAG,CAAC,QAAQ,CAAC;wBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;wBAC3B,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,EAAE,8CAA8C,KAAK,EAAE;wBACzG,IAAI,EAAE;4BACJ,OAAO;4BACP,IAAI,CAAC,EAAE;4BACP,OAAO;4BACP,OAAO;4BACP,IAAI,CAAC,EAAE;4BACP,cAAc;yBACf;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,SAAS,IAAI,CAAC,EAAE,+CAA+C;gBACxE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC;aAC3C,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,uBAAuB;QACvB,IACE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,EACpC,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,eAAe,IAAI,CAAC,EAAE,kGAAkG;gBACjI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC;aAC7D,CAAC,CAAC;QACL,CAAC;QAED,kDAAkD;QAClD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,GAAG,CAAC,QAAQ,CAAC;oBACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,eAAe,IAAI,CAAC,EAAE,gCAAgC,MAAM,GAAG;oBACxE,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;iBAClC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;gBACpD,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAClC,6BAA6B,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;KACD,OAAO,CAAC;IACP,GAAG,EAAE,eAAe;IACpB,WAAW,EACT,6IAA6I;CAChJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./template";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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
+ }