@ductape/sdk 0.0.4-v6 → 0.0.4-v60

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