@decaf-ts/integrations 0.3.8 → 0.3.10

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 (1167) hide show
  1. package/dist/integrations.cjs +2 -1649
  2. package/dist/integrations.cjs.map +1 -0
  3. package/dist/integrations.js +2 -1885
  4. package/dist/integrations.js.map +1 -0
  5. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
  6. package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
  7. package/lib/cjs/blob/azure/index.cjs +2 -2
  8. package/lib/cjs/blob/azure/index.cjs.map +1 -0
  9. package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
  10. package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
  11. package/lib/cjs/blob/core/BlobKey.cjs +2 -2
  12. package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
  13. package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
  14. package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
  15. package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
  16. package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
  17. package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
  18. package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
  19. package/lib/cjs/blob/core/BlobValue.cjs +2 -2
  20. package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
  21. package/lib/cjs/blob/core/index.cjs +2 -2
  22. package/lib/cjs/blob/core/index.cjs.map +1 -0
  23. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
  24. package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
  25. package/lib/cjs/blob/gcp/index.cjs +2 -2
  26. package/lib/cjs/blob/gcp/index.cjs.map +1 -0
  27. package/lib/cjs/blob/index.cjs +2 -2
  28. package/lib/cjs/blob/index.cjs.map +1 -0
  29. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
  30. package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
  31. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
  32. package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
  33. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
  34. package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
  35. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
  36. package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
  37. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
  38. package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
  39. package/lib/cjs/blob/ipfs/index.cjs +2 -2
  40. package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
  41. package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
  42. package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
  43. package/lib/cjs/blob/local/index.cjs +2 -2
  44. package/lib/cjs/blob/local/index.cjs.map +1 -0
  45. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
  46. package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
  47. package/lib/cjs/blob/memory/index.cjs +2 -2
  48. package/lib/cjs/blob/memory/index.cjs.map +1 -0
  49. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
  50. package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
  51. package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
  52. package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
  53. package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
  54. package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
  55. package/lib/cjs/blob/s3/index.cjs +2 -2
  56. package/lib/cjs/blob/s3/index.cjs.map +1 -0
  57. package/lib/cjs/docker/DockerComposeService.cjs +2 -2
  58. package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
  59. package/lib/cjs/docker/index.cjs +2 -2
  60. package/lib/cjs/docker/index.cjs.map +1 -0
  61. package/lib/cjs/graph/engine/constants.cjs +58 -0
  62. package/lib/cjs/graph/engine/constants.cjs.map +1 -0
  63. package/lib/cjs/graph/engine/decorators.cjs +4 -0
  64. package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
  65. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +20 -0
  66. package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
  67. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +27 -0
  68. package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
  69. package/lib/cjs/graph/engine/errors/GraphInputError.cjs +20 -0
  70. package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
  71. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +20 -0
  72. package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
  73. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +20 -0
  74. package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
  75. package/lib/cjs/graph/engine/errors/GraphPortError.cjs +20 -0
  76. package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
  77. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +20 -0
  78. package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
  79. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +20 -0
  80. package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
  81. package/lib/cjs/graph/engine/errors/index.cjs +31 -0
  82. package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
  83. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +4 -0
  84. package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
  85. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +40 -0
  86. package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
  87. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +37 -0
  88. package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
  89. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +4 -0
  90. package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
  91. package/lib/cjs/graph/engine/events/index.cjs +27 -0
  92. package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
  93. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +4 -0
  94. package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
  95. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +79 -0
  96. package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
  97. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +413 -0
  98. package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
  99. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +32 -0
  100. package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
  101. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +30 -0
  102. package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
  103. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +4 -0
  104. package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
  105. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +103 -0
  106. package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
  107. package/lib/cjs/graph/engine/execution/index.cjs +30 -0
  108. package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
  109. package/lib/cjs/graph/engine/index.cjs +84 -0
  110. package/lib/cjs/graph/engine/index.cjs.map +1 -0
  111. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +87 -0
  112. package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
  113. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +85 -0
  114. package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
  115. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +85 -0
  116. package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
  117. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +16 -0
  118. package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
  119. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +77 -0
  120. package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
  121. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +78 -0
  122. package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
  123. package/lib/cjs/graph/engine/loops/index.cjs +29 -0
  124. package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
  125. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +28 -0
  126. package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
  127. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +20 -0
  128. package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
  129. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +34 -0
  130. package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
  131. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +191 -0
  132. package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
  133. package/lib/cjs/graph/engine/pinning/index.cjs +27 -0
  134. package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
  135. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +4 -0
  136. package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
  137. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +4 -0
  138. package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
  139. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +4 -0
  140. package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
  141. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +4 -0
  142. package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
  143. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +197 -0
  144. package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
  145. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +172 -0
  146. package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
  147. package/lib/cjs/graph/engine/planning/GraphTopology.cjs +57 -0
  148. package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
  149. package/lib/cjs/graph/engine/planning/index.cjs +30 -0
  150. package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
  151. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +44 -0
  152. package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
  153. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +27 -0
  154. package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
  155. package/lib/cjs/graph/engine/registry/index.cjs +25 -0
  156. package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
  157. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +53 -0
  158. package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
  159. package/lib/cjs/graph/engine/snapshots/index.cjs +24 -0
  160. package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
  161. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +4 -0
  162. package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
  163. package/lib/cjs/graph/engine/store/GraphValueKey.cjs +4 -0
  164. package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
  165. package/lib/cjs/graph/engine/store/GraphValueStore.cjs +76 -0
  166. package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
  167. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +4 -0
  168. package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
  169. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +69 -0
  170. package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
  171. package/lib/cjs/graph/engine/store/index.cjs +28 -0
  172. package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
  173. package/lib/cjs/graph/engine/types.cjs +4 -0
  174. package/lib/cjs/graph/engine/types.cjs.map +1 -0
  175. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +33 -0
  176. package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
  177. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +58 -0
  178. package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
  179. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +52 -0
  180. package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
  181. package/lib/cjs/graph/engine/validation/index.cjs +26 -0
  182. package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
  183. package/lib/cjs/graph/index.cjs +10 -60
  184. package/lib/cjs/graph/index.cjs.map +1 -0
  185. package/lib/cjs/graph/shared/constants.cjs +44 -0
  186. package/lib/cjs/graph/shared/constants.cjs.map +1 -0
  187. package/lib/cjs/graph/shared/index.cjs +38 -0
  188. package/lib/cjs/graph/shared/index.cjs.map +1 -0
  189. package/lib/cjs/graph/shared/nodes/agent.cjs +110 -0
  190. package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
  191. package/lib/cjs/graph/shared/nodes/base.cjs +36 -0
  192. package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
  193. package/lib/cjs/graph/shared/nodes/category-styles.cjs +38 -0
  194. package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
  195. package/lib/cjs/graph/shared/nodes/flow-control.cjs +464 -0
  196. package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
  197. package/lib/cjs/graph/shared/nodes/index.cjs +35 -0
  198. package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
  199. package/lib/cjs/graph/shared/nodes/triggers.cjs +250 -0
  200. package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
  201. package/lib/cjs/graph/shared/types.cjs +4 -0
  202. package/lib/cjs/graph/shared/types.cjs.map +1 -0
  203. package/lib/cjs/index.cjs +5 -5
  204. package/lib/cjs/index.cjs.map +1 -0
  205. package/lib/cjs/keycloak/index.cjs +2 -2
  206. package/lib/cjs/keycloak/index.cjs.map +1 -0
  207. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
  208. package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
  209. package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
  210. package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
  211. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
  212. package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
  213. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
  214. package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
  215. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
  216. package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
  217. package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
  218. package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
  219. package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
  220. package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
  221. package/lib/cjs/keycloak/services/index.cjs +2 -2
  222. package/lib/cjs/keycloak/services/index.cjs.map +1 -0
  223. package/lib/cjs/keycloak/services/runtime.cjs +2 -2
  224. package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
  225. package/lib/cjs/keycloak/types.cjs +2 -2
  226. package/lib/cjs/keycloak/types.cjs.map +1 -0
  227. package/lib/cjs/kibana/helpers.cjs +2 -2
  228. package/lib/cjs/kibana/helpers.cjs.map +1 -0
  229. package/lib/cjs/kibana/index.cjs +2 -2
  230. package/lib/cjs/kibana/index.cjs.map +1 -0
  231. package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
  232. package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
  233. package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
  234. package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
  235. package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
  236. package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
  237. package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
  238. package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
  239. package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
  240. package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
  241. package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
  242. package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
  243. package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
  244. package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
  245. package/lib/cjs/kibana/services/index.cjs +2 -2
  246. package/lib/cjs/kibana/services/index.cjs.map +1 -0
  247. package/lib/cjs/kibana/services/runtime.cjs +2 -2
  248. package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
  249. package/lib/cjs/kibana/types.cjs +2 -2
  250. package/lib/cjs/kibana/types.cjs.map +1 -0
  251. package/lib/cjs/namespaces/index.cjs +2 -2
  252. package/lib/cjs/namespaces/index.cjs.map +1 -0
  253. package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
  254. package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
  255. package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
  256. package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
  257. package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
  258. package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
  259. package/lib/cjs/namespaces/models/group.model.cjs +2 -2
  260. package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
  261. package/lib/cjs/namespaces/models/index.cjs +2 -2
  262. package/lib/cjs/namespaces/models/index.cjs.map +1 -0
  263. package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
  264. package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
  265. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
  266. package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
  267. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
  268. package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
  269. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
  270. package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
  271. package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
  272. package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
  273. package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
  274. package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
  275. package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
  276. package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
  277. package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
  278. package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
  279. package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
  280. package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
  281. package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
  282. package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
  283. package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
  284. package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
  285. package/lib/cjs/namespaces/models/role.model.cjs +2 -2
  286. package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
  287. package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
  288. package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
  289. package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
  290. package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
  291. package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
  292. package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
  293. package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
  294. package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
  295. package/lib/cjs/namespaces/models/user.model.cjs +2 -2
  296. package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
  297. package/lib/cjs/namespaces/org-based-authorization-system.cjs +10 -4
  298. package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
  299. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
  300. package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
  301. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +19 -10
  302. package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
  303. package/lib/cjs/namespaces/services/authz.service.cjs +39 -13
  304. package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
  305. package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
  306. package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
  307. package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
  308. package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
  309. package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
  310. package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
  311. package/lib/cjs/namespaces/services/group.service.cjs +2 -2
  312. package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
  313. package/lib/cjs/namespaces/services/index.cjs +2 -2
  314. package/lib/cjs/namespaces/services/index.cjs.map +1 -0
  315. package/lib/cjs/namespaces/services/inheritance-block.service.cjs +6 -4
  316. package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
  317. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +16 -7
  318. package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
  319. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
  320. package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
  321. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
  322. package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
  323. package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
  324. package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
  325. package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
  326. package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
  327. package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
  328. package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
  329. package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
  330. package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
  331. package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
  332. package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
  333. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
  334. package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
  335. package/lib/cjs/namespaces/services/role-assignment.service.cjs +4 -3
  336. package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
  337. package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
  338. package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
  339. package/lib/cjs/namespaces/services/role.service.cjs +2 -2
  340. package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
  341. package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
  342. package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
  343. package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
  344. package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
  345. package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
  346. package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
  347. package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
  348. package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
  349. package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
  350. package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
  351. package/lib/cjs/namespaces/services/user.service.cjs +2 -2
  352. package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
  353. package/lib/cjs/namespaces/types.cjs +2 -2
  354. package/lib/cjs/namespaces/types.cjs.map +1 -0
  355. package/lib/cjs/namespaces/utils.cjs +13 -5
  356. package/lib/cjs/namespaces/utils.cjs.map +1 -0
  357. package/lib/cjs/nest/authService.cjs +2 -2
  358. package/lib/cjs/nest/authService.cjs.map +1 -0
  359. package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
  360. package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
  361. package/lib/cjs/nest/graph/GraphExecutionModule.cjs +6 -4
  362. package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
  363. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
  364. package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
  365. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs +2 -2
  366. package/lib/cjs/nest/graph/GraphExecutionResultRepository.cjs.map +1 -0
  367. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +97 -11
  368. package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
  369. package/lib/cjs/nest/graph/index.cjs +2 -2
  370. package/lib/cjs/nest/graph/index.cjs.map +1 -0
  371. package/lib/cjs/nest/graph/main.cjs +30 -0
  372. package/lib/cjs/nest/graph/main.cjs.map +1 -0
  373. package/lib/cjs/nest/index.cjs +2 -2
  374. package/lib/cjs/nest/index.cjs.map +1 -0
  375. package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
  376. package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
  377. package/lib/cjs/nest/keycloakModule.cjs +2 -2
  378. package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
  379. package/lib/cjs/nest/logging.cjs +2 -2
  380. package/lib/cjs/nest/logging.cjs.map +1 -0
  381. package/lib/cjs/nest/types.cjs +2 -2
  382. package/lib/cjs/nest/types.cjs.map +1 -0
  383. package/lib/cjs/nest/utils.cjs +2 -2
  384. package/lib/cjs/nest/utils.cjs.map +1 -0
  385. package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
  386. package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
  387. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
  388. package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
  389. package/lib/cjs/secrets/aws/index.cjs +2 -2
  390. package/lib/cjs/secrets/aws/index.cjs.map +1 -0
  391. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
  392. package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
  393. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
  394. package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
  395. package/lib/cjs/secrets/azure/index.cjs +2 -2
  396. package/lib/cjs/secrets/azure/index.cjs.map +1 -0
  397. package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
  398. package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
  399. package/lib/cjs/secrets/core/SecretName.cjs +2 -2
  400. package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
  401. package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
  402. package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
  403. package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
  404. package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
  405. package/lib/cjs/secrets/core/SecretService.cjs +2 -2
  406. package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
  407. package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
  408. package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
  409. package/lib/cjs/secrets/core/index.cjs +2 -2
  410. package/lib/cjs/secrets/core/index.cjs.map +1 -0
  411. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
  412. package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
  413. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
  414. package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
  415. package/lib/cjs/secrets/gcp/index.cjs +2 -2
  416. package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
  417. package/lib/cjs/secrets/index.cjs +2 -2
  418. package/lib/cjs/secrets/index.cjs.map +1 -0
  419. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
  420. package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
  421. package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
  422. package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
  423. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
  424. package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
  425. package/lib/cjs/secrets/model/Secret.cjs +2 -2
  426. package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
  427. package/lib/cjs/secrets/model/index.cjs +2 -2
  428. package/lib/cjs/secrets/model/index.cjs.map +1 -0
  429. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
  430. package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
  431. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
  432. package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
  433. package/lib/cjs/secrets/onepassword/index.cjs +2 -2
  434. package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
  435. package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
  436. package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
  437. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
  438. package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
  439. package/lib/cjs/secrets/vault/index.cjs +2 -2
  440. package/lib/cjs/secrets/vault/index.cjs.map +1 -0
  441. package/lib/cjs/shared/runtime.cjs +2 -2
  442. package/lib/cjs/shared/runtime.cjs.map +1 -0
  443. package/lib/cjs/utils.cjs +2 -2
  444. package/lib/cjs/utils.cjs.map +1 -0
  445. package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
  446. package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
  447. package/lib/esm/blob/azure/index.js +1 -1
  448. package/lib/esm/blob/azure/index.js.map +1 -0
  449. package/lib/esm/blob/core/BlobErrors.js +1 -1
  450. package/lib/esm/blob/core/BlobErrors.js.map +1 -0
  451. package/lib/esm/blob/core/BlobKey.js +1 -1
  452. package/lib/esm/blob/core/BlobKey.js.map +1 -0
  453. package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
  454. package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
  455. package/lib/esm/blob/core/BlobStoreService.js +1 -1
  456. package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
  457. package/lib/esm/blob/core/BlobTypes.js +1 -1
  458. package/lib/esm/blob/core/BlobTypes.js.map +1 -0
  459. package/lib/esm/blob/core/BlobValue.js +1 -1
  460. package/lib/esm/blob/core/BlobValue.js.map +1 -0
  461. package/lib/esm/blob/core/index.js +1 -1
  462. package/lib/esm/blob/core/index.js.map +1 -0
  463. package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
  464. package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
  465. package/lib/esm/blob/gcp/index.js +1 -1
  466. package/lib/esm/blob/gcp/index.js.map +1 -0
  467. package/lib/esm/blob/index.js +1 -1
  468. package/lib/esm/blob/index.js.map +1 -0
  469. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
  470. package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
  471. package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
  472. package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
  473. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
  474. package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
  475. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
  476. package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
  477. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
  478. package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
  479. package/lib/esm/blob/ipfs/index.js +1 -1
  480. package/lib/esm/blob/ipfs/index.js.map +1 -0
  481. package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
  482. package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
  483. package/lib/esm/blob/local/index.js +1 -1
  484. package/lib/esm/blob/local/index.js.map +1 -0
  485. package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
  486. package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
  487. package/lib/esm/blob/memory/index.js +1 -1
  488. package/lib/esm/blob/memory/index.js.map +1 -0
  489. package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
  490. package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
  491. package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
  492. package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
  493. package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
  494. package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
  495. package/lib/esm/blob/s3/index.js +1 -1
  496. package/lib/esm/blob/s3/index.js.map +1 -0
  497. package/lib/esm/docker/DockerComposeService.js +1 -1
  498. package/lib/esm/docker/DockerComposeService.js.map +1 -0
  499. package/lib/esm/docker/index.js +1 -1
  500. package/lib/esm/docker/index.js.map +1 -0
  501. package/lib/esm/graph/engine/constants.js +62 -0
  502. package/lib/esm/graph/engine/constants.js.map +1 -0
  503. package/lib/esm/graph/engine/decorators.js +2 -0
  504. package/lib/esm/graph/engine/decorators.js.map +1 -0
  505. package/lib/esm/graph/engine/errors/GraphCycleError.js +15 -0
  506. package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
  507. package/lib/esm/graph/engine/errors/GraphExecutionError.js +22 -0
  508. package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
  509. package/lib/esm/graph/engine/errors/GraphInputError.js +15 -0
  510. package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
  511. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +15 -0
  512. package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
  513. package/lib/esm/graph/engine/errors/GraphPinningError.js +15 -0
  514. package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
  515. package/lib/esm/graph/engine/errors/GraphPortError.js +15 -0
  516. package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
  517. package/lib/esm/graph/engine/errors/GraphStoreError.js +15 -0
  518. package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
  519. package/lib/esm/graph/engine/errors/GraphTopologyError.js +15 -0
  520. package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
  521. package/lib/esm/graph/engine/errors/index.js +14 -0
  522. package/lib/esm/graph/engine/errors/index.js.map +1 -0
  523. package/lib/esm/graph/engine/events/GraphExecutionEvent.js +2 -0
  524. package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
  525. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +35 -0
  526. package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
  527. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +32 -0
  528. package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
  529. package/lib/esm/graph/engine/events/GraphExecutionObserver.js +2 -0
  530. package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
  531. package/lib/esm/graph/engine/events/index.js +10 -0
  532. package/lib/esm/graph/engine/events/index.js.map +1 -0
  533. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +18 -0
  534. package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
  535. package/lib/esm/graph/engine/execution/GraphExecutionContext.js +74 -0
  536. package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
  537. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +408 -0
  538. package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
  539. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +27 -0
  540. package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
  541. package/lib/esm/graph/engine/execution/GraphExecutionResult.js +26 -0
  542. package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
  543. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +2 -0
  544. package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
  545. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +98 -0
  546. package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
  547. package/lib/esm/graph/engine/execution/index.js +13 -0
  548. package/lib/esm/graph/engine/execution/index.js.map +1 -0
  549. package/lib/esm/graph/engine/index.js +67 -0
  550. package/lib/esm/graph/engine/index.js.map +1 -0
  551. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +82 -0
  552. package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
  553. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +80 -0
  554. package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
  555. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +80 -0
  556. package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
  557. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +11 -0
  558. package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
  559. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +72 -0
  560. package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
  561. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +73 -0
  562. package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
  563. package/lib/esm/graph/engine/loops/index.js +12 -0
  564. package/lib/esm/graph/engine/loops/index.js.map +1 -0
  565. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +23 -0
  566. package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
  567. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +15 -0
  568. package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
  569. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +29 -0
  570. package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
  571. package/lib/esm/graph/engine/pinning/GraphPinningService.js +186 -0
  572. package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
  573. package/lib/esm/graph/engine/pinning/index.js +10 -0
  574. package/lib/esm/graph/engine/pinning/index.js.map +1 -0
  575. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +2 -0
  576. package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
  577. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +7 -0
  578. package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
  579. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +2 -0
  580. package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
  581. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +2 -0
  582. package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
  583. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +192 -0
  584. package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
  585. package/lib/esm/graph/engine/planning/GraphRelationResolver.js +167 -0
  586. package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
  587. package/lib/esm/graph/engine/planning/GraphTopology.js +52 -0
  588. package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
  589. package/lib/esm/graph/engine/planning/index.js +13 -0
  590. package/lib/esm/graph/engine/planning/index.js.map +1 -0
  591. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +39 -0
  592. package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
  593. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +22 -0
  594. package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
  595. package/lib/esm/graph/engine/registry/index.js +8 -0
  596. package/lib/esm/graph/engine/registry/index.js.map +1 -0
  597. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +48 -0
  598. package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
  599. package/lib/esm/graph/engine/snapshots/index.js +7 -0
  600. package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
  601. package/lib/esm/graph/engine/store/GraphCachedValue.js +2 -0
  602. package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
  603. package/lib/esm/graph/engine/store/GraphValueKey.js +7 -0
  604. package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
  605. package/lib/esm/graph/engine/store/GraphValueStore.js +71 -0
  606. package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
  607. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +2 -0
  608. package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
  609. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +64 -0
  610. package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
  611. package/lib/esm/graph/engine/store/index.js +11 -0
  612. package/lib/esm/graph/engine/store/index.js.map +1 -0
  613. package/lib/esm/graph/engine/types.js +2 -0
  614. package/lib/esm/graph/engine/types.js.map +1 -0
  615. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +28 -0
  616. package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
  617. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +53 -0
  618. package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
  619. package/lib/esm/graph/engine/validation/GraphValueValidator.js +47 -0
  620. package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
  621. package/lib/esm/graph/engine/validation/index.js +9 -0
  622. package/lib/esm/graph/engine/validation/index.js.map +1 -0
  623. package/lib/esm/graph/index.js +9 -59
  624. package/lib/esm/graph/index.js.map +1 -0
  625. package/lib/esm/graph/shared/constants.js +56 -0
  626. package/lib/esm/graph/shared/constants.js.map +1 -0
  627. package/lib/esm/graph/shared/index.js +19 -0
  628. package/lib/esm/graph/shared/index.js.map +1 -0
  629. package/lib/esm/graph/shared/nodes/agent.js +101 -0
  630. package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
  631. package/lib/esm/graph/shared/nodes/base.js +31 -0
  632. package/lib/esm/graph/shared/nodes/base.js.map +1 -0
  633. package/lib/esm/graph/shared/nodes/category-styles.js +34 -0
  634. package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
  635. package/lib/esm/graph/shared/nodes/flow-control.js +455 -0
  636. package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
  637. package/lib/esm/graph/shared/nodes/index.js +18 -0
  638. package/lib/esm/graph/shared/nodes/index.js.map +1 -0
  639. package/lib/esm/graph/shared/nodes/triggers.js +241 -0
  640. package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
  641. package/lib/esm/graph/shared/types.js +2 -0
  642. package/lib/esm/graph/shared/types.js.map +1 -0
  643. package/lib/esm/index.js +4 -4
  644. package/lib/esm/index.js.map +1 -0
  645. package/lib/esm/keycloak/index.js +1 -1
  646. package/lib/esm/keycloak/index.js.map +1 -0
  647. package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
  648. package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
  649. package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
  650. package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
  651. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
  652. package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
  653. package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
  654. package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
  655. package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
  656. package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
  657. package/lib/esm/keycloak/services/KeycloakService.js +1 -1
  658. package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
  659. package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
  660. package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
  661. package/lib/esm/keycloak/services/index.js +1 -1
  662. package/lib/esm/keycloak/services/index.js.map +1 -0
  663. package/lib/esm/keycloak/services/runtime.js +1 -1
  664. package/lib/esm/keycloak/services/runtime.js.map +1 -0
  665. package/lib/esm/keycloak/types.js +1 -1
  666. package/lib/esm/keycloak/types.js.map +1 -0
  667. package/lib/esm/kibana/helpers.js +1 -1
  668. package/lib/esm/kibana/helpers.js.map +1 -0
  669. package/lib/esm/kibana/index.js +1 -1
  670. package/lib/esm/kibana/index.js.map +1 -0
  671. package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
  672. package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
  673. package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
  674. package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
  675. package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
  676. package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
  677. package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
  678. package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
  679. package/lib/esm/kibana/services/KibanaService.js +1 -1
  680. package/lib/esm/kibana/services/KibanaService.js.map +1 -0
  681. package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
  682. package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
  683. package/lib/esm/kibana/services/KibanaUserService.js +1 -1
  684. package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
  685. package/lib/esm/kibana/services/index.js +1 -1
  686. package/lib/esm/kibana/services/index.js.map +1 -0
  687. package/lib/esm/kibana/services/runtime.js +1 -1
  688. package/lib/esm/kibana/services/runtime.js.map +1 -0
  689. package/lib/esm/kibana/types.js +1 -1
  690. package/lib/esm/kibana/types.js.map +1 -0
  691. package/lib/esm/namespaces/index.js +1 -1
  692. package/lib/esm/namespaces/index.js.map +1 -0
  693. package/lib/esm/namespaces/models/authorization-model.js +1 -1
  694. package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
  695. package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
  696. package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
  697. package/lib/esm/namespaces/models/group-membership.model.js +1 -1
  698. package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
  699. package/lib/esm/namespaces/models/group.model.js +1 -1
  700. package/lib/esm/namespaces/models/group.model.js.map +1 -0
  701. package/lib/esm/namespaces/models/index.js +1 -1
  702. package/lib/esm/namespaces/models/index.js.map +1 -0
  703. package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
  704. package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
  705. package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
  706. package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
  707. package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
  708. package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
  709. package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
  710. package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
  711. package/lib/esm/namespaces/models/org-unit.model.js +1 -1
  712. package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
  713. package/lib/esm/namespaces/models/permission.model.js +1 -1
  714. package/lib/esm/namespaces/models/permission.model.js.map +1 -0
  715. package/lib/esm/namespaces/models/principal.model.js +1 -1
  716. package/lib/esm/namespaces/models/principal.model.js.map +1 -0
  717. package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
  718. package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
  719. package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
  720. package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
  721. package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
  722. package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
  723. package/lib/esm/namespaces/models/role-permission.model.js +1 -1
  724. package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
  725. package/lib/esm/namespaces/models/role.model.js +1 -1
  726. package/lib/esm/namespaces/models/role.model.js.map +1 -0
  727. package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
  728. package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
  729. package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
  730. package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
  731. package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
  732. package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
  733. package/lib/esm/namespaces/models/tenant.model.js +3 -3
  734. package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
  735. package/lib/esm/namespaces/models/user.model.js +1 -1
  736. package/lib/esm/namespaces/models/user.model.js.map +1 -0
  737. package/lib/esm/namespaces/org-based-authorization-system.js +10 -4
  738. package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
  739. package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
  740. package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
  741. package/lib/esm/namespaces/org-based-authorization-system.services.js +18 -9
  742. package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
  743. package/lib/esm/namespaces/services/authz.service.js +40 -14
  744. package/lib/esm/namespaces/services/authz.service.js.map +1 -0
  745. package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
  746. package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
  747. package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
  748. package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
  749. package/lib/esm/namespaces/services/group-membership.service.js +1 -1
  750. package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
  751. package/lib/esm/namespaces/services/group.service.js +1 -1
  752. package/lib/esm/namespaces/services/group.service.js.map +1 -0
  753. package/lib/esm/namespaces/services/index.js +1 -1
  754. package/lib/esm/namespaces/services/index.js.map +1 -0
  755. package/lib/esm/namespaces/services/inheritance-block.service.js +5 -3
  756. package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
  757. package/lib/esm/namespaces/services/org-unit-closure.service.js +16 -7
  758. package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
  759. package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
  760. package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
  761. package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
  762. package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
  763. package/lib/esm/namespaces/services/org-unit.service.js +1 -1
  764. package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
  765. package/lib/esm/namespaces/services/permission.service.js +1 -1
  766. package/lib/esm/namespaces/services/permission.service.js.map +1 -0
  767. package/lib/esm/namespaces/services/principal.service.js +1 -1
  768. package/lib/esm/namespaces/services/principal.service.js.map +1 -0
  769. package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
  770. package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
  771. package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
  772. package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
  773. package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
  774. package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
  775. package/lib/esm/namespaces/services/role-assignment.service.js +3 -2
  776. package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
  777. package/lib/esm/namespaces/services/role-permission.service.js +1 -1
  778. package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
  779. package/lib/esm/namespaces/services/role.service.js +1 -1
  780. package/lib/esm/namespaces/services/role.service.js.map +1 -0
  781. package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
  782. package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
  783. package/lib/esm/namespaces/services/system-management.service.js +1 -1
  784. package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
  785. package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
  786. package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
  787. package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
  788. package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
  789. package/lib/esm/namespaces/services/tenant.service.js +1 -1
  790. package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
  791. package/lib/esm/namespaces/services/user.service.js +1 -1
  792. package/lib/esm/namespaces/services/user.service.js.map +1 -0
  793. package/lib/esm/namespaces/types.js +1 -1
  794. package/lib/esm/namespaces/types.js.map +1 -0
  795. package/lib/esm/namespaces/utils.js +12 -4
  796. package/lib/esm/namespaces/utils.js.map +1 -0
  797. package/lib/esm/nest/authService.js +1 -1
  798. package/lib/esm/nest/authService.js.map +1 -0
  799. package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
  800. package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
  801. package/lib/esm/nest/graph/GraphExecutionModule.js +6 -4
  802. package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
  803. package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
  804. package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
  805. package/lib/esm/nest/graph/GraphExecutionResultRepository.js +1 -1
  806. package/lib/esm/nest/graph/GraphExecutionResultRepository.js.map +1 -0
  807. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +96 -11
  808. package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
  809. package/lib/esm/nest/graph/index.js +1 -1
  810. package/lib/esm/nest/graph/index.js.map +1 -0
  811. package/lib/esm/nest/graph/main.js +27 -0
  812. package/lib/esm/nest/graph/main.js.map +1 -0
  813. package/lib/esm/nest/index.js +1 -1
  814. package/lib/esm/nest/index.js.map +1 -0
  815. package/lib/esm/nest/keycloakAuthHandler.js +1 -1
  816. package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
  817. package/lib/esm/nest/keycloakModule.js +1 -1
  818. package/lib/esm/nest/keycloakModule.js.map +1 -0
  819. package/lib/esm/nest/logging.js +1 -1
  820. package/lib/esm/nest/logging.js.map +1 -0
  821. package/lib/esm/nest/types.js +1 -1
  822. package/lib/esm/nest/types.js.map +1 -0
  823. package/lib/esm/nest/utils.js +1 -1
  824. package/lib/esm/nest/utils.js.map +1 -0
  825. package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
  826. package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
  827. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
  828. package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
  829. package/lib/esm/secrets/aws/index.js +1 -1
  830. package/lib/esm/secrets/aws/index.js.map +1 -0
  831. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
  832. package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
  833. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
  834. package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
  835. package/lib/esm/secrets/azure/index.js +1 -1
  836. package/lib/esm/secrets/azure/index.js.map +1 -0
  837. package/lib/esm/secrets/core/SecretErrors.js +1 -1
  838. package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
  839. package/lib/esm/secrets/core/SecretName.js +1 -1
  840. package/lib/esm/secrets/core/SecretName.js.map +1 -0
  841. package/lib/esm/secrets/core/SecretReference.js +1 -1
  842. package/lib/esm/secrets/core/SecretReference.js.map +1 -0
  843. package/lib/esm/secrets/core/SecretSerialization.js +1 -1
  844. package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
  845. package/lib/esm/secrets/core/SecretService.js +1 -1
  846. package/lib/esm/secrets/core/SecretService.js.map +1 -0
  847. package/lib/esm/secrets/core/SecretTypes.js +1 -1
  848. package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
  849. package/lib/esm/secrets/core/index.js +1 -1
  850. package/lib/esm/secrets/core/index.js.map +1 -0
  851. package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
  852. package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
  853. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
  854. package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
  855. package/lib/esm/secrets/gcp/index.js +1 -1
  856. package/lib/esm/secrets/gcp/index.js.map +1 -0
  857. package/lib/esm/secrets/index.js +1 -1
  858. package/lib/esm/secrets/index.js.map +1 -0
  859. package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
  860. package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
  861. package/lib/esm/secrets/model/ModelSecretService.js +1 -1
  862. package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
  863. package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
  864. package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
  865. package/lib/esm/secrets/model/Secret.js +1 -1
  866. package/lib/esm/secrets/model/Secret.js.map +1 -0
  867. package/lib/esm/secrets/model/index.js +1 -1
  868. package/lib/esm/secrets/model/index.js.map +1 -0
  869. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
  870. package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
  871. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
  872. package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
  873. package/lib/esm/secrets/onepassword/index.js +1 -1
  874. package/lib/esm/secrets/onepassword/index.js.map +1 -0
  875. package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
  876. package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
  877. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
  878. package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
  879. package/lib/esm/secrets/vault/index.js +1 -1
  880. package/lib/esm/secrets/vault/index.js.map +1 -0
  881. package/lib/esm/shared/runtime.js +1 -1
  882. package/lib/esm/shared/runtime.js.map +1 -0
  883. package/lib/esm/utils.js +1 -1
  884. package/lib/esm/utils.js.map +1 -0
  885. package/lib/types/graph/engine/constants.d.cts +59 -0
  886. package/lib/types/graph/engine/constants.d.mts +59 -0
  887. package/lib/types/graph/{execution → engine/execution}/GraphExecutionResult.d.cts +1 -1
  888. package/lib/types/graph/{execution → engine/execution}/GraphExecutionResult.d.mts +1 -1
  889. package/lib/types/graph/engine/index.d.cts +61 -0
  890. package/lib/types/graph/engine/index.d.mts +61 -0
  891. package/lib/types/graph/{loops → engine/loops}/ConditionExpressionEvaluator.d.cts +1 -1
  892. package/lib/types/graph/{loops → engine/loops}/ConditionExpressionEvaluator.d.mts +1 -1
  893. package/lib/types/graph/{loops → engine/loops}/GraphConditionEvaluator.d.cts +2 -1
  894. package/lib/types/graph/{loops → engine/loops}/GraphConditionEvaluator.d.mts +2 -1
  895. package/lib/types/graph/{types.d.cts → engine/types.d.cts} +12 -148
  896. package/lib/types/graph/{types.d.mts → engine/types.d.mts} +12 -148
  897. package/lib/types/graph/index.d.cts +8 -53
  898. package/lib/types/graph/index.d.mts +8 -53
  899. package/lib/types/graph/shared/constants.d.cts +53 -0
  900. package/lib/types/graph/shared/constants.d.mts +53 -0
  901. package/lib/types/graph/shared/index.d.cts +18 -0
  902. package/lib/types/graph/shared/index.d.mts +18 -0
  903. package/lib/types/graph/shared/types.d.cts +162 -0
  904. package/lib/types/graph/shared/types.d.mts +162 -0
  905. package/lib/types/index.d.cts +2 -2
  906. package/lib/types/index.d.mts +2 -2
  907. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.cts +33 -5
  908. package/lib/types/nest/graph/GraphExecutorRegistryFactory.d.mts +33 -5
  909. package/lib/types/nest/graph/main.d.cts +1 -0
  910. package/lib/types/nest/graph/main.d.mts +1 -0
  911. package/package.json +19 -8
  912. package/lib/cjs/graph/constants.cjs +0 -94
  913. package/lib/cjs/graph/decorators.cjs +0 -4
  914. package/lib/cjs/graph/errors/GraphCycleError.cjs +0 -20
  915. package/lib/cjs/graph/errors/GraphExecutionError.cjs +0 -27
  916. package/lib/cjs/graph/errors/GraphInputError.cjs +0 -20
  917. package/lib/cjs/graph/errors/GraphLoopLimitError.cjs +0 -20
  918. package/lib/cjs/graph/errors/GraphPinningError.cjs +0 -20
  919. package/lib/cjs/graph/errors/GraphPortError.cjs +0 -20
  920. package/lib/cjs/graph/errors/GraphStoreError.cjs +0 -20
  921. package/lib/cjs/graph/errors/GraphTopologyError.cjs +0 -20
  922. package/lib/cjs/graph/errors/index.cjs +0 -31
  923. package/lib/cjs/graph/events/GraphExecutionEvent.cjs +0 -4
  924. package/lib/cjs/graph/events/GraphExecutionEventEmitter.cjs +0 -40
  925. package/lib/cjs/graph/events/GraphExecutionEventFactory.cjs +0 -37
  926. package/lib/cjs/graph/events/GraphExecutionObserver.cjs +0 -4
  927. package/lib/cjs/graph/events/index.cjs +0 -27
  928. package/lib/cjs/graph/execution/CodeSandboxEvaluator.cjs +0 -4
  929. package/lib/cjs/graph/execution/GraphExecutionContext.cjs +0 -79
  930. package/lib/cjs/graph/execution/GraphExecutionEngine.cjs +0 -407
  931. package/lib/cjs/graph/execution/GraphExecutionFrame.cjs +0 -32
  932. package/lib/cjs/graph/execution/GraphExecutionResult.cjs +0 -30
  933. package/lib/cjs/graph/execution/GraphNodeExecutor.cjs +0 -4
  934. package/lib/cjs/graph/execution/SwitchGraphNodeExecutor.cjs +0 -103
  935. package/lib/cjs/graph/execution/index.cjs +0 -30
  936. package/lib/cjs/graph/loops/ConditionExpressionEvaluator.cjs +0 -87
  937. package/lib/cjs/graph/loops/ForeachGraphNodeExecutor.cjs +0 -84
  938. package/lib/cjs/graph/loops/GraphConditionEvaluator.cjs +0 -85
  939. package/lib/cjs/graph/loops/GraphLoopExecutionContext.cjs +0 -16
  940. package/lib/cjs/graph/loops/UntilGraphNodeExecutor.cjs +0 -76
  941. package/lib/cjs/graph/loops/WhileGraphNodeExecutor.cjs +0 -77
  942. package/lib/cjs/graph/loops/index.cjs +0 -29
  943. package/lib/cjs/graph/nodes/agent.cjs +0 -110
  944. package/lib/cjs/graph/nodes/base.cjs +0 -35
  945. package/lib/cjs/graph/nodes/category-styles.cjs +0 -38
  946. package/lib/cjs/graph/nodes/flow-control.cjs +0 -464
  947. package/lib/cjs/graph/nodes/index.cjs +0 -35
  948. package/lib/cjs/graph/nodes/triggers.cjs +0 -250
  949. package/lib/cjs/graph/pinning/GraphPinningDependencyResolver.cjs +0 -28
  950. package/lib/cjs/graph/pinning/GraphPinningMetadata.cjs +0 -20
  951. package/lib/cjs/graph/pinning/GraphPinningPolicy.cjs +0 -34
  952. package/lib/cjs/graph/pinning/GraphPinningService.cjs +0 -191
  953. package/lib/cjs/graph/pinning/index.cjs +0 -27
  954. package/lib/cjs/graph/planning/GraphExecutionPlan.cjs +0 -4
  955. package/lib/cjs/graph/planning/GraphExecutionPlanEdge.cjs +0 -4
  956. package/lib/cjs/graph/planning/GraphExecutionPlanLayer.cjs +0 -4
  957. package/lib/cjs/graph/planning/GraphExecutionPlanNode.cjs +0 -4
  958. package/lib/cjs/graph/planning/GraphExecutionPlanner.cjs +0 -197
  959. package/lib/cjs/graph/planning/GraphRelationResolver.cjs +0 -172
  960. package/lib/cjs/graph/planning/GraphTopology.cjs +0 -57
  961. package/lib/cjs/graph/planning/index.cjs +0 -30
  962. package/lib/cjs/graph/registry/GraphNodeExecutorRegistry.cjs +0 -44
  963. package/lib/cjs/graph/registry/GraphNodeExecutorResolver.cjs +0 -27
  964. package/lib/cjs/graph/registry/index.cjs +0 -25
  965. package/lib/cjs/graph/snapshots/GraphExecutionSnapshotMapper.cjs +0 -53
  966. package/lib/cjs/graph/snapshots/index.cjs +0 -24
  967. package/lib/cjs/graph/store/GraphCachedValue.cjs +0 -4
  968. package/lib/cjs/graph/store/GraphValueKey.cjs +0 -4
  969. package/lib/cjs/graph/store/GraphValueStore.cjs +0 -76
  970. package/lib/cjs/graph/store/GraphValueStoreAdapter.cjs +0 -4
  971. package/lib/cjs/graph/store/InMemoryGraphValueStoreAdapter.cjs +0 -69
  972. package/lib/cjs/graph/store/index.cjs +0 -28
  973. package/lib/cjs/graph/types.cjs +0 -4
  974. package/lib/cjs/graph/validation/GraphDefinitionValidator.cjs +0 -33
  975. package/lib/cjs/graph/validation/GraphPortSchemaResolver.cjs +0 -58
  976. package/lib/cjs/graph/validation/GraphValueValidator.cjs +0 -52
  977. package/lib/cjs/graph/validation/index.cjs +0 -26
  978. package/lib/esm/graph/constants.js +0 -106
  979. package/lib/esm/graph/decorators.js +0 -2
  980. package/lib/esm/graph/errors/GraphCycleError.js +0 -15
  981. package/lib/esm/graph/errors/GraphExecutionError.js +0 -22
  982. package/lib/esm/graph/errors/GraphInputError.js +0 -15
  983. package/lib/esm/graph/errors/GraphLoopLimitError.js +0 -15
  984. package/lib/esm/graph/errors/GraphPinningError.js +0 -15
  985. package/lib/esm/graph/errors/GraphPortError.js +0 -15
  986. package/lib/esm/graph/errors/GraphStoreError.js +0 -15
  987. package/lib/esm/graph/errors/GraphTopologyError.js +0 -15
  988. package/lib/esm/graph/errors/index.js +0 -14
  989. package/lib/esm/graph/events/GraphExecutionEvent.js +0 -2
  990. package/lib/esm/graph/events/GraphExecutionEventEmitter.js +0 -35
  991. package/lib/esm/graph/events/GraphExecutionEventFactory.js +0 -32
  992. package/lib/esm/graph/events/GraphExecutionObserver.js +0 -2
  993. package/lib/esm/graph/events/index.js +0 -10
  994. package/lib/esm/graph/execution/CodeSandboxEvaluator.js +0 -18
  995. package/lib/esm/graph/execution/GraphExecutionContext.js +0 -74
  996. package/lib/esm/graph/execution/GraphExecutionEngine.js +0 -402
  997. package/lib/esm/graph/execution/GraphExecutionFrame.js +0 -27
  998. package/lib/esm/graph/execution/GraphExecutionResult.js +0 -26
  999. package/lib/esm/graph/execution/GraphNodeExecutor.js +0 -2
  1000. package/lib/esm/graph/execution/SwitchGraphNodeExecutor.js +0 -98
  1001. package/lib/esm/graph/execution/index.js +0 -13
  1002. package/lib/esm/graph/loops/ConditionExpressionEvaluator.js +0 -82
  1003. package/lib/esm/graph/loops/ForeachGraphNodeExecutor.js +0 -79
  1004. package/lib/esm/graph/loops/GraphConditionEvaluator.js +0 -80
  1005. package/lib/esm/graph/loops/GraphLoopExecutionContext.js +0 -11
  1006. package/lib/esm/graph/loops/UntilGraphNodeExecutor.js +0 -71
  1007. package/lib/esm/graph/loops/WhileGraphNodeExecutor.js +0 -72
  1008. package/lib/esm/graph/loops/index.js +0 -12
  1009. package/lib/esm/graph/nodes/agent.js +0 -101
  1010. package/lib/esm/graph/nodes/base.js +0 -30
  1011. package/lib/esm/graph/nodes/category-styles.js +0 -34
  1012. package/lib/esm/graph/nodes/flow-control.js +0 -455
  1013. package/lib/esm/graph/nodes/index.js +0 -18
  1014. package/lib/esm/graph/nodes/triggers.js +0 -241
  1015. package/lib/esm/graph/pinning/GraphPinningDependencyResolver.js +0 -23
  1016. package/lib/esm/graph/pinning/GraphPinningMetadata.js +0 -15
  1017. package/lib/esm/graph/pinning/GraphPinningPolicy.js +0 -29
  1018. package/lib/esm/graph/pinning/GraphPinningService.js +0 -186
  1019. package/lib/esm/graph/pinning/index.js +0 -10
  1020. package/lib/esm/graph/planning/GraphExecutionPlan.js +0 -2
  1021. package/lib/esm/graph/planning/GraphExecutionPlanEdge.js +0 -7
  1022. package/lib/esm/graph/planning/GraphExecutionPlanLayer.js +0 -2
  1023. package/lib/esm/graph/planning/GraphExecutionPlanNode.js +0 -2
  1024. package/lib/esm/graph/planning/GraphExecutionPlanner.js +0 -192
  1025. package/lib/esm/graph/planning/GraphRelationResolver.js +0 -167
  1026. package/lib/esm/graph/planning/GraphTopology.js +0 -52
  1027. package/lib/esm/graph/planning/index.js +0 -13
  1028. package/lib/esm/graph/registry/GraphNodeExecutorRegistry.js +0 -39
  1029. package/lib/esm/graph/registry/GraphNodeExecutorResolver.js +0 -22
  1030. package/lib/esm/graph/registry/index.js +0 -8
  1031. package/lib/esm/graph/snapshots/GraphExecutionSnapshotMapper.js +0 -48
  1032. package/lib/esm/graph/snapshots/index.js +0 -7
  1033. package/lib/esm/graph/store/GraphCachedValue.js +0 -2
  1034. package/lib/esm/graph/store/GraphValueKey.js +0 -7
  1035. package/lib/esm/graph/store/GraphValueStore.js +0 -71
  1036. package/lib/esm/graph/store/GraphValueStoreAdapter.js +0 -2
  1037. package/lib/esm/graph/store/InMemoryGraphValueStoreAdapter.js +0 -64
  1038. package/lib/esm/graph/store/index.js +0 -11
  1039. package/lib/esm/graph/types.js +0 -2
  1040. package/lib/esm/graph/validation/GraphDefinitionValidator.js +0 -28
  1041. package/lib/esm/graph/validation/GraphPortSchemaResolver.js +0 -53
  1042. package/lib/esm/graph/validation/GraphValueValidator.js +0 -47
  1043. package/lib/esm/graph/validation/index.js +0 -9
  1044. package/lib/types/graph/constants.d.cts +0 -101
  1045. package/lib/types/graph/constants.d.mts +0 -101
  1046. /package/lib/types/graph/{decorators.d.cts → engine/decorators.d.cts} +0 -0
  1047. /package/lib/types/graph/{decorators.d.mts → engine/decorators.d.mts} +0 -0
  1048. /package/lib/types/graph/{errors → engine/errors}/GraphCycleError.d.cts +0 -0
  1049. /package/lib/types/graph/{errors → engine/errors}/GraphCycleError.d.mts +0 -0
  1050. /package/lib/types/graph/{errors → engine/errors}/GraphExecutionError.d.cts +0 -0
  1051. /package/lib/types/graph/{errors → engine/errors}/GraphExecutionError.d.mts +0 -0
  1052. /package/lib/types/graph/{errors → engine/errors}/GraphInputError.d.cts +0 -0
  1053. /package/lib/types/graph/{errors → engine/errors}/GraphInputError.d.mts +0 -0
  1054. /package/lib/types/graph/{errors → engine/errors}/GraphLoopLimitError.d.cts +0 -0
  1055. /package/lib/types/graph/{errors → engine/errors}/GraphLoopLimitError.d.mts +0 -0
  1056. /package/lib/types/graph/{errors → engine/errors}/GraphPinningError.d.cts +0 -0
  1057. /package/lib/types/graph/{errors → engine/errors}/GraphPinningError.d.mts +0 -0
  1058. /package/lib/types/graph/{errors → engine/errors}/GraphPortError.d.cts +0 -0
  1059. /package/lib/types/graph/{errors → engine/errors}/GraphPortError.d.mts +0 -0
  1060. /package/lib/types/graph/{errors → engine/errors}/GraphStoreError.d.cts +0 -0
  1061. /package/lib/types/graph/{errors → engine/errors}/GraphStoreError.d.mts +0 -0
  1062. /package/lib/types/graph/{errors → engine/errors}/GraphTopologyError.d.cts +0 -0
  1063. /package/lib/types/graph/{errors → engine/errors}/GraphTopologyError.d.mts +0 -0
  1064. /package/lib/types/graph/{errors → engine/errors}/index.d.cts +0 -0
  1065. /package/lib/types/graph/{errors → engine/errors}/index.d.mts +0 -0
  1066. /package/lib/types/graph/{events → engine/events}/GraphExecutionEvent.d.cts +0 -0
  1067. /package/lib/types/graph/{events → engine/events}/GraphExecutionEvent.d.mts +0 -0
  1068. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventEmitter.d.cts +0 -0
  1069. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventEmitter.d.mts +0 -0
  1070. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventFactory.d.cts +0 -0
  1071. /package/lib/types/graph/{events → engine/events}/GraphExecutionEventFactory.d.mts +0 -0
  1072. /package/lib/types/graph/{events → engine/events}/GraphExecutionObserver.d.cts +0 -0
  1073. /package/lib/types/graph/{events → engine/events}/GraphExecutionObserver.d.mts +0 -0
  1074. /package/lib/types/graph/{events → engine/events}/index.d.cts +0 -0
  1075. /package/lib/types/graph/{events → engine/events}/index.d.mts +0 -0
  1076. /package/lib/types/graph/{execution → engine/execution}/CodeSandboxEvaluator.d.cts +0 -0
  1077. /package/lib/types/graph/{execution → engine/execution}/CodeSandboxEvaluator.d.mts +0 -0
  1078. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionContext.d.cts +0 -0
  1079. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionContext.d.mts +0 -0
  1080. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionEngine.d.cts +0 -0
  1081. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionEngine.d.mts +0 -0
  1082. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionFrame.d.cts +0 -0
  1083. /package/lib/types/graph/{execution → engine/execution}/GraphExecutionFrame.d.mts +0 -0
  1084. /package/lib/types/graph/{execution → engine/execution}/GraphNodeExecutor.d.cts +0 -0
  1085. /package/lib/types/graph/{execution → engine/execution}/GraphNodeExecutor.d.mts +0 -0
  1086. /package/lib/types/graph/{execution → engine/execution}/SwitchGraphNodeExecutor.d.cts +0 -0
  1087. /package/lib/types/graph/{execution → engine/execution}/SwitchGraphNodeExecutor.d.mts +0 -0
  1088. /package/lib/types/graph/{execution → engine/execution}/index.d.cts +0 -0
  1089. /package/lib/types/graph/{execution → engine/execution}/index.d.mts +0 -0
  1090. /package/lib/types/graph/{loops → engine/loops}/ForeachGraphNodeExecutor.d.cts +0 -0
  1091. /package/lib/types/graph/{loops → engine/loops}/ForeachGraphNodeExecutor.d.mts +0 -0
  1092. /package/lib/types/graph/{loops → engine/loops}/GraphLoopExecutionContext.d.cts +0 -0
  1093. /package/lib/types/graph/{loops → engine/loops}/GraphLoopExecutionContext.d.mts +0 -0
  1094. /package/lib/types/graph/{loops → engine/loops}/UntilGraphNodeExecutor.d.cts +0 -0
  1095. /package/lib/types/graph/{loops → engine/loops}/UntilGraphNodeExecutor.d.mts +0 -0
  1096. /package/lib/types/graph/{loops → engine/loops}/WhileGraphNodeExecutor.d.cts +0 -0
  1097. /package/lib/types/graph/{loops → engine/loops}/WhileGraphNodeExecutor.d.mts +0 -0
  1098. /package/lib/types/graph/{loops → engine/loops}/index.d.cts +0 -0
  1099. /package/lib/types/graph/{loops → engine/loops}/index.d.mts +0 -0
  1100. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningDependencyResolver.d.cts +0 -0
  1101. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningDependencyResolver.d.mts +0 -0
  1102. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningMetadata.d.cts +0 -0
  1103. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningMetadata.d.mts +0 -0
  1104. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningPolicy.d.cts +0 -0
  1105. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningPolicy.d.mts +0 -0
  1106. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningService.d.cts +0 -0
  1107. /package/lib/types/graph/{pinning → engine/pinning}/GraphPinningService.d.mts +0 -0
  1108. /package/lib/types/graph/{pinning → engine/pinning}/index.d.cts +0 -0
  1109. /package/lib/types/graph/{pinning → engine/pinning}/index.d.mts +0 -0
  1110. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlan.d.cts +0 -0
  1111. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlan.d.mts +0 -0
  1112. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanEdge.d.cts +0 -0
  1113. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanEdge.d.mts +0 -0
  1114. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanLayer.d.cts +0 -0
  1115. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanLayer.d.mts +0 -0
  1116. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanNode.d.cts +0 -0
  1117. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanNode.d.mts +0 -0
  1118. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanner.d.cts +0 -0
  1119. /package/lib/types/graph/{planning → engine/planning}/GraphExecutionPlanner.d.mts +0 -0
  1120. /package/lib/types/graph/{planning → engine/planning}/GraphRelationResolver.d.cts +0 -0
  1121. /package/lib/types/graph/{planning → engine/planning}/GraphRelationResolver.d.mts +0 -0
  1122. /package/lib/types/graph/{planning → engine/planning}/GraphTopology.d.cts +0 -0
  1123. /package/lib/types/graph/{planning → engine/planning}/GraphTopology.d.mts +0 -0
  1124. /package/lib/types/graph/{planning → engine/planning}/index.d.cts +0 -0
  1125. /package/lib/types/graph/{planning → engine/planning}/index.d.mts +0 -0
  1126. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorRegistry.d.cts +0 -0
  1127. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorRegistry.d.mts +0 -0
  1128. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorResolver.d.cts +0 -0
  1129. /package/lib/types/graph/{registry → engine/registry}/GraphNodeExecutorResolver.d.mts +0 -0
  1130. /package/lib/types/graph/{registry → engine/registry}/index.d.cts +0 -0
  1131. /package/lib/types/graph/{registry → engine/registry}/index.d.mts +0 -0
  1132. /package/lib/types/graph/{snapshots → engine/snapshots}/GraphExecutionSnapshotMapper.d.cts +0 -0
  1133. /package/lib/types/graph/{snapshots → engine/snapshots}/GraphExecutionSnapshotMapper.d.mts +0 -0
  1134. /package/lib/types/graph/{snapshots → engine/snapshots}/index.d.cts +0 -0
  1135. /package/lib/types/graph/{snapshots → engine/snapshots}/index.d.mts +0 -0
  1136. /package/lib/types/graph/{store → engine/store}/GraphCachedValue.d.cts +0 -0
  1137. /package/lib/types/graph/{store → engine/store}/GraphCachedValue.d.mts +0 -0
  1138. /package/lib/types/graph/{store → engine/store}/GraphValueKey.d.cts +0 -0
  1139. /package/lib/types/graph/{store → engine/store}/GraphValueKey.d.mts +0 -0
  1140. /package/lib/types/graph/{store → engine/store}/GraphValueStore.d.cts +0 -0
  1141. /package/lib/types/graph/{store → engine/store}/GraphValueStore.d.mts +0 -0
  1142. /package/lib/types/graph/{store → engine/store}/GraphValueStoreAdapter.d.cts +0 -0
  1143. /package/lib/types/graph/{store → engine/store}/GraphValueStoreAdapter.d.mts +0 -0
  1144. /package/lib/types/graph/{store → engine/store}/InMemoryGraphValueStoreAdapter.d.cts +0 -0
  1145. /package/lib/types/graph/{store → engine/store}/InMemoryGraphValueStoreAdapter.d.mts +0 -0
  1146. /package/lib/types/graph/{store → engine/store}/index.d.cts +0 -0
  1147. /package/lib/types/graph/{store → engine/store}/index.d.mts +0 -0
  1148. /package/lib/types/graph/{validation → engine/validation}/GraphDefinitionValidator.d.cts +0 -0
  1149. /package/lib/types/graph/{validation → engine/validation}/GraphDefinitionValidator.d.mts +0 -0
  1150. /package/lib/types/graph/{validation → engine/validation}/GraphPortSchemaResolver.d.cts +0 -0
  1151. /package/lib/types/graph/{validation → engine/validation}/GraphPortSchemaResolver.d.mts +0 -0
  1152. /package/lib/types/graph/{validation → engine/validation}/GraphValueValidator.d.cts +0 -0
  1153. /package/lib/types/graph/{validation → engine/validation}/GraphValueValidator.d.mts +0 -0
  1154. /package/lib/types/graph/{validation → engine/validation}/index.d.cts +0 -0
  1155. /package/lib/types/graph/{validation → engine/validation}/index.d.mts +0 -0
  1156. /package/lib/types/graph/{nodes → shared/nodes}/agent.d.cts +0 -0
  1157. /package/lib/types/graph/{nodes → shared/nodes}/agent.d.mts +0 -0
  1158. /package/lib/types/graph/{nodes → shared/nodes}/base.d.cts +0 -0
  1159. /package/lib/types/graph/{nodes → shared/nodes}/base.d.mts +0 -0
  1160. /package/lib/types/graph/{nodes → shared/nodes}/category-styles.d.cts +0 -0
  1161. /package/lib/types/graph/{nodes → shared/nodes}/category-styles.d.mts +0 -0
  1162. /package/lib/types/graph/{nodes → shared/nodes}/flow-control.d.cts +0 -0
  1163. /package/lib/types/graph/{nodes → shared/nodes}/flow-control.d.mts +0 -0
  1164. /package/lib/types/graph/{nodes → shared/nodes}/index.d.cts +0 -0
  1165. /package/lib/types/graph/{nodes → shared/nodes}/index.d.mts +0 -0
  1166. /package/lib/types/graph/{nodes → shared/nodes}/triggers.d.cts +0 -0
  1167. /package/lib/types/graph/{nodes → shared/nodes}/triggers.d.mts +0 -0
@@ -1,192 +0,0 @@
1
- import { graphDefinitionOf } from "@decaf-ts/ui-decorators/graph";
2
- import { GRAPH_WORKFLOW_BOUNDARY } from "./../constants.js";
3
- import { GraphCycleError } from "./../errors/GraphCycleError.js";
4
- import { GraphTopologyError } from "./../errors/GraphTopologyError.js";
5
- import { GraphRelationResolver } from "./GraphRelationResolver.js";
6
- /**
7
- * Planner that turns a {@link GraphWorkflowDefinition} into a
8
- * {@link GraphExecutionPlan} with topological layers.
9
- */
10
- export class GraphExecutionPlanner {
11
- constructor(resolver) {
12
- this.resolver = resolver ?? new GraphRelationResolver();
13
- }
14
- /**
15
- * Plans a workflow for execution.
16
- *
17
- * @param workflow - The workflow definition to plan.
18
- * @returns The execution plan with nodes, edges, layers, and maps.
19
- * @throws {GraphTopologyError} when node IDs are not unique.
20
- * @throws {GraphCycleError} when the workflow contains an unsupported cycle.
21
- */
22
- plan(workflow) {
23
- this.validateUniqueNodeIds(workflow);
24
- const nodes = this.resolveNodes(workflow);
25
- const edges = this.resolver.resolve(workflow);
26
- const incomingByNode = this.buildIncomingMap(edges);
27
- const outgoingByNode = this.buildOutgoingMap(edges);
28
- const layers = this.topologicalLayers(nodes, edges);
29
- return {
30
- workflow,
31
- workflowId: workflow.name,
32
- nodes,
33
- edges,
34
- layers,
35
- incomingByNode,
36
- outgoingByNode,
37
- };
38
- }
39
- /**
40
- * Validates that all workflow node IDs are unique.
41
- */
42
- validateUniqueNodeIds(workflow) {
43
- const seen = new Set();
44
- for (const node of workflow.nodes ?? []) {
45
- if (seen.has(node.id)) {
46
- throw new GraphTopologyError(`Duplicate node id '${node.id}' in workflow '${workflow.name}'`, { nodeId: node.id, workflowId: workflow.name });
47
- }
48
- seen.add(node.id);
49
- }
50
- }
51
- /**
52
- * Resolves workflow node metadata into plan nodes with full definitions.
53
- */
54
- resolveNodes(workflow) {
55
- const result = [];
56
- for (const nodeMeta of workflow.nodes ?? []) {
57
- const definition = this.resolveDefinition(nodeMeta);
58
- const inputPorts = (definition.ports ?? [])
59
- .filter((p) => p.direction === "input")
60
- .map((p) => p.name);
61
- const outputPorts = (definition.ports ?? [])
62
- .filter((p) => p.direction === "output")
63
- .map((p) => p.name);
64
- result.push({
65
- id: nodeMeta.id,
66
- kind: nodeMeta.kind ?? definition.kind ?? nodeMeta.id,
67
- label: nodeMeta.label,
68
- source: nodeMeta,
69
- definition,
70
- inputPorts,
71
- outputPorts,
72
- metadata: nodeMeta.metadata,
73
- });
74
- }
75
- return result;
76
- }
77
- /**
78
- * Attempts to resolve the full graph node definition from metadata.
79
- *
80
- * Accepts either a decorated Model class/instance (resolved via
81
- * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
82
- * (useful for serialized workflows that inline node definitions).
83
- */
84
- resolveDefinition(nodeMeta) {
85
- if (nodeMeta.node) {
86
- if (this.isRawDefinition(nodeMeta.node)) {
87
- return nodeMeta.node;
88
- }
89
- try {
90
- return graphDefinitionOf(nodeMeta.node);
91
- }
92
- catch {
93
- // fall through to stub
94
- }
95
- }
96
- // Return a minimal stub definition so planning can proceed
97
- return {
98
- name: nodeMeta.id,
99
- tag: nodeMeta.id,
100
- kind: nodeMeta.kind ?? nodeMeta.id,
101
- labels: [],
102
- ports: [],
103
- };
104
- }
105
- /**
106
- * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
107
- * (a plain object with a `ports` array and a `name` string).
108
- */
109
- isRawDefinition(value) {
110
- return (typeof value === "object" &&
111
- value !== null &&
112
- !Array.isArray(value) &&
113
- typeof value.name === "string" &&
114
- Array.isArray(value.ports));
115
- }
116
- /**
117
- * Builds a map of node id -> incoming edges.
118
- */
119
- buildIncomingMap(edges) {
120
- const map = new Map();
121
- for (const edge of edges) {
122
- const list = map.get(edge.targetNodeId) ?? [];
123
- list.push(edge);
124
- map.set(edge.targetNodeId, list);
125
- }
126
- return map;
127
- }
128
- /**
129
- * Builds a map of node id -> outgoing edges.
130
- */
131
- buildOutgoingMap(edges) {
132
- const map = new Map();
133
- for (const edge of edges) {
134
- const list = map.get(edge.sourceNodeId) ?? [];
135
- list.push(edge);
136
- map.set(edge.sourceNodeId, list);
137
- }
138
- return map;
139
- }
140
- /**
141
- * Produces topological layers using Kahn's algorithm.
142
- *
143
- * Workflow boundary edges do not count as executable-node dependencies.
144
- */
145
- topologicalLayers(nodes, edges) {
146
- const executableNodes = nodes.filter((n) => n.id !== GRAPH_WORKFLOW_BOUNDARY);
147
- const nodeIds = new Set(executableNodes.map((n) => n.id));
148
- // Only edges between two executable nodes count as dependencies
149
- const execEdges = edges.filter((e) => nodeIds.has(e.sourceNodeId) && nodeIds.has(e.targetNodeId));
150
- // Compute in-degree
151
- const indegree = new Map();
152
- for (const node of executableNodes)
153
- indegree.set(node.id, 0);
154
- for (const edge of execEdges) {
155
- indegree.set(edge.targetNodeId, (indegree.get(edge.targetNodeId) ?? 0) + 1);
156
- }
157
- const layers = [];
158
- const planned = new Set();
159
- let ready = executableNodes.filter((n) => (indegree.get(n.id) ?? 0) === 0);
160
- let layerIndex = 0;
161
- while (ready.length > 0) {
162
- const layer = { index: layerIndex++, nodes: ready };
163
- layers.push(layer);
164
- const nextReady = [];
165
- for (const node of ready) {
166
- planned.add(node.id);
167
- const outgoing = execEdges.filter((e) => e.sourceNodeId === node.id);
168
- for (const edge of outgoing) {
169
- const deg = (indegree.get(edge.targetNodeId) ?? 1) - 1;
170
- indegree.set(edge.targetNodeId, deg);
171
- if (deg === 0 && !planned.has(edge.targetNodeId)) {
172
- const next = executableNodes.find((n) => n.id === edge.targetNodeId);
173
- if (next)
174
- nextReady.push(next);
175
- }
176
- }
177
- }
178
- ready = nextReady;
179
- }
180
- if (planned.size !== executableNodes.length) {
181
- const unplanned = executableNodes
182
- .filter((n) => !planned.has(n.id))
183
- .map((n) => n.id);
184
- throw new GraphCycleError({
185
- unplannedNodes: unplanned,
186
- workflowId: nodes[0]?.definition?.name,
187
- });
188
- }
189
- return layers;
190
- }
191
- }
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25QbGFubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dyYXBoL3BsYW5uaW5nL0dyYXBoRXhlY3V0aW9uUGxhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsMEJBQXFCO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsdUNBQWtDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQ0FBcUM7QUFLbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFnQztBQUVoRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBR2hDLFlBQVksUUFBZ0M7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksSUFBSSxxQkFBcUIsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsSUFBSSxDQUFDLFFBQWlDO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVwRCxPQUFPO1lBQ0wsUUFBUTtZQUNSLFVBQVUsRUFBRSxRQUFRLENBQUMsSUFBSTtZQUN6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TSxJQUFJLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBQ3JFLElBQUksSUFBSTs0QkFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNqQyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxHQUFHLFNBQVMsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QyxNQUFNLFNBQVMsR0FBRyxlQUFlO2lCQUM5QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ2pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxlQUFlLENBQUM7Z0JBQ3hCLGNBQWMsRUFBRSxTQUFTO2dCQUN6QixVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJO2FBQ3ZDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL3BsYW5uaW5nL0dyYXBoRXhlY3V0aW9uUGxhbm5lclxuICogQHN1bW1hcnkgVG9wb2xvZ2ljYWwgcGxhbm5lciBmb3IgZ3JhcGggd29ya2Zsb3dzLlxuICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHdvcmtmbG93IG5vZGVzIGFuZCByZWxhdGlvbnMsIHZhbGlkYXRlcyB0b3BvbG9neSwgZGV0ZWN0cyBjeWNsZXMsIGFuZCBwcm9kdWNlcyB0b3BvbG9naWNhbCBleGVjdXRpb24gbGF5ZXJzIHVzaW5nIEthaG4ncyBhbGdvcml0aG0uXG4gKi9cbmltcG9ydCB0eXBlIHtcbiAgR3JhcGhOb2RlRGVmaW5pdGlvbixcbiAgR3JhcGhXb3JrZmxvd0RlZmluaXRpb24sXG59IGZyb20gXCJAZGVjYWYtdHMvdWktZGVjb3JhdG9ycy9ncmFwaFwiO1xuaW1wb3J0IHsgZ3JhcGhEZWZpbml0aW9uT2YgfSBmcm9tIFwiQGRlY2FmLXRzL3VpLWRlY29yYXRvcnMvZ3JhcGhcIjtcblxuaW1wb3J0IHsgR1JBUEhfV09SS0ZMT1dfQk9VTkRBUlkgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBHcmFwaEN5Y2xlRXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzL0dyYXBoQ3ljbGVFcnJvclwiO1xuaW1wb3J0IHsgR3JhcGhUb3BvbG9neUVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy9HcmFwaFRvcG9sb2d5RXJyb3JcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25QbGFuIH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25QbGFuXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uUGxhbk5vZGUgfSBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvblBsYW5Ob2RlXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uUGxhbkVkZ2UgfSBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvblBsYW5FZGdlXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoRXhlY3V0aW9uUGxhbkxheWVyIH0gZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25QbGFuTGF5ZXJcIjtcbmltcG9ydCB7IEdyYXBoUmVsYXRpb25SZXNvbHZlciB9IGZyb20gXCIuL0dyYXBoUmVsYXRpb25SZXNvbHZlclwiO1xuXG4vKipcbiAqIFBsYW5uZXIgdGhhdCB0dXJucyBhIHtAbGluayBHcmFwaFdvcmtmbG93RGVmaW5pdGlvbn0gaW50byBhXG4gKiB7QGxpbmsgR3JhcGhFeGVjdXRpb25QbGFufSB3aXRoIHRvcG9sb2dpY2FsIGxheWVycy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoRXhlY3V0aW9uUGxhbm5lciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IEdyYXBoUmVsYXRpb25SZXNvbHZlcjtcblxuICBjb25zdHJ1Y3RvcihyZXNvbHZlcj86IEdyYXBoUmVsYXRpb25SZXNvbHZlcikge1xuICAgIHRoaXMucmVzb2x2ZXIgPSByZXNvbHZlciA/PyBuZXcgR3JhcGhSZWxhdGlvblJlc29sdmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogUGxhbnMgYSB3b3JrZmxvdyBmb3IgZXhlY3V0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gd29ya2Zsb3cgLSBUaGUgd29ya2Zsb3cgZGVmaW5pdGlvbiB0byBwbGFuLlxuICAgKiBAcmV0dXJucyBUaGUgZXhlY3V0aW9uIHBsYW4gd2l0aCBub2RlcywgZWRnZXMsIGxheWVycywgYW5kIG1hcHMuXG4gICAqIEB0aHJvd3Mge0dyYXBoVG9wb2xvZ3lFcnJvcn0gd2hlbiBub2RlIElEcyBhcmUgbm90IHVuaXF1ZS5cbiAgICogQHRocm93cyB7R3JhcGhDeWNsZUVycm9yfSB3aGVuIHRoZSB3b3JrZmxvdyBjb250YWlucyBhbiB1bnN1cHBvcnRlZCBjeWNsZS5cbiAgICovXG4gIHBsYW4od29ya2Zsb3c6IEdyYXBoV29ya2Zsb3dEZWZpbml0aW9uKTogR3JhcGhFeGVjdXRpb25QbGFuIHtcbiAgICB0aGlzLnZhbGlkYXRlVW5pcXVlTm9kZUlkcyh3b3JrZmxvdyk7XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMucmVzb2x2ZU5vZGVzKHdvcmtmbG93KTtcbiAgICBjb25zdCBlZGdlcyA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZSh3b3JrZmxvdyk7XG5cbiAgICBjb25zdCBpbmNvbWluZ0J5Tm9kZSA9IHRoaXMuYnVpbGRJbmNvbWluZ01hcChlZGdlcyk7XG4gICAgY29uc3Qgb3V0Z29pbmdCeU5vZGUgPSB0aGlzLmJ1aWxkT3V0Z29pbmdNYXAoZWRnZXMpO1xuXG4gICAgY29uc3QgbGF5ZXJzID0gdGhpcy50b3BvbG9naWNhbExheWVycyhub2RlcywgZWRnZXMpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHdvcmtmbG93LFxuICAgICAgd29ya2Zsb3dJZDogd29ya2Zsb3cubmFtZSxcbiAgICAgIG5vZGVzLFxuICAgICAgZWRnZXMsXG4gICAgICBsYXllcnMsXG4gICAgICBpbmNvbWluZ0J5Tm9kZSxcbiAgICAgIG91dGdvaW5nQnlOb2RlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoYXQgYWxsIHdvcmtmbG93IG5vZGUgSURzIGFyZSB1bmlxdWUuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlVW5pcXVlTm9kZUlkcyh3b3JrZmxvdzogR3JhcGhXb3JrZmxvd0RlZmluaXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIHdvcmtmbG93Lm5vZGVzID8/IFtdKSB7XG4gICAgICBpZiAoc2Vlbi5oYXMobm9kZS5pZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdyYXBoVG9wb2xvZ3lFcnJvcihcbiAgICAgICAgICBgRHVwbGljYXRlIG5vZGUgaWQgJyR7bm9kZS5pZH0nIGluIHdvcmtmbG93ICcke3dvcmtmbG93Lm5hbWV9J2AsXG4gICAgICAgICAgeyBub2RlSWQ6IG5vZGUuaWQsIHdvcmtmbG93SWQ6IHdvcmtmbG93Lm5hbWUgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgc2Vlbi5hZGQobm9kZS5pZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHdvcmtmbG93IG5vZGUgbWV0YWRhdGEgaW50byBwbGFuIG5vZGVzIHdpdGggZnVsbCBkZWZpbml0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZU5vZGVzKFxuICAgIHdvcmtmbG93OiBHcmFwaFdvcmtmbG93RGVmaW5pdGlvblxuICApOiBHcmFwaEV4ZWN1dGlvblBsYW5Ob2RlW10ge1xuICAgIGNvbnN0IHJlc3VsdDogR3JhcGhFeGVjdXRpb25QbGFuTm9kZVtdID0gW107XG4gICAgZm9yIChjb25zdCBub2RlTWV0YSBvZiB3b3JrZmxvdy5ub2RlcyA/PyBbXSkge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMucmVzb2x2ZURlZmluaXRpb24obm9kZU1ldGEpO1xuICAgICAgY29uc3QgaW5wdXRQb3J0cyA9IChkZWZpbml0aW9uLnBvcnRzID8/IFtdKVxuICAgICAgICAuZmlsdGVyKChwKSA9PiBwLmRpcmVjdGlvbiA9PT0gXCJpbnB1dFwiKVxuICAgICAgICAubWFwKChwKSA9PiBwLm5hbWUpO1xuICAgICAgY29uc3Qgb3V0cHV0UG9ydHMgPSAoZGVmaW5pdGlvbi5wb3J0cyA/PyBbXSlcbiAgICAgICAgLmZpbHRlcigocCkgPT4gcC5kaXJlY3Rpb24gPT09IFwib3V0cHV0XCIpXG4gICAgICAgIC5tYXAoKHApID0+IHAubmFtZSk7XG4gICAgICByZXN1bHQucHVzaCh7XG4gICAgICAgIGlkOiBub2RlTWV0YS5pZCxcbiAgICAgICAga2luZDogbm9kZU1ldGEua2luZCA/PyBkZWZpbml0aW9uLmtpbmQgPz8gbm9kZU1ldGEuaWQsXG4gICAgICAgIGxhYmVsOiBub2RlTWV0YS5sYWJlbCxcbiAgICAgICAgc291cmNlOiBub2RlTWV0YSxcbiAgICAgICAgZGVmaW5pdGlvbixcbiAgICAgICAgaW5wdXRQb3J0cyxcbiAgICAgICAgb3V0cHV0UG9ydHMsXG4gICAgICAgIG1ldGFkYXRhOiBub2RlTWV0YS5tZXRhZGF0YSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIHJlc29sdmUgdGhlIGZ1bGwgZ3JhcGggbm9kZSBkZWZpbml0aW9uIGZyb20gbWV0YWRhdGEuXG4gICAqXG4gICAqIEFjY2VwdHMgZWl0aGVyIGEgZGVjb3JhdGVkIE1vZGVsIGNsYXNzL2luc3RhbmNlIChyZXNvbHZlZCB2aWFcbiAgICogYGdyYXBoRGVmaW5pdGlvbk9mYCkgb3IgYSBwbGFpbiBgR3JhcGhOb2RlRGVmaW5pdGlvbmAtc2hhcGVkIG9iamVjdFxuICAgKiAodXNlZnVsIGZvciBzZXJpYWxpemVkIHdvcmtmbG93cyB0aGF0IGlubGluZSBub2RlIGRlZmluaXRpb25zKS5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZURlZmluaXRpb24obm9kZU1ldGE6IHtcbiAgICBub2RlPzogdW5rbm93bjtcbiAgICBraW5kPzogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pOiBHcmFwaE5vZGVEZWZpbml0aW9uIHtcbiAgICBpZiAobm9kZU1ldGEubm9kZSkge1xuICAgICAgaWYgKHRoaXMuaXNSYXdEZWZpbml0aW9uKG5vZGVNZXRhLm5vZGUpKSB7XG4gICAgICAgIHJldHVybiBub2RlTWV0YS5ub2RlIGFzIEdyYXBoTm9kZURlZmluaXRpb247XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gZ3JhcGhEZWZpbml0aW9uT2Yobm9kZU1ldGEubm9kZSBhcyBhbnkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGZhbGwgdGhyb3VnaCB0byBzdHViXG4gICAgICB9XG4gICAgfVxuICAgIC8vIFJldHVybiBhIG1pbmltYWwgc3R1YiBkZWZpbml0aW9uIHNvIHBsYW5uaW5nIGNhbiBwcm9jZWVkXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IG5vZGVNZXRhLmlkLFxuICAgICAgdGFnOiBub2RlTWV0YS5pZCxcbiAgICAgIGtpbmQ6IG5vZGVNZXRhLmtpbmQgPz8gbm9kZU1ldGEuaWQsXG4gICAgICBsYWJlbHM6IFtdLFxuICAgICAgcG9ydHM6IFtdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgd2hlbiBhIHZhbHVlIGxvb2tzIGxpa2UgYSByYXcge0BsaW5rIEdyYXBoTm9kZURlZmluaXRpb259XG4gICAqIChhIHBsYWluIG9iamVjdCB3aXRoIGEgYHBvcnRzYCBhcnJheSBhbmQgYSBgbmFtZWAgc3RyaW5nKS5cbiAgICovXG4gIHByaXZhdGUgaXNSYXdEZWZpbml0aW9uKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgICAgdHlwZW9mICh2YWx1ZSBhcyB7IG5hbWU/OiB1bmtub3duIH0pLm5hbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoKHZhbHVlIGFzIHsgcG9ydHM/OiB1bmtub3duIH0pLnBvcnRzKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGEgbWFwIG9mIG5vZGUgaWQgLT4gaW5jb21pbmcgZWRnZXMuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkSW5jb21pbmdNYXAoXG4gICAgZWRnZXM6IEdyYXBoRXhlY3V0aW9uUGxhbkVkZ2VbXVxuICApOiBNYXA8c3RyaW5nLCBHcmFwaEV4ZWN1dGlvblBsYW5FZGdlW10+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgR3JhcGhFeGVjdXRpb25QbGFuRWRnZVtdPigpO1xuICAgIGZvciAoY29uc3QgZWRnZSBvZiBlZGdlcykge1xuICAgICAgY29uc3QgbGlzdCA9IG1hcC5nZXQoZWRnZS50YXJnZXROb2RlSWQpID8/IFtdO1xuICAgICAgbGlzdC5wdXNoKGVkZ2UpO1xuICAgICAgbWFwLnNldChlZGdlLnRhcmdldE5vZGVJZCwgbGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGEgbWFwIG9mIG5vZGUgaWQgLT4gb3V0Z29pbmcgZWRnZXMuXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkT3V0Z29pbmdNYXAoXG4gICAgZWRnZXM6IEdyYXBoRXhlY3V0aW9uUGxhbkVkZ2VbXVxuICApOiBNYXA8c3RyaW5nLCBHcmFwaEV4ZWN1dGlvblBsYW5FZGdlW10+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgR3JhcGhFeGVjdXRpb25QbGFuRWRnZVtdPigpO1xuICAgIGZvciAoY29uc3QgZWRnZSBvZiBlZGdlcykge1xuICAgICAgY29uc3QgbGlzdCA9IG1hcC5nZXQoZWRnZS5zb3VyY2VOb2RlSWQpID8/IFtdO1xuICAgICAgbGlzdC5wdXNoKGVkZ2UpO1xuICAgICAgbWFwLnNldChlZGdlLnNvdXJjZU5vZGVJZCwgbGlzdCk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICAvKipcbiAgICogUHJvZHVjZXMgdG9wb2xvZ2ljYWwgbGF5ZXJzIHVzaW5nIEthaG4ncyBhbGdvcml0aG0uXG4gICAqXG4gICAqIFdvcmtmbG93IGJvdW5kYXJ5IGVkZ2VzIGRvIG5vdCBjb3VudCBhcyBleGVjdXRhYmxlLW5vZGUgZGVwZW5kZW5jaWVzLlxuICAgKi9cbiAgcHJpdmF0ZSB0b3BvbG9naWNhbExheWVycyhcbiAgICBub2RlczogR3JhcGhFeGVjdXRpb25QbGFuTm9kZVtdLFxuICAgIGVkZ2VzOiBHcmFwaEV4ZWN1dGlvblBsYW5FZGdlW11cbiAgKTogR3JhcGhFeGVjdXRpb25QbGFuTGF5ZXJbXSB7XG4gICAgY29uc3QgZXhlY3V0YWJsZU5vZGVzID0gbm9kZXMuZmlsdGVyKFxuICAgICAgKG4pID0+IG4uaWQgIT09IEdSQVBIX1dPUktGTE9XX0JPVU5EQVJZXG4gICAgKTtcbiAgICBjb25zdCBub2RlSWRzID0gbmV3IFNldChleGVjdXRhYmxlTm9kZXMubWFwKChuKSA9PiBuLmlkKSk7XG5cbiAgICAvLyBPbmx5IGVkZ2VzIGJldHdlZW4gdHdvIGV4ZWN1dGFibGUgbm9kZXMgY291bnQgYXMgZGVwZW5kZW5jaWVzXG4gICAgY29uc3QgZXhlY0VkZ2VzID0gZWRnZXMuZmlsdGVyKFxuICAgICAgKGUpID0+IG5vZGVJZHMuaGFzKGUuc291cmNlTm9kZUlkKSAmJiBub2RlSWRzLmhhcyhlLnRhcmdldE5vZGVJZClcbiAgICApO1xuXG4gICAgLy8gQ29tcHV0ZSBpbi1kZWdyZWVcbiAgICBjb25zdCBpbmRlZ3JlZSA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIGV4ZWN1dGFibGVOb2RlcykgaW5kZWdyZWUuc2V0KG5vZGUuaWQsIDApO1xuICAgIGZvciAoY29uc3QgZWRnZSBvZiBleGVjRWRnZXMpIHtcbiAgICAgIGluZGVncmVlLnNldChlZGdlLnRhcmdldE5vZGVJZCwgKGluZGVncmVlLmdldChlZGdlLnRhcmdldE5vZGVJZCkgPz8gMCkgKyAxKTtcbiAgICB9XG5cbiAgICBjb25zdCBsYXllcnM6IEdyYXBoRXhlY3V0aW9uUGxhbkxheWVyW10gPSBbXTtcbiAgICBjb25zdCBwbGFubmVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgbGV0IHJlYWR5ID0gZXhlY3V0YWJsZU5vZGVzLmZpbHRlcigobikgPT4gKGluZGVncmVlLmdldChuLmlkKSA/PyAwKSA9PT0gMCk7XG4gICAgbGV0IGxheWVySW5kZXggPSAwO1xuXG4gICAgd2hpbGUgKHJlYWR5Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGxheWVyOiBHcmFwaEV4ZWN1dGlvblBsYW5MYXllciA9IHsgaW5kZXg6IGxheWVySW5kZXgrKywgbm9kZXM6IHJlYWR5IH07XG4gICAgICBsYXllcnMucHVzaChsYXllcik7XG4gICAgICBjb25zdCBuZXh0UmVhZHk6IEdyYXBoRXhlY3V0aW9uUGxhbk5vZGVbXSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBub2RlIG9mIHJlYWR5KSB7XG4gICAgICAgIHBsYW5uZWQuYWRkKG5vZGUuaWQpO1xuICAgICAgICBjb25zdCBvdXRnb2luZyA9IGV4ZWNFZGdlcy5maWx0ZXIoKGUpID0+IGUuc291cmNlTm9kZUlkID09PSBub2RlLmlkKTtcbiAgICAgICAgZm9yIChjb25zdCBlZGdlIG9mIG91dGdvaW5nKSB7XG4gICAgICAgICAgY29uc3QgZGVnID0gKGluZGVncmVlLmdldChlZGdlLnRhcmdldE5vZGVJZCkgPz8gMSkgLSAxO1xuICAgICAgICAgIGluZGVncmVlLnNldChlZGdlLnRhcmdldE5vZGVJZCwgZGVnKTtcbiAgICAgICAgICBpZiAoZGVnID09PSAwICYmICFwbGFubmVkLmhhcyhlZGdlLnRhcmdldE5vZGVJZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBleGVjdXRhYmxlTm9kZXMuZmluZCgobikgPT4gbi5pZCA9PT0gZWRnZS50YXJnZXROb2RlSWQpO1xuICAgICAgICAgICAgaWYgKG5leHQpIG5leHRSZWFkeS5wdXNoKG5leHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmVhZHkgPSBuZXh0UmVhZHk7XG4gICAgfVxuXG4gICAgaWYgKHBsYW5uZWQuc2l6ZSAhPT0gZXhlY3V0YWJsZU5vZGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgdW5wbGFubmVkID0gZXhlY3V0YWJsZU5vZGVzXG4gICAgICAgIC5maWx0ZXIoKG4pID0+ICFwbGFubmVkLmhhcyhuLmlkKSlcbiAgICAgICAgLm1hcCgobikgPT4gbi5pZCk7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhDeWNsZUVycm9yKHtcbiAgICAgICAgdW5wbGFubmVkTm9kZXM6IHVucGxhbm5lZCxcbiAgICAgICAgd29ya2Zsb3dJZDogbm9kZXNbMF0/LmRlZmluaXRpb24/Lm5hbWUsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGF5ZXJzO1xuICB9XG59XG4iXX0=
@@ -1,167 +0,0 @@
1
- import { graphDefinitionOf } from "@decaf-ts/ui-decorators/graph";
2
- import { GRAPH_WORKFLOW_BOUNDARY } from "./../constants.js";
3
- import { GraphPortError } from "./../errors/GraphPortError.js";
4
- import { GraphTopologyError } from "./../errors/GraphTopologyError.js";
5
- /**
6
- * Resolves raw workflow relation metadata into normalized execution edges.
7
- */
8
- export class GraphRelationResolver {
9
- /**
10
- * Resolves all relations of a workflow into execution edges.
11
- *
12
- * @param workflow - The workflow definition.
13
- * @returns Array of normalized edges.
14
- * @throws {GraphTopologyError} when an endpoint is unknown or ambiguous.
15
- * @throws {GraphPortError} when a referenced port is missing or unknown.
16
- */
17
- resolve(workflow) {
18
- const nodeIds = new Set(workflow.nodes.map((n) => n.id));
19
- const boundaryAliases = this.boundaryAliases(workflow);
20
- const inputPorts = this.portNames(workflow.inputs);
21
- const outputPorts = this.portNames(workflow.outputs);
22
- const nodePortMap = this.buildNodePortMap(workflow);
23
- const edges = [];
24
- for (const relation of workflow.relations ?? []) {
25
- const edge = this.resolveRelation(relation, nodeIds, boundaryAliases, inputPorts, outputPorts, nodePortMap);
26
- edges.push(edge);
27
- }
28
- return edges;
29
- }
30
- /**
31
- * Resolves a single relation into an edge.
32
- */
33
- resolveRelation(relation, nodeIds, boundaryAliases, inputPorts, outputPorts, nodePortMap) {
34
- const sourceNodeId = this.resolveEndpoint(relation.source, nodeIds, boundaryAliases);
35
- const targetNodeId = this.resolveEndpoint(relation.target, nodeIds, boundaryAliases);
36
- const sourcePort = relation.sourcePort;
37
- const targetPort = relation.targetPort;
38
- if (!sourcePort) {
39
- throw new GraphPortError(`Relation is missing sourcePort (source: ${String(relation.source)}, target: ${String(relation.target)})`, { relation });
40
- }
41
- if (!targetPort) {
42
- throw new GraphPortError(`Relation is missing targetPort (source: ${String(relation.source)}, target: ${String(relation.target)})`, { relation });
43
- }
44
- this.validatePort(sourceNodeId, sourcePort, true, boundaryAliases, inputPorts, outputPorts, nodePortMap);
45
- this.validatePort(targetNodeId, targetPort, false, boundaryAliases, inputPorts, outputPorts, nodePortMap);
46
- return {
47
- id: this.createEdgeId(sourceNodeId, sourcePort, targetNodeId, targetPort),
48
- sourceNodeId,
49
- sourcePort,
50
- targetNodeId,
51
- targetPort,
52
- label: relation.label,
53
- metadata: relation.metadata,
54
- };
55
- }
56
- /**
57
- * Resolves an endpoint (source or target) to a node id or the workflow boundary.
58
- */
59
- resolveEndpoint(endpoint, nodeIds, boundaryAliases) {
60
- const name = String(endpoint);
61
- if (boundaryAliases.has(name))
62
- return GRAPH_WORKFLOW_BOUNDARY;
63
- if (nodeIds.has(name))
64
- return name;
65
- throw new GraphTopologyError(`Unknown endpoint '${name}'`, { endpoint: name, knownNodes: Array.from(nodeIds) });
66
- }
67
- /**
68
- * Validates that a port exists on the given node or boundary.
69
- */
70
- validatePort(nodeId, port, isSource, boundaryAliases, inputPorts, outputPorts, nodePortMap) {
71
- if (nodeId === GRAPH_WORKFLOW_BOUNDARY) {
72
- const ports = isSource ? inputPorts : outputPorts;
73
- if (!ports.has(port)) {
74
- throw new GraphPortError(`Unknown ${isSource ? "input" : "output"} port '${port}' on workflow boundary`, { nodeId, port, isSource, available: Array.from(ports) });
75
- }
76
- return;
77
- }
78
- const nodePorts = nodePortMap.get(nodeId);
79
- if (!nodePorts) {
80
- throw new GraphTopologyError(`No port map for node '${nodeId}'`, {
81
- nodeId,
82
- });
83
- }
84
- const ports = isSource ? nodePorts.output : nodePorts.input;
85
- if (!ports.has(port)) {
86
- throw new GraphPortError(`Unknown ${isSource ? "output" : "input"} port '${port}' on node '${nodeId}'`, { nodeId, port, isSource, available: Array.from(ports) });
87
- }
88
- }
89
- /**
90
- * Builds the set of boundary aliases for a workflow.
91
- */
92
- boundaryAliases(workflow) {
93
- return new Set([
94
- GRAPH_WORKFLOW_BOUNDARY,
95
- "workflow",
96
- "graph",
97
- workflow.name,
98
- ]);
99
- }
100
- /**
101
- * Extracts port names from a list of port definitions.
102
- */
103
- portNames(ports) {
104
- return new Set((ports ?? []).map((p) => p.name));
105
- }
106
- /**
107
- * Builds a map of node id -> { input ports, output ports }.
108
- */
109
- buildNodePortMap(workflow) {
110
- const map = new Map();
111
- for (const nodeMeta of workflow.nodes ?? []) {
112
- const input = new Set();
113
- const output = new Set();
114
- const def = this.resolveNodeDefinition(nodeMeta);
115
- if (def) {
116
- for (const port of def.ports ?? []) {
117
- if (port.direction === "input")
118
- input.add(port.name);
119
- else
120
- output.add(port.name);
121
- }
122
- }
123
- map.set(nodeMeta.id, { input, output });
124
- }
125
- return map;
126
- }
127
- /**
128
- * Attempts to resolve a node's full definition from its metadata.
129
- *
130
- * Accepts either a decorated Model class/instance (resolved via
131
- * `graphDefinitionOf`) or a plain `GraphNodeDefinition`-shaped object
132
- * (useful for serialized workflows that inline node definitions).
133
- */
134
- resolveNodeDefinition(nodeMeta) {
135
- if (nodeMeta.node) {
136
- if (this.isRawDefinition(nodeMeta.node)) {
137
- return nodeMeta.node;
138
- }
139
- try {
140
- const def = graphDefinitionOf(nodeMeta.node);
141
- return def;
142
- }
143
- catch {
144
- return undefined;
145
- }
146
- }
147
- return undefined;
148
- }
149
- /**
150
- * Returns `true` when a value looks like a raw {@link GraphNodeDefinition}
151
- * (a plain object with a `ports` array and a `name` string).
152
- */
153
- isRawDefinition(value) {
154
- return (typeof value === "object" &&
155
- value !== null &&
156
- !Array.isArray(value) &&
157
- typeof value.name === "string" &&
158
- Array.isArray(value.ports));
159
- }
160
- /**
161
- * Creates a stable edge id from its endpoints and ports.
162
- */
163
- createEdgeId(sourceNodeId, sourcePort, targetNodeId, targetPort) {
164
- return `${sourceNodeId}:${sourcePort}->${targetNodeId}:${targetPort}`;
165
- }
166
- }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhSZWxhdGlvblJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dyYXBoL3BsYW5uaW5nL0dyYXBoUmVsYXRpb25SZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsMEJBQXFCO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsc0NBQWlDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQ0FBcUM7QUFHbEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsUUFBaUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBELE1BQU0sS0FBSyxHQUE2QixFQUFFLENBQUM7UUFFM0MsS0FBSyxNQUFNLFFBQVEsSUFBSSxRQUFRLENBQUMsU0FBUyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQy9CLFFBQVEsRUFDUixPQUFPLEVBQ1AsZUFB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QixDQUMzQixRQUEyQztRQUUzQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sUUFBUSxDQUFDLElBRWYsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQVcsQ0FBQyxDQUFDO2dCQUNwRCxPQUFPLEdBQVUsQ0FBQztZQUNwQixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGVBQWUsQ0FBQyxLQUFjO1FBQ3BDLE9BQU8sQ0FDTCxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQ3pCLEtBQUssS0FBSyxJQUFJO1lBQ2QsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNyQixPQUFRLEtBQTRCLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBRSxLQUE2QixDQUFDLEtBQUssQ0FBQyxDQUNwRCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWSxDQUNsQixZQUFvQixFQUNwQixVQUFrQixFQUNsQixZQUFvQixFQUNwQixVQUFrQjtRQUVsQixPQUFPLEdBQUcsWUFBWSxJQUFJLFVBQVUsS0FBSyxZQUFZLElBQUksVUFBVSxFQUFFLENBQUM7SUFDeEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9wbGFubmluZy9HcmFwaFJlbGF0aW9uUmVzb2x2ZXJcbiAqIEBzdW1tYXJ5IE5vcm1hbGl6ZXMgd29ya2Zsb3cgcmVsYXRpb25zIGludG8gZXhlY3V0aW9uIGVkZ2VzLlxuICogQGRlc2NyaXB0aW9uIFJlc29sdmVzIHdvcmtmbG93IGJvdW5kYXJ5IGFsaWFzZXMsIHZhbGlkYXRlcyBlbmRwb2ludHMgYW5kIHBvcnRzLCBhbmQgcHJvZHVjZXMgc3RhYmxlIGVkZ2UgSURzLlxuICovXG5pbXBvcnQgdHlwZSB7XG4gIEdyYXBoUG9ydERlZmluaXRpb24sXG4gIEdyYXBoV29ya2Zsb3dEZWZpbml0aW9uLFxuICBHcmFwaFdvcmtmbG93UmVsYXRpb25NZXRhZGF0YSxcbn0gZnJvbSBcIkBkZWNhZi10cy91aS1kZWNvcmF0b3JzL2dyYXBoXCI7XG5pbXBvcnQgeyBncmFwaERlZmluaXRpb25PZiB9IGZyb20gXCJAZGVjYWYtdHMvdWktZGVjb3JhdG9ycy9ncmFwaFwiO1xuXG5pbXBvcnQgeyBHUkFQSF9XT1JLRkxPV19CT1VOREFSWSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IEdyYXBoUG9ydEVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy9HcmFwaFBvcnRFcnJvclwiO1xuaW1wb3J0IHsgR3JhcGhUb3BvbG9neUVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy9HcmFwaFRvcG9sb2d5RXJyb3JcIjtcbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25QbGFuRWRnZSB9IGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uUGxhbkVkZ2VcIjtcblxuLyoqXG4gKiBSZXNvbHZlcyByYXcgd29ya2Zsb3cgcmVsYXRpb24gbWV0YWRhdGEgaW50byBub3JtYWxpemVkIGV4ZWN1dGlvbiBlZGdlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdyYXBoUmVsYXRpb25SZXNvbHZlciB7XG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbGwgcmVsYXRpb25zIG9mIGEgd29ya2Zsb3cgaW50byBleGVjdXRpb24gZWRnZXMuXG4gICAqXG4gICAqIEBwYXJhbSB3b3JrZmxvdyAtIFRoZSB3b3JrZmxvdyBkZWZpbml0aW9uLlxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBub3JtYWxpemVkIGVkZ2VzLlxuICAgKiBAdGhyb3dzIHtHcmFwaFRvcG9sb2d5RXJyb3J9IHdoZW4gYW4gZW5kcG9pbnQgaXMgdW5rbm93biBvciBhbWJpZ3VvdXMuXG4gICAqIEB0aHJvd3Mge0dyYXBoUG9ydEVycm9yfSB3aGVuIGEgcmVmZXJlbmNlZCBwb3J0IGlzIG1pc3Npbmcgb3IgdW5rbm93bi5cbiAgICovXG4gIHJlc29sdmUod29ya2Zsb3c6IEdyYXBoV29ya2Zsb3dEZWZpbml0aW9uKTogR3JhcGhFeGVjdXRpb25QbGFuRWRnZVtdIHtcbiAgICBjb25zdCBub2RlSWRzID0gbmV3IFNldCh3b3JrZmxvdy5ub2Rlcy5tYXAoKG4pID0+IG4uaWQpKTtcbiAgICBjb25zdCBib3VuZGFyeUFsaWFzZXMgPSB0aGlzLmJvdW5kYXJ5QWxpYXNlcyh3b3JrZmxvdyk7XG4gICAgY29uc3QgaW5wdXRQb3J0cyA9IHRoaXMucG9ydE5hbWVzKHdvcmtmbG93LmlucHV0cyk7XG4gICAgY29uc3Qgb3V0cHV0UG9ydHMgPSB0aGlzLnBvcnROYW1lcyh3b3JrZmxvdy5vdXRwdXRzKTtcbiAgICBjb25zdCBub2RlUG9ydE1hcCA9IHRoaXMuYnVpbGROb2RlUG9ydE1hcCh3b3JrZmxvdyk7XG5cbiAgICBjb25zdCBlZGdlczogR3JhcGhFeGVjdXRpb25QbGFuRWRnZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHJlbGF0aW9uIG9mIHdvcmtmbG93LnJlbGF0aW9ucyA/PyBbXSkge1xuICAgICAgY29uc3QgZWRnZSA9IHRoaXMucmVzb2x2ZVJlbGF0aW9uKFxuICAgICAgICByZWxhdGlvbixcbiAgICAgICAgbm9kZUlkcyxcbiAgICAgICAgYm91bmRhcnlBbGlhc2VzLFxuICAgICAgICBpbnB1dFBvcnRzLFxuICAgICAgICBvdXRwdXRQb3J0cyxcbiAgICAgICAgbm9kZVBvcnRNYXBcbiAgICAgICk7XG4gICAgICBlZGdlcy5wdXNoKGVkZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBlZGdlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhIHNpbmdsZSByZWxhdGlvbiBpbnRvIGFuIGVkZ2UuXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVSZWxhdGlvbihcbiAgICByZWxhdGlvbjogR3JhcGhXb3JrZmxvd1JlbGF0aW9uTWV0YWRhdGEsXG4gICAgbm9kZUlkczogU2V0PHN0cmluZz4sXG4gICAgYm91bmRhcnlBbGlhc2VzOiBTZXQ8c3RyaW5nPixcbiAgICBpbnB1dFBvcnRzOiBTZXQ8c3RyaW5nPixcbiAgICBvdXRwdXRQb3J0czogU2V0PHN0cmluZz4sXG4gICAgbm9kZVBvcnRNYXA6IE1hcDxzdHJpbmcsIHsgaW5wdXQ6IFNldDxzdHJpbmc+OyBvdXRwdXQ6IFNldDxzdHJpbmc+IH0+XG4gICk6IEdyYXBoRXhlY3V0aW9uUGxhbkVkZ2Uge1xuICAgIGNvbnN0IHNvdXJjZU5vZGVJZCA9IHRoaXMucmVzb2x2ZUVuZHBvaW50KFxuICAgICAgcmVsYXRpb24uc291cmNlLFxuICAgICAgbm9kZUlkcyxcbiAgICAgIGJvdW5kYXJ5QWxpYXNlc1xuICAgICk7XG4gICAgY29uc3QgdGFyZ2V0Tm9kZUlkID0gdGhpcy5yZXNvbHZlRW5kcG9pbnQoXG4gICAgICByZWxhdGlvbi50YXJnZXQsXG4gICAgICBub2RlSWRzLFxuICAgICAgYm91bmRhcnlBbGlhc2VzXG4gICAgKTtcblxuICAgIGNvbnN0IHNvdXJjZVBvcnQgPSByZWxhdGlvbi5zb3VyY2VQb3J0O1xuICAgIGNvbnN0IHRhcmdldFBvcnQgPSByZWxhdGlvbi50YXJnZXRQb3J0O1xuXG4gICAgaWYgKCFzb3VyY2VQb3J0KSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhQb3J0RXJyb3IoXG4gICAgICAgIGBSZWxhdGlvbiBpcyBtaXNzaW5nIHNvdXJjZVBvcnQgKHNvdXJjZTogJHtTdHJpbmcocmVsYXRpb24uc291cmNlKX0sIHRhcmdldDogJHtTdHJpbmcocmVsYXRpb24udGFyZ2V0KX0pYCxcbiAgICAgICAgeyByZWxhdGlvbiB9XG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIXRhcmdldFBvcnQpIHtcbiAgICAgIHRocm93IG5ldyBHcmFwaFBvcnRFcnJvcihcbiAgICAgICAgYFJlbGF0aW9uIGlzIG1pc3NpbmcgdGFyZ2V0UG9ydCAoc291cmNlOiAke1N0cmluZyhyZWxhdGlvbi5zb3VyY2UpfSwgdGFyZ2V0OiAke1N0cmluZyhyZWxhdGlvbi50YXJnZXQpfSlgLFxuICAgICAgICB7IHJlbGF0aW9uIH1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZGF0ZVBvcnQoXG4gICAgICBzb3VyY2VOb2RlSWQsXG4gICAgICBzb3VyY2VQb3J0LFxuICAgICAgdHJ1ZSxcbiAgICAgIGJvdW5kYXJ5QWxpYXNlcyxcbiAgICAgIGlucHV0UG9ydHMsXG4gICAgICBvdXRwdXRQb3J0cyxcbiAgICAgIG5vZGVQb3J0TWFwXG4gICAgKTtcbiAgICB0aGlzLnZhbGlkYXRlUG9ydChcbiAgICAgIHRhcmdldE5vZGVJZCxcbiAgICAgIHRhcmdldFBvcnQsXG4gICAgICBmYWxzZSxcbiAgICAgIGJvdW5kYXJ5QWxpYXNlcyxcbiAgICAgIGlucHV0UG9ydHMsXG4gICAgICBvdXRwdXRQb3J0cyxcbiAgICAgIG5vZGVQb3J0TWFwXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5jcmVhdGVFZGdlSWQoc291cmNlTm9kZUlkLCBzb3VyY2VQb3J0LCB0YXJnZXROb2RlSWQsIHRhcmdldFBvcnQpLFxuICAgICAgc291cmNlTm9kZUlkLFxuICAgICAgc291cmNlUG9ydCxcbiAgICAgIHRhcmdldE5vZGVJZCxcbiAgICAgIHRhcmdldFBvcnQsXG4gICAgICBsYWJlbDogcmVsYXRpb24ubGFiZWwsXG4gICAgICBtZXRhZGF0YTogcmVsYXRpb24ubWV0YWRhdGEsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBhbiBlbmRwb2ludCAoc291cmNlIG9yIHRhcmdldCkgdG8gYSBub2RlIGlkIG9yIHRoZSB3b3JrZmxvdyBib3VuZGFyeS5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUVuZHBvaW50KFxuICAgIGVuZHBvaW50OiBzdHJpbmcgfCB1bmtub3duLFxuICAgIG5vZGVJZHM6IFNldDxzdHJpbmc+LFxuICAgIGJvdW5kYXJ5QWxpYXNlczogU2V0PHN0cmluZz5cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBuYW1lID0gU3RyaW5nKGVuZHBvaW50KTtcbiAgICBpZiAoYm91bmRhcnlBbGlhc2VzLmhhcyhuYW1lKSkgcmV0dXJuIEdSQVBIX1dPUktGTE9XX0JPVU5EQVJZO1xuICAgIGlmIChub2RlSWRzLmhhcyhuYW1lKSkgcmV0dXJuIG5hbWU7XG4gICAgdGhyb3cgbmV3IEdyYXBoVG9wb2xvZ3lFcnJvcihcbiAgICAgIGBVbmtub3duIGVuZHBvaW50ICcke25hbWV9J2AsXG4gICAgICB7IGVuZHBvaW50OiBuYW1lLCBrbm93bk5vZGVzOiBBcnJheS5mcm9tKG5vZGVJZHMpIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGF0IGEgcG9ydCBleGlzdHMgb24gdGhlIGdpdmVuIG5vZGUgb3IgYm91bmRhcnkuXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlUG9ydChcbiAgICBub2RlSWQ6IHN0cmluZyxcbiAgICBwb3J0OiBzdHJpbmcsXG4gICAgaXNTb3VyY2U6IGJvb2xlYW4sXG4gICAgYm91bmRhcnlBbGlhc2VzOiBTZXQ8c3RyaW5nPixcbiAgICBpbnB1dFBvcnRzOiBTZXQ8c3RyaW5nPixcbiAgICBvdXRwdXRQb3J0czogU2V0PHN0cmluZz4sXG4gICAgbm9kZVBvcnRNYXA6IE1hcDxzdHJpbmcsIHsgaW5wdXQ6IFNldDxzdHJpbmc+OyBvdXRwdXQ6IFNldDxzdHJpbmc+IH0+XG4gICk6IHZvaWQge1xuICAgIGlmIChub2RlSWQgPT09IEdSQVBIX1dPUktGTE9XX0JPVU5EQVJZKSB7XG4gICAgICBjb25zdCBwb3J0cyA9IGlzU291cmNlID8gaW5wdXRQb3J0cyA6IG91dHB1dFBvcnRzO1xuICAgICAgaWYgKCFwb3J0cy5oYXMocG9ydCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEdyYXBoUG9ydEVycm9yKFxuICAgICAgICAgIGBVbmtub3duICR7aXNTb3VyY2UgPyBcImlucHV0XCIgOiBcIm91dHB1dFwifSBwb3J0ICcke3BvcnR9JyBvbiB3b3JrZmxvdyBib3VuZGFyeWAsXG4gICAgICAgICAgeyBub2RlSWQsIHBvcnQsIGlzU291cmNlLCBhdmFpbGFibGU6IEFycmF5LmZyb20ocG9ydHMpIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlUG9ydHMgPSBub2RlUG9ydE1hcC5nZXQobm9kZUlkKTtcbiAgICBpZiAoIW5vZGVQb3J0cykge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoVG9wb2xvZ3lFcnJvcihgTm8gcG9ydCBtYXAgZm9yIG5vZGUgJyR7bm9kZUlkfSdgLCB7XG4gICAgICAgIG5vZGVJZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHBvcnRzID0gaXNTb3VyY2UgPyBub2RlUG9ydHMub3V0cHV0IDogbm9kZVBvcnRzLmlucHV0O1xuICAgIGlmICghcG9ydHMuaGFzKHBvcnQpKSB7XG4gICAgICB0aHJvdyBuZXcgR3JhcGhQb3J0RXJyb3IoXG4gICAgICAgIGBVbmtub3duICR7aXNTb3VyY2UgPyBcIm91dHB1dFwiIDogXCJpbnB1dFwifSBwb3J0ICcke3BvcnR9JyBvbiBub2RlICcke25vZGVJZH0nYCxcbiAgICAgICAgeyBub2RlSWQsIHBvcnQsIGlzU291cmNlLCBhdmFpbGFibGU6IEFycmF5LmZyb20ocG9ydHMpIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyB0aGUgc2V0IG9mIGJvdW5kYXJ5IGFsaWFzZXMgZm9yIGEgd29ya2Zsb3cuXG4gICAqL1xuICBwcml2YXRlIGJvdW5kYXJ5QWxpYXNlcyh3b3JrZmxvdzogR3JhcGhXb3JrZmxvd0RlZmluaXRpb24pOiBTZXQ8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoW1xuICAgICAgR1JBUEhfV09SS0ZMT1dfQk9VTkRBUlksXG4gICAgICBcIndvcmtmbG93XCIsXG4gICAgICBcImdyYXBoXCIsXG4gICAgICB3b3JrZmxvdy5uYW1lLFxuICAgIF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIHBvcnQgbmFtZXMgZnJvbSBhIGxpc3Qgb2YgcG9ydCBkZWZpbml0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgcG9ydE5hbWVzKHBvcnRzOiBHcmFwaFBvcnREZWZpbml0aW9uW10gfCB1bmRlZmluZWQpOiBTZXQ8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoKHBvcnRzID8/IFtdKS5tYXAoKHApID0+IHAubmFtZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIG1hcCBvZiBub2RlIGlkIC0+IHsgaW5wdXQgcG9ydHMsIG91dHB1dCBwb3J0cyB9LlxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZE5vZGVQb3J0TWFwKFxuICAgIHdvcmtmbG93OiBHcmFwaFdvcmtmbG93RGVmaW5pdGlvblxuICApOiBNYXA8c3RyaW5nLCB7IGlucHV0OiBTZXQ8c3RyaW5nPjsgb3V0cHV0OiBTZXQ8c3RyaW5nPiB9PiB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHsgaW5wdXQ6IFNldDxzdHJpbmc+OyBvdXRwdXQ6IFNldDxzdHJpbmc+IH0+KCk7XG4gICAgZm9yIChjb25zdCBub2RlTWV0YSBvZiB3b3JrZmxvdy5ub2RlcyA/PyBbXSkge1xuICAgICAgY29uc3QgaW5wdXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgY29uc3QgZGVmID0gdGhpcy5yZXNvbHZlTm9kZURlZmluaXRpb24obm9kZU1ldGEpO1xuICAgICAgaWYgKGRlZikge1xuICAgICAgICBmb3IgKGNvbnN0IHBvcnQgb2YgZGVmLnBvcnRzID8/IFtdKSB7XG4gICAgICAgICAgaWYgKHBvcnQuZGlyZWN0aW9uID09PSBcImlucHV0XCIpIGlucHV0LmFkZChwb3J0Lm5hbWUpO1xuICAgICAgICAgIGVsc2Ugb3V0cHV0LmFkZChwb3J0Lm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBtYXAuc2V0KG5vZGVNZXRhLmlkLCB7IGlucHV0LCBvdXRwdXQgfSk7XG4gICAgfVxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gcmVzb2x2ZSBhIG5vZGUncyBmdWxsIGRlZmluaXRpb24gZnJvbSBpdHMgbWV0YWRhdGEuXG4gICAqXG4gICAqIEFjY2VwdHMgZWl0aGVyIGEgZGVjb3JhdGVkIE1vZGVsIGNsYXNzL2luc3RhbmNlIChyZXNvbHZlZCB2aWFcbiAgICogYGdyYXBoRGVmaW5pdGlvbk9mYCkgb3IgYSBwbGFpbiBgR3JhcGhOb2RlRGVmaW5pdGlvbmAtc2hhcGVkIG9iamVjdFxuICAgKiAodXNlZnVsIGZvciBzZXJpYWxpemVkIHdvcmtmbG93cyB0aGF0IGlubGluZSBub2RlIGRlZmluaXRpb25zKS5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZU5vZGVEZWZpbml0aW9uKFxuICAgIG5vZGVNZXRhOiB7IG5vZGU/OiB1bmtub3duOyBraW5kPzogc3RyaW5nIH1cbiAgKTogeyBwb3J0czogeyBkaXJlY3Rpb246IHN0cmluZzsgbmFtZTogc3RyaW5nIH1bXSB9IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAobm9kZU1ldGEubm9kZSkge1xuICAgICAgaWYgKHRoaXMuaXNSYXdEZWZpbml0aW9uKG5vZGVNZXRhLm5vZGUpKSB7XG4gICAgICAgIHJldHVybiBub2RlTWV0YS5ub2RlIGFzIHtcbiAgICAgICAgICBwb3J0czogeyBkaXJlY3Rpb246IHN0cmluZzsgbmFtZTogc3RyaW5nIH1bXTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRlZiA9IGdyYXBoRGVmaW5pdGlvbk9mKG5vZGVNZXRhLm5vZGUgYXMgYW55KTtcbiAgICAgICAgcmV0dXJuIGRlZiBhcyBhbnk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCB3aGVuIGEgdmFsdWUgbG9va3MgbGlrZSBhIHJhdyB7QGxpbmsgR3JhcGhOb2RlRGVmaW5pdGlvbn1cbiAgICogKGEgcGxhaW4gb2JqZWN0IHdpdGggYSBgcG9ydHNgIGFycmF5IGFuZCBhIGBuYW1lYCBzdHJpbmcpLlxuICAgKi9cbiAgcHJpdmF0ZSBpc1Jhd0RlZmluaXRpb24odmFsdWU6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmXG4gICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgICB0eXBlb2YgKHZhbHVlIGFzIHsgbmFtZT86IHVua25vd24gfSkubmFtZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgQXJyYXkuaXNBcnJheSgodmFsdWUgYXMgeyBwb3J0cz86IHVua25vd24gfSkucG9ydHMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc3RhYmxlIGVkZ2UgaWQgZnJvbSBpdHMgZW5kcG9pbnRzIGFuZCBwb3J0cy5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRWRnZUlkKFxuICAgIHNvdXJjZU5vZGVJZDogc3RyaW5nLFxuICAgIHNvdXJjZVBvcnQ6IHN0cmluZyxcbiAgICB0YXJnZXROb2RlSWQ6IHN0cmluZyxcbiAgICB0YXJnZXRQb3J0OiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7c291cmNlTm9kZUlkfToke3NvdXJjZVBvcnR9LT4ke3RhcmdldE5vZGVJZH06JHt0YXJnZXRQb3J0fWA7XG4gIH1cbn1cbiJdfQ==
@@ -1,52 +0,0 @@
1
- /**
2
- * Topology utility for traversing the execution plan's edges.
3
- */
4
- export class GraphTopology {
5
- /**
6
- * Returns the set of upstream node ids reachable from `nodeId` by following
7
- * incoming edges. The workflow boundary node is excluded.
8
- */
9
- static upstreamNodes(nodeId, incomingByNode, includeBoundary = false) {
10
- const visited = new Set();
11
- const stack = [nodeId];
12
- while (stack.length) {
13
- const current = stack.pop();
14
- const incoming = incomingByNode.get(current) ?? [];
15
- for (const edge of incoming) {
16
- if (!includeBoundary && this.isBoundary(edge.sourceNodeId))
17
- continue;
18
- if (!visited.has(edge.sourceNodeId)) {
19
- visited.add(edge.sourceNodeId);
20
- stack.push(edge.sourceNodeId);
21
- }
22
- }
23
- }
24
- return visited;
25
- }
26
- /**
27
- * Returns the set of downstream node ids reachable from `nodeId` by following
28
- * outgoing edges. The workflow boundary node is excluded.
29
- */
30
- static downstreamNodes(nodeId, outgoingByNode, includeBoundary = false) {
31
- const visited = new Set();
32
- const stack = [nodeId];
33
- while (stack.length) {
34
- const current = stack.pop();
35
- const outgoing = outgoingByNode.get(current) ?? [];
36
- for (const edge of outgoing) {
37
- if (!includeBoundary && this.isBoundary(edge.targetNodeId))
38
- continue;
39
- if (!visited.has(edge.targetNodeId)) {
40
- visited.add(edge.targetNodeId);
41
- stack.push(edge.targetNodeId);
42
- }
43
- }
44
- }
45
- return visited;
46
- }
47
- /** Returns whether a node id is the workflow boundary. */
48
- static isBoundary(nodeId) {
49
- return nodeId === "$workflow";
50
- }
51
- }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhUb3BvbG9neS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ncmFwaC9wbGFubmluZy9HcmFwaFRvcG9sb2d5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDeEI7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FDbEIsTUFBYyxFQUNkLGNBQXFELEVBQ3JELGVBQWUsR0FBRyxLQUFLO1FBRXZCLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFHLENBQUM7WUFDN0IsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkQsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQUUsU0FBUztnQkFDckUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7b0JBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQ3BCLE1BQWMsRUFDZCxjQUFxRCxFQUNyRCxlQUFlLEdBQUcsS0FBSztRQUV2QixNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRyxDQUFDO1lBQzdCLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUFFLFNBQVM7Z0JBQ3JFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO29CQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDL0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjO1FBQzlCLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL3BsYW5uaW5nL0dyYXBoVG9wb2xvZ3lcbiAqIEBzdW1tYXJ5IFV0aWxpdHkgaGVscGVycyBmb3IgZ3JhcGggdG9wb2xvZ3kgYW5hbHlzaXMuXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgaGVscGVyIGZ1bmN0aW9ucyB1c2VkIGJ5IHRoZSBwbGFubmVyIGFuZCBwaW5uaW5nIGRlcGVuZGVuY3kgcmVzb2x2ZXIuXG4gKi9cbmltcG9ydCB0eXBlIHsgR3JhcGhFeGVjdXRpb25QbGFuRWRnZSB9IGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uUGxhbkVkZ2VcIjtcblxuLyoqXG4gKiBUb3BvbG9neSB1dGlsaXR5IGZvciB0cmF2ZXJzaW5nIHRoZSBleGVjdXRpb24gcGxhbidzIGVkZ2VzLlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhUb3BvbG9neSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBzZXQgb2YgdXBzdHJlYW0gbm9kZSBpZHMgcmVhY2hhYmxlIGZyb20gYG5vZGVJZGAgYnkgZm9sbG93aW5nXG4gICAqIGluY29taW5nIGVkZ2VzLiBUaGUgd29ya2Zsb3cgYm91bmRhcnkgbm9kZSBpcyBleGNsdWRlZC5cbiAgICovXG4gIHN0YXRpYyB1cHN0cmVhbU5vZGVzKFxuICAgIG5vZGVJZDogc3RyaW5nLFxuICAgIGluY29taW5nQnlOb2RlOiBNYXA8c3RyaW5nLCBHcmFwaEV4ZWN1dGlvblBsYW5FZGdlW10+LFxuICAgIGluY2x1ZGVCb3VuZGFyeSA9IGZhbHNlXG4gICk6IFNldDxzdHJpbmc+IHtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3RhY2sgPSBbbm9kZUlkXTtcbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gc3RhY2sucG9wKCkhO1xuICAgICAgY29uc3QgaW5jb21pbmcgPSBpbmNvbWluZ0J5Tm9kZS5nZXQoY3VycmVudCkgPz8gW107XG4gICAgICBmb3IgKGNvbnN0IGVkZ2Ugb2YgaW5jb21pbmcpIHtcbiAgICAgICAgaWYgKCFpbmNsdWRlQm91bmRhcnkgJiYgdGhpcy5pc0JvdW5kYXJ5KGVkZ2Uuc291cmNlTm9kZUlkKSkgY29udGludWU7XG4gICAgICAgIGlmICghdmlzaXRlZC5oYXMoZWRnZS5zb3VyY2VOb2RlSWQpKSB7XG4gICAgICAgICAgdmlzaXRlZC5hZGQoZWRnZS5zb3VyY2VOb2RlSWQpO1xuICAgICAgICAgIHN0YWNrLnB1c2goZWRnZS5zb3VyY2VOb2RlSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNldCBvZiBkb3duc3RyZWFtIG5vZGUgaWRzIHJlYWNoYWJsZSBmcm9tIGBub2RlSWRgIGJ5IGZvbGxvd2luZ1xuICAgKiBvdXRnb2luZyBlZGdlcy4gVGhlIHdvcmtmbG93IGJvdW5kYXJ5IG5vZGUgaXMgZXhjbHVkZWQuXG4gICAqL1xuICBzdGF0aWMgZG93bnN0cmVhbU5vZGVzKFxuICAgIG5vZGVJZDogc3RyaW5nLFxuICAgIG91dGdvaW5nQnlOb2RlOiBNYXA8c3RyaW5nLCBHcmFwaEV4ZWN1dGlvblBsYW5FZGdlW10+LFxuICAgIGluY2x1ZGVCb3VuZGFyeSA9IGZhbHNlXG4gICk6IFNldDxzdHJpbmc+IHtcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc3RhY2sgPSBbbm9kZUlkXTtcbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICBjb25zdCBjdXJyZW50ID0gc3RhY2sucG9wKCkhO1xuICAgICAgY29uc3Qgb3V0Z29pbmcgPSBvdXRnb2luZ0J5Tm9kZS5nZXQoY3VycmVudCkgPz8gW107XG4gICAgICBmb3IgKGNvbnN0IGVkZ2Ugb2Ygb3V0Z29pbmcpIHtcbiAgICAgICAgaWYgKCFpbmNsdWRlQm91bmRhcnkgJiYgdGhpcy5pc0JvdW5kYXJ5KGVkZ2UudGFyZ2V0Tm9kZUlkKSkgY29udGludWU7XG4gICAgICAgIGlmICghdmlzaXRlZC5oYXMoZWRnZS50YXJnZXROb2RlSWQpKSB7XG4gICAgICAgICAgdmlzaXRlZC5hZGQoZWRnZS50YXJnZXROb2RlSWQpO1xuICAgICAgICAgIHN0YWNrLnB1c2goZWRnZS50YXJnZXROb2RlSWQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2aXNpdGVkO1xuICB9XG5cbiAgLyoqIFJldHVybnMgd2hldGhlciBhIG5vZGUgaWQgaXMgdGhlIHdvcmtmbG93IGJvdW5kYXJ5LiAqL1xuICBzdGF0aWMgaXNCb3VuZGFyeShub2RlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBub2RlSWQgPT09IFwiJHdvcmtmbG93XCI7XG4gIH1cbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- /**
2
- * @module integrations/graph/planning
3
- * @summary Graph execution planning.
4
- * @description Re-exports the execution plan types, relation resolver, and topological planner.
5
- */
6
- export * from "./GraphExecutionPlanNode.js";
7
- export * from "./GraphExecutionPlanEdge.js";
8
- export * from "./GraphExecutionPlanLayer.js";
9
- export * from "./GraphExecutionPlan.js";
10
- export * from "./GraphRelationResolver.js";
11
- export * from "./GraphExecutionPlanner.js";
12
- export * from "./GraphTopology.js";
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvcGxhbm5pbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILDRDQUF5QztBQUN6Qyw0Q0FBeUM7QUFDekMsNkNBQTBDO0FBQzFDLHdDQUFxQztBQUNyQywyQ0FBd0M7QUFDeEMsMkNBQXdDO0FBQ3hDLG1DQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvcGxhbm5pbmdcbiAqIEBzdW1tYXJ5IEdyYXBoIGV4ZWN1dGlvbiBwbGFubmluZy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBleGVjdXRpb24gcGxhbiB0eXBlcywgcmVsYXRpb24gcmVzb2x2ZXIsIGFuZCB0b3BvbG9naWNhbCBwbGFubmVyLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvblBsYW5Ob2RlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvblBsYW5FZGdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaEV4ZWN1dGlvblBsYW5MYXllclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhFeGVjdXRpb25QbGFuXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9HcmFwaFJlbGF0aW9uUmVzb2x2ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoRXhlY3V0aW9uUGxhbm5lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vR3JhcGhUb3BvbG9neVwiO1xuIl19
@@ -1,39 +0,0 @@
1
- import { GraphExecutionError } from "./../errors/GraphExecutionError.js";
2
- /**
3
- * Registry that maps node `kind` strings to {@link GraphNodeExecutor}
4
- * instances.
5
- */
6
- export class GraphNodeExecutorRegistry {
7
- constructor() {
8
- this.executors = new Map();
9
- }
10
- /** Registers an executor for the given node kind. */
11
- register(kind, executor) {
12
- if (!kind)
13
- throw new GraphExecutionError("Graph executor kind is required");
14
- this.executors.set(kind, executor);
15
- return this;
16
- }
17
- /** Removes the executor for the given node kind. */
18
- unregister(kind) {
19
- this.executors.delete(kind);
20
- return this;
21
- }
22
- /** Returns whether an executor is registered for the given kind. */
23
- has(kind) {
24
- return this.executors.has(kind);
25
- }
26
- /**
27
- * Resolves the executor for the given node kind.
28
- *
29
- * @throws {GraphExecutionError} when no executor is registered for `kind`.
30
- */
31
- resolve(kind) {
32
- const executor = this.executors.get(kind);
33
- if (!executor) {
34
- throw new GraphExecutionError(`No graph executor registered for kind '${kind}'`, "GRAPH_EXECUTOR_NOT_FOUND", { kind });
35
- }
36
- return executor;
37
- }
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhOb2RlRXhlY3V0b3JSZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ncmFwaC9yZWdpc3RyeS9HcmFwaE5vZGVFeGVjdXRvclJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwyQ0FBc0M7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHlCQUF5QjtJQUF0QztRQUNtQixjQUFTLEdBQUcsSUFBSSxHQUFHLEVBQTZCLENBQUM7SUFvQ3BFLENBQUM7SUFsQ0MscURBQXFEO0lBQ3JELFFBQVEsQ0FBQyxJQUFZLEVBQUUsUUFBMkI7UUFDaEQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksbUJBQW1CLENBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsb0RBQW9EO0lBQ3BELFVBQVUsQ0FBQyxJQUFZO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxHQUFHLENBQUMsSUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsSUFBWTtRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksbUJBQW1CLENBQzNCLDBDQUEwQyxJQUFJLEdBQUcsRUFDakQsMEJBQTBCLEVBQzFCLEVBQUUsSUFBSSxFQUFFLENBQ1QsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL3JlZ2lzdHJ5L0dyYXBoTm9kZUV4ZWN1dG9yUmVnaXN0cnlcbiAqIEBzdW1tYXJ5IFJlZ2lzdHJ5IGZvciBncmFwaCBub2RlIGV4ZWN1dG9ycy5cbiAqIEBkZXNjcmlwdGlvbiBNYXBzIG5vZGUga2luZHMgdG8gdGhlaXIgZXhlY3V0b3IgaW1wbGVtZW50YXRpb25zLiBUaGUgZW5naW5lIHJlc29sdmVzIGV4ZWN1dG9ycyBieSBub2RlIGtpbmQgYXQgZXhlY3V0aW9uIHRpbWUuXG4gKi9cbmltcG9ydCB0eXBlIHsgR3JhcGhOb2RlRXhlY3V0b3IgfSBmcm9tIFwiLi4vZXhlY3V0aW9uL0dyYXBoTm9kZUV4ZWN1dG9yXCI7XG5pbXBvcnQgeyBHcmFwaEV4ZWN1dGlvbkVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy9HcmFwaEV4ZWN1dGlvbkVycm9yXCI7XG5cbi8qKlxuICogUmVnaXN0cnkgdGhhdCBtYXBzIG5vZGUgYGtpbmRgIHN0cmluZ3MgdG8ge0BsaW5rIEdyYXBoTm9kZUV4ZWN1dG9yfVxuICogaW5zdGFuY2VzLlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhOb2RlRXhlY3V0b3JSZWdpc3RyeSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0b3JzID0gbmV3IE1hcDxzdHJpbmcsIEdyYXBoTm9kZUV4ZWN1dG9yPigpO1xuXG4gIC8qKiBSZWdpc3RlcnMgYW4gZXhlY3V0b3IgZm9yIHRoZSBnaXZlbiBub2RlIGtpbmQuICovXG4gIHJlZ2lzdGVyKGtpbmQ6IHN0cmluZywgZXhlY3V0b3I6IEdyYXBoTm9kZUV4ZWN1dG9yKTogdGhpcyB7XG4gICAgaWYgKCFraW5kKSB0aHJvdyBuZXcgR3JhcGhFeGVjdXRpb25FcnJvcihcIkdyYXBoIGV4ZWN1dG9yIGtpbmQgaXMgcmVxdWlyZWRcIik7XG4gICAgdGhpcy5leGVjdXRvcnMuc2V0KGtpbmQsIGV4ZWN1dG9yKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBSZW1vdmVzIHRoZSBleGVjdXRvciBmb3IgdGhlIGdpdmVuIG5vZGUga2luZC4gKi9cbiAgdW5yZWdpc3RlcihraW5kOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmV4ZWN1dG9ycy5kZWxldGUoa2luZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogUmV0dXJucyB3aGV0aGVyIGFuIGV4ZWN1dG9yIGlzIHJlZ2lzdGVyZWQgZm9yIHRoZSBnaXZlbiBraW5kLiAqL1xuICBoYXMoa2luZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0b3JzLmhhcyhraW5kKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZXhlY3V0b3IgZm9yIHRoZSBnaXZlbiBub2RlIGtpbmQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0dyYXBoRXhlY3V0aW9uRXJyb3J9IHdoZW4gbm8gZXhlY3V0b3IgaXMgcmVnaXN0ZXJlZCBmb3IgYGtpbmRgLlxuICAgKi9cbiAgcmVzb2x2ZShraW5kOiBzdHJpbmcpOiBHcmFwaE5vZGVFeGVjdXRvciB7XG4gICAgY29uc3QgZXhlY3V0b3IgPSB0aGlzLmV4ZWN1dG9ycy5nZXQoa2luZCk7XG4gICAgaWYgKCFleGVjdXRvcikge1xuICAgICAgdGhyb3cgbmV3IEdyYXBoRXhlY3V0aW9uRXJyb3IoXG4gICAgICAgIGBObyBncmFwaCBleGVjdXRvciByZWdpc3RlcmVkIGZvciBraW5kICcke2tpbmR9J2AsXG4gICAgICAgIFwiR1JBUEhfRVhFQ1VUT1JfTk9UX0ZPVU5EXCIsXG4gICAgICAgIHsga2luZCB9XG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZXhlY3V0b3I7XG4gIH1cbn1cbiJdfQ==
@@ -1,22 +0,0 @@
1
- /**
2
- * Resolver that wraps a {@link GraphNodeExecutorRegistry} and optionally
3
- * falls back to a default executor when a kind is not found.
4
- */
5
- export class GraphNodeExecutorResolver {
6
- constructor(registry, defaultExecutor) {
7
- this.registry = registry;
8
- this.defaultExecutor = defaultExecutor;
9
- }
10
- /**
11
- * Resolves the executor for `kind`, falling back to the default executor
12
- * when provided.
13
- */
14
- resolve(kind) {
15
- if (this.registry.has(kind))
16
- return this.registry.resolve(kind);
17
- if (this.defaultExecutor)
18
- return this.defaultExecutor;
19
- return this.registry.resolve(kind);
20
- }
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhOb2RlRXhlY3V0b3JSZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ncmFwaC9yZWdpc3RyeS9HcmFwaE5vZGVFeGVjdXRvclJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBOzs7R0FHRztBQUNILE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFDbUIsUUFBbUMsRUFDcEQsZUFBbUM7UUFEbEIsYUFBUSxHQUFSLFFBQVEsQ0FBMkI7UUFHcEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9ncmFwaC9yZWdpc3RyeS9HcmFwaE5vZGVFeGVjdXRvclJlc29sdmVyXG4gKiBAc3VtbWFyeSBVdGlsaXR5IGZvciByZXNvbHZpbmcgZXhlY3V0b3JzIGZyb20gYSByZWdpc3RyeSB3aXRoIGZhbGxiYWNrLlxuICogQGRlc2NyaXB0aW9uIFByb3ZpZGVzIGEgaGVscGVyIHRoYXQgYXR0ZW1wdHMgdG8gcmVzb2x2ZSBhbiBleGVjdXRvciBieSBraW5kLCBmYWxsaW5nIGJhY2sgdG8gYSBkZWZhdWx0IGV4ZWN1dG9yIHdoZW4gdGhlIGtpbmQgaXMgbm90IHJlZ2lzdGVyZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgR3JhcGhOb2RlRXhlY3V0b3IgfSBmcm9tIFwiLi4vZXhlY3V0aW9uL0dyYXBoTm9kZUV4ZWN1dG9yXCI7XG5pbXBvcnQgdHlwZSB7IEdyYXBoTm9kZUV4ZWN1dG9yUmVnaXN0cnkgfSBmcm9tIFwiLi9HcmFwaE5vZGVFeGVjdXRvclJlZ2lzdHJ5XCI7XG5cbi8qKlxuICogUmVzb2x2ZXIgdGhhdCB3cmFwcyBhIHtAbGluayBHcmFwaE5vZGVFeGVjdXRvclJlZ2lzdHJ5fSBhbmQgb3B0aW9uYWxseVxuICogZmFsbHMgYmFjayB0byBhIGRlZmF1bHQgZXhlY3V0b3Igd2hlbiBhIGtpbmQgaXMgbm90IGZvdW5kLlxuICovXG5leHBvcnQgY2xhc3MgR3JhcGhOb2RlRXhlY3V0b3JSZXNvbHZlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEV4ZWN1dG9yPzogR3JhcGhOb2RlRXhlY3V0b3I7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyeTogR3JhcGhOb2RlRXhlY3V0b3JSZWdpc3RyeSxcbiAgICBkZWZhdWx0RXhlY3V0b3I/OiBHcmFwaE5vZGVFeGVjdXRvclxuICApIHtcbiAgICB0aGlzLmRlZmF1bHRFeGVjdXRvciA9IGRlZmF1bHRFeGVjdXRvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgZXhlY3V0b3IgZm9yIGBraW5kYCwgZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGV4ZWN1dG9yXG4gICAqIHdoZW4gcHJvdmlkZWQuXG4gICAqL1xuICByZXNvbHZlKGtpbmQ6IHN0cmluZyk6IEdyYXBoTm9kZUV4ZWN1dG9yIHtcbiAgICBpZiAodGhpcy5yZWdpc3RyeS5oYXMoa2luZCkpIHJldHVybiB0aGlzLnJlZ2lzdHJ5LnJlc29sdmUoa2luZCk7XG4gICAgaWYgKHRoaXMuZGVmYXVsdEV4ZWN1dG9yKSByZXR1cm4gdGhpcy5kZWZhdWx0RXhlY3V0b3I7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0cnkucmVzb2x2ZShraW5kKTtcbiAgfVxufVxuIl19
@@ -1,8 +0,0 @@
1
- /**
2
- * @module integrations/graph/registry
3
- * @summary Graph node executor registry and resolver.
4
- * @description Re-exports the executor registry and resolver.
5
- */
6
- export * from "./GraphNodeExecutorRegistry.js";
7
- export * from "./GraphNodeExecutorResolver.js";
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ3JhcGgvcmVnaXN0cnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILCtDQUE0QztBQUM1QywrQ0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2dyYXBoL3JlZ2lzdHJ5XG4gKiBAc3VtbWFyeSBHcmFwaCBub2RlIGV4ZWN1dG9yIHJlZ2lzdHJ5IGFuZCByZXNvbHZlci5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBleGVjdXRvciByZWdpc3RyeSBhbmQgcmVzb2x2ZXIuXG4gKi9cbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoTm9kZUV4ZWN1dG9yUmVnaXN0cnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0dyYXBoTm9kZUV4ZWN1dG9yUmVzb2x2ZXJcIjtcbiJdfQ==
@@ -1,48 +0,0 @@
1
- /**
2
- * @module integrations/graph/snapshots/GraphExecutionSnapshotMapper
3
- * @summary Maps execution results to snapshot patches.
4
- * @description Produces a GraphExecutionSnapshotPatch consumable by `@decaf-ts/ui-decorators/graph` snapshots, rather than replacing the snapshot system.
5
- */
6
- import { GraphExecutionStatus } from "./../constants.js";
7
- /**
8
- * Maps a {@link GraphExecutionResult} to a {@link GraphExecutionSnapshotPatch}.
9
- */
10
- export class GraphExecutionSnapshotMapper {
11
- /**
12
- * Creates a snapshot patch from an execution result.
13
- */
14
- map(result) {
15
- const nodes = {};
16
- for (const [id, nodeResult] of Object.entries(result.nodeResults)) {
17
- nodes[id] = {
18
- status: nodeResult.status,
19
- startedAt: nodeResult.startedAt?.toISOString(),
20
- finishedAt: nodeResult.finishedAt?.toISOString(),
21
- error: nodeResult.error,
22
- outputs: nodeResult.outputs,
23
- fromCache: nodeResult.fromCache,
24
- pinned: nodeResult.pinned,
25
- };
26
- }
27
- const edges = {};
28
- for (const event of result.events) {
29
- if (event.edgeId && event.type === "edge.valueRouted") {
30
- edges[event.edgeId] = {
31
- status: GraphExecutionStatus.SUCCEEDED,
32
- lastValue: event.payload?.value,
33
- updatedAt: event.timestamp.toISOString(),
34
- };
35
- }
36
- }
37
- const events = [...result.events];
38
- return {
39
- runId: result.runId,
40
- status: result.status,
41
- nodes,
42
- edges,
43
- outputs: result.outputs,
44
- events,
45
- };
46
- }
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGhFeGVjdXRpb25TbmFwc2hvdE1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9ncmFwaC9zbmFwc2hvdHMvR3JhcGhFeGVjdXRpb25TbmFwc2hvdE1hcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUFxQjtBQU9wRDs7R0FFRztBQUNILE1BQU0sT0FBTyw0QkFBNEI7SUFDdkM7O09BRUc7SUFDSCxHQUFHLENBQUMsTUFBNEI7UUFDOUIsTUFBTSxLQUFLLEdBQXlDLEVBQUUsQ0FBQztRQUN2RCxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNsRSxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUc7Z0JBQ1YsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUN6QixTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUU7Z0JBQzlDLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRTtnQkFDaEQsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87Z0JBQzNCLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUztnQkFDL0IsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2FBQzFCLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQXlDLEVBQUUsQ0FBQztRQUN2RCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxrQkFBa0IsRUFBRSxDQUFDO2dCQUN0RCxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHO29CQUNwQixNQUFNLEVBQUUsb0JBQW9CLENBQUMsU0FBUztvQkFDdEMsU0FBUyxFQUFHLEtBQUssQ0FBQyxPQUFlLEVBQUUsS0FBSztvQkFDeEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO2lCQUN6QyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBMEIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6RCxPQUFPO1lBQ0wsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO1lBQ25CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixLQUFLO1lBQ0wsS0FBSztZQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixNQUFNO1NBQ1AsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvZ3JhcGgvc25hcHNob3RzL0dyYXBoRXhlY3V0aW9uU25hcHNob3RNYXBwZXJcbiAqIEBzdW1tYXJ5IE1hcHMgZXhlY3V0aW9uIHJlc3VsdHMgdG8gc25hcHNob3QgcGF0Y2hlcy5cbiAqIEBkZXNjcmlwdGlvbiBQcm9kdWNlcyBhIEdyYXBoRXhlY3V0aW9uU25hcHNob3RQYXRjaCBjb25zdW1hYmxlIGJ5IGBAZGVjYWYtdHMvdWktZGVjb3JhdG9ycy9ncmFwaGAgc25hcHNob3RzLCByYXRoZXIgdGhhbiByZXBsYWNpbmcgdGhlIHNuYXBzaG90IHN5c3RlbS5cbiAqL1xuaW1wb3J0IHsgR3JhcGhFeGVjdXRpb25TdGF0dXMgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEdyYXBoRXhlY3V0aW9uRXZlbnQsXG4gIEdyYXBoRXhlY3V0aW9uUmVzdWx0LFxuICBHcmFwaEV4ZWN1dGlvblNuYXBzaG90UGF0Y2gsXG59IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIE1hcHMgYSB7QGxpbmsgR3JhcGhFeGVjdXRpb25SZXN1bHR9IHRvIGEge0BsaW5rIEdyYXBoRXhlY3V0aW9uU25hcHNob3RQYXRjaH0uXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaEV4ZWN1dGlvblNuYXBzaG90TWFwcGVyIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBzbmFwc2hvdCBwYXRjaCBmcm9tIGFuIGV4ZWN1dGlvbiByZXN1bHQuXG4gICAqL1xuICBtYXAocmVzdWx0OiBHcmFwaEV4ZWN1dGlvblJlc3VsdCk6IEdyYXBoRXhlY3V0aW9uU25hcHNob3RQYXRjaCB7XG4gICAgY29uc3Qgbm9kZXM6IEdyYXBoRXhlY3V0aW9uU25hcHNob3RQYXRjaFtcIm5vZGVzXCJdID0ge307XG4gICAgZm9yIChjb25zdCBbaWQsIG5vZGVSZXN1bHRdIG9mIE9iamVjdC5lbnRyaWVzKHJlc3VsdC5ub2RlUmVzdWx0cykpIHtcbiAgICAgIG5vZGVzW2lkXSA9IHtcbiAgICAgICAgc3RhdHVzOiBub2RlUmVzdWx0LnN0YXR1cyxcbiAgICAgICAgc3RhcnRlZEF0OiBub2RlUmVzdWx0LnN0YXJ0ZWRBdD8udG9JU09TdHJpbmcoKSxcbiAgICAgICAgZmluaXNoZWRBdDogbm9kZVJlc3VsdC5maW5pc2hlZEF0Py50b0lTT1N0cmluZygpLFxuICAgICAgICBlcnJvcjogbm9kZVJlc3VsdC5lcnJvcixcbiAgICAgICAgb3V0cHV0czogbm9kZVJlc3VsdC5vdXRwdXRzLFxuICAgICAgICBmcm9tQ2FjaGU6IG5vZGVSZXN1bHQuZnJvbUNhY2hlLFxuICAgICAgICBwaW5uZWQ6IG5vZGVSZXN1bHQucGlubmVkLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGdlczogR3JhcGhFeGVjdXRpb25TbmFwc2hvdFBhdGNoW1wiZWRnZXNcIl0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIHJlc3VsdC5ldmVudHMpIHtcbiAgICAgIGlmIChldmVudC5lZGdlSWQgJiYgZXZlbnQudHlwZSA9PT0gXCJlZGdlLnZhbHVlUm91dGVkXCIpIHtcbiAgICAgICAgZWRnZXNbZXZlbnQuZWRnZUlkXSA9IHtcbiAgICAgICAgICBzdGF0dXM6IEdyYXBoRXhlY3V0aW9uU3RhdHVzLlNVQ0NFRURFRCxcbiAgICAgICAgICBsYXN0VmFsdWU6IChldmVudC5wYXlsb2FkIGFzIGFueSk/LnZhbHVlLFxuICAgICAgICAgIHVwZGF0ZWRBdDogZXZlbnQudGltZXN0YW1wLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnRzOiBHcmFwaEV4ZWN1dGlvbkV2ZW50W10gPSBbLi4ucmVzdWx0LmV2ZW50c107XG5cbiAgICByZXR1cm4ge1xuICAgICAgcnVuSWQ6IHJlc3VsdC5ydW5JZCxcbiAgICAgIHN0YXR1czogcmVzdWx0LnN0YXR1cyxcbiAgICAgIG5vZGVzLFxuICAgICAgZWRnZXMsXG4gICAgICBvdXRwdXRzOiByZXN1bHQub3V0cHV0cyxcbiAgICAgIGV2ZW50cyxcbiAgICB9O1xuICB9XG59XG4iXX0=