@webiny/webhooks 6.4.0-beta.1

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 (441) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/admin/SecurityPermission.d.ts +2 -0
  4. package/admin/SecurityPermission.js +15 -0
  5. package/admin/SecurityPermission.js.map +1 -0
  6. package/admin/WebhookRoutes.d.ts +2 -0
  7. package/admin/WebhookRoutes.js +33 -0
  8. package/admin/WebhookRoutes.js.map +1 -0
  9. package/admin/Webhooks.d.ts +2 -0
  10. package/admin/Webhooks.js +53 -0
  11. package/admin/Webhooks.js.map +1 -0
  12. package/admin/features/ListWebhooks/ListWebhooksGateway.d.ts +11 -0
  13. package/admin/features/ListWebhooks/ListWebhooksGateway.js +62 -0
  14. package/admin/features/ListWebhooks/ListWebhooksGateway.js.map +1 -0
  15. package/admin/features/ListWebhooks/ListWebhooksRepository.d.ts +10 -0
  16. package/admin/features/ListWebhooks/ListWebhooksRepository.js +18 -0
  17. package/admin/features/ListWebhooks/ListWebhooksRepository.js.map +1 -0
  18. package/admin/features/ListWebhooks/ListWebhooksUseCase.d.ts +10 -0
  19. package/admin/features/ListWebhooks/ListWebhooksUseCase.js +18 -0
  20. package/admin/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -0
  21. package/admin/features/ListWebhooks/abstractions.d.ts +36 -0
  22. package/admin/features/ListWebhooks/abstractions.js +7 -0
  23. package/admin/features/ListWebhooks/abstractions.js.map +1 -0
  24. package/admin/features/ListWebhooks/feature.d.ts +3 -0
  25. package/admin/features/ListWebhooks/feature.js +21 -0
  26. package/admin/features/ListWebhooks/feature.js.map +1 -0
  27. package/admin/features/ListWebhooks/index.d.ts +2 -0
  28. package/admin/features/ListWebhooks/index.js +2 -0
  29. package/admin/features/createWebhook/CreateWebhookGateway.d.ts +12 -0
  30. package/admin/features/createWebhook/CreateWebhookGateway.js +21 -0
  31. package/admin/features/createWebhook/CreateWebhookGateway.js.map +1 -0
  32. package/admin/features/createWebhook/CreateWebhookUseCase.d.ts +11 -0
  33. package/admin/features/createWebhook/CreateWebhookUseCase.js +18 -0
  34. package/admin/features/createWebhook/CreateWebhookUseCase.js.map +1 -0
  35. package/admin/features/createWebhook/abstractions.d.ts +23 -0
  36. package/admin/features/createWebhook/abstractions.js +6 -0
  37. package/admin/features/createWebhook/abstractions.js.map +1 -0
  38. package/admin/features/createWebhook/feature.d.ts +3 -0
  39. package/admin/features/createWebhook/feature.js +19 -0
  40. package/admin/features/createWebhook/feature.js.map +1 -0
  41. package/admin/features/createWebhook/index.d.ts +2 -0
  42. package/admin/features/createWebhook/index.js +2 -0
  43. package/admin/features/deleteWebhook/DeleteWebhookGateway.d.ts +11 -0
  44. package/admin/features/deleteWebhook/DeleteWebhookGateway.js +23 -0
  45. package/admin/features/deleteWebhook/DeleteWebhookGateway.js.map +1 -0
  46. package/admin/features/deleteWebhook/DeleteWebhookUseCase.d.ts +10 -0
  47. package/admin/features/deleteWebhook/DeleteWebhookUseCase.js +18 -0
  48. package/admin/features/deleteWebhook/DeleteWebhookUseCase.js.map +1 -0
  49. package/admin/features/deleteWebhook/abstractions.d.ts +14 -0
  50. package/admin/features/deleteWebhook/abstractions.js +6 -0
  51. package/admin/features/deleteWebhook/abstractions.js.map +1 -0
  52. package/admin/features/deleteWebhook/feature.d.ts +3 -0
  53. package/admin/features/deleteWebhook/feature.js +19 -0
  54. package/admin/features/deleteWebhook/feature.js.map +1 -0
  55. package/admin/features/deleteWebhook/index.d.ts +2 -0
  56. package/admin/features/deleteWebhook/index.js +2 -0
  57. package/admin/features/getWebhook/GetWebhookGateway.d.ts +12 -0
  58. package/admin/features/getWebhook/GetWebhookGateway.js +23 -0
  59. package/admin/features/getWebhook/GetWebhookGateway.js.map +1 -0
  60. package/admin/features/getWebhook/GetWebhookUseCase.d.ts +11 -0
  61. package/admin/features/getWebhook/GetWebhookUseCase.js +18 -0
  62. package/admin/features/getWebhook/GetWebhookUseCase.js.map +1 -0
  63. package/admin/features/getWebhook/abstractions.d.ts +15 -0
  64. package/admin/features/getWebhook/abstractions.js +6 -0
  65. package/admin/features/getWebhook/abstractions.js.map +1 -0
  66. package/admin/features/getWebhook/feature.d.ts +3 -0
  67. package/admin/features/getWebhook/feature.js +19 -0
  68. package/admin/features/getWebhook/feature.js.map +1 -0
  69. package/admin/features/getWebhook/index.d.ts +2 -0
  70. package/admin/features/getWebhook/index.js +2 -0
  71. package/admin/features/listAvailableEvents/ListAvailableEventsGateway.d.ts +12 -0
  72. package/admin/features/listAvailableEvents/ListAvailableEventsGateway.js +21 -0
  73. package/admin/features/listAvailableEvents/ListAvailableEventsGateway.js.map +1 -0
  74. package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.d.ts +11 -0
  75. package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.js +18 -0
  76. package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.js.map +1 -0
  77. package/admin/features/listAvailableEvents/abstractions.d.ts +15 -0
  78. package/admin/features/listAvailableEvents/abstractions.js +6 -0
  79. package/admin/features/listAvailableEvents/abstractions.js.map +1 -0
  80. package/admin/features/listAvailableEvents/feature.d.ts +3 -0
  81. package/admin/features/listAvailableEvents/feature.js +19 -0
  82. package/admin/features/listAvailableEvents/feature.js.map +1 -0
  83. package/admin/features/listAvailableEvents/index.d.ts +2 -0
  84. package/admin/features/listAvailableEvents/index.js +2 -0
  85. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.d.ts +11 -0
  86. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js +28 -0
  87. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js.map +1 -0
  88. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +10 -0
  89. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.js +18 -0
  90. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -0
  91. package/admin/features/listWebhookDeliveries/abstractions.d.ts +28 -0
  92. package/admin/features/listWebhookDeliveries/abstractions.js +6 -0
  93. package/admin/features/listWebhookDeliveries/abstractions.js.map +1 -0
  94. package/admin/features/listWebhookDeliveries/feature.d.ts +3 -0
  95. package/admin/features/listWebhookDeliveries/feature.js +19 -0
  96. package/admin/features/listWebhookDeliveries/feature.js.map +1 -0
  97. package/admin/features/listWebhookDeliveries/index.d.ts +2 -0
  98. package/admin/features/listWebhookDeliveries/index.js +2 -0
  99. package/admin/features/permissions/abstractions.d.ts +17 -0
  100. package/admin/features/permissions/abstractions.js +6 -0
  101. package/admin/features/permissions/abstractions.js.map +1 -0
  102. package/admin/features/permissions/feature.d.ts +14 -0
  103. package/admin/features/permissions/feature.js +7 -0
  104. package/admin/features/permissions/feature.js.map +1 -0
  105. package/admin/features/permissions/index.d.ts +2 -0
  106. package/admin/features/permissions/index.js +2 -0
  107. package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.d.ts +11 -0
  108. package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.js +23 -0
  109. package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.js.map +1 -0
  110. package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +10 -0
  111. package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.js +18 -0
  112. package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -0
  113. package/admin/features/resendWebhookDelivery/abstractions.d.ts +14 -0
  114. package/admin/features/resendWebhookDelivery/abstractions.js +6 -0
  115. package/admin/features/resendWebhookDelivery/abstractions.js.map +1 -0
  116. package/admin/features/resendWebhookDelivery/feature.d.ts +3 -0
  117. package/admin/features/resendWebhookDelivery/feature.js +19 -0
  118. package/admin/features/resendWebhookDelivery/feature.js.map +1 -0
  119. package/admin/features/resendWebhookDelivery/index.d.ts +2 -0
  120. package/admin/features/resendWebhookDelivery/index.js +2 -0
  121. package/admin/features/triggerWebhook/TriggerWebhookGateway.d.ts +12 -0
  122. package/admin/features/triggerWebhook/TriggerWebhookGateway.js +24 -0
  123. package/admin/features/triggerWebhook/TriggerWebhookGateway.js.map +1 -0
  124. package/admin/features/triggerWebhook/TriggerWebhookUseCase.d.ts +11 -0
  125. package/admin/features/triggerWebhook/TriggerWebhookUseCase.js +18 -0
  126. package/admin/features/triggerWebhook/TriggerWebhookUseCase.js.map +1 -0
  127. package/admin/features/triggerWebhook/abstractions.d.ts +15 -0
  128. package/admin/features/triggerWebhook/abstractions.js +6 -0
  129. package/admin/features/triggerWebhook/abstractions.js.map +1 -0
  130. package/admin/features/triggerWebhook/feature.d.ts +3 -0
  131. package/admin/features/triggerWebhook/feature.js +19 -0
  132. package/admin/features/triggerWebhook/feature.js.map +1 -0
  133. package/admin/features/triggerWebhook/index.d.ts +2 -0
  134. package/admin/features/triggerWebhook/index.js +2 -0
  135. package/admin/features/updateWebhook/UpdateWebhookGateway.d.ts +12 -0
  136. package/admin/features/updateWebhook/UpdateWebhookGateway.js +24 -0
  137. package/admin/features/updateWebhook/UpdateWebhookGateway.js.map +1 -0
  138. package/admin/features/updateWebhook/UpdateWebhookUseCase.d.ts +11 -0
  139. package/admin/features/updateWebhook/UpdateWebhookUseCase.js +18 -0
  140. package/admin/features/updateWebhook/UpdateWebhookUseCase.js.map +1 -0
  141. package/admin/features/updateWebhook/abstractions.d.ts +23 -0
  142. package/admin/features/updateWebhook/abstractions.js +6 -0
  143. package/admin/features/updateWebhook/abstractions.js.map +1 -0
  144. package/admin/features/updateWebhook/feature.d.ts +3 -0
  145. package/admin/features/updateWebhook/feature.js +19 -0
  146. package/admin/features/updateWebhook/feature.js.map +1 -0
  147. package/admin/features/updateWebhook/index.d.ts +2 -0
  148. package/admin/features/updateWebhook/index.js +2 -0
  149. package/admin/index.d.ts +2 -0
  150. package/admin/index.js +2 -0
  151. package/admin/permissions.d.ts +12 -0
  152. package/admin/permissions.js +22 -0
  153. package/admin/permissions.js.map +1 -0
  154. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.d.ts +16 -0
  155. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js +68 -0
  156. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js.map +1 -0
  157. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.d.ts +19 -0
  158. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +77 -0
  159. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +1 -0
  160. package/admin/presentation/WebhookDeliveries/abstractions.d.ts +22 -0
  161. package/admin/presentation/WebhookDeliveries/abstractions.js +5 -0
  162. package/admin/presentation/WebhookDeliveries/abstractions.js.map +1 -0
  163. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +11 -0
  164. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +73 -0
  165. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +1 -0
  166. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.d.ts +8 -0
  167. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js +119 -0
  168. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js.map +1 -0
  169. package/admin/presentation/WebhookDeliveries/feature.d.ts +3 -0
  170. package/admin/presentation/WebhookDeliveries/feature.js +17 -0
  171. package/admin/presentation/WebhookDeliveries/feature.js.map +1 -0
  172. package/admin/presentation/WebhookDeliveries/index.d.ts +2 -0
  173. package/admin/presentation/WebhookDeliveries/index.js +2 -0
  174. package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +35 -0
  175. package/admin/presentation/WebhookForm/WebhookFormPresenter.js +163 -0
  176. package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -0
  177. package/admin/presentation/WebhookForm/abstractions.d.ts +35 -0
  178. package/admin/presentation/WebhookForm/abstractions.js +5 -0
  179. package/admin/presentation/WebhookForm/abstractions.js.map +1 -0
  180. package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +12 -0
  181. package/admin/presentation/WebhookForm/components/EventsSelector.js +44 -0
  182. package/admin/presentation/WebhookForm/components/EventsSelector.js.map +1 -0
  183. package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +6 -0
  184. package/admin/presentation/WebhookForm/components/SigningSecret.js +43 -0
  185. package/admin/presentation/WebhookForm/components/SigningSecret.js.map +1 -0
  186. package/admin/presentation/WebhookForm/components/WebhookFormView.d.ts +2 -0
  187. package/admin/presentation/WebhookForm/components/WebhookFormView.js +88 -0
  188. package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -0
  189. package/admin/presentation/WebhookForm/feature.d.ts +3 -0
  190. package/admin/presentation/WebhookForm/feature.js +17 -0
  191. package/admin/presentation/WebhookForm/feature.js.map +1 -0
  192. package/admin/presentation/WebhookForm/index.d.ts +2 -0
  193. package/admin/presentation/WebhookForm/index.js +2 -0
  194. package/admin/presentation/WebhookList/WebhookListDataSource.d.ts +15 -0
  195. package/admin/presentation/WebhookList/WebhookListDataSource.js +67 -0
  196. package/admin/presentation/WebhookList/WebhookListDataSource.js.map +1 -0
  197. package/admin/presentation/WebhookList/WebhookListPresenter.d.ts +22 -0
  198. package/admin/presentation/WebhookList/WebhookListPresenter.js +90 -0
  199. package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -0
  200. package/admin/presentation/WebhookList/abstractions.d.ts +27 -0
  201. package/admin/presentation/WebhookList/abstractions.js +5 -0
  202. package/admin/presentation/WebhookList/abstractions.js.map +1 -0
  203. package/admin/presentation/WebhookList/components/WebhookListView.d.ts +2 -0
  204. package/admin/presentation/WebhookList/components/WebhookListView.js +172 -0
  205. package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -0
  206. package/admin/presentation/WebhookList/feature.d.ts +3 -0
  207. package/admin/presentation/WebhookList/feature.js +17 -0
  208. package/admin/presentation/WebhookList/feature.js.map +1 -0
  209. package/admin/presentation/WebhookList/index.d.ts +2 -0
  210. package/admin/presentation/WebhookList/index.js +2 -0
  211. package/admin/presentation/security/HasPermission.d.ts +12 -0
  212. package/admin/presentation/security/HasPermission.js +6 -0
  213. package/admin/presentation/security/HasPermission.js.map +1 -0
  214. package/admin/presentation/security/usePermissions.d.ts +12 -0
  215. package/admin/presentation/security/usePermissions.js +6 -0
  216. package/admin/presentation/security/usePermissions.js.map +1 -0
  217. package/admin/routes.d.ts +7 -0
  218. package/admin/routes.js +17 -0
  219. package/admin/routes.js.map +1 -0
  220. package/admin/shared/types.d.ts +5 -0
  221. package/admin/shared/types.js +0 -0
  222. package/api/Extension.d.ts +1 -0
  223. package/api/Extension.js +1 -0
  224. package/api/WebhooksFeature.d.ts +4 -0
  225. package/api/WebhooksFeature.js +55 -0
  226. package/api/WebhooksFeature.js.map +1 -0
  227. package/api/domain/Webhook.d.ts +27 -0
  228. package/api/domain/Webhook.js +0 -0
  229. package/api/domain/WebhookDelivery.d.ts +36 -0
  230. package/api/domain/WebhookDelivery.js +0 -0
  231. package/api/domain/constants.d.ts +4 -0
  232. package/api/domain/constants.js +7 -0
  233. package/api/domain/constants.js.map +1 -0
  234. package/api/domain/errors.d.ts +36 -0
  235. package/api/domain/errors.js +70 -0
  236. package/api/domain/errors.js.map +1 -0
  237. package/api/features/CreateWebhook/CreateWebhookRepository.d.ts +18 -0
  238. package/api/features/CreateWebhook/CreateWebhookRepository.js +43 -0
  239. package/api/features/CreateWebhook/CreateWebhookRepository.js.map +1 -0
  240. package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +16 -0
  241. package/api/features/CreateWebhook/CreateWebhookUseCase.js +57 -0
  242. package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -0
  243. package/api/features/CreateWebhook/abstractions.d.ts +33 -0
  244. package/api/features/CreateWebhook/abstractions.js +6 -0
  245. package/api/features/CreateWebhook/abstractions.js.map +1 -0
  246. package/api/features/CreateWebhook/feature.d.ts +4 -0
  247. package/api/features/CreateWebhook/feature.js +13 -0
  248. package/api/features/CreateWebhook/feature.js.map +1 -0
  249. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +20 -0
  250. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +58 -0
  251. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js.map +1 -0
  252. package/api/features/CreateWebhookDelivery/abstractions.d.ts +21 -0
  253. package/api/features/CreateWebhookDelivery/abstractions.js +5 -0
  254. package/api/features/CreateWebhookDelivery/abstractions.js.map +1 -0
  255. package/api/features/CreateWebhookDelivery/feature.d.ts +4 -0
  256. package/api/features/CreateWebhookDelivery/feature.js +11 -0
  257. package/api/features/CreateWebhookDelivery/feature.js.map +1 -0
  258. package/api/features/DeleteWebhook/DeleteWebhookRepository.d.ts +19 -0
  259. package/api/features/DeleteWebhook/DeleteWebhookRepository.js +66 -0
  260. package/api/features/DeleteWebhook/DeleteWebhookRepository.js.map +1 -0
  261. package/api/features/DeleteWebhook/DeleteWebhookUseCase.d.ts +15 -0
  262. package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +29 -0
  263. package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -0
  264. package/api/features/DeleteWebhook/abstractions.d.ts +20 -0
  265. package/api/features/DeleteWebhook/abstractions.js +6 -0
  266. package/api/features/DeleteWebhook/abstractions.js.map +1 -0
  267. package/api/features/DeleteWebhook/feature.d.ts +4 -0
  268. package/api/features/DeleteWebhook/feature.js +13 -0
  269. package/api/features/DeleteWebhook/feature.js.map +1 -0
  270. package/api/features/GetWebhook/GetWebhookRepository.d.ts +17 -0
  271. package/api/features/GetWebhook/GetWebhookRepository.js +39 -0
  272. package/api/features/GetWebhook/GetWebhookRepository.js.map +1 -0
  273. package/api/features/GetWebhook/GetWebhookUseCase.d.ts +14 -0
  274. package/api/features/GetWebhook/GetWebhookUseCase.js +24 -0
  275. package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -0
  276. package/api/features/GetWebhook/abstractions.d.ts +21 -0
  277. package/api/features/GetWebhook/abstractions.js +6 -0
  278. package/api/features/GetWebhook/abstractions.js.map +1 -0
  279. package/api/features/GetWebhook/feature.d.ts +4 -0
  280. package/api/features/GetWebhook/feature.js +13 -0
  281. package/api/features/GetWebhook/feature.js.map +1 -0
  282. package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.d.ts +17 -0
  283. package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.js +39 -0
  284. package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.js.map +1 -0
  285. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.d.ts +14 -0
  286. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +24 -0
  287. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -0
  288. package/api/features/GetWebhookDelivery/abstractions.d.ts +21 -0
  289. package/api/features/GetWebhookDelivery/abstractions.js +6 -0
  290. package/api/features/GetWebhookDelivery/abstractions.js.map +1 -0
  291. package/api/features/GetWebhookDelivery/feature.d.ts +4 -0
  292. package/api/features/GetWebhookDelivery/feature.js +13 -0
  293. package/api/features/GetWebhookDelivery/feature.js.map +1 -0
  294. package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.d.ts +14 -0
  295. package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.js +30 -0
  296. package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.js.map +1 -0
  297. package/api/features/ListAvailableWebhookEvents/abstractions.d.ts +9 -0
  298. package/api/features/ListAvailableWebhookEvents/abstractions.js +5 -0
  299. package/api/features/ListAvailableWebhookEvents/abstractions.js.map +1 -0
  300. package/api/features/ListAvailableWebhookEvents/feature.d.ts +4 -0
  301. package/api/features/ListAvailableWebhookEvents/feature.js +11 -0
  302. package/api/features/ListAvailableWebhookEvents/feature.js.map +1 -0
  303. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.d.ts +21 -0
  304. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.js +63 -0
  305. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.js.map +1 -0
  306. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +14 -0
  307. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +24 -0
  308. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -0
  309. package/api/features/ListWebhookDeliveries/abstractions.d.ts +40 -0
  310. package/api/features/ListWebhookDeliveries/abstractions.js +6 -0
  311. package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -0
  312. package/api/features/ListWebhookDeliveries/feature.d.ts +4 -0
  313. package/api/features/ListWebhookDeliveries/feature.js +13 -0
  314. package/api/features/ListWebhookDeliveries/feature.js.map +1 -0
  315. package/api/features/ListWebhooks/ListWebhooksRepository.d.ts +21 -0
  316. package/api/features/ListWebhooks/ListWebhooksRepository.js +63 -0
  317. package/api/features/ListWebhooks/ListWebhooksRepository.js.map +1 -0
  318. package/api/features/ListWebhooks/ListWebhooksUseCase.d.ts +14 -0
  319. package/api/features/ListWebhooks/ListWebhooksUseCase.js +24 -0
  320. package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -0
  321. package/api/features/ListWebhooks/abstractions.d.ts +41 -0
  322. package/api/features/ListWebhooks/abstractions.js +6 -0
  323. package/api/features/ListWebhooks/abstractions.js.map +1 -0
  324. package/api/features/ListWebhooks/feature.d.ts +4 -0
  325. package/api/features/ListWebhooks/feature.js +13 -0
  326. package/api/features/ListWebhooks/feature.js.map +1 -0
  327. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +20 -0
  328. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +60 -0
  329. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -0
  330. package/api/features/ResendWebhookDelivery/abstractions.d.ts +12 -0
  331. package/api/features/ResendWebhookDelivery/abstractions.js +5 -0
  332. package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -0
  333. package/api/features/ResendWebhookDelivery/feature.d.ts +4 -0
  334. package/api/features/ResendWebhookDelivery/feature.js +11 -0
  335. package/api/features/ResendWebhookDelivery/feature.js.map +1 -0
  336. package/api/features/SendWebhookTask/SendWebhookTask.d.ts +29 -0
  337. package/api/features/SendWebhookTask/SendWebhookTask.js +99 -0
  338. package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -0
  339. package/api/features/SendWebhookTask/feature.d.ts +4 -0
  340. package/api/features/SendWebhookTask/feature.js +11 -0
  341. package/api/features/SendWebhookTask/feature.js.map +1 -0
  342. package/api/features/SendWebhookTask/types.d.ts +15 -0
  343. package/api/features/SendWebhookTask/types.js +0 -0
  344. package/api/features/Transformers/WebhookDeliveryTransformer.d.ts +13 -0
  345. package/api/features/Transformers/WebhookDeliveryTransformer.js +57 -0
  346. package/api/features/Transformers/WebhookDeliveryTransformer.js.map +1 -0
  347. package/api/features/Transformers/WebhookTransformer.d.ts +11 -0
  348. package/api/features/Transformers/WebhookTransformer.js +35 -0
  349. package/api/features/Transformers/WebhookTransformer.js.map +1 -0
  350. package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.d.ts +10 -0
  351. package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js +5 -0
  352. package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js.map +1 -0
  353. package/api/features/Transformers/abstractions/WebhookTransformer.d.ts +10 -0
  354. package/api/features/Transformers/abstractions/WebhookTransformer.js +5 -0
  355. package/api/features/Transformers/abstractions/WebhookTransformer.js.map +1 -0
  356. package/api/features/Transformers/feature.d.ts +4 -0
  357. package/api/features/Transformers/feature.js +13 -0
  358. package/api/features/Transformers/feature.js.map +1 -0
  359. package/api/features/Transformers/index.d.ts +2 -0
  360. package/api/features/Transformers/index.js +2 -0
  361. package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +19 -0
  362. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +54 -0
  363. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -0
  364. package/api/features/TriggerWebhook/abstractions.d.ts +13 -0
  365. package/api/features/TriggerWebhook/abstractions.js +5 -0
  366. package/api/features/TriggerWebhook/abstractions.js.map +1 -0
  367. package/api/features/TriggerWebhook/feature.d.ts +4 -0
  368. package/api/features/TriggerWebhook/feature.js +11 -0
  369. package/api/features/TriggerWebhook/feature.js.map +1 -0
  370. package/api/features/UpdateWebhook/UpdateWebhookRepository.d.ts +21 -0
  371. package/api/features/UpdateWebhook/UpdateWebhookRepository.js +50 -0
  372. package/api/features/UpdateWebhook/UpdateWebhookRepository.js.map +1 -0
  373. package/api/features/UpdateWebhook/UpdateWebhookUseCase.d.ts +16 -0
  374. package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +66 -0
  375. package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -0
  376. package/api/features/UpdateWebhook/abstractions.d.ts +31 -0
  377. package/api/features/UpdateWebhook/abstractions.js +6 -0
  378. package/api/features/UpdateWebhook/abstractions.js.map +1 -0
  379. package/api/features/UpdateWebhook/feature.d.ts +4 -0
  380. package/api/features/UpdateWebhook/feature.js +13 -0
  381. package/api/features/UpdateWebhook/feature.js.map +1 -0
  382. package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.d.ts +22 -0
  383. package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js +62 -0
  384. package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js.map +1 -0
  385. package/api/features/UpdateWebhookDelivery/abstractions.d.ts +23 -0
  386. package/api/features/UpdateWebhookDelivery/abstractions.js +5 -0
  387. package/api/features/UpdateWebhookDelivery/abstractions.js.map +1 -0
  388. package/api/features/UpdateWebhookDelivery/feature.d.ts +4 -0
  389. package/api/features/UpdateWebhookDelivery/feature.js +11 -0
  390. package/api/features/UpdateWebhookDelivery/feature.js.map +1 -0
  391. package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +17 -0
  392. package/api/features/WebhookDispatcher/WebhookDispatcher.js +56 -0
  393. package/api/features/WebhookDispatcher/WebhookDispatcher.js.map +1 -0
  394. package/api/features/WebhookDispatcher/feature.d.ts +4 -0
  395. package/api/features/WebhookDispatcher/feature.js +11 -0
  396. package/api/features/WebhookDispatcher/feature.js.map +1 -0
  397. package/api/features/WebhookPermissions/abstractions.d.ts +17 -0
  398. package/api/features/WebhookPermissions/abstractions.js +6 -0
  399. package/api/features/WebhookPermissions/abstractions.js.map +1 -0
  400. package/api/features/WebhookPermissions/feature.d.ts +4 -0
  401. package/api/features/WebhookPermissions/feature.js +7 -0
  402. package/api/features/WebhookPermissions/feature.js.map +1 -0
  403. package/api/features/WebhookSignPayload/WebhookSignPayload.d.ts +8 -0
  404. package/api/features/WebhookSignPayload/WebhookSignPayload.js +20 -0
  405. package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -0
  406. package/api/features/WebhookSignPayload/feature.d.ts +4 -0
  407. package/api/features/WebhookSignPayload/feature.js +11 -0
  408. package/api/features/WebhookSignPayload/feature.js.map +1 -0
  409. package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.d.ts +10 -0
  410. package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.js +22 -0
  411. package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.js.map +1 -0
  412. package/api/features/WebhookVerifyPayload/feature.d.ts +4 -0
  413. package/api/features/WebhookVerifyPayload/feature.js +11 -0
  414. package/api/features/WebhookVerifyPayload/feature.js.map +1 -0
  415. package/api/graphql/WebhookCrudSchema.d.ts +8 -0
  416. package/api/graphql/WebhookCrudSchema.js +167 -0
  417. package/api/graphql/WebhookCrudSchema.js.map +1 -0
  418. package/api/graphql/WebhookDeliverySchema.d.ts +8 -0
  419. package/api/graphql/WebhookDeliverySchema.js +96 -0
  420. package/api/graphql/WebhookDeliverySchema.js.map +1 -0
  421. package/api/graphql/WebhookEventSchema.d.ts +8 -0
  422. package/api/graphql/WebhookEventSchema.js +43 -0
  423. package/api/graphql/WebhookEventSchema.js.map +1 -0
  424. package/api/graphql/WebhookTriggerSchema.d.ts +8 -0
  425. package/api/graphql/WebhookTriggerSchema.js +36 -0
  426. package/api/graphql/WebhookTriggerSchema.js.map +1 -0
  427. package/api/index.d.ts +1 -0
  428. package/api/index.js +8 -0
  429. package/api/index.js.map +1 -0
  430. package/api/models/WebhookDeliveryModel.d.ts +8 -0
  431. package/api/models/WebhookDeliveryModel.js +36 -0
  432. package/api/models/WebhookDeliveryModel.js.map +1 -0
  433. package/api/models/WebhookModel.d.ts +8 -0
  434. package/api/models/WebhookModel.js +33 -0
  435. package/api/models/WebhookModel.js.map +1 -0
  436. package/api/permissions.d.ts +12 -0
  437. package/api/permissions.js +22 -0
  438. package/api/permissions.js.map +1 -0
  439. package/exports/api/webhooks.d.ts +6 -0
  440. package/exports/api/webhooks.js +2 -0
  441. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js","sources":["../../../../src/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { ResendWebhookDeliveryUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { GetWebhookDeliveryRepository } from \"~/api/features/GetWebhookDelivery/abstractions.js\";\nimport { GetWebhookRepository } from \"~/api/features/GetWebhook/abstractions.js\";\nimport { CreateWebhookDeliveryRepository } from \"~/api/features/CreateWebhookDelivery/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError } from \"~/api/domain/errors.js\";\nimport { TaskService } from \"@webiny/api-core/exports/api/tasks.js\";\nimport { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_RETENTION_DAYS } from \"~/api/domain/constants.js\";\nimport type { IWebhookPayload } from \"~/api/features/SendWebhookTask/types.js\";\n\nclass ResendWebhookDeliveryUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WebhookPermissions.Interface,\n private getDeliveryRepository: GetWebhookDeliveryRepository.Interface,\n private getWebhookRepository: GetWebhookRepository.Interface,\n private createDeliveryRepository: CreateWebhookDeliveryRepository.Interface,\n private taskService: TaskService.Interface\n ) {}\n\n async execute(deliveryId: string): Promise<Result<boolean, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canEdit(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const deliveryResult = await this.getDeliveryRepository.execute(deliveryId);\n if (deliveryResult.isFail()) {\n return Result.fail(deliveryResult.error);\n }\n\n const delivery = deliveryResult.value;\n\n const webhookResult = await this.getWebhookRepository.execute(delivery.webhookId);\n if (webhookResult.isFail()) {\n return Result.fail(webhookResult.error);\n }\n\n const originalPayload = delivery.payload as IWebhookPayload | null;\n const data = originalPayload?.data ?? {};\n\n const expiresAt = new Date(\n Date.now() + WEBHOOK_DELIVERY_RETENTION_DAYS * 24 * 60 * 60 * 1000\n ).toISOString();\n\n const newDeliveryResult = await this.createDeliveryRepository.execute({\n webhookId: delivery.webhookId,\n eventType: delivery.eventType,\n status: \"pending\",\n payload: data as Record<string, unknown>,\n expiresAt\n });\n\n if (newDeliveryResult.isFail()) {\n return Result.fail(newDeliveryResult.error);\n }\n\n await this.taskService.trigger({\n definition: SEND_WEBHOOK_TASK,\n name: `Resend webhook: ${delivery.eventType}`,\n input: {\n webhookId: delivery.webhookId,\n eventName: delivery.eventType,\n deliveryId: newDeliveryResult.value.id\n }\n });\n\n return Result.ok(true);\n }\n}\n\nexport const ResendWebhookDeliveryUseCase = UseCaseAbstraction.createImplementation({\n implementation: ResendWebhookDeliveryUseCaseImpl,\n dependencies: [\n WebhookPermissions,\n GetWebhookDeliveryRepository,\n GetWebhookRepository,\n CreateWebhookDeliveryRepository,\n TaskService\n ]\n});\n"],"names":["ResendWebhookDeliveryUseCaseImpl","permissions","getDeliveryRepository","getWebhookRepository","createDeliveryRepository","taskService","deliveryId","Result","WebhookNotAuthorizedError","deliveryResult","delivery","webhookResult","originalPayload","data","expiresAt","Date","WEBHOOK_DELIVERY_RETENTION_DAYS","newDeliveryResult","SEND_WEBHOOK_TASK","ResendWebhookDeliveryUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookDeliveryRepository","GetWebhookRepository","CreateWebhookDeliveryRepository","TaskService"],"mappings":";;;;;;;;;AAWA,MAAMA;IACF,YACYC,WAAyC,EACzCC,qBAA6D,EAC7DC,oBAAoD,EACpDC,wBAAmE,EACnEC,WAAkC,CAC5C;aALUJ,WAAW,GAAXA;aACAC,qBAAqB,GAArBA;aACAC,oBAAoB,GAApBA;aACAC,wBAAwB,GAAxBA;aACAC,WAAW,GAAXA;IACT;IAEH,MAAM,QAAQC,UAAkB,EAAsD;QAClF,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,iBAAiB,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACH;QAChE,IAAIG,eAAe,MAAM,IACrB,OAAOF,OAAO,IAAI,CAACE,eAAe,KAAK;QAG3C,MAAMC,WAAWD,eAAe,KAAK;QAErC,MAAME,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACD,SAAS,SAAS;QAChF,IAAIC,cAAc,MAAM,IACpB,OAAOJ,OAAO,IAAI,CAACI,cAAc,KAAK;QAG1C,MAAMC,kBAAkBF,SAAS,OAAO;QACxC,MAAMG,OAAOD,iBAAiB,QAAQ,CAAC;QAEvC,MAAME,YAAY,IAAIC,KAClBA,KAAK,GAAG,KAAKC,AAAkC,KAAlCA,kCAAAA,SACf,WAAW;QAEb,MAAMC,oBAAoB,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;YAClE,WAAWP,SAAS,SAAS;YAC7B,WAAWA,SAAS,SAAS;YAC7B,QAAQ;YACR,SAASG;YACTC;QACJ;QAEA,IAAIG,kBAAkB,MAAM,IACxB,OAAOV,OAAO,IAAI,CAACU,kBAAkB,KAAK;QAG9C,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YAC3B,YAAYC;YACZ,MAAM,CAAC,gBAAgB,EAAER,SAAS,SAAS,EAAE;YAC7C,OAAO;gBACH,WAAWA,SAAS,SAAS;gBAC7B,WAAWA,SAAS,SAAS;gBAC7B,YAAYO,kBAAkB,KAAK,CAAC,EAAE;YAC1C;QACJ;QAEA,OAAOV,OAAO,EAAE,CAAC;IACrB;AACJ;AAEO,MAAMY,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBpB;IAChB,cAAc;QACVqB;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,12 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { WebhookDeliveryNotFoundError, WebhookNotFoundError, WebhookPersistenceError, WebhookModelNotFoundError, WebhookNotAuthorizedError } from "../../../api/domain/errors.js";
3
+ type IError = WebhookDeliveryNotFoundError | WebhookNotFoundError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
4
+ export interface IResendWebhookDeliveryUseCase {
5
+ execute(deliveryId: string): Promise<Result<boolean, IError>>;
6
+ }
7
+ export declare const ResendWebhookDeliveryUseCase: import("@webiny/di").Abstraction<IResendWebhookDeliveryUseCase>;
8
+ export declare namespace ResendWebhookDeliveryUseCase {
9
+ type Interface = IResendWebhookDeliveryUseCase;
10
+ type Error = IError;
11
+ }
12
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const ResendWebhookDeliveryUseCase = createAbstraction("Webhooks/ResendWebhookDeliveryUseCase");
3
+ export { ResendWebhookDeliveryUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/ResendWebhookDelivery/abstractions.js","sources":["../../../../src/api/features/ResendWebhookDelivery/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type {\n WebhookDeliveryNotFoundError,\n WebhookNotFoundError,\n WebhookPersistenceError,\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError\n} from \"~/api/domain/errors.js\";\n\ntype IError =\n | WebhookDeliveryNotFoundError\n | WebhookNotFoundError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError;\n\nexport interface IResendWebhookDeliveryUseCase {\n execute(deliveryId: string): Promise<Result<boolean, IError>>;\n}\n\nexport const ResendWebhookDeliveryUseCase = createAbstraction<IResendWebhookDeliveryUseCase>(\n \"Webhooks/ResendWebhookDeliveryUseCase\"\n);\n\nexport namespace ResendWebhookDeliveryUseCase {\n export type Interface = IResendWebhookDeliveryUseCase;\n export type Error = IError;\n}\n"],"names":["ResendWebhookDeliveryUseCase","createAbstraction"],"mappings":";AAoBO,MAAMA,+BAA+BC,kBACxC"}
@@ -0,0 +1,4 @@
1
+ export declare const ResendWebhookDeliveryFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { ResendWebhookDeliveryUseCase } from "./ResendWebhookDeliveryUseCase.js";
3
+ const ResendWebhookDeliveryFeature = createFeature({
4
+ name: "ResendWebhookDelivery",
5
+ register (container) {
6
+ container.register(ResendWebhookDeliveryUseCase);
7
+ }
8
+ });
9
+ export { ResendWebhookDeliveryFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/ResendWebhookDelivery/feature.js","sources":["../../../../src/api/features/ResendWebhookDelivery/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { ResendWebhookDeliveryUseCase } from \"./ResendWebhookDeliveryUseCase.js\";\n\nexport const ResendWebhookDeliveryFeature = createFeature({\n name: \"ResendWebhookDelivery\",\n register(container) {\n container.register(ResendWebhookDeliveryUseCase);\n }\n});\n"],"names":["ResendWebhookDeliveryFeature","createFeature","container","ResendWebhookDeliveryUseCase"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1,29 @@
1
+ import "@webiny/tasks/types.js";
2
+ import { TaskDefinition } from "@webiny/api-core/exports/api/tasks.js";
3
+ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
4
+ import { WebhookSignPayload } from "@webiny/api-core/features/webhooks/index.js";
5
+ import { GetWebhookRepository } from "../../../api/features/GetWebhook/abstractions.js";
6
+ import { GetWebhookDeliveryRepository } from "../../../api/features/GetWebhookDelivery/abstractions.js";
7
+ import { UpdateWebhookDeliveryRepository } from "../../../api/features/UpdateWebhookDelivery/abstractions.js";
8
+ import type { ISendWebhookTaskInput, ISendWebhookTaskOutput } from "./types.js";
9
+ type IRunParams = TaskDefinition.RunParams<ISendWebhookTaskInput, ISendWebhookTaskOutput>;
10
+ declare class SendWebhookTaskDefinition implements TaskDefinition.Interface<ISendWebhookTaskInput, ISendWebhookTaskOutput> {
11
+ private readonly getWebhookRepository;
12
+ private readonly getWebhookDeliveryRepository;
13
+ private readonly updateDeliveryRepository;
14
+ private readonly signPayload;
15
+ private readonly tenantContext;
16
+ readonly id = "sendWebhook";
17
+ readonly title = "Send Webhook";
18
+ readonly maxIterations = 1;
19
+ readonly isPrivate = true;
20
+ readonly databaseLogs = false;
21
+ readonly description = "POST a signed event payload to a webhook endpoint and log the delivery.";
22
+ readonly selfCleanup: ("onAbort" | "onSuccess")[];
23
+ constructor(getWebhookRepository: GetWebhookRepository.Interface, getWebhookDeliveryRepository: GetWebhookDeliveryRepository.Interface, updateDeliveryRepository: UpdateWebhookDeliveryRepository.Interface, signPayload: WebhookSignPayload.Interface, tenantContext: TenantContext.Interface);
24
+ run(params: IRunParams): Promise<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskResultError | TaskDefinition.ResultDone<ISendWebhookTaskOutput>>;
25
+ }
26
+ export declare const SendWebhookTask: typeof SendWebhookTaskDefinition & {
27
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskDefinition<import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskInput, import("@webiny/api-core/features/task/TaskDefinition/abstractions.js").ITaskOutput>>;
28
+ };
29
+ export {};
@@ -0,0 +1,99 @@
1
+ import "@webiny/tasks/types.js";
2
+ import { TaskDefinition } from "@webiny/api-core/exports/api/tasks.js";
3
+ import { TenantContext } from "@webiny/api-core/exports/api/tenancy.js";
4
+ import { WebhookSignPayload } from "@webiny/api-core/features/webhooks/index.js";
5
+ import { GetWebhookRepository } from "../GetWebhook/abstractions.js";
6
+ import { GetWebhookDeliveryRepository } from "../GetWebhookDelivery/abstractions.js";
7
+ import { UpdateWebhookDeliveryRepository } from "../UpdateWebhookDelivery/abstractions.js";
8
+ import { SEND_WEBHOOK_TASK } from "../../domain/constants.js";
9
+ class SendWebhookTaskDefinition {
10
+ constructor(getWebhookRepository, getWebhookDeliveryRepository, updateDeliveryRepository, signPayload, tenantContext){
11
+ this.getWebhookRepository = getWebhookRepository;
12
+ this.getWebhookDeliveryRepository = getWebhookDeliveryRepository;
13
+ this.updateDeliveryRepository = updateDeliveryRepository;
14
+ this.signPayload = signPayload;
15
+ this.tenantContext = tenantContext;
16
+ this.id = SEND_WEBHOOK_TASK;
17
+ this.title = "Send Webhook";
18
+ this.maxIterations = 1;
19
+ this.isPrivate = true;
20
+ this.databaseLogs = false;
21
+ this.description = "POST a signed event payload to a webhook endpoint and log the delivery.";
22
+ this.selfCleanup = [
23
+ "onSuccess",
24
+ "onAbort"
25
+ ];
26
+ }
27
+ async run(params) {
28
+ const { input } = params;
29
+ const taskId = params.controller.state.getTask().id;
30
+ const delivery = await this.getWebhookDeliveryRepository.execute(input.deliveryId);
31
+ if (delivery.isFail()) return params.controller.response.error(delivery.error);
32
+ await this.updateDeliveryRepository.execute(input.deliveryId, {
33
+ backgroundTaskId: taskId,
34
+ status: "delivering"
35
+ });
36
+ const webhookResult = await this.getWebhookRepository.execute(input.webhookId);
37
+ if (webhookResult.isFail()) {
38
+ await this.updateDeliveryRepository.execute(input.deliveryId, {
39
+ status: "failed"
40
+ });
41
+ return params.controller.response.error(webhookResult.error);
42
+ }
43
+ const webhook = webhookResult.value;
44
+ const now = new Date();
45
+ const payload = {
46
+ id: taskId,
47
+ event: input.eventName,
48
+ timestamp: now.toISOString(),
49
+ webhookId: input.webhookId,
50
+ tenant: this.tenantContext.getTenant().id,
51
+ data: delivery.value.payload
52
+ };
53
+ const rawBody = JSON.stringify(payload);
54
+ const signHeaders = await this.signPayload.sign(taskId, now, rawBody, webhook.signingSecret ?? "");
55
+ const requestHeaders = {
56
+ "Content-Type": "application/json",
57
+ ...signHeaders
58
+ };
59
+ const startTime = Date.now();
60
+ let responseStatus = 0;
61
+ let responseBody = "";
62
+ try {
63
+ const response = await fetch(webhook.endpointUrl, {
64
+ method: "POST",
65
+ headers: requestHeaders,
66
+ body: rawBody,
67
+ signal: AbortSignal.timeout(600000)
68
+ });
69
+ responseStatus = response.status;
70
+ responseBody = await response.text();
71
+ } catch (error) {
72
+ responseStatus = 0;
73
+ responseBody = error.message;
74
+ }
75
+ const responseTime = Date.now() - startTime;
76
+ await this.updateDeliveryRepository.execute(input.deliveryId, {
77
+ payload,
78
+ requestHeaders,
79
+ responseTime,
80
+ responseStatus,
81
+ responseBody,
82
+ status: responseStatus > 0 ? "delivered" : "failed"
83
+ });
84
+ return params.controller.response.done();
85
+ }
86
+ }
87
+ const SendWebhookTask = TaskDefinition.createImplementation({
88
+ implementation: SendWebhookTaskDefinition,
89
+ dependencies: [
90
+ GetWebhookRepository,
91
+ GetWebhookDeliveryRepository,
92
+ UpdateWebhookDeliveryRepository,
93
+ WebhookSignPayload,
94
+ TenantContext
95
+ ]
96
+ });
97
+ export { SendWebhookTask };
98
+
99
+ //# sourceMappingURL=SendWebhookTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/SendWebhookTask/SendWebhookTask.js","sources":["../../../../src/api/features/SendWebhookTask/SendWebhookTask.ts"],"sourcesContent":["import \"@webiny/tasks/types.js\";\nimport { TaskDefinition } from \"@webiny/api-core/exports/api/tasks.js\";\nimport { TenantContext } from \"@webiny/api-core/exports/api/tenancy.js\";\nimport { WebhookSignPayload } from \"@webiny/api-core/features/webhooks/index.js\";\nimport { GetWebhookRepository } from \"~/api/features/GetWebhook/abstractions.js\";\nimport { GetWebhookDeliveryRepository } from \"~/api/features/GetWebhookDelivery/abstractions.js\";\nimport { UpdateWebhookDeliveryRepository } from \"~/api/features/UpdateWebhookDelivery/abstractions.js\";\nimport { SEND_WEBHOOK_TASK } from \"~/api/domain/constants.js\";\nimport type { ISendWebhookTaskInput, ISendWebhookTaskOutput, IWebhookPayload } from \"./types.js\";\n\ntype IRunParams = TaskDefinition.RunParams<ISendWebhookTaskInput, ISendWebhookTaskOutput>;\n\nclass SendWebhookTaskDefinition implements TaskDefinition.Interface<\n ISendWebhookTaskInput,\n ISendWebhookTaskOutput\n> {\n public readonly id = SEND_WEBHOOK_TASK;\n public readonly title = \"Send Webhook\";\n public readonly maxIterations = 1;\n public readonly isPrivate = true;\n public readonly databaseLogs = false;\n public readonly description =\n \"POST a signed event payload to a webhook endpoint and log the delivery.\";\n public readonly selfCleanup = [\"onSuccess\" as const, \"onAbort\" as const];\n\n public constructor(\n private readonly getWebhookRepository: GetWebhookRepository.Interface,\n private readonly getWebhookDeliveryRepository: GetWebhookDeliveryRepository.Interface,\n private readonly updateDeliveryRepository: UpdateWebhookDeliveryRepository.Interface,\n private readonly signPayload: WebhookSignPayload.Interface,\n private readonly tenantContext: TenantContext.Interface\n ) {}\n\n public async run(params: IRunParams) {\n const { input } = params;\n const taskId = params.controller.state.getTask().id;\n\n const delivery = await this.getWebhookDeliveryRepository.execute(input.deliveryId);\n if (delivery.isFail()) {\n return params.controller.response.error(delivery.error);\n }\n\n await this.updateDeliveryRepository.execute(input.deliveryId, {\n backgroundTaskId: taskId,\n status: \"delivering\"\n });\n\n const webhookResult = await this.getWebhookRepository.execute(input.webhookId);\n if (webhookResult.isFail()) {\n await this.updateDeliveryRepository.execute(input.deliveryId, { status: \"failed\" });\n return params.controller.response.error(webhookResult.error);\n }\n const webhook = webhookResult.value;\n\n const now = new Date();\n const payload: IWebhookPayload = {\n id: taskId,\n event: input.eventName,\n timestamp: now.toISOString(),\n webhookId: input.webhookId,\n tenant: this.tenantContext.getTenant().id,\n data: delivery.value.payload\n };\n const rawBody = JSON.stringify(payload);\n const signHeaders = await this.signPayload.sign(\n taskId,\n now,\n rawBody,\n webhook.signingSecret ?? \"\"\n );\n\n const requestHeaders: Record<string, string> = {\n \"Content-Type\": \"application/json\",\n ...signHeaders\n };\n\n const startTime = Date.now();\n let responseStatus = 0;\n let responseBody = \"\";\n\n try {\n const response = await fetch(webhook.endpointUrl, {\n method: \"POST\",\n headers: requestHeaders,\n body: rawBody,\n signal: AbortSignal.timeout(600_000)\n });\n responseStatus = response.status;\n responseBody = await response.text();\n } catch (error) {\n responseStatus = 0;\n responseBody = (error as Error).message;\n }\n\n const responseTime = Date.now() - startTime;\n\n await this.updateDeliveryRepository.execute(input.deliveryId, {\n payload,\n requestHeaders,\n responseTime,\n responseStatus,\n responseBody,\n status: responseStatus > 0 ? \"delivered\" : \"failed\"\n });\n\n return params.controller.response.done();\n }\n}\n\nexport const SendWebhookTask = TaskDefinition.createImplementation({\n implementation: SendWebhookTaskDefinition,\n dependencies: [\n GetWebhookRepository,\n GetWebhookDeliveryRepository,\n UpdateWebhookDeliveryRepository,\n WebhookSignPayload,\n TenantContext\n ]\n});\n"],"names":["SendWebhookTaskDefinition","getWebhookRepository","getWebhookDeliveryRepository","updateDeliveryRepository","signPayload","tenantContext","SEND_WEBHOOK_TASK","params","input","taskId","delivery","webhookResult","webhook","now","Date","payload","rawBody","JSON","signHeaders","requestHeaders","startTime","responseStatus","responseBody","response","fetch","AbortSignal","error","responseTime","SendWebhookTask","TaskDefinition","GetWebhookRepository","GetWebhookDeliveryRepository","UpdateWebhookDeliveryRepository","WebhookSignPayload","TenantContext"],"mappings":";;;;;;;;AAYA,MAAMA;IAaF,YACqBC,oBAAoD,EACpDC,4BAAoE,EACpEC,wBAAmE,EACnEC,WAAyC,EACzCC,aAAsC,CACzD;aALmBJ,oBAAoB,GAApBA;aACAC,4BAA4B,GAA5BA;aACAC,wBAAwB,GAAxBA;aACAC,WAAW,GAAXA;aACAC,aAAa,GAAbA;aAdL,EAAE,GAAGC;aACL,KAAK,GAAG;aACR,aAAa,GAAG;aAChB,SAAS,GAAG;aACZ,YAAY,GAAG;aACf,WAAW,GACvB;aACY,WAAW,GAAG;YAAC;YAAsB;SAAmB;IAQrE;IAEH,MAAa,IAAIC,MAAkB,EAAE;QACjC,MAAM,EAAEC,KAAK,EAAE,GAAGD;QAClB,MAAME,SAASF,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE;QAEnD,MAAMG,WAAW,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAACF,MAAM,UAAU;QACjF,IAAIE,SAAS,MAAM,IACf,OAAOH,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAACG,SAAS,KAAK;QAG1D,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAACF,MAAM,UAAU,EAAE;YAC1D,kBAAkBC;YAClB,QAAQ;QACZ;QAEA,MAAME,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACH,MAAM,SAAS;QAC7E,IAAIG,cAAc,MAAM,IAAI;YACxB,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAACH,MAAM,UAAU,EAAE;gBAAE,QAAQ;YAAS;YACjF,OAAOD,OAAO,UAAU,CAAC,QAAQ,CAAC,KAAK,CAACI,cAAc,KAAK;QAC/D;QACA,MAAMC,UAAUD,cAAc,KAAK;QAEnC,MAAME,MAAM,IAAIC;QAChB,MAAMC,UAA2B;YAC7B,IAAIN;YACJ,OAAOD,MAAM,SAAS;YACtB,WAAWK,IAAI,WAAW;YAC1B,WAAWL,MAAM,SAAS;YAC1B,QAAQ,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,EAAE;YACzC,MAAME,SAAS,KAAK,CAAC,OAAO;QAChC;QACA,MAAMM,UAAUC,KAAK,SAAS,CAACF;QAC/B,MAAMG,cAAc,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAC3CT,QACAI,KACAG,SACAJ,QAAQ,aAAa,IAAI;QAG7B,MAAMO,iBAAyC;YAC3C,gBAAgB;YAChB,GAAGD,WAAW;QAClB;QAEA,MAAME,YAAYN,KAAK,GAAG;QAC1B,IAAIO,iBAAiB;QACrB,IAAIC,eAAe;QAEnB,IAAI;YACA,MAAMC,WAAW,MAAMC,MAAMZ,QAAQ,WAAW,EAAE;gBAC9C,QAAQ;gBACR,SAASO;gBACT,MAAMH;gBACN,QAAQS,YAAY,OAAO,CAAC;YAChC;YACAJ,iBAAiBE,SAAS,MAAM;YAChCD,eAAe,MAAMC,SAAS,IAAI;QACtC,EAAE,OAAOG,OAAO;YACZL,iBAAiB;YACjBC,eAAgBI,MAAgB,OAAO;QAC3C;QAEA,MAAMC,eAAeb,KAAK,GAAG,KAAKM;QAElC,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAACZ,MAAM,UAAU,EAAE;YAC1DO;YACAI;YACAQ;YACAN;YACAC;YACA,QAAQD,iBAAiB,IAAI,cAAc;QAC/C;QAEA,OAAOd,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI;IAC1C;AACJ;AAEO,MAAMqB,kBAAkBC,eAAe,oBAAoB,CAAC;IAC/D,gBAAgB7B;IAChB,cAAc;QACV8B;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,4 @@
1
+ export declare const SendWebhookTaskFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { SendWebhookTask } from "./SendWebhookTask.js";
3
+ const SendWebhookTaskFeature = createFeature({
4
+ name: "SendWebhookTask",
5
+ register (container) {
6
+ container.register(SendWebhookTask);
7
+ }
8
+ });
9
+ export { SendWebhookTaskFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/SendWebhookTask/feature.js","sources":["../../../../src/api/features/SendWebhookTask/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { SendWebhookTask } from \"./SendWebhookTask.js\";\n\nexport const SendWebhookTaskFeature = createFeature({\n name: \"SendWebhookTask\",\n register(container) {\n container.register(SendWebhookTask);\n }\n});\n"],"names":["SendWebhookTaskFeature","createFeature","container","SendWebhookTask"],"mappings":";;AAGO,MAAMA,yBAAyBC,cAAc;IAChD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1,15 @@
1
+ export interface ISendWebhookTaskInput {
2
+ webhookId: string;
3
+ eventName: string;
4
+ deliveryId: string;
5
+ }
6
+ export interface ISendWebhookTaskOutput {
7
+ }
8
+ export interface IWebhookPayload {
9
+ id: string;
10
+ event: string;
11
+ timestamp: string;
12
+ webhookId: string;
13
+ tenant: string;
14
+ data: unknown;
15
+ }
File without changes
@@ -0,0 +1,13 @@
1
+ import { WebhookDeliveryTransformer as WebhookDeliveryTransformerAbstraction } from "./abstractions/WebhookDeliveryTransformer.js";
2
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { WebhookDelivery, WebhookDeliveryCmsEntryValues } from "../../../api/domain/WebhookDelivery.js";
4
+ declare class WebhookDeliveryTransformerImpl implements WebhookDeliveryTransformerAbstraction.Interface {
5
+ fromStorage(entry: CmsEntry<WebhookDeliveryCmsEntryValues>): WebhookDelivery;
6
+ toStorage(delivery: WebhookDelivery): WebhookDeliveryCmsEntryValues;
7
+ private compress;
8
+ private decompress;
9
+ }
10
+ export declare const WebhookDeliveryTransformer: typeof WebhookDeliveryTransformerImpl & {
11
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions/WebhookDeliveryTransformer.js").IWebhookDeliveryTransformer>;
12
+ };
13
+ export {};
@@ -0,0 +1,57 @@
1
+ import { WebhookDeliveryTransformer } from "./abstractions/WebhookDeliveryTransformer.js";
2
+ class WebhookDeliveryTransformerImpl {
3
+ fromStorage(entry) {
4
+ return {
5
+ id: entry.entryId,
6
+ createdOn: entry.createdOn,
7
+ savedOn: entry.savedOn,
8
+ webhookId: entry.values.webhookId,
9
+ backgroundTaskId: entry.values.backgroundTaskId,
10
+ eventType: entry.values.eventType,
11
+ status: entry.values.status,
12
+ payload: this.decompress(entry.values.payload),
13
+ requestHeaders: this.decompress(entry.values.requestHeaders),
14
+ responseTime: entry.values.responseTime,
15
+ responseStatus: entry.values.responseStatus,
16
+ responseHeaders: this.decompress(entry.values.responseHeaders),
17
+ responseBody: this.decompress(entry.values.responseBody)
18
+ };
19
+ }
20
+ toStorage(delivery) {
21
+ return {
22
+ webhookId: delivery.webhookId,
23
+ backgroundTaskId: delivery.backgroundTaskId,
24
+ eventType: delivery.eventType,
25
+ status: delivery.status,
26
+ payload: this.compress(delivery.payload),
27
+ requestHeaders: this.compress(delivery.requestHeaders),
28
+ responseTime: delivery.responseTime,
29
+ responseStatus: delivery.responseStatus,
30
+ responseHeaders: this.compress(delivery.responseHeaders),
31
+ responseBody: this.compress(delivery.responseBody)
32
+ };
33
+ }
34
+ compress(value) {
35
+ if (null == value) return null;
36
+ try {
37
+ return JSON.stringify(value);
38
+ } catch {
39
+ return value;
40
+ }
41
+ }
42
+ decompress(stored) {
43
+ if (!stored) return null;
44
+ try {
45
+ return JSON.parse(stored);
46
+ } catch {
47
+ return stored;
48
+ }
49
+ }
50
+ }
51
+ const WebhookDeliveryTransformer_WebhookDeliveryTransformer = WebhookDeliveryTransformer.createImplementation({
52
+ implementation: WebhookDeliveryTransformerImpl,
53
+ dependencies: []
54
+ });
55
+ export { WebhookDeliveryTransformer_WebhookDeliveryTransformer as WebhookDeliveryTransformer };
56
+
57
+ //# sourceMappingURL=WebhookDeliveryTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/Transformers/WebhookDeliveryTransformer.js","sources":["../../../../src/api/features/Transformers/WebhookDeliveryTransformer.ts"],"sourcesContent":["import { WebhookDeliveryTransformer as WebhookDeliveryTransformerAbstraction } from \"./abstractions/WebhookDeliveryTransformer.js\";\nimport type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport type {\n WebhookDelivery,\n WebhookDeliveryCmsEntryValues\n} from \"~/api/domain/WebhookDelivery.js\";\n\nclass WebhookDeliveryTransformerImpl implements WebhookDeliveryTransformerAbstraction.Interface {\n public fromStorage(entry: CmsEntry<WebhookDeliveryCmsEntryValues>): WebhookDelivery {\n return {\n id: entry.entryId,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn,\n webhookId: entry.values.webhookId,\n backgroundTaskId: entry.values.backgroundTaskId,\n eventType: entry.values.eventType,\n status: entry.values.status,\n payload: this.decompress(entry.values.payload),\n requestHeaders: this.decompress(entry.values.requestHeaders),\n responseTime: entry.values.responseTime,\n responseStatus: entry.values.responseStatus,\n responseHeaders: this.decompress(entry.values.responseHeaders),\n responseBody: this.decompress(entry.values.responseBody)\n };\n }\n\n public toStorage(delivery: WebhookDelivery): WebhookDeliveryCmsEntryValues {\n return {\n webhookId: delivery.webhookId,\n backgroundTaskId: delivery.backgroundTaskId,\n eventType: delivery.eventType,\n status: delivery.status,\n payload: this.compress(delivery.payload),\n requestHeaders: this.compress(delivery.requestHeaders),\n responseTime: delivery.responseTime,\n responseStatus: delivery.responseStatus,\n responseHeaders: this.compress(delivery.responseHeaders),\n responseBody: this.compress(delivery.responseBody)\n };\n }\n\n private compress(value: unknown): string {\n if (value === null || value === undefined) {\n return null as unknown as string;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return value as string;\n }\n }\n\n private decompress<T>(stored: string | null | undefined): T {\n if (!stored) {\n return null as T;\n }\n try {\n return JSON.parse(stored) as T;\n } catch {\n return stored as T;\n }\n }\n}\n\nexport const WebhookDeliveryTransformer =\n WebhookDeliveryTransformerAbstraction.createImplementation({\n implementation: WebhookDeliveryTransformerImpl,\n dependencies: []\n });\n"],"names":["WebhookDeliveryTransformerImpl","entry","delivery","value","JSON","stored","WebhookDeliveryTransformer","WebhookDeliveryTransformerAbstraction"],"mappings":";AAOA,MAAMA;IACK,YAAYC,KAA8C,EAAmB;QAChF,OAAO;YACH,IAAIA,MAAM,OAAO;YACjB,WAAWA,MAAM,SAAS;YAC1B,SAASA,MAAM,OAAO;YACtB,WAAWA,MAAM,MAAM,CAAC,SAAS;YACjC,kBAAkBA,MAAM,MAAM,CAAC,gBAAgB;YAC/C,WAAWA,MAAM,MAAM,CAAC,SAAS;YACjC,QAAQA,MAAM,MAAM,CAAC,MAAM;YAC3B,SAAS,IAAI,CAAC,UAAU,CAACA,MAAM,MAAM,CAAC,OAAO;YAC7C,gBAAgB,IAAI,CAAC,UAAU,CAACA,MAAM,MAAM,CAAC,cAAc;YAC3D,cAAcA,MAAM,MAAM,CAAC,YAAY;YACvC,gBAAgBA,MAAM,MAAM,CAAC,cAAc;YAC3C,iBAAiB,IAAI,CAAC,UAAU,CAACA,MAAM,MAAM,CAAC,eAAe;YAC7D,cAAc,IAAI,CAAC,UAAU,CAACA,MAAM,MAAM,CAAC,YAAY;QAC3D;IACJ;IAEO,UAAUC,QAAyB,EAAiC;QACvE,OAAO;YACH,WAAWA,SAAS,SAAS;YAC7B,kBAAkBA,SAAS,gBAAgB;YAC3C,WAAWA,SAAS,SAAS;YAC7B,QAAQA,SAAS,MAAM;YACvB,SAAS,IAAI,CAAC,QAAQ,CAACA,SAAS,OAAO;YACvC,gBAAgB,IAAI,CAAC,QAAQ,CAACA,SAAS,cAAc;YACrD,cAAcA,SAAS,YAAY;YACnC,gBAAgBA,SAAS,cAAc;YACvC,iBAAiB,IAAI,CAAC,QAAQ,CAACA,SAAS,eAAe;YACvD,cAAc,IAAI,CAAC,QAAQ,CAACA,SAAS,YAAY;QACrD;IACJ;IAEQ,SAASC,KAAc,EAAU;QACrC,IAAIA,QAAAA,OACA,OAAO;QAEX,IAAI;YACA,OAAOC,KAAK,SAAS,CAACD;QAC1B,EAAE,OAAM;YACJ,OAAOA;QACX;IACJ;IAEQ,WAAcE,MAAiC,EAAK;QACxD,IAAI,CAACA,QACD,OAAO;QAEX,IAAI;YACA,OAAOD,KAAK,KAAK,CAACC;QACtB,EAAE,OAAM;YACJ,OAAOA;QACX;IACJ;AACJ;AAEO,MAAMC,wDACTC,2BAAAA,oBAA0D,CAAC;IACvD,gBAAgBP;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,11 @@
1
+ import { WebhookTransformer as WebhookTransformerAbstraction } from "./abstractions/WebhookTransformer.js";
2
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
3
+ import type { Webhook, WebhookCmsEntryValues } from "../../../api/domain/Webhook.js";
4
+ declare class WebhookTransformerImpl implements WebhookTransformerAbstraction.Interface {
5
+ fromStorage(entry: CmsEntry<WebhookCmsEntryValues>): Webhook;
6
+ toStorage(webhook: Webhook): WebhookCmsEntryValues;
7
+ }
8
+ export declare const WebhookTransformer: typeof WebhookTransformerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions/WebhookTransformer.js").IWebhookTransformer>;
10
+ };
11
+ export {};
@@ -0,0 +1,35 @@
1
+ import { WebhookTransformer } from "./abstractions/WebhookTransformer.js";
2
+ class WebhookTransformerImpl {
3
+ fromStorage(entry) {
4
+ return {
5
+ id: entry.entryId,
6
+ name: entry.values.name,
7
+ slug: entry.values.slug,
8
+ endpointUrl: entry.values.endpointUrl,
9
+ description: entry.values.description,
10
+ enabled: entry.values.enabled,
11
+ events: entry.values.events,
12
+ signingSecret: entry.values.signingSecret,
13
+ createdOn: entry.createdOn,
14
+ savedOn: entry.savedOn
15
+ };
16
+ }
17
+ toStorage(webhook) {
18
+ return {
19
+ name: webhook.name,
20
+ slug: webhook.slug,
21
+ endpointUrl: webhook.endpointUrl,
22
+ description: webhook.description,
23
+ enabled: webhook.enabled,
24
+ events: webhook.events,
25
+ signingSecret: webhook.signingSecret
26
+ };
27
+ }
28
+ }
29
+ const WebhookTransformer_WebhookTransformer = WebhookTransformer.createImplementation({
30
+ implementation: WebhookTransformerImpl,
31
+ dependencies: []
32
+ });
33
+ export { WebhookTransformer_WebhookTransformer as WebhookTransformer };
34
+
35
+ //# sourceMappingURL=WebhookTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/Transformers/WebhookTransformer.js","sources":["../../../../src/api/features/Transformers/WebhookTransformer.ts"],"sourcesContent":["import { WebhookTransformer as WebhookTransformerAbstraction } from \"./abstractions/WebhookTransformer.js\";\nimport type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\n\nclass WebhookTransformerImpl implements WebhookTransformerAbstraction.Interface {\n public fromStorage(entry: CmsEntry<WebhookCmsEntryValues>): Webhook {\n return {\n id: entry.entryId,\n name: entry.values.name,\n slug: entry.values.slug,\n endpointUrl: entry.values.endpointUrl,\n description: entry.values.description,\n enabled: entry.values.enabled,\n events: entry.values.events,\n signingSecret: entry.values.signingSecret,\n createdOn: entry.createdOn,\n savedOn: entry.savedOn\n };\n }\n\n public toStorage(webhook: Webhook): WebhookCmsEntryValues {\n return {\n name: webhook.name,\n slug: webhook.slug,\n endpointUrl: webhook.endpointUrl,\n description: webhook.description,\n enabled: webhook.enabled,\n events: webhook.events,\n signingSecret: webhook.signingSecret\n };\n }\n}\n\nexport const WebhookTransformer = WebhookTransformerAbstraction.createImplementation({\n implementation: WebhookTransformerImpl,\n dependencies: []\n});\n"],"names":["WebhookTransformerImpl","entry","webhook","WebhookTransformer","WebhookTransformerAbstraction"],"mappings":";AAIA,MAAMA;IACK,YAAYC,KAAsC,EAAW;QAChE,OAAO;YACH,IAAIA,MAAM,OAAO;YACjB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,MAAMA,MAAM,MAAM,CAAC,IAAI;YACvB,aAAaA,MAAM,MAAM,CAAC,WAAW;YACrC,aAAaA,MAAM,MAAM,CAAC,WAAW;YACrC,SAASA,MAAM,MAAM,CAAC,OAAO;YAC7B,QAAQA,MAAM,MAAM,CAAC,MAAM;YAC3B,eAAeA,MAAM,MAAM,CAAC,aAAa;YACzC,WAAWA,MAAM,SAAS;YAC1B,SAASA,MAAM,OAAO;QAC1B;IACJ;IAEO,UAAUC,OAAgB,EAAyB;QACtD,OAAO;YACH,MAAMA,QAAQ,IAAI;YAClB,MAAMA,QAAQ,IAAI;YAClB,aAAaA,QAAQ,WAAW;YAChC,aAAaA,QAAQ,WAAW;YAChC,SAASA,QAAQ,OAAO;YACxB,QAAQA,QAAQ,MAAM;YACtB,eAAeA,QAAQ,aAAa;QACxC;IACJ;AACJ;AAEO,MAAMC,wCAAqBC,mBAAAA,oBAAkD,CAAC;IACjF,gBAAgBJ;IAChB,cAAc,EAAE;AACpB"}
@@ -0,0 +1,10 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { WebhookDelivery, WebhookDeliveryCmsEntryValues } from "../../../../api/domain/WebhookDelivery.js";
3
+ export interface IWebhookDeliveryTransformer {
4
+ fromStorage(entry: CmsEntry<WebhookDeliveryCmsEntryValues>): WebhookDelivery;
5
+ toStorage(delivery: WebhookDelivery): WebhookDeliveryCmsEntryValues;
6
+ }
7
+ export declare const WebhookDeliveryTransformer: import("@webiny/di").Abstraction<IWebhookDeliveryTransformer>;
8
+ export declare namespace WebhookDeliveryTransformer {
9
+ type Interface = IWebhookDeliveryTransformer;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const WebhookDeliveryTransformer = createAbstraction("Webhooks/WebhookDeliveryTransformer");
3
+ export { WebhookDeliveryTransformer };
4
+
5
+ //# sourceMappingURL=WebhookDeliveryTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/Transformers/abstractions/WebhookDeliveryTransformer.js","sources":["../../../../../src/api/features/Transformers/abstractions/WebhookDeliveryTransformer.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport type {\n WebhookDelivery,\n WebhookDeliveryCmsEntryValues\n} from \"~/api/domain/WebhookDelivery.js\";\nimport { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface IWebhookDeliveryTransformer {\n fromStorage(entry: CmsEntry<WebhookDeliveryCmsEntryValues>): WebhookDelivery;\n toStorage(delivery: WebhookDelivery): WebhookDeliveryCmsEntryValues;\n}\n\nexport const WebhookDeliveryTransformer = createAbstraction<IWebhookDeliveryTransformer>(\n \"Webhooks/WebhookDeliveryTransformer\"\n);\n\nexport namespace WebhookDeliveryTransformer {\n export type Interface = IWebhookDeliveryTransformer;\n}\n"],"names":["WebhookDeliveryTransformer","createAbstraction"],"mappings":";AAYO,MAAMA,6BAA6BC,kBACtC"}
@@ -0,0 +1,10 @@
1
+ import type { CmsEntry } from "@webiny/api-headless-cms/types/index.js";
2
+ import type { Webhook, WebhookCmsEntryValues } from "../../../../api/domain/Webhook.js";
3
+ export interface IWebhookTransformer {
4
+ fromStorage(entry: CmsEntry<WebhookCmsEntryValues>): Webhook;
5
+ toStorage(webhook: Webhook): WebhookCmsEntryValues;
6
+ }
7
+ export declare const WebhookTransformer: import("@webiny/di").Abstraction<IWebhookTransformer>;
8
+ export declare namespace WebhookTransformer {
9
+ type Interface = IWebhookTransformer;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const WebhookTransformer = createAbstraction("Webhooks/WebhookTransformer");
3
+ export { WebhookTransformer };
4
+
5
+ //# sourceMappingURL=WebhookTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/Transformers/abstractions/WebhookTransformer.js","sources":["../../../../../src/api/features/Transformers/abstractions/WebhookTransformer.ts"],"sourcesContent":["import type { CmsEntry } from \"@webiny/api-headless-cms/types/index.js\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\nimport { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface IWebhookTransformer {\n fromStorage(entry: CmsEntry<WebhookCmsEntryValues>): Webhook;\n toStorage(webhook: Webhook): WebhookCmsEntryValues;\n}\n\nexport const WebhookTransformer = createAbstraction<IWebhookTransformer>(\n \"Webhooks/WebhookTransformer\"\n);\n\nexport namespace WebhookTransformer {\n export type Interface = IWebhookTransformer;\n}\n"],"names":["WebhookTransformer","createAbstraction"],"mappings":";AASO,MAAMA,qBAAqBC,kBAC9B"}
@@ -0,0 +1,4 @@
1
+ export declare const WebhooksTransformerFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,13 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { WebhookTransformer } from "./WebhookTransformer.js";
3
+ import { WebhookDeliveryTransformer } from "./WebhookDeliveryTransformer.js";
4
+ const WebhooksTransformerFeature = createFeature({
5
+ name: "Webhooks/Transformer",
6
+ register (container) {
7
+ container.register(WebhookTransformer).inSingletonScope();
8
+ container.register(WebhookDeliveryTransformer).inSingletonScope();
9
+ }
10
+ });
11
+ export { WebhooksTransformerFeature };
12
+
13
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/Transformers/feature.js","sources":["../../../../src/api/features/Transformers/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WebhookTransformer } from \"./WebhookTransformer.js\";\nimport { WebhookDeliveryTransformer } from \"./WebhookDeliveryTransformer.js\";\n\nexport const WebhooksTransformerFeature = createFeature({\n name: \"Webhooks/Transformer\",\n register(container) {\n container.register(WebhookTransformer).inSingletonScope();\n container.register(WebhookDeliveryTransformer).inSingletonScope();\n }\n});\n"],"names":["WebhooksTransformerFeature","createFeature","container","WebhookTransformer","WebhookDeliveryTransformer"],"mappings":";;;AAIO,MAAMA,6BAA6BC,cAAc;IACpD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,oBAAoB,gBAAgB;QACvDD,UAAU,QAAQ,CAACE,4BAA4B,gBAAgB;IACnE;AACJ"}
@@ -0,0 +1,2 @@
1
+ export { WebhookTransformer } from "./abstractions/WebhookTransformer.js";
2
+ export { WebhookDeliveryTransformer } from "./abstractions/WebhookDeliveryTransformer.js";
@@ -0,0 +1,2 @@
1
+ export { WebhookTransformer } from "./abstractions/WebhookTransformer.js";
2
+ export { WebhookDeliveryTransformer } from "./abstractions/WebhookDeliveryTransformer.js";
@@ -0,0 +1,19 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { TaskService } from "@webiny/api-core/exports/api/tasks.js";
3
+ import { TriggerWebhookUseCase as UseCaseAbstraction } from "./abstractions.js";
4
+ import { GetWebhookRepository } from "../../../api/features/GetWebhook/abstractions.js";
5
+ import { CreateWebhookDeliveryRepository } from "../../../api/features/CreateWebhookDelivery/abstractions.js";
6
+ import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
7
+ import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
8
+ declare class TriggerWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
9
+ private readonly permissions;
10
+ private readonly getWebhookRepository;
11
+ private readonly createDeliveryRepository;
12
+ private readonly taskService;
13
+ constructor(permissions: WebhookPermissions.Interface, getWebhookRepository: GetWebhookRepository.Interface, createDeliveryRepository: CreateWebhookDeliveryRepository.Interface, taskService: TaskService.Interface);
14
+ execute(webhookId: string, payload: Record<string, unknown>): Promise<Result<WebhookDelivery, UseCaseAbstraction.Error>>;
15
+ }
16
+ export declare const TriggerWebhookUseCase: typeof TriggerWebhookUseCaseImpl & {
17
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ITriggerWebhookUseCase>;
18
+ };
19
+ export {};
@@ -0,0 +1,54 @@
1
+ import { Result } from "@webiny/feature/api";
2
+ import { TaskService } from "@webiny/api-core/exports/api/tasks.js";
3
+ import { TriggerWebhookUseCase } from "./abstractions.js";
4
+ import { GetWebhookRepository } from "../GetWebhook/abstractions.js";
5
+ import { CreateWebhookDeliveryRepository } from "../CreateWebhookDelivery/abstractions.js";
6
+ import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
7
+ import { WebhookNotAuthorizedError } from "../../domain/errors.js";
8
+ import { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_RETENTION_DAYS } from "../../domain/constants.js";
9
+ class TriggerWebhookUseCaseImpl {
10
+ constructor(permissions, getWebhookRepository, createDeliveryRepository, taskService){
11
+ this.permissions = permissions;
12
+ this.getWebhookRepository = getWebhookRepository;
13
+ this.createDeliveryRepository = createDeliveryRepository;
14
+ this.taskService = taskService;
15
+ }
16
+ async execute(webhookId, payload) {
17
+ if (!await this.permissions.canEdit("webhook")) return Result.fail(new WebhookNotAuthorizedError());
18
+ const webhookResult = await this.getWebhookRepository.execute(webhookId);
19
+ if (webhookResult.isFail()) return Result.fail(webhookResult.error);
20
+ const webhook = webhookResult.value;
21
+ const expiresAt = new Date(Date.now() + 24 * WEBHOOK_DELIVERY_RETENTION_DAYS * 3600000).toISOString();
22
+ const deliveryResult = await this.createDeliveryRepository.execute({
23
+ webhookId: webhook.id,
24
+ eventType: "webhook.test",
25
+ status: "pending",
26
+ payload,
27
+ expiresAt
28
+ });
29
+ if (deliveryResult.isFail()) return Result.fail(deliveryResult.error);
30
+ const delivery = deliveryResult.value;
31
+ await this.taskService.trigger({
32
+ definition: SEND_WEBHOOK_TASK,
33
+ name: `Test webhook: ${webhook.slug}`,
34
+ input: {
35
+ webhookId: webhook.id,
36
+ eventName: "webhook.test",
37
+ deliveryId: delivery.id
38
+ }
39
+ });
40
+ return Result.ok(delivery);
41
+ }
42
+ }
43
+ const TriggerWebhookUseCase_TriggerWebhookUseCase = TriggerWebhookUseCase.createImplementation({
44
+ implementation: TriggerWebhookUseCaseImpl,
45
+ dependencies: [
46
+ WebhookPermissions,
47
+ GetWebhookRepository,
48
+ CreateWebhookDeliveryRepository,
49
+ TaskService
50
+ ]
51
+ });
52
+ export { TriggerWebhookUseCase_TriggerWebhookUseCase as TriggerWebhookUseCase };
53
+
54
+ //# sourceMappingURL=TriggerWebhookUseCase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TriggerWebhook/TriggerWebhookUseCase.js","sources":["../../../../src/api/features/TriggerWebhook/TriggerWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { TaskService } from \"@webiny/api-core/exports/api/tasks.js\";\nimport { TriggerWebhookUseCase as UseCaseAbstraction } from \"./abstractions.js\";\nimport { GetWebhookRepository } from \"~/api/features/GetWebhook/abstractions.js\";\nimport { CreateWebhookDeliveryRepository } from \"~/api/features/CreateWebhookDelivery/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError } from \"~/api/domain/errors.js\";\nimport { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_RETENTION_DAYS } from \"~/api/domain/constants.js\";\nimport type { ISendWebhookTaskInput } from \"~/api/features/SendWebhookTask/types.js\";\nimport type { WebhookDelivery } from \"~/api/domain/WebhookDelivery.js\";\n\nclass TriggerWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: WebhookPermissions.Interface,\n private readonly getWebhookRepository: GetWebhookRepository.Interface,\n private readonly createDeliveryRepository: CreateWebhookDeliveryRepository.Interface,\n private readonly taskService: TaskService.Interface\n ) {}\n\n async execute(\n webhookId: string,\n payload: Record<string, unknown>\n ): Promise<Result<WebhookDelivery, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canEdit(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const webhookResult = await this.getWebhookRepository.execute(webhookId);\n if (webhookResult.isFail()) {\n return Result.fail(webhookResult.error);\n }\n\n const webhook = webhookResult.value;\n\n const expiresAt = new Date(\n Date.now() + WEBHOOK_DELIVERY_RETENTION_DAYS * 24 * 60 * 60 * 1000\n ).toISOString();\n\n const deliveryResult = await this.createDeliveryRepository.execute({\n webhookId: webhook.id,\n eventType: \"webhook.test\",\n status: \"pending\",\n payload,\n expiresAt\n });\n\n if (deliveryResult.isFail()) {\n return Result.fail(deliveryResult.error);\n }\n\n const delivery = deliveryResult.value;\n\n await this.taskService.trigger<ISendWebhookTaskInput>({\n definition: SEND_WEBHOOK_TASK,\n name: `Test webhook: ${webhook.slug}`,\n input: {\n webhookId: webhook.id,\n eventName: \"webhook.test\",\n deliveryId: delivery.id\n }\n });\n\n return Result.ok(delivery);\n }\n}\n\nexport const TriggerWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: TriggerWebhookUseCaseImpl,\n dependencies: [\n WebhookPermissions,\n GetWebhookRepository,\n CreateWebhookDeliveryRepository,\n TaskService\n ]\n});\n"],"names":["TriggerWebhookUseCaseImpl","permissions","getWebhookRepository","createDeliveryRepository","taskService","webhookId","payload","Result","WebhookNotAuthorizedError","webhookResult","webhook","expiresAt","Date","WEBHOOK_DELIVERY_RETENTION_DAYS","deliveryResult","delivery","SEND_WEBHOOK_TASK","TriggerWebhookUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookRepository","CreateWebhookDeliveryRepository","TaskService"],"mappings":";;;;;;;;AAWA,MAAMA;IACF,YACqBC,WAAyC,EACzCC,oBAAoD,EACpDC,wBAAmE,EACnEC,WAAkC,CACrD;aAJmBH,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;aACAC,wBAAwB,GAAxBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QACFC,SAAiB,EACjBC,OAAgC,EAC0B;QAC1D,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,gBAAgB,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACJ;QAC9D,IAAII,cAAc,MAAM,IACpB,OAAOF,OAAO,IAAI,CAACE,cAAc,KAAK;QAG1C,MAAMC,UAAUD,cAAc,KAAK;QAEnC,MAAME,YAAY,IAAIC,KAClBA,KAAK,GAAG,KAAKC,AAAkC,KAAlCA,kCAAAA,SACf,WAAW;QAEb,MAAMC,iBAAiB,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;YAC/D,WAAWJ,QAAQ,EAAE;YACrB,WAAW;YACX,QAAQ;YACRJ;YACAK;QACJ;QAEA,IAAIG,eAAe,MAAM,IACrB,OAAOP,OAAO,IAAI,CAACO,eAAe,KAAK;QAG3C,MAAMC,WAAWD,eAAe,KAAK;QAErC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAwB;YAClD,YAAYE;YACZ,MAAM,CAAC,cAAc,EAAEN,QAAQ,IAAI,EAAE;YACrC,OAAO;gBACH,WAAWA,QAAQ,EAAE;gBACrB,WAAW;gBACX,YAAYK,SAAS,EAAE;YAC3B;QACJ;QAEA,OAAOR,OAAO,EAAE,CAACQ;IACrB;AACJ;AAEO,MAAME,8CAAwBC,sBAAAA,oBAAuC,CAAC;IACzE,gBAAgBlB;IAChB,cAAc;QACVmB;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -0,0 +1,13 @@
1
+ import { type Result } from "@webiny/feature/api";
2
+ import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
3
+ import type { WebhookNotFoundError, WebhookPersistenceError, WebhookModelNotFoundError, WebhookNotAuthorizedError } from "../../../api/domain/errors.js";
4
+ type IError = WebhookNotFoundError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
5
+ export interface ITriggerWebhookUseCase {
6
+ execute(webhookId: string, payload: Record<string, unknown>): Promise<Result<WebhookDelivery, IError>>;
7
+ }
8
+ export declare const TriggerWebhookUseCase: import("@webiny/di").Abstraction<ITriggerWebhookUseCase>;
9
+ export declare namespace TriggerWebhookUseCase {
10
+ type Interface = ITriggerWebhookUseCase;
11
+ type Error = IError;
12
+ }
13
+ export {};
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const TriggerWebhookUseCase = createAbstraction("Webhooks/TriggerWebhookUseCase");
3
+ export { TriggerWebhookUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api/features/TriggerWebhook/abstractions.js","sources":["../../../../src/api/features/TriggerWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { WebhookDelivery } from \"~/api/domain/WebhookDelivery.js\";\nimport type {\n WebhookNotFoundError,\n WebhookPersistenceError,\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError\n} from \"~/api/domain/errors.js\";\n\ntype IError =\n | WebhookNotFoundError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError;\n\nexport interface ITriggerWebhookUseCase {\n execute(\n webhookId: string,\n payload: Record<string, unknown>\n ): Promise<Result<WebhookDelivery, IError>>;\n}\n\nexport const TriggerWebhookUseCase = createAbstraction<ITriggerWebhookUseCase>(\n \"Webhooks/TriggerWebhookUseCase\"\n);\n\nexport namespace TriggerWebhookUseCase {\n export type Interface = ITriggerWebhookUseCase;\n export type Error = IError;\n}\n"],"names":["TriggerWebhookUseCase","createAbstraction"],"mappings":";AAsBO,MAAMA,wBAAwBC,kBACjC"}
@@ -0,0 +1,4 @@
1
+ export declare const TriggerWebhookFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { TriggerWebhookUseCase } from "./TriggerWebhookUseCase.js";
3
+ const TriggerWebhookFeature = createFeature({
4
+ name: "TriggerWebhook",
5
+ register (container) {
6
+ container.register(TriggerWebhookUseCase);
7
+ }
8
+ });
9
+ export { TriggerWebhookFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map