@ductape/sdk 0.0.4-v51 → 0.0.4-v52

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 (868) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/agent-context.d.ts +98 -0
  3. package/dist/agents/agent-context.js +588 -0
  4. package/dist/agents/agent-context.js.map +1 -0
  5. package/dist/agents/agent-executor.d.ts +180 -0
  6. package/dist/agents/agent-executor.js +715 -0
  7. package/dist/agents/agent-executor.js.map +1 -0
  8. package/dist/agents/agents.service.d.ts +304 -0
  9. package/dist/agents/agents.service.js +1244 -0
  10. package/dist/agents/agents.service.js.map +1 -0
  11. package/dist/agents/index.d.ts +55 -0
  12. package/dist/agents/index.js +110 -0
  13. package/dist/agents/index.js.map +1 -0
  14. package/dist/agents/memory-manager.d.ts +182 -0
  15. package/dist/agents/memory-manager.js +383 -0
  16. package/dist/agents/memory-manager.js.map +1 -0
  17. package/dist/agents/tool-registry.d.ts +141 -0
  18. package/dist/agents/tool-registry.js +355 -0
  19. package/dist/agents/tool-registry.js.map +1 -0
  20. package/dist/agents/types/agents.types.d.ts +1225 -0
  21. package/dist/agents/types/agents.types.js +12 -0
  22. package/dist/agents/types/agents.types.js.map +1 -0
  23. package/dist/agents/types/index.d.ts +6 -0
  24. package/dist/agents/types/index.js +23 -0
  25. package/dist/agents/types/index.js.map +1 -0
  26. package/dist/agents/vector-store-adapter.d.ts +108 -0
  27. package/dist/agents/vector-store-adapter.js +213 -0
  28. package/dist/agents/vector-store-adapter.js.map +1 -0
  29. package/dist/api/services/appApi.service.js +4 -5
  30. package/dist/api/services/appApi.service.js.map +1 -1
  31. package/dist/api/services/processorApi.service.d.ts +322 -0
  32. package/dist/api/services/processorApi.service.js +252 -0
  33. package/dist/api/services/processorApi.service.js.map +1 -1
  34. package/dist/api/services/productsApi.service.d.ts +69 -1
  35. package/dist/api/services/productsApi.service.js +67 -31
  36. package/dist/api/services/productsApi.service.js.map +1 -1
  37. package/dist/api/services/resilienceApi.service.d.ts +106 -0
  38. package/dist/api/services/resilienceApi.service.js +224 -0
  39. package/dist/api/services/resilienceApi.service.js.map +1 -0
  40. package/dist/api/services/secretsApi.service.d.ts +38 -0
  41. package/dist/api/services/secretsApi.service.js +96 -0
  42. package/dist/api/services/secretsApi.service.js.map +1 -0
  43. package/dist/api/services/userApi.service.js +0 -1
  44. package/dist/api/services/userApi.service.js.map +1 -1
  45. package/dist/api/services/workflowApi.service.d.ts +199 -0
  46. package/dist/api/services/workflowApi.service.js +183 -0
  47. package/dist/api/services/workflowApi.service.js.map +1 -0
  48. package/dist/api/services/workspaceApi.service.js +0 -1
  49. package/dist/api/services/workspaceApi.service.js.map +1 -1
  50. package/dist/api/urls.d.ts +57 -0
  51. package/dist/api/urls.js +68 -1
  52. package/dist/api/urls.js.map +1 -1
  53. package/dist/api/utils/cache.utils.js +4 -10
  54. package/dist/api/utils/cache.utils.js.map +1 -1
  55. package/dist/apps/services/app.service.d.ts +0 -10
  56. package/dist/apps/services/app.service.js +74 -30
  57. package/dist/apps/services/app.service.js.map +1 -1
  58. package/dist/apps/utils/auth-context-manager.d.ts +137 -0
  59. package/dist/apps/utils/auth-context-manager.js +248 -0
  60. package/dist/apps/utils/auth-context-manager.js.map +1 -0
  61. package/dist/apps/utils/credential-manager.d.ts +128 -0
  62. package/dist/apps/utils/credential-manager.js +199 -0
  63. package/dist/apps/utils/credential-manager.js.map +1 -0
  64. package/dist/apps/utils/index.d.ts +10 -0
  65. package/dist/apps/utils/index.js +54 -0
  66. package/dist/apps/utils/index.js.map +1 -0
  67. package/dist/apps/utils/input-helpers.d.ts +67 -0
  68. package/dist/apps/utils/input-helpers.js +185 -0
  69. package/dist/apps/utils/input-helpers.js.map +1 -0
  70. package/dist/apps/utils/input-resolver.d.ts +165 -0
  71. package/dist/apps/utils/input-resolver.js +477 -0
  72. package/dist/apps/utils/input-resolver.js.map +1 -0
  73. package/dist/apps/utils/oauth-manager.d.ts +196 -0
  74. package/dist/apps/utils/oauth-manager.js +405 -0
  75. package/dist/apps/utils/oauth-manager.js.map +1 -0
  76. package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +2 -1
  77. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +15 -2
  78. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -1
  79. package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +2 -1
  80. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +14 -2
  81. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -1
  82. package/dist/bin.d.ts +26 -0
  83. package/dist/bin.js +28 -0
  84. package/dist/bin.js.map +1 -0
  85. package/dist/brokers/brokers.service.d.ts +257 -0
  86. package/dist/brokers/brokers.service.js +604 -0
  87. package/dist/brokers/brokers.service.js.map +1 -0
  88. package/dist/brokers/index.d.ts +46 -0
  89. package/dist/brokers/index.js +83 -0
  90. package/dist/brokers/index.js.map +1 -0
  91. package/dist/brokers/types/index.d.ts +288 -0
  92. package/dist/brokers/types/index.js +8 -0
  93. package/dist/brokers/types/index.js.map +1 -0
  94. package/dist/brokers/utils/broker.util.d.ts +33 -0
  95. package/dist/brokers/utils/broker.util.js +125 -0
  96. package/dist/brokers/utils/broker.util.js.map +1 -0
  97. package/dist/brokers/utils/providers/aws-sqs.service.d.ts +16 -0
  98. package/dist/brokers/utils/providers/aws-sqs.service.js +71 -0
  99. package/dist/brokers/utils/providers/aws-sqs.service.js.map +1 -0
  100. package/dist/brokers/utils/providers/google-pubsub.service.d.ts +16 -0
  101. package/dist/brokers/utils/providers/google-pubsub.service.js +43 -0
  102. package/dist/brokers/utils/providers/google-pubsub.service.js.map +1 -0
  103. package/dist/brokers/utils/providers/index.d.ts +6 -0
  104. package/dist/brokers/utils/providers/index.js +16 -0
  105. package/dist/brokers/utils/providers/index.js.map +1 -0
  106. package/dist/brokers/utils/providers/kafka.service.d.ts +16 -0
  107. package/dist/brokers/utils/providers/kafka.service.js +52 -0
  108. package/dist/brokers/utils/providers/kafka.service.js.map +1 -0
  109. package/dist/brokers/utils/providers/nats.service.d.ts +18 -0
  110. package/dist/brokers/utils/providers/nats.service.js +63 -0
  111. package/dist/brokers/utils/providers/nats.service.js.map +1 -0
  112. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +14 -0
  113. package/dist/brokers/utils/providers/rabbitmq.service.js +67 -0
  114. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -0
  115. package/dist/brokers/utils/providers/redis.service.d.ts +18 -0
  116. package/dist/brokers/utils/providers/redis.service.js +93 -0
  117. package/dist/brokers/utils/providers/redis.service.js.map +1 -0
  118. package/dist/cache/cache.manager.d.ts +159 -0
  119. package/dist/cache/cache.manager.js +265 -0
  120. package/dist/cache/cache.manager.js.map +1 -0
  121. package/dist/cache/cache.service.d.ts +186 -0
  122. package/dist/cache/cache.service.js +437 -0
  123. package/dist/cache/cache.service.js.map +1 -0
  124. package/dist/cache/index.d.ts +52 -0
  125. package/dist/cache/index.js +79 -0
  126. package/dist/cache/index.js.map +1 -0
  127. package/dist/cache/types/index.d.ts +106 -0
  128. package/dist/cache/types/index.js +6 -0
  129. package/dist/cache/types/index.js.map +1 -0
  130. package/dist/database/actions/action-manager.d.ts +170 -0
  131. package/dist/database/actions/action-manager.js +465 -0
  132. package/dist/database/actions/action-manager.js.map +1 -0
  133. package/dist/database/actions/index.d.ts +6 -0
  134. package/dist/database/actions/index.js +13 -0
  135. package/dist/database/actions/index.js.map +1 -0
  136. package/dist/database/adapters/adapter.factory.d.ts +62 -0
  137. package/dist/database/adapters/adapter.factory.js +97 -0
  138. package/dist/database/adapters/adapter.factory.js.map +1 -0
  139. package/dist/database/adapters/base.adapter.d.ts +307 -90
  140. package/dist/database/adapters/base.adapter.js +139 -20
  141. package/dist/database/adapters/base.adapter.js.map +1 -1
  142. package/dist/database/adapters/cassandra.adapter.d.ts +90 -0
  143. package/dist/database/adapters/cassandra.adapter.js +1019 -0
  144. package/dist/database/adapters/cassandra.adapter.js.map +1 -0
  145. package/dist/database/adapters/dynamodb.adapter.d.ts +94 -77
  146. package/dist/database/adapters/dynamodb.adapter.js +1162 -1305
  147. package/dist/database/adapters/dynamodb.adapter.js.map +1 -1
  148. package/dist/database/adapters/index.d.ts +11 -0
  149. package/dist/database/adapters/index.js +27 -0
  150. package/dist/database/adapters/index.js.map +1 -0
  151. package/dist/database/adapters/mariadb.adapter.d.ts +100 -0
  152. package/dist/database/adapters/mariadb.adapter.js +247 -0
  153. package/dist/database/adapters/mariadb.adapter.js.map +1 -0
  154. package/dist/database/adapters/mongodb.adapter.d.ts +105 -57
  155. package/dist/database/adapters/mongodb.adapter.js +941 -838
  156. package/dist/database/adapters/mongodb.adapter.js.map +1 -1
  157. package/dist/database/adapters/mysql.adapter.d.ts +76 -138
  158. package/dist/database/adapters/mysql.adapter.js +990 -1246
  159. package/dist/database/adapters/mysql.adapter.js.map +1 -1
  160. package/dist/database/adapters/postgresql.adapter.d.ts +75 -139
  161. package/dist/database/adapters/postgresql.adapter.js +1076 -1346
  162. package/dist/database/adapters/postgresql.adapter.js.map +1 -1
  163. package/dist/database/databases.service.d.ts +1374 -0
  164. package/dist/database/databases.service.js +2680 -0
  165. package/dist/database/databases.service.js.map +1 -0
  166. package/dist/database/index.d.ts +41 -13
  167. package/dist/database/index.js +97 -86
  168. package/dist/database/index.js.map +1 -1
  169. package/dist/database/migrations/index.d.ts +6 -0
  170. package/dist/database/migrations/index.js +12 -0
  171. package/dist/database/migrations/index.js.map +1 -0
  172. package/dist/database/migrations/migration-engine.d.ts +132 -0
  173. package/dist/database/migrations/migration-engine.js +1356 -0
  174. package/dist/database/migrations/migration-engine.js.map +1 -0
  175. package/dist/database/operators/aggregation-builder.d.ts +64 -0
  176. package/dist/database/operators/aggregation-builder.js +746 -0
  177. package/dist/database/operators/aggregation-builder.js.map +1 -0
  178. package/dist/database/operators/index.d.ts +7 -0
  179. package/dist/database/operators/index.js +15 -0
  180. package/dist/database/operators/index.js.map +1 -0
  181. package/dist/database/operators/query-builder.d.ts +55 -0
  182. package/dist/database/operators/query-builder.js +365 -0
  183. package/dist/database/operators/query-builder.js.map +1 -0
  184. package/dist/database/presave/decrypt.d.ts +25 -0
  185. package/dist/database/presave/decrypt.js +146 -0
  186. package/dist/database/presave/decrypt.js.map +1 -0
  187. package/dist/database/presave/index.d.ts +9 -0
  188. package/dist/database/presave/index.js +18 -0
  189. package/dist/database/presave/index.js.map +1 -0
  190. package/dist/database/presave/presave-processor.d.ts +148 -0
  191. package/dist/database/presave/presave-processor.js +702 -0
  192. package/dist/database/presave/presave-processor.js.map +1 -0
  193. package/dist/database/schema/index.d.ts +7 -0
  194. package/dist/database/schema/index.js +13 -0
  195. package/dist/database/schema/index.js.map +1 -0
  196. package/dist/database/schema/schema-manager.d.ts +258 -0
  197. package/dist/database/schema/schema-manager.js +637 -0
  198. package/dist/database/schema/schema-manager.js.map +1 -0
  199. package/dist/database/transactions/index.d.ts +6 -0
  200. package/dist/database/transactions/index.js +13 -0
  201. package/dist/database/transactions/index.js.map +1 -0
  202. package/dist/database/transactions/transaction-manager.d.ts +113 -0
  203. package/dist/database/transactions/transaction-manager.js +344 -0
  204. package/dist/database/transactions/transaction-manager.js.map +1 -0
  205. package/dist/database/triggers/index.d.ts +7 -0
  206. package/dist/database/triggers/index.js +14 -0
  207. package/dist/database/triggers/index.js.map +1 -0
  208. package/dist/database/triggers/trigger-processor.d.ts +239 -0
  209. package/dist/database/triggers/trigger-processor.js +1034 -0
  210. package/dist/database/triggers/trigger-processor.js.map +1 -0
  211. package/dist/database/types/action.interface.d.ts +148 -0
  212. package/dist/database/types/action.interface.js +6 -0
  213. package/dist/database/types/action.interface.js.map +1 -0
  214. package/dist/database/types/aggregation.interface.d.ts +179 -0
  215. package/dist/database/types/aggregation.interface.js +6 -0
  216. package/dist/database/types/aggregation.interface.js.map +1 -0
  217. package/dist/database/types/connection.interface.d.ts +137 -0
  218. package/dist/database/types/connection.interface.js +6 -0
  219. package/dist/database/types/connection.interface.js.map +1 -0
  220. package/dist/database/types/enums.d.ts +195 -0
  221. package/dist/database/types/enums.js +244 -0
  222. package/dist/database/types/enums.js.map +1 -0
  223. package/dist/database/types/index.d.ts +12 -10
  224. package/dist/database/types/index.js +26 -32
  225. package/dist/database/types/index.js.map +1 -1
  226. package/dist/database/types/migration.interface.d.ts +686 -0
  227. package/dist/database/types/migration.interface.js +9 -0
  228. package/dist/database/types/migration.interface.js.map +1 -0
  229. package/dist/database/types/presave.interface.d.ts +292 -0
  230. package/dist/database/types/presave.interface.js +60 -0
  231. package/dist/database/types/presave.interface.js.map +1 -0
  232. package/dist/database/types/query.interface.d.ts +199 -0
  233. package/dist/database/types/query.interface.js +6 -0
  234. package/dist/database/types/query.interface.js.map +1 -0
  235. package/dist/database/types/schema.interface.d.ts +398 -0
  236. package/dist/database/types/schema.interface.js +6 -0
  237. package/dist/database/types/schema.interface.js.map +1 -0
  238. package/dist/database/types/transaction.interface.d.ts +84 -0
  239. package/dist/database/types/transaction.interface.js +6 -0
  240. package/dist/database/types/transaction.interface.js.map +1 -0
  241. package/dist/database/types/trigger.interface.d.ts +612 -0
  242. package/dist/database/types/trigger.interface.js +121 -0
  243. package/dist/database/types/trigger.interface.js.map +1 -0
  244. package/dist/database/types/write.interface.d.ts +208 -0
  245. package/dist/database/types/write.interface.js +6 -0
  246. package/dist/database/types/write.interface.js.map +1 -0
  247. package/dist/database/utils/database-error.d.ts +96 -0
  248. package/dist/database/utils/database-error.js +221 -0
  249. package/dist/database/utils/database-error.js.map +1 -0
  250. package/dist/database/utils/index.d.ts +6 -0
  251. package/dist/database/utils/index.js +11 -0
  252. package/dist/database/utils/index.js.map +1 -0
  253. package/dist/graph/adapters/adapter.factory.d.ts +47 -0
  254. package/dist/graph/adapters/adapter.factory.js +77 -0
  255. package/dist/graph/adapters/adapter.factory.js.map +1 -0
  256. package/dist/graph/adapters/arangodb.adapter.d.ts +78 -72
  257. package/dist/graph/adapters/arangodb.adapter.js +1310 -1220
  258. package/dist/graph/adapters/arangodb.adapter.js.map +1 -1
  259. package/dist/graph/adapters/base.adapter.d.ts +135 -118
  260. package/dist/graph/adapters/base.adapter.js +46 -20
  261. package/dist/graph/adapters/base.adapter.js.map +1 -1
  262. package/dist/graph/adapters/index.d.ts +5 -4
  263. package/dist/graph/adapters/index.js +6 -8
  264. package/dist/graph/adapters/index.js.map +1 -1
  265. package/dist/graph/adapters/memgraph.adapter.d.ts +98 -73
  266. package/dist/graph/adapters/memgraph.adapter.js +1050 -1202
  267. package/dist/graph/adapters/memgraph.adapter.js.map +1 -1
  268. package/dist/graph/adapters/neo4j.adapter.d.ts +71 -78
  269. package/dist/graph/adapters/neo4j.adapter.js +912 -1605
  270. package/dist/graph/adapters/neo4j.adapter.js.map +1 -1
  271. package/dist/graph/adapters/neptune.adapter.d.ts +76 -81
  272. package/dist/graph/adapters/neptune.adapter.js +1095 -1228
  273. package/dist/graph/adapters/neptune.adapter.js.map +1 -1
  274. package/dist/graph/graphs.service.d.ts +524 -0
  275. package/dist/graph/graphs.service.js +1683 -0
  276. package/dist/graph/graphs.service.js.map +1 -0
  277. package/dist/graph/index.d.ts +54 -8
  278. package/dist/graph/index.js +67 -32
  279. package/dist/graph/index.js.map +1 -1
  280. package/dist/graph/transactions/index.d.ts +4 -0
  281. package/dist/graph/transactions/index.js +9 -0
  282. package/dist/graph/transactions/index.js.map +1 -0
  283. package/dist/graph/transactions/transaction-manager.d.ts +61 -0
  284. package/dist/graph/transactions/transaction-manager.js +126 -0
  285. package/dist/graph/transactions/transaction-manager.js.map +1 -0
  286. package/dist/graph/types/connection.interface.d.ts +141 -0
  287. package/dist/graph/types/connection.interface.js +9 -0
  288. package/dist/graph/types/connection.interface.js.map +1 -0
  289. package/dist/graph/types/enums.d.ts +101 -0
  290. package/dist/graph/types/enums.js +114 -0
  291. package/dist/graph/types/enums.js.map +1 -0
  292. package/dist/graph/types/index.d.ts +11 -9
  293. package/dist/graph/types/index.js +15 -30
  294. package/dist/graph/types/index.js.map +1 -1
  295. package/dist/graph/types/node.interface.d.ts +248 -0
  296. package/dist/graph/types/node.interface.js +9 -0
  297. package/dist/graph/types/node.interface.js.map +1 -0
  298. package/dist/graph/types/query.interface.d.ts +168 -0
  299. package/dist/graph/types/query.interface.js +9 -0
  300. package/dist/graph/types/query.interface.js.map +1 -0
  301. package/dist/graph/types/relationship.interface.d.ts +207 -0
  302. package/dist/graph/types/relationship.interface.js +9 -0
  303. package/dist/graph/types/relationship.interface.js.map +1 -0
  304. package/dist/graph/types/schema.interface.d.ts +295 -0
  305. package/dist/graph/types/schema.interface.js +9 -0
  306. package/dist/graph/types/schema.interface.js.map +1 -0
  307. package/dist/graph/types/transaction.interface.d.ts +55 -0
  308. package/dist/graph/types/transaction.interface.js +9 -0
  309. package/dist/graph/types/transaction.interface.js.map +1 -0
  310. package/dist/graph/types/traversal.interface.d.ts +181 -0
  311. package/dist/graph/types/traversal.interface.js +9 -0
  312. package/dist/graph/types/traversal.interface.js.map +1 -0
  313. package/dist/graph/utils/graph-error.d.ts +71 -0
  314. package/dist/graph/utils/graph-error.js +142 -0
  315. package/dist/graph/utils/graph-error.js.map +1 -0
  316. package/dist/graph/utils/index.d.ts +4 -0
  317. package/dist/graph/utils/index.js +9 -0
  318. package/dist/graph/utils/index.js.map +1 -0
  319. package/dist/index.d.ts +1905 -875
  320. package/dist/index.js +3063 -1282
  321. package/dist/index.js.map +1 -1
  322. package/dist/init.interface.d.ts +407 -0
  323. package/dist/init.interface.js +3 -0
  324. package/dist/init.interface.js.map +1 -0
  325. package/dist/jobs/index.d.ts +38 -0
  326. package/dist/jobs/index.js +50 -0
  327. package/dist/jobs/index.js.map +1 -0
  328. package/dist/jobs/jobs.service.d.ts +154 -0
  329. package/dist/jobs/jobs.service.js +491 -0
  330. package/dist/jobs/jobs.service.js.map +1 -0
  331. package/dist/jobs/jobs.state.d.ts +113 -0
  332. package/dist/jobs/jobs.state.js +447 -0
  333. package/dist/jobs/jobs.state.js.map +1 -0
  334. package/dist/jobs/types.d.ts +449 -0
  335. package/dist/jobs/types.js +74 -0
  336. package/dist/jobs/types.js.map +1 -0
  337. package/dist/logs/logs.types.d.ts +12 -2
  338. package/dist/logs/logs.types.js +5 -1
  339. package/dist/logs/logs.types.js.map +1 -1
  340. package/dist/models/index.d.ts +6 -0
  341. package/dist/models/index.js +11 -0
  342. package/dist/models/index.js.map +1 -0
  343. package/dist/models/models.service.d.ts +137 -0
  344. package/dist/models/models.service.js +195 -0
  345. package/dist/models/models.service.js.map +1 -0
  346. package/dist/notifications/index.d.ts +13 -0
  347. package/dist/notifications/index.js +26 -0
  348. package/dist/notifications/index.js.map +1 -0
  349. package/dist/notifications/notifications.service.d.ts +252 -0
  350. package/dist/notifications/notifications.service.js +654 -0
  351. package/dist/notifications/notifications.service.js.map +1 -0
  352. package/dist/notifications/types/index.d.ts +4 -0
  353. package/dist/notifications/types/index.js +21 -0
  354. package/dist/notifications/types/index.js.map +1 -0
  355. package/dist/notifications/types/notifications.types.d.ts +400 -0
  356. package/dist/notifications/types/notifications.types.js +49 -0
  357. package/dist/notifications/types/notifications.types.js.map +1 -0
  358. package/dist/processor/services/messagebrokers/kafka.service.js +2 -0
  359. package/dist/processor/services/messagebrokers/kafka.service.js.map +1 -1
  360. package/dist/processor/services/messagebrokers/rabbitmq.service.d.ts +1 -9
  361. package/dist/processor/services/messagebrokers/rabbitmq.service.js +11 -40
  362. package/dist/processor/services/messagebrokers/rabbitmq.service.js.map +1 -1
  363. package/dist/processor/services/processor.service.d.ts +86 -70
  364. package/dist/processor/services/processor.service.js +1353 -1259
  365. package/dist/processor/services/processor.service.js.map +1 -1
  366. package/dist/processor/utils/processor.utils.js +5 -1
  367. package/dist/processor/utils/processor.utils.js.map +1 -1
  368. package/dist/products/services/products.service.d.ts +167 -25
  369. package/dist/products/services/products.service.js +1248 -412
  370. package/dist/products/services/products.service.js.map +1 -1
  371. package/dist/products/validators/index.d.ts +6 -3
  372. package/dist/products/validators/index.js +14 -5
  373. package/dist/products/validators/index.js.map +1 -1
  374. package/dist/products/validators/joi-validators/create.productAgent.validator.d.ts +3 -0
  375. package/dist/products/validators/joi-validators/create.productAgent.validator.js +218 -0
  376. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -0
  377. package/dist/products/validators/joi-validators/create.productDatabase.validator.js +5 -0
  378. package/dist/products/validators/joi-validators/create.productDatabase.validator.js.map +1 -1
  379. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.d.ts +4 -15
  380. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js +109 -501
  381. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js.map +1 -1
  382. package/dist/products/validators/joi-validators/create.productGraph.validator.js +14 -9
  383. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -1
  384. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +0 -1
  385. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -1
  386. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +87 -30
  387. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  388. package/dist/products/validators/joi-validators/create.productModel.validator.d.ts +3 -0
  389. package/dist/products/validators/joi-validators/create.productModel.validator.js +132 -0
  390. package/dist/products/validators/joi-validators/create.productModel.validator.js.map +1 -0
  391. package/dist/products/validators/joi-validators/create.productNotification.validator.js +135 -50
  392. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  393. package/dist/products/validators/joi-validators/create.productStorage.validator.js +77 -18
  394. package/dist/products/validators/joi-validators/create.productStorage.validator.js.map +1 -1
  395. package/dist/products/validators/joi-validators/create.productVector.validator.d.ts +3 -0
  396. package/dist/products/validators/joi-validators/create.productVector.validator.js +135 -0
  397. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -0
  398. package/dist/products/validators/joi-validators/update.productDatabase.validator.js +5 -0
  399. package/dist/products/validators/joi-validators/update.productDatabase.validator.js.map +1 -1
  400. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.d.ts +0 -6
  401. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js +26 -28
  402. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js.map +1 -1
  403. package/dist/products/validators/joi-validators/update.productGraph.validator.js +11 -12
  404. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -1
  405. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +0 -1
  406. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -1
  407. package/dist/resilience/fallback.service.d.ts +88 -0
  408. package/dist/resilience/fallback.service.js +511 -0
  409. package/dist/resilience/fallback.service.js.map +1 -0
  410. package/dist/resilience/healthcheck.service.d.ts +106 -0
  411. package/dist/resilience/healthcheck.service.js +379 -0
  412. package/dist/resilience/healthcheck.service.js.map +1 -0
  413. package/dist/resilience/index.d.ts +104 -0
  414. package/dist/resilience/index.js +140 -0
  415. package/dist/resilience/index.js.map +1 -0
  416. package/dist/resilience/quota.service.d.ts +90 -0
  417. package/dist/resilience/quota.service.js +519 -0
  418. package/dist/resilience/quota.service.js.map +1 -0
  419. package/dist/resilience/resilience.service.d.ts +95 -0
  420. package/dist/resilience/resilience.service.js +525 -0
  421. package/dist/resilience/resilience.service.js.map +1 -0
  422. package/dist/resilience/types/index.d.ts +479 -0
  423. package/dist/resilience/types/index.js +26 -0
  424. package/dist/resilience/types/index.js.map +1 -0
  425. package/dist/secrets/index.d.ts +10 -0
  426. package/dist/secrets/index.js +33 -0
  427. package/dist/secrets/index.js.map +1 -0
  428. package/dist/secrets/secrets.resolver.d.ts +52 -0
  429. package/dist/secrets/secrets.resolver.js +233 -0
  430. package/dist/secrets/secrets.resolver.js.map +1 -0
  431. package/dist/secrets/secrets.service.d.ts +83 -0
  432. package/dist/secrets/secrets.service.js +159 -0
  433. package/dist/secrets/secrets.service.js.map +1 -0
  434. package/dist/secrets/secrets.types.d.ts +188 -0
  435. package/dist/secrets/secrets.types.js +87 -0
  436. package/dist/secrets/secrets.types.js.map +1 -0
  437. package/dist/sessions/index.d.ts +50 -0
  438. package/dist/sessions/index.js +93 -0
  439. package/dist/sessions/index.js.map +1 -0
  440. package/dist/sessions/sessions.helper.d.ts +68 -0
  441. package/dist/sessions/sessions.helper.js +116 -0
  442. package/dist/sessions/sessions.helper.js.map +1 -0
  443. package/dist/sessions/sessions.resolver.d.ts +150 -0
  444. package/dist/sessions/sessions.resolver.js +356 -0
  445. package/dist/sessions/sessions.resolver.js.map +1 -0
  446. package/dist/sessions/sessions.service.d.ts +170 -0
  447. package/dist/sessions/sessions.service.js +736 -0
  448. package/dist/sessions/sessions.service.js.map +1 -0
  449. package/dist/sessions/types/index.d.ts +290 -0
  450. package/dist/sessions/types/index.js +6 -0
  451. package/dist/sessions/types/index.js.map +1 -0
  452. package/dist/storage/index.d.ts +66 -0
  453. package/dist/storage/index.js +98 -0
  454. package/dist/storage/index.js.map +1 -0
  455. package/dist/storage/storage.service.d.ts +123 -0
  456. package/dist/storage/storage.service.js +478 -0
  457. package/dist/storage/storage.service.js.map +1 -0
  458. package/dist/storage/types/index.d.ts +207 -0
  459. package/dist/storage/types/index.js +6 -0
  460. package/dist/storage/types/index.js.map +1 -0
  461. package/dist/storage/utils/storage.util.d.ts +51 -0
  462. package/dist/storage/utils/storage.util.js +402 -0
  463. package/dist/storage/utils/storage.util.js.map +1 -0
  464. package/dist/test/index.d.ts +3 -0
  465. package/dist/test/index.js +13 -0
  466. package/dist/test/index.js.map +1 -0
  467. package/dist/test/test.appBuilder.d.ts +0 -1
  468. package/dist/test/test.appBuilder.js +0 -15
  469. package/dist/test/test.appBuilder.js.map +1 -1
  470. package/dist/test/test.database.js +140 -0
  471. package/dist/test/test.database.js.map +1 -0
  472. package/dist/test/test.health.d.ts +0 -1
  473. package/dist/test/test.health.js +0 -48
  474. package/dist/test/test.health.js.map +1 -1
  475. package/dist/test/test.import.d.ts +0 -1
  476. package/dist/test/test.import.js +0 -1506
  477. package/dist/test/test.import.js.map +1 -1
  478. package/dist/test/test.import.openapi.d.ts +0 -1
  479. package/dist/test/test.import.openapi.js +0 -75
  480. package/dist/test/test.import.openapi.js.map +1 -1
  481. package/dist/test/test.imports.d.ts +0 -1
  482. package/dist/test/test.imports.js +0 -76
  483. package/dist/test/test.imports.js.map +1 -1
  484. package/dist/test/test.logs.d.ts +0 -1
  485. package/dist/test/test.logs.js +0 -17
  486. package/dist/test/test.logs.js.map +1 -1
  487. package/dist/test/test.notifiers.d.ts +0 -1
  488. package/dist/test/test.notifiers.js +0 -84
  489. package/dist/test/test.notifiers.js.map +1 -1
  490. package/dist/test/test.processor.d.ts +0 -1
  491. package/dist/test/test.processor.js +0 -37
  492. package/dist/test/test.processor.js.map +1 -1
  493. package/dist/test/test.productBuilder.d.ts +0 -1
  494. package/dist/test/test.productBuilder.js +0 -660
  495. package/dist/test/test.productBuilder.js.map +1 -1
  496. package/dist/test/test.products.d.ts +0 -1
  497. package/dist/test/test.products.js +0 -48
  498. package/dist/test/test.products.js.map +1 -1
  499. package/dist/test/test.storage.js +332 -0
  500. package/dist/test/test.storage.js.map +1 -0
  501. package/dist/test/test.triggers.js +314 -0
  502. package/dist/test/test.triggers.js.map +1 -0
  503. package/dist/types/appBuilder.types.d.ts +1 -1
  504. package/dist/types/enums.d.ts +6 -1
  505. package/dist/types/enums.js +5 -0
  506. package/dist/types/enums.js.map +1 -1
  507. package/dist/types/processor.types.d.ts +197 -35
  508. package/dist/types/processor.types.js +9 -1
  509. package/dist/types/processor.types.js.map +1 -1
  510. package/dist/types/productsBuilder.types.d.ts +837 -75
  511. package/dist/types/productsBuilder.types.js +168 -62
  512. package/dist/types/productsBuilder.types.js.map +1 -1
  513. package/dist/utils/index.d.ts +0 -2
  514. package/dist/utils/index.js +2 -49
  515. package/dist/utils/index.js.map +1 -1
  516. package/dist/vector/adapters/base.adapter.d.ts +152 -0
  517. package/dist/vector/adapters/base.adapter.js +137 -0
  518. package/dist/vector/adapters/base.adapter.js.map +1 -0
  519. package/dist/vector/adapters/index.d.ts +10 -0
  520. package/dist/vector/adapters/index.js +19 -0
  521. package/dist/vector/adapters/index.js.map +1 -0
  522. package/dist/vector/adapters/memory.adapter.d.ts +85 -0
  523. package/dist/vector/adapters/memory.adapter.js +505 -0
  524. package/dist/vector/adapters/memory.adapter.js.map +1 -0
  525. package/dist/vector/adapters/pinecone.adapter.d.ts +52 -0
  526. package/dist/vector/adapters/pinecone.adapter.js +400 -0
  527. package/dist/vector/adapters/pinecone.adapter.js.map +1 -0
  528. package/dist/vector/adapters/qdrant.adapter.d.ts +56 -0
  529. package/dist/vector/adapters/qdrant.adapter.js +392 -0
  530. package/dist/vector/adapters/qdrant.adapter.js.map +1 -0
  531. package/dist/vector/adapters/weaviate.adapter.d.ts +64 -0
  532. package/dist/vector/adapters/weaviate.adapter.js +478 -0
  533. package/dist/vector/adapters/weaviate.adapter.js.map +1 -0
  534. package/dist/vector/index.d.ts +47 -0
  535. package/dist/vector/index.js +72 -0
  536. package/dist/vector/index.js.map +1 -0
  537. package/dist/vector/types/connection.interface.d.ts +151 -0
  538. package/dist/vector/types/connection.interface.js +8 -0
  539. package/dist/vector/types/connection.interface.js.map +1 -0
  540. package/dist/vector/types/embedding.interface.d.ts +144 -0
  541. package/dist/vector/types/embedding.interface.js +8 -0
  542. package/dist/vector/types/embedding.interface.js.map +1 -0
  543. package/dist/vector/types/enums.d.ts +104 -0
  544. package/dist/vector/types/enums.js +113 -0
  545. package/dist/vector/types/enums.js.map +1 -0
  546. package/dist/vector/types/index.d.ts +9 -0
  547. package/dist/vector/types/index.js +16 -0
  548. package/dist/vector/types/index.js.map +1 -0
  549. package/dist/vector/types/vector.interface.d.ts +315 -0
  550. package/dist/vector/types/vector.interface.js +8 -0
  551. package/dist/vector/types/vector.interface.js.map +1 -0
  552. package/dist/vector/utils/index.d.ts +6 -0
  553. package/dist/vector/utils/index.js +11 -0
  554. package/dist/vector/utils/index.js.map +1 -0
  555. package/dist/vector/utils/vector-error.d.ts +69 -0
  556. package/dist/vector/utils/vector-error.js +117 -0
  557. package/dist/vector/utils/vector-error.js.map +1 -0
  558. package/dist/vector/vector-database.service.d.ts +405 -0
  559. package/dist/vector/vector-database.service.js +544 -0
  560. package/dist/vector/vector-database.service.js.map +1 -0
  561. package/dist/vector/vector.service.d.ts +245 -0
  562. package/dist/vector/vector.service.js +381 -0
  563. package/dist/vector/vector.service.js.map +1 -0
  564. package/dist/workflows/index.d.ts +30 -0
  565. package/dist/workflows/index.js +64 -0
  566. package/dist/workflows/index.js.map +1 -0
  567. package/dist/workflows/types/index.d.ts +6 -0
  568. package/dist/workflows/types/index.js +23 -0
  569. package/dist/workflows/types/index.js.map +1 -0
  570. package/dist/workflows/types/workflows.types.d.ts +1035 -0
  571. package/dist/workflows/types/workflows.types.js +13 -0
  572. package/dist/workflows/types/workflows.types.js.map +1 -0
  573. package/dist/workflows/workflow-builder.d.ts +70 -0
  574. package/dist/workflows/workflow-builder.js +338 -0
  575. package/dist/workflows/workflow-builder.js.map +1 -0
  576. package/dist/workflows/workflow-executor.d.ts +205 -0
  577. package/dist/workflows/workflow-executor.js +1186 -0
  578. package/dist/workflows/workflow-executor.js.map +1 -0
  579. package/dist/workflows/workflows.service.d.ts +398 -0
  580. package/dist/workflows/workflows.service.js +1595 -0
  581. package/dist/workflows/workflows.service.js.map +1 -0
  582. package/package.json +16 -13
  583. package/dist/actions/actions.repo.d.ts +0 -0
  584. package/dist/actions/actions.repo.js +0 -13
  585. package/dist/actions/actions.repo.js.map +0 -1
  586. package/dist/actions/actions.service.d.ts +0 -0
  587. package/dist/actions/actions.service.js +0 -24
  588. package/dist/actions/actions.service.js.map +0 -1
  589. package/dist/actions/utils/actions.util.read.d.ts +0 -0
  590. package/dist/actions/utils/actions.util.read.js +0 -427
  591. package/dist/actions/utils/actions.util.read.js.map +0 -1
  592. package/dist/api/services/integrationsApi.service.d.ts +0 -18
  593. package/dist/api/services/integrationsApi.service.js +0 -80
  594. package/dist/api/services/integrationsApi.service.js.map +0 -1
  595. package/dist/api/services/workspaceSecretsApi.service.d.ts +0 -75
  596. package/dist/api/services/workspaceSecretsApi.service.js +0 -62
  597. package/dist/api/services/workspaceSecretsApi.service.js.map +0 -1
  598. package/dist/appBuilder/services/app.service.d.ts +0 -111
  599. package/dist/appBuilder/services/app.service.js +0 -737
  600. package/dist/appBuilder/services/app.service.js.map +0 -1
  601. package/dist/appBuilder/services/appBuilder.service.d.ts +0 -111
  602. package/dist/appBuilder/services/appBuilder.service.js +0 -662
  603. package/dist/appBuilder/services/appBuilder.service.js.map +0 -1
  604. package/dist/appBuilder/utils/objects.utils.d.ts +0 -3
  605. package/dist/appBuilder/utils/objects.utils.js +0 -9
  606. package/dist/appBuilder/utils/objects.utils.js.map +0 -1
  607. package/dist/appBuilder/utils/string.utils.d.ts +0 -2
  608. package/dist/appBuilder/utils/string.utils.js +0 -57
  609. package/dist/appBuilder/utils/string.utils.js.map +0 -1
  610. package/dist/appBuilder/validators/index.d.ts +0 -19
  611. package/dist/appBuilder/validators/index.js +0 -40
  612. package/dist/appBuilder/validators/index.js.map +0 -1
  613. package/dist/appBuilder/validators/joi-validators/create.app.validator.d.ts +0 -3
  614. package/dist/appBuilder/validators/joi-validators/create.app.validator.js +0 -10
  615. package/dist/appBuilder/validators/joi-validators/create.app.validator.js.map +0 -1
  616. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.d.ts +0 -4
  617. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js +0 -20
  618. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js.map +0 -1
  619. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.d.ts +0 -7
  620. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js +0 -44
  621. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js.map +0 -1
  622. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.d.ts +0 -3
  623. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js +0 -31
  624. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js.map +0 -1
  625. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.d.ts +0 -4
  626. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js +0 -11
  627. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js.map +0 -1
  628. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.d.ts +0 -4
  629. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js +0 -12
  630. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js.map +0 -1
  631. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.d.ts +0 -4
  632. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js +0 -17
  633. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js.map +0 -1
  634. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  635. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js +0 -30
  636. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  637. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.d.ts +0 -4
  638. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js +0 -14
  639. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js.map +0 -1
  640. package/dist/appBuilder/validators/joi-validators/sample.validator.d.ts +0 -5
  641. package/dist/appBuilder/validators/joi-validators/sample.validator.js +0 -26
  642. package/dist/appBuilder/validators/joi-validators/sample.validator.js.map +0 -1
  643. package/dist/appBuilder/validators/joi-validators/update.app.validator.d.ts +0 -4
  644. package/dist/appBuilder/validators/joi-validators/update.app.validator.js +0 -34
  645. package/dist/appBuilder/validators/joi-validators/update.app.validator.js.map +0 -1
  646. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.d.ts +0 -4
  647. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js +0 -23
  648. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js.map +0 -1
  649. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.d.ts +0 -3
  650. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js +0 -21
  651. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js.map +0 -1
  652. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.d.ts +0 -4
  653. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js +0 -19
  654. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js.map +0 -1
  655. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.d.ts +0 -4
  656. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js +0 -12
  657. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js.map +0 -1
  658. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.d.ts +0 -4
  659. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js +0 -17
  660. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js.map +0 -1
  661. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  662. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js +0 -16
  663. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  664. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.d.ts +0 -4
  665. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js +0 -14
  666. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js.map +0 -1
  667. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.d.ts +0 -3
  668. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js +0 -27
  669. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js.map +0 -1
  670. package/dist/apps/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  671. package/dist/apps/validators/joi-validators/create.appEvent.validator.js +0 -30
  672. package/dist/apps/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  673. package/dist/apps/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  674. package/dist/apps/validators/joi-validators/update.appEvent.validator.js +0 -16
  675. package/dist/apps/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  676. package/dist/clients/integrations.client.d.ts +0 -2
  677. package/dist/clients/integrations.client.js +0 -26
  678. package/dist/clients/integrations.client.js.map +0 -1
  679. package/dist/database/database.service.d.ts +0 -232
  680. package/dist/database/database.service.js +0 -802
  681. package/dist/database/database.service.js.map +0 -1
  682. package/dist/database/types/aggregation.types.d.ts +0 -261
  683. package/dist/database/types/aggregation.types.js +0 -21
  684. package/dist/database/types/aggregation.types.js.map +0 -1
  685. package/dist/database/types/connection.types.d.ts +0 -132
  686. package/dist/database/types/connection.types.js +0 -6
  687. package/dist/database/types/connection.types.js.map +0 -1
  688. package/dist/database/types/database.types.d.ts +0 -175
  689. package/dist/database/types/database.types.js +0 -75
  690. package/dist/database/types/database.types.js.map +0 -1
  691. package/dist/database/types/index.types.d.ts +0 -220
  692. package/dist/database/types/index.types.js +0 -27
  693. package/dist/database/types/index.types.js.map +0 -1
  694. package/dist/database/types/migration.types.d.ts +0 -205
  695. package/dist/database/types/migration.types.js +0 -44
  696. package/dist/database/types/migration.types.js.map +0 -1
  697. package/dist/database/types/query.types.d.ts +0 -305
  698. package/dist/database/types/query.types.js +0 -57
  699. package/dist/database/types/query.types.js.map +0 -1
  700. package/dist/database/types/result.types.d.ts +0 -220
  701. package/dist/database/types/result.types.js +0 -6
  702. package/dist/database/types/result.types.js.map +0 -1
  703. package/dist/database/types/schema.types.d.ts +0 -190
  704. package/dist/database/types/schema.types.js +0 -69
  705. package/dist/database/types/schema.types.js.map +0 -1
  706. package/dist/database/utils/helpers.d.ts +0 -66
  707. package/dist/database/utils/helpers.js +0 -501
  708. package/dist/database/utils/helpers.js.map +0 -1
  709. package/dist/database/utils/migration.utils.d.ts +0 -151
  710. package/dist/database/utils/migration.utils.js +0 -476
  711. package/dist/database/utils/migration.utils.js.map +0 -1
  712. package/dist/database/utils/transaction.d.ts +0 -64
  713. package/dist/database/utils/transaction.js +0 -130
  714. package/dist/database/utils/transaction.js.map +0 -1
  715. package/dist/database/validators/connection.validator.d.ts +0 -20
  716. package/dist/database/validators/connection.validator.js +0 -267
  717. package/dist/database/validators/connection.validator.js.map +0 -1
  718. package/dist/database/validators/query.validator.d.ts +0 -31
  719. package/dist/database/validators/query.validator.js +0 -305
  720. package/dist/database/validators/query.validator.js.map +0 -1
  721. package/dist/database/validators/schema.validator.d.ts +0 -31
  722. package/dist/database/validators/schema.validator.js +0 -334
  723. package/dist/database/validators/schema.validator.js.map +0 -1
  724. package/dist/graph/graph.service.d.ts +0 -278
  725. package/dist/graph/graph.service.js +0 -687
  726. package/dist/graph/graph.service.js.map +0 -1
  727. package/dist/graph/types/connection.types.d.ts +0 -158
  728. package/dist/graph/types/connection.types.js +0 -43
  729. package/dist/graph/types/connection.types.js.map +0 -1
  730. package/dist/graph/types/graph.types.d.ts +0 -144
  731. package/dist/graph/types/graph.types.js +0 -84
  732. package/dist/graph/types/graph.types.js.map +0 -1
  733. package/dist/graph/types/node.types.d.ts +0 -193
  734. package/dist/graph/types/node.types.js +0 -49
  735. package/dist/graph/types/node.types.js.map +0 -1
  736. package/dist/graph/types/path.types.d.ts +0 -224
  737. package/dist/graph/types/path.types.js +0 -38
  738. package/dist/graph/types/path.types.js.map +0 -1
  739. package/dist/graph/types/query.types.d.ts +0 -247
  740. package/dist/graph/types/query.types.js +0 -23
  741. package/dist/graph/types/query.types.js.map +0 -1
  742. package/dist/graph/types/relationship.types.d.ts +0 -224
  743. package/dist/graph/types/relationship.types.js +0 -35
  744. package/dist/graph/types/relationship.types.js.map +0 -1
  745. package/dist/graph/types/result.types.d.ts +0 -237
  746. package/dist/graph/types/result.types.js +0 -7
  747. package/dist/graph/types/result.types.js.map +0 -1
  748. package/dist/graph/validators/index.d.ts +0 -81
  749. package/dist/graph/validators/index.js +0 -243
  750. package/dist/graph/validators/index.js.map +0 -1
  751. package/dist/integrationsBuilder/services/integration.service.d.ts +0 -138
  752. package/dist/integrationsBuilder/services/integration.service.js +0 -1148
  753. package/dist/integrationsBuilder/services/integration.service.js.map +0 -1
  754. package/dist/integrationsBuilder/services/integrationBuilder.service.d.ts +0 -130
  755. package/dist/integrationsBuilder/services/integrationBuilder.service.js +0 -1017
  756. package/dist/integrationsBuilder/services/integrationBuilder.service.js.map +0 -1
  757. package/dist/integrationsBuilder/utils/objects.utils.d.ts +0 -2
  758. package/dist/integrationsBuilder/utils/objects.utils.js +0 -48
  759. package/dist/integrationsBuilder/utils/objects.utils.js.map +0 -1
  760. package/dist/integrationsBuilder/utils/string.utils.d.ts +0 -1
  761. package/dist/integrationsBuilder/utils/string.utils.js +0 -9
  762. package/dist/integrationsBuilder/utils/string.utils.js.map +0 -1
  763. package/dist/integrationsBuilder/validators/index.d.ts +0 -18
  764. package/dist/integrationsBuilder/validators/index.js +0 -38
  765. package/dist/integrationsBuilder/validators/index.js.map +0 -1
  766. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.d.ts +0 -3
  767. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js +0 -10
  768. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js.map +0 -1
  769. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.d.ts +0 -4
  770. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js +0 -26
  771. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js.map +0 -1
  772. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.d.ts +0 -3
  773. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js +0 -8
  774. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js.map +0 -1
  775. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.d.ts +0 -3
  776. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js +0 -8
  777. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js.map +0 -1
  778. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.d.ts +0 -3
  779. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js +0 -10
  780. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js.map +0 -1
  781. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.d.ts +0 -3
  782. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js +0 -60
  783. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js.map +0 -1
  784. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.d.ts +0 -3
  785. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js +0 -8
  786. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js.map +0 -1
  787. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.d.ts +0 -3
  788. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js +0 -8
  789. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js.map +0 -1
  790. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.d.ts +0 -3
  791. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js +0 -8
  792. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js.map +0 -1
  793. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.d.ts +0 -3
  794. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js +0 -9
  795. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js.map +0 -1
  796. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.d.ts +0 -3
  797. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js +0 -8
  798. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js.map +0 -1
  799. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.d.ts +0 -3
  800. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js +0 -8
  801. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js.map +0 -1
  802. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.d.ts +0 -3
  803. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js +0 -8
  804. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js.map +0 -1
  805. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.d.ts +0 -3
  806. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js +0 -8
  807. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js.map +0 -1
  808. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.d.ts +0 -3
  809. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js +0 -8
  810. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js.map +0 -1
  811. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.d.ts +0 -3
  812. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js +0 -8
  813. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js.map +0 -1
  814. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.d.ts +0 -3
  815. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js +0 -8
  816. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js.map +0 -1
  817. package/dist/postman.d.ts +0 -1
  818. package/dist/postman.js +0 -21674
  819. package/dist/postman.js.map +0 -1
  820. package/dist/processor/utils/mongo.util.d.ts +0 -0
  821. package/dist/processor/utils/mongo.util.js +0 -152
  822. package/dist/processor/utils/mongo.util.js.map +0 -1
  823. package/dist/processor/utils/postgres.util.d.ts +0 -14
  824. package/dist/processor/utils/postgres.util.js +0 -83
  825. package/dist/processor/utils/postgres.util.js.map +0 -1
  826. package/dist/products/services/utils/crypt.utils.d.ts +0 -1
  827. package/dist/products/services/utils/crypt.utils.js +0 -17
  828. package/dist/products/services/utils/crypt.utils.js.map +0 -1
  829. package/dist/products/services/utils/functions.utils.d.ts +0 -13
  830. package/dist/products/services/utils/functions.utils.js +0 -289
  831. package/dist/products/services/utils/functions.utils.js.map +0 -1
  832. package/dist/products/services/utils/objects.utils.d.ts +0 -13
  833. package/dist/products/services/utils/objects.utils.js +0 -89
  834. package/dist/products/services/utils/objects.utils.js.map +0 -1
  835. package/dist/products/services/utils/string.utils.d.ts +0 -12
  836. package/dist/products/services/utils/string.utils.js +0 -168
  837. package/dist/products/services/utils/string.utils.js.map +0 -1
  838. package/dist/products/validators/joi-validators/create.product.validator.d.ts +0 -3
  839. package/dist/products/validators/joi-validators/create.product.validator.js +0 -10
  840. package/dist/products/validators/joi-validators/create.product.validator.js.map +0 -1
  841. package/dist/products/validators/joi-validators/create.productGraphAction.validator.d.ts +0 -14
  842. package/dist/products/validators/joi-validators/create.productGraphAction.validator.js +0 -696
  843. package/dist/products/validators/joi-validators/create.productGraphAction.validator.js.map +0 -1
  844. package/dist/products/validators/joi-validators/update.productGraphAction.validator.d.ts +0 -7
  845. package/dist/products/validators/joi-validators/update.productGraphAction.validator.js +0 -72
  846. package/dist/products/validators/joi-validators/update.productGraphAction.validator.js.map +0 -1
  847. package/dist/test.appBuilder.js +0 -14
  848. package/dist/test.appBuilder.js.map +0 -1
  849. package/dist/test.import.d.ts +0 -0
  850. package/dist/test.import.js +0 -24
  851. package/dist/test.import.js.map +0 -1
  852. package/dist/test.imports.js +0 -28
  853. package/dist/test.imports.js.map +0 -1
  854. package/dist/test.integrationBuilder.js +0 -276
  855. package/dist/test.integrationBuilder.js.map +0 -1
  856. package/dist/test.processor.d.ts +0 -1
  857. package/dist/test.processor.js +0 -23
  858. package/dist/test.processor.js.map +0 -1
  859. package/dist/test.utils.d.ts +0 -1
  860. package/dist/test.utils.js +0 -25
  861. package/dist/test.utils.js.map +0 -1
  862. package/dist/tsconfig.tsbuildinfo +0 -1
  863. package/dist/types/integrationsBuilder.types.d.ts +0 -276
  864. package/dist/types/integrationsBuilder.types.js +0 -51
  865. package/dist/types/integrationsBuilder.types.js.map +0 -1
  866. /package/dist/{test.appBuilder.d.ts → test/test.database.d.ts} +0 -0
  867. /package/dist/{test.imports.d.ts → test/test.storage.d.ts} +0 -0
  868. /package/dist/{test.integrationBuilder.d.ts → test/test.triggers.d.ts} +0 -0
@@ -0,0 +1,1186 @@
1
+ "use strict";
2
+ /**
3
+ * WorkflowExecutor - Executes workflow steps and manages rollbacks
4
+ *
5
+ * Handles the actual execution of workflow steps, including:
6
+ * - Processing each step type (action, database, notification, etc.)
7
+ * - Managing rollback on failure
8
+ * - Tracking workflow state and completed steps
9
+ * - Handling signals and checkpoints
10
+ */
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.WorkflowExecutor = void 0;
16
+ const crypto_1 = require("crypto");
17
+ const processor_service_1 = __importDefault(require("../processor/services/processor.service"));
18
+ const products_service_1 = __importDefault(require("../products/services/products.service"));
19
+ const processorApi_service_1 = require("../api/services/processorApi.service");
20
+ const workflowApi_service_1 = require("../api/services/workflowApi.service");
21
+ const graph_1 = require("../graph");
22
+ const database_1 = require("../database");
23
+ const resilience_1 = require("../resilience");
24
+ const logs_service_1 = __importDefault(require("../logs/logs.service"));
25
+ const logs_types_1 = require("../logs/logs.types");
26
+ const types_1 = require("../types");
27
+ /**
28
+ * WorkflowExecutor handles the execution of workflow steps
29
+ */
30
+ class WorkflowExecutor {
31
+ constructor(config, workflow, options, sessionLogFields) {
32
+ this.productId = null;
33
+ /** Pending signals waiting to be resolved */
34
+ this.pendingSignals = new Map();
35
+ /** Signal polling interval (ms) */
36
+ this.signalPollInterval = 2000;
37
+ /** Signal polling timer */
38
+ this.signalPollTimer = null;
39
+ /** Session log fields for logging */
40
+ this.sessionLogFields = {};
41
+ /** LogService instance for logging operations */
42
+ this.logService = null;
43
+ /** Base log fields inherited by all step logs */
44
+ this.baseLogs = null;
45
+ this.config = config;
46
+ this.workflow = workflow;
47
+ this.sessionLogFields = sessionLogFields || {};
48
+ // Initialize processor service for executing components
49
+ this.processorService = new processor_service_1.default({
50
+ workspace_id: config.workspace_id,
51
+ public_key: config.public_key,
52
+ user_id: config.user_id,
53
+ token: config.token,
54
+ env_type: config.env_type,
55
+ });
56
+ // Initialize product builder
57
+ this.productBuilder = new products_service_1.default({
58
+ workspace_id: config.workspace_id,
59
+ public_key: config.public_key,
60
+ user_id: config.user_id,
61
+ token: config.token,
62
+ env_type: config.env_type,
63
+ });
64
+ // Initialize processor API service for persisting results
65
+ this.processorApiService = new processorApi_service_1.ProcessorApiService(config.env_type);
66
+ // Initialize workflow API service for signal polling
67
+ this.workflowApiService = new workflowApi_service_1.WorkflowApiService(config.env_type);
68
+ // Initialize graph service for graph operations
69
+ this.graphService = new graph_1.GraphService({
70
+ workspace_id: config.workspace_id,
71
+ public_key: config.public_key,
72
+ user_id: config.user_id,
73
+ token: config.token,
74
+ env_type: config.env_type,
75
+ });
76
+ // Initialize database service for database actions
77
+ this.databaseService = new database_1.DatabaseService({
78
+ workspace_id: config.workspace_id,
79
+ public_key: config.public_key,
80
+ user_id: config.user_id,
81
+ token: config.token,
82
+ env_type: config.env_type,
83
+ });
84
+ // Initialize quota service for quota steps
85
+ this.quotaService = new resilience_1.QuotaService({
86
+ workspace_id: config.workspace_id,
87
+ public_key: config.public_key,
88
+ user_id: config.user_id,
89
+ token: config.token,
90
+ env_type: config.env_type,
91
+ });
92
+ // Initialize fallback service for fallback steps
93
+ this.fallbackService = new resilience_1.FallbackService({
94
+ workspace_id: config.workspace_id,
95
+ public_key: config.public_key,
96
+ user_id: config.user_id,
97
+ token: config.token,
98
+ env_type: config.env_type,
99
+ });
100
+ // Initialize workflow state
101
+ this.state = {
102
+ workflow_id: (0, crypto_1.randomUUID)(),
103
+ workflow_tag: workflow.tag,
104
+ product: options.product,
105
+ env: options.env,
106
+ input: options.input,
107
+ steps: {},
108
+ completed_steps: [],
109
+ state: {},
110
+ status: types_1.WorkflowStatus.PENDING,
111
+ started_at: Date.now(),
112
+ };
113
+ }
114
+ /**
115
+ * Get auth payload for API calls
116
+ */
117
+ getAuthPayload() {
118
+ return {
119
+ user_id: this.config.user_id,
120
+ workspace_id: this.config.workspace_id,
121
+ public_key: this.config.public_key,
122
+ token: this.config.token,
123
+ };
124
+ }
125
+ /**
126
+ * Persist workflow execution result to backend
127
+ */
128
+ async persistExecutionResult(status, output, error) {
129
+ try {
130
+ const resultData = {
131
+ workflow_tag: this.state.workflow_tag,
132
+ input: this.state.input,
133
+ output,
134
+ completed_steps: this.state.completed_steps,
135
+ failed_step: this.state.failed_step,
136
+ step_outputs: this.state.steps,
137
+ error,
138
+ };
139
+ const processorResult = {
140
+ process_id: this.state.workflow_id,
141
+ product_id: this.productId || '',
142
+ env: this.state.env,
143
+ component: types_1.LogEventTypes.WORKFLOW,
144
+ status,
145
+ start: this.state.started_at,
146
+ end: Date.now(),
147
+ retryable: true,
148
+ result: resultData,
149
+ feature_id: '',
150
+ input: { product: this.state.product, env: this.state.env, event: this.state.workflow_tag, input: this.state.input },
151
+ };
152
+ await this.processorApiService.saveResult(processorResult, this.getAuthPayload());
153
+ }
154
+ catch (err) {
155
+ // Log error but don't throw - persistence failure shouldn't fail the workflow
156
+ console.error('Failed to persist workflow execution result:', err);
157
+ }
158
+ }
159
+ /**
160
+ * Persist individual step execution to backend
161
+ */
162
+ async persistStepResult(step, status, output, error, duration) {
163
+ try {
164
+ const resultData = {
165
+ workflow_id: this.state.workflow_id,
166
+ workflow_tag: this.state.workflow_tag,
167
+ step_tag: step.tag,
168
+ step_type: step.type,
169
+ input: step.input,
170
+ output,
171
+ error,
172
+ };
173
+ const stepResult = {
174
+ process_id: `${this.state.workflow_id}:${step.tag}`,
175
+ product_id: this.productId || '',
176
+ env: this.state.env,
177
+ component: types_1.LogEventTypes.WORKFLOW_STEP,
178
+ status,
179
+ start: Date.now() - (duration || 0),
180
+ end: Date.now(),
181
+ retryable: true,
182
+ result: resultData,
183
+ feature_id: '',
184
+ input: step.input,
185
+ };
186
+ await this.processorApiService.saveResult(stepResult, this.getAuthPayload());
187
+ }
188
+ catch (err) {
189
+ // Log error but don't throw - persistence failure shouldn't fail the step
190
+ console.error(`Failed to persist step ${step.tag} result:`, err);
191
+ }
192
+ }
193
+ /**
194
+ * Initialize logging service and base log fields
195
+ */
196
+ initializeLogging() {
197
+ if (!this.logService && this.productId) {
198
+ this.logService = new logs_service_1.default({
199
+ product_id: this.productId,
200
+ workspace_id: this.config.workspace_id,
201
+ public_key: this.config.public_key,
202
+ user_id: this.config.user_id,
203
+ token: this.config.token,
204
+ env_type: this.config.env_type,
205
+ });
206
+ // Set up base logs that all step logs inherit
207
+ this.baseLogs = Object.assign({ product_tag: this.state.product, workspace_id: this.config.workspace_id, env: this.state.env, process_id: this.state.workflow_id, type: logs_types_1.LogEventTypes.WORKFLOW, parent_tag: this.state.workflow_tag }, this.sessionLogFields);
208
+ }
209
+ }
210
+ /**
211
+ * Log a step execution event
212
+ */
213
+ logStepEvent(step, message, status, additionalData) {
214
+ if (!this.logService || !this.baseLogs)
215
+ return;
216
+ this.logService.add(Object.assign(Object.assign({}, this.baseLogs), { child_tag: step.tag, message,
217
+ status, data: Object.assign({ workflow: this.state.workflow_tag, step: step.tag, step_type: step.type }, additionalData) }));
218
+ }
219
+ /**
220
+ * Execute the workflow
221
+ */
222
+ async execute() {
223
+ var _a, _b, _c, _d, _e;
224
+ const startTime = Date.now();
225
+ try {
226
+ // Initialize product builder with the product
227
+ await this.productBuilder.initializeProductByTag(this.state.product);
228
+ this.productId = this.productBuilder.fetchProductId();
229
+ // Initialize logging after we have product ID
230
+ this.initializeLogging();
231
+ this.state.status = types_1.WorkflowStatus.RUNNING;
232
+ // Get steps in execution order (respecting dependencies)
233
+ const orderedSteps = this.getOrderedSteps();
234
+ // Execute each step
235
+ for (const step of orderedSteps) {
236
+ // Check step condition if present
237
+ if (step.condition && !this.evaluateCondition(step.condition)) {
238
+ this.logStepEvent(step, `Step ${step.tag} - skipped (condition not met)`, logs_types_1.LogEventStatus.SUCCESS, { skipped: true });
239
+ continue; // Skip step if condition not met
240
+ }
241
+ this.state.current_step = step.tag;
242
+ // Log step start
243
+ this.logStepEvent(step, `Step ${step.tag} - started`, logs_types_1.LogEventStatus.PROCESSING);
244
+ const result = await this.executeStep(step);
245
+ // Log step completion
246
+ this.logStepEvent(step, result.success ? `Step ${step.tag} - completed` : `Step ${step.tag} - failed`, result.success ? logs_types_1.LogEventStatus.SUCCESS : logs_types_1.LogEventStatus.FAIL, { duration: result.duration, error: result.error });
247
+ // Persist step result to backend
248
+ await this.persistStepResult(step, result.success ? types_1.LogEventStatus.SUCCESS : types_1.LogEventStatus.FAIL, result.output, result.error, result.duration);
249
+ if (!result.success) {
250
+ this.state.failed_step = step.tag;
251
+ // Check if step allows failure
252
+ if ((_a = step.options) === null || _a === void 0 ? void 0 : _a.allow_fail) {
253
+ // Store error but continue
254
+ this.state.steps[step.tag] = { error: result.error };
255
+ continue;
256
+ }
257
+ // Check if step is optional
258
+ if ((_b = step.options) === null || _b === void 0 ? void 0 : _b.optional) {
259
+ // Don't trigger rollback, just continue
260
+ continue;
261
+ }
262
+ // Trigger rollback
263
+ this.state.status = types_1.WorkflowStatus.ROLLING_BACK;
264
+ const rollbackResult = await this.executeRollback(step.tag, result.error || 'Step failed');
265
+ // Persist failed workflow result
266
+ await this.persistExecutionResult(types_1.LogEventStatus.FAIL, undefined, result.error);
267
+ // Publish logs
268
+ await ((_c = this.logService) === null || _c === void 0 ? void 0 : _c.publish());
269
+ return {
270
+ status: types_1.WorkflowStatus.ROLLED_BACK,
271
+ workflow_id: this.state.workflow_id,
272
+ error: result.error,
273
+ execution_time: Date.now() - startTime,
274
+ completed_steps: this.state.completed_steps,
275
+ failed_step: step.tag,
276
+ rollback_info: {
277
+ triggered_by: step.tag,
278
+ reason: result.error || 'Step failed',
279
+ rolled_back_steps: rollbackResult.rolled_back_steps,
280
+ failed_rollbacks: rollbackResult.failed_steps,
281
+ },
282
+ };
283
+ }
284
+ // Store step output and mark as completed
285
+ this.state.steps[step.tag] = result.output;
286
+ this.state.completed_steps.push(step.tag);
287
+ }
288
+ this.state.status = types_1.WorkflowStatus.COMPLETED;
289
+ this.state.ended_at = Date.now();
290
+ // Determine output - use last step output or aggregate
291
+ const output = this.determineWorkflowOutput();
292
+ // Persist successful workflow result
293
+ await this.persistExecutionResult(types_1.LogEventStatus.SUCCESS, output);
294
+ // Publish logs
295
+ await ((_d = this.logService) === null || _d === void 0 ? void 0 : _d.publish());
296
+ return {
297
+ status: types_1.WorkflowStatus.COMPLETED,
298
+ workflow_id: this.state.workflow_id,
299
+ output: output,
300
+ execution_time: Date.now() - startTime,
301
+ completed_steps: this.state.completed_steps,
302
+ };
303
+ }
304
+ catch (error) {
305
+ this.state.status = types_1.WorkflowStatus.FAILED;
306
+ this.state.ended_at = Date.now();
307
+ // Persist failed workflow result
308
+ await this.persistExecutionResult(types_1.LogEventStatus.FAIL, undefined, error.message);
309
+ // Publish logs
310
+ await ((_e = this.logService) === null || _e === void 0 ? void 0 : _e.publish());
311
+ return {
312
+ status: types_1.WorkflowStatus.FAILED,
313
+ workflow_id: this.state.workflow_id,
314
+ error: error.message || 'Workflow execution failed',
315
+ execution_time: Date.now() - startTime,
316
+ completed_steps: this.state.completed_steps,
317
+ failed_step: this.state.current_step,
318
+ };
319
+ }
320
+ }
321
+ /**
322
+ * Execute a single step
323
+ */
324
+ async executeStep(step) {
325
+ const startTime = Date.now();
326
+ try {
327
+ // Resolve input with data references
328
+ const resolvedInput = this.resolveInput(step.input || {});
329
+ let output;
330
+ switch (step.type) {
331
+ case types_1.WorkflowStepType.ACTION:
332
+ output = await this.executeActionStep(step, resolvedInput);
333
+ break;
334
+ case types_1.WorkflowStepType.DATABASE_ACTION:
335
+ output = await this.executeDatabaseStep(step, resolvedInput);
336
+ break;
337
+ case types_1.WorkflowStepType.NOTIFICATION:
338
+ output = await this.executeNotificationStep(step, resolvedInput);
339
+ break;
340
+ case types_1.WorkflowStepType.STORAGE:
341
+ output = await this.executeStorageStep(step, resolvedInput);
342
+ break;
343
+ case types_1.WorkflowStepType.PUBLISH:
344
+ output = await this.executePublishStep(step, resolvedInput);
345
+ break;
346
+ case types_1.WorkflowStepType.GRAPH:
347
+ output = await this.executeGraphStep(step, resolvedInput);
348
+ break;
349
+ case types_1.WorkflowStepType.QUOTA:
350
+ output = await this.executeQuotaStep(step, resolvedInput);
351
+ break;
352
+ case types_1.WorkflowStepType.FALLBACK:
353
+ output = await this.executeFallbackStep(step, resolvedInput);
354
+ break;
355
+ case types_1.WorkflowStepType.CHILD_WORKFLOW:
356
+ output = await this.executeChildWorkflowStep(step, resolvedInput);
357
+ break;
358
+ case types_1.WorkflowStepType.SLEEP:
359
+ await this.executeSleepStep(step, resolvedInput);
360
+ output = { slept: true };
361
+ break;
362
+ case types_1.WorkflowStepType.WAIT_FOR_SIGNAL:
363
+ output = await this.executeWaitForSignalStep(step, resolvedInput);
364
+ break;
365
+ case types_1.WorkflowStepType.CHECKPOINT:
366
+ await this.executeCheckpointStep(step, resolvedInput);
367
+ output = { checkpoint: step.tag };
368
+ break;
369
+ default:
370
+ throw new Error(`Unknown step type: ${step.type}`);
371
+ }
372
+ return {
373
+ success: true,
374
+ output,
375
+ duration: Date.now() - startTime,
376
+ };
377
+ }
378
+ catch (error) {
379
+ return {
380
+ success: false,
381
+ error: error.message || 'Step execution failed',
382
+ duration: Date.now() - startTime,
383
+ };
384
+ }
385
+ }
386
+ /**
387
+ * Execute an action step
388
+ */
389
+ async executeActionStep(step, input) {
390
+ var _a, _b;
391
+ return this.processorService.processAction({
392
+ product: this.state.product,
393
+ env: this.state.env,
394
+ app: step.app,
395
+ action: step.event,
396
+ input: input,
397
+ retries: ((_a = step.options) === null || _a === void 0 ? void 0 : _a.retries) || 0,
398
+ cache: (_b = step.options) === null || _b === void 0 ? void 0 : _b.cache,
399
+ });
400
+ }
401
+ /**
402
+ * Execute a database action step
403
+ */
404
+ async executeDatabaseStep(step, input) {
405
+ return this.databaseService.execute({
406
+ product: this.state.product,
407
+ env: this.state.env,
408
+ database: step.database,
409
+ action: step.event,
410
+ input: input,
411
+ });
412
+ }
413
+ /**
414
+ * Execute a notification step
415
+ */
416
+ async executeNotificationStep(step, input) {
417
+ var _a;
418
+ const event = `${step.notification}:${step.event}`;
419
+ return this.processorService.processNotification({
420
+ product: this.state.product,
421
+ env: this.state.env,
422
+ event,
423
+ input: input,
424
+ retries: ((_a = step.options) === null || _a === void 0 ? void 0 : _a.retries) || 0,
425
+ });
426
+ }
427
+ /**
428
+ * Execute a storage step
429
+ */
430
+ async executeStorageStep(step, input) {
431
+ var _a;
432
+ const event = `${step.storage}:${step.event}`;
433
+ return this.processorService.processStorage({
434
+ product: this.state.product,
435
+ env: this.state.env,
436
+ event,
437
+ input: input,
438
+ retries: ((_a = step.options) === null || _a === void 0 ? void 0 : _a.retries) || 0,
439
+ });
440
+ }
441
+ /**
442
+ * Execute a publish step
443
+ */
444
+ async executePublishStep(step, input) {
445
+ const event = `${step.broker}:${step.event}`;
446
+ return this.processorService.processMessageBrokerPublish({
447
+ product: this.state.product,
448
+ env: this.state.env,
449
+ event,
450
+ input: input,
451
+ });
452
+ }
453
+ /**
454
+ * Execute a graph step
455
+ * Supports: execute (custom action), createNode, updateNode, deleteNode,
456
+ * createRelationship, deleteRelationship, query
457
+ */
458
+ async executeGraphStep(step, input) {
459
+ const graphTag = step.graph;
460
+ const action = step.event;
461
+ // Connect to the graph database
462
+ await this.graphService.connect({
463
+ env: this.state.env,
464
+ product: this.state.product,
465
+ graph: graphTag,
466
+ });
467
+ try {
468
+ // Handle different graph operations based on action
469
+ switch (action) {
470
+ case 'createNode': {
471
+ const result = await this.graphService.createNode({
472
+ labels: input.labels,
473
+ properties: input.properties,
474
+ });
475
+ return result;
476
+ }
477
+ case 'updateNode': {
478
+ const result = await this.graphService.updateNode({
479
+ id: input.id,
480
+ properties: input.properties,
481
+ });
482
+ return result;
483
+ }
484
+ case 'deleteNode': {
485
+ const result = await this.graphService.deleteNode({
486
+ id: input.id,
487
+ detach: input.detach,
488
+ });
489
+ return result;
490
+ }
491
+ case 'createRelationship': {
492
+ const result = await this.graphService.createRelationship({
493
+ startNodeId: input.startNodeId || input.from,
494
+ endNodeId: input.endNodeId || input.to,
495
+ type: input.type,
496
+ properties: input.properties,
497
+ });
498
+ return result;
499
+ }
500
+ case 'deleteRelationship': {
501
+ const result = await this.graphService.deleteRelationship({
502
+ id: input.id,
503
+ });
504
+ return result;
505
+ }
506
+ case 'query': {
507
+ const result = await this.graphService.query(input.query, input.params);
508
+ return result;
509
+ }
510
+ case 'findNodes': {
511
+ const result = await this.graphService.findNodes({
512
+ labels: input.labels,
513
+ where: input.where,
514
+ limit: input.limit,
515
+ skip: input.skip,
516
+ });
517
+ return result;
518
+ }
519
+ case 'traverse': {
520
+ const result = await this.graphService.traverse({
521
+ startNodeId: input.startNodeId,
522
+ relationshipTypes: input.relationshipTypes,
523
+ direction: input.direction,
524
+ maxDepth: input.maxDepth,
525
+ });
526
+ return result;
527
+ }
528
+ default: {
529
+ // Execute a custom graph action
530
+ const result = await this.graphService.execute({
531
+ product: this.state.product,
532
+ env: this.state.env,
533
+ graph: graphTag,
534
+ action,
535
+ input,
536
+ });
537
+ return result;
538
+ }
539
+ }
540
+ }
541
+ finally {
542
+ // Disconnect from the graph
543
+ await this.graphService.disconnect();
544
+ }
545
+ }
546
+ /**
547
+ * Execute a quota step
548
+ */
549
+ async executeQuotaStep(step, input) {
550
+ return this.quotaService.run({
551
+ product: this.state.product,
552
+ env: this.state.env,
553
+ tag: step.quota,
554
+ input,
555
+ });
556
+ }
557
+ /**
558
+ * Execute a fallback step
559
+ */
560
+ async executeFallbackStep(step, input) {
561
+ return this.fallbackService.run({
562
+ product: this.state.product,
563
+ env: this.state.env,
564
+ tag: step.fallback,
565
+ input,
566
+ });
567
+ }
568
+ /**
569
+ * Execute a child workflow step
570
+ */
571
+ async executeChildWorkflowStep(step, input) {
572
+ // Create a new executor for the child workflow
573
+ const childWorkflow = await this.productBuilder.fetchWorkflow(step.workflow);
574
+ if (!childWorkflow) {
575
+ throw new Error(`Child workflow ${step.workflow} not found`);
576
+ }
577
+ const childExecutor = new WorkflowExecutor(this.config, childWorkflow, {
578
+ product: this.state.product,
579
+ env: this.state.env,
580
+ tag: step.workflow,
581
+ input,
582
+ });
583
+ const result = await childExecutor.execute();
584
+ if (result.status !== types_1.WorkflowStatus.COMPLETED) {
585
+ throw new Error(`Child workflow failed: ${result.error}`);
586
+ }
587
+ return result.output;
588
+ }
589
+ /**
590
+ * Execute a sleep step
591
+ */
592
+ async executeSleepStep(step, input) {
593
+ var _a;
594
+ const duration = input.duration || ((_a = step.options) === null || _a === void 0 ? void 0 : _a.timeout) || 1000;
595
+ await this.sleep(duration);
596
+ }
597
+ /**
598
+ * Execute a wait for signal step
599
+ * Polls the backend API for signal delivery until received or timeout
600
+ */
601
+ async executeWaitForSignalStep(step, input) {
602
+ var _a;
603
+ const signalName = step.event;
604
+ const signals = input.signals || [signalName];
605
+ const timeout = ((_a = step.options) === null || _a === void 0 ? void 0 : _a.timeout) || 300000; // 5 min default
606
+ const startTime = Date.now();
607
+ // Store that we're waiting for these signals in state
608
+ this.state.state[`waiting_for_signal:${step.tag}`] = {
609
+ signals,
610
+ started_at: startTime,
611
+ timeout,
612
+ };
613
+ // Persist the waiting state to backend
614
+ await this.persistExecutionResult(types_1.LogEventStatus.WAITING);
615
+ return new Promise((resolve, reject) => {
616
+ // Create pending signal entry
617
+ const pendingSignal = {
618
+ signal: signalName,
619
+ resolve,
620
+ reject,
621
+ };
622
+ // Store for each signal we're waiting for
623
+ for (const sig of signals) {
624
+ this.pendingSignals.set(sig, pendingSignal);
625
+ }
626
+ // Set up timeout
627
+ if (timeout > 0) {
628
+ pendingSignal.timeout = setTimeout(() => {
629
+ // Clean up pending signals
630
+ for (const sig of signals) {
631
+ this.pendingSignals.delete(sig);
632
+ }
633
+ this.stopSignalPolling();
634
+ // Update state
635
+ delete this.state.state[`waiting_for_signal:${step.tag}`];
636
+ this.state.state[`signal_timeout:${step.tag}`] = {
637
+ signals,
638
+ timed_out_at: Date.now(),
639
+ };
640
+ reject(new Error(`Signal wait timed out after ${timeout}ms waiting for: ${signals.join(', ')}`));
641
+ }, timeout);
642
+ }
643
+ // Start polling for signals
644
+ this.startSignalPolling(signals, step.tag);
645
+ });
646
+ }
647
+ /**
648
+ * Start polling the backend for signal delivery
649
+ */
650
+ startSignalPolling(signals, stepTag) {
651
+ // Don't start multiple pollers
652
+ if (this.signalPollTimer)
653
+ return;
654
+ const poll = async () => {
655
+ var _a;
656
+ try {
657
+ // Get workflow status from backend to check for received signals
658
+ const status = await this.workflowApiService.getStatus(this.state.workflow_id, this.state.product, this.state.env, this.getAuthPayload());
659
+ if (status) {
660
+ // Check if any of the signals we're waiting for have been received
661
+ const receivedSignals = ((_a = status.state) === null || _a === void 0 ? void 0 : _a.received_signals) || {};
662
+ for (const signalName of signals) {
663
+ const signalKey = `signal:${signalName}`;
664
+ if (receivedSignals[signalKey]) {
665
+ const signalData = receivedSignals[signalKey];
666
+ const pendingSignal = this.pendingSignals.get(signalName);
667
+ if (pendingSignal) {
668
+ // Clear timeout
669
+ if (pendingSignal.timeout) {
670
+ clearTimeout(pendingSignal.timeout);
671
+ }
672
+ // Clean up
673
+ for (const sig of signals) {
674
+ this.pendingSignals.delete(sig);
675
+ }
676
+ this.stopSignalPolling();
677
+ // Update state
678
+ delete this.state.state[`waiting_for_signal:${stepTag}`];
679
+ this.state.state[`signal_received:${stepTag}`] = {
680
+ signal: signalName,
681
+ payload: signalData,
682
+ received_at: Date.now(),
683
+ };
684
+ // Resolve the promise
685
+ pendingSignal.resolve({
686
+ signal: signalName,
687
+ payload: signalData,
688
+ received_at: Date.now(),
689
+ });
690
+ return;
691
+ }
692
+ }
693
+ }
694
+ }
695
+ }
696
+ catch (error) {
697
+ // Log but continue polling - transient errors shouldn't stop us
698
+ console.error('Signal polling error:', error);
699
+ }
700
+ // Schedule next poll if we still have pending signals
701
+ if (this.pendingSignals.size > 0) {
702
+ this.signalPollTimer = setTimeout(poll, this.signalPollInterval);
703
+ }
704
+ };
705
+ // Start polling
706
+ poll();
707
+ }
708
+ /**
709
+ * Stop the signal polling timer
710
+ */
711
+ stopSignalPolling() {
712
+ if (this.signalPollTimer) {
713
+ clearTimeout(this.signalPollTimer);
714
+ this.signalPollTimer = null;
715
+ }
716
+ }
717
+ /**
718
+ * Deliver a signal to this workflow (called by external signal handler)
719
+ */
720
+ deliverSignal(signalName, payload) {
721
+ const pendingSignal = this.pendingSignals.get(signalName);
722
+ if (!pendingSignal) {
723
+ return false;
724
+ }
725
+ // Clear timeout
726
+ if (pendingSignal.timeout) {
727
+ clearTimeout(pendingSignal.timeout);
728
+ }
729
+ // Clean up all related pending signals
730
+ // (in case we were waiting for multiple signals)
731
+ for (const [key, value] of this.pendingSignals.entries()) {
732
+ if (value === pendingSignal) {
733
+ this.pendingSignals.delete(key);
734
+ }
735
+ }
736
+ this.stopSignalPolling();
737
+ // Resolve with the signal data
738
+ pendingSignal.resolve({
739
+ signal: signalName,
740
+ payload,
741
+ received_at: Date.now(),
742
+ });
743
+ return true;
744
+ }
745
+ /**
746
+ * Execute a checkpoint step
747
+ */
748
+ async executeCheckpointStep(step, input) {
749
+ // Store checkpoint data in workflow state
750
+ this.state.state[`checkpoint:${step.tag}`] = {
751
+ timestamp: Date.now(),
752
+ completed_steps: [...this.state.completed_steps],
753
+ data: input,
754
+ };
755
+ }
756
+ /**
757
+ * Execute rollback for completed steps
758
+ */
759
+ async executeRollback(failedStep, reason) {
760
+ var _a;
761
+ const rolledBackSteps = [];
762
+ const failedRollbacks = [];
763
+ // Get rollback strategy
764
+ const strategy = ((_a = this.workflow.options) === null || _a === void 0 ? void 0 : _a.rollback_strategy) || types_1.WorkflowRollbackStrategy.REVERSE_ALL;
765
+ // Determine which steps to rollback
766
+ let stepsToRollback = [];
767
+ switch (strategy) {
768
+ case types_1.WorkflowRollbackStrategy.REVERSE_ALL:
769
+ // Rollback all completed steps in reverse order
770
+ stepsToRollback = this.state.completed_steps
771
+ .slice()
772
+ .reverse()
773
+ .map((tag) => this.findStep(tag))
774
+ .filter((step) => step !== undefined);
775
+ break;
776
+ case types_1.WorkflowRollbackStrategy.REVERSE_CRITICAL:
777
+ // Only rollback steps marked as critical
778
+ stepsToRollback = this.state.completed_steps
779
+ .slice()
780
+ .reverse()
781
+ .map((tag) => this.findStep(tag))
782
+ .filter((step) => { var _a; return step !== undefined && ((_a = step.options) === null || _a === void 0 ? void 0 : _a.critical) === true; });
783
+ break;
784
+ case types_1.WorkflowRollbackStrategy.NONE:
785
+ // No rollback
786
+ return { success: true, rolled_back_steps: [], reason };
787
+ }
788
+ // Execute rollback for each step
789
+ for (const step of stepsToRollback) {
790
+ if (!step.rollback) {
791
+ continue; // No rollback defined for this step
792
+ }
793
+ try {
794
+ const stepOutput = this.state.steps[step.tag];
795
+ await this.executeRollbackHandler(step.rollback, stepOutput);
796
+ rolledBackSteps.push(step.tag);
797
+ }
798
+ catch (error) {
799
+ if (!step.rollback.continue_on_failure) {
800
+ failedRollbacks.push({ tag: step.tag, error: error.message });
801
+ // Stop rollback if continue_on_failure is not set
802
+ break;
803
+ }
804
+ failedRollbacks.push({ tag: step.tag, error: error.message });
805
+ }
806
+ }
807
+ return {
808
+ success: failedRollbacks.length === 0,
809
+ rolled_back_steps: rolledBackSteps,
810
+ failed_steps: failedRollbacks.length > 0 ? failedRollbacks : undefined,
811
+ reason,
812
+ };
813
+ }
814
+ /**
815
+ * Execute a rollback handler
816
+ */
817
+ async executeRollbackHandler(rollback, stepOutput) {
818
+ var _a, _b, _c;
819
+ if (!rollback)
820
+ return;
821
+ // Resolve rollback input, including step output references
822
+ const resolvedInput = this.resolveInput(rollback.input || {}, stepOutput);
823
+ switch (rollback.type) {
824
+ case types_1.WorkflowStepType.ACTION:
825
+ await this.processorService.processAction({
826
+ product: this.state.product,
827
+ env: this.state.env,
828
+ app: rollback.app,
829
+ action: rollback.event,
830
+ input: resolvedInput,
831
+ retries: (_a = rollback.retries) !== null && _a !== void 0 ? _a : 0,
832
+ });
833
+ break;
834
+ case types_1.WorkflowStepType.DATABASE_ACTION:
835
+ await this.databaseService.execute({
836
+ product: this.state.product,
837
+ env: this.state.env,
838
+ database: rollback.database,
839
+ action: rollback.event,
840
+ input: resolvedInput,
841
+ });
842
+ break;
843
+ case types_1.WorkflowStepType.NOTIFICATION:
844
+ const notifEvent = `${rollback.notification}:${rollback.event}`;
845
+ await this.processorService.processNotification({
846
+ product: this.state.product,
847
+ env: this.state.env,
848
+ event: notifEvent,
849
+ input: resolvedInput,
850
+ retries: (_b = rollback.retries) !== null && _b !== void 0 ? _b : 0,
851
+ });
852
+ break;
853
+ case types_1.WorkflowStepType.STORAGE:
854
+ const storageEvent = `${rollback.storage}:${rollback.event}`;
855
+ await this.processorService.processStorage({
856
+ product: this.state.product,
857
+ env: this.state.env,
858
+ event: storageEvent,
859
+ input: resolvedInput,
860
+ retries: (_c = rollback.retries) !== null && _c !== void 0 ? _c : 0,
861
+ });
862
+ break;
863
+ case types_1.WorkflowStepType.PUBLISH:
864
+ const pubEvent = `${rollback.broker}:${rollback.event}`;
865
+ await this.processorService.processMessageBrokerPublish({
866
+ product: this.state.product,
867
+ env: this.state.env,
868
+ event: pubEvent,
869
+ input: resolvedInput,
870
+ });
871
+ break;
872
+ }
873
+ }
874
+ /**
875
+ * Resolve input by replacing data references
876
+ */
877
+ resolveInput(input, stepOutput) {
878
+ const resolved = {};
879
+ for (const [key, value] of Object.entries(input)) {
880
+ resolved[key] = this.resolveValue(value, stepOutput);
881
+ }
882
+ return resolved;
883
+ }
884
+ /**
885
+ * Resolve a single value, handling data references
886
+ */
887
+ resolveValue(value, stepOutput) {
888
+ if (typeof value === 'string') {
889
+ return this.resolveStringValue(value, stepOutput);
890
+ }
891
+ if (Array.isArray(value)) {
892
+ return value.map((item) => this.resolveValue(item, stepOutput));
893
+ }
894
+ if (value && typeof value === 'object') {
895
+ return this.resolveInput(value, stepOutput);
896
+ }
897
+ return value;
898
+ }
899
+ /**
900
+ * Resolve string value with data reference syntax
901
+ * Supports: $Input{field}, $Step{tag}{field}, $State{key}, $StepOutput{field}
902
+ */
903
+ resolveStringValue(value, stepOutput) {
904
+ // Check for $Input{field}
905
+ const inputMatch = value.match(/^\$Input\{(.+)\}$/);
906
+ if (inputMatch) {
907
+ return this.getNestedValue(this.state.input, inputMatch[1]);
908
+ }
909
+ // Check for $Step{tag}{field}
910
+ const stepMatch = value.match(/^\$Step\{(.+)\}\{(.+)\}$/);
911
+ if (stepMatch) {
912
+ const [, stepTag, field] = stepMatch;
913
+ const stepData = this.state.steps[stepTag];
914
+ if (stepData) {
915
+ return this.getNestedValue(stepData, field);
916
+ }
917
+ return undefined;
918
+ }
919
+ // Check for $State{key}
920
+ const stateMatch = value.match(/^\$State\{(.+)\}$/);
921
+ if (stateMatch) {
922
+ return this.state.state[stateMatch[1]];
923
+ }
924
+ // Check for $StepOutput{field} - reference to the step output being used in rollback
925
+ const outputMatch = value.match(/^\$StepOutput\{(.+)\}$/);
926
+ if (outputMatch && stepOutput) {
927
+ return this.getNestedValue(stepOutput, outputMatch[1]);
928
+ }
929
+ // Check for inline references like "text with $Input{field} in it"
930
+ return value.replace(/\$Input\{([^}]+)\}/g, (_, field) => {
931
+ const val = this.getNestedValue(this.state.input, field);
932
+ return String(val !== null && val !== void 0 ? val : '');
933
+ }).replace(/\$Step\{([^}]+)\}\{([^}]+)\}/g, (_, stepTag, field) => {
934
+ const stepData = this.state.steps[stepTag];
935
+ if (stepData) {
936
+ const val = this.getNestedValue(stepData, field);
937
+ return String(val !== null && val !== void 0 ? val : '');
938
+ }
939
+ return '';
940
+ });
941
+ }
942
+ /**
943
+ * Get nested value from object using dot notation
944
+ */
945
+ getNestedValue(obj, path) {
946
+ const keys = path.split('.');
947
+ let current = obj;
948
+ for (const key of keys) {
949
+ if (current === null || current === undefined) {
950
+ return undefined;
951
+ }
952
+ current = current[key];
953
+ }
954
+ return current;
955
+ }
956
+ /**
957
+ * Get ordered steps respecting dependencies
958
+ */
959
+ getOrderedSteps() {
960
+ const steps = this.workflow.steps;
961
+ const ordered = [];
962
+ const visited = new Set();
963
+ const visiting = new Set();
964
+ const visit = (step) => {
965
+ if (visited.has(step.tag))
966
+ return;
967
+ if (visiting.has(step.tag)) {
968
+ throw new Error(`Circular dependency detected at step ${step.tag}`);
969
+ }
970
+ visiting.add(step.tag);
971
+ // Visit dependencies first
972
+ if (step.depends_on) {
973
+ for (const depTag of step.depends_on) {
974
+ const depStep = steps.find((s) => s.tag === depTag);
975
+ if (depStep) {
976
+ visit(depStep);
977
+ }
978
+ }
979
+ }
980
+ visiting.delete(step.tag);
981
+ visited.add(step.tag);
982
+ ordered.push(step);
983
+ };
984
+ for (const step of steps) {
985
+ visit(step);
986
+ }
987
+ return ordered;
988
+ }
989
+ /**
990
+ * Find a step by tag
991
+ */
992
+ findStep(tag) {
993
+ return this.workflow.steps.find((s) => s.tag === tag);
994
+ }
995
+ /**
996
+ * Evaluate a condition string
997
+ */
998
+ evaluateCondition(condition) {
999
+ // Simple condition evaluation
1000
+ // Supports: $Step{tag}{field} == value, $Input{field} != value
1001
+ try {
1002
+ // Replace references with actual values
1003
+ const resolved = this.resolveStringValue(condition);
1004
+ // Handle comparison operators
1005
+ if (typeof resolved === 'string') {
1006
+ const eqMatch = resolved.match(/(.+)\s*==\s*(.+)/);
1007
+ if (eqMatch) {
1008
+ const left = eqMatch[1].trim();
1009
+ const right = eqMatch[2].trim().replace(/^["']|["']$/g, '');
1010
+ return String(left) === String(right);
1011
+ }
1012
+ const neqMatch = resolved.match(/(.+)\s*!=\s*(.+)/);
1013
+ if (neqMatch) {
1014
+ const left = neqMatch[1].trim();
1015
+ const right = neqMatch[2].trim().replace(/^["']|["']$/g, '');
1016
+ return String(left) !== String(right);
1017
+ }
1018
+ }
1019
+ // Truthy check
1020
+ return Boolean(resolved);
1021
+ }
1022
+ catch (_a) {
1023
+ return false;
1024
+ }
1025
+ }
1026
+ /**
1027
+ * Determine workflow output
1028
+ */
1029
+ determineWorkflowOutput() {
1030
+ // If workflow has explicit output mapping, use it
1031
+ if (this.workflow.output) {
1032
+ return this.resolveInput(this.workflow.output);
1033
+ }
1034
+ // Otherwise, return last step output
1035
+ const lastStep = this.state.completed_steps[this.state.completed_steps.length - 1];
1036
+ return lastStep ? this.state.steps[lastStep] : {};
1037
+ }
1038
+ /**
1039
+ * Sleep for specified duration
1040
+ */
1041
+ sleep(ms) {
1042
+ return new Promise((resolve) => setTimeout(resolve, ms));
1043
+ }
1044
+ /**
1045
+ * Resume a workflow from a previous state
1046
+ *
1047
+ * @param options - Resume options including completed steps, state, and starting point
1048
+ */
1049
+ async resume(options) {
1050
+ var _a, _b, _c, _d, _e, _f;
1051
+ const startTime = Date.now();
1052
+ try {
1053
+ // Initialize product builder with the product
1054
+ await this.productBuilder.initializeProductByTag(this.state.product);
1055
+ this.productId = this.productBuilder.fetchProductId();
1056
+ // Initialize logging after we have product ID
1057
+ this.initializeLogging();
1058
+ // Restore previous state
1059
+ this.state.completed_steps = options.completed_steps || [];
1060
+ this.state.state = options.state || {};
1061
+ // Restore step outputs if provided
1062
+ if (options.step_outputs) {
1063
+ this.state.steps = Object.assign(Object.assign({}, this.state.steps), options.step_outputs);
1064
+ }
1065
+ this.state.status = types_1.WorkflowStatus.RUNNING;
1066
+ // Get steps in execution order
1067
+ const orderedSteps = this.getOrderedSteps();
1068
+ // Find starting point
1069
+ let startIndex = 0;
1070
+ if (options.from_checkpoint) {
1071
+ // Find the step after the checkpoint
1072
+ const checkpointIndex = orderedSteps.findIndex((s) => s.type === types_1.WorkflowStepType.CHECKPOINT && s.tag === options.from_checkpoint);
1073
+ if (checkpointIndex >= 0) {
1074
+ startIndex = checkpointIndex + 1;
1075
+ }
1076
+ }
1077
+ else if (options.from_step) {
1078
+ // Start from the specified step
1079
+ startIndex = orderedSteps.findIndex((s) => s.tag === options.from_step);
1080
+ if (startIndex === -1) {
1081
+ throw new Error(`Step ${options.from_step} not found`);
1082
+ }
1083
+ }
1084
+ else {
1085
+ // Start after last completed step
1086
+ const lastCompleted = this.state.completed_steps[this.state.completed_steps.length - 1];
1087
+ if (lastCompleted) {
1088
+ const lastIndex = orderedSteps.findIndex((s) => s.tag === lastCompleted);
1089
+ startIndex = lastIndex + 1;
1090
+ }
1091
+ }
1092
+ // Execute remaining steps
1093
+ for (let i = startIndex; i < orderedSteps.length; i++) {
1094
+ const step = orderedSteps[i];
1095
+ // Skip if already completed or in skip list
1096
+ if (this.state.completed_steps.includes(step.tag)) {
1097
+ this.logStepEvent(step, `Step ${step.tag} - skipped (already completed)`, logs_types_1.LogEventStatus.SUCCESS, { skipped: true });
1098
+ continue;
1099
+ }
1100
+ if ((_a = options.skip_steps) === null || _a === void 0 ? void 0 : _a.includes(step.tag)) {
1101
+ this.logStepEvent(step, `Step ${step.tag} - skipped (in skip list)`, logs_types_1.LogEventStatus.SUCCESS, { skipped: true });
1102
+ continue;
1103
+ }
1104
+ // Check step condition if present
1105
+ if (step.condition && !this.evaluateCondition(step.condition)) {
1106
+ this.logStepEvent(step, `Step ${step.tag} - skipped (condition not met)`, logs_types_1.LogEventStatus.SUCCESS, { skipped: true });
1107
+ continue;
1108
+ }
1109
+ this.state.current_step = step.tag;
1110
+ // Log step start
1111
+ this.logStepEvent(step, `Step ${step.tag} - started`, logs_types_1.LogEventStatus.PROCESSING);
1112
+ const result = await this.executeStep(step);
1113
+ // Log step completion
1114
+ this.logStepEvent(step, result.success ? `Step ${step.tag} - completed` : `Step ${step.tag} - failed`, result.success ? logs_types_1.LogEventStatus.SUCCESS : logs_types_1.LogEventStatus.FAIL, { duration: result.duration, error: result.error });
1115
+ // Persist step result to backend
1116
+ await this.persistStepResult(step, result.success ? types_1.LogEventStatus.SUCCESS : types_1.LogEventStatus.FAIL, result.output, result.error, result.duration);
1117
+ if (!result.success) {
1118
+ this.state.failed_step = step.tag;
1119
+ // Check if step allows failure
1120
+ if ((_b = step.options) === null || _b === void 0 ? void 0 : _b.allow_fail) {
1121
+ this.state.steps[step.tag] = { error: result.error };
1122
+ continue;
1123
+ }
1124
+ // Check if step is optional
1125
+ if ((_c = step.options) === null || _c === void 0 ? void 0 : _c.optional) {
1126
+ continue;
1127
+ }
1128
+ // Trigger rollback
1129
+ this.state.status = types_1.WorkflowStatus.ROLLING_BACK;
1130
+ const rollbackResult = await this.executeRollback(step.tag, result.error || 'Step failed');
1131
+ await this.persistExecutionResult(types_1.LogEventStatus.FAIL, undefined, result.error);
1132
+ // Publish logs
1133
+ await ((_d = this.logService) === null || _d === void 0 ? void 0 : _d.publish());
1134
+ return {
1135
+ status: types_1.WorkflowStatus.ROLLED_BACK,
1136
+ workflow_id: this.state.workflow_id,
1137
+ error: result.error,
1138
+ execution_time: Date.now() - startTime,
1139
+ completed_steps: this.state.completed_steps,
1140
+ failed_step: step.tag,
1141
+ rollback_info: {
1142
+ triggered_by: step.tag,
1143
+ reason: result.error || 'Step failed',
1144
+ rolled_back_steps: rollbackResult.rolled_back_steps,
1145
+ failed_rollbacks: rollbackResult.failed_steps,
1146
+ },
1147
+ };
1148
+ }
1149
+ // Store step output and mark as completed
1150
+ this.state.steps[step.tag] = result.output;
1151
+ this.state.completed_steps.push(step.tag);
1152
+ }
1153
+ this.state.status = types_1.WorkflowStatus.COMPLETED;
1154
+ this.state.ended_at = Date.now();
1155
+ const output = this.determineWorkflowOutput();
1156
+ await this.persistExecutionResult(types_1.LogEventStatus.SUCCESS, output);
1157
+ // Publish logs
1158
+ await ((_e = this.logService) === null || _e === void 0 ? void 0 : _e.publish());
1159
+ return {
1160
+ status: types_1.WorkflowStatus.COMPLETED,
1161
+ workflow_id: this.state.workflow_id,
1162
+ output: output,
1163
+ execution_time: Date.now() - startTime,
1164
+ completed_steps: this.state.completed_steps,
1165
+ };
1166
+ }
1167
+ catch (error) {
1168
+ this.state.status = types_1.WorkflowStatus.FAILED;
1169
+ this.state.ended_at = Date.now();
1170
+ await this.persistExecutionResult(types_1.LogEventStatus.FAIL, undefined, error.message);
1171
+ // Publish logs
1172
+ await ((_f = this.logService) === null || _f === void 0 ? void 0 : _f.publish());
1173
+ return {
1174
+ status: types_1.WorkflowStatus.FAILED,
1175
+ workflow_id: this.state.workflow_id,
1176
+ error: error.message || 'Workflow resume failed',
1177
+ execution_time: Date.now() - startTime,
1178
+ completed_steps: this.state.completed_steps,
1179
+ failed_step: this.state.current_step,
1180
+ };
1181
+ }
1182
+ }
1183
+ }
1184
+ exports.WorkflowExecutor = WorkflowExecutor;
1185
+ exports.default = WorkflowExecutor;
1186
+ //# sourceMappingURL=workflow-executor.js.map