@ductape/sdk 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1000) hide show
  1. package/dist/agents/agent-context.d.ts +100 -0
  2. package/dist/agents/agent-context.js +604 -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 +1255 -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 +1240 -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 +78 -0
  29. package/dist/api/services/appApi.service.js +303 -0
  30. package/dist/api/services/appApi.service.js.map +1 -0
  31. package/dist/api/services/cloudApi.service.d.ts +31 -0
  32. package/dist/api/services/cloudApi.service.js +103 -0
  33. package/dist/api/services/cloudApi.service.js.map +1 -0
  34. package/dist/api/services/logsApi.service.d.ts +62 -0
  35. package/dist/api/services/logsApi.service.js +67 -0
  36. package/dist/api/services/logsApi.service.js.map +1 -0
  37. package/dist/api/services/pricingApi.service.d.ts +10 -0
  38. package/dist/api/services/pricingApi.service.js +34 -0
  39. package/dist/api/services/pricingApi.service.js.map +1 -0
  40. package/dist/api/services/processorApi.service.d.ts +927 -0
  41. package/dist/api/services/processorApi.service.js +787 -0
  42. package/dist/api/services/processorApi.service.js.map +1 -0
  43. package/dist/api/services/productsApi.service.d.ts +167 -0
  44. package/dist/api/services/productsApi.service.js +293 -0
  45. package/dist/api/services/productsApi.service.js.map +1 -0
  46. package/dist/api/services/resilienceApi.service.d.ts +106 -0
  47. package/dist/api/services/resilienceApi.service.js +224 -0
  48. package/dist/api/services/resilienceApi.service.js.map +1 -0
  49. package/dist/api/services/secretsApi.service.d.ts +51 -0
  50. package/dist/api/services/secretsApi.service.js +126 -0
  51. package/dist/api/services/secretsApi.service.js.map +1 -0
  52. package/dist/api/services/userApi.service.d.ts +10 -0
  53. package/dist/api/services/userApi.service.js +20 -0
  54. package/dist/api/services/userApi.service.js.map +1 -0
  55. package/dist/api/services/webhooksApi.service.d.ts +14 -0
  56. package/dist/api/services/webhooksApi.service.js +65 -0
  57. package/dist/api/services/webhooksApi.service.js.map +1 -0
  58. package/dist/api/services/workflowApi.service.d.ts +199 -0
  59. package/dist/api/services/workflowApi.service.js +201 -0
  60. package/dist/api/services/workflowApi.service.js.map +1 -0
  61. package/dist/api/services/workspaceApi.service.d.ts +20 -0
  62. package/dist/api/services/workspaceApi.service.js +54 -0
  63. package/dist/api/services/workspaceApi.service.js.map +1 -0
  64. package/dist/api/urls.d.ts +145 -0
  65. package/dist/api/urls.js +195 -0
  66. package/dist/api/urls.js.map +1 -0
  67. package/dist/api/utils/auth.utils.d.ts +10 -0
  68. package/dist/api/utils/auth.utils.js +24 -0
  69. package/dist/api/utils/auth.utils.js.map +1 -0
  70. package/dist/api/utils/cache.utils.d.ts +3 -0
  71. package/dist/api/utils/cache.utils.js +18 -0
  72. package/dist/api/utils/cache.utils.js.map +1 -0
  73. package/dist/api/utils/integration-api-error.d.ts +6 -0
  74. package/dist/api/utils/integration-api-error.js +45 -0
  75. package/dist/api/utils/integration-api-error.js.map +1 -0
  76. package/dist/api/utils/strings.utils.d.ts +7 -0
  77. package/dist/api/utils/strings.utils.js +64 -0
  78. package/dist/api/utils/strings.utils.js.map +1 -0
  79. package/dist/apps/services/app.service.d.ts +126 -0
  80. package/dist/apps/services/app.service.js +1436 -0
  81. package/dist/apps/services/app.service.js.map +1 -0
  82. package/dist/apps/utils/auth-context-manager.d.ts +137 -0
  83. package/dist/apps/utils/auth-context-manager.js +248 -0
  84. package/dist/apps/utils/auth-context-manager.js.map +1 -0
  85. package/dist/apps/utils/credential-manager.d.ts +128 -0
  86. package/dist/apps/utils/credential-manager.js +199 -0
  87. package/dist/apps/utils/credential-manager.js.map +1 -0
  88. package/dist/apps/utils/index.d.ts +10 -0
  89. package/dist/apps/utils/index.js +54 -0
  90. package/dist/apps/utils/index.js.map +1 -0
  91. package/dist/apps/utils/input-helpers.d.ts +67 -0
  92. package/dist/apps/utils/input-helpers.js +185 -0
  93. package/dist/apps/utils/input-helpers.js.map +1 -0
  94. package/dist/apps/utils/input-resolver.d.ts +165 -0
  95. package/dist/apps/utils/input-resolver.js +477 -0
  96. package/dist/apps/utils/input-resolver.js.map +1 -0
  97. package/dist/apps/utils/oauth-manager.d.ts +196 -0
  98. package/dist/apps/utils/oauth-manager.js +429 -0
  99. package/dist/apps/utils/oauth-manager.js.map +1 -0
  100. package/dist/apps/utils/objects.utils.d.ts +4 -0
  101. package/dist/apps/utils/objects.utils.js +59 -0
  102. package/dist/apps/utils/objects.utils.js.map +1 -0
  103. package/dist/apps/utils/string.utils.d.ts +9 -0
  104. package/dist/apps/utils/string.utils.js +89 -0
  105. package/dist/apps/utils/string.utils.js.map +1 -0
  106. package/dist/apps/validators/index.d.ts +17 -0
  107. package/dist/apps/validators/index.js +39 -0
  108. package/dist/apps/validators/index.js.map +1 -0
  109. package/dist/apps/validators/joi-validators/create.app.validator.d.ts +3 -0
  110. package/dist/apps/validators/joi-validators/create.app.validator.js +43 -0
  111. package/dist/apps/validators/joi-validators/create.app.validator.js.map +1 -0
  112. package/dist/apps/validators/joi-validators/create.appAction.validator.d.ts +3 -0
  113. package/dist/apps/validators/joi-validators/create.appAction.validator.js +72 -0
  114. package/dist/apps/validators/joi-validators/create.appAction.validator.js.map +1 -0
  115. package/dist/apps/validators/joi-validators/create.appActionResponse.validator.d.ts +7 -0
  116. package/dist/apps/validators/joi-validators/create.appActionResponse.validator.js +81 -0
  117. package/dist/apps/validators/joi-validators/create.appActionResponse.validator.js.map +1 -0
  118. package/dist/apps/validators/joi-validators/create.appAuth.validator.d.ts +3 -0
  119. package/dist/apps/validators/joi-validators/create.appAuth.validator.js +64 -0
  120. package/dist/apps/validators/joi-validators/create.appAuth.validator.js.map +1 -0
  121. package/dist/apps/validators/joi-validators/create.appBody.validators.d.ts +4 -0
  122. package/dist/apps/validators/joi-validators/create.appBody.validators.js +44 -0
  123. package/dist/apps/validators/joi-validators/create.appBody.validators.js.map +1 -0
  124. package/dist/apps/validators/joi-validators/create.appConstants.validator.d.ts +4 -0
  125. package/dist/apps/validators/joi-validators/create.appConstants.validator.js +45 -0
  126. package/dist/apps/validators/joi-validators/create.appConstants.validator.js.map +1 -0
  127. package/dist/apps/validators/joi-validators/create.appEnv.validator.d.ts +4 -0
  128. package/dist/apps/validators/joi-validators/create.appEnv.validator.js +50 -0
  129. package/dist/apps/validators/joi-validators/create.appEnv.validator.js.map +1 -0
  130. package/dist/apps/validators/joi-validators/create.appVariable.validator.d.ts +4 -0
  131. package/dist/apps/validators/joi-validators/create.appVariable.validator.js +47 -0
  132. package/dist/apps/validators/joi-validators/create.appVariable.validator.js.map +1 -0
  133. package/dist/apps/validators/joi-validators/create.appWebhook.validator.d.ts +4 -0
  134. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js +60 -0
  135. package/dist/apps/validators/joi-validators/create.appWebhook.validator.js.map +1 -0
  136. package/dist/apps/validators/joi-validators/create.appWebhookEvent.validator.d.ts +3 -0
  137. package/dist/apps/validators/joi-validators/create.appWebhookEvent.validator.js +48 -0
  138. package/dist/apps/validators/joi-validators/create.appWebhookEvent.validator.js.map +1 -0
  139. package/dist/apps/validators/joi-validators/sample.validator.d.ts +6 -0
  140. package/dist/apps/validators/joi-validators/sample.validator.js +65 -0
  141. package/dist/apps/validators/joi-validators/sample.validator.js.map +1 -0
  142. package/dist/apps/validators/joi-validators/update.app.validator.d.ts +4 -0
  143. package/dist/apps/validators/joi-validators/update.app.validator.js +66 -0
  144. package/dist/apps/validators/joi-validators/update.app.validator.js.map +1 -0
  145. package/dist/apps/validators/joi-validators/update.appAction.validator.d.ts +4 -0
  146. package/dist/apps/validators/joi-validators/update.appAction.validator.js +76 -0
  147. package/dist/apps/validators/joi-validators/update.appAction.validator.js.map +1 -0
  148. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.d.ts +3 -0
  149. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js +57 -0
  150. package/dist/apps/validators/joi-validators/update.appActionResponse.validator.js.map +1 -0
  151. package/dist/apps/validators/joi-validators/update.appAuth.validator.d.ts +4 -0
  152. package/dist/apps/validators/joi-validators/update.appAuth.validator.js +52 -0
  153. package/dist/apps/validators/joi-validators/update.appAuth.validator.js.map +1 -0
  154. package/dist/apps/validators/joi-validators/update.appConstants.validator.d.ts +4 -0
  155. package/dist/apps/validators/joi-validators/update.appConstants.validator.js +45 -0
  156. package/dist/apps/validators/joi-validators/update.appConstants.validator.js.map +1 -0
  157. package/dist/apps/validators/joi-validators/update.appEnv.validator.d.ts +4 -0
  158. package/dist/apps/validators/joi-validators/update.appEnv.validator.js +50 -0
  159. package/dist/apps/validators/joi-validators/update.appEnv.validator.js.map +1 -0
  160. package/dist/apps/validators/joi-validators/update.appVariables.validator.d.ts +4 -0
  161. package/dist/apps/validators/joi-validators/update.appVariables.validator.js +47 -0
  162. package/dist/apps/validators/joi-validators/update.appVariables.validator.js.map +1 -0
  163. package/dist/apps/validators/joi-validators/update.appWebhook.validator.d.ts +4 -0
  164. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js +59 -0
  165. package/dist/apps/validators/joi-validators/update.appWebhook.validator.js.map +1 -0
  166. package/dist/apps/validators/joi-validators/update.appWebhookEvent.validator.d.ts +3 -0
  167. package/dist/apps/validators/joi-validators/update.appWebhookEvent.validator.js +48 -0
  168. package/dist/apps/validators/joi-validators/update.appWebhookEvent.validator.js.map +1 -0
  169. package/dist/apps/validators/joi-validators/update.validation.entityData.validator.d.ts +3 -0
  170. package/dist/apps/validators/joi-validators/update.validation.entityData.validator.js +60 -0
  171. package/dist/apps/validators/joi-validators/update.validation.entityData.validator.js.map +1 -0
  172. package/dist/bin.d.ts +26 -0
  173. package/dist/bin.js +28 -0
  174. package/dist/bin.js.map +1 -0
  175. package/dist/brokers/brokers.service.d.ts +438 -0
  176. package/dist/brokers/brokers.service.js +1315 -0
  177. package/dist/brokers/brokers.service.js.map +1 -0
  178. package/dist/brokers/index.d.ts +46 -0
  179. package/dist/brokers/index.js +83 -0
  180. package/dist/brokers/index.js.map +1 -0
  181. package/dist/brokers/types/index.d.ts +569 -0
  182. package/dist/brokers/types/index.js +8 -0
  183. package/dist/brokers/types/index.js.map +1 -0
  184. package/dist/brokers/utils/broker.util.d.ts +33 -0
  185. package/dist/brokers/utils/broker.util.js +125 -0
  186. package/dist/brokers/utils/broker.util.js.map +1 -0
  187. package/dist/brokers/utils/providers/aws-sqs.service.d.ts +16 -0
  188. package/dist/brokers/utils/providers/aws-sqs.service.js +71 -0
  189. package/dist/brokers/utils/providers/aws-sqs.service.js.map +1 -0
  190. package/dist/brokers/utils/providers/google-pubsub.service.d.ts +16 -0
  191. package/dist/brokers/utils/providers/google-pubsub.service.js +43 -0
  192. package/dist/brokers/utils/providers/google-pubsub.service.js.map +1 -0
  193. package/dist/brokers/utils/providers/index.d.ts +6 -0
  194. package/dist/brokers/utils/providers/index.js +16 -0
  195. package/dist/brokers/utils/providers/index.js.map +1 -0
  196. package/dist/brokers/utils/providers/kafka.service.d.ts +23 -0
  197. package/dist/brokers/utils/providers/kafka.service.js +131 -0
  198. package/dist/brokers/utils/providers/kafka.service.js.map +1 -0
  199. package/dist/brokers/utils/providers/nats.service.d.ts +18 -0
  200. package/dist/brokers/utils/providers/nats.service.js +63 -0
  201. package/dist/brokers/utils/providers/nats.service.js.map +1 -0
  202. package/dist/brokers/utils/providers/rabbitmq.service.d.ts +25 -0
  203. package/dist/brokers/utils/providers/rabbitmq.service.js +138 -0
  204. package/dist/brokers/utils/providers/rabbitmq.service.js.map +1 -0
  205. package/dist/brokers/utils/providers/redis.service.d.ts +18 -0
  206. package/dist/brokers/utils/providers/redis.service.js +93 -0
  207. package/dist/brokers/utils/providers/redis.service.js.map +1 -0
  208. package/dist/cache/cache.manager.d.ts +308 -0
  209. package/dist/cache/cache.manager.js +900 -0
  210. package/dist/cache/cache.manager.js.map +1 -0
  211. package/dist/cache/cache.service.d.ts +194 -0
  212. package/dist/cache/cache.service.js +601 -0
  213. package/dist/cache/cache.service.js.map +1 -0
  214. package/dist/cache/index.d.ts +52 -0
  215. package/dist/cache/index.js +81 -0
  216. package/dist/cache/index.js.map +1 -0
  217. package/dist/cache/types/index.d.ts +114 -0
  218. package/dist/cache/types/index.js +6 -0
  219. package/dist/cache/types/index.js.map +1 -0
  220. package/dist/clients/apps.client.d.ts +4 -0
  221. package/dist/clients/apps.client.js +31 -0
  222. package/dist/clients/apps.client.js.map +1 -0
  223. package/dist/clients/email.client.d.ts +4 -0
  224. package/dist/clients/email.client.js +29 -0
  225. package/dist/clients/email.client.js.map +1 -0
  226. package/dist/clients/expo.client.d.ts +3 -0
  227. package/dist/clients/expo.client.js +28 -0
  228. package/dist/clients/expo.client.js.map +1 -0
  229. package/dist/clients/function.client.d.ts +3 -0
  230. package/dist/clients/function.client.js +27 -0
  231. package/dist/clients/function.client.js.map +1 -0
  232. package/dist/clients/http.client.d.ts +3 -0
  233. package/dist/clients/http.client.js +27 -0
  234. package/dist/clients/http.client.js.map +1 -0
  235. package/dist/clients/logs.client.d.ts +4 -0
  236. package/dist/clients/logs.client.js +34 -0
  237. package/dist/clients/logs.client.js.map +1 -0
  238. package/dist/clients/pricing.client.d.ts +4 -0
  239. package/dist/clients/pricing.client.js +34 -0
  240. package/dist/clients/pricing.client.js.map +1 -0
  241. package/dist/clients/products.client.d.ts +3 -0
  242. package/dist/clients/products.client.js +32 -0
  243. package/dist/clients/products.client.js.map +1 -0
  244. package/dist/clients/users.client.d.ts +4 -0
  245. package/dist/clients/users.client.js +34 -0
  246. package/dist/clients/users.client.js.map +1 -0
  247. package/dist/clients/webhooks.client.d.ts +4 -0
  248. package/dist/clients/webhooks.client.js +34 -0
  249. package/dist/clients/webhooks.client.js.map +1 -0
  250. package/dist/clients/workspace.client.d.ts +7 -0
  251. package/dist/clients/workspace.client.js +39 -0
  252. package/dist/clients/workspace.client.js.map +1 -0
  253. package/dist/cloud/cloud-runtime.util.d.ts +22 -0
  254. package/dist/cloud/cloud-runtime.util.js +61 -0
  255. package/dist/cloud/cloud-runtime.util.js.map +1 -0
  256. package/dist/cloud/cloud.service.d.ts +43 -0
  257. package/dist/cloud/cloud.service.js +121 -0
  258. package/dist/cloud/cloud.service.js.map +1 -0
  259. package/dist/cloud/index.d.ts +5 -0
  260. package/dist/cloud/index.js +25 -0
  261. package/dist/cloud/index.js.map +1 -0
  262. package/dist/cloud/types/cloud.types.d.ts +140 -0
  263. package/dist/cloud/types/cloud.types.js +6 -0
  264. package/dist/cloud/types/cloud.types.js.map +1 -0
  265. package/dist/cloud/types/index.d.ts +1 -0
  266. package/dist/cloud/types/index.js +18 -0
  267. package/dist/cloud/types/index.js.map +1 -0
  268. package/dist/database/actions/action-manager.d.ts +170 -0
  269. package/dist/database/actions/action-manager.js +465 -0
  270. package/dist/database/actions/action-manager.js.map +1 -0
  271. package/dist/database/actions/index.d.ts +6 -0
  272. package/dist/database/actions/index.js +13 -0
  273. package/dist/database/actions/index.js.map +1 -0
  274. package/dist/database/adapters/adapter.factory.d.ts +62 -0
  275. package/dist/database/adapters/adapter.factory.js +97 -0
  276. package/dist/database/adapters/adapter.factory.js.map +1 -0
  277. package/dist/database/adapters/base.adapter.d.ts +423 -0
  278. package/dist/database/adapters/base.adapter.js +260 -0
  279. package/dist/database/adapters/base.adapter.js.map +1 -0
  280. package/dist/database/adapters/cassandra.adapter.d.ts +92 -0
  281. package/dist/database/adapters/cassandra.adapter.js +1091 -0
  282. package/dist/database/adapters/cassandra.adapter.js.map +1 -0
  283. package/dist/database/adapters/dynamodb.adapter.d.ts +110 -0
  284. package/dist/database/adapters/dynamodb.adapter.js +1564 -0
  285. package/dist/database/adapters/dynamodb.adapter.js.map +1 -0
  286. package/dist/database/adapters/index.d.ts +11 -0
  287. package/dist/database/adapters/index.js +27 -0
  288. package/dist/database/adapters/index.js.map +1 -0
  289. package/dist/database/adapters/mariadb.adapter.d.ts +100 -0
  290. package/dist/database/adapters/mariadb.adapter.js +247 -0
  291. package/dist/database/adapters/mariadb.adapter.js.map +1 -0
  292. package/dist/database/adapters/mongodb.adapter.d.ts +121 -0
  293. package/dist/database/adapters/mongodb.adapter.js +1284 -0
  294. package/dist/database/adapters/mongodb.adapter.js.map +1 -0
  295. package/dist/database/adapters/mysql.adapter.d.ts +86 -0
  296. package/dist/database/adapters/mysql.adapter.js +1371 -0
  297. package/dist/database/adapters/mysql.adapter.js.map +1 -0
  298. package/dist/database/adapters/postgresql.adapter.d.ts +90 -0
  299. package/dist/database/adapters/postgresql.adapter.js +1487 -0
  300. package/dist/database/adapters/postgresql.adapter.js.map +1 -0
  301. package/dist/database/databases.service.d.ts +1526 -0
  302. package/dist/database/databases.service.js +3370 -0
  303. package/dist/database/databases.service.js.map +1 -0
  304. package/dist/database/index.d.ts +46 -0
  305. package/dist/database/index.js +109 -0
  306. package/dist/database/index.js.map +1 -0
  307. package/dist/database/migrations/index.d.ts +6 -0
  308. package/dist/database/migrations/index.js +12 -0
  309. package/dist/database/migrations/index.js.map +1 -0
  310. package/dist/database/migrations/migration-engine.d.ts +136 -0
  311. package/dist/database/migrations/migration-engine.js +1421 -0
  312. package/dist/database/migrations/migration-engine.js.map +1 -0
  313. package/dist/database/operators/aggregation-builder.d.ts +67 -0
  314. package/dist/database/operators/aggregation-builder.js +841 -0
  315. package/dist/database/operators/aggregation-builder.js.map +1 -0
  316. package/dist/database/operators/index.d.ts +7 -0
  317. package/dist/database/operators/index.js +15 -0
  318. package/dist/database/operators/index.js.map +1 -0
  319. package/dist/database/operators/query-builder.d.ts +69 -0
  320. package/dist/database/operators/query-builder.js +447 -0
  321. package/dist/database/operators/query-builder.js.map +1 -0
  322. package/dist/database/presave/decrypt.d.ts +25 -0
  323. package/dist/database/presave/decrypt.js +146 -0
  324. package/dist/database/presave/decrypt.js.map +1 -0
  325. package/dist/database/presave/index.d.ts +9 -0
  326. package/dist/database/presave/index.js +18 -0
  327. package/dist/database/presave/index.js.map +1 -0
  328. package/dist/database/presave/presave-processor.d.ts +148 -0
  329. package/dist/database/presave/presave-processor.js +702 -0
  330. package/dist/database/presave/presave-processor.js.map +1 -0
  331. package/dist/database/schema/index.d.ts +7 -0
  332. package/dist/database/schema/index.js +13 -0
  333. package/dist/database/schema/index.js.map +1 -0
  334. package/dist/database/schema/schema-manager.d.ts +258 -0
  335. package/dist/database/schema/schema-manager.js +638 -0
  336. package/dist/database/schema/schema-manager.js.map +1 -0
  337. package/dist/database/transactions/index.d.ts +6 -0
  338. package/dist/database/transactions/index.js +13 -0
  339. package/dist/database/transactions/index.js.map +1 -0
  340. package/dist/database/transactions/transaction-manager.d.ts +113 -0
  341. package/dist/database/transactions/transaction-manager.js +344 -0
  342. package/dist/database/transactions/transaction-manager.js.map +1 -0
  343. package/dist/database/triggers/index.d.ts +7 -0
  344. package/dist/database/triggers/index.js +14 -0
  345. package/dist/database/triggers/index.js.map +1 -0
  346. package/dist/database/triggers/trigger-processor.d.ts +239 -0
  347. package/dist/database/triggers/trigger-processor.js +1034 -0
  348. package/dist/database/triggers/trigger-processor.js.map +1 -0
  349. package/dist/database/types/action.interface.d.ts +148 -0
  350. package/dist/database/types/action.interface.js +6 -0
  351. package/dist/database/types/action.interface.js.map +1 -0
  352. package/dist/database/types/aggregation.interface.d.ts +185 -0
  353. package/dist/database/types/aggregation.interface.js +6 -0
  354. package/dist/database/types/aggregation.interface.js.map +1 -0
  355. package/dist/database/types/connection.interface.d.ts +141 -0
  356. package/dist/database/types/connection.interface.js +6 -0
  357. package/dist/database/types/connection.interface.js.map +1 -0
  358. package/dist/database/types/dashboard.interface.d.ts +74 -0
  359. package/dist/database/types/dashboard.interface.js +7 -0
  360. package/dist/database/types/dashboard.interface.js.map +1 -0
  361. package/dist/database/types/enums.d.ts +195 -0
  362. package/dist/database/types/enums.js +244 -0
  363. package/dist/database/types/enums.js.map +1 -0
  364. package/dist/database/types/index.d.ts +15 -0
  365. package/dist/database/types/index.js +31 -0
  366. package/dist/database/types/index.js.map +1 -0
  367. package/dist/database/types/migration.interface.d.ts +686 -0
  368. package/dist/database/types/migration.interface.js +9 -0
  369. package/dist/database/types/migration.interface.js.map +1 -0
  370. package/dist/database/types/presave.interface.d.ts +292 -0
  371. package/dist/database/types/presave.interface.js +60 -0
  372. package/dist/database/types/presave.interface.js.map +1 -0
  373. package/dist/database/types/query.interface.d.ts +205 -0
  374. package/dist/database/types/query.interface.js +6 -0
  375. package/dist/database/types/query.interface.js.map +1 -0
  376. package/dist/database/types/schema.interface.d.ts +412 -0
  377. package/dist/database/types/schema.interface.js +6 -0
  378. package/dist/database/types/schema.interface.js.map +1 -0
  379. package/dist/database/types/transaction.interface.d.ts +84 -0
  380. package/dist/database/types/transaction.interface.js +6 -0
  381. package/dist/database/types/transaction.interface.js.map +1 -0
  382. package/dist/database/types/trigger.interface.d.ts +612 -0
  383. package/dist/database/types/trigger.interface.js +121 -0
  384. package/dist/database/types/trigger.interface.js.map +1 -0
  385. package/dist/database/types/write.interface.d.ts +216 -0
  386. package/dist/database/types/write.interface.js +6 -0
  387. package/dist/database/types/write.interface.js.map +1 -0
  388. package/dist/database/utils/database-error.d.ts +96 -0
  389. package/dist/database/utils/database-error.js +221 -0
  390. package/dist/database/utils/database-error.js.map +1 -0
  391. package/dist/database/utils/index.d.ts +6 -0
  392. package/dist/database/utils/index.js +11 -0
  393. package/dist/database/utils/index.js.map +1 -0
  394. package/dist/graph/adapters/adapter.factory.d.ts +47 -0
  395. package/dist/graph/adapters/adapter.factory.js +77 -0
  396. package/dist/graph/adapters/adapter.factory.js.map +1 -0
  397. package/dist/graph/adapters/arangodb.adapter.d.ts +86 -0
  398. package/dist/graph/adapters/arangodb.adapter.js +1588 -0
  399. package/dist/graph/adapters/arangodb.adapter.js.map +1 -0
  400. package/dist/graph/adapters/base.adapter.d.ts +264 -0
  401. package/dist/graph/adapters/base.adapter.js +156 -0
  402. package/dist/graph/adapters/base.adapter.js.map +1 -0
  403. package/dist/graph/adapters/index.d.ts +11 -0
  404. package/dist/graph/adapters/index.js +21 -0
  405. package/dist/graph/adapters/index.js.map +1 -0
  406. package/dist/graph/adapters/memgraph.adapter.d.ts +110 -0
  407. package/dist/graph/adapters/memgraph.adapter.js +1452 -0
  408. package/dist/graph/adapters/memgraph.adapter.js.map +1 -0
  409. package/dist/graph/adapters/neo4j.adapter.d.ts +81 -0
  410. package/dist/graph/adapters/neo4j.adapter.js +1317 -0
  411. package/dist/graph/adapters/neo4j.adapter.js.map +1 -0
  412. package/dist/graph/adapters/neptune.adapter.d.ts +82 -0
  413. package/dist/graph/adapters/neptune.adapter.js +1369 -0
  414. package/dist/graph/adapters/neptune.adapter.js.map +1 -0
  415. package/dist/graph/graphs.service.d.ts +633 -0
  416. package/dist/graph/graphs.service.js +2684 -0
  417. package/dist/graph/graphs.service.js.map +1 -0
  418. package/dist/graph/index.d.ts +58 -0
  419. package/dist/graph/index.js +77 -0
  420. package/dist/graph/index.js.map +1 -0
  421. package/dist/graph/transactions/index.d.ts +4 -0
  422. package/dist/graph/transactions/index.js +9 -0
  423. package/dist/graph/transactions/index.js.map +1 -0
  424. package/dist/graph/transactions/transaction-manager.d.ts +61 -0
  425. package/dist/graph/transactions/transaction-manager.js +126 -0
  426. package/dist/graph/transactions/transaction-manager.js.map +1 -0
  427. package/dist/graph/types/connection.interface.d.ts +161 -0
  428. package/dist/graph/types/connection.interface.js +9 -0
  429. package/dist/graph/types/connection.interface.js.map +1 -0
  430. package/dist/graph/types/enums.d.ts +101 -0
  431. package/dist/graph/types/enums.js +114 -0
  432. package/dist/graph/types/enums.js.map +1 -0
  433. package/dist/graph/types/index.d.ts +13 -0
  434. package/dist/graph/types/index.js +20 -0
  435. package/dist/graph/types/index.js.map +1 -0
  436. package/dist/graph/types/node.interface.d.ts +248 -0
  437. package/dist/graph/types/node.interface.js +9 -0
  438. package/dist/graph/types/node.interface.js.map +1 -0
  439. package/dist/graph/types/query.interface.d.ts +175 -0
  440. package/dist/graph/types/query.interface.js +9 -0
  441. package/dist/graph/types/query.interface.js.map +1 -0
  442. package/dist/graph/types/relationship.interface.d.ts +207 -0
  443. package/dist/graph/types/relationship.interface.js +9 -0
  444. package/dist/graph/types/relationship.interface.js.map +1 -0
  445. package/dist/graph/types/schema.interface.d.ts +295 -0
  446. package/dist/graph/types/schema.interface.js +9 -0
  447. package/dist/graph/types/schema.interface.js.map +1 -0
  448. package/dist/graph/types/transaction.interface.d.ts +55 -0
  449. package/dist/graph/types/transaction.interface.js +9 -0
  450. package/dist/graph/types/transaction.interface.js.map +1 -0
  451. package/dist/graph/types/traversal.interface.d.ts +181 -0
  452. package/dist/graph/types/traversal.interface.js +9 -0
  453. package/dist/graph/types/traversal.interface.js.map +1 -0
  454. package/dist/graph/utils/graph-error.d.ts +71 -0
  455. package/dist/graph/utils/graph-error.js +142 -0
  456. package/dist/graph/utils/graph-error.js.map +1 -0
  457. package/dist/graph/utils/index.d.ts +4 -0
  458. package/dist/graph/utils/index.js +9 -0
  459. package/dist/graph/utils/index.js.map +1 -0
  460. package/dist/imports/imports.repo.d.ts +0 -0
  461. package/dist/imports/imports.repo.js +1 -0
  462. package/dist/imports/imports.repo.js.map +1 -0
  463. package/dist/imports/imports.service.d.ts +23 -0
  464. package/dist/imports/imports.service.js +71 -0
  465. package/dist/imports/imports.service.js.map +1 -0
  466. package/dist/imports/imports.types.d.ts +350 -0
  467. package/dist/imports/imports.types.js +33 -0
  468. package/dist/imports/imports.types.js.map +1 -0
  469. package/dist/imports/openAPI3.0.types.d.ts +52 -0
  470. package/dist/imports/openAPI3.0.types.js +3 -0
  471. package/dist/imports/openAPI3.0.types.js.map +1 -0
  472. package/dist/imports/repos/openApi.repo.d.ts +6 -0
  473. package/dist/imports/repos/openApi.repo.js +422 -0
  474. package/dist/imports/repos/openApi.repo.js.map +1 -0
  475. package/dist/imports/repos/postmanV21.repo.d.ts +14 -0
  476. package/dist/imports/repos/postmanV21.repo.js +257 -0
  477. package/dist/imports/repos/postmanV21.repo.js.map +1 -0
  478. package/dist/imports/utils/imports.utils.d.ts +80 -0
  479. package/dist/imports/utils/imports.utils.js +114 -0
  480. package/dist/imports/utils/imports.utils.js.map +1 -0
  481. package/dist/imports/validators/index.d.ts +0 -0
  482. package/dist/imports/validators/index.js +1 -0
  483. package/dist/imports/validators/index.js.map +1 -0
  484. package/dist/imports/validators/joi-validators/postmanV21.validator.d.ts +5 -0
  485. package/dist/imports/validators/joi-validators/postmanV21.validator.js +96 -0
  486. package/dist/imports/validators/joi-validators/postmanV21.validator.js.map +1 -0
  487. package/dist/index.d.ts +4233 -0
  488. package/dist/index.js +5930 -0
  489. package/dist/index.js.map +1 -0
  490. package/dist/init.interface.d.ts +407 -0
  491. package/dist/init.interface.js +3 -0
  492. package/dist/init.interface.js.map +1 -0
  493. package/dist/inputs/inputs.repo.d.ts +7 -0
  494. package/dist/inputs/inputs.repo.js +16 -0
  495. package/dist/inputs/inputs.repo.js.map +1 -0
  496. package/dist/inputs/inputs.service.d.ts +61 -0
  497. package/dist/inputs/inputs.service.js +468 -0
  498. package/dist/inputs/inputs.service.js.map +1 -0
  499. package/dist/inputs/utils/inputs.utils.create.d.ts +11 -0
  500. package/dist/inputs/utils/inputs.utils.create.js +273 -0
  501. package/dist/inputs/utils/inputs.utils.create.js.map +1 -0
  502. package/dist/inputs/validators/inputs.validator.parse.d.ts +4 -0
  503. package/dist/inputs/validators/inputs.validator.parse.js +53 -0
  504. package/dist/inputs/validators/inputs.validator.parse.js.map +1 -0
  505. package/dist/jobs/index.d.ts +38 -0
  506. package/dist/jobs/index.js +50 -0
  507. package/dist/jobs/index.js.map +1 -0
  508. package/dist/jobs/jobs.service.d.ts +154 -0
  509. package/dist/jobs/jobs.service.js +491 -0
  510. package/dist/jobs/jobs.service.js.map +1 -0
  511. package/dist/jobs/jobs.state.d.ts +113 -0
  512. package/dist/jobs/jobs.state.js +447 -0
  513. package/dist/jobs/jobs.state.js.map +1 -0
  514. package/dist/jobs/types.d.ts +449 -0
  515. package/dist/jobs/types.js +74 -0
  516. package/dist/jobs/types.js.map +1 -0
  517. package/dist/logs/logs.repo.d.ts +6 -0
  518. package/dist/logs/logs.repo.js +12 -0
  519. package/dist/logs/logs.repo.js.map +1 -0
  520. package/dist/logs/logs.service.d.ts +30 -0
  521. package/dist/logs/logs.service.js +89 -0
  522. package/dist/logs/logs.service.js.map +1 -0
  523. package/dist/logs/logs.types.d.ts +85 -0
  524. package/dist/logs/logs.types.js +52 -0
  525. package/dist/logs/logs.types.js.map +1 -0
  526. package/dist/logs/utils/logs.utils.create.d.ts +0 -0
  527. package/dist/logs/utils/logs.utils.create.js +1 -0
  528. package/dist/logs/utils/logs.utils.create.js.map +1 -0
  529. package/dist/logs/utils/logs.utils.errors.d.ts +2 -0
  530. package/dist/logs/utils/logs.utils.errors.js +8 -0
  531. package/dist/logs/utils/logs.utils.errors.js.map +1 -0
  532. package/dist/models/index.d.ts +6 -0
  533. package/dist/models/index.js +11 -0
  534. package/dist/models/index.js.map +1 -0
  535. package/dist/models/models.service.d.ts +137 -0
  536. package/dist/models/models.service.js +195 -0
  537. package/dist/models/models.service.js.map +1 -0
  538. package/dist/notifications/index.d.ts +13 -0
  539. package/dist/notifications/index.js +26 -0
  540. package/dist/notifications/index.js.map +1 -0
  541. package/dist/notifications/notifications.service.d.ts +270 -0
  542. package/dist/notifications/notifications.service.js +912 -0
  543. package/dist/notifications/notifications.service.js.map +1 -0
  544. package/dist/notifications/types/index.d.ts +4 -0
  545. package/dist/notifications/types/index.js +21 -0
  546. package/dist/notifications/types/index.js.map +1 -0
  547. package/dist/notifications/types/notifications.types.d.ts +456 -0
  548. package/dist/notifications/types/notifications.types.js +51 -0
  549. package/dist/notifications/types/notifications.types.js.map +1 -0
  550. package/dist/parsers/index.d.ts +3 -0
  551. package/dist/parsers/index.js +27 -0
  552. package/dist/parsers/index.js.map +1 -0
  553. package/dist/parsers/pipelines/postman.pipelines.d.ts +15 -0
  554. package/dist/parsers/pipelines/postman.pipelines.js +103 -0
  555. package/dist/parsers/pipelines/postman.pipelines.js.map +1 -0
  556. package/dist/parsers/types/postman.types.d.ts +200 -0
  557. package/dist/parsers/types/postman.types.js +3 -0
  558. package/dist/parsers/types/postman.types.js.map +1 -0
  559. package/dist/parsers/utils/postman.utils.d.ts +12 -0
  560. package/dist/parsers/utils/postman.utils.js +116 -0
  561. package/dist/parsers/utils/postman.utils.js.map +1 -0
  562. package/dist/parsers/validators/postman-auth.validators.d.ts +10 -0
  563. package/dist/parsers/validators/postman-auth.validators.js +127 -0
  564. package/dist/parsers/validators/postman-auth.validators.js.map +1 -0
  565. package/dist/parsers/validators/postman-request.validators.d.ts +13 -0
  566. package/dist/parsers/validators/postman-request.validators.js +139 -0
  567. package/dist/parsers/validators/postman-request.validators.js.map +1 -0
  568. package/dist/parsers/validators/postman-response.validators.d.ts +13 -0
  569. package/dist/parsers/validators/postman-response.validators.js +150 -0
  570. package/dist/parsers/validators/postman-response.validators.js.map +1 -0
  571. package/dist/parsers/validators/postman-variable.validators.d.ts +14 -0
  572. package/dist/parsers/validators/postman-variable.validators.js +163 -0
  573. package/dist/parsers/validators/postman-variable.validators.js.map +1 -0
  574. package/dist/pricing/pricing.repo.d.ts +0 -0
  575. package/dist/pricing/pricing.repo.js +1 -0
  576. package/dist/pricing/pricing.repo.js.map +1 -0
  577. package/dist/pricing/pricing.service.d.ts +24 -0
  578. package/dist/pricing/pricing.service.js +51 -0
  579. package/dist/pricing/pricing.service.js.map +1 -0
  580. package/dist/pricing/pricing.types.d.ts +76 -0
  581. package/dist/pricing/pricing.types.js +21 -0
  582. package/dist/pricing/pricing.types.js.map +1 -0
  583. package/dist/pricing/utils/string.utils.d.ts +1 -0
  584. package/dist/pricing/utils/string.utils.js +9 -0
  585. package/dist/pricing/utils/string.utils.js.map +1 -0
  586. package/dist/processor/repos/mongo.repo.d.ts +39 -0
  587. package/dist/processor/repos/mongo.repo.js +260 -0
  588. package/dist/processor/repos/mongo.repo.js.map +1 -0
  589. package/dist/processor/repos/postgres.repo.d.ts +31 -0
  590. package/dist/processor/repos/postgres.repo.js +185 -0
  591. package/dist/processor/repos/postgres.repo.js.map +1 -0
  592. package/dist/processor/repos/sms.repo.d.ts +39 -0
  593. package/dist/processor/repos/sms.repo.js +124 -0
  594. package/dist/processor/repos/sms.repo.js.map +1 -0
  595. package/dist/processor/services/processor.service.d.ts +465 -0
  596. package/dist/processor/services/processor.service.js +5343 -0
  597. package/dist/processor/services/processor.service.js.map +1 -0
  598. package/dist/processor/services/request.service.d.ts +36 -0
  599. package/dist/processor/services/request.service.js +304 -0
  600. package/dist/processor/services/request.service.js.map +1 -0
  601. package/dist/processor/types/request.types.d.ts +14 -0
  602. package/dist/processor/types/request.types.js +3 -0
  603. package/dist/processor/types/request.types.js.map +1 -0
  604. package/dist/processor/utils/processor.utils.d.ts +104 -0
  605. package/dist/processor/utils/processor.utils.js +1066 -0
  606. package/dist/processor/utils/processor.utils.js.map +1 -0
  607. package/dist/processor/utils/request.utils.d.ts +20 -0
  608. package/dist/processor/utils/request.utils.js +113 -0
  609. package/dist/processor/utils/request.utils.js.map +1 -0
  610. package/dist/processor/utils/storage.util.d.ts +8 -0
  611. package/dist/processor/utils/storage.util.js +106 -0
  612. package/dist/processor/utils/storage.util.js.map +1 -0
  613. package/dist/products/services/products.service.d.ts +579 -0
  614. package/dist/products/services/products.service.js +5853 -0
  615. package/dist/products/services/products.service.js.map +1 -0
  616. package/dist/products/utils/crypt.utils.d.ts +1 -0
  617. package/dist/products/utils/crypt.utils.js +17 -0
  618. package/dist/products/utils/crypt.utils.js.map +1 -0
  619. package/dist/products/utils/functions.utils.d.ts +13 -0
  620. package/dist/products/utils/functions.utils.js +294 -0
  621. package/dist/products/utils/functions.utils.js.map +1 -0
  622. package/dist/products/utils/objects.utils.d.ts +13 -0
  623. package/dist/products/utils/objects.utils.js +89 -0
  624. package/dist/products/utils/objects.utils.js.map +1 -0
  625. package/dist/products/utils/string.utils.d.ts +12 -0
  626. package/dist/products/utils/string.utils.js +168 -0
  627. package/dist/products/utils/string.utils.js.map +1 -0
  628. package/dist/products/validators/index.d.ts +33 -0
  629. package/dist/products/validators/index.js +75 -0
  630. package/dist/products/validators/index.js.map +1 -0
  631. package/dist/products/validators/joi-validators/create.html.validator.d.ts +2 -0
  632. package/dist/products/validators/joi-validators/create.html.validator.js +55 -0
  633. package/dist/products/validators/joi-validators/create.html.validator.js.map +1 -0
  634. package/dist/products/validators/joi-validators/create.productAgent.validator.d.ts +3 -0
  635. package/dist/products/validators/joi-validators/create.productAgent.validator.js +266 -0
  636. package/dist/products/validators/joi-validators/create.productAgent.validator.js.map +1 -0
  637. package/dist/products/validators/joi-validators/create.productApp.validator.d.ts +4 -0
  638. package/dist/products/validators/joi-validators/create.productApp.validator.js +61 -0
  639. package/dist/products/validators/joi-validators/create.productApp.validator.js.map +1 -0
  640. package/dist/products/validators/joi-validators/create.productCache.validator.d.ts +3 -0
  641. package/dist/products/validators/joi-validators/create.productCache.validator.js +46 -0
  642. package/dist/products/validators/joi-validators/create.productCache.validator.js.map +1 -0
  643. package/dist/products/validators/joi-validators/create.productDatabase.validator.d.ts +3 -0
  644. package/dist/products/validators/joi-validators/create.productDatabase.validator.js +77 -0
  645. package/dist/products/validators/joi-validators/create.productDatabase.validator.js.map +1 -0
  646. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.d.ts +7 -0
  647. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js +194 -0
  648. package/dist/products/validators/joi-validators/create.productDatabaseAction.validator.js.map +1 -0
  649. package/dist/products/validators/joi-validators/create.productDatabaseMigration.validator.d.ts +4 -0
  650. package/dist/products/validators/joi-validators/create.productDatabaseMigration.validator.js +63 -0
  651. package/dist/products/validators/joi-validators/create.productDatabaseMigration.validator.js.map +1 -0
  652. package/dist/products/validators/joi-validators/create.productEnv.validator.d.ts +3 -0
  653. package/dist/products/validators/joi-validators/create.productEnv.validator.js +45 -0
  654. package/dist/products/validators/joi-validators/create.productEnv.validator.js.map +1 -0
  655. package/dist/products/validators/joi-validators/create.productFallback.validator.d.ts +3 -0
  656. package/dist/products/validators/joi-validators/create.productFallback.validator.js +64 -0
  657. package/dist/products/validators/joi-validators/create.productFallback.validator.js.map +1 -0
  658. package/dist/products/validators/joi-validators/create.productFeature.validator.d.ts +14 -0
  659. package/dist/products/validators/joi-validators/create.productFeature.validator.js +140 -0
  660. package/dist/products/validators/joi-validators/create.productFeature.validator.js.map +1 -0
  661. package/dist/products/validators/joi-validators/create.productFunction.validator.d.ts +3 -0
  662. package/dist/products/validators/joi-validators/create.productFunction.validator.js +57 -0
  663. package/dist/products/validators/joi-validators/create.productFunction.validator.js.map +1 -0
  664. package/dist/products/validators/joi-validators/create.productGraph.validator.d.ts +3 -0
  665. package/dist/products/validators/joi-validators/create.productGraph.validator.js +89 -0
  666. package/dist/products/validators/joi-validators/create.productGraph.validator.js.map +1 -0
  667. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.d.ts +4 -0
  668. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js +58 -0
  669. package/dist/products/validators/joi-validators/create.productHealthcheck.validator.js.map +1 -0
  670. package/dist/products/validators/joi-validators/create.productJob.validator.d.ts +12 -0
  671. package/dist/products/validators/joi-validators/create.productJob.validator.js +60 -0
  672. package/dist/products/validators/joi-validators/create.productJob.validator.js.map +1 -0
  673. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.d.ts +3 -0
  674. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js +52 -0
  675. package/dist/products/validators/joi-validators/create.productMessageBrokerTopic.validator.js.map +1 -0
  676. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.d.ts +3 -0
  677. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js +193 -0
  678. package/dist/products/validators/joi-validators/create.productMessageBrokers.validator.js.map +1 -0
  679. package/dist/products/validators/joi-validators/create.productModel.validator.d.ts +3 -0
  680. package/dist/products/validators/joi-validators/create.productModel.validator.js +132 -0
  681. package/dist/products/validators/joi-validators/create.productModel.validator.js.map +1 -0
  682. package/dist/products/validators/joi-validators/create.productNotification.validator.d.ts +4 -0
  683. package/dist/products/validators/joi-validators/create.productNotification.validator.js +241 -0
  684. package/dist/products/validators/joi-validators/create.productNotification.validator.js.map +1 -0
  685. package/dist/products/validators/joi-validators/create.productNotificationMessage.validator.d.ts +3 -0
  686. package/dist/products/validators/joi-validators/create.productNotificationMessage.validator.js +57 -0
  687. package/dist/products/validators/joi-validators/create.productNotificationMessage.validator.js.map +1 -0
  688. package/dist/products/validators/joi-validators/create.productNotifications.validator.d.ts +0 -0
  689. package/dist/products/validators/joi-validators/create.productNotifications.validator.js +1 -0
  690. package/dist/products/validators/joi-validators/create.productNotifications.validator.js.map +1 -0
  691. package/dist/products/validators/joi-validators/create.productQuota.validator.d.ts +3 -0
  692. package/dist/products/validators/joi-validators/create.productQuota.validator.js +67 -0
  693. package/dist/products/validators/joi-validators/create.productQuota.validator.js.map +1 -0
  694. package/dist/products/validators/joi-validators/create.productStorage.validator.d.ts +3 -0
  695. package/dist/products/validators/joi-validators/create.productStorage.validator.js +158 -0
  696. package/dist/products/validators/joi-validators/create.productStorage.validator.js.map +1 -0
  697. package/dist/products/validators/joi-validators/create.productVector.validator.d.ts +3 -0
  698. package/dist/products/validators/joi-validators/create.productVector.validator.js +136 -0
  699. package/dist/products/validators/joi-validators/create.productVector.validator.js.map +1 -0
  700. package/dist/products/validators/joi-validators/create.products.validator.d.ts +3 -0
  701. package/dist/products/validators/joi-validators/create.products.validator.js +43 -0
  702. package/dist/products/validators/joi-validators/create.products.validator.js.map +1 -0
  703. package/dist/products/validators/joi-validators/create.requestAction.validator.d.ts +2 -0
  704. package/dist/products/validators/joi-validators/create.requestAction.validator.js +45 -0
  705. package/dist/products/validators/joi-validators/create.requestAction.validator.js.map +1 -0
  706. package/dist/products/validators/joi-validators/create.userAuth.validator.d.ts +3 -0
  707. package/dist/products/validators/joi-validators/create.userAuth.validator.js +48 -0
  708. package/dist/products/validators/joi-validators/create.userAuth.validator.js.map +1 -0
  709. package/dist/products/validators/joi-validators/register.productWebhooks.validator.d.ts +3 -0
  710. package/dist/products/validators/joi-validators/register.productWebhooks.validator.js +48 -0
  711. package/dist/products/validators/joi-validators/register.productWebhooks.validator.js.map +1 -0
  712. package/dist/products/validators/joi-validators/update.dataValue.validator.d.ts +3 -0
  713. package/dist/products/validators/joi-validators/update.dataValue.validator.js +104 -0
  714. package/dist/products/validators/joi-validators/update.dataValue.validator.js.map +1 -0
  715. package/dist/products/validators/joi-validators/update.productApp.validator.d.ts +3 -0
  716. package/dist/products/validators/joi-validators/update.productApp.validator.js +42 -0
  717. package/dist/products/validators/joi-validators/update.productApp.validator.js.map +1 -0
  718. package/dist/products/validators/joi-validators/update.productCache.validator.d.ts +3 -0
  719. package/dist/products/validators/joi-validators/update.productCache.validator.js +45 -0
  720. package/dist/products/validators/joi-validators/update.productCache.validator.js.map +1 -0
  721. package/dist/products/validators/joi-validators/update.productDatabase.validator.d.ts +3 -0
  722. package/dist/products/validators/joi-validators/update.productDatabase.validator.js +76 -0
  723. package/dist/products/validators/joi-validators/update.productDatabase.validator.js.map +1 -0
  724. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.d.ts +3 -0
  725. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js +79 -0
  726. package/dist/products/validators/joi-validators/update.productDatabaseAction.validator.js.map +1 -0
  727. package/dist/products/validators/joi-validators/update.productDatabaseMigration.validator.d.ts +4 -0
  728. package/dist/products/validators/joi-validators/update.productDatabaseMigration.validator.js +64 -0
  729. package/dist/products/validators/joi-validators/update.productDatabaseMigration.validator.js.map +1 -0
  730. package/dist/products/validators/joi-validators/update.productEnv.validator.d.ts +3 -0
  731. package/dist/products/validators/joi-validators/update.productEnv.validator.js +46 -0
  732. package/dist/products/validators/joi-validators/update.productEnv.validator.js.map +1 -0
  733. package/dist/products/validators/joi-validators/update.productFallback.validator.d.ts +3 -0
  734. package/dist/products/validators/joi-validators/update.productFallback.validator.js +60 -0
  735. package/dist/products/validators/joi-validators/update.productFallback.validator.js.map +1 -0
  736. package/dist/products/validators/joi-validators/update.productFeature.validator.d.ts +3 -0
  737. package/dist/products/validators/joi-validators/update.productFeature.validator.js +53 -0
  738. package/dist/products/validators/joi-validators/update.productFeature.validator.js.map +1 -0
  739. package/dist/products/validators/joi-validators/update.productFunction.validator.d.ts +3 -0
  740. package/dist/products/validators/joi-validators/update.productFunction.validator.js +41 -0
  741. package/dist/products/validators/joi-validators/update.productFunction.validator.js.map +1 -0
  742. package/dist/products/validators/joi-validators/update.productGraph.validator.d.ts +3 -0
  743. package/dist/products/validators/joi-validators/update.productGraph.validator.js +88 -0
  744. package/dist/products/validators/joi-validators/update.productGraph.validator.js.map +1 -0
  745. package/dist/products/validators/joi-validators/update.productJob.validator.d.ts +3 -0
  746. package/dist/products/validators/joi-validators/update.productJob.validator.js +50 -0
  747. package/dist/products/validators/joi-validators/update.productJob.validator.js.map +1 -0
  748. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.d.ts +3 -0
  749. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js +52 -0
  750. package/dist/products/validators/joi-validators/update.productMessageBrokerTopic.validator.js.map +1 -0
  751. package/dist/products/validators/joi-validators/update.productNotification.validator.d.ts +3 -0
  752. package/dist/products/validators/joi-validators/update.productNotification.validator.js +47 -0
  753. package/dist/products/validators/joi-validators/update.productNotification.validator.js.map +1 -0
  754. package/dist/products/validators/joi-validators/update.productNotificationMessage.validator.d.ts +3 -0
  755. package/dist/products/validators/joi-validators/update.productNotificationMessage.validator.js +58 -0
  756. package/dist/products/validators/joi-validators/update.productNotificationMessage.validator.js.map +1 -0
  757. package/dist/products/validators/joi-validators/update.productQuota.validator.d.ts +3 -0
  758. package/dist/products/validators/joi-validators/update.productQuota.validator.js +64 -0
  759. package/dist/products/validators/joi-validators/update.productQuota.validator.js.map +1 -0
  760. package/dist/products/validators/joi-validators/update.userAuth.validator.d.ts +3 -0
  761. package/dist/products/validators/joi-validators/update.userAuth.validator.js +48 -0
  762. package/dist/products/validators/joi-validators/update.userAuth.validator.js.map +1 -0
  763. package/dist/resilience/fallback.service.d.ts +143 -0
  764. package/dist/resilience/fallback.service.js +771 -0
  765. package/dist/resilience/fallback.service.js.map +1 -0
  766. package/dist/resilience/healthcheck.service.d.ts +165 -0
  767. package/dist/resilience/healthcheck.service.js +1019 -0
  768. package/dist/resilience/healthcheck.service.js.map +1 -0
  769. package/dist/resilience/index.d.ts +104 -0
  770. package/dist/resilience/index.js +140 -0
  771. package/dist/resilience/index.js.map +1 -0
  772. package/dist/resilience/quota.service.d.ts +85 -0
  773. package/dist/resilience/quota.service.js +523 -0
  774. package/dist/resilience/quota.service.js.map +1 -0
  775. package/dist/resilience/resilience.service.d.ts +98 -0
  776. package/dist/resilience/resilience.service.js +560 -0
  777. package/dist/resilience/resilience.service.js.map +1 -0
  778. package/dist/resilience/types/index.d.ts +515 -0
  779. package/dist/resilience/types/index.js +29 -0
  780. package/dist/resilience/types/index.js.map +1 -0
  781. package/dist/runtime/runtime-defaults.d.ts +28 -0
  782. package/dist/runtime/runtime-defaults.js +38 -0
  783. package/dist/runtime/runtime-defaults.js.map +1 -0
  784. package/dist/secrets/index.d.ts +10 -0
  785. package/dist/secrets/index.js +33 -0
  786. package/dist/secrets/index.js.map +1 -0
  787. package/dist/secrets/secrets.resolver.d.ts +52 -0
  788. package/dist/secrets/secrets.resolver.js +236 -0
  789. package/dist/secrets/secrets.resolver.js.map +1 -0
  790. package/dist/secrets/secrets.service.d.ts +93 -0
  791. package/dist/secrets/secrets.service.js +246 -0
  792. package/dist/secrets/secrets.service.js.map +1 -0
  793. package/dist/secrets/secrets.types.d.ts +188 -0
  794. package/dist/secrets/secrets.types.js +87 -0
  795. package/dist/secrets/secrets.types.js.map +1 -0
  796. package/dist/sessions/index.d.ts +50 -0
  797. package/dist/sessions/index.js +96 -0
  798. package/dist/sessions/index.js.map +1 -0
  799. package/dist/sessions/sessions.helper.d.ts +88 -0
  800. package/dist/sessions/sessions.helper.js +190 -0
  801. package/dist/sessions/sessions.helper.js.map +1 -0
  802. package/dist/sessions/sessions.resolver.d.ts +188 -0
  803. package/dist/sessions/sessions.resolver.js +603 -0
  804. package/dist/sessions/sessions.resolver.js.map +1 -0
  805. package/dist/sessions/sessions.service.d.ts +196 -0
  806. package/dist/sessions/sessions.service.js +993 -0
  807. package/dist/sessions/sessions.service.js.map +1 -0
  808. package/dist/sessions/types/index.d.ts +347 -0
  809. package/dist/sessions/types/index.js +6 -0
  810. package/dist/sessions/types/index.js.map +1 -0
  811. package/dist/storage/index.d.ts +66 -0
  812. package/dist/storage/index.js +99 -0
  813. package/dist/storage/index.js.map +1 -0
  814. package/dist/storage/storage.service.d.ts +179 -0
  815. package/dist/storage/storage.service.js +938 -0
  816. package/dist/storage/storage.service.js.map +1 -0
  817. package/dist/storage/types/index.d.ts +273 -0
  818. package/dist/storage/types/index.js +6 -0
  819. package/dist/storage/types/index.js.map +1 -0
  820. package/dist/storage/utils/storage.util.d.ts +62 -0
  821. package/dist/storage/utils/storage.util.js +623 -0
  822. package/dist/storage/utils/storage.util.js.map +1 -0
  823. package/dist/types/actions.types.d.ts +0 -0
  824. package/dist/types/actions.types.js +1 -0
  825. package/dist/types/actions.types.js.map +1 -0
  826. package/dist/types/appBuilder.types.d.ts +316 -0
  827. package/dist/types/appBuilder.types.js +3 -0
  828. package/dist/types/appBuilder.types.js.map +1 -0
  829. package/dist/types/database.types.d.ts +9 -0
  830. package/dist/types/database.types.js +3 -0
  831. package/dist/types/database.types.js.map +1 -0
  832. package/dist/types/enums.d.ts +232 -0
  833. package/dist/types/enums.js +262 -0
  834. package/dist/types/enums.js.map +1 -0
  835. package/dist/types/index.d.ts +12 -0
  836. package/dist/types/index.js +29 -0
  837. package/dist/types/index.js.map +1 -0
  838. package/dist/types/index.types.d.ts +37 -0
  839. package/dist/types/index.types.js +18 -0
  840. package/dist/types/index.types.js.map +1 -0
  841. package/dist/types/inputs.types.d.ts +114 -0
  842. package/dist/types/inputs.types.js +44 -0
  843. package/dist/types/inputs.types.js.map +1 -0
  844. package/dist/types/logs.types.d.ts +19 -0
  845. package/dist/types/logs.types.js +8 -0
  846. package/dist/types/logs.types.js.map +1 -0
  847. package/dist/types/pricing.types.d.ts +4 -0
  848. package/dist/types/pricing.types.js +3 -0
  849. package/dist/types/pricing.types.js.map +1 -0
  850. package/dist/types/processor.types.d.ts +602 -0
  851. package/dist/types/processor.types.js +19 -0
  852. package/dist/types/processor.types.js.map +1 -0
  853. package/dist/types/productsBuilder.types.d.ts +1583 -0
  854. package/dist/types/productsBuilder.types.js +303 -0
  855. package/dist/types/productsBuilder.types.js.map +1 -0
  856. package/dist/types/request-tracker.interface.d.ts +0 -0
  857. package/dist/types/request-tracker.interface.js +1 -0
  858. package/dist/types/request-tracker.interface.js.map +1 -0
  859. package/dist/types/requests.types.d.ts +8 -0
  860. package/dist/types/requests.types.js +3 -0
  861. package/dist/types/requests.types.js.map +1 -0
  862. package/dist/types/workspaces.types.d.ts +28 -0
  863. package/dist/types/workspaces.types.js +4 -0
  864. package/dist/types/workspaces.types.js.map +1 -0
  865. package/dist/utils/constants.d.ts +1 -0
  866. package/dist/utils/constants.js +5 -0
  867. package/dist/utils/constants.js.map +1 -0
  868. package/dist/utils/index.d.ts +2 -0
  869. package/dist/utils/index.js +109 -0
  870. package/dist/utils/index.js.map +1 -0
  871. package/dist/vector/actions/action-manager.d.ts +140 -0
  872. package/dist/vector/actions/action-manager.js +356 -0
  873. package/dist/vector/actions/action-manager.js.map +1 -0
  874. package/dist/vector/adapters/base.adapter.d.ts +169 -0
  875. package/dist/vector/adapters/base.adapter.js +218 -0
  876. package/dist/vector/adapters/base.adapter.js.map +1 -0
  877. package/dist/vector/adapters/index.d.ts +10 -0
  878. package/dist/vector/adapters/index.js +19 -0
  879. package/dist/vector/adapters/index.js.map +1 -0
  880. package/dist/vector/adapters/memory.adapter.d.ts +85 -0
  881. package/dist/vector/adapters/memory.adapter.js +505 -0
  882. package/dist/vector/adapters/memory.adapter.js.map +1 -0
  883. package/dist/vector/adapters/pinecone.adapter.d.ts +52 -0
  884. package/dist/vector/adapters/pinecone.adapter.js +433 -0
  885. package/dist/vector/adapters/pinecone.adapter.js.map +1 -0
  886. package/dist/vector/adapters/qdrant.adapter.d.ts +56 -0
  887. package/dist/vector/adapters/qdrant.adapter.js +442 -0
  888. package/dist/vector/adapters/qdrant.adapter.js.map +1 -0
  889. package/dist/vector/adapters/weaviate.adapter.d.ts +68 -0
  890. package/dist/vector/adapters/weaviate.adapter.js +661 -0
  891. package/dist/vector/adapters/weaviate.adapter.js.map +1 -0
  892. package/dist/vector/index.d.ts +37 -0
  893. package/dist/vector/index.js +72 -0
  894. package/dist/vector/index.js.map +1 -0
  895. package/dist/vector/types/action.interface.d.ts +195 -0
  896. package/dist/vector/types/action.interface.js +100 -0
  897. package/dist/vector/types/action.interface.js.map +1 -0
  898. package/dist/vector/types/connection.interface.d.ts +151 -0
  899. package/dist/vector/types/connection.interface.js +8 -0
  900. package/dist/vector/types/connection.interface.js.map +1 -0
  901. package/dist/vector/types/embedding.interface.d.ts +144 -0
  902. package/dist/vector/types/embedding.interface.js +8 -0
  903. package/dist/vector/types/embedding.interface.js.map +1 -0
  904. package/dist/vector/types/enums.d.ts +104 -0
  905. package/dist/vector/types/enums.js +113 -0
  906. package/dist/vector/types/enums.js.map +1 -0
  907. package/dist/vector/types/index.d.ts +11 -0
  908. package/dist/vector/types/index.js +23 -0
  909. package/dist/vector/types/index.js.map +1 -0
  910. package/dist/vector/types/vector.interface.d.ts +315 -0
  911. package/dist/vector/types/vector.interface.js +8 -0
  912. package/dist/vector/types/vector.interface.js.map +1 -0
  913. package/dist/vector/utils/index.d.ts +7 -0
  914. package/dist/vector/utils/index.js +13 -0
  915. package/dist/vector/utils/index.js.map +1 -0
  916. package/dist/vector/utils/metadata-schema.d.ts +14 -0
  917. package/dist/vector/utils/metadata-schema.js +79 -0
  918. package/dist/vector/utils/metadata-schema.js.map +1 -0
  919. package/dist/vector/utils/vector-error.d.ts +69 -0
  920. package/dist/vector/utils/vector-error.js +116 -0
  921. package/dist/vector/utils/vector-error.js.map +1 -0
  922. package/dist/vector/vector-database.service.d.ts +511 -0
  923. package/dist/vector/vector-database.service.js +1073 -0
  924. package/dist/vector/vector-database.service.js.map +1 -0
  925. package/dist/vector/vector.service.d.ts +283 -0
  926. package/dist/vector/vector.service.js +544 -0
  927. package/dist/vector/vector.service.js.map +1 -0
  928. package/dist/warehouse/executor/index.d.ts +5 -0
  929. package/dist/warehouse/executor/index.js +12 -0
  930. package/dist/warehouse/executor/index.js.map +1 -0
  931. package/dist/warehouse/executor/joins/index.d.ts +5 -0
  932. package/dist/warehouse/executor/joins/index.js +11 -0
  933. package/dist/warehouse/executor/joins/index.js.map +1 -0
  934. package/dist/warehouse/executor/joins/join-executor.d.ts +101 -0
  935. package/dist/warehouse/executor/joins/join-executor.js +493 -0
  936. package/dist/warehouse/executor/joins/join-executor.js.map +1 -0
  937. package/dist/warehouse/executor/joins/semantic-join.d.ts +64 -0
  938. package/dist/warehouse/executor/joins/semantic-join.js +241 -0
  939. package/dist/warehouse/executor/joins/semantic-join.js.map +1 -0
  940. package/dist/warehouse/executor/single-source-executor.d.ts +155 -0
  941. package/dist/warehouse/executor/single-source-executor.js +573 -0
  942. package/dist/warehouse/executor/single-source-executor.js.map +1 -0
  943. package/dist/warehouse/index.d.ts +79 -0
  944. package/dist/warehouse/index.js +111 -0
  945. package/dist/warehouse/index.js.map +1 -0
  946. package/dist/warehouse/parser/index.d.ts +4 -0
  947. package/dist/warehouse/parser/index.js +10 -0
  948. package/dist/warehouse/parser/index.js.map +1 -0
  949. package/dist/warehouse/parser/query-parser.d.ts +181 -0
  950. package/dist/warehouse/parser/query-parser.js +415 -0
  951. package/dist/warehouse/parser/query-parser.js.map +1 -0
  952. package/dist/warehouse/registry/data-source-registry.d.ts +207 -0
  953. package/dist/warehouse/registry/data-source-registry.js +396 -0
  954. package/dist/warehouse/registry/data-source-registry.js.map +1 -0
  955. package/dist/warehouse/registry/index.d.ts +4 -0
  956. package/dist/warehouse/registry/index.js +9 -0
  957. package/dist/warehouse/registry/index.js.map +1 -0
  958. package/dist/warehouse/transactions/index.d.ts +4 -0
  959. package/dist/warehouse/transactions/index.js +9 -0
  960. package/dist/warehouse/transactions/index.js.map +1 -0
  961. package/dist/warehouse/transactions/saga-orchestrator.d.ts +92 -0
  962. package/dist/warehouse/transactions/saga-orchestrator.js +383 -0
  963. package/dist/warehouse/transactions/saga-orchestrator.js.map +1 -0
  964. package/dist/warehouse/types/index.d.ts +9 -0
  965. package/dist/warehouse/types/index.js +33 -0
  966. package/dist/warehouse/types/index.js.map +1 -0
  967. package/dist/warehouse/types/join.interface.d.ts +225 -0
  968. package/dist/warehouse/types/join.interface.js +87 -0
  969. package/dist/warehouse/types/join.interface.js.map +1 -0
  970. package/dist/warehouse/types/query.interface.d.ts +232 -0
  971. package/dist/warehouse/types/query.interface.js +9 -0
  972. package/dist/warehouse/types/query.interface.js.map +1 -0
  973. package/dist/warehouse/types/transaction.interface.d.ts +236 -0
  974. package/dist/warehouse/types/transaction.interface.js +74 -0
  975. package/dist/warehouse/types/transaction.interface.js.map +1 -0
  976. package/dist/warehouse/types/where.interface.d.ts +208 -0
  977. package/dist/warehouse/types/where.interface.js +89 -0
  978. package/dist/warehouse/types/where.interface.js.map +1 -0
  979. package/dist/warehouse/warehouse.service.d.ts +200 -0
  980. package/dist/warehouse/warehouse.service.js +470 -0
  981. package/dist/warehouse/warehouse.service.js.map +1 -0
  982. package/dist/workflows/index.d.ts +30 -0
  983. package/dist/workflows/index.js +64 -0
  984. package/dist/workflows/index.js.map +1 -0
  985. package/dist/workflows/types/index.d.ts +6 -0
  986. package/dist/workflows/types/index.js +23 -0
  987. package/dist/workflows/types/index.js.map +1 -0
  988. package/dist/workflows/types/workflows.types.d.ts +1095 -0
  989. package/dist/workflows/types/workflows.types.js +13 -0
  990. package/dist/workflows/types/workflows.types.js.map +1 -0
  991. package/dist/workflows/workflow-builder.d.ts +70 -0
  992. package/dist/workflows/workflow-builder.js +353 -0
  993. package/dist/workflows/workflow-builder.js.map +1 -0
  994. package/dist/workflows/workflow-executor.d.ts +289 -0
  995. package/dist/workflows/workflow-executor.js +2467 -0
  996. package/dist/workflows/workflow-executor.js.map +1 -0
  997. package/dist/workflows/workflows.service.d.ts +412 -0
  998. package/dist/workflows/workflows.service.js +2233 -0
  999. package/dist/workflows/workflows.service.js.map +1 -0
  1000. package/package.json +3 -2
@@ -0,0 +1,1315 @@
1
+ "use strict";
2
+ /**
3
+ * BrokersService - Main Message Broker Service Class
4
+ *
5
+ * Provides a unified interface for message broker operations including
6
+ * publish and subscribe functionality.
7
+ *
8
+ * Supported providers: RabbitMQ, Kafka, AWS SQS, Redis, Google Pub/Sub
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.BrokersService = exports.BrokerError = void 0;
15
+ const broker_util_1 = require("./utils/broker.util");
16
+ const products_service_1 = __importDefault(require("../products/services/products.service"));
17
+ const types_1 = require("../types");
18
+ const logs_service_1 = __importDefault(require("../logs/logs.service"));
19
+ const types_2 = require("../types");
20
+ const processor_utils_1 = require("../processor/utils/processor.utils");
21
+ const processorApi_service_1 = require("../api/services/processorApi.service");
22
+ const secrets_1 = require("../secrets");
23
+ const cloud_runtime_util_1 = require("../cloud/cloud-runtime.util");
24
+ const cache_manager_1 = require("../cache/cache.manager");
25
+ const sessions_1 = require("../sessions");
26
+ /** Log prefix for broker operations */
27
+ const LOG_PREFIX = '[BrokersService]';
28
+ /** Shared broker services: one per workspace+product+poolKey. Not exported. */
29
+ const sharedBrokerRegistry = new Map();
30
+ const sharedBrokerInFlight = new Map();
31
+ function getSharedBrokerKey(workspaceId, product, poolKey) {
32
+ return `${workspaceId}:${product}:${poolKey}`;
33
+ }
34
+ /**
35
+ * Error class for broker operations
36
+ */
37
+ class BrokerError extends Error {
38
+ constructor(message, code, details) {
39
+ super(message);
40
+ this.code = code;
41
+ this.details = details;
42
+ this.name = 'BrokerError';
43
+ }
44
+ }
45
+ exports.BrokerError = BrokerError;
46
+ /**
47
+ * BrokersService
48
+ *
49
+ * Unified API for all message broker operations.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import { BrokersService } from '@ductape/sdk';
54
+ *
55
+ * const brokers = new BrokersService({
56
+ * workspace_id: 'your-workspace-id',
57
+ * public_key: 'your-public-key',
58
+ * user_id: 'your-user-id',
59
+ * token: 'your-token',
60
+ * env_type: 'prd',
61
+ * });
62
+ *
63
+ * // Publish a message
64
+ * await brokers.publish({
65
+ * product: 'my-product',
66
+ * env: 'production',
67
+ * event: 'orders-broker:new-order',
68
+ * message: { orderId: '123', amount: 99.99 },
69
+ * });
70
+ *
71
+ * // Subscribe to messages
72
+ * await brokers.subscribe({
73
+ * product: 'my-product',
74
+ * env: 'production',
75
+ * event: 'orders-broker:new-order',
76
+ * callback: async (message) => {
77
+ * console.log('Received:', message);
78
+ * },
79
+ * });
80
+ * ```
81
+ */
82
+ class BrokersService {
83
+ constructor(config) {
84
+ var _a;
85
+ this.logService = null;
86
+ this.productId = '';
87
+ this.productTag = '';
88
+ this.privateKey = '';
89
+ /** Cache manager for 3-tier caching */
90
+ this.cacheManager = null;
91
+ /** Private keys per product for cache encryption */
92
+ this.privateKeys = new Map();
93
+ /** Connection pool for broker services - keyed by broker type + config hash */
94
+ this.brokerServicePool = new Map();
95
+ /** When using shared registry, track poolKey -> sharedKey so disconnectAll can remove from shared */
96
+ this.poolKeyToSharedKey = new Map();
97
+ /** Cache for initialized broker configs - keyed by "productTag:brokerTag:envSlug" */
98
+ this.initializedBrokerCache = new Map();
99
+ /** Cache for initialized products - keyed by productTag */
100
+ this.initializedProducts = new Set();
101
+ /** Cache for registered broker consumers - keyed by consumerTag to track which consumers have been registered */
102
+ this.registeredConsumers = new Set();
103
+ /** Local cache for cache configurations to avoid repeated API calls */
104
+ this.cacheConfigCache = new Map();
105
+ /** Dedupe "Publish to broker - success" when same event is published twice in quick succession (e.g. workflow step run twice) */
106
+ this.lastPublishSuccessLogKey = null;
107
+ this.lastPublishSuccessLogTime = 0;
108
+ // ============================================================================
109
+ // BROKER MESSAGE QUERY METHODS (for workbench with decryption)
110
+ // ============================================================================
111
+ /**
112
+ * Messages namespace for workbench broker message queries
113
+ * All methods decrypt message content before returning
114
+ */
115
+ this.messages = {
116
+ /**
117
+ * Query broker messages with filtering and pagination
118
+ * Decrypts message content before returning
119
+ */
120
+ query: async (options) => {
121
+ try {
122
+ await this.initializeProductForEvents(options.product);
123
+ const result = await this.processorApiService.queryBrokerMessages({
124
+ product_tag: options.product,
125
+ env: options.env,
126
+ broker_tag: options.brokerTag,
127
+ topic_tag: options.topicTag,
128
+ producer_tag: options.producerTag,
129
+ consumer_tag: options.consumerTag,
130
+ status: options.status,
131
+ start_date: options.startDate,
132
+ end_date: options.endDate,
133
+ page: options.page,
134
+ limit: options.limit,
135
+ }, this.getUserAccess());
136
+ // Decrypt message content for each message
137
+ const messages = result.messages.map((msg) => (Object.assign(Object.assign({}, msg), { message_decrypted: msg.message_encrypted
138
+ ? this.decryptPayload(msg.message_encrypted)
139
+ : undefined })));
140
+ return {
141
+ messages,
142
+ total: result.total,
143
+ page: result.page,
144
+ limit: result.limit,
145
+ hasMore: result.hasMore,
146
+ };
147
+ }
148
+ catch (error) {
149
+ if (error instanceof BrokerError)
150
+ throw error;
151
+ throw new BrokerError(`Failed to query broker messages: ${error}`, 'QUERY_MESSAGES_FAILED', error);
152
+ }
153
+ },
154
+ /**
155
+ * Get broker producers with pagination
156
+ */
157
+ getProducers: async (options) => {
158
+ try {
159
+ await this.initializeProductForEvents(options.product);
160
+ return await this.processorApiService.getBrokerProducers({
161
+ product_tag: options.product,
162
+ env: options.env,
163
+ broker_tag: options.brokerTag,
164
+ topic_tag: options.topicTag,
165
+ page: options.page,
166
+ limit: options.limit,
167
+ }, this.getUserAccess());
168
+ }
169
+ catch (error) {
170
+ if (error instanceof BrokerError)
171
+ throw error;
172
+ throw new BrokerError(`Failed to get broker producers: ${error}`, 'GET_PRODUCERS_FAILED', error);
173
+ }
174
+ },
175
+ /**
176
+ * Get broker consumers with pagination
177
+ */
178
+ getConsumers: async (options) => {
179
+ try {
180
+ await this.initializeProductForEvents(options.product);
181
+ return await this.processorApiService.getBrokerConsumers({
182
+ product_tag: options.product,
183
+ env: options.env,
184
+ broker_tag: options.brokerTag,
185
+ topic_tag: options.topicTag,
186
+ page: options.page,
187
+ limit: options.limit,
188
+ }, this.getUserAccess());
189
+ }
190
+ catch (error) {
191
+ if (error instanceof BrokerError)
192
+ throw error;
193
+ throw new BrokerError(`Failed to get broker consumers: ${error}`, 'GET_CONSUMERS_FAILED', error);
194
+ }
195
+ },
196
+ /**
197
+ * Get broker dead letters with pagination
198
+ * Decrypts message content before returning
199
+ */
200
+ getDeadLetters: async (options) => {
201
+ try {
202
+ await this.initializeProductForEvents(options.product);
203
+ const result = await this.processorApiService.getBrokerDeadLetters({
204
+ product_tag: options.product,
205
+ env: options.env,
206
+ broker_tag: options.brokerTag,
207
+ topic_tag: options.topicTag,
208
+ consumer_tag: options.consumerTag,
209
+ start_date: options.startDate,
210
+ end_date: options.endDate,
211
+ page: options.page,
212
+ limit: options.limit,
213
+ }, this.getUserAccess());
214
+ // Decrypt message content for dead letters
215
+ const deadLetters = result.deadLetters.map((dl) => (Object.assign(Object.assign({}, dl), { original_message: dl.original_message ? Object.assign(Object.assign({}, dl.original_message), { message_decrypted: dl.original_message.message_encrypted
216
+ ? this.decryptPayload(dl.original_message.message_encrypted)
217
+ : undefined }) : dl.original_message })));
218
+ return {
219
+ deadLetters,
220
+ total: result.total,
221
+ page: result.page,
222
+ limit: result.limit,
223
+ hasMore: result.hasMore,
224
+ };
225
+ }
226
+ catch (error) {
227
+ if (error instanceof BrokerError)
228
+ throw error;
229
+ throw new BrokerError(`Failed to get broker dead letters: ${error}`, 'GET_DEAD_LETTERS_FAILED', error);
230
+ }
231
+ },
232
+ /**
233
+ * Get comprehensive broker message statistics
234
+ */
235
+ getStats: async (options) => {
236
+ try {
237
+ await this.initializeProductForEvents(options.product);
238
+ return await this.processorApiService.getBrokerComprehensiveStats({
239
+ product_tag: options.product,
240
+ env: options.env,
241
+ broker_tag: options.brokerTag,
242
+ }, this.getUserAccess());
243
+ }
244
+ catch (error) {
245
+ if (error instanceof BrokerError)
246
+ throw error;
247
+ throw new BrokerError(`Failed to get broker stats: ${error}`, 'GET_STATS_FAILED', error);
248
+ }
249
+ },
250
+ /**
251
+ * Get broker dashboard overview data
252
+ * Decrypts message content for recent messages
253
+ */
254
+ getDashboard: async (options) => {
255
+ try {
256
+ await this.initializeProductForEvents(options.product);
257
+ const result = await this.processorApiService.getBrokerDashboard({
258
+ product_tag: options.product,
259
+ env: options.env,
260
+ broker_tag: options.brokerTag,
261
+ }, this.getUserAccess());
262
+ // Decrypt recent messages
263
+ const recentMessages = (result.recent_messages || []).map((msg) => (Object.assign(Object.assign({}, msg), { message_decrypted: msg.message_encrypted
264
+ ? this.decryptPayload(msg.message_encrypted)
265
+ : undefined })));
266
+ return Object.assign(Object.assign({}, result), { recent_messages: recentMessages });
267
+ }
268
+ catch (error) {
269
+ if (error instanceof BrokerError)
270
+ throw error;
271
+ throw new BrokerError(`Failed to get broker dashboard: ${error}`, 'GET_DASHBOARD_FAILED', error);
272
+ }
273
+ },
274
+ };
275
+ this.config = config;
276
+ this.productBuilderService = (_a = config.preInitializedProductBuilder) !== null && _a !== void 0 ? _a : new products_service_1.default({
277
+ workspace_id: config.workspace_id,
278
+ public_key: config.public_key,
279
+ user_id: config.user_id,
280
+ token: config.token,
281
+ env_type: config.env_type,
282
+ redis_client: config.redis_client,
283
+ access_key: config.access_key,
284
+ });
285
+ this.processorApiService = new processorApi_service_1.ProcessorApiService(config.env_type);
286
+ // Initialize CacheManager if Redis client is provided
287
+ if (config.redis_client) {
288
+ this.cacheManager = new cache_manager_1.CacheManager({
289
+ workspace_id: config.workspace_id,
290
+ public_key: config.public_key,
291
+ user_id: config.user_id,
292
+ token: config.token,
293
+ env_type: config.env_type || '',
294
+ redis_client: config.redis_client,
295
+ });
296
+ }
297
+ }
298
+ /**
299
+ * Get user access credentials
300
+ */
301
+ getUserAccess() {
302
+ return {
303
+ user_id: this.config.user_id,
304
+ token: this.config.token,
305
+ workspace_id: this.config.workspace_id,
306
+ public_key: this.config.public_key,
307
+ access_key: this.config.access_key,
308
+ };
309
+ }
310
+ /**
311
+ * Initialize product and get broker configuration (with caching)
312
+ */
313
+ async initializeBroker(productTag, envSlug, event, message) {
314
+ var _a, _b;
315
+ // Parse event to get broker and topic tags
316
+ const { brokerTag, topicTag } = (0, broker_util_1.parseEventString)(event);
317
+ // Check cache first (keyed by product:broker:env)
318
+ const cacheKey = `${productTag}:${brokerTag}:${envSlug}`;
319
+ const cached = this.initializedBrokerCache.get(cacheKey);
320
+ if (cached) {
321
+ // For cached brokers, just check if topic exists (might be new topic)
322
+ let topic = (_a = cached.broker.topics) === null || _a === void 0 ? void 0 : _a.find(t => t.tag === topicTag);
323
+ if (!topic) {
324
+ if (message) {
325
+ this.ensureTopicRegistered(brokerTag, topicTag, message);
326
+ }
327
+ topic = { tag: topicTag, name: topicTag, sample: message || {} };
328
+ }
329
+ // Determine topic URL
330
+ let topicUrl = topic.name;
331
+ if (cached.brokerEnv.type === types_1.MessageBrokerTypes.AWS_SQS) {
332
+ topicUrl = (0, broker_util_1.getSqsQueueUrl)(topic, envSlug);
333
+ }
334
+ return Object.assign(Object.assign({}, cached), { topic, topicUrl });
335
+ }
336
+ // Initialize product only if not already done
337
+ if (!this.initializedProducts.has(productTag)) {
338
+ await this.productBuilderService.initializeProductByTag(productTag);
339
+ this.initializedProducts.add(productTag);
340
+ }
341
+ this.productTag = productTag;
342
+ this.productId = this.productBuilderService.fetchProductId() || '';
343
+ this.privateKey = this.productBuilderService.fetchPrivateKey();
344
+ // Fetch broker configuration
345
+ const broker = await this.productBuilderService.fetchMessageBroker(brokerTag);
346
+ if (!broker) {
347
+ throw new BrokerError(`Message Broker ${brokerTag} not found`, 'BROKER_NOT_FOUND');
348
+ }
349
+ if (!broker.envs || !Array.isArray(broker.envs)) {
350
+ throw new BrokerError(`Message Broker ${brokerTag} has no environments configured`, 'BROKER_NO_ENVS');
351
+ }
352
+ // Get environment-specific broker config
353
+ const brokerEnv = broker.envs.find((el) => el.slug === envSlug);
354
+ if (!brokerEnv) {
355
+ throw new BrokerError(`Broker environment for ${envSlug} not found`, 'BROKER_ENV_NOT_FOUND');
356
+ }
357
+ // Check if topic exists in broker's topics array
358
+ let topic = (_b = broker.topics) === null || _b === void 0 ? void 0 : _b.find(t => t.tag === topicTag);
359
+ if (!topic) {
360
+ if (message) {
361
+ this.ensureTopicRegistered(brokerTag, topicTag, message);
362
+ }
363
+ topic = { tag: topicTag, name: topicTag, sample: message || {} };
364
+ }
365
+ // Resolve $Secret{} and refresh cloud_connection credentials when linked
366
+ let resolvedConfig = brokerEnv.config;
367
+ if (resolvedConfig && typeof resolvedConfig === 'object') {
368
+ try {
369
+ resolvedConfig = (await (0, cloud_runtime_util_1.resolveCloudLinkedConfig)(resolvedConfig, {
370
+ environment: this.config.env_type,
371
+ auth: {
372
+ token: this.config.token,
373
+ public_key: this.config.public_key,
374
+ user_id: this.config.user_id,
375
+ workspace_id: this.config.workspace_id,
376
+ access_key: this.config.access_key,
377
+ },
378
+ productTag,
379
+ componentTag: brokerTag,
380
+ envSlug,
381
+ }));
382
+ }
383
+ catch (err) {
384
+ if ((0, secrets_1.mightContainSecrets)(resolvedConfig)) {
385
+ const secretsService = (0, secrets_1.getSecretsService)();
386
+ if (!secretsService) {
387
+ throw new BrokerError(`Broker configuration contains secret references but secrets service is not initialized.`, 'SECRETS_NOT_INITIALIZED');
388
+ }
389
+ const resolved = await secretsService.resolve(resolvedConfig, { env: envSlug });
390
+ resolvedConfig = resolved.value;
391
+ }
392
+ else {
393
+ throw new BrokerError(`Failed to resolve cloud-linked broker config: ${err.message}`, 'CLOUD_CONFIG_RESOLVE_ERROR', err);
394
+ }
395
+ }
396
+ }
397
+ // Create resolved broker env
398
+ const resolvedBrokerEnv = Object.assign(Object.assign({}, brokerEnv), { config: resolvedConfig });
399
+ // Determine the topic URL/name
400
+ let topicUrl = topic.name;
401
+ if (brokerEnv.type === types_1.MessageBrokerTypes.AWS_SQS) {
402
+ topicUrl = (0, broker_util_1.getSqsQueueUrl)(topic, envSlug);
403
+ }
404
+ // Cache the result (without topic, as topics may vary per call)
405
+ this.initializedBrokerCache.set(cacheKey, {
406
+ broker,
407
+ topic, // Store last topic, but will be re-evaluated on cache hit
408
+ brokerEnv: resolvedBrokerEnv,
409
+ topicUrl,
410
+ });
411
+ return { broker, topic, brokerEnv: resolvedBrokerEnv, topicUrl };
412
+ }
413
+ /**
414
+ * Initialize logging service
415
+ */
416
+ initializeLogService() {
417
+ if (!this.logService) {
418
+ this.logService = new logs_service_1.default({
419
+ product_id: this.productId,
420
+ workspace_id: this.config.workspace_id,
421
+ public_key: this.config.public_key,
422
+ user_id: this.config.user_id,
423
+ token: this.config.token,
424
+ env_type: this.config.env_type,
425
+ workspace_private_key: this.config.workspace_private_key,
426
+ });
427
+ }
428
+ }
429
+ /**
430
+ * Validate cache tag exists in product and return cache configuration
431
+ * Uses local in-memory cache to avoid repeated API calls (5 minute TTL)
432
+ */
433
+ async validateCache(cacheTag) {
434
+ const cacheKey = `${this.productTag}:${cacheTag}`;
435
+ const cached = this.cacheConfigCache.get(cacheKey);
436
+ const now = Date.now();
437
+ const CACHE_TTL = 5 * 60 * 1000; // 5 minutes
438
+ // Return cached config if still valid
439
+ if (cached && (now - cached.fetchedAt) < CACHE_TTL) {
440
+ return { expiry: cached.expiry };
441
+ }
442
+ // Fetch from API and cache the result
443
+ const cache = await this.productBuilderService.fetchCache(cacheTag);
444
+ if (!cache) {
445
+ throw new BrokerError(`Cache configuration '${cacheTag}' does not exist`, 'CACHE_NOT_FOUND');
446
+ }
447
+ this.cacheConfigCache.set(cacheKey, { expiry: cache.expiry, fetchedAt: now });
448
+ return { expiry: cache.expiry };
449
+ }
450
+ /**
451
+ * Generate a cache key for the broker service pool
452
+ */
453
+ getBrokerPoolKey(type, config) {
454
+ var _a;
455
+ // Use type + url/host as the key (url for RabbitMQ, host for others)
456
+ const configKey = (config === null || config === void 0 ? void 0 : config.url) || (config === null || config === void 0 ? void 0 : config.host) || ((_a = config === null || config === void 0 ? void 0 : config.brokers) === null || _a === void 0 ? void 0 : _a[0]) || JSON.stringify(config);
457
+ return `${type}:${configKey}`;
458
+ }
459
+ /**
460
+ * Get or create broker service instance (with connection pooling).
461
+ * When scope.workspaceId and scope.product are provided, uses shared registry so connections are reused across instances.
462
+ */
463
+ async getBrokerService(type, config, scope) {
464
+ var _a, _b;
465
+ if ((0, broker_util_1.isBrowser)()) {
466
+ throw new BrokerError('Broker operations are not supported in browser environment', 'BROWSER_NOT_SUPPORTED');
467
+ }
468
+ const poolKey = this.getBrokerPoolKey(type, config);
469
+ const existingService = this.brokerServicePool.get(poolKey);
470
+ if (existingService)
471
+ return existingService;
472
+ const workspaceId = (_a = scope === null || scope === void 0 ? void 0 : scope.workspaceId) !== null && _a !== void 0 ? _a : '';
473
+ const product = (_b = scope === null || scope === void 0 ? void 0 : scope.product) !== null && _b !== void 0 ? _b : '';
474
+ const useShared = workspaceId !== '' && product !== '';
475
+ if (useShared) {
476
+ const sharedKey = getSharedBrokerKey(workspaceId, product, poolKey);
477
+ const existing = sharedBrokerRegistry.get(sharedKey);
478
+ if (existing) {
479
+ this.brokerServicePool.set(poolKey, existing);
480
+ this.poolKeyToSharedKey.set(poolKey, sharedKey);
481
+ return existing;
482
+ }
483
+ const inFlight = sharedBrokerInFlight.get(sharedKey);
484
+ if (inFlight) {
485
+ const service = await inFlight;
486
+ this.brokerServicePool.set(poolKey, service);
487
+ this.poolKeyToSharedKey.set(poolKey, sharedKey);
488
+ return service;
489
+ }
490
+ const createPromise = (async () => {
491
+ const existingInRegistry = sharedBrokerRegistry.get(sharedKey);
492
+ if (existingInRegistry) {
493
+ try {
494
+ if (typeof existingInRegistry.disconnect === 'function')
495
+ await existingInRegistry.disconnect();
496
+ }
497
+ catch (_a) {
498
+ // Non-fatal
499
+ }
500
+ sharedBrokerRegistry.delete(sharedKey);
501
+ }
502
+ const createBrokerService = await (0, broker_util_1.loadBrokerService)();
503
+ if (!createBrokerService) {
504
+ throw new BrokerError('Failed to load broker service', 'BROKER_SERVICE_LOAD_FAILED');
505
+ }
506
+ const service = createBrokerService(type, config);
507
+ const raceExisting = sharedBrokerRegistry.get(sharedKey);
508
+ if (raceExisting) {
509
+ try {
510
+ if (typeof raceExisting.disconnect === 'function')
511
+ await raceExisting.disconnect();
512
+ }
513
+ catch (_b) {
514
+ // Non-fatal
515
+ }
516
+ sharedBrokerRegistry.delete(sharedKey);
517
+ }
518
+ sharedBrokerRegistry.set(sharedKey, service);
519
+ return service;
520
+ })();
521
+ sharedBrokerInFlight.set(sharedKey, createPromise);
522
+ try {
523
+ const service = await createPromise;
524
+ this.brokerServicePool.set(poolKey, service);
525
+ this.poolKeyToSharedKey.set(poolKey, sharedKey);
526
+ return service;
527
+ }
528
+ finally {
529
+ sharedBrokerInFlight.delete(sharedKey);
530
+ }
531
+ }
532
+ const createBrokerService = await (0, broker_util_1.loadBrokerService)();
533
+ if (!createBrokerService) {
534
+ throw new BrokerError('Failed to load broker service', 'BROKER_SERVICE_LOAD_FAILED');
535
+ }
536
+ const service = createBrokerService(type, config);
537
+ this.brokerServicePool.set(poolKey, service);
538
+ return service;
539
+ }
540
+ /**
541
+ * Disconnect all pooled broker connections (e.g. at end of workflow run). Safe if pool is empty.
542
+ */
543
+ async disconnectAll() {
544
+ for (const [poolKey, service] of this.brokerServicePool.entries()) {
545
+ try {
546
+ if (typeof service.disconnect === 'function')
547
+ await service.disconnect();
548
+ }
549
+ catch (_a) {
550
+ // Non-fatal
551
+ }
552
+ const sharedKey = this.poolKeyToSharedKey.get(poolKey);
553
+ if (sharedKey)
554
+ sharedBrokerRegistry.delete(sharedKey);
555
+ }
556
+ this.brokerServicePool.clear();
557
+ this.poolKeyToSharedKey.clear();
558
+ }
559
+ /**
560
+ * Pre-warm broker connections for the given product/env and broker tags.
561
+ * Call before step execution so the first produce step reuses connections. Same auth and secrets as publish.
562
+ */
563
+ async warmBrokerConnections(options) {
564
+ var _a;
565
+ const { product, env, brokerTags } = options;
566
+ if (brokerTags.length === 0)
567
+ return;
568
+ for (const brokerTag of brokerTags) {
569
+ try {
570
+ const { brokerEnv } = await this.initializeBroker(product, env, `${brokerTag}:_warm`, {});
571
+ const service = await this.getBrokerService(brokerEnv.type, brokerEnv.config, {
572
+ workspaceId: (_a = this.config) === null || _a === void 0 ? void 0 : _a.workspace_id,
573
+ product,
574
+ });
575
+ if (typeof service.connect === 'function')
576
+ await service.connect();
577
+ }
578
+ catch (_b) {
579
+ // Non-fatal: step will connect on first use
580
+ }
581
+ }
582
+ }
583
+ /**
584
+ * Auto-register a topic in the background (fire-and-forget)
585
+ * This is intentionally lightweight - no pre-check, no post-fetch
586
+ */
587
+ ensureTopicRegistered(brokerTag, topicTag, message) {
588
+ const fullTag = `${brokerTag}:${topicTag}`;
589
+ // Fire-and-forget: don't await, let it run in background
590
+ this.productBuilderService.createMessageBrokerTopic({
591
+ tag: fullTag,
592
+ name: topicTag,
593
+ description: `Auto-registered topic for ${fullTag}`,
594
+ sample: JSON.stringify(message || {}),
595
+ idempotent: false,
596
+ }).catch(() => {
597
+ // Silently ignore - topic might already exist or registration failed
598
+ // Either way, the publish should proceed
599
+ });
600
+ }
601
+ /**
602
+ * Auto-register a producer if it doesn't exist
603
+ */
604
+ async ensureProducerRegistered(brokerTag, topicTag, options) {
605
+ const tag = (options === null || options === void 0 ? void 0 : options.tag) || `producer-${brokerTag}-${topicTag}`;
606
+ const topic = `${brokerTag}:${topicTag}`;
607
+ try {
608
+ const existingProducer = await this.productBuilderService.fetchMessageBrokerProducer(brokerTag, tag);
609
+ if (!existingProducer) {
610
+ await this.productBuilderService.createMessageBrokerProducer({
611
+ tag,
612
+ topic,
613
+ description: (options === null || options === void 0 ? void 0 : options.description) || `Auto-registered producer for ${topic}`,
614
+ });
615
+ }
616
+ }
617
+ catch (_a) {
618
+ // Silently ignore registration errors - the main operation should still proceed
619
+ }
620
+ }
621
+ /**
622
+ * Auto-register a consumer if it doesn't exist
623
+ */
624
+ async ensureConsumerRegistered(brokerTag, topicTag, options) {
625
+ const tag = (options === null || options === void 0 ? void 0 : options.tag) || `consumer-${brokerTag}-${topicTag}`;
626
+ const topic = `${brokerTag}:${topicTag}`;
627
+ try {
628
+ const existingConsumer = await this.productBuilderService.fetchMessageBrokerConsumer(brokerTag, tag);
629
+ if (!existingConsumer) {
630
+ await this.productBuilderService.createMessageBrokerConsumer({
631
+ tag,
632
+ topic,
633
+ description: (options === null || options === void 0 ? void 0 : options.description) || `Auto-registered consumer for ${topic}`,
634
+ });
635
+ }
636
+ }
637
+ catch (_a) {
638
+ // Silently ignore registration errors - the main operation should still proceed
639
+ }
640
+ }
641
+ /**
642
+ * Publish a message to a broker topic
643
+ */
644
+ async publish(options) {
645
+ var _a, _b, _c, _d, _e;
646
+ const process_id = (0, processor_utils_1.generateObjectId)();
647
+ const start = Date.now();
648
+ const { cache } = options;
649
+ let sessionLogFields = {};
650
+ let resolvedMessage = options.message;
651
+ // Parse event string early to have broker/topic tags available for error logging
652
+ const { brokerTag, topicTag } = (0, broker_util_1.parseEventString)(options.event);
653
+ try {
654
+ const { broker, topic, brokerEnv, topicUrl } = await this.initializeBroker(options.product, options.env, options.event, options.message);
655
+ // Store private key for cache operations
656
+ if (this.privateKey) {
657
+ this.privateKeys.set(options.product, this.privateKey);
658
+ }
659
+ // Process session if provided - verify and resolve $Session{} references
660
+ if (options.session && this.privateKey) {
661
+ // Convert session object { tag, token } to string format "tag:token"
662
+ const sessionToken = `${options.session.tag}:${options.session.token}`;
663
+ const sessionResult = await (0, sessions_1.processSessionForExecution)(sessionToken, this.privateKey, { message: options.message }, options.env, {
664
+ fetchSessionSelector: async (sessionTag) => {
665
+ const sessionConfig = await this.productBuilderService.fetchSession(sessionTag);
666
+ return sessionConfig === null || sessionConfig === void 0 ? void 0 : sessionConfig.selector;
667
+ },
668
+ });
669
+ if (sessionResult.error) {
670
+ throw new BrokerError(`Session validation failed: ${sessionResult.error}`, 'SESSION_INVALID');
671
+ }
672
+ sessionLogFields = sessionResult.logFields;
673
+ resolvedMessage = sessionResult.input.message;
674
+ }
675
+ // Auto-register producer if not exists
676
+ await this.ensureProducerRegistered(brokerTag, topicTag, options.producer);
677
+ this.initializeLogService();
678
+ const baseLogs = Object.assign({ product_tag: options.product, product_id: this.productId, workspace_id: this.config.workspace_id, env: options.env, process_id, type: types_2.LogEventTypes.PRODUCER, parent_tag: brokerTag, child_tag: topicTag, data: { event: options.event } }, sessionLogFields);
679
+ this.logService.add(Object.assign(Object.assign({}, baseLogs), { start, message: 'Publish to broker - initiated', status: types_2.LogEventStatus.PROCESSING }));
680
+ // Check cache for idempotency (prevent duplicate publishes with same data)
681
+ if (cache && this.cacheManager && this.privateKey) {
682
+ const cacheConfig = await this.validateCache(cache);
683
+ const cacheOptions = {
684
+ cache_tag: cache,
685
+ product_tag: options.product,
686
+ component_tag: `${brokerTag}:${topicTag}`,
687
+ component_type: 'broker',
688
+ operation: 'publish',
689
+ input: { event: options.event, message: options.message },
690
+ privateKey: this.privateKey,
691
+ expiry: cacheConfig.expiry,
692
+ };
693
+ const cached = await this.cacheManager.fetch(cacheOptions);
694
+ if (cached.hit && cached.data) {
695
+ const end = Date.now();
696
+ this.logService.add(Object.assign(Object.assign({}, baseLogs), { start,
697
+ end, message: `Publish to broker - cache hit (${cached.source})`, successful_execution: true, status: types_2.LogEventStatus.SUCCESS, data: { event: options.event, cache_source: cached.source }, cache_tag: cache, cache_key: cached.key, cache_status: true }));
698
+ this.logService.publish();
699
+ return cached.data;
700
+ }
701
+ }
702
+ // Generate message_id client-side and track asynchronously (fire-and-forget)
703
+ const producerTag = ((_a = options.producer) === null || _a === void 0 ? void 0 : _a.tag) || `producer-${brokerTag}-${topicTag}`;
704
+ const messageId = (0, processor_utils_1.generateObjectId)();
705
+ // Encrypt message on SDK side - NEVER send private_key over HTTP
706
+ const messageEncrypted = (0, processor_utils_1.encrypt)(JSON.stringify(resolvedMessage), this.privateKey);
707
+ // Track the message in the database (fire-and-forget - no await)
708
+ this.processorApiService.trackBrokerMessage({
709
+ workspace_id: this.config.workspace_id,
710
+ product_id: this.productId,
711
+ product_tag: options.product,
712
+ env: options.env,
713
+ broker_tag: brokerTag,
714
+ topic_tag: topicTag,
715
+ event: options.event,
716
+ producer_tag: producerTag,
717
+ message_encrypted: messageEncrypted,
718
+ process_id,
719
+ session_tag: (_b = options.session) === null || _b === void 0 ? void 0 : _b.tag,
720
+ metadata: { cache: options.cache },
721
+ message_id: messageId,
722
+ }, this.getUserAccess()).catch(() => {
723
+ // Silently ignore tracking errors - non-blocking
724
+ });
725
+ // Add the message_id to the message so consumers can track it
726
+ const messageWithTracking = Object.assign(Object.assign({}, resolvedMessage), { __ductape_message_id: messageId });
727
+ // Get broker service and publish
728
+ const brokerService = await this.getBrokerService(brokerEnv.type, brokerEnv.config, {
729
+ workspaceId: (_c = this.config) === null || _c === void 0 ? void 0 : _c.workspace_id,
730
+ product: options.product,
731
+ });
732
+ if (typeof brokerService.connect === 'function')
733
+ await brokerService.connect();
734
+ await brokerService.publish(topicUrl, messageWithTracking);
735
+ const result = {
736
+ success: true,
737
+ process_id,
738
+ };
739
+ // Store in cache for idempotency (fire-and-forget)
740
+ if (cache && this.cacheManager && this.privateKey) {
741
+ const cacheConfig = await this.validateCache(cache);
742
+ this.cacheManager.store({
743
+ cache_tag: cache,
744
+ product_tag: options.product,
745
+ component_tag: `${brokerTag}:${topicTag}`,
746
+ component_type: 'broker',
747
+ operation: 'publish',
748
+ input: { event: options.event, message: options.message },
749
+ privateKey: this.privateKey,
750
+ expiry: cacheConfig.expiry,
751
+ }, result);
752
+ }
753
+ const end = Date.now();
754
+ const successLogKey = `${options.product}:${options.env}:${options.event}`;
755
+ const now = Date.now();
756
+ const isDuplicateSuccessLog = this.lastPublishSuccessLogKey === successLogKey &&
757
+ now - this.lastPublishSuccessLogTime < BrokersService.PUBLISH_SUCCESS_LOG_DEDUPE_MS;
758
+ if (!isDuplicateSuccessLog) {
759
+ this.logService.add(Object.assign(Object.assign({}, baseLogs), { start,
760
+ end, message: 'Publish to broker - success', successful_execution: true, status: types_2.LogEventStatus.SUCCESS }));
761
+ this.lastPublishSuccessLogKey = successLogKey;
762
+ this.lastPublishSuccessLogTime = now;
763
+ }
764
+ this.logService.publish();
765
+ return result;
766
+ }
767
+ catch (error) {
768
+ const end = Date.now();
769
+ this.initializeLogService();
770
+ (_d = this.logService) === null || _d === void 0 ? void 0 : _d.add(Object.assign({ product_tag: options.product, workspace_id: this.config.workspace_id, env: options.env, process_id,
771
+ start,
772
+ end, type: types_2.LogEventTypes.PRODUCER, parent_tag: brokerTag, child_tag: topicTag, message: 'Publish to broker - failed', failed_execution: true, data: { event: options.event, error: String(error) }, status: types_2.LogEventStatus.FAIL }, sessionLogFields));
773
+ await ((_e = this.logService) === null || _e === void 0 ? void 0 : _e.publish());
774
+ if (error instanceof BrokerError) {
775
+ throw error;
776
+ }
777
+ throw new BrokerError(`Failed to publish message: ${error}`, 'PUBLISH_FAILED', error);
778
+ }
779
+ }
780
+ /**
781
+ * Subscribe to a broker topic
782
+ */
783
+ async subscribe(options) {
784
+ var _a, _b, _c, _d;
785
+ const process_id = (0, processor_utils_1.generateObjectId)();
786
+ const start = Date.now();
787
+ try {
788
+ // For subscribe, we don't auto-register topics - they should already exist
789
+ const { broker, topic, brokerEnv, topicUrl } = await this.initializeBroker(options.product, options.env, options.event, undefined);
790
+ const { brokerTag, topicTag } = (0, broker_util_1.parseEventString)(options.event);
791
+ // Auto-register consumer if not exists
792
+ await this.ensureConsumerRegistered(brokerTag, topicTag, options.consumer);
793
+ this.initializeLogService();
794
+ const baseLogs = {
795
+ product_tag: options.product,
796
+ product_id: this.productId,
797
+ workspace_id: this.config.workspace_id,
798
+ env: options.env,
799
+ process_id,
800
+ type: types_2.LogEventTypes.CONSUMER,
801
+ parent_tag: brokerTag,
802
+ child_tag: topicTag,
803
+ data: { event: options.event },
804
+ };
805
+ this.logService.add(Object.assign(Object.assign({}, baseLogs), { start, message: 'Subscribe to broker - initiated', status: types_2.LogEventStatus.PROCESSING }));
806
+ // Get broker service and subscribe with message tracking wrapper
807
+ const brokerService = await this.getBrokerService(brokerEnv.type, brokerEnv.config, {
808
+ workspaceId: (_a = this.config) === null || _a === void 0 ? void 0 : _a.workspace_id,
809
+ product: options.product,
810
+ });
811
+ if (typeof brokerService.connect === 'function')
812
+ await brokerService.connect();
813
+ const consumerTag = ((_b = options.consumer) === null || _b === void 0 ? void 0 : _b.tag) || `consumer-${brokerTag}-${topicTag}`;
814
+ // Pre-cache user access for callback use (avoid repeated calls)
815
+ const userAccess = this.getUserAccess();
816
+ // Wrap the callback to track message consumption (optimized for low latency)
817
+ const wrappedCallback = async (message) => {
818
+ const messageReceiveTime = Date.now();
819
+ const consumeProcessId = (0, processor_utils_1.generateObjectId)();
820
+ // Extract message_id from the message
821
+ const msgWithId = message;
822
+ const messageId = msgWithId.__ductape_message_id;
823
+ // Execute user callback FIRST - this is the critical path
824
+ let callbackSuccess = true;
825
+ let callbackError;
826
+ try {
827
+ await options.callback(message);
828
+ }
829
+ catch (err) {
830
+ callbackSuccess = false;
831
+ callbackError = err;
832
+ }
833
+ const callbackEnd = Date.now();
834
+ // Fire-and-forget: All tracking/logging happens async after callback completes
835
+ // This ensures user callback latency is not affected by our tracking overhead
836
+ setImmediate(() => {
837
+ var _a, _b;
838
+ const consumeBaseLogs = {
839
+ product_tag: options.product,
840
+ product_id: this.productId,
841
+ workspace_id: this.config.workspace_id,
842
+ env: options.env,
843
+ process_id: consumeProcessId,
844
+ type: types_2.LogEventTypes.CONSUMER,
845
+ parent_tag: brokerTag,
846
+ child_tag: topicTag,
847
+ data: { event: options.event, message_id: messageId, consumer_tag: consumerTag },
848
+ };
849
+ if (messageId) {
850
+ // Calculate actual callback processing time
851
+ const processingTime = callbackEnd - messageReceiveTime;
852
+ // Register consumer first, then update status (sequential to avoid race condition)
853
+ this.processorApiService.registerBrokerConsumer({
854
+ message_id: messageId,
855
+ consumer_tag: consumerTag,
856
+ }, userAccess).then(() => {
857
+ // Now update the status with processing time
858
+ return this.processorApiService.updateBrokerConsumerStatus({
859
+ message_id: messageId,
860
+ consumer_tag: consumerTag,
861
+ status: callbackSuccess ? 'success' : 'failed',
862
+ error: callbackError ? String(callbackError) : undefined,
863
+ processing_time: processingTime,
864
+ }, userAccess);
865
+ }).catch(() => { }); // Silently ignore tracking errors
866
+ }
867
+ // Log consumption (fire-and-forget)
868
+ (_a = this.logService) === null || _a === void 0 ? void 0 : _a.add(Object.assign(Object.assign(Object.assign({}, consumeBaseLogs), { start: messageReceiveTime, end: callbackEnd, message: messageId
869
+ ? (callbackSuccess ? 'Message consumed - success' : 'Message consumed - failed')
870
+ : 'Message consumed - untracked (no message_id)', successful_execution: callbackSuccess, failed_execution: !callbackSuccess, status: callbackSuccess ? types_2.LogEventStatus.SUCCESS : types_2.LogEventStatus.FAIL }), (callbackError && { data: Object.assign(Object.assign({}, consumeBaseLogs.data), { error: String(callbackError) }) })));
871
+ (_b = this.logService) === null || _b === void 0 ? void 0 : _b.publish();
872
+ });
873
+ // Re-throw callback error if any (so RabbitMQ can handle retry/nack)
874
+ if (callbackError) {
875
+ throw callbackError;
876
+ }
877
+ };
878
+ await brokerService.subscribe(topicUrl, wrappedCallback);
879
+ const end = Date.now();
880
+ this.logService.add(Object.assign(Object.assign({}, baseLogs), { start,
881
+ end, message: 'Subscribe to broker - success', successful_execution: true, status: types_2.LogEventStatus.SUCCESS }));
882
+ this.logService.publish();
883
+ return {
884
+ success: true,
885
+ process_id,
886
+ };
887
+ }
888
+ catch (error) {
889
+ const end = Date.now();
890
+ this.initializeLogService();
891
+ (_c = this.logService) === null || _c === void 0 ? void 0 : _c.add({
892
+ product_tag: options.product,
893
+ workspace_id: this.config.workspace_id,
894
+ env: options.env,
895
+ process_id,
896
+ start,
897
+ end,
898
+ type: types_2.LogEventTypes.CONSUMER,
899
+ message: 'Subscribe to broker - failed',
900
+ failed_execution: true,
901
+ data: { event: options.event, error: String(error) },
902
+ status: types_2.LogEventStatus.FAIL,
903
+ });
904
+ await ((_d = this.logService) === null || _d === void 0 ? void 0 : _d.publish());
905
+ if (error instanceof BrokerError) {
906
+ throw error;
907
+ }
908
+ throw new BrokerError(`Failed to subscribe: ${error}`, 'SUBSCRIBE_FAILED', error);
909
+ }
910
+ }
911
+ /**
912
+ * Get all message brokers for a product
913
+ */
914
+ async getBrokers(productTag) {
915
+ await this.productBuilderService.initializeProductByTag(productTag);
916
+ return this.productBuilderService.fetchMessageBrokers();
917
+ }
918
+ /**
919
+ * Get a specific message broker by tag
920
+ */
921
+ async getBroker(productTag, brokerTag) {
922
+ await this.productBuilderService.initializeProductByTag(productTag);
923
+ return this.productBuilderService.fetchMessageBroker(brokerTag);
924
+ }
925
+ /**
926
+ * Get all topics for a message broker
927
+ */
928
+ async getTopics(productTag, brokerTag) {
929
+ await this.productBuilderService.initializeProductByTag(productTag);
930
+ return this.productBuilderService.fetchMessageBrokerTopics(brokerTag);
931
+ }
932
+ /**
933
+ * Get a specific topic by event string (broker_tag:topic_tag)
934
+ */
935
+ async getTopic(productTag, event) {
936
+ await this.productBuilderService.initializeProductByTag(productTag);
937
+ return this.productBuilderService.fetchMessageBrokerTopic(event);
938
+ }
939
+ /**
940
+ * Test connection to a message broker
941
+ *
942
+ * Validates broker configuration and attempts to establish a connection.
943
+ *
944
+ * @example
945
+ * ```ts
946
+ * const result = await brokers.testConnection({
947
+ * product: 'my-product',
948
+ * env: 'prd',
949
+ * broker: 'orders-broker',
950
+ * });
951
+ * console.log(result.connected); // true or false
952
+ * ```
953
+ */
954
+ async testConnection(options) {
955
+ var _a;
956
+ const startTime = Date.now();
957
+ try {
958
+ // Initialize product and fetch broker configuration
959
+ await this.productBuilderService.initializeProductByTag(options.product);
960
+ const broker = await this.productBuilderService.fetchMessageBroker(options.broker);
961
+ if (!broker) {
962
+ return {
963
+ connected: false,
964
+ latency: Date.now() - startTime,
965
+ error: `Message Broker '${options.broker}' not found`,
966
+ };
967
+ }
968
+ // Get environment-specific broker config
969
+ const brokerEnv = broker.envs.find((el) => el.slug === options.env);
970
+ if (!brokerEnv) {
971
+ return {
972
+ connected: false,
973
+ latency: Date.now() - startTime,
974
+ error: `Broker environment '${options.env}' not found`,
975
+ };
976
+ }
977
+ // Resolve any secret references in broker config
978
+ let resolvedConfig = brokerEnv.config;
979
+ if (resolvedConfig && (0, secrets_1.mightContainSecrets)(resolvedConfig)) {
980
+ const secretsService = (0, secrets_1.getSecretsService)();
981
+ if (secretsService) {
982
+ const resolved = await secretsService.resolve(resolvedConfig, { env: options.env });
983
+ resolvedConfig = resolved.value;
984
+ }
985
+ else {
986
+ return {
987
+ connected: false,
988
+ latency: Date.now() - startTime,
989
+ error: 'Broker configuration contains secret references but secrets service is not initialized',
990
+ };
991
+ }
992
+ }
993
+ // Try to create and connect the broker service
994
+ const brokerService = await this.getBrokerService(brokerEnv.type, resolvedConfig, {
995
+ workspaceId: (_a = this.config) === null || _a === void 0 ? void 0 : _a.workspace_id,
996
+ product: options.product,
997
+ });
998
+ // Attempt to connect
999
+ await brokerService.connect();
1000
+ // Disconnect after successful test
1001
+ await brokerService.disconnect();
1002
+ return {
1003
+ connected: true,
1004
+ latency: Date.now() - startTime,
1005
+ };
1006
+ }
1007
+ catch (error) {
1008
+ return {
1009
+ connected: false,
1010
+ latency: Date.now() - startTime,
1011
+ error: error.message,
1012
+ };
1013
+ }
1014
+ }
1015
+ // ============================================================================
1016
+ // EVENT TRACKING METHODS
1017
+ // ============================================================================
1018
+ /**
1019
+ * Initialize product for event operations (without broker/topic lookup)
1020
+ */
1021
+ async initializeProductForEvents(productTag) {
1022
+ await this.productBuilderService.initializeProductByTag(productTag);
1023
+ this.productTag = productTag;
1024
+ this.productId = this.productBuilderService.fetchProductId() || '';
1025
+ this.privateKey = this.productBuilderService.fetchPrivateKey();
1026
+ }
1027
+ /**
1028
+ * Encrypt payload data using the product's private key
1029
+ */
1030
+ encryptPayload(data) {
1031
+ return (0, processor_utils_1.encrypt)(JSON.stringify(data), this.privateKey);
1032
+ }
1033
+ /**
1034
+ * Decrypt payload data using the product's private key
1035
+ */
1036
+ decryptPayload(encryptedData) {
1037
+ try {
1038
+ return JSON.parse((0, processor_utils_1.decrypt)(encryptedData, this.privateKey));
1039
+ }
1040
+ catch (_a) {
1041
+ return {};
1042
+ }
1043
+ }
1044
+ /**
1045
+ * Get broker events with filtering and pagination
1046
+ *
1047
+ * @example
1048
+ * ```ts
1049
+ * const result = await brokers.getEvents({
1050
+ * product: 'my-product',
1051
+ * env: 'production',
1052
+ * brokerTag: 'order-events',
1053
+ * status: 'failed',
1054
+ * page: 1,
1055
+ * limit: 20,
1056
+ * });
1057
+ *
1058
+ * for (const event of result.events) {
1059
+ * console.log('Event:', event.id, event.status);
1060
+ * }
1061
+ * ```
1062
+ */
1063
+ async getEvents(options) {
1064
+ var _a, _b;
1065
+ try {
1066
+ await this.initializeProductForEvents(options.product);
1067
+ const result = await this.processorApiService.getBrokerEvents({
1068
+ product: options.product,
1069
+ env: options.env,
1070
+ brokerTag: options.brokerTag,
1071
+ topic: options.topic,
1072
+ category: options.category,
1073
+ status: options.status,
1074
+ idempotent: options.idempotent,
1075
+ startDate: (_a = options.startDate) === null || _a === void 0 ? void 0 : _a.toISOString(),
1076
+ endDate: (_b = options.endDate) === null || _b === void 0 ? void 0 : _b.toISOString(),
1077
+ page: options.page,
1078
+ limit: options.limit,
1079
+ }, this.getUserAccess());
1080
+ // Decrypt request/response data for each event
1081
+ const events = result.events.map((event) => (Object.assign(Object.assign({}, event), { timestamp: new Date(event.timestamp), request_data: event.request_data_encrypted
1082
+ ? this.decryptPayload(event.request_data_encrypted)
1083
+ : event.request_data, response_data: event.response_data_encrypted
1084
+ ? this.decryptPayload(event.response_data_encrypted)
1085
+ : event.response_data })));
1086
+ return {
1087
+ events,
1088
+ total: result.total,
1089
+ page: result.page,
1090
+ limit: result.limit,
1091
+ hasMore: result.hasMore,
1092
+ };
1093
+ }
1094
+ catch (error) {
1095
+ if (error instanceof BrokerError)
1096
+ throw error;
1097
+ throw new BrokerError(`Failed to get broker events: ${error}`, 'GET_EVENTS_FAILED', error);
1098
+ }
1099
+ }
1100
+ /**
1101
+ * Get a single broker event by ID
1102
+ *
1103
+ * @example
1104
+ * ```ts
1105
+ * const event = await brokers.getEvent({
1106
+ * product: 'my-product',
1107
+ * eventId: 'event-123',
1108
+ * });
1109
+ *
1110
+ * if (event) {
1111
+ * console.log('Event status:', event.status);
1112
+ * console.log('Request data:', event.request_data);
1113
+ * }
1114
+ * ```
1115
+ */
1116
+ async getEvent(options) {
1117
+ try {
1118
+ await this.initializeProductForEvents(options.product);
1119
+ const event = await this.processorApiService.getBrokerEvent({ product: options.product, eventId: options.eventId }, this.getUserAccess());
1120
+ if (!event)
1121
+ return null;
1122
+ // Decrypt request/response data
1123
+ return Object.assign(Object.assign({}, event), { timestamp: new Date(event.timestamp), request_data: event.request_data_encrypted
1124
+ ? this.decryptPayload(event.request_data_encrypted)
1125
+ : event.request_data, response_data: event.response_data_encrypted
1126
+ ? this.decryptPayload(event.response_data_encrypted)
1127
+ : event.response_data });
1128
+ }
1129
+ catch (error) {
1130
+ if (error instanceof BrokerError)
1131
+ throw error;
1132
+ throw new BrokerError(`Failed to get broker event: ${error}`, 'GET_EVENT_FAILED', error);
1133
+ }
1134
+ }
1135
+ /**
1136
+ * Replay a broker event (reprocess a failed or successful event)
1137
+ *
1138
+ * @example
1139
+ * ```ts
1140
+ * const result = await brokers.replayEvent({
1141
+ * product: 'my-product',
1142
+ * env: 'production',
1143
+ * eventId: 'event-123',
1144
+ * force: true, // Replay even if already successful
1145
+ * });
1146
+ *
1147
+ * if (result.success) {
1148
+ * console.log('New event ID:', result.new_event_id);
1149
+ * }
1150
+ * ```
1151
+ */
1152
+ async replayEvent(options) {
1153
+ try {
1154
+ await this.initializeProductForEvents(options.product);
1155
+ return await this.processorApiService.replayBrokerEvent({
1156
+ product: options.product,
1157
+ env: options.env,
1158
+ eventId: options.eventId,
1159
+ force: options.force,
1160
+ }, this.getUserAccess());
1161
+ }
1162
+ catch (error) {
1163
+ if (error instanceof BrokerError)
1164
+ throw error;
1165
+ throw new BrokerError(`Failed to replay broker event: ${error}`, 'REPLAY_EVENT_FAILED', error);
1166
+ }
1167
+ }
1168
+ /**
1169
+ * Get broker event statistics
1170
+ *
1171
+ * @example
1172
+ * ```ts
1173
+ * const stats = await brokers.getEventStats({
1174
+ * product: 'my-product',
1175
+ * env: 'production',
1176
+ * brokerTag: 'order-events',
1177
+ * });
1178
+ *
1179
+ * console.log('Total events:', stats.total_events);
1180
+ * console.log('Failed:', stats.failed_count);
1181
+ * console.log('Success:', stats.success_count);
1182
+ * ```
1183
+ */
1184
+ async getEventStats(options) {
1185
+ try {
1186
+ await this.initializeProductForEvents(options.product);
1187
+ return await this.processorApiService.getBrokerEventStats({
1188
+ product: options.product,
1189
+ env: options.env,
1190
+ brokerTag: options.brokerTag,
1191
+ }, this.getUserAccess());
1192
+ }
1193
+ catch (error) {
1194
+ if (error instanceof BrokerError)
1195
+ throw error;
1196
+ throw new BrokerError(`Failed to get broker event stats: ${error}`, 'GET_EVENT_STATS_FAILED', error);
1197
+ }
1198
+ }
1199
+ /**
1200
+ * Reprocess messages from the Dead Letter Queue
1201
+ *
1202
+ * @example
1203
+ * ```ts
1204
+ * const result = await brokers.reprocessDLQ({
1205
+ * product: 'my-product',
1206
+ * env: 'production',
1207
+ * brokerTag: 'order-events',
1208
+ * limit: 100,
1209
+ * });
1210
+ *
1211
+ * console.log('Reprocessed:', result.reprocessed_count);
1212
+ * console.log('Failed:', result.failed_count);
1213
+ * ```
1214
+ */
1215
+ async reprocessDLQ(options) {
1216
+ try {
1217
+ await this.initializeProductForEvents(options.product);
1218
+ return await this.processorApiService.reprocessDLQ({
1219
+ product: options.product,
1220
+ env: options.env,
1221
+ brokerTag: options.brokerTag,
1222
+ topicTag: options.topicTag,
1223
+ messageIds: options.messageIds,
1224
+ limit: options.limit,
1225
+ }, this.getUserAccess());
1226
+ }
1227
+ catch (error) {
1228
+ if (error instanceof BrokerError)
1229
+ throw error;
1230
+ throw new BrokerError(`Failed to reprocess DLQ: ${error}`, 'REPROCESS_DLQ_FAILED', error);
1231
+ }
1232
+ }
1233
+ /**
1234
+ * Check if an idempotency key has already been processed
1235
+ *
1236
+ * @example
1237
+ * ```ts
1238
+ * const result = await brokers.checkIdempotency({
1239
+ * product: 'my-product',
1240
+ * env: 'production',
1241
+ * idempotencyKey: 'order-123-payment',
1242
+ * });
1243
+ *
1244
+ * if (result.exists) {
1245
+ * console.log('Already processed, event ID:', result.event_id);
1246
+ * }
1247
+ * ```
1248
+ */
1249
+ async checkIdempotency(options) {
1250
+ try {
1251
+ await this.initializeProductForEvents(options.product);
1252
+ return await this.processorApiService.checkIdempotency({
1253
+ product: options.product,
1254
+ env: options.env,
1255
+ idempotencyKey: options.idempotencyKey,
1256
+ }, this.getUserAccess());
1257
+ }
1258
+ catch (error) {
1259
+ if (error instanceof BrokerError)
1260
+ throw error;
1261
+ throw new BrokerError(`Failed to check idempotency: ${error}`, 'CHECK_IDEMPOTENCY_FAILED', error);
1262
+ }
1263
+ }
1264
+ /**
1265
+ * Publish a message with idempotency guarantee
1266
+ *
1267
+ * This ensures the message is only processed once, even if published multiple times
1268
+ * with the same idempotency key.
1269
+ *
1270
+ * @example
1271
+ * ```ts
1272
+ * const result = await brokers.publishIdempotent({
1273
+ * product: 'my-product',
1274
+ * env: 'production',
1275
+ * event: 'order-events:new-orders',
1276
+ * message: { orderId: '123', amount: 99.99 },
1277
+ * idempotencyKey: 'order-123-created',
1278
+ * idempotencyTtl: 86400, // 24 hours
1279
+ * });
1280
+ *
1281
+ * if (result.success) {
1282
+ * console.log('Published with process ID:', result.process_id);
1283
+ * }
1284
+ * ```
1285
+ */
1286
+ async publishIdempotent(options) {
1287
+ try {
1288
+ // Check if already processed
1289
+ const existing = await this.checkIdempotency({
1290
+ product: options.product,
1291
+ env: options.env,
1292
+ idempotencyKey: options.idempotencyKey,
1293
+ });
1294
+ if (existing.exists) {
1295
+ return {
1296
+ success: true,
1297
+ process_id: existing.event_id,
1298
+ error: 'Already processed (idempotent)',
1299
+ };
1300
+ }
1301
+ // Proceed with publish - the message includes idempotency metadata
1302
+ const result = await this.publish(Object.assign(Object.assign({}, options), { message: Object.assign(Object.assign({}, options.message), { __idempotency_key: options.idempotencyKey, __idempotency_ttl: options.idempotencyTtl || 86400 }) }));
1303
+ return result;
1304
+ }
1305
+ catch (error) {
1306
+ if (error instanceof BrokerError)
1307
+ throw error;
1308
+ throw new BrokerError(`Failed to publish with idempotency: ${error}`, 'PUBLISH_IDEMPOTENT_FAILED', error);
1309
+ }
1310
+ }
1311
+ }
1312
+ exports.BrokersService = BrokersService;
1313
+ BrokersService.PUBLISH_SUCCESS_LOG_DEDUPE_MS = 2000;
1314
+ exports.default = BrokersService;
1315
+ //# sourceMappingURL=brokers.service.js.map