@decaf-ts/ui-decorators 0.19.0 → 0.20.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 (236) hide show
  1. package/dist/ui-decorators.cjs +1 -1
  2. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs +20 -0
  3. package/lib/cjs/graph/catalog/GraphConnectionPolicy.cjs.map +1 -0
  4. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs +15 -0
  5. package/lib/cjs/graph/catalog/GraphCredentialReference.cjs.map +1 -0
  6. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs +16 -0
  7. package/lib/cjs/graph/catalog/GraphCredentialRequirement.cjs.map +1 -0
  8. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs +31 -0
  9. package/lib/cjs/graph/catalog/GraphDynamicPortRule.cjs.map +1 -0
  10. package/lib/cjs/graph/catalog/GraphIconReference.cjs +22 -0
  11. package/lib/cjs/graph/catalog/GraphIconReference.cjs.map +1 -0
  12. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs +298 -0
  13. package/lib/cjs/graph/catalog/GraphManifestCompiler.cjs.map +1 -0
  14. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs +23 -0
  15. package/lib/cjs/graph/catalog/GraphNodeCapability.cjs.map +1 -0
  16. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs +11 -0
  17. package/lib/cjs/graph/catalog/GraphNodeDisplayManifest.cjs.map +1 -0
  18. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs +23 -0
  19. package/lib/cjs/graph/catalog/GraphNodeManifest.cjs.map +1 -0
  20. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs +50 -0
  21. package/lib/cjs/graph/catalog/GraphNodeManifestSerialization.cjs.map +1 -0
  22. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs +29 -0
  23. package/lib/cjs/graph/catalog/GraphNodeMethodManifest.cjs.map +1 -0
  24. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs +11 -0
  25. package/lib/cjs/graph/catalog/GraphNodePolicyManifest.cjs.map +1 -0
  26. package/lib/cjs/graph/catalog/GraphParameterBase.cjs +4 -0
  27. package/lib/cjs/graph/catalog/GraphParameterBase.cjs.map +1 -0
  28. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs +29 -0
  29. package/lib/cjs/graph/catalog/GraphParameterDefinition.cjs.map +1 -0
  30. package/lib/cjs/graph/catalog/GraphParameterOption.cjs +18 -0
  31. package/lib/cjs/graph/catalog/GraphParameterOption.cjs.map +1 -0
  32. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs +57 -0
  33. package/lib/cjs/graph/catalog/GraphParameterValidation.cjs.map +1 -0
  34. package/lib/cjs/graph/catalog/GraphPortManifest.cjs +19 -0
  35. package/lib/cjs/graph/catalog/GraphPortManifest.cjs.map +1 -0
  36. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs +19 -0
  37. package/lib/cjs/graph/catalog/GraphResourceLocatorMode.cjs.map +1 -0
  38. package/lib/cjs/graph/catalog/GraphValueSchema.cjs +25 -0
  39. package/lib/cjs/graph/catalog/GraphValueSchema.cjs.map +1 -0
  40. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs +164 -0
  41. package/lib/cjs/graph/catalog/GraphValueSchemaDerivation.cjs.map +1 -0
  42. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs +63 -0
  43. package/lib/cjs/graph/catalog/GraphVisibilityExpression.cjs.map +1 -0
  44. package/lib/cjs/graph/catalog/index.cjs +39 -0
  45. package/lib/cjs/graph/catalog/index.cjs.map +1 -0
  46. package/lib/cjs/graph/constants.cjs +15 -1
  47. package/lib/cjs/graph/constants.cjs.map +1 -1
  48. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs +296 -0
  49. package/lib/cjs/graph/document/GraphDecoratedWorkflowCompiler.cjs.map +1 -0
  50. package/lib/cjs/graph/document/GraphEdgeInstance.cjs +4 -0
  51. package/lib/cjs/graph/document/GraphEdgeInstance.cjs.map +1 -0
  52. package/lib/cjs/graph/document/GraphEndpoint.cjs +27 -0
  53. package/lib/cjs/graph/document/GraphEndpoint.cjs.map +1 -0
  54. package/lib/cjs/graph/document/GraphJsonValue.cjs +82 -0
  55. package/lib/cjs/graph/document/GraphJsonValue.cjs.map +1 -0
  56. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs +4 -0
  57. package/lib/cjs/graph/document/GraphLoopConfiguration.cjs.map +1 -0
  58. package/lib/cjs/graph/document/GraphNodeBinding.cjs +27 -0
  59. package/lib/cjs/graph/document/GraphNodeBinding.cjs.map +1 -0
  60. package/lib/cjs/graph/document/GraphNodeInstance.cjs +4 -0
  61. package/lib/cjs/graph/document/GraphNodeInstance.cjs.map +1 -0
  62. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs +16 -0
  63. package/lib/cjs/graph/document/GraphWorkflowDocument.cjs.map +1 -0
  64. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs +267 -0
  65. package/lib/cjs/graph/document/GraphWorkflowDocumentBuilder.cjs.map +1 -0
  66. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs +78 -0
  67. package/lib/cjs/graph/document/GraphWorkflowDocumentReader.cjs.map +1 -0
  68. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs +70 -0
  69. package/lib/cjs/graph/document/GraphWorkflowDocumentSerializer.cjs.map +1 -0
  70. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs +4 -0
  71. package/lib/cjs/graph/document/GraphWorkflowUiState.cjs.map +1 -0
  72. package/lib/cjs/graph/document/index.cjs +30 -0
  73. package/lib/cjs/graph/document/index.cjs.map +1 -0
  74. package/lib/cjs/graph/index.cjs +2 -0
  75. package/lib/cjs/graph/index.cjs.map +1 -1
  76. package/lib/cjs/graph/snapshot.cjs +337 -0
  77. package/lib/cjs/graph/snapshot.cjs.map +1 -1
  78. package/lib/cjs/index.cjs +3 -3
  79. package/lib/esm/graph/catalog/GraphConnectionPolicy.js +16 -0
  80. package/lib/esm/graph/catalog/GraphConnectionPolicy.js.map +1 -0
  81. package/lib/esm/graph/catalog/GraphCredentialReference.js +9 -0
  82. package/lib/esm/graph/catalog/GraphCredentialReference.js.map +1 -0
  83. package/lib/esm/graph/catalog/GraphCredentialRequirement.js +12 -0
  84. package/lib/esm/graph/catalog/GraphCredentialRequirement.js.map +1 -0
  85. package/lib/esm/graph/catalog/GraphDynamicPortRule.js +25 -0
  86. package/lib/esm/graph/catalog/GraphDynamicPortRule.js.map +1 -0
  87. package/lib/esm/graph/catalog/GraphIconReference.js +18 -0
  88. package/lib/esm/graph/catalog/GraphIconReference.js.map +1 -0
  89. package/lib/esm/graph/catalog/GraphManifestCompiler.js +294 -0
  90. package/lib/esm/graph/catalog/GraphManifestCompiler.js.map +1 -0
  91. package/lib/esm/graph/catalog/GraphNodeCapability.js +17 -0
  92. package/lib/esm/graph/catalog/GraphNodeCapability.js.map +1 -0
  93. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js +7 -0
  94. package/lib/esm/graph/catalog/GraphNodeDisplayManifest.js.map +1 -0
  95. package/lib/esm/graph/catalog/GraphNodeManifest.js +17 -0
  96. package/lib/esm/graph/catalog/GraphNodeManifest.js.map +1 -0
  97. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js +42 -0
  98. package/lib/esm/graph/catalog/GraphNodeManifestSerialization.js.map +1 -0
  99. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js +23 -0
  100. package/lib/esm/graph/catalog/GraphNodeMethodManifest.js.map +1 -0
  101. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js +7 -0
  102. package/lib/esm/graph/catalog/GraphNodePolicyManifest.js.map +1 -0
  103. package/lib/esm/graph/catalog/GraphParameterBase.js +2 -0
  104. package/lib/esm/graph/catalog/GraphParameterBase.js.map +1 -0
  105. package/lib/esm/graph/catalog/GraphParameterDefinition.js +23 -0
  106. package/lib/esm/graph/catalog/GraphParameterDefinition.js.map +1 -0
  107. package/lib/esm/graph/catalog/GraphParameterOption.js +13 -0
  108. package/lib/esm/graph/catalog/GraphParameterOption.js.map +1 -0
  109. package/lib/esm/graph/catalog/GraphParameterValidation.js +50 -0
  110. package/lib/esm/graph/catalog/GraphParameterValidation.js.map +1 -0
  111. package/lib/esm/graph/catalog/GraphPortManifest.js +13 -0
  112. package/lib/esm/graph/catalog/GraphPortManifest.js.map +1 -0
  113. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js +13 -0
  114. package/lib/esm/graph/catalog/GraphResourceLocatorMode.js.map +1 -0
  115. package/lib/esm/graph/catalog/GraphValueSchema.js +19 -0
  116. package/lib/esm/graph/catalog/GraphValueSchema.js.map +1 -0
  117. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js +156 -0
  118. package/lib/esm/graph/catalog/GraphValueSchemaDerivation.js.map +1 -0
  119. package/lib/esm/graph/catalog/GraphVisibilityExpression.js +58 -0
  120. package/lib/esm/graph/catalog/GraphVisibilityExpression.js.map +1 -0
  121. package/lib/esm/graph/catalog/index.js +22 -0
  122. package/lib/esm/graph/catalog/index.js.map +1 -0
  123. package/lib/esm/graph/constants.js +13 -0
  124. package/lib/esm/graph/constants.js.map +1 -1
  125. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js +290 -0
  126. package/lib/esm/graph/document/GraphDecoratedWorkflowCompiler.js.map +1 -0
  127. package/lib/esm/graph/document/GraphEdgeInstance.js +2 -0
  128. package/lib/esm/graph/document/GraphEdgeInstance.js.map +1 -0
  129. package/lib/esm/graph/document/GraphEndpoint.js +21 -0
  130. package/lib/esm/graph/document/GraphEndpoint.js.map +1 -0
  131. package/lib/esm/graph/document/GraphJsonValue.js +73 -0
  132. package/lib/esm/graph/document/GraphJsonValue.js.map +1 -0
  133. package/lib/esm/graph/document/GraphLoopConfiguration.js +2 -0
  134. package/lib/esm/graph/document/GraphLoopConfiguration.js.map +1 -0
  135. package/lib/esm/graph/document/GraphNodeBinding.js +22 -0
  136. package/lib/esm/graph/document/GraphNodeBinding.js.map +1 -0
  137. package/lib/esm/graph/document/GraphNodeInstance.js +2 -0
  138. package/lib/esm/graph/document/GraphNodeInstance.js.map +1 -0
  139. package/lib/esm/graph/document/GraphWorkflowDocument.js +12 -0
  140. package/lib/esm/graph/document/GraphWorkflowDocument.js.map +1 -0
  141. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js +261 -0
  142. package/lib/esm/graph/document/GraphWorkflowDocumentBuilder.js.map +1 -0
  143. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js +62 -0
  144. package/lib/esm/graph/document/GraphWorkflowDocumentReader.js.map +1 -0
  145. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js +63 -0
  146. package/lib/esm/graph/document/GraphWorkflowDocumentSerializer.js.map +1 -0
  147. package/lib/esm/graph/document/GraphWorkflowUiState.js +2 -0
  148. package/lib/esm/graph/document/GraphWorkflowUiState.js.map +1 -0
  149. package/lib/esm/graph/document/index.js +13 -0
  150. package/lib/esm/graph/document/index.js.map +1 -0
  151. package/lib/esm/graph/index.js +2 -0
  152. package/lib/esm/graph/index.js.map +1 -1
  153. package/lib/esm/graph/snapshot.js +333 -0
  154. package/lib/esm/graph/snapshot.js.map +1 -1
  155. package/lib/esm/index.js +3 -3
  156. package/lib/types/graph/catalog/GraphConnectionPolicy.d.cts +9 -0
  157. package/lib/types/graph/catalog/GraphConnectionPolicy.d.mts +9 -0
  158. package/lib/types/graph/catalog/GraphCredentialReference.d.cts +6 -0
  159. package/lib/types/graph/catalog/GraphCredentialReference.d.mts +6 -0
  160. package/lib/types/graph/catalog/GraphCredentialRequirement.d.cts +7 -0
  161. package/lib/types/graph/catalog/GraphCredentialRequirement.d.mts +7 -0
  162. package/lib/types/graph/catalog/GraphDynamicPortRule.d.cts +22 -0
  163. package/lib/types/graph/catalog/GraphDynamicPortRule.d.mts +22 -0
  164. package/lib/types/graph/catalog/GraphIconReference.d.cts +12 -0
  165. package/lib/types/graph/catalog/GraphIconReference.d.mts +12 -0
  166. package/lib/types/graph/catalog/GraphManifestCompiler.d.cts +14 -0
  167. package/lib/types/graph/catalog/GraphManifestCompiler.d.mts +14 -0
  168. package/lib/types/graph/catalog/GraphNodeCapability.d.cts +4 -0
  169. package/lib/types/graph/catalog/GraphNodeCapability.d.mts +4 -0
  170. package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.cts +16 -0
  171. package/lib/types/graph/catalog/GraphNodeDisplayManifest.d.mts +16 -0
  172. package/lib/types/graph/catalog/GraphNodeManifest.d.cts +26 -0
  173. package/lib/types/graph/catalog/GraphNodeManifest.d.mts +26 -0
  174. package/lib/types/graph/catalog/GraphNodeManifestSerialization.d.cts +7 -0
  175. package/lib/types/graph/catalog/GraphNodeManifestSerialization.d.mts +7 -0
  176. package/lib/types/graph/catalog/GraphNodeMethodManifest.d.cts +10 -0
  177. package/lib/types/graph/catalog/GraphNodeMethodManifest.d.mts +10 -0
  178. package/lib/types/graph/catalog/GraphNodePolicyManifest.d.cts +11 -0
  179. package/lib/types/graph/catalog/GraphNodePolicyManifest.d.mts +11 -0
  180. package/lib/types/graph/catalog/GraphParameterBase.d.cts +14 -0
  181. package/lib/types/graph/catalog/GraphParameterBase.d.mts +14 -0
  182. package/lib/types/graph/catalog/GraphParameterDefinition.d.cts +66 -0
  183. package/lib/types/graph/catalog/GraphParameterDefinition.d.mts +66 -0
  184. package/lib/types/graph/catalog/GraphParameterOption.d.cts +8 -0
  185. package/lib/types/graph/catalog/GraphParameterOption.d.mts +8 -0
  186. package/lib/types/graph/catalog/GraphParameterValidation.d.cts +25 -0
  187. package/lib/types/graph/catalog/GraphParameterValidation.d.mts +25 -0
  188. package/lib/types/graph/catalog/GraphPortManifest.d.cts +21 -0
  189. package/lib/types/graph/catalog/GraphPortManifest.d.mts +21 -0
  190. package/lib/types/graph/catalog/GraphResourceLocatorMode.d.cts +10 -0
  191. package/lib/types/graph/catalog/GraphResourceLocatorMode.d.mts +10 -0
  192. package/lib/types/graph/catalog/GraphValueSchema.d.cts +44 -0
  193. package/lib/types/graph/catalog/GraphValueSchema.d.mts +44 -0
  194. package/lib/types/graph/catalog/GraphValueSchemaDerivation.d.cts +9 -0
  195. package/lib/types/graph/catalog/GraphValueSchemaDerivation.d.mts +9 -0
  196. package/lib/types/graph/catalog/GraphVisibilityExpression.d.cts +22 -0
  197. package/lib/types/graph/catalog/GraphVisibilityExpression.d.mts +22 -0
  198. package/lib/types/graph/catalog/index.d.cts +21 -0
  199. package/lib/types/graph/catalog/index.d.mts +21 -0
  200. package/lib/types/graph/constants.d.cts +8 -0
  201. package/lib/types/graph/constants.d.mts +8 -0
  202. package/lib/types/graph/document/GraphDecoratedWorkflowCompiler.d.cts +26 -0
  203. package/lib/types/graph/document/GraphDecoratedWorkflowCompiler.d.mts +26 -0
  204. package/lib/types/graph/document/GraphEdgeInstance.d.cts +12 -0
  205. package/lib/types/graph/document/GraphEdgeInstance.d.mts +12 -0
  206. package/lib/types/graph/document/GraphEndpoint.d.cts +13 -0
  207. package/lib/types/graph/document/GraphEndpoint.d.mts +13 -0
  208. package/lib/types/graph/document/GraphJsonValue.d.cts +11 -0
  209. package/lib/types/graph/document/GraphJsonValue.d.mts +11 -0
  210. package/lib/types/graph/document/GraphLoopConfiguration.d.cts +24 -0
  211. package/lib/types/graph/document/GraphLoopConfiguration.d.mts +24 -0
  212. package/lib/types/graph/document/GraphNodeBinding.d.cts +21 -0
  213. package/lib/types/graph/document/GraphNodeBinding.d.mts +21 -0
  214. package/lib/types/graph/document/GraphNodeInstance.d.cts +16 -0
  215. package/lib/types/graph/document/GraphNodeInstance.d.mts +16 -0
  216. package/lib/types/graph/document/GraphWorkflowDocument.d.cts +33 -0
  217. package/lib/types/graph/document/GraphWorkflowDocument.d.mts +33 -0
  218. package/lib/types/graph/document/GraphWorkflowDocumentBuilder.d.cts +28 -0
  219. package/lib/types/graph/document/GraphWorkflowDocumentBuilder.d.mts +28 -0
  220. package/lib/types/graph/document/GraphWorkflowDocumentReader.d.cts +21 -0
  221. package/lib/types/graph/document/GraphWorkflowDocumentReader.d.mts +21 -0
  222. package/lib/types/graph/document/GraphWorkflowDocumentSerializer.d.cts +5 -0
  223. package/lib/types/graph/document/GraphWorkflowDocumentSerializer.d.mts +5 -0
  224. package/lib/types/graph/document/GraphWorkflowUiState.d.cts +29 -0
  225. package/lib/types/graph/document/GraphWorkflowUiState.d.mts +29 -0
  226. package/lib/types/graph/document/index.d.cts +12 -0
  227. package/lib/types/graph/document/index.d.mts +12 -0
  228. package/lib/types/graph/index.d.cts +2 -0
  229. package/lib/types/graph/index.d.mts +2 -0
  230. package/lib/types/graph/snapshot.d.cts +67 -7
  231. package/lib/types/graph/snapshot.d.mts +67 -7
  232. package/lib/types/graph/types.d.cts +1 -1
  233. package/lib/types/graph/types.d.mts +1 -1
  234. package/lib/types/index.d.cts +3 -3
  235. package/lib/types/index.d.mts +3 -3
  236. package/package.json +5 -5
@@ -0,0 +1,73 @@
1
+ export const GRAPH_UNSAFE_OBJECT_KEYS = [
2
+ "__proto__",
3
+ "prototype",
4
+ "constructor",
5
+ ];
6
+ export function isGraphUnsafeObjectKey(key) {
7
+ return GRAPH_UNSAFE_OBJECT_KEYS.includes(key);
8
+ }
9
+ function isPlainJsonObject(value) {
10
+ if (!value || typeof value !== "object" || Array.isArray(value))
11
+ return false;
12
+ const prototype = Object.getPrototypeOf(value);
13
+ return prototype === Object.prototype || prototype === null;
14
+ }
15
+ export function isGraphJsonPrimitive(value) {
16
+ return (value === null ||
17
+ typeof value === "string" ||
18
+ (typeof value === "number" && Number.isFinite(value)) ||
19
+ typeof value === "boolean");
20
+ }
21
+ export function isGraphJsonValue(value) {
22
+ if (isGraphJsonPrimitive(value))
23
+ return true;
24
+ if (Array.isArray(value)) {
25
+ return value.every((entry) => isGraphJsonValue(entry));
26
+ }
27
+ if (isPlainJsonObject(value)) {
28
+ return Reflect.ownKeys(value).every((key) => typeof key === "string" &&
29
+ !isGraphUnsafeObjectKey(key) &&
30
+ isGraphJsonValue(value[key]));
31
+ }
32
+ return false;
33
+ }
34
+ export function isGraphJsonSafeValue(value) {
35
+ if (value === undefined)
36
+ return false;
37
+ if (typeof value === "number")
38
+ return Number.isFinite(value);
39
+ if (typeof value === "function")
40
+ return false;
41
+ if (isGraphJsonValue(value))
42
+ return true;
43
+ if (Array.isArray(value)) {
44
+ return value.every((entry) => isGraphJsonSafeValue(entry));
45
+ }
46
+ if (isPlainJsonObject(value)) {
47
+ const keys = Reflect.ownKeys(value);
48
+ for (const key of keys) {
49
+ if (typeof key !== "string")
50
+ return false;
51
+ if (isGraphUnsafeObjectKey(key))
52
+ return false;
53
+ if (!isGraphJsonSafeValue(value[key])) {
54
+ return false;
55
+ }
56
+ }
57
+ return true;
58
+ }
59
+ return false;
60
+ }
61
+ export function cloneGraphJsonValue(value) {
62
+ if (value === null || typeof value !== "object")
63
+ return value;
64
+ if (Array.isArray(value)) {
65
+ return value.map((entry) => cloneGraphJsonValue(entry));
66
+ }
67
+ const cloned = {};
68
+ for (const [key, entry] of Object.entries(value)) {
69
+ cloned[key] = cloneGraphJsonValue(entry);
70
+ }
71
+ return cloned;
72
+ }
73
+ //# sourceMappingURL=GraphJsonValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphJsonValue.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphJsonValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphLoopConfiguration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphLoopConfiguration.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphLoopConfiguration.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { isGraphJsonValue } from "./GraphJsonValue.js";
2
+ export function isGraphInputBindingMode(value) {
3
+ return value === "edge" || value === "literal" || value === "expression";
4
+ }
5
+ export function isGraphInputBinding(value) {
6
+ if (!value || typeof value !== "object" || Array.isArray(value))
7
+ return false;
8
+ const mode = value["mode"];
9
+ if (mode === "edge")
10
+ return Reflect.ownKeys(value).length === 1;
11
+ if (mode === "literal") {
12
+ const value_ = value["value"];
13
+ return (Object.keys(value).length === 2 &&
14
+ isGraphJsonValue(value_));
15
+ }
16
+ if (mode === "expression") {
17
+ return (Object.keys(value).length === 2 &&
18
+ typeof value["expression"] === "string");
19
+ }
20
+ return false;
21
+ }
22
+ //# sourceMappingURL=GraphNodeBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphNodeBinding.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphNodeBinding.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,4BAAyB;AA6BpD,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,YAAY,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,IAAI,GAAI,KAAiC,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAChE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,MAAM,GAAI,KAAiC,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,MAAM,KAAK,CAAC;YAC1D,gBAAgB,CAAC,MAAM,CAAC,CACzB,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,OAAO,CACL,MAAM,CAAC,IAAI,CAAC,KAAgC,CAAC,CAAC,MAAM,KAAK,CAAC;YAC1D,OAAQ,KAAiC,CAAC,YAAY,CAAC,KAAK,QAAQ,CACrE,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphNodeInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphNodeInstance.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphNodeInstance.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ export function isGraphWorkflowDocumentShape(value) {
2
+ if (!value || typeof value !== "object" || Array.isArray(value))
3
+ return false;
4
+ const record = value;
5
+ return (typeof record["id"] === "string" &&
6
+ typeof record["name"] === "string" &&
7
+ Array.isArray(record["inputs"]) &&
8
+ Array.isArray(record["outputs"]) &&
9
+ Array.isArray(record["nodes"]) &&
10
+ Array.isArray(record["edges"]));
11
+ }
12
+ //# sourceMappingURL=GraphWorkflowDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWorkflowDocument.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphWorkflowDocument.ts"],"names":[],"mappings":"AA6BA,MAAM,UAAU,4BAA4B,CAAC,KAAc;IAQzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9E,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,OAAO,CACL,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,QAAQ;QAClC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,261 @@
1
+ import { ValidationError } from "@decaf-ts/db-decorators";
2
+ import { isGraphJsonSafeValue, isGraphUnsafeObjectKey, } from "./GraphJsonValue.js";
3
+ import { isGraphEndpoint, isGraphNodeEndpoint, isGraphWorkflowEndpoint } from "./GraphEndpoint.js";
4
+ import { isGraphInputBinding } from "./GraphNodeBinding.js";
5
+ import { isGraphValueSchema } from "./../catalog/GraphValueSchema.js";
6
+ export class GraphWorkflowDocumentBuilder {
7
+ constructor(id, name) {
8
+ this.document = {
9
+ id,
10
+ name: name ?? "",
11
+ inputs: [],
12
+ outputs: [],
13
+ nodes: [],
14
+ edges: [],
15
+ };
16
+ }
17
+ addInput(port) {
18
+ this.document.inputs.push(port);
19
+ return this;
20
+ }
21
+ addOutput(port) {
22
+ this.document.outputs.push(port);
23
+ return this;
24
+ }
25
+ addNode(node) {
26
+ this.document.nodes.push({
27
+ ...node,
28
+ parameters: node.parameters ?? {},
29
+ });
30
+ return this;
31
+ }
32
+ addEdge(edge) {
33
+ this.document.edges.push(edge);
34
+ return this;
35
+ }
36
+ setSettings(settings) {
37
+ this.document.settings = settings;
38
+ return this;
39
+ }
40
+ setMetadata(metadata) {
41
+ this.document.metadata = metadata;
42
+ return this;
43
+ }
44
+ setUi(ui) {
45
+ this.document.ui = ui;
46
+ return this;
47
+ }
48
+ build() {
49
+ assertGraphWorkflowDocumentValid(this.document);
50
+ return {
51
+ id: this.document.id,
52
+ name: this.document.name,
53
+ inputs: this.document.inputs.map((port) => ({ ...port })),
54
+ outputs: this.document.outputs.map((port) => ({ ...port })),
55
+ nodes: this.document.nodes.map((node) => ({ ...node })),
56
+ edges: this.document.edges.map((edge) => ({ ...edge })),
57
+ settings: this.document.settings,
58
+ metadata: this.document.metadata,
59
+ ui: this.document.ui,
60
+ };
61
+ }
62
+ }
63
+ export function assertGraphWorkflowDocumentValid(document, context = { seen: [] }) {
64
+ if (context.seen.includes(document)) {
65
+ throw new ValidationError(`Document '${describeDocument(document)}' contains a loop body that references itself (cyclic document)`);
66
+ }
67
+ if (typeof document.id !== "string" || !document.id) {
68
+ throw new ValidationError("Document 'id' is required and must be a non-empty string");
69
+ }
70
+ if (typeof document.name !== "string" || !document.name) {
71
+ throw new ValidationError("Document 'name' is required and must be a non-empty string");
72
+ }
73
+ const workflowPorts = new Set();
74
+ for (const port of [...document.inputs, ...document.outputs]) {
75
+ if (typeof port.id !== "string" || !port.id) {
76
+ throw new ValidationError("Workflow port 'id' is required and must be a non-empty string");
77
+ }
78
+ if (workflowPorts.has(port.id)) {
79
+ throw new ValidationError(`Workflow port '${port.id}' is declared more than once; workflow port ids must be unique`);
80
+ }
81
+ if (port.schema !== undefined && !isGraphValueSchema(port.schema)) {
82
+ throw new ValidationError(`Workflow port '${port.id}' schema must be a valid GraphValueSchema`);
83
+ }
84
+ workflowPorts.add(port.id);
85
+ }
86
+ const nestedContext = {
87
+ seen: [...context.seen, document],
88
+ };
89
+ const nodeIds = new Set();
90
+ for (const node of document.nodes) {
91
+ assertGraphNodeValid(node, nodeIds);
92
+ }
93
+ for (const node of document.nodes) {
94
+ if (node.loop) {
95
+ assertGraphLoopConfigurationValid(node, node.loop, nestedContext);
96
+ }
97
+ }
98
+ const edgeIds = new Set();
99
+ for (const edge of document.edges) {
100
+ assertGraphEdgeValid(edge, edgeIds);
101
+ }
102
+ for (const edge of document.edges) {
103
+ assertEdgeEndpoint(edge.source, document, workflowPorts, nodeIds, `Edge '${edge.id}' source`);
104
+ assertEdgeEndpoint(edge.target, document, workflowPorts, nodeIds, `Edge '${edge.id}' target`);
105
+ }
106
+ if (document.settings !== undefined && !isGraphJsonSafeValue(document.settings)) {
107
+ throw new ValidationError("Document settings must be JSON-safe (a map of JSON-safe values)");
108
+ }
109
+ if (document.metadata !== undefined && !isGraphJsonSafeValue(document.metadata)) {
110
+ throw new ValidationError("Document metadata must be JSON-safe: functions, class instances, undefined, NaN/Infinity, symbol keys, or unsafe prototype keys are not allowed");
111
+ }
112
+ if (document.ui !== undefined && !isGraphJsonSafeValue(document.ui)) {
113
+ throw new ValidationError("Document ui must be JSON-safe: functions, class instances, undefined, NaN/Infinity, symbol keys, or unsafe prototype keys are not allowed");
114
+ }
115
+ }
116
+ function describeDocument(document) {
117
+ const id = document?.["id"];
118
+ return typeof id === "string" ? id : "<unnamed document>";
119
+ }
120
+ function assertGraphNodeValid(node, nodeIds) {
121
+ if (typeof node.id !== "string" || !node.id) {
122
+ throw new ValidationError("Node 'id' is required and must be a non-empty string");
123
+ }
124
+ if (nodeIds.has(node.id)) {
125
+ throw new ValidationError(`Node id '${node.id}' is declared more than once; node ids must be unique`);
126
+ }
127
+ if (typeof node.kind !== "string" || !node.kind) {
128
+ throw new ValidationError(`Node '${node.id}' must declare a non-empty string 'kind'`);
129
+ }
130
+ if (node.parameters === undefined || node.parameters === null) {
131
+ throw new ValidationError(`Node '${node.id}' parameters must be present (an empty object when there are none)`);
132
+ }
133
+ nodeIds.add(node.id);
134
+ if (node.inputBindings) {
135
+ for (const [key, binding] of Object.entries(node.inputBindings)) {
136
+ if (isGraphUnsafeObjectKey(key)) {
137
+ throw new ValidationError(`Node '${node.id}' input binding key '${key}' is not allowed (unsafe prototype-pollutant key)`);
138
+ }
139
+ if (!isGraphInputBinding(binding)) {
140
+ throw new ValidationError(`Node '${node.id}' input binding for '${key}' must be a valid GraphInputBinding (edge, literal, or expression)`);
141
+ }
142
+ if (binding.mode === "literal" && !isGraphJsonSafeValue(binding.value)) {
143
+ throw new ValidationError(`Node '${node.id}' literal binding for '${key}' must contain JSON-safe values`);
144
+ }
145
+ if (binding.mode === "expression" && !binding.expression) {
146
+ throw new ValidationError(`Node '${node.id}' expression binding for '${key}' must contain a non-empty expression`);
147
+ }
148
+ }
149
+ }
150
+ if (node.outputBindings) {
151
+ for (const [key, binding] of Object.entries(node.outputBindings)) {
152
+ if (isGraphUnsafeObjectKey(key)) {
153
+ throw new ValidationError(`Node '${node.id}' output binding key '${key}' is not allowed (unsafe prototype-pollutant key)`);
154
+ }
155
+ if (!binding || typeof binding !== "object" || Array.isArray(binding)) {
156
+ throw new ValidationError(`Node '${node.id}' output binding for '${key}' must be an object with enabled and alias settings`);
157
+ }
158
+ }
159
+ }
160
+ if (!isGraphJsonSafeValue(node.parameters)) {
161
+ throw new ValidationError(`Node '${node.id}' parameters must be JSON-safe: functions, class instances, undefined, NaN/Infinity, symbol keys, or unsafe prototype keys are not allowed`);
162
+ }
163
+ }
164
+ function assertGraphLoopConfigurationValid(node, config, context) {
165
+ if (!config.body || typeof config.body !== "object") {
166
+ throw new ValidationError(`Node '${node.id}' loop configuration requires a body document`);
167
+ }
168
+ assertGraphWorkflowDocumentValid(config.body, context);
169
+ if (config.maxIterations !== undefined &&
170
+ (!Number.isFinite(config.maxIterations) || config.maxIterations <= 0)) {
171
+ throw new ValidationError(`Node '${node.id}' loop maxIterations must be a positive number`);
172
+ }
173
+ if (config.timeoutMs !== undefined &&
174
+ (typeof config.timeoutMs !== "number" || config.timeoutMs <= 0)) {
175
+ throw new ValidationError(`Node '${node.id}' loop timeoutMs must be a positive number in milliseconds`);
176
+ }
177
+ if (config.concurrency !== undefined &&
178
+ (typeof config.concurrency !== "number" || config.concurrency <= 0)) {
179
+ throw new ValidationError(`Node '${node.id}' loop concurrency must be a positive number`);
180
+ }
181
+ for (const mappings of [config.inputMappings, config.outputMappings]) {
182
+ if (!mappings)
183
+ continue;
184
+ for (const [key, reference] of Object.entries(mappings)) {
185
+ if (isGraphUnsafeObjectKey(key)) {
186
+ throw new ValidationError(`Node '${node.id}' loop mapping key '${key}' is not allowed (unsafe prototype-pollutant key)`);
187
+ }
188
+ assertGraphValueReferenceShape(reference, node.id, key);
189
+ }
190
+ }
191
+ }
192
+ function assertGraphValueReferenceShape(reference, nodeId, mappingKey) {
193
+ if (!reference || typeof reference !== "object") {
194
+ throw new ValidationError(`Node '${nodeId}' loop mapping '${mappingKey}' must reference a workflow port, node port, literal, or expression`);
195
+ }
196
+ switch (reference.source) {
197
+ case "workflow":
198
+ if (typeof reference.port !== "string" || !reference.port) {
199
+ throw new ValidationError(`Node '${nodeId}' loop mapping '${mappingKey}' referencing a workflow must reference a port identifier`);
200
+ }
201
+ break;
202
+ case "node":
203
+ if (typeof reference.nodeId !== "string" ||
204
+ !reference.nodeId ||
205
+ typeof reference.port !== "string" ||
206
+ !reference.port) {
207
+ throw new ValidationError(`Node '${nodeId}' loop mapping '${mappingKey}' referencing a node must reference a node id and a port`);
208
+ }
209
+ break;
210
+ case "literal":
211
+ if (!isGraphJsonSafeValue(reference.value)) {
212
+ throw new ValidationError(`Node '${nodeId}' loop mapping '${mappingKey}' literal references must be JSON-safe values`);
213
+ }
214
+ break;
215
+ case "expression":
216
+ if (typeof reference.expression !== "string" || !reference.expression) {
217
+ throw new ValidationError(`Node '${nodeId}' loop mapping '${mappingKey}' expression references must be non-empty expressions`);
218
+ }
219
+ break;
220
+ default:
221
+ throw new ValidationError(`Node '${nodeId}' loop mapping '${mappingKey}' must use a workflow, node, literal, or expression reference source`);
222
+ }
223
+ }
224
+ function assertGraphEdgeValid(edge, edgeIds) {
225
+ if (typeof edge.id !== "string" || !edge.id) {
226
+ throw new ValidationError("Edge 'id' is required and must be a non-empty string");
227
+ }
228
+ if (edgeIds.has(edge.id)) {
229
+ throw new ValidationError(`Edge id '${edge.id}' is declared more than once; edge ids must be unique`);
230
+ }
231
+ if (!isGraphEndpoint(edge.source)) {
232
+ throw new ValidationError(`Edge '${edge.id}' source endpoint is not a valid GraphEndpoint`);
233
+ }
234
+ if (!isGraphEndpoint(edge.target)) {
235
+ throw new ValidationError(`Edge '${edge.id}' target endpoint is not a valid GraphEndpoint`);
236
+ }
237
+ if (edge.type !== "data" && edge.type !== "connection") {
238
+ throw new ValidationError(`Edge '${edge.id}' type '${String(edge.type)}' is not a valid edge type (data or connection are allowed)`);
239
+ }
240
+ edgeIds.add(edge.id);
241
+ if (!isGraphJsonSafeValue(edge)) {
242
+ throw new ValidationError(`Edge '${edge.id}' contains values that are not JSON-safe: functions, class instances, undefined, NaN/Infinity, symbol keys, or unsafe prototype keys are not allowed`);
243
+ }
244
+ }
245
+ function assertEdgeEndpoint(endpoint, document, workflowPorts, nodeIds, context) {
246
+ if (isGraphWorkflowEndpoint(endpoint)) {
247
+ if (!workflowPorts.has(endpoint.port)) {
248
+ throw new ValidationError(`${context} references workflow port '${endpoint.port}' which is not declared on the document`);
249
+ }
250
+ return;
251
+ }
252
+ if (isGraphNodeEndpoint(endpoint)) {
253
+ if (!nodeIds.has(endpoint.nodeId)) {
254
+ throw new ValidationError(`${context} references node '${endpoint.nodeId}' which is not part of the document`);
255
+ }
256
+ if (typeof endpoint.port !== "string" || !endpoint.port) {
257
+ throw new ValidationError(`${context} node endpoints must reference a non-empty port identifier`);
258
+ }
259
+ }
260
+ }
261
+ //# sourceMappingURL=GraphWorkflowDocumentBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWorkflowDocumentBuilder.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphWorkflowDocumentBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { isGraphUnsafeObjectKey } from "./GraphJsonValue.js";
2
+ import { isGraphWorkflowDocumentShape } from "./GraphWorkflowDocument.js";
3
+ export function graphWorkflowDocumentOf(value) {
4
+ if (!isGraphWorkflowDocumentShape(value))
5
+ return undefined;
6
+ return value;
7
+ }
8
+ export function graphWorkflowNodeOf(document, nodeId) {
9
+ return document?.nodes.find((node) => node.id === nodeId);
10
+ }
11
+ export function graphWorkflowEdgeOf(document, edgeId) {
12
+ return document?.edges.find((edge) => edge.id === edgeId);
13
+ }
14
+ export function graphWorkflowPortsOf(document) {
15
+ const inputs = document?.inputs ?? [];
16
+ const outputs = document?.outputs ?? [];
17
+ return { inputs, outputs };
18
+ }
19
+ export function graphWorkflowSettingsOf(document) {
20
+ return { ...(document?.settings ?? {}) };
21
+ }
22
+ export function graphWorkflowEdgesOf(document) {
23
+ return document?.edges ?? [];
24
+ }
25
+ export function graphWorkflowNodeEdgesOf(document, nodeId) {
26
+ return (document?.edges ?? []).filter((edge) => graphNodeEndpointId(edge.source) === nodeId || graphNodeEndpointId(edge.target) === nodeId);
27
+ }
28
+ export function graphNodeEndpointId(endpoint) {
29
+ if (endpoint && endpoint.scope === "node") {
30
+ return endpoint.nodeId;
31
+ }
32
+ return undefined;
33
+ }
34
+ export function graphWorkflowNodeUiOf(document, nodeId) {
35
+ return graphWorkflowNodeOf(document, nodeId)?.ui;
36
+ }
37
+ export function graphWorkflowUiOf(document) {
38
+ return document.ui ?? undefined;
39
+ }
40
+ export function graphWorkflowUiValueOf(document, key) {
41
+ const ui = graphWorkflowUiOf(document);
42
+ if (!ui || isGraphUnsafeObjectKey(key))
43
+ return undefined;
44
+ return ui[key];
45
+ }
46
+ export function graphWorkflowDocumentSettingOf(document, key) {
47
+ return hasSetting(document?.settings, key)
48
+ ? document.settings[key]
49
+ : undefined;
50
+ }
51
+ export function graphWorkflowDocumentMetadataValueOf(document, key) {
52
+ if (!document?.metadata ||
53
+ isGraphUnsafeObjectKey(key) ||
54
+ !(key in document.metadata)) {
55
+ return undefined;
56
+ }
57
+ return document.metadata[key];
58
+ }
59
+ function hasSetting(settings, key) {
60
+ return Boolean(settings) && !isGraphUnsafeObjectKey(key) && key in settings;
61
+ }
62
+ //# sourceMappingURL=GraphWorkflowDocumentReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWorkflowDocumentReader.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphWorkflowDocumentReader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { ValidationError } from "@decaf-ts/db-decorators";
2
+ import { isGraphJsonSafeValue } from "./GraphJsonValue.js";
3
+ import { isGraphWorkflowDocumentShape } from "./GraphWorkflowDocument.js";
4
+ import { assertGraphWorkflowDocumentValid } from "./GraphWorkflowDocumentBuilder.js";
5
+ export function graphWorkflowDocumentSerializer(document) {
6
+ if (!isGraphWorkflowDocumentShape(document)) {
7
+ throw new ValidationError("Cannot serialize a graph workflow document: the value is not a canonical GraphWorkflowDocument shape");
8
+ }
9
+ try {
10
+ return JSON.stringify(document, null, 2);
11
+ }
12
+ catch (e) {
13
+ throw new ValidationError(`Cannot serialize graph workflow document '${document.id}': ${String(e)}`);
14
+ }
15
+ }
16
+ export function graphWorkflowDocumentDeserializer(serialised) {
17
+ let parsed;
18
+ try {
19
+ parsed = JSON.parse(serialised);
20
+ }
21
+ catch (e) {
22
+ throw new ValidationError(`Serialized graph workflow document is not valid JSON: ${String(e)}`);
23
+ }
24
+ if (!isGraphJsonSafeValue(parsed)) {
25
+ throw new ValidationError("Serialized graph workflow document contains JSON-unsafe values: functions, non-JSON objects, NaN/Infinity, symbol keys, unsafe prototype keys are rejected");
26
+ }
27
+ if (!isGraphWorkflowDocumentShape(parsed)) {
28
+ throw new ValidationError("Serialized graph workflow document is not shaped as a canonical GraphWorkflowDocument (id, name, inputs, outputs, nodes and edges are required)");
29
+ }
30
+ const document = parsed;
31
+ assertGraphWorkflowDocumentValid(document);
32
+ return document;
33
+ }
34
+ export function graphJsonSerializer(value, indentation) {
35
+ if (!isGraphJsonSafeValue(value)) {
36
+ throw new ValidationError("Cannot serialize a value: functions, class instances, undefined, NaN/Infinity, symbol keys, unsafe prototype keys, or cycles are not allowed");
37
+ }
38
+ try {
39
+ return JSON.stringify(value, null, indentation);
40
+ }
41
+ catch (e) {
42
+ throw new ValidationError(`Cannot serialize JSON-safe value: ${String(e)} (cycles and circular structures are not allowed inside graph JSON)`);
43
+ }
44
+ }
45
+ export function graphJsonParser(serialised) {
46
+ if (typeof serialised !== "string") {
47
+ if (typeof serialised === "object" && serialised !== null)
48
+ return serialised;
49
+ throw new ValidationError("Graph JSON parser accepts serialized strings (pass an object only when restoring a known-safe value)");
50
+ }
51
+ let parsed;
52
+ try {
53
+ parsed = JSON.parse(serialised);
54
+ }
55
+ catch (e) {
56
+ throw new ValidationError(`Serialized graph JSON is not valid JSON: ${String(e)}`);
57
+ }
58
+ if (!isGraphJsonSafeValue(parsed)) {
59
+ throw new ValidationError("Serialized graph JSON contains JSON-unsafe values: functions, non-JSON objects, NaN/Infinity, symbol keys, unsafe prototype keys are rejected");
60
+ }
61
+ return parsed;
62
+ }
63
+ //# sourceMappingURL=GraphWorkflowDocumentSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWorkflowDocumentSerializer.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphWorkflowDocumentSerializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,4BAAyB;AAExD,OAAO,EAAE,4BAA4B,EAAE,mCAAgC;AACvE,OAAO,EAAE,gCAAgC,EAAE,0CAAuC;AAElF,MAAM,UAAU,+BAA+B,CAC7C,QAA+B;IAE/B,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,eAAe,CACvB,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,6CAA6C,QAAQ,CAAC,EAAE,MAAM,MAAM,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,UAAkB;IAElB,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,yDAAyD,MAAM,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,eAAe,CACvB,4JAA4J,CAC7J,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,eAAe,CACvB,iJAAiJ,CAClJ,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,MAA0C,CAAC;IAC5D,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,WAAoB;IACtE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CACvB,8IAA8I,CAC/I,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,qCAAqC,MAAM,CAAC,CAAC,CAAC,qEAAqE,CACpH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,UAA4B;IAC1D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;YAAE,OAAO,UAAU,CAAC;QAC7E,MAAM,IAAI,eAAe,CACvB,sGAAsG,CACvG,CAAC;IACJ,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CACvB,4CAA4C,MAAM,CAAC,CAAC,CAAC,EAAE,CACxD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,eAAe,CACvB,+IAA+I,CAChJ,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GraphWorkflowUiState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphWorkflowUiState.js","sourceRoot":"","sources":["../../../../src/graph/document/GraphWorkflowUiState.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export * from "./GraphDecoratedWorkflowCompiler.js";
2
+ export * from "./GraphEdgeInstance.js";
3
+ export * from "./GraphEndpoint.js";
4
+ export * from "./GraphJsonValue.js";
5
+ export * from "./GraphLoopConfiguration.js";
6
+ export * from "./GraphNodeBinding.js";
7
+ export * from "./GraphNodeInstance.js";
8
+ export * from "./GraphWorkflowDocument.js";
9
+ export * from "./GraphWorkflowDocumentBuilder.js";
10
+ export * from "./GraphWorkflowDocumentReader.js";
11
+ export * from "./GraphWorkflowDocumentSerializer.js";
12
+ export * from "./GraphWorkflowUiState.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/graph/document/index.ts"],"names":[],"mappings":"AAAA,oDAAiD;AACjD,uCAAoC;AACpC,mCAAgC;AAChC,oCAAiC;AACjC,4CAAyC;AACzC,sCAAmC;AACnC,uCAAoC;AACpC,2CAAwC;AACxC,kDAA+C;AAC/C,iDAA8C;AAC9C,qDAAkD;AAClD,0CAAuC"}
@@ -6,6 +6,8 @@ export * from "./registry.js";
6
6
  export * from "./overrides/index.js";
7
7
  export * from "./snapshot.js";
8
8
  export * from "./reader.js";
9
+ export * from "./document/index.js";
10
+ export * from "./catalog/index.js";
9
11
  export * from "./types.js";
10
12
  export * from "./overrides/index.js";
11
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/index.ts"],"names":[],"mappings":"AAAA,iCAAsB;AACtB,8BAAqB;AAErB,+BAA4B;AAC5B,gCAA6B;AAC7B,8BAA2B;AAC3B,qCAA4B;AAC5B,8BAA2B;AAC3B,4BAAyB;AACzB,2BAAwB;AACxB,qCAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/index.ts"],"names":[],"mappings":"AAAA,iCAAsB;AACtB,8BAAqB;AAErB,+BAA4B;AAC5B,gCAA6B;AAC7B,8BAA2B;AAC3B,qCAA4B;AAC5B,8BAA2B;AAC3B,4BAAyB;AACzB,oCAA2B;AAC3B,mCAA0B;AAC1B,2BAAwB;AACxB,qCAA4B"}