@ductape/sdk 0.0.4-v9 → 0.0.4-v91

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 (998) 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 +322 -0
  35. package/dist/api/services/processorApi.service.js +252 -0
  36. package/dist/api/services/processorApi.service.js.map +1 -1
  37. package/dist/api/services/productsApi.service.d.ts +105 -0
  38. package/dist/api/services/productsApi.service.js +139 -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 +62 -0
  53. package/dist/api/urls.js +87 -17
  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 +297 -0
  96. package/dist/brokers/brokers.service.js +797 -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 +316 -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 +229 -0
  129. package/dist/cache/cache.manager.js +460 -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 +423 -0
  153. package/dist/database/adapters/base.adapter.js +260 -0
  154. package/dist/database/adapters/base.adapter.js.map +1 -0
  155. package/dist/database/adapters/cassandra.adapter.d.ts +92 -0
  156. package/dist/database/adapters/cassandra.adapter.js +1091 -0
  157. package/dist/database/adapters/cassandra.adapter.js.map +1 -0
  158. package/dist/database/adapters/dynamodb.adapter.d.ts +110 -0
  159. package/dist/database/adapters/dynamodb.adapter.js +1564 -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 +121 -0
  168. package/dist/database/adapters/mongodb.adapter.js +1284 -0
  169. package/dist/database/adapters/mongodb.adapter.js.map +1 -0
  170. package/dist/database/adapters/mysql.adapter.d.ts +86 -0
  171. package/dist/database/adapters/mysql.adapter.js +1371 -0
  172. package/dist/database/adapters/mysql.adapter.js.map +1 -0
  173. package/dist/database/adapters/postgresql.adapter.d.ts +90 -0
  174. package/dist/database/adapters/postgresql.adapter.js +1487 -0
  175. package/dist/database/adapters/postgresql.adapter.js.map +1 -0
  176. package/dist/database/databases.service.d.ts +1408 -0
  177. package/dist/database/databases.service.js +2953 -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 +136 -0
  186. package/dist/database/migrations/migration-engine.js +1421 -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 +69 -0
  195. package/dist/database/operators/query-builder.js +447 -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 +638 -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 +412 -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 +1588 -0
  271. package/dist/graph/adapters/arangodb.adapter.js.map +1 -0
  272. package/dist/graph/adapters/base.adapter.d.ts +264 -0
  273. package/dist/graph/adapters/base.adapter.js +156 -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 +1452 -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 +1317 -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 +1369 -0
  286. package/dist/graph/adapters/neptune.adapter.js.map +1 -0
  287. package/dist/graph/graphs.service.d.ts +568 -0
  288. package/dist/graph/graphs.service.js +1948 -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 +3654 -289
  343. package/dist/index.js +5066 -669
  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/utils/inputs.utils.create.js +1 -1
  350. package/dist/inputs/utils/inputs.utils.create.js.map +1 -1
  351. package/dist/jobs/index.d.ts +38 -0
  352. package/dist/jobs/index.js +50 -0
  353. package/dist/jobs/index.js.map +1 -0
  354. package/dist/jobs/jobs.service.d.ts +154 -0
  355. package/dist/jobs/jobs.service.js +491 -0
  356. package/dist/jobs/jobs.service.js.map +1 -0
  357. package/dist/jobs/jobs.state.d.ts +113 -0
  358. package/dist/jobs/jobs.state.js +447 -0
  359. package/dist/jobs/jobs.state.js.map +1 -0
  360. package/dist/jobs/types.d.ts +449 -0
  361. package/dist/jobs/types.js +74 -0
  362. package/dist/jobs/types.js.map +1 -0
  363. package/dist/logs/logs.service.js +6 -2
  364. package/dist/logs/logs.service.js.map +1 -1
  365. package/dist/logs/logs.types.d.ts +19 -1
  366. package/dist/logs/logs.types.js +6 -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 +265 -0
  378. package/dist/notifications/notifications.service.js +862 -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 +402 -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 +117 -73
  422. package/dist/processor/services/processor.service.js +1557 -1276
  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.js +32 -20
  431. package/dist/processor/utils/processor.utils.js.map +1 -1
  432. package/dist/processor/utils/request.utils.d.ts +20 -0
  433. package/dist/processor/utils/request.utils.js +113 -0
  434. package/dist/processor/utils/request.utils.js.map +1 -0
  435. package/dist/products/services/products.service.d.ts +365 -75
  436. package/dist/products/services/products.service.js +2809 -414
  437. package/dist/products/services/products.service.js.map +1 -1
  438. package/dist/products/utils/string.utils.d.ts +1 -1
  439. package/dist/products/utils/string.utils.js +14 -2
  440. package/dist/products/utils/string.utils.js.map +1 -1
  441. package/dist/products/validators/index.d.ts +7 -1
  442. package/dist/products/validators/index.js +16 -1
  443. package/dist/products/validators/index.js.map +1 -1
  444. package/dist/products/validators/joi-validators/create.productAgent.validator.d.ts +3 -0
  445. package/dist/products/validators/joi-validators/create.productAgent.validator.js +266 -0
  446. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -0
  447. package/dist/products/validators/joi-validators/create.productDatabase.validator.js +5 -0
  448. package/dist/products/validators/joi-validators/create.productDatabase.validator.js.map +1 -1
  449. package/dist/products/validators/joi-validators/create.productEnv.validator.js +1 -0
  450. package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -1
  451. package/dist/products/validators/joi-validators/create.productGraph.validator.js +89 -0
  452. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -0
  453. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
  454. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
  455. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
  456. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +81 -25
  457. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -1
  458. package/dist/products/validators/joi-validators/create.productModel.validator.d.ts +3 -0
  459. package/dist/products/validators/joi-validators/create.productModel.validator.js +132 -0
  460. package/dist/products/validators/joi-validators/create.productModel.validator.js.map +1 -0
  461. package/dist/products/validators/joi-validators/create.productNotification.validator.js +133 -45
  462. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -1
  463. package/dist/products/validators/joi-validators/create.productStorage.validator.js +77 -18
  464. package/dist/products/validators/joi-validators/create.productStorage.validator.js.map +1 -1
  465. package/dist/products/validators/joi-validators/create.productVector.validator.d.ts +3 -0
  466. package/dist/products/validators/joi-validators/create.productVector.validator.js +135 -0
  467. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -0
  468. package/dist/products/validators/joi-validators/update.dataValue.validator.js +1 -0
  469. package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -1
  470. package/dist/products/validators/joi-validators/update.productDatabase.validator.js +5 -0
  471. package/dist/products/validators/joi-validators/update.productDatabase.validator.js.map +1 -1
  472. package/dist/products/validators/joi-validators/update.productEnv.validator.js +3 -0
  473. package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -1
  474. package/dist/products/validators/joi-validators/update.productGraph.validator.js +88 -0
  475. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -0
  476. package/dist/resilience/fallback.service.d.ts +140 -0
  477. package/dist/resilience/fallback.service.js +764 -0
  478. package/dist/resilience/fallback.service.js.map +1 -0
  479. package/dist/resilience/healthcheck.service.d.ts +159 -0
  480. package/dist/resilience/healthcheck.service.js +943 -0
  481. package/dist/resilience/healthcheck.service.js.map +1 -0
  482. package/dist/resilience/index.d.ts +104 -0
  483. package/dist/resilience/index.js +140 -0
  484. package/dist/resilience/index.js.map +1 -0
  485. package/dist/resilience/quota.service.d.ts +82 -0
  486. package/dist/resilience/quota.service.js +516 -0
  487. package/dist/resilience/quota.service.js.map +1 -0
  488. package/dist/resilience/resilience.service.d.ts +98 -0
  489. package/dist/resilience/resilience.service.js +560 -0
  490. package/dist/resilience/resilience.service.js.map +1 -0
  491. package/dist/resilience/types/index.d.ts +513 -0
  492. package/dist/resilience/types/index.js +29 -0
  493. package/dist/resilience/types/index.js.map +1 -0
  494. package/dist/secrets/index.d.ts +10 -0
  495. package/dist/secrets/index.js +33 -0
  496. package/dist/secrets/index.js.map +1 -0
  497. package/dist/secrets/secrets.resolver.d.ts +52 -0
  498. package/dist/secrets/secrets.resolver.js +233 -0
  499. package/dist/secrets/secrets.resolver.js.map +1 -0
  500. package/dist/secrets/secrets.service.d.ts +93 -0
  501. package/dist/secrets/secrets.service.js +258 -0
  502. package/dist/secrets/secrets.service.js.map +1 -0
  503. package/dist/secrets/secrets.types.d.ts +188 -0
  504. package/dist/secrets/secrets.types.js +87 -0
  505. package/dist/secrets/secrets.types.js.map +1 -0
  506. package/dist/sessions/index.d.ts +50 -0
  507. package/dist/sessions/index.js +93 -0
  508. package/dist/sessions/index.js.map +1 -0
  509. package/dist/sessions/sessions.helper.d.ts +68 -0
  510. package/dist/sessions/sessions.helper.js +116 -0
  511. package/dist/sessions/sessions.helper.js.map +1 -0
  512. package/dist/sessions/sessions.resolver.d.ts +157 -0
  513. package/dist/sessions/sessions.resolver.js +374 -0
  514. package/dist/sessions/sessions.resolver.js.map +1 -0
  515. package/dist/sessions/sessions.service.d.ts +178 -0
  516. package/dist/sessions/sessions.service.js +923 -0
  517. package/dist/sessions/sessions.service.js.map +1 -0
  518. package/dist/sessions/types/index.d.ts +298 -0
  519. package/dist/sessions/types/index.js +6 -0
  520. package/dist/sessions/types/index.js.map +1 -0
  521. package/dist/storage/index.d.ts +66 -0
  522. package/dist/storage/index.js +99 -0
  523. package/dist/storage/index.js.map +1 -0
  524. package/dist/storage/storage.service.d.ts +174 -0
  525. package/dist/storage/storage.service.js +757 -0
  526. package/dist/storage/storage.service.js.map +1 -0
  527. package/dist/storage/types/index.d.ts +267 -0
  528. package/dist/storage/types/index.js +6 -0
  529. package/dist/storage/types/index.js.map +1 -0
  530. package/dist/storage/utils/storage.util.d.ts +62 -0
  531. package/dist/storage/utils/storage.util.js +593 -0
  532. package/dist/storage/utils/storage.util.js.map +1 -0
  533. package/dist/test/index.d.ts +3 -0
  534. package/dist/test/index.js +11 -0
  535. package/dist/test/index.js.map +1 -0
  536. package/dist/test/test.appBuilder.d.ts +0 -1
  537. package/dist/test/test.appBuilder.js +0 -15
  538. package/dist/test/test.appBuilder.js.map +1 -1
  539. package/dist/test/test.broker.kafka.js +172 -0
  540. package/dist/test/test.broker.kafka.js.map +1 -0
  541. package/dist/test/test.broker.nats.js +193 -0
  542. package/dist/test/test.broker.nats.js.map +1 -0
  543. package/dist/test/test.broker.pubsub.js +171 -0
  544. package/dist/test/test.broker.pubsub.js.map +1 -0
  545. package/dist/test/test.broker.rabbitmq.js +164 -0
  546. package/dist/test/test.broker.rabbitmq.js.map +1 -0
  547. package/dist/test/test.broker.redis.js +168 -0
  548. package/dist/test/test.broker.redis.js.map +1 -0
  549. package/dist/test/test.broker.sqs.d.ts +1 -0
  550. package/dist/test/test.broker.sqs.js +158 -0
  551. package/dist/test/test.broker.sqs.js.map +1 -0
  552. package/dist/test/test.caches.d.ts +1 -0
  553. package/dist/test/test.caches.js +231 -0
  554. package/dist/test/test.caches.js.map +1 -0
  555. package/dist/test/test.database.d.ts +1 -0
  556. package/dist/test/test.database.dynamo.d.ts +1 -0
  557. package/dist/test/test.database.dynamo.js +265 -0
  558. package/dist/test/test.database.dynamo.js.map +1 -0
  559. package/dist/test/test.database.js +140 -0
  560. package/dist/test/test.database.js.map +1 -0
  561. package/dist/test/test.database.mongo.d.ts +1 -0
  562. package/dist/test/test.database.mongo.js +371 -0
  563. package/dist/test/test.database.mongo.js.map +1 -0
  564. package/dist/test/test.database.mysql.d.ts +1 -0
  565. package/dist/test/test.database.mysql.js +415 -0
  566. package/dist/test/test.database.mysql.js.map +1 -0
  567. package/dist/test/test.database.postgres.d.ts +1 -0
  568. package/dist/test/test.database.postgres.js +412 -0
  569. package/dist/test/test.database.postgres.js.map +1 -0
  570. package/dist/test/test.email.brevo.d.ts +1 -0
  571. package/dist/test/test.email.brevo.js +326 -0
  572. package/dist/test/test.email.brevo.js.map +1 -0
  573. package/dist/test/test.email.mailgun.d.ts +1 -0
  574. package/dist/test/test.email.mailgun.js +352 -0
  575. package/dist/test/test.email.mailgun.js.map +1 -0
  576. package/dist/test/test.email.postmark.d.ts +1 -0
  577. package/dist/test/test.email.postmark.js +316 -0
  578. package/dist/test/test.email.postmark.js.map +1 -0
  579. package/dist/test/test.email.sendgrid.d.ts +1 -0
  580. package/dist/test/test.email.sendgrid.js +365 -0
  581. package/dist/test/test.email.sendgrid.js.map +1 -0
  582. package/dist/test/test.email.smtp.d.ts +1 -0
  583. package/dist/test/test.email.smtp.js +323 -0
  584. package/dist/test/test.email.smtp.js.map +1 -0
  585. package/dist/test/test.graph.arangodb.d.ts +1 -0
  586. package/dist/test/test.graph.arangodb.js +358 -0
  587. package/dist/test/test.graph.arangodb.js.map +1 -0
  588. package/dist/test/test.graph.memgraph.d.ts +1 -0
  589. package/dist/test/test.graph.memgraph.js +320 -0
  590. package/dist/test/test.graph.memgraph.js.map +1 -0
  591. package/dist/test/test.graph.neo4j.d.ts +1 -0
  592. package/dist/test/test.graph.neo4j.js +218 -0
  593. package/dist/test/test.graph.neo4j.js.map +1 -0
  594. package/dist/test/test.graph.neptune.d.ts +1 -0
  595. package/dist/test/test.graph.neptune.js +331 -0
  596. package/dist/test/test.graph.neptune.js.map +1 -0
  597. package/dist/test/test.health.js +1 -0
  598. package/dist/test/test.health.js.map +1 -0
  599. package/dist/test/test.import.d.ts +0 -1
  600. package/dist/test/test.import.js +0 -1459
  601. package/dist/test/test.import.js.map +1 -1
  602. package/dist/test/test.import.openapi.d.ts +0 -1
  603. package/dist/test/test.import.openapi.js +0 -75
  604. package/dist/test/test.import.openapi.js.map +1 -1
  605. package/dist/test/test.imports.js +14 -55
  606. package/dist/test/test.imports.js.map +1 -1
  607. package/dist/test/test.logs.d.ts +0 -1
  608. package/dist/test/test.logs.js +0 -17
  609. package/dist/test/test.logs.js.map +1 -1
  610. package/dist/test/test.notifications.d.ts +1 -0
  611. package/dist/test/test.notifications.js +198 -0
  612. package/dist/test/test.notifications.js.map +1 -0
  613. package/dist/test/test.notifiers.js +1 -0
  614. package/dist/test/test.notifiers.js.map +1 -0
  615. package/dist/test/test.processor.d.ts +0 -1
  616. package/dist/test/test.processor.js +0 -122
  617. package/dist/test/test.processor.js.map +1 -1
  618. package/dist/test/test.productBuilder.d.ts +0 -1
  619. package/dist/test/test.productBuilder.js +0 -660
  620. package/dist/test/test.productBuilder.js.map +1 -1
  621. package/dist/test/test.products.js +1 -0
  622. package/dist/test/test.products.js.map +1 -0
  623. package/dist/test/test.push.expo.d.ts +1 -0
  624. package/dist/test/test.push.expo.js +442 -0
  625. package/dist/test/test.push.expo.js.map +1 -0
  626. package/dist/test/test.push.firebase.d.ts +1 -0
  627. package/dist/test/test.push.firebase.js +409 -0
  628. package/dist/test/test.push.firebase.js.map +1 -0
  629. package/dist/test/test.session.d.ts +1 -0
  630. package/dist/test/test.session.js +299 -0
  631. package/dist/test/test.session.js.map +1 -0
  632. package/dist/test/test.sms.nexmo.d.ts +1 -0
  633. package/dist/test/test.sms.nexmo.js +278 -0
  634. package/dist/test/test.sms.nexmo.js.map +1 -0
  635. package/dist/test/test.sms.twilio.d.ts +1 -0
  636. package/dist/test/test.sms.twilio.js +275 -0
  637. package/dist/test/test.sms.twilio.js.map +1 -0
  638. package/dist/test/test.storage.d.ts +1 -0
  639. package/dist/test/test.storage.js +202 -0
  640. package/dist/test/test.storage.js.map +1 -0
  641. package/dist/test/test.triggers.d.ts +1 -0
  642. package/dist/test/test.triggers.js +314 -0
  643. package/dist/test/test.triggers.js.map +1 -0
  644. package/dist/test/test.vector.pinecone.d.ts +1 -0
  645. package/dist/test/test.vector.pinecone.js +238 -0
  646. package/dist/test/test.vector.pinecone.js.map +1 -0
  647. package/dist/test/test.vector.qdrant.d.ts +1 -0
  648. package/dist/test/test.vector.qdrant.js +307 -0
  649. package/dist/test/test.vector.qdrant.js.map +1 -0
  650. package/dist/test/test.vector.weaviate.d.ts +1 -0
  651. package/dist/test/test.vector.weaviate.js +325 -0
  652. package/dist/test/test.vector.weaviate.js.map +1 -0
  653. package/dist/types/appBuilder.types.d.ts +9 -2
  654. package/dist/types/enums.d.ts +11 -1
  655. package/dist/types/enums.js +10 -0
  656. package/dist/types/enums.js.map +1 -1
  657. package/dist/types/index.types.d.ts +4 -7
  658. package/dist/types/index.types.js +0 -1
  659. package/dist/types/index.types.js.map +1 -1
  660. package/dist/types/inputs.types.js +1 -1
  661. package/dist/types/inputs.types.js.map +1 -1
  662. package/dist/types/pricing.types.d.ts +4 -0
  663. package/dist/types/pricing.types.js +3 -0
  664. package/dist/types/pricing.types.js.map +1 -0
  665. package/dist/types/processor.types.d.ts +214 -33
  666. package/dist/types/processor.types.js +9 -1
  667. package/dist/types/processor.types.js.map +1 -1
  668. package/dist/types/productsBuilder.types.d.ts +978 -23
  669. package/dist/types/productsBuilder.types.js +210 -3
  670. package/dist/types/productsBuilder.types.js.map +1 -1
  671. package/dist/types/request-tracker.interface.js +1 -0
  672. package/dist/types/request-tracker.interface.js.map +1 -0
  673. package/dist/types/requests.types.d.ts +2 -0
  674. package/dist/utils/constants.d.ts +1 -0
  675. package/dist/utils/constants.js +5 -0
  676. package/dist/utils/constants.js.map +1 -0
  677. package/dist/utils/index.d.ts +0 -2
  678. package/dist/utils/index.js +24 -52
  679. package/dist/utils/index.js.map +1 -1
  680. package/dist/vector/actions/action-manager.d.ts +140 -0
  681. package/dist/vector/actions/action-manager.js +356 -0
  682. package/dist/vector/actions/action-manager.js.map +1 -0
  683. package/dist/vector/adapters/base.adapter.d.ts +169 -0
  684. package/dist/vector/adapters/base.adapter.js +218 -0
  685. package/dist/vector/adapters/base.adapter.js.map +1 -0
  686. package/dist/vector/adapters/index.d.ts +10 -0
  687. package/dist/vector/adapters/index.js +19 -0
  688. package/dist/vector/adapters/index.js.map +1 -0
  689. package/dist/vector/adapters/memory.adapter.d.ts +85 -0
  690. package/dist/vector/adapters/memory.adapter.js +505 -0
  691. package/dist/vector/adapters/memory.adapter.js.map +1 -0
  692. package/dist/vector/adapters/pinecone.adapter.d.ts +52 -0
  693. package/dist/vector/adapters/pinecone.adapter.js +433 -0
  694. package/dist/vector/adapters/pinecone.adapter.js.map +1 -0
  695. package/dist/vector/adapters/qdrant.adapter.d.ts +56 -0
  696. package/dist/vector/adapters/qdrant.adapter.js +442 -0
  697. package/dist/vector/adapters/qdrant.adapter.js.map +1 -0
  698. package/dist/vector/adapters/weaviate.adapter.d.ts +68 -0
  699. package/dist/vector/adapters/weaviate.adapter.js +645 -0
  700. package/dist/vector/adapters/weaviate.adapter.js.map +1 -0
  701. package/dist/vector/index.d.ts +36 -0
  702. package/dist/vector/index.js +70 -0
  703. package/dist/vector/index.js.map +1 -0
  704. package/dist/vector/types/action.interface.d.ts +195 -0
  705. package/dist/vector/types/action.interface.js +100 -0
  706. package/dist/vector/types/action.interface.js.map +1 -0
  707. package/dist/vector/types/connection.interface.d.ts +151 -0
  708. package/dist/vector/types/connection.interface.js +8 -0
  709. package/dist/vector/types/connection.interface.js.map +1 -0
  710. package/dist/vector/types/embedding.interface.d.ts +144 -0
  711. package/dist/vector/types/embedding.interface.js +8 -0
  712. package/dist/vector/types/embedding.interface.js.map +1 -0
  713. package/dist/vector/types/enums.d.ts +104 -0
  714. package/dist/vector/types/enums.js +113 -0
  715. package/dist/vector/types/enums.js.map +1 -0
  716. package/dist/vector/types/index.d.ts +11 -0
  717. package/dist/vector/types/index.js +23 -0
  718. package/dist/vector/types/index.js.map +1 -0
  719. package/dist/vector/types/vector.interface.d.ts +315 -0
  720. package/dist/vector/types/vector.interface.js +8 -0
  721. package/dist/vector/types/vector.interface.js.map +1 -0
  722. package/dist/vector/utils/index.d.ts +6 -0
  723. package/dist/vector/utils/index.js +11 -0
  724. package/dist/vector/utils/index.js.map +1 -0
  725. package/dist/vector/utils/vector-error.d.ts +69 -0
  726. package/dist/vector/utils/vector-error.js +116 -0
  727. package/dist/vector/utils/vector-error.js.map +1 -0
  728. package/dist/vector/vector-database.service.d.ts +474 -0
  729. package/dist/vector/vector-database.service.js +850 -0
  730. package/dist/vector/vector-database.service.js.map +1 -0
  731. package/dist/vector/vector.service.d.ts +283 -0
  732. package/dist/vector/vector.service.js +544 -0
  733. package/dist/vector/vector.service.js.map +1 -0
  734. package/dist/warehouse/executor/index.d.ts +5 -0
  735. package/dist/warehouse/executor/index.js +12 -0
  736. package/dist/warehouse/executor/index.js.map +1 -0
  737. package/dist/warehouse/executor/joins/index.d.ts +5 -0
  738. package/dist/warehouse/executor/joins/index.js +11 -0
  739. package/dist/warehouse/executor/joins/index.js.map +1 -0
  740. package/dist/warehouse/executor/joins/join-executor.d.ts +101 -0
  741. package/dist/warehouse/executor/joins/join-executor.js +493 -0
  742. package/dist/warehouse/executor/joins/join-executor.js.map +1 -0
  743. package/dist/warehouse/executor/joins/semantic-join.d.ts +64 -0
  744. package/dist/warehouse/executor/joins/semantic-join.js +241 -0
  745. package/dist/warehouse/executor/joins/semantic-join.js.map +1 -0
  746. package/dist/warehouse/executor/single-source-executor.d.ts +155 -0
  747. package/dist/warehouse/executor/single-source-executor.js +573 -0
  748. package/dist/warehouse/executor/single-source-executor.js.map +1 -0
  749. package/dist/warehouse/index.d.ts +79 -0
  750. package/dist/warehouse/index.js +111 -0
  751. package/dist/warehouse/index.js.map +1 -0
  752. package/dist/warehouse/parser/index.d.ts +4 -0
  753. package/dist/warehouse/parser/index.js +10 -0
  754. package/dist/warehouse/parser/index.js.map +1 -0
  755. package/dist/warehouse/parser/query-parser.d.ts +181 -0
  756. package/dist/warehouse/parser/query-parser.js +415 -0
  757. package/dist/warehouse/parser/query-parser.js.map +1 -0
  758. package/dist/warehouse/registry/data-source-registry.d.ts +207 -0
  759. package/dist/warehouse/registry/data-source-registry.js +396 -0
  760. package/dist/warehouse/registry/data-source-registry.js.map +1 -0
  761. package/dist/warehouse/registry/index.d.ts +4 -0
  762. package/dist/warehouse/registry/index.js +9 -0
  763. package/dist/warehouse/registry/index.js.map +1 -0
  764. package/dist/warehouse/transactions/index.d.ts +4 -0
  765. package/dist/warehouse/transactions/index.js +9 -0
  766. package/dist/warehouse/transactions/index.js.map +1 -0
  767. package/dist/warehouse/transactions/saga-orchestrator.d.ts +92 -0
  768. package/dist/warehouse/transactions/saga-orchestrator.js +383 -0
  769. package/dist/warehouse/transactions/saga-orchestrator.js.map +1 -0
  770. package/dist/warehouse/types/index.d.ts +9 -0
  771. package/dist/warehouse/types/index.js +33 -0
  772. package/dist/warehouse/types/index.js.map +1 -0
  773. package/dist/warehouse/types/join.interface.d.ts +225 -0
  774. package/dist/warehouse/types/join.interface.js +87 -0
  775. package/dist/warehouse/types/join.interface.js.map +1 -0
  776. package/dist/warehouse/types/query.interface.d.ts +232 -0
  777. package/dist/warehouse/types/query.interface.js +9 -0
  778. package/dist/warehouse/types/query.interface.js.map +1 -0
  779. package/dist/warehouse/types/transaction.interface.d.ts +236 -0
  780. package/dist/warehouse/types/transaction.interface.js +74 -0
  781. package/dist/warehouse/types/transaction.interface.js.map +1 -0
  782. package/dist/warehouse/types/where.interface.d.ts +208 -0
  783. package/dist/warehouse/types/where.interface.js +89 -0
  784. package/dist/warehouse/types/where.interface.js.map +1 -0
  785. package/dist/warehouse/warehouse.service.d.ts +200 -0
  786. package/dist/warehouse/warehouse.service.js +470 -0
  787. package/dist/warehouse/warehouse.service.js.map +1 -0
  788. package/dist/workflows/index.d.ts +30 -0
  789. package/dist/workflows/index.js +64 -0
  790. package/dist/workflows/index.js.map +1 -0
  791. package/dist/workflows/types/index.d.ts +6 -0
  792. package/dist/workflows/types/index.js +23 -0
  793. package/dist/workflows/types/index.js.map +1 -0
  794. package/dist/workflows/types/workflows.types.d.ts +1037 -0
  795. package/dist/workflows/types/workflows.types.js +13 -0
  796. package/dist/workflows/types/workflows.types.js.map +1 -0
  797. package/dist/workflows/workflow-builder.d.ts +70 -0
  798. package/dist/workflows/workflow-builder.js +338 -0
  799. package/dist/workflows/workflow-builder.js.map +1 -0
  800. package/dist/workflows/workflow-executor.d.ts +208 -0
  801. package/dist/workflows/workflow-executor.js +1194 -0
  802. package/dist/workflows/workflow-executor.js.map +1 -0
  803. package/dist/workflows/workflows.service.d.ts +410 -0
  804. package/dist/workflows/workflows.service.js +1724 -0
  805. package/dist/workflows/workflows.service.js.map +1 -0
  806. package/package.json +65 -12
  807. package/dist/actions/actions.repo.js +0 -13
  808. package/dist/actions/actions.repo.js.map +0 -1
  809. package/dist/actions/actions.service.js +0 -24
  810. package/dist/actions/actions.service.js.map +0 -1
  811. package/dist/actions/utils/actions.util.read.js +0 -427
  812. package/dist/actions/utils/actions.util.read.js.map +0 -1
  813. package/dist/api/services/integrationsApi.service.d.ts +0 -18
  814. package/dist/api/services/integrationsApi.service.js +0 -80
  815. package/dist/api/services/integrationsApi.service.js.map +0 -1
  816. package/dist/appBuilder/services/app.service.d.ts +0 -111
  817. package/dist/appBuilder/services/app.service.js +0 -737
  818. package/dist/appBuilder/services/app.service.js.map +0 -1
  819. package/dist/appBuilder/services/appBuilder.service.d.ts +0 -111
  820. package/dist/appBuilder/services/appBuilder.service.js +0 -662
  821. package/dist/appBuilder/services/appBuilder.service.js.map +0 -1
  822. package/dist/appBuilder/utils/objects.utils.d.ts +0 -3
  823. package/dist/appBuilder/utils/objects.utils.js +0 -9
  824. package/dist/appBuilder/utils/objects.utils.js.map +0 -1
  825. package/dist/appBuilder/utils/string.utils.d.ts +0 -2
  826. package/dist/appBuilder/utils/string.utils.js +0 -57
  827. package/dist/appBuilder/utils/string.utils.js.map +0 -1
  828. package/dist/appBuilder/validators/index.d.ts +0 -19
  829. package/dist/appBuilder/validators/index.js +0 -40
  830. package/dist/appBuilder/validators/index.js.map +0 -1
  831. package/dist/appBuilder/validators/joi-validators/create.app.validator.js +0 -10
  832. package/dist/appBuilder/validators/joi-validators/create.app.validator.js.map +0 -1
  833. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.d.ts +0 -4
  834. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js +0 -20
  835. package/dist/appBuilder/validators/joi-validators/create.appAction.validator.js.map +0 -1
  836. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.d.ts +0 -7
  837. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js +0 -44
  838. package/dist/appBuilder/validators/joi-validators/create.appActionResponse.validator.js.map +0 -1
  839. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.d.ts +0 -3
  840. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js +0 -31
  841. package/dist/appBuilder/validators/joi-validators/create.appAuth.validator.js.map +0 -1
  842. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.d.ts +0 -4
  843. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js +0 -11
  844. package/dist/appBuilder/validators/joi-validators/create.appBody.validators.js.map +0 -1
  845. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.d.ts +0 -4
  846. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js +0 -12
  847. package/dist/appBuilder/validators/joi-validators/create.appConstants.validator.js.map +0 -1
  848. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.d.ts +0 -4
  849. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js +0 -17
  850. package/dist/appBuilder/validators/joi-validators/create.appEnv.validator.js.map +0 -1
  851. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  852. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js +0 -30
  853. package/dist/appBuilder/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  854. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.d.ts +0 -4
  855. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js +0 -14
  856. package/dist/appBuilder/validators/joi-validators/create.appVariable.validator.js.map +0 -1
  857. package/dist/appBuilder/validators/joi-validators/sample.validator.d.ts +0 -5
  858. package/dist/appBuilder/validators/joi-validators/sample.validator.js +0 -26
  859. package/dist/appBuilder/validators/joi-validators/sample.validator.js.map +0 -1
  860. package/dist/appBuilder/validators/joi-validators/update.app.validator.d.ts +0 -4
  861. package/dist/appBuilder/validators/joi-validators/update.app.validator.js +0 -34
  862. package/dist/appBuilder/validators/joi-validators/update.app.validator.js.map +0 -1
  863. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.d.ts +0 -4
  864. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js +0 -23
  865. package/dist/appBuilder/validators/joi-validators/update.appAction.validator.js.map +0 -1
  866. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.d.ts +0 -3
  867. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js +0 -21
  868. package/dist/appBuilder/validators/joi-validators/update.appActionResponse.validator.js.map +0 -1
  869. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.d.ts +0 -4
  870. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js +0 -19
  871. package/dist/appBuilder/validators/joi-validators/update.appAuth.validator.js.map +0 -1
  872. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.d.ts +0 -4
  873. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js +0 -12
  874. package/dist/appBuilder/validators/joi-validators/update.appConstants.validator.js.map +0 -1
  875. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.d.ts +0 -4
  876. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js +0 -17
  877. package/dist/appBuilder/validators/joi-validators/update.appEnv.validator.js.map +0 -1
  878. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  879. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js +0 -16
  880. package/dist/appBuilder/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  881. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.d.ts +0 -4
  882. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js +0 -14
  883. package/dist/appBuilder/validators/joi-validators/update.appVariables.validator.js.map +0 -1
  884. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js +0 -27
  885. package/dist/appBuilder/validators/joi-validators/update.validation.entityData.validator.js.map +0 -1
  886. package/dist/apps/validators/joi-validators/create.appEvent.validator.d.ts +0 -5
  887. package/dist/apps/validators/joi-validators/create.appEvent.validator.js +0 -30
  888. package/dist/apps/validators/joi-validators/create.appEvent.validator.js.map +0 -1
  889. package/dist/apps/validators/joi-validators/update.appEvent.validator.d.ts +0 -4
  890. package/dist/apps/validators/joi-validators/update.appEvent.validator.js +0 -16
  891. package/dist/apps/validators/joi-validators/update.appEvent.validator.js.map +0 -1
  892. package/dist/clients/integrations.client.d.ts +0 -2
  893. package/dist/clients/integrations.client.js +0 -26
  894. package/dist/clients/integrations.client.js.map +0 -1
  895. package/dist/integrationsBuilder/services/integration.service.d.ts +0 -138
  896. package/dist/integrationsBuilder/services/integration.service.js +0 -1148
  897. package/dist/integrationsBuilder/services/integration.service.js.map +0 -1
  898. package/dist/integrationsBuilder/services/integrationBuilder.service.d.ts +0 -130
  899. package/dist/integrationsBuilder/services/integrationBuilder.service.js +0 -1017
  900. package/dist/integrationsBuilder/services/integrationBuilder.service.js.map +0 -1
  901. package/dist/integrationsBuilder/utils/objects.utils.d.ts +0 -2
  902. package/dist/integrationsBuilder/utils/objects.utils.js +0 -48
  903. package/dist/integrationsBuilder/utils/objects.utils.js.map +0 -1
  904. package/dist/integrationsBuilder/utils/string.utils.d.ts +0 -1
  905. package/dist/integrationsBuilder/utils/string.utils.js +0 -9
  906. package/dist/integrationsBuilder/utils/string.utils.js.map +0 -1
  907. package/dist/integrationsBuilder/validators/index.d.ts +0 -18
  908. package/dist/integrationsBuilder/validators/index.js +0 -38
  909. package/dist/integrationsBuilder/validators/index.js.map +0 -1
  910. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.d.ts +0 -3
  911. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js +0 -10
  912. package/dist/integrationsBuilder/validators/joi-validators/create.integration.validator.js.map +0 -1
  913. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.d.ts +0 -4
  914. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js +0 -26
  915. package/dist/integrationsBuilder/validators/joi-validators/create.integrationApp.validator.js.map +0 -1
  916. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.d.ts +0 -3
  917. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js +0 -8
  918. package/dist/integrationsBuilder/validators/joi-validators/create.integrationCache.validator.js.map +0 -1
  919. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.d.ts +0 -3
  920. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js +0 -8
  921. package/dist/integrationsBuilder/validators/joi-validators/create.integrationDatabase.validator.js.map +0 -1
  922. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.d.ts +0 -3
  923. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js +0 -10
  924. package/dist/integrationsBuilder/validators/joi-validators/create.integrationEnv.validator.js.map +0 -1
  925. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.d.ts +0 -3
  926. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js +0 -60
  927. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFeature.validator.js.map +0 -1
  928. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.d.ts +0 -3
  929. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js +0 -8
  930. package/dist/integrationsBuilder/validators/joi-validators/create.integrationFunction.validator.js.map +0 -1
  931. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.d.ts +0 -3
  932. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js +0 -8
  933. package/dist/integrationsBuilder/validators/joi-validators/create.integrationJob.validator.js.map +0 -1
  934. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.d.ts +0 -3
  935. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js +0 -8
  936. package/dist/integrationsBuilder/validators/joi-validators/create.integrationNotification.validator.js.map +0 -1
  937. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.d.ts +0 -3
  938. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js +0 -9
  939. package/dist/integrationsBuilder/validators/joi-validators/update.integrationApp.validator.js.map +0 -1
  940. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.d.ts +0 -3
  941. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js +0 -8
  942. package/dist/integrationsBuilder/validators/joi-validators/update.integrationCache.validator.js.map +0 -1
  943. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.d.ts +0 -3
  944. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js +0 -8
  945. package/dist/integrationsBuilder/validators/joi-validators/update.integrationDatabase.validator.js.map +0 -1
  946. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.d.ts +0 -3
  947. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js +0 -8
  948. package/dist/integrationsBuilder/validators/joi-validators/update.integrationEnv.validator.js.map +0 -1
  949. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.d.ts +0 -3
  950. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js +0 -8
  951. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFeature.validator.js.map +0 -1
  952. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.d.ts +0 -3
  953. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js +0 -8
  954. package/dist/integrationsBuilder/validators/joi-validators/update.integrationFunction.validator copy.js.map +0 -1
  955. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.d.ts +0 -3
  956. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js +0 -8
  957. package/dist/integrationsBuilder/validators/joi-validators/update.integrationJob.validator.js.map +0 -1
  958. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.d.ts +0 -3
  959. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js +0 -8
  960. package/dist/integrationsBuilder/validators/joi-validators/update.integrationNotification.validator.js.map +0 -1
  961. package/dist/postman.d.ts +0 -1
  962. package/dist/postman.js +0 -21674
  963. package/dist/postman.js.map +0 -1
  964. package/dist/processor/utils/mongo.util.js +0 -152
  965. package/dist/processor/utils/mongo.util.js.map +0 -1
  966. package/dist/processor/utils/postgres.util.d.ts +0 -14
  967. package/dist/processor/utils/postgres.util.js +0 -83
  968. package/dist/processor/utils/postgres.util.js.map +0 -1
  969. package/dist/products/validators/joi-validators/create.product.validator.d.ts +0 -3
  970. package/dist/products/validators/joi-validators/create.product.validator.js +0 -10
  971. package/dist/products/validators/joi-validators/create.product.validator.js.map +0 -1
  972. package/dist/test.appBuilder.js +0 -14
  973. package/dist/test.appBuilder.js.map +0 -1
  974. package/dist/test.import.js +0 -24
  975. package/dist/test.import.js.map +0 -1
  976. package/dist/test.imports.js +0 -28
  977. package/dist/test.imports.js.map +0 -1
  978. package/dist/test.integrationBuilder.js +0 -276
  979. package/dist/test.integrationBuilder.js.map +0 -1
  980. package/dist/test.processor.js +0 -23
  981. package/dist/test.processor.js.map +0 -1
  982. package/dist/test.utils.js +0 -25
  983. package/dist/test.utils.js.map +0 -1
  984. package/dist/types/integrationsBuilder.types.d.ts +0 -276
  985. package/dist/types/integrationsBuilder.types.js +0 -51
  986. package/dist/types/integrationsBuilder.types.js.map +0 -1
  987. /package/dist/{actions/actions.repo.d.ts → pricing/pricing.repo.d.ts} +0 -0
  988. /package/dist/{appBuilder/validators/joi-validators/create.app.validator.d.ts → products/validators/joi-validators/create.productGraph.validator.d.ts} +0 -0
  989. /package/dist/{appBuilder/validators/joi-validators/update.validation.entityData.validator.d.ts → products/validators/joi-validators/update.productGraph.validator.d.ts} +0 -0
  990. /package/dist/{test.appBuilder.d.ts → test/test.broker.kafka.d.ts} +0 -0
  991. /package/dist/{test.imports.d.ts → test/test.broker.nats.d.ts} +0 -0
  992. /package/dist/{test.integrationBuilder.d.ts → test/test.broker.pubsub.d.ts} +0 -0
  993. /package/dist/{test.processor.d.ts → test/test.broker.rabbitmq.d.ts} +0 -0
  994. /package/dist/{test.utils.d.ts → test/test.broker.redis.d.ts} +0 -0
  995. /package/dist/{actions/actions.service.d.ts → test/test.health.d.ts} +0 -0
  996. /package/dist/{actions/utils/actions.util.read.d.ts → test/test.notifiers.d.ts} +0 -0
  997. /package/dist/{processor/utils/mongo.util.d.ts → test/test.products.d.ts} +0 -0
  998. /package/dist/{test.import.d.ts → types/request-tracker.interface.d.ts} +0 -0
@@ -0,0 +1,1724 @@
1
+ "use strict";
2
+ /**
3
+ * Workflow Service
4
+ *
5
+ * Main service class for workflow operations.
6
+ * Provides CRUD operations and execution for Ductape Workflows.
7
+ *
8
+ * Based on Ductape Workflows Code-First API documentation.
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ var __importDefault = (this && this.__importDefault) || function (mod) {
44
+ return (mod && mod.__esModule) ? mod : { "default": mod };
45
+ };
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.workflowService = exports.WorkflowService = exports.WorkflowError = void 0;
48
+ const crypto_1 = require("crypto");
49
+ const products_service_1 = __importDefault(require("../products/services/products.service"));
50
+ const processor_service_1 = __importDefault(require("../processor/services/processor.service"));
51
+ const workflowApi_service_1 = require("../api/services/workflowApi.service");
52
+ const logs_service_1 = __importDefault(require("../logs/logs.service"));
53
+ const logs_types_1 = require("../logs/logs.types");
54
+ const processor_utils_1 = require("../processor/utils/processor.utils");
55
+ const cache_manager_1 = require("../cache/cache.manager");
56
+ const productsBuilder_types_1 = require("../types/productsBuilder.types");
57
+ const workflow_executor_1 = require("./workflow-executor");
58
+ /**
59
+ * Error class for workflow-related errors
60
+ */
61
+ class WorkflowError extends Error {
62
+ constructor(message, code, details) {
63
+ if (typeof window !== 'undefined') {
64
+ throw new Error('Ductape SDK can only be initialized in a server environment.');
65
+ }
66
+ super(message);
67
+ this.code = code;
68
+ this.details = details;
69
+ this.name = 'WorkflowError';
70
+ }
71
+ static configurationError(message) {
72
+ return new WorkflowError(message, 'CONFIGURATION_ERROR');
73
+ }
74
+ static validationError(message, details) {
75
+ return new WorkflowError(message, 'VALIDATION_ERROR', details);
76
+ }
77
+ static notFoundError(message) {
78
+ return new WorkflowError(message, 'NOT_FOUND');
79
+ }
80
+ static executionError(message, details) {
81
+ return new WorkflowError(message, 'EXECUTION_ERROR', details);
82
+ }
83
+ }
84
+ exports.WorkflowError = WorkflowError;
85
+ /**
86
+ * Main Workflow Service class
87
+ * Provides unified interface for workflow management and execution
88
+ */
89
+ class WorkflowService {
90
+ /**
91
+ * Create a new WorkflowService instance
92
+ * @param config - Optional configuration for authentication and workspace context
93
+ */
94
+ constructor(config) {
95
+ /** Service configuration */
96
+ this.config = null;
97
+ /** ProductBuilder instances cache (keyed by product tag) */
98
+ this.productBuilders = new Map();
99
+ /** Local workflow configurations */
100
+ this.localConfigs = new Map();
101
+ /** Workflow API service for backend communication */
102
+ this.workflowApiService = null;
103
+ /** LogService instance for logging operations */
104
+ this.logService = null;
105
+ /** Current product ID for logging */
106
+ this.productId = '';
107
+ /** Cache manager for 3-tier caching */
108
+ this.cacheManager = null;
109
+ this.config = config || null;
110
+ this._privateKey = (config === null || config === void 0 ? void 0 : config.private_key) || '';
111
+ if (config) {
112
+ this.workflowApiService = new workflowApi_service_1.WorkflowApiService(config.env_type);
113
+ // Initialize CacheManager if Redis client is provided
114
+ if (config.redis_client) {
115
+ this.cacheManager = new cache_manager_1.CacheManager({
116
+ workspace_id: config.workspace_id,
117
+ public_key: config.public_key,
118
+ user_id: config.user_id,
119
+ token: config.token,
120
+ env_type: config.env_type,
121
+ redis_client: config.redis_client,
122
+ });
123
+ }
124
+ }
125
+ }
126
+ // ==================== CONFIGURATION ====================
127
+ /**
128
+ * Update service configuration
129
+ */
130
+ updateConfig(config) {
131
+ this.config = config;
132
+ this.workflowApiService = new workflowApi_service_1.WorkflowApiService(config.env_type);
133
+ }
134
+ /**
135
+ * Get auth payload for API calls
136
+ */
137
+ getAuthPayload() {
138
+ if (!this.config) {
139
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
140
+ }
141
+ return {
142
+ user_id: this.config.user_id,
143
+ workspace_id: this.config.workspace_id,
144
+ public_key: this.config.public_key,
145
+ token: this.config.token,
146
+ };
147
+ }
148
+ /**
149
+ * Ensure WorkflowApiService is initialized
150
+ */
151
+ ensureApiService() {
152
+ if (!this.workflowApiService) {
153
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
154
+ }
155
+ return this.workflowApiService;
156
+ }
157
+ /**
158
+ * Get service configuration
159
+ */
160
+ getConfig() {
161
+ return this.config;
162
+ }
163
+ // ==================== PRODUCT BUILDER MANAGEMENT ====================
164
+ /**
165
+ * Create a new ProductBuilder instance
166
+ */
167
+ createNewProductBuilder() {
168
+ if (!this.config) {
169
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
170
+ }
171
+ return new products_service_1.default({
172
+ workspace_id: this.config.workspace_id,
173
+ public_key: this.config.public_key,
174
+ user_id: this.config.user_id,
175
+ token: this.config.token,
176
+ env_type: this.config.env_type,
177
+ });
178
+ }
179
+ /**
180
+ * Get or create a ProductBuilder instance for the given product tag
181
+ */
182
+ async getProductBuilder(productTag) {
183
+ let builder = this.productBuilders.get(productTag);
184
+ if (!builder) {
185
+ builder = this.createNewProductBuilder();
186
+ await builder.initializeProductByTag(productTag);
187
+ this.productBuilders.set(productTag, builder);
188
+ // Update productId for logging
189
+ this.productId = builder.fetchProductId() || '';
190
+ }
191
+ return builder;
192
+ }
193
+ /**
194
+ * Initialize logging service
195
+ */
196
+ initializeLogService() {
197
+ if (!this.logService && this.config) {
198
+ this.logService = new logs_service_1.default({
199
+ product_id: this.productId,
200
+ workspace_id: this.config.workspace_id,
201
+ public_key: this.config.public_key,
202
+ user_id: this.config.user_id,
203
+ token: this.config.token,
204
+ env_type: this.config.env_type,
205
+ });
206
+ }
207
+ }
208
+ /**
209
+ * Validate cache tag exists in product and return cache configuration
210
+ */
211
+ async validateCache(productTag, cacheTag) {
212
+ const builder = await this.getProductBuilder(productTag);
213
+ const cache = await builder.fetchCache(cacheTag);
214
+ if (!cache) {
215
+ throw WorkflowError.validationError(`Cache configuration '${cacheTag}' does not exist`);
216
+ }
217
+ return { expiry: cache.expiry };
218
+ }
219
+ /**
220
+ * Create a new ProcessorService instance for job scheduling
221
+ */
222
+ createNewProcessor() {
223
+ if (!this.config) {
224
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
225
+ }
226
+ return new processor_service_1.default({
227
+ workspace_id: this.config.workspace_id,
228
+ public_key: this.config.public_key,
229
+ user_id: this.config.user_id,
230
+ token: this.config.token,
231
+ env_type: this.config.env_type,
232
+ private_key: this._privateKey,
233
+ });
234
+ }
235
+ // ==================== WORKFLOW CRUD OPERATIONS ====================
236
+ /**
237
+ * Create a new workflow from JSON schema
238
+ *
239
+ * @example
240
+ * ```ts
241
+ * await ductape.workflows.create('my-product', {
242
+ * tag: 'order-fulfillment',
243
+ * name: 'Order Fulfillment',
244
+ * steps: [
245
+ * { tag: 'validate', type: 'action', app: 'orders', event: 'validate', input: {} },
246
+ * { tag: 'process', type: 'database_action', database: 'orders-db', event: 'create', input: {} },
247
+ * ],
248
+ * envs: [{ slug: 'prd' }],
249
+ * });
250
+ * ```
251
+ */
252
+ async create(productTag, workflowData) {
253
+ var _a;
254
+ // Validate required fields
255
+ if (!workflowData.name || !workflowData.tag || !((_a = workflowData.steps) === null || _a === void 0 ? void 0 : _a.length)) {
256
+ throw WorkflowError.validationError('Workflow requires name, tag, and at least one step');
257
+ }
258
+ // Persist to backend using ProductBuilder
259
+ const builder = await this.getProductBuilder(productTag);
260
+ await builder.createWorkflow(workflowData);
261
+ // Store locally
262
+ const localConfig = {
263
+ name: workflowData.name,
264
+ tag: workflowData.tag,
265
+ description: workflowData.description,
266
+ input: workflowData.input,
267
+ output: workflowData.output,
268
+ steps: workflowData.steps,
269
+ signals: workflowData.signals,
270
+ queries: workflowData.queries,
271
+ options: workflowData.options,
272
+ envs: workflowData.envs,
273
+ };
274
+ this.localConfigs.set(workflowData.tag, localConfig);
275
+ }
276
+ /**
277
+ * Fetch all workflows for a product
278
+ *
279
+ * @example
280
+ * ```ts
281
+ * const workflows = await ductape.workflows.fetchAll('my-product');
282
+ * workflows.forEach(wf => console.log(wf.name, wf.tag));
283
+ * ```
284
+ */
285
+ async fetchAll(productTag) {
286
+ // Return local configs if no product tag
287
+ if (!productTag) {
288
+ return Array.from(this.localConfigs.values());
289
+ }
290
+ // Fetch from API using ProductBuilder
291
+ try {
292
+ const builder = await this.getProductBuilder(productTag);
293
+ const workflows = await builder.fetchWorkflows();
294
+ // Convert IProductWorkflow[] to IWorkflowConfig[]
295
+ return workflows.map((wf) => this.productWorkflowToConfig(wf));
296
+ }
297
+ catch (error) {
298
+ // Fall back to local configs if API fails
299
+ return Array.from(this.localConfigs.values());
300
+ }
301
+ }
302
+ /**
303
+ * Fetch a specific workflow by tag
304
+ *
305
+ * @example
306
+ * ```ts
307
+ * const workflow = await ductape.workflows.fetch('order-fulfillment', 'my-product');
308
+ * console.log(workflow?.name, workflow?.steps.length);
309
+ * ```
310
+ */
311
+ async fetch(workflowTag, productTag) {
312
+ // If productTag is provided, fetch from API
313
+ if (productTag) {
314
+ try {
315
+ const builder = await this.getProductBuilder(productTag);
316
+ const workflow = await builder.fetchWorkflow(workflowTag);
317
+ if (workflow) {
318
+ const config = this.productWorkflowToConfig(workflow);
319
+ // Update local cache
320
+ this.localConfigs.set(workflowTag, config);
321
+ return config;
322
+ }
323
+ return null;
324
+ }
325
+ catch (error) {
326
+ // Fall back to local config
327
+ return this.localConfigs.get(workflowTag) || null;
328
+ }
329
+ }
330
+ return this.localConfigs.get(workflowTag) || null;
331
+ }
332
+ /**
333
+ * Update a workflow
334
+ *
335
+ * @example
336
+ * ```ts
337
+ * await ductape.workflows.update('order-fulfillment', 'my-product', {
338
+ * description: 'Updated description',
339
+ * options: { timeout: 3600000 },
340
+ * });
341
+ * ```
342
+ */
343
+ async update(workflowTag, productTag, updates) {
344
+ var _a, _b, _c, _d, _e, _f, _g;
345
+ // Update in backend
346
+ const builder = await this.getProductBuilder(productTag);
347
+ await builder.updateWorkflow(workflowTag, updates);
348
+ // Update local cache
349
+ const existing = this.localConfigs.get(workflowTag);
350
+ if (existing) {
351
+ const updated = Object.assign(Object.assign({}, existing), { name: updates.name || existing.name, description: (_a = updates.description) !== null && _a !== void 0 ? _a : existing.description, input: (_b = updates.input) !== null && _b !== void 0 ? _b : existing.input, output: (_c = updates.output) !== null && _c !== void 0 ? _c : existing.output, steps: updates.steps || existing.steps, signals: (_d = updates.signals) !== null && _d !== void 0 ? _d : existing.signals, queries: (_e = updates.queries) !== null && _e !== void 0 ? _e : existing.queries, options: (_f = updates.options) !== null && _f !== void 0 ? _f : existing.options, envs: (_g = updates.envs) !== null && _g !== void 0 ? _g : existing.envs });
352
+ this.localConfigs.set(workflowTag, updated);
353
+ }
354
+ }
355
+ /**
356
+ * Delete a workflow
357
+ *
358
+ * @example
359
+ * ```ts
360
+ * await ductape.workflows.delete('order-fulfillment', 'my-product');
361
+ * ```
362
+ */
363
+ async delete(workflowTag, productTag) {
364
+ // Delete from backend
365
+ const builder = await this.getProductBuilder(productTag);
366
+ await builder.deleteWorkflow(workflowTag);
367
+ // Remove from local cache
368
+ this.localConfigs.delete(workflowTag);
369
+ }
370
+ // ==================== CODE-FIRST API ====================
371
+ /**
372
+ * Define a workflow using the code-first API
373
+ * Compiles the handler to JSON schema and creates the workflow in one step
374
+ *
375
+ * @example
376
+ * ```ts
377
+ * const orderWorkflow = await ductape.workflows.define({
378
+ * product: 'my-product',
379
+ * tag: 'order-fulfillment',
380
+ * name: 'Order Fulfillment',
381
+ * handler: async (ctx) => {
382
+ * const validation = await ctx.step('validate', async () => {
383
+ * return ctx.action.run({
384
+ * app: 'inventory-service',
385
+ * event: 'validate-order',
386
+ * input: { body: ctx.input },
387
+ * });
388
+ * });
389
+ *
390
+ * if (!validation.valid) {
391
+ * return { success: false, error: validation.reason };
392
+ * }
393
+ *
394
+ * return { success: true };
395
+ * },
396
+ * });
397
+ * ```
398
+ */
399
+ async define(options) {
400
+ // Validate required fields
401
+ if (!options.tag || !options.name || !options.handler) {
402
+ throw WorkflowError.validationError('Workflow definition requires tag, name, and handler');
403
+ }
404
+ // Create a workflow compiler instance
405
+ const compiler = new WorkflowCompiler(options);
406
+ // Compile the handler to JSON schema
407
+ const schema = compiler.compile();
408
+ // If product is specified, create the workflow
409
+ if (options.product) {
410
+ await this.create(options.product, schema);
411
+ }
412
+ // Store locally
413
+ const localConfig = {
414
+ name: schema.name,
415
+ tag: schema.tag,
416
+ description: schema.description,
417
+ input: schema.input,
418
+ output: schema.output,
419
+ steps: schema.steps,
420
+ signals: schema.signals,
421
+ queries: schema.queries,
422
+ options: schema.options,
423
+ envs: schema.envs,
424
+ };
425
+ this.localConfigs.set(schema.tag, localConfig);
426
+ // Return the defined workflow with compile method
427
+ return {
428
+ tag: options.tag,
429
+ name: options.name,
430
+ handler: options.handler,
431
+ compile: () => schema,
432
+ schema,
433
+ };
434
+ }
435
+ // ==================== WORKFLOW EXECUTION ====================
436
+ /**
437
+ * Execute a workflow
438
+ *
439
+ * @example
440
+ * ```ts
441
+ * const result = await ductape.workflows.execute({
442
+ * product: 'my-product',
443
+ * env: 'production',
444
+ * tag: 'order-fulfillment',
445
+ * input: {
446
+ * order_id: 'ORD-12345',
447
+ * items: [{ product_id: 'PROD-1', quantity: 2 }],
448
+ * },
449
+ * });
450
+ *
451
+ * console.log(result.status); // 'completed' | 'failed' | 'rolled_back'
452
+ * console.log(result.output);
453
+ * ```
454
+ */
455
+ async execute(options) {
456
+ var _a, _b, _c, _d, _e, _f, _g;
457
+ if (!this.config) {
458
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
459
+ }
460
+ const process_id = (0, processor_utils_1.generateObjectId)();
461
+ // Session log fields (will be populated if session is provided)
462
+ let sessionLogFields = {};
463
+ let resolvedOptions = options;
464
+ // Fetch the workflow configuration from backend
465
+ const builder = await this.getProductBuilder(options.product);
466
+ const workflow = await builder.fetchWorkflow(options.tag);
467
+ if (!workflow) {
468
+ throw WorkflowError.notFoundError(`Workflow ${options.tag} not found`);
469
+ }
470
+ // Process session if provided - verify and resolve $Session{} references
471
+ if (options.session) {
472
+ const privateKey = builder.fetchPrivateKey();
473
+ if (privateKey) {
474
+ const { processSessionForExecution } = await Promise.resolve().then(() => __importStar(require('../sessions')));
475
+ const sessionResult = await processSessionForExecution(options.session, privateKey, options, options.env);
476
+ if (sessionResult.error) {
477
+ throw WorkflowError.executionError(`Session validation failed: ${sessionResult.error}`);
478
+ }
479
+ resolvedOptions = sessionResult.input;
480
+ sessionLogFields = sessionResult.logFields;
481
+ }
482
+ }
483
+ // Initialize logging
484
+ this.initializeLogService();
485
+ const baseLogs = Object.assign({ product_tag: options.product, workspace_id: this.config.workspace_id, env: options.env, process_id, type: logs_types_1.LogEventTypes.WORKFLOW, parent_tag: options.tag, data: { workflow: options.tag, operation: 'execute' } }, sessionLogFields);
486
+ (_a = this.logService) === null || _a === void 0 ? void 0 : _a.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow execute - initiated', status: logs_types_1.LogEventStatus.PROCESSING }));
487
+ const { cache } = options;
488
+ try {
489
+ // Check cache for idempotency (prevent duplicate executions with same input)
490
+ if (cache && this.cacheManager && this._privateKey) {
491
+ const cacheConfig = await this.validateCache(options.product, cache);
492
+ const cacheOptions = {
493
+ cache_tag: cache,
494
+ product_tag: options.product,
495
+ component_tag: options.tag,
496
+ component_type: 'workflow',
497
+ operation: 'execute',
498
+ input: { tag: options.tag, input: resolvedOptions.input },
499
+ privateKey: this._privateKey,
500
+ expiry: cacheConfig.expiry,
501
+ };
502
+ const cached = await this.cacheManager.fetch(cacheOptions);
503
+ if (cached.hit && cached.data) {
504
+ (_b = this.logService) === null || _b === void 0 ? void 0 : _b.add(Object.assign(Object.assign({}, baseLogs), { message: `Workflow execute - cache hit (${cached.source})`, successful_execution: true, status: logs_types_1.LogEventStatus.SUCCESS, data: { workflow: options.tag, operation: 'execute', cache_source: cached.source } }));
505
+ (_c = this.logService) === null || _c === void 0 ? void 0 : _c.publish();
506
+ return cached.data;
507
+ }
508
+ }
509
+ // Create and run the workflow executor with resolved options and session context
510
+ const executor = new workflow_executor_1.WorkflowExecutor(this.config, workflow, resolvedOptions, this._privateKey, sessionLogFields);
511
+ const result = await executor.execute();
512
+ // Store in cache for idempotency
513
+ if (cache && this.cacheManager && this._privateKey) {
514
+ const cacheConfig = await this.validateCache(options.product, cache);
515
+ await this.cacheManager.store({
516
+ cache_tag: cache,
517
+ product_tag: options.product,
518
+ component_tag: options.tag,
519
+ component_type: 'workflow',
520
+ operation: 'execute',
521
+ input: { tag: options.tag, input: resolvedOptions.input },
522
+ privateKey: this._privateKey,
523
+ expiry: cacheConfig.expiry,
524
+ }, result);
525
+ }
526
+ (_d = this.logService) === null || _d === void 0 ? void 0 : _d.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow execute - success', successful_execution: true, status: logs_types_1.LogEventStatus.SUCCESS }));
527
+ (_e = this.logService) === null || _e === void 0 ? void 0 : _e.publish();
528
+ return result;
529
+ }
530
+ catch (error) {
531
+ (_f = this.logService) === null || _f === void 0 ? void 0 : _f.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow execute - failed', failed_execution: true, data: { workflow: options.tag, operation: 'execute', error: error.message || String(error) }, status: logs_types_1.LogEventStatus.FAIL }));
532
+ await ((_g = this.logService) === null || _g === void 0 ? void 0 : _g.publish());
533
+ throw error;
534
+ }
535
+ }
536
+ // ==================== WORKFLOW DISPATCH ====================
537
+ /**
538
+ * Dispatch a workflow to run as a scheduled job
539
+ *
540
+ * @example
541
+ * ```ts
542
+ * // Schedule a workflow to run in 1 hour
543
+ * const result = await ductape.workflows.dispatch({
544
+ * product: 'my-product',
545
+ * env: 'production',
546
+ * workflow: 'order-fulfillment',
547
+ * input: { order_id: 'ORD-123' },
548
+ * schedule: { start_at: Date.now() + 3600000 },
549
+ * });
550
+ *
551
+ * // Run on a cron schedule
552
+ * const result = await ductape.workflows.dispatch({
553
+ * product: 'my-product',
554
+ * env: 'production',
555
+ * workflow: 'daily-report',
556
+ * input: {},
557
+ * schedule: { cron: '0 0 * * *' }, // Daily at midnight
558
+ * });
559
+ * ```
560
+ */
561
+ async dispatch(data) {
562
+ var _a, _b, _c, _d, _e, _f, _g, _h;
563
+ const process_id = (0, processor_utils_1.generateObjectId)();
564
+ const processorService = this.createNewProcessor();
565
+ const productBuilder = await this.getProductBuilder(data.product);
566
+ const schedule = data.schedule || {};
567
+ const startAt = typeof schedule.start_at === 'string' ? new Date(schedule.start_at).getTime() : schedule.start_at || Date.now();
568
+ // Generate job tag based on workflow
569
+ const jobTag = `workflow:${data.workflow}`;
570
+ // Session log fields (will be populated if session is provided)
571
+ let sessionLogFields = {};
572
+ let resolvedData = data;
573
+ // Process session if provided - verify and resolve $Session{} references
574
+ if (data.session) {
575
+ const privateKey = productBuilder.fetchPrivateKey();
576
+ if (privateKey) {
577
+ const { processSessionForExecution } = await Promise.resolve().then(() => __importStar(require('../sessions')));
578
+ const sessionResult = await processSessionForExecution(data.session, privateKey, data, data.env);
579
+ if (sessionResult.error) {
580
+ throw WorkflowError.executionError(`Session validation failed: ${sessionResult.error}`);
581
+ }
582
+ resolvedData = sessionResult.input;
583
+ sessionLogFields = sessionResult.logFields;
584
+ }
585
+ }
586
+ // Initialize logging
587
+ this.initializeLogService();
588
+ const baseLogs = Object.assign({ product_tag: data.product, workspace_id: ((_a = this.config) === null || _a === void 0 ? void 0 : _a.workspace_id) || '', env: data.env, process_id, type: logs_types_1.LogEventTypes.WORKFLOW, parent_tag: data.workflow, data: { workflow: data.workflow, operation: 'dispatch' } }, sessionLogFields);
589
+ (_b = this.logService) === null || _b === void 0 ? void 0 : _b.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow dispatch - initiated', status: logs_types_1.LogEventStatus.PROCESSING }));
590
+ const { cache } = data;
591
+ try {
592
+ // Check cache for idempotency (prevent duplicate dispatches with same input)
593
+ if (cache && this.cacheManager && this._privateKey) {
594
+ const cacheConfig = await this.validateCache(data.product, cache);
595
+ const cacheOptions = {
596
+ cache_tag: cache,
597
+ product_tag: data.product,
598
+ component_tag: data.workflow,
599
+ component_type: 'workflow',
600
+ operation: 'dispatch',
601
+ input: { workflow: data.workflow, input: data.input, schedule: data.schedule },
602
+ privateKey: this._privateKey,
603
+ expiry: cacheConfig.expiry,
604
+ };
605
+ const cached = await this.cacheManager.fetch(cacheOptions);
606
+ if (cached.hit && cached.data) {
607
+ (_c = this.logService) === null || _c === void 0 ? void 0 : _c.add(Object.assign(Object.assign({}, baseLogs), { message: `Workflow dispatch - cache hit (${cached.source})`, successful_execution: true, status: logs_types_1.LogEventStatus.SUCCESS, data: { workflow: data.workflow, operation: 'dispatch', cache_source: cached.source } }));
608
+ (_d = this.logService) === null || _d === void 0 ? void 0 : _d.publish();
609
+ return cached.data;
610
+ }
611
+ }
612
+ // Check if job exists, if not create it
613
+ const existingJob = await productBuilder.fetchJob(jobTag);
614
+ if (!existingJob) {
615
+ await productBuilder.createJob({
616
+ tag: jobTag,
617
+ name: `Workflow: ${data.workflow}`,
618
+ description: `Auto-created job for workflow ${data.workflow}`,
619
+ type: productsBuilder_types_1.JobEventTypes.WORKFLOW, // Use workflow job type
620
+ app: data.workflow,
621
+ event: 'execute',
622
+ executions: 0,
623
+ intervals: schedule.every || 0,
624
+ start_at: startAt,
625
+ });
626
+ }
627
+ const jobInput = {
628
+ product: data.product,
629
+ env: data.env,
630
+ event: jobTag,
631
+ input: resolvedData.input,
632
+ retries: data.retries || 0,
633
+ start_at: startAt,
634
+ session: data.session,
635
+ cache: data.cache,
636
+ repeat: schedule.cron || schedule.every
637
+ ? {
638
+ cron: schedule.cron,
639
+ every: schedule.every,
640
+ limit: schedule.limit,
641
+ endDate: schedule.endDate,
642
+ tz: schedule.tz,
643
+ }
644
+ : undefined,
645
+ };
646
+ await processorService.processJob(jobInput);
647
+ const isRecurring = !!(schedule.cron || schedule.every);
648
+ let nextRunAt;
649
+ if (isRecurring && schedule.every) {
650
+ nextRunAt = startAt + schedule.every;
651
+ }
652
+ const job_id = (0, crypto_1.randomUUID)();
653
+ const result = {
654
+ job_id,
655
+ status: startAt > Date.now() ? 'scheduled' : 'queued',
656
+ scheduled_at: startAt,
657
+ recurring: isRecurring,
658
+ next_run_at: nextRunAt,
659
+ };
660
+ // Store in cache for idempotency
661
+ if (cache && this.cacheManager && this._privateKey) {
662
+ const cacheConfig = await this.validateCache(data.product, cache);
663
+ await this.cacheManager.store({
664
+ cache_tag: cache,
665
+ product_tag: data.product,
666
+ component_tag: data.workflow,
667
+ component_type: 'workflow',
668
+ operation: 'dispatch',
669
+ input: { workflow: data.workflow, input: data.input, schedule: data.schedule },
670
+ privateKey: this._privateKey,
671
+ expiry: cacheConfig.expiry,
672
+ }, result);
673
+ }
674
+ (_e = this.logService) === null || _e === void 0 ? void 0 : _e.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow dispatch - success', successful_execution: true, data: { workflow: data.workflow, operation: 'dispatch', job_id }, status: logs_types_1.LogEventStatus.SUCCESS }));
675
+ (_f = this.logService) === null || _f === void 0 ? void 0 : _f.publish();
676
+ return result;
677
+ }
678
+ catch (error) {
679
+ (_g = this.logService) === null || _g === void 0 ? void 0 : _g.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow dispatch - failed', failed_execution: true, data: { workflow: data.workflow, operation: 'dispatch', error: String(error) }, status: logs_types_1.LogEventStatus.FAIL }));
680
+ await ((_h = this.logService) === null || _h === void 0 ? void 0 : _h.publish());
681
+ throw error;
682
+ }
683
+ }
684
+ // ==================== SIGNAL & QUERY ====================
685
+ /**
686
+ * Send a signal to a running workflow
687
+ *
688
+ * @example
689
+ * ```ts
690
+ * await ductape.workflows.signal({
691
+ * product: 'my-product',
692
+ * env: 'production',
693
+ * workflow_id: 'wf-123',
694
+ * signal: 'approve',
695
+ * payload: { approver_id: 'user-456', comments: 'Approved' },
696
+ * });
697
+ * ```
698
+ */
699
+ async signal(options) {
700
+ var _a, _b, _c, _d, _e, _f;
701
+ const process_id = (0, processor_utils_1.generateObjectId)();
702
+ // Initialize logging
703
+ if (options.product) {
704
+ await this.getProductBuilder(options.product);
705
+ }
706
+ this.initializeLogService();
707
+ const baseLogs = {
708
+ product_tag: options.product,
709
+ workspace_id: ((_a = this.config) === null || _a === void 0 ? void 0 : _a.workspace_id) || '',
710
+ env: options.env,
711
+ process_id,
712
+ type: logs_types_1.LogEventTypes.WORKFLOW,
713
+ parent_tag: options.workflow_id,
714
+ child_tag: options.signal,
715
+ data: { workflow_id: options.workflow_id, signal: options.signal, operation: 'signal' },
716
+ };
717
+ (_b = this.logService) === null || _b === void 0 ? void 0 : _b.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow signal - initiated', status: logs_types_1.LogEventStatus.PROCESSING }));
718
+ try {
719
+ const apiService = this.ensureApiService();
720
+ const auth = this.getAuthPayload();
721
+ await apiService.sendSignal(options.workflow_id, {
722
+ product: options.product,
723
+ env: options.env,
724
+ signal: options.signal,
725
+ payload: options.payload,
726
+ }, auth);
727
+ (_c = this.logService) === null || _c === void 0 ? void 0 : _c.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow signal - success', successful_execution: true, status: logs_types_1.LogEventStatus.SUCCESS }));
728
+ (_d = this.logService) === null || _d === void 0 ? void 0 : _d.publish();
729
+ }
730
+ catch (error) {
731
+ (_e = this.logService) === null || _e === void 0 ? void 0 : _e.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow signal - failed', failed_execution: true, data: { workflow_id: options.workflow_id, signal: options.signal, operation: 'signal', error: String(error) }, status: logs_types_1.LogEventStatus.FAIL }));
732
+ await ((_f = this.logService) === null || _f === void 0 ? void 0 : _f.publish());
733
+ throw error;
734
+ }
735
+ }
736
+ /**
737
+ * Query a running workflow
738
+ *
739
+ * @example
740
+ * ```ts
741
+ * const status = await ductape.workflows.query({
742
+ * product: 'my-product',
743
+ * env: 'production',
744
+ * workflow_id: 'wf-123',
745
+ * query: 'getStatus',
746
+ * });
747
+ *
748
+ * console.log(status.current_step, status.progress);
749
+ * ```
750
+ */
751
+ async query(options) {
752
+ // Query is handled by getting workflow status and extracting query result
753
+ const status = await this.status({
754
+ product: options.product,
755
+ env: options.env,
756
+ workflow_id: options.workflow_id,
757
+ });
758
+ if (!status) {
759
+ throw WorkflowError.notFoundError(`Workflow ${options.workflow_id} not found`);
760
+ }
761
+ // Return the state which contains query results
762
+ return (status.state[options.query] || status);
763
+ }
764
+ // ==================== REPLAY, RESTART & RESUME ====================
765
+ /**
766
+ * Replay a workflow with the same input
767
+ *
768
+ * @example
769
+ * ```ts
770
+ * const result = await ductape.workflows.replay({
771
+ * product: 'my-product',
772
+ * env: 'production',
773
+ * workflow_id: 'wf-123',
774
+ * reason: 'Debugging payment failure',
775
+ * });
776
+ * ```
777
+ */
778
+ async replay(options) {
779
+ var _a, _b, _c, _d, _e, _f;
780
+ const process_id = (0, processor_utils_1.generateObjectId)();
781
+ if (!this.config) {
782
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
783
+ }
784
+ // Initialize logging
785
+ await this.getProductBuilder(options.product);
786
+ this.initializeLogService();
787
+ const baseLogs = {
788
+ product_tag: options.product,
789
+ workspace_id: ((_a = this.config) === null || _a === void 0 ? void 0 : _a.workspace_id) || '',
790
+ env: options.env,
791
+ process_id,
792
+ type: logs_types_1.LogEventTypes.WORKFLOW,
793
+ parent_tag: options.workflow_id,
794
+ data: { workflow_id: options.workflow_id, operation: 'replay' },
795
+ };
796
+ (_b = this.logService) === null || _b === void 0 ? void 0 : _b.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow replay - initiated', status: logs_types_1.LogEventStatus.PROCESSING }));
797
+ try {
798
+ // Get original workflow execution state from backend
799
+ const originalStatus = await this.status({
800
+ product: options.product,
801
+ env: options.env,
802
+ workflow_id: options.workflow_id,
803
+ });
804
+ if (!originalStatus) {
805
+ throw WorkflowError.notFoundError(`Workflow ${options.workflow_id} not found`);
806
+ }
807
+ // Execute with the same input
808
+ const result = await this.execute({
809
+ product: options.product,
810
+ env: options.env,
811
+ tag: originalStatus.workflow_tag,
812
+ input: originalStatus.input || {},
813
+ idempotency_key: options.idempotency_key,
814
+ });
815
+ (_c = this.logService) === null || _c === void 0 ? void 0 : _c.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow replay - success', successful_execution: true, status: logs_types_1.LogEventStatus.SUCCESS }));
816
+ (_d = this.logService) === null || _d === void 0 ? void 0 : _d.publish();
817
+ return Object.assign(Object.assign({}, result), { replayed_from: options.workflow_id });
818
+ }
819
+ catch (error) {
820
+ (_e = this.logService) === null || _e === void 0 ? void 0 : _e.add(Object.assign(Object.assign({}, baseLogs), { message: 'Workflow replay - failed', failed_execution: true, data: { workflow_id: options.workflow_id, operation: 'replay', error: String(error) }, status: logs_types_1.LogEventStatus.FAIL }));
821
+ await ((_f = this.logService) === null || _f === void 0 ? void 0 : _f.publish());
822
+ throw error;
823
+ }
824
+ }
825
+ /**
826
+ * Restart a workflow with new or modified input
827
+ *
828
+ * @example
829
+ * ```ts
830
+ * const result = await ductape.workflows.restart({
831
+ * product: 'my-product',
832
+ * env: 'production',
833
+ * workflow_id: 'wf-123',
834
+ * input: { email: 'corrected@email.com' },
835
+ * reason: 'Customer email was incorrect',
836
+ * });
837
+ * ```
838
+ */
839
+ async restart(options) {
840
+ if (!this.config) {
841
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
842
+ }
843
+ // Get original workflow execution state from backend
844
+ const originalStatus = await this.status({
845
+ product: options.product,
846
+ env: options.env,
847
+ workflow_id: options.workflow_id,
848
+ });
849
+ if (!originalStatus) {
850
+ throw WorkflowError.notFoundError(`Workflow ${options.workflow_id} not found`);
851
+ }
852
+ // Determine the new input
853
+ let newInput;
854
+ if (options.input) {
855
+ newInput = options.input;
856
+ }
857
+ else if (options.input_override && options.merge_input) {
858
+ newInput = Object.assign(Object.assign({}, (originalStatus.input || {})), options.input_override);
859
+ }
860
+ else if (options.input_override) {
861
+ newInput = options.input_override;
862
+ }
863
+ else {
864
+ newInput = originalStatus.input || {};
865
+ }
866
+ // Execute with the new input
867
+ const result = await this.execute({
868
+ product: options.product,
869
+ env: options.env,
870
+ tag: originalStatus.workflow_tag,
871
+ input: newInput,
872
+ });
873
+ return Object.assign(Object.assign({}, result), { restarted_from: options.workflow_id });
874
+ }
875
+ /**
876
+ * Resume a paused or failed workflow from where it stopped
877
+ *
878
+ * @example
879
+ * ```ts
880
+ * const result = await ductape.workflows.resume({
881
+ * product: 'my-product',
882
+ * env: 'production',
883
+ * workflow_id: 'wf-123',
884
+ * from_checkpoint: 'payment-complete',
885
+ * });
886
+ * ```
887
+ */
888
+ async resume(options) {
889
+ if (!this.config) {
890
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
891
+ }
892
+ // Get original workflow execution state from backend
893
+ const originalStatus = await this.status({
894
+ product: options.product,
895
+ env: options.env,
896
+ workflow_id: options.workflow_id,
897
+ });
898
+ if (!originalStatus) {
899
+ throw WorkflowError.notFoundError(`Workflow ${options.workflow_id} not found`);
900
+ }
901
+ // Fetch the workflow configuration
902
+ const builder = await this.getProductBuilder(options.product);
903
+ const workflow = await builder.fetchWorkflow(originalStatus.workflow_tag);
904
+ if (!workflow) {
905
+ throw WorkflowError.notFoundError(`Workflow ${originalStatus.workflow_tag} not found`);
906
+ }
907
+ // Create executor with resume options
908
+ const executor = new workflow_executor_1.WorkflowExecutor(this.config, workflow, {
909
+ product: options.product,
910
+ env: options.env,
911
+ tag: originalStatus.workflow_tag,
912
+ input: Object.assign(Object.assign({}, (originalStatus.input || {})), (options.input || {})),
913
+ }, this._privateKey);
914
+ // Resume execution (executor handles skipping completed steps)
915
+ const result = await executor.resume({
916
+ completed_steps: originalStatus.completed_steps,
917
+ state: originalStatus.state,
918
+ from_checkpoint: options.from_checkpoint,
919
+ from_step: options.from_step,
920
+ skip_steps: options.skip_steps,
921
+ });
922
+ return Object.assign(Object.assign({}, result), { resumed_from: options.workflow_id, resumed_checkpoint: options.from_checkpoint });
923
+ }
924
+ /**
925
+ * Replay a workflow starting from a specific step
926
+ *
927
+ * @example
928
+ * ```ts
929
+ * const result = await ductape.workflows.replayFromStep({
930
+ * product: 'my-product',
931
+ * env: 'production',
932
+ * workflow_id: 'wf-123',
933
+ * from_step: 'process-payment',
934
+ * });
935
+ * ```
936
+ */
937
+ async replayFromStep(options) {
938
+ if (!this.config) {
939
+ throw WorkflowError.configurationError('WorkflowService not configured. Please provide config when initializing.');
940
+ }
941
+ // Get original workflow execution state
942
+ const originalStatus = await this.status({
943
+ product: options.product,
944
+ env: options.env,
945
+ workflow_id: options.workflow_id,
946
+ });
947
+ if (!originalStatus) {
948
+ throw WorkflowError.notFoundError(`Workflow ${options.workflow_id} not found`);
949
+ }
950
+ // Fetch the workflow configuration
951
+ const builder = await this.getProductBuilder(options.product);
952
+ const workflow = await builder.fetchWorkflow(originalStatus.workflow_tag);
953
+ if (!workflow) {
954
+ throw WorkflowError.notFoundError(`Workflow ${originalStatus.workflow_tag} not found`);
955
+ }
956
+ // Find steps before from_step to mark as completed
957
+ const stepIndex = workflow.steps.findIndex((s) => s.tag === options.from_step);
958
+ if (stepIndex === -1) {
959
+ throw WorkflowError.validationError(`Step ${options.from_step} not found in workflow`);
960
+ }
961
+ const completedSteps = workflow.steps.slice(0, stepIndex).map((s) => s.tag);
962
+ // Create executor with partial state
963
+ const executor = new workflow_executor_1.WorkflowExecutor(this.config, workflow, {
964
+ product: options.product,
965
+ env: options.env,
966
+ tag: originalStatus.workflow_tag,
967
+ input: originalStatus.input || {},
968
+ }, this._privateKey);
969
+ // Resume from the specified step with overridden outputs
970
+ const result = await executor.resume({
971
+ completed_steps: completedSteps,
972
+ state: originalStatus.state,
973
+ step_outputs: options.step_outputs,
974
+ });
975
+ return Object.assign(Object.assign({}, result), { replayed_from: options.workflow_id });
976
+ }
977
+ // ==================== STATUS & MANAGEMENT ====================
978
+ /**
979
+ * Get the status of a workflow execution
980
+ *
981
+ * @example
982
+ * ```ts
983
+ * const status = await ductape.workflows.status({
984
+ * product: 'my-product',
985
+ * env: 'production',
986
+ * workflow_id: 'wf-123',
987
+ * });
988
+ * ```
989
+ */
990
+ async status(options) {
991
+ const apiService = this.ensureApiService();
992
+ const auth = this.getAuthPayload();
993
+ const response = await apiService.getStatus(options.workflow_id, options.product, options.env, auth);
994
+ if (!response) {
995
+ return null;
996
+ }
997
+ return {
998
+ workflow_id: response.workflow_id,
999
+ workflow_tag: response.workflow_tag,
1000
+ status: response.status,
1001
+ current_step: response.current_step,
1002
+ completed_steps: response.completed_steps,
1003
+ state: response.state,
1004
+ started_at: response.started_at,
1005
+ updated_at: response.updated_at,
1006
+ input: response.input,
1007
+ output: response.output,
1008
+ error: response.error,
1009
+ };
1010
+ }
1011
+ /**
1012
+ * Cancel a running workflow
1013
+ *
1014
+ * @example
1015
+ * ```ts
1016
+ * const result = await ductape.workflows.cancel({
1017
+ * product: 'my-product',
1018
+ * env: 'production',
1019
+ * workflow_id: 'wf-123',
1020
+ * reason: 'User requested cancellation',
1021
+ * });
1022
+ * ```
1023
+ */
1024
+ async cancel(options) {
1025
+ const apiService = this.ensureApiService();
1026
+ const auth = this.getAuthPayload();
1027
+ const response = await apiService.cancel(options.workflow_id, options.product, options.env, options.reason || 'Cancelled by user', auth);
1028
+ return {
1029
+ cancelled: response.cancelled,
1030
+ rolled_back_steps: response.rolled_back_steps,
1031
+ failed_rollbacks: response.failed_rollbacks,
1032
+ };
1033
+ }
1034
+ /**
1035
+ * Get the execution history of a workflow
1036
+ *
1037
+ * @example
1038
+ * ```ts
1039
+ * const history = await ductape.workflows.history({
1040
+ * product: 'my-product',
1041
+ * env: 'production',
1042
+ * workflow_id: 'wf-123',
1043
+ * });
1044
+ * ```
1045
+ */
1046
+ async history(options) {
1047
+ const apiService = this.ensureApiService();
1048
+ const auth = this.getAuthPayload();
1049
+ const response = await apiService.getHistory(options.workflow_id, options.product, options.env, auth);
1050
+ return {
1051
+ workflow_id: response.workflow_id,
1052
+ workflow_tag: response.workflow_tag,
1053
+ status: response.status,
1054
+ events: response.events.map((e) => ({
1055
+ type: e.type,
1056
+ timestamp: e.timestamp,
1057
+ data: e.data,
1058
+ })),
1059
+ checkpoints: response.checkpoints,
1060
+ replays: response.replays,
1061
+ restarts: response.restarts,
1062
+ };
1063
+ }
1064
+ /**
1065
+ * Get detailed information about a specific step
1066
+ *
1067
+ * @example
1068
+ * ```ts
1069
+ * const detail = await ductape.workflows.stepDetail({
1070
+ * product: 'my-product',
1071
+ * env: 'production',
1072
+ * workflow_id: 'wf-123',
1073
+ * step_tag: 'process-payment',
1074
+ * });
1075
+ * ```
1076
+ */
1077
+ async stepDetail(options) {
1078
+ const apiService = this.ensureApiService();
1079
+ const auth = this.getAuthPayload();
1080
+ const response = await apiService.getStepDetail(options.workflow_id, options.step_tag, options.product, options.env, auth);
1081
+ if (!response) {
1082
+ return null;
1083
+ }
1084
+ return {
1085
+ tag: response.tag,
1086
+ name: response.name,
1087
+ status: response.status,
1088
+ input: response.input,
1089
+ output: response.output,
1090
+ error: response.error,
1091
+ attempts: response.attempts,
1092
+ start_time: response.start_time,
1093
+ end_time: response.end_time,
1094
+ duration: response.duration,
1095
+ rollback_status: response.rollback_status,
1096
+ rollback_error: response.rollback_error,
1097
+ };
1098
+ }
1099
+ /**
1100
+ * List all related executions (replays, restarts, resumes)
1101
+ *
1102
+ * @example
1103
+ * ```ts
1104
+ * const related = await ductape.workflows.relatedExecutions({
1105
+ * product: 'my-product',
1106
+ * env: 'production',
1107
+ * workflow_id: 'wf-123',
1108
+ * });
1109
+ * ```
1110
+ */
1111
+ async relatedExecutions(options) {
1112
+ const apiService = this.ensureApiService();
1113
+ const auth = this.getAuthPayload();
1114
+ const response = await apiService.getRelatedExecutions(options.workflow_id, options.product, options.env, auth);
1115
+ return {
1116
+ original: response.original,
1117
+ executions: response.executions.map((e) => ({
1118
+ workflow_id: e.workflow_id,
1119
+ type: e.type,
1120
+ status: e.status,
1121
+ created_at: e.created_at,
1122
+ replayed_from: e.replayed_from,
1123
+ restarted_from: e.restarted_from,
1124
+ resumed_from: e.resumed_from,
1125
+ })),
1126
+ };
1127
+ }
1128
+ /**
1129
+ * Compare two workflow executions
1130
+ *
1131
+ * @example
1132
+ * ```ts
1133
+ * const comparison = await ductape.workflows.compare({
1134
+ * product: 'my-product',
1135
+ * env: 'production',
1136
+ * workflow_ids: ['wf-123', 'wf-456'],
1137
+ * });
1138
+ * ```
1139
+ */
1140
+ async compare(options) {
1141
+ const apiService = this.ensureApiService();
1142
+ const auth = this.getAuthPayload();
1143
+ const response = await apiService.compareExecutions(options.workflow_ids, options.product, options.env, auth);
1144
+ return {
1145
+ workflows: response.workflows,
1146
+ input_diff: response.input_diff,
1147
+ step_diffs: response.step_diffs,
1148
+ outcome_diff: response.outcome_diff,
1149
+ };
1150
+ }
1151
+ // ==================== HELPER METHODS ====================
1152
+ /**
1153
+ * Convert IProductWorkflow to IWorkflowConfig
1154
+ */
1155
+ productWorkflowToConfig(workflow) {
1156
+ return {
1157
+ name: workflow.name,
1158
+ tag: workflow.tag,
1159
+ description: workflow.description,
1160
+ input: workflow.input,
1161
+ output: workflow.output,
1162
+ steps: workflow.steps,
1163
+ signals: workflow.signals,
1164
+ queries: workflow.queries,
1165
+ options: workflow.options,
1166
+ envs: workflow.envs,
1167
+ };
1168
+ }
1169
+ }
1170
+ exports.WorkflowService = WorkflowService;
1171
+ // ==================== WORKFLOW COMPILER ====================
1172
+ /**
1173
+ * Recording context that captures step definitions during handler execution
1174
+ */
1175
+ class RecordingContext {
1176
+ constructor(_input, _workflowTag) {
1177
+ this._input = _input;
1178
+ this._workflowTag = _workflowTag;
1179
+ this._steps = [];
1180
+ this._stepOrder = 0;
1181
+ this._currentStepTag = null;
1182
+ this._pendingRollback = null;
1183
+ }
1184
+ // Readonly workflow metadata
1185
+ get input() {
1186
+ return this._input;
1187
+ }
1188
+ get workflow_id() {
1189
+ return `compile-${this._workflowTag}`;
1190
+ }
1191
+ get workflow_tag() {
1192
+ return this._workflowTag;
1193
+ }
1194
+ get env() {
1195
+ return 'compile';
1196
+ }
1197
+ get product() {
1198
+ return 'compile';
1199
+ }
1200
+ get context() {
1201
+ return {};
1202
+ }
1203
+ get state() {
1204
+ return {};
1205
+ }
1206
+ get steps() {
1207
+ return {};
1208
+ }
1209
+ get completed_steps() {
1210
+ return [];
1211
+ }
1212
+ get current_step() {
1213
+ return this._currentStepTag;
1214
+ }
1215
+ /**
1216
+ * Record a step definition
1217
+ */
1218
+ async step(tag, handler, rollback, options) {
1219
+ this._currentStepTag = tag;
1220
+ this._stepOrder++;
1221
+ // Create step placeholder - will be updated by component calls
1222
+ const step = {
1223
+ tag,
1224
+ type: productsBuilder_types_1.WorkflowStepType.ACTION,
1225
+ event: '',
1226
+ input: {},
1227
+ options,
1228
+ };
1229
+ // Execute handler to capture component calls
1230
+ try {
1231
+ await handler();
1232
+ }
1233
+ catch (e) {
1234
+ // Ignore errors during compilation - we're just tracing
1235
+ }
1236
+ // If rollback was provided, try to capture it
1237
+ if (rollback && this._pendingRollback) {
1238
+ step.rollback = this._pendingRollback;
1239
+ this._pendingRollback = null;
1240
+ }
1241
+ // Only add if step type was set by a component call
1242
+ if (step.event) {
1243
+ this._steps.push(step);
1244
+ }
1245
+ this._currentStepTag = null;
1246
+ // Return mock result
1247
+ return {};
1248
+ }
1249
+ // ==================== COMPONENT CONTEXTS ====================
1250
+ get action() {
1251
+ return {
1252
+ run: async (options) => {
1253
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.ACTION, options.action, {
1254
+ app: options.app,
1255
+ input: options.input,
1256
+ options: { retries: options.retries, timeout: options.timeout },
1257
+ });
1258
+ return {};
1259
+ return {};
1260
+ },
1261
+ };
1262
+ }
1263
+ get database() {
1264
+ return {
1265
+ execute: async (options) => {
1266
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.DATABASE_ACTION, options.event, {
1267
+ database: options.database,
1268
+ input: options.input,
1269
+ options: { retries: options.retries, timeout: options.timeout },
1270
+ });
1271
+ return {};
1272
+ },
1273
+ query: async (options) => {
1274
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.DATABASE_ACTION, options.event, {
1275
+ database: options.database,
1276
+ input: options.params || {},
1277
+ });
1278
+ return [];
1279
+ },
1280
+ insert: async (options) => {
1281
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.DATABASE_ACTION, options.event, {
1282
+ database: options.database,
1283
+ input: { data: options.data },
1284
+ });
1285
+ return {};
1286
+ },
1287
+ update: async (options) => {
1288
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.DATABASE_ACTION, options.event, {
1289
+ database: options.database,
1290
+ input: { data: options.data, where: options.where },
1291
+ });
1292
+ return {};
1293
+ },
1294
+ delete: async (options) => {
1295
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.DATABASE_ACTION, options.event, {
1296
+ database: options.database,
1297
+ input: { where: options.where },
1298
+ });
1299
+ return true;
1300
+ },
1301
+ };
1302
+ }
1303
+ get graph() {
1304
+ return {
1305
+ execute: async (options) => {
1306
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, options.action, {
1307
+ graph: options.graph,
1308
+ input: options.input,
1309
+ });
1310
+ return {};
1311
+ },
1312
+ createNode: async (options) => {
1313
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, 'createNode', {
1314
+ graph: options.graph,
1315
+ input: { labels: options.labels, properties: options.properties },
1316
+ });
1317
+ return {};
1318
+ },
1319
+ updateNode: async (options) => {
1320
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, 'updateNode', {
1321
+ graph: options.graph,
1322
+ input: { id: options.id, properties: options.properties },
1323
+ });
1324
+ return {};
1325
+ },
1326
+ deleteNode: async (options) => {
1327
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, 'deleteNode', {
1328
+ graph: options.graph,
1329
+ input: { id: options.id },
1330
+ });
1331
+ },
1332
+ createRelationship: async (options) => {
1333
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, 'createRelationship', {
1334
+ graph: options.graph,
1335
+ input: { from: options.from, to: options.to, type: options.type, properties: options.properties },
1336
+ });
1337
+ return {};
1338
+ },
1339
+ deleteRelationship: async (options) => {
1340
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, 'deleteRelationship', {
1341
+ graph: options.graph,
1342
+ input: { id: options.id },
1343
+ });
1344
+ },
1345
+ query: async (options) => {
1346
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.GRAPH, options.action, {
1347
+ graph: options.graph,
1348
+ input: options.params || {},
1349
+ });
1350
+ return [];
1351
+ },
1352
+ };
1353
+ }
1354
+ get notification() {
1355
+ return {
1356
+ send: async (options) => {
1357
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.NOTIFICATION, options.event, {
1358
+ notification: options.notification,
1359
+ input: options.input,
1360
+ options: { retries: options.retries },
1361
+ });
1362
+ },
1363
+ email: async (options) => {
1364
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.NOTIFICATION, options.event, {
1365
+ notification: options.notification,
1366
+ input: { recipients: options.recipients, subject: options.subject, template: options.template },
1367
+ });
1368
+ },
1369
+ push: async (options) => {
1370
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.NOTIFICATION, options.event, {
1371
+ notification: options.notification,
1372
+ input: { tokens: options.tokens, title: options.title, body: options.body, data: options.data },
1373
+ });
1374
+ },
1375
+ sms: async (options) => {
1376
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.NOTIFICATION, options.event, {
1377
+ notification: options.notification,
1378
+ input: { phones: options.phones, message: options.message },
1379
+ });
1380
+ },
1381
+ };
1382
+ }
1383
+ get storage() {
1384
+ return {
1385
+ upload: async (options) => {
1386
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.STORAGE, options.event, {
1387
+ storage: options.storage,
1388
+ input: options.input,
1389
+ options: { retries: options.retries },
1390
+ });
1391
+ return { file_key: '', url: '' };
1392
+ },
1393
+ download: async (options) => {
1394
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.STORAGE, options.event, {
1395
+ storage: options.storage,
1396
+ input: options.input,
1397
+ });
1398
+ return { content: '', content_type: '', size: 0 };
1399
+ },
1400
+ delete: async (options) => {
1401
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.STORAGE, options.event, {
1402
+ storage: options.storage,
1403
+ input: options.input,
1404
+ });
1405
+ },
1406
+ };
1407
+ }
1408
+ get publish() {
1409
+ return {
1410
+ send: async (options) => {
1411
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.PUBLISH, options.event, {
1412
+ broker: options.broker,
1413
+ input: options.input,
1414
+ options: { retries: options.retries },
1415
+ });
1416
+ },
1417
+ };
1418
+ }
1419
+ get feature() {
1420
+ return {
1421
+ run: async (options) => {
1422
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.FEATURE, options.feature, {
1423
+ input: options.input,
1424
+ options: { retries: options.retries, timeout: options.timeout },
1425
+ });
1426
+ return {};
1427
+ },
1428
+ };
1429
+ }
1430
+ get quota() {
1431
+ return {
1432
+ execute: async (options) => {
1433
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.QUOTA, 'execute', {
1434
+ quota: options.quota,
1435
+ input: options.input,
1436
+ options: { timeout: options.timeout },
1437
+ });
1438
+ return {};
1439
+ },
1440
+ };
1441
+ }
1442
+ get fallback() {
1443
+ return {
1444
+ execute: async (options) => {
1445
+ this._updateCurrentStep(productsBuilder_types_1.WorkflowStepType.FALLBACK, 'execute', {
1446
+ fallback: options.fallback,
1447
+ input: options.input,
1448
+ options: { timeout: options.timeout },
1449
+ });
1450
+ return {};
1451
+ },
1452
+ };
1453
+ }
1454
+ get healthcheck() {
1455
+ return {
1456
+ getStatus: async (tag) => {
1457
+ return { status: 'available', lastChecked: new Date().toISOString(), lastLatency: 0 };
1458
+ },
1459
+ };
1460
+ }
1461
+ get transform() {
1462
+ return {
1463
+ size: (obj) => Object.keys(obj).length,
1464
+ length: (arr) => arr.length,
1465
+ parseJson: (str) => JSON.parse(str),
1466
+ stringify: (obj) => JSON.stringify(obj),
1467
+ upper: (str) => str.toUpperCase(),
1468
+ lower: (str) => str.toLowerCase(),
1469
+ trim: (str) => str.trim(),
1470
+ split: (str, separator) => str.split(separator),
1471
+ join: (arr, separator) => arr.join(separator),
1472
+ now: () => Date.now(),
1473
+ formatDate: (date, format) => new Date(date).toISOString(),
1474
+ };
1475
+ }
1476
+ // ==================== DATA REFERENCES ====================
1477
+ variable(app, key) {
1478
+ return `$Variable{${app}}{${key}}`;
1479
+ }
1480
+ constant(app, key) {
1481
+ return `$Constant{${app}}{${key}}`;
1482
+ }
1483
+ token(key) {
1484
+ return `$Secret{${key}}`;
1485
+ }
1486
+ get auth() {
1487
+ return {};
1488
+ }
1489
+ default(value, fallback) {
1490
+ return value !== null && value !== void 0 ? value : fallback;
1491
+ }
1492
+ // ==================== CONTROL FLOW ====================
1493
+ async sleep(duration) {
1494
+ const ms = typeof duration === 'string' ? this._parseDuration(duration) : duration;
1495
+ this._addControlStep(productsBuilder_types_1.WorkflowStepType.SLEEP, 'sleep', { duration: ms });
1496
+ }
1497
+ async waitForSignal(signal, options) {
1498
+ const signals = Array.isArray(signal) ? signal : [signal];
1499
+ const timeout = (options === null || options === void 0 ? void 0 : options.timeout)
1500
+ ? typeof options.timeout === 'string'
1501
+ ? this._parseDuration(options.timeout)
1502
+ : options.timeout
1503
+ : undefined;
1504
+ this._addControlStep(productsBuilder_types_1.WorkflowStepType.WAIT_FOR_SIGNAL, signals[0], {
1505
+ signals,
1506
+ options: timeout ? { timeout } : undefined,
1507
+ });
1508
+ return {};
1509
+ }
1510
+ async checkpoint(name, metadata) {
1511
+ this._addControlStep(productsBuilder_types_1.WorkflowStepType.CHECKPOINT, name, { metadata });
1512
+ }
1513
+ // ==================== STATE MANAGEMENT ====================
1514
+ setState(key, value) {
1515
+ // No-op during compilation
1516
+ }
1517
+ getState(key) {
1518
+ return undefined;
1519
+ }
1520
+ // ==================== LOGGING ====================
1521
+ get log() {
1522
+ return {
1523
+ debug: (message, data) => { },
1524
+ info: (message, data) => { },
1525
+ warn: (message, data) => { },
1526
+ error: (message, data) => { },
1527
+ };
1528
+ }
1529
+ // ==================== CHILD WORKFLOWS ====================
1530
+ async workflow(childId, tag, input, options) {
1531
+ this._addControlStep(productsBuilder_types_1.WorkflowStepType.CHILD_WORKFLOW, 'execute', {
1532
+ workflow: tag,
1533
+ input,
1534
+ options: options
1535
+ ? {
1536
+ timeout: options.timeout
1537
+ ? typeof options.timeout === 'string'
1538
+ ? this._parseDuration(options.timeout)
1539
+ : options.timeout
1540
+ : undefined,
1541
+ retries: options.retries,
1542
+ }
1543
+ : undefined,
1544
+ });
1545
+ return {};
1546
+ }
1547
+ // ==================== ROLLBACK ====================
1548
+ async triggerRollback(reason) {
1549
+ return { success: true, rolled_back_steps: [], reason };
1550
+ }
1551
+ // ==================== INTERNAL HELPERS ====================
1552
+ _updateCurrentStep(type, event, data) {
1553
+ if (!this._currentStepTag)
1554
+ return;
1555
+ // Find or create the step
1556
+ let step = this._steps.find((s) => s.tag === this._currentStepTag);
1557
+ if (!step) {
1558
+ step = {
1559
+ tag: this._currentStepTag,
1560
+ type,
1561
+ event,
1562
+ input: data.input || {},
1563
+ };
1564
+ this._steps.push(step);
1565
+ }
1566
+ // Update step properties
1567
+ step.type = type;
1568
+ step.event = event;
1569
+ if (data.app)
1570
+ step.app = data.app;
1571
+ if (data.database)
1572
+ step.database = data.database;
1573
+ if (data.graph)
1574
+ step.graph = data.graph;
1575
+ if (data.storage)
1576
+ step.storage = data.storage;
1577
+ if (data.notification)
1578
+ step.notification = data.notification;
1579
+ if (data.broker)
1580
+ step.broker = data.broker;
1581
+ if (data.quota)
1582
+ step.quota = data.quota;
1583
+ if (data.fallback)
1584
+ step.fallback = data.fallback;
1585
+ if (data.workflow)
1586
+ step.workflow = data.workflow;
1587
+ if (data.input)
1588
+ step.input = data.input;
1589
+ if (data.options)
1590
+ step.options = Object.assign(Object.assign({}, step.options), data.options);
1591
+ }
1592
+ _addControlStep(type, event, data) {
1593
+ const tag = `${type}-${this._stepOrder++}`;
1594
+ this._steps.push({
1595
+ tag,
1596
+ type,
1597
+ event,
1598
+ input: data,
1599
+ });
1600
+ }
1601
+ _parseDuration(duration) {
1602
+ const match = duration.match(/^(\d+)(ms|s|m|h|d)$/);
1603
+ if (!match)
1604
+ return parseInt(duration, 10) || 0;
1605
+ const value = parseInt(match[1], 10);
1606
+ const unit = match[2];
1607
+ switch (unit) {
1608
+ case 'ms':
1609
+ return value;
1610
+ case 's':
1611
+ return value * 1000;
1612
+ case 'm':
1613
+ return value * 60 * 1000;
1614
+ case 'h':
1615
+ return value * 60 * 60 * 1000;
1616
+ case 'd':
1617
+ return value * 24 * 60 * 60 * 1000;
1618
+ default:
1619
+ return value;
1620
+ }
1621
+ }
1622
+ /** Get collected steps */
1623
+ getSteps() {
1624
+ return this._steps;
1625
+ }
1626
+ }
1627
+ /**
1628
+ * Compiles code-first workflow definitions to JSON schema
1629
+ * Uses runtime handler tracing to capture step definitions
1630
+ */
1631
+ class WorkflowCompiler {
1632
+ constructor(options) {
1633
+ this.options = options;
1634
+ }
1635
+ /**
1636
+ * Compile the workflow definition to JSON schema
1637
+ * Executes the handler with a recording context to capture step definitions
1638
+ */
1639
+ compile() {
1640
+ // Create recording context with mock input
1641
+ const mockInput = {};
1642
+ const recordingCtx = new RecordingContext(mockInput, this.options.tag);
1643
+ // Execute handler to trace step definitions
1644
+ try {
1645
+ // Run the handler synchronously to capture all step calls
1646
+ // Note: This won't await async operations, but will capture the step structure
1647
+ const handlerPromise = this.options.handler(recordingCtx);
1648
+ // For synchronous tracing, we don't need to await
1649
+ // The recording context captures calls as they're made
1650
+ if (handlerPromise && typeof handlerPromise.then === 'function') {
1651
+ // Handler is async - we capture what we can synchronously
1652
+ // For full async tracing, use compileAsync()
1653
+ }
1654
+ }
1655
+ catch (e) {
1656
+ // Ignore errors during compilation - we're tracing structure, not executing
1657
+ }
1658
+ return {
1659
+ name: this.options.name,
1660
+ tag: this.options.tag,
1661
+ description: this.options.description,
1662
+ input: {},
1663
+ output: {},
1664
+ steps: recordingCtx.getSteps(),
1665
+ signals: this.options.signals
1666
+ ? Object.fromEntries(Object.entries(this.options.signals).map(([name, config]) => [name, { name, input: config.input }]))
1667
+ : undefined,
1668
+ queries: this.options.queries
1669
+ ? Object.fromEntries(Object.entries(this.options.queries).map(([name, config]) => {
1670
+ var _a;
1671
+ return [
1672
+ name,
1673
+ { name, handler: (_a = config.handler) === null || _a === void 0 ? void 0 : _a.toString() },
1674
+ ];
1675
+ }))
1676
+ : undefined,
1677
+ options: this.options.options,
1678
+ envs: this.options.envs,
1679
+ };
1680
+ }
1681
+ /**
1682
+ * Compile the workflow definition asynchronously
1683
+ * Fully awaits the handler to capture all step definitions
1684
+ */
1685
+ async compileAsync() {
1686
+ // Create recording context with mock input
1687
+ const mockInput = {};
1688
+ const recordingCtx = new RecordingContext(mockInput, this.options.tag);
1689
+ // Execute handler to trace step definitions
1690
+ try {
1691
+ await this.options.handler(recordingCtx);
1692
+ }
1693
+ catch (e) {
1694
+ // Ignore errors during compilation - we're tracing structure, not executing
1695
+ }
1696
+ return {
1697
+ name: this.options.name,
1698
+ tag: this.options.tag,
1699
+ description: this.options.description,
1700
+ input: {},
1701
+ output: {},
1702
+ steps: recordingCtx.getSteps(),
1703
+ signals: this.options.signals
1704
+ ? Object.fromEntries(Object.entries(this.options.signals).map(([name, config]) => [name, { name, input: config.input }]))
1705
+ : undefined,
1706
+ queries: this.options.queries
1707
+ ? Object.fromEntries(Object.entries(this.options.queries).map(([name, config]) => {
1708
+ var _a;
1709
+ return [
1710
+ name,
1711
+ { name, handler: (_a = config.handler) === null || _a === void 0 ? void 0 : _a.toString() },
1712
+ ];
1713
+ }))
1714
+ : undefined,
1715
+ options: this.options.options,
1716
+ envs: this.options.envs,
1717
+ };
1718
+ }
1719
+ }
1720
+ // Export singleton instance for convenience
1721
+ exports.workflowService = new WorkflowService();
1722
+ // Default export
1723
+ exports.default = WorkflowService;
1724
+ //# sourceMappingURL=workflows.service.js.map