@webiny/webhooks 6.4.0-beta.2 → 6.4.0-beta.4

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 (297) hide show
  1. package/admin/WebhookRoutes.js +32 -3
  2. package/admin/WebhookRoutes.js.map +1 -1
  3. package/admin/Webhooks.js +10 -2
  4. package/admin/Webhooks.js.map +1 -1
  5. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.d.ts +12 -0
  6. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +41 -0
  7. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js.map +1 -0
  8. package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.d.ts +11 -0
  9. package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js +18 -0
  10. package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js.map +1 -0
  11. package/admin/features/getWebhookSettings/abstractions.d.ts +15 -0
  12. package/admin/features/getWebhookSettings/abstractions.js +6 -0
  13. package/admin/features/getWebhookSettings/abstractions.js.map +1 -0
  14. package/admin/features/getWebhookSettings/feature.d.ts +3 -0
  15. package/admin/features/getWebhookSettings/feature.js +19 -0
  16. package/admin/features/getWebhookSettings/feature.js.map +1 -0
  17. package/admin/features/getWebhookSettings/index.d.ts +2 -0
  18. package/admin/features/getWebhookSettings/index.js +2 -0
  19. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js +1 -1
  20. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js.map +1 -1
  21. package/admin/features/listWebhookDeliveries/abstractions.d.ts +6 -1
  22. package/admin/features/listWebhookDeliveries/abstractions.js.map +1 -1
  23. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.d.ts +12 -0
  24. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js +44 -0
  25. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js.map +1 -0
  26. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +11 -0
  27. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js +18 -0
  28. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
  29. package/admin/features/updateWebhookSettings/abstractions.d.ts +19 -0
  30. package/admin/features/updateWebhookSettings/abstractions.js +6 -0
  31. package/admin/features/updateWebhookSettings/abstractions.js.map +1 -0
  32. package/admin/features/updateWebhookSettings/feature.d.ts +3 -0
  33. package/admin/features/updateWebhookSettings/feature.js +19 -0
  34. package/admin/features/updateWebhookSettings/feature.js.map +1 -0
  35. package/admin/features/updateWebhookSettings/index.d.ts +2 -0
  36. package/admin/features/updateWebhookSettings/index.js +2 -0
  37. package/admin/presentation/{WebhookDeliveries → WebhookDeliveriesPage}/WebhookDeliveriesDataSource.d.ts +1 -2
  38. package/admin/presentation/{WebhookDeliveries → WebhookDeliveriesPage}/WebhookDeliveriesDataSource.js +5 -7
  39. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.js.map +1 -0
  40. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.d.ts +41 -0
  41. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js +223 -0
  42. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js.map +1 -0
  43. package/admin/presentation/WebhookDeliveriesPage/abstractions.d.ts +42 -0
  44. package/admin/presentation/WebhookDeliveriesPage/abstractions.js +5 -0
  45. package/admin/presentation/WebhookDeliveriesPage/abstractions.js.map +1 -0
  46. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.d.ts +11 -0
  47. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js +36 -0
  48. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js.map +1 -0
  49. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.d.ts +9 -0
  50. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js +43 -0
  51. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js.map +1 -0
  52. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.d.ts +7 -0
  53. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js +76 -0
  54. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js.map +1 -0
  55. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.d.ts +9 -0
  56. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js +85 -0
  57. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js.map +1 -0
  58. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.d.ts +9 -0
  59. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js +61 -0
  60. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js.map +1 -0
  61. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.d.ts +2 -0
  62. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.js +16 -0
  63. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.js.map +1 -0
  64. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.d.ts +2 -0
  65. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js +73 -0
  66. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js.map +1 -0
  67. package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.d.ts +1 -0
  68. package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.js +13 -0
  69. package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.js.map +1 -0
  70. package/admin/presentation/WebhookDeliveriesPage/feature.d.ts +3 -0
  71. package/admin/presentation/WebhookDeliveriesPage/feature.js +17 -0
  72. package/admin/presentation/WebhookDeliveriesPage/feature.js.map +1 -0
  73. package/admin/presentation/WebhookDeliveriesPage/index.d.ts +5 -0
  74. package/admin/presentation/WebhookDeliveriesPage/index.js +1 -0
  75. package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +9 -5
  76. package/admin/presentation/WebhookForm/WebhookFormPresenter.js +144 -60
  77. package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -1
  78. package/admin/presentation/WebhookForm/abstractions.d.ts +2 -13
  79. package/admin/presentation/WebhookForm/abstractions.js.map +1 -1
  80. package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +5 -2
  81. package/admin/presentation/WebhookForm/components/SigningSecret.js +7 -3
  82. package/admin/presentation/WebhookForm/components/SigningSecret.js.map +1 -1
  83. package/admin/presentation/WebhookForm/components/WebhookFormView.js +49 -41
  84. package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -1
  85. package/admin/presentation/WebhookList/WebhookListPresenter.d.ts +26 -2
  86. package/admin/presentation/WebhookList/WebhookListPresenter.js +36 -34
  87. package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -1
  88. package/admin/presentation/WebhookList/abstractions.d.ts +25 -7
  89. package/admin/presentation/WebhookList/abstractions.js.map +1 -1
  90. package/admin/presentation/WebhookList/components/CreateWebhookButton.d.ts +2 -0
  91. package/admin/presentation/WebhookList/components/CreateWebhookButton.js +22 -0
  92. package/admin/presentation/WebhookList/components/CreateWebhookButton.js.map +1 -0
  93. package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.d.ts +2 -0
  94. package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.js +16 -0
  95. package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.js.map +1 -0
  96. package/admin/presentation/WebhookList/components/WebhookListContent.d.ts +9 -0
  97. package/admin/presentation/WebhookList/components/WebhookListContent.js +170 -0
  98. package/admin/presentation/WebhookList/components/WebhookListContent.js.map +1 -0
  99. package/admin/presentation/WebhookList/components/WebhookListView.js +10 -133
  100. package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -1
  101. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.d.ts +21 -0
  102. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +91 -0
  103. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js.map +1 -0
  104. package/admin/presentation/WebhookSettings/abstractions.d.ts +16 -0
  105. package/admin/presentation/WebhookSettings/abstractions.js +5 -0
  106. package/admin/presentation/WebhookSettings/abstractions.js.map +1 -0
  107. package/admin/presentation/WebhookSettings/components/WebhookSettingsView.d.ts +2 -0
  108. package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js +56 -0
  109. package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js.map +1 -0
  110. package/admin/presentation/WebhookSettings/feature.d.ts +3 -0
  111. package/admin/presentation/WebhookSettings/feature.js +17 -0
  112. package/admin/presentation/WebhookSettings/feature.js.map +1 -0
  113. package/admin/presentation/WebhookSettings/index.d.ts +2 -0
  114. package/admin/presentation/WebhookSettings/index.js +2 -0
  115. package/admin/routes.d.ts +4 -0
  116. package/admin/routes.js +11 -0
  117. package/admin/routes.js.map +1 -1
  118. package/admin/shared/types.d.ts +4 -0
  119. package/api/WebhooksFeature.js +10 -0
  120. package/api/WebhooksFeature.js.map +1 -1
  121. package/api/domain/WebhookDelivery.d.ts +0 -1
  122. package/api/domain/WebhookSettings.d.ts +4 -0
  123. package/api/domain/WebhookSettings.js +0 -0
  124. package/api/domain/constants.d.ts +2 -1
  125. package/api/domain/constants.js +3 -2
  126. package/api/domain/constants.js.map +1 -1
  127. package/api/domain/errors.d.ts +7 -2
  128. package/api/domain/errors.js +16 -3
  129. package/api/domain/errors.js.map +1 -1
  130. package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +3 -3
  131. package/api/features/CreateWebhook/CreateWebhookUseCase.js +10 -19
  132. package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -1
  133. package/api/features/CreateWebhook/abstractions.d.ts +1 -1
  134. package/api/features/CreateWebhook/abstractions.js.map +1 -1
  135. package/api/features/CreateWebhook/schema.d.ts +10 -0
  136. package/api/features/CreateWebhook/schema.js +16 -0
  137. package/api/features/CreateWebhook/schema.js.map +1 -0
  138. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +1 -1
  139. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +3 -1
  140. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js.map +1 -1
  141. package/api/features/CreateWebhookDelivery/abstractions.d.ts +1 -1
  142. package/api/features/CreateWebhookDelivery/abstractions.js.map +1 -1
  143. package/api/features/DeleteWebhook/DeleteWebhookUseCase.d.ts +3 -3
  144. package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +8 -3
  145. package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -1
  146. package/api/features/DeleteWebhook/abstractions.d.ts +2 -2
  147. package/api/features/DeleteWebhook/abstractions.js.map +1 -1
  148. package/api/features/DeleteWebhook/schema.d.ts +4 -0
  149. package/api/features/DeleteWebhook/schema.js +7 -0
  150. package/api/features/DeleteWebhook/schema.js.map +1 -0
  151. package/api/features/GetWebhook/GetWebhookUseCase.d.ts +2 -2
  152. package/api/features/GetWebhook/GetWebhookUseCase.js +7 -2
  153. package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -1
  154. package/api/features/GetWebhook/abstractions.d.ts +2 -2
  155. package/api/features/GetWebhook/abstractions.js.map +1 -1
  156. package/api/features/GetWebhook/schema.d.ts +4 -0
  157. package/api/features/GetWebhook/schema.js +7 -0
  158. package/api/features/GetWebhook/schema.js.map +1 -0
  159. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.d.ts +2 -2
  160. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +7 -2
  161. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -1
  162. package/api/features/GetWebhookDelivery/abstractions.d.ts +2 -2
  163. package/api/features/GetWebhookDelivery/abstractions.js.map +1 -1
  164. package/api/features/GetWebhookDelivery/schema.d.ts +4 -0
  165. package/api/features/GetWebhookDelivery/schema.js +7 -0
  166. package/api/features/GetWebhookDelivery/schema.js.map +1 -0
  167. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.d.ts +19 -0
  168. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js +57 -0
  169. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js.map +1 -0
  170. package/api/features/GetWebhookSettings/abstractions.d.ts +13 -0
  171. package/api/features/GetWebhookSettings/abstractions.js +5 -0
  172. package/api/features/GetWebhookSettings/abstractions.js.map +1 -0
  173. package/api/features/GetWebhookSettings/feature.d.ts +4 -0
  174. package/api/features/GetWebhookSettings/feature.js +11 -0
  175. package/api/features/GetWebhookSettings/feature.js.map +1 -0
  176. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +2 -2
  177. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +4 -1
  178. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -1
  179. package/api/features/ListWebhookDeliveries/abstractions.d.ts +2 -2
  180. package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -1
  181. package/api/features/ListWebhookDeliveries/schema.d.ts +7 -0
  182. package/api/features/ListWebhookDeliveries/schema.js +10 -0
  183. package/api/features/ListWebhookDeliveries/schema.js.map +1 -0
  184. package/api/features/ListWebhooks/ListWebhooksUseCase.d.ts +2 -2
  185. package/api/features/ListWebhooks/ListWebhooksUseCase.js +4 -1
  186. package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -1
  187. package/api/features/ListWebhooks/abstractions.d.ts +2 -2
  188. package/api/features/ListWebhooks/abstractions.js.map +1 -1
  189. package/api/features/ListWebhooks/schema.d.ts +7 -0
  190. package/api/features/ListWebhooks/schema.js +10 -0
  191. package/api/features/ListWebhooks/schema.js.map +1 -0
  192. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +8 -6
  193. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +16 -6
  194. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -1
  195. package/api/features/ResendWebhookDelivery/abstractions.d.ts +2 -2
  196. package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -1
  197. package/api/features/ResendWebhookDelivery/schema.d.ts +4 -0
  198. package/api/features/ResendWebhookDelivery/schema.js +7 -0
  199. package/api/features/ResendWebhookDelivery/schema.js.map +1 -0
  200. package/api/features/SendWebhookTask/SendWebhookTask.d.ts +7 -3
  201. package/api/features/SendWebhookTask/SendWebhookTask.js +46 -34
  202. package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -1
  203. package/api/features/SendWebhookTask/types.d.ts +1 -0
  204. package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +3 -1
  205. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +17 -6
  206. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -1
  207. package/api/features/TriggerWebhook/abstractions.d.ts +2 -2
  208. package/api/features/TriggerWebhook/abstractions.js.map +1 -1
  209. package/api/features/TriggerWebhook/schema.d.ts +5 -0
  210. package/api/features/TriggerWebhook/schema.js +8 -0
  211. package/api/features/TriggerWebhook/schema.js.map +1 -0
  212. package/api/features/UpdateWebhook/UpdateWebhookUseCase.d.ts +4 -4
  213. package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +9 -33
  214. package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -1
  215. package/api/features/UpdateWebhook/abstractions.d.ts +0 -1
  216. package/api/features/UpdateWebhook/abstractions.js.map +1 -1
  217. package/api/features/UpdateWebhook/schema.d.ts +9 -0
  218. package/api/features/UpdateWebhook/schema.js +15 -0
  219. package/api/features/UpdateWebhook/schema.js.map +1 -0
  220. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.d.ts +21 -0
  221. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +62 -0
  222. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js.map +1 -0
  223. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +14 -0
  224. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js +27 -0
  225. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
  226. package/api/features/UpdateWebhookSettings/abstractions.d.ts +27 -0
  227. package/api/features/UpdateWebhookSettings/abstractions.js +6 -0
  228. package/api/features/UpdateWebhookSettings/abstractions.js.map +1 -0
  229. package/api/features/UpdateWebhookSettings/feature.d.ts +4 -0
  230. package/api/features/UpdateWebhookSettings/feature.js +13 -0
  231. package/api/features/UpdateWebhookSettings/feature.js.map +1 -0
  232. package/api/features/UpdateWebhookSettings/schema.d.ts +5 -0
  233. package/api/features/UpdateWebhookSettings/schema.js +9 -0
  234. package/api/features/UpdateWebhookSettings/schema.js.map +1 -0
  235. package/api/features/WebhookDeliver/WebhookDeliver.d.ts +13 -0
  236. package/api/features/WebhookDeliver/WebhookDeliver.js +79 -0
  237. package/api/features/WebhookDeliver/WebhookDeliver.js.map +1 -0
  238. package/api/features/WebhookDeliver/abstractions.d.ts +24 -0
  239. package/api/features/WebhookDeliver/abstractions.js +5 -0
  240. package/api/features/WebhookDeliver/abstractions.js.map +1 -0
  241. package/api/features/WebhookDeliver/feature.d.ts +4 -0
  242. package/api/features/WebhookDeliver/feature.js +11 -0
  243. package/api/features/WebhookDeliver/feature.js.map +1 -0
  244. package/api/features/WebhookDeliver/index.d.ts +2 -0
  245. package/api/features/WebhookDeliver/index.js +2 -0
  246. package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +3 -1
  247. package/api/features/WebhookDispatcher/WebhookDispatcher.js +9 -4
  248. package/api/features/WebhookDispatcher/WebhookDispatcher.js.map +1 -1
  249. package/api/features/WebhookSignPayload/WebhookSignPayload.d.ts +1 -0
  250. package/api/features/WebhookSignPayload/WebhookSignPayload.js +7 -1
  251. package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -1
  252. package/api/graphql/WebhookCrudSchema.js +1 -2
  253. package/api/graphql/WebhookCrudSchema.js.map +1 -1
  254. package/api/graphql/WebhookDeliverySchema.js +12 -8
  255. package/api/graphql/WebhookDeliverySchema.js.map +1 -1
  256. package/api/graphql/WebhookEventSchema.js +2 -0
  257. package/api/graphql/WebhookEventSchema.js.map +1 -1
  258. package/api/graphql/WebhookSettingsSchema.d.ts +8 -0
  259. package/api/graphql/WebhookSettingsSchema.js +62 -0
  260. package/api/graphql/WebhookSettingsSchema.js.map +1 -0
  261. package/api/models/WebhookDeliveryModel.js +4 -4
  262. package/api/models/WebhookDeliveryModel.js.map +1 -1
  263. package/api/models/WebhookModel.js +1 -1
  264. package/api/models/WebhookModel.js.map +1 -1
  265. package/api/models/WebhookSettingsModel.d.ts +8 -0
  266. package/api/models/WebhookSettingsModel.js +28 -0
  267. package/api/models/WebhookSettingsModel.js.map +1 -0
  268. package/api/utils/isValidEndpointUrl.d.ts +1 -0
  269. package/api/utils/isValidEndpointUrl.js +13 -0
  270. package/api/utils/isValidEndpointUrl.js.map +1 -0
  271. package/exports/api/webhooks.d.ts +0 -1
  272. package/exports/api/webhooks.js +0 -1
  273. package/package.json +27 -23
  274. package/admin/SecurityPermission.d.ts +0 -2
  275. package/admin/SecurityPermission.js +0 -15
  276. package/admin/SecurityPermission.js.map +0 -1
  277. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js.map +0 -1
  278. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.d.ts +0 -19
  279. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +0 -77
  280. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +0 -1
  281. package/admin/presentation/WebhookDeliveries/abstractions.d.ts +0 -22
  282. package/admin/presentation/WebhookDeliveries/abstractions.js +0 -5
  283. package/admin/presentation/WebhookDeliveries/abstractions.js.map +0 -1
  284. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +0 -11
  285. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +0 -73
  286. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +0 -1
  287. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.d.ts +0 -8
  288. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js +0 -119
  289. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js.map +0 -1
  290. package/admin/presentation/WebhookDeliveries/feature.d.ts +0 -3
  291. package/admin/presentation/WebhookDeliveries/feature.js +0 -17
  292. package/admin/presentation/WebhookDeliveries/feature.js.map +0 -1
  293. package/admin/presentation/WebhookDeliveries/index.d.ts +0 -2
  294. package/admin/presentation/WebhookDeliveries/index.js +0 -2
  295. package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +0 -12
  296. package/admin/presentation/WebhookForm/components/EventsSelector.js +0 -44
  297. package/admin/presentation/WebhookForm/components/EventsSelector.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.js","sources":["../../../../src/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.ts"],"sourcesContent":["import { makeAutoObservable, runInAction } from \"mobx\";\nimport type {\n IDataSource,\n IDataSourceQuery,\n IDataSourceMeta\n} from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\nimport type {\n IListWebhookDeliveriesUseCase,\n ListWebhookDeliveriesWhere\n} from \"~/admin/features/listWebhookDeliveries/abstractions.js\";\n\nexport class WebhookDeliveriesDataSource implements IDataSource<WebhookDelivery> {\n private _rows: WebhookDelivery[] = [];\n private _meta: IDataSourceMeta = { cursor: null, hasMoreItems: false, totalCount: 0 };\n private _loading = false;\n\n constructor(private readonly listDeliveriesUseCase: IListWebhookDeliveriesUseCase) {\n makeAutoObservable<WebhookDeliveriesDataSource, \"listDeliveriesUseCase\">(this, {\n listDeliveriesUseCase: false\n });\n }\n\n get rows(): WebhookDelivery[] {\n return this._rows;\n }\n\n get meta(): IDataSourceMeta {\n return this._meta;\n }\n\n get loading(): boolean {\n return this._loading;\n }\n\n async query(params: IDataSourceQuery): Promise<void> {\n this._loading = true;\n const result = await this.listDeliveriesUseCase.execute({\n where: (params.filters ?? {}) as ListWebhookDeliveriesWhere,\n limit: params.limit,\n after: params.cursor\n });\n runInAction(() => {\n this._rows = result.data;\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n this._loading = false;\n });\n }\n\n async loadMore(params: IDataSourceQuery): Promise<void> {\n if (!this._meta.hasMoreItems || this._loading) {\n return;\n }\n this._loading = true;\n const result = await this.listDeliveriesUseCase.execute({\n where: (params.filters ?? {}) as ListWebhookDeliveriesWhere,\n limit: params.limit,\n after: this._meta.cursor ?? undefined\n });\n runInAction(() => {\n this._rows = [...this._rows, ...result.data];\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n this._loading = false;\n });\n }\n}\n"],"names":["WebhookDeliveriesDataSource","listDeliveriesUseCase","makeAutoObservable","params","result","runInAction","undefined"],"mappings":";AAYO,MAAMA;IAKT,YAA6BC,qBAAoD,CAAE;aAAtDA,qBAAqB,GAArBA;aAJrB,KAAK,GAAsB,EAAE;aAC7B,KAAK,GAAoB;YAAE,QAAQ;YAAM,cAAc;YAAO,YAAY;QAAE;aAC5E,QAAQ,GAAG;QAGfC,mBAAyE,IAAI,EAAE;YAC3E,uBAAuB;QAC3B;IACJ;IAEA,IAAI,OAA0B;QAC1B,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAI,OAAwB;QACxB,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAI,UAAmB;QACnB,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,MAAM,MAAMC,MAAwB,EAAiB;QACjD,IAAI,CAAC,QAAQ,GAAG;QAChB,MAAMC,SAAS,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YACpD,OAAQD,OAAO,OAAO,IAAI,CAAC;YAC3B,OAAOA,OAAO,KAAK;YACnB,OAAOA,OAAO,MAAM;QACxB;QACAE,YAAY;YACR,IAAI,CAAC,KAAK,GAAGD,OAAO,IAAI;YACxB,IAAI,CAAC,KAAK,GAAG;gBACT,QAAQA,OAAO,IAAI,CAAC,MAAM;gBAC1B,cAAcA,OAAO,IAAI,CAAC,YAAY;gBACtC,YAAYA,OAAO,IAAI,CAAC,UAAU;YACtC;YACA,IAAI,CAAC,QAAQ,GAAG;QACpB;IACJ;IAEA,MAAM,SAASD,MAAwB,EAAiB;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EACzC;QAEJ,IAAI,CAAC,QAAQ,GAAG;QAChB,MAAMC,SAAS,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YACpD,OAAQD,OAAO,OAAO,IAAI,CAAC;YAC3B,OAAOA,OAAO,KAAK;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAIG;QAChC;QACAD,YAAY;YACR,IAAI,CAAC,KAAK,GAAG;mBAAI,IAAI,CAAC,KAAK;mBAAKD,OAAO,IAAI;aAAC;YAC5C,IAAI,CAAC,KAAK,GAAG;gBACT,QAAQA,OAAO,IAAI,CAAC,MAAM;gBAC1B,cAAcA,OAAO,IAAI,CAAC,YAAY;gBACtC,YAAYA,OAAO,IAAI,CAAC,UAAU;YACtC;YACA,IAAI,CAAC,QAAQ,GAAG;QACpB;IACJ;AACJ"}
@@ -0,0 +1,41 @@
1
+ import { ListPresenter } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
2
+ import type { WebhookDelivery } from "../../../admin/shared/types.js";
3
+ import { ListWebhookDeliveriesUseCase } from "../../../admin/features/listWebhookDeliveries/abstractions.js";
4
+ import { ResendWebhookDeliveryUseCase } from "../../../admin/features/resendWebhookDelivery/abstractions.js";
5
+ import { ListAvailableEventsUseCase } from "../../../admin/features/listAvailableEvents/abstractions.js";
6
+ import { ListWebhooksUseCase } from "../../../admin/features/ListWebhooks/abstractions.js";
7
+ import { type IWebhookDeliveriesPagePresenter, type IWebhookDeliveriesPageViewModel } from "./abstractions.js";
8
+ declare class WebhookDeliveriesPagePresenterImpl implements IWebhookDeliveriesPagePresenter {
9
+ private readonly listPresenter;
10
+ private readonly listDeliveriesUseCase;
11
+ private readonly listAvailableEventsUseCase;
12
+ private readonly resendDeliveryUseCase;
13
+ private readonly listWebhooksUseCase;
14
+ private _availableEvents;
15
+ private _availableWebhooks;
16
+ private _filters;
17
+ private _resendingIds;
18
+ private _loading;
19
+ private _error;
20
+ constructor(listPresenter: ListPresenter.Interface<WebhookDelivery>, listDeliveriesUseCase: ListWebhookDeliveriesUseCase.Interface, listAvailableEventsUseCase: ListAvailableEventsUseCase.Interface, resendDeliveryUseCase: ResendWebhookDeliveryUseCase.Interface, listWebhooksUseCase: ListWebhooksUseCase.Interface);
21
+ get vm(): IWebhookDeliveriesPageViewModel;
22
+ init(webhookId?: string): Promise<void>;
23
+ clearFilters(): void;
24
+ setWebhookFilter(webhookId: string | null): void;
25
+ setAppFilter(app: string | null): void;
26
+ setEntityFilter(entity: string | null): void;
27
+ setEventFilter(eventName: string | null): void;
28
+ setStatusFilter(status: string[]): void;
29
+ loadMore(): Promise<void>;
30
+ resend(id: string): Promise<void>;
31
+ private _hasFilters;
32
+ private _syncFilters;
33
+ private _buildWhere;
34
+ private _computeAvailableApps;
35
+ private _computeAvailableEntities;
36
+ private _computeAvailableEventNames;
37
+ }
38
+ export declare const WebhookDeliveriesPagePresenter: typeof WebhookDeliveriesPagePresenterImpl & {
39
+ __abstraction: import("@webiny/di").Abstraction<IWebhookDeliveriesPagePresenter>;
40
+ };
41
+ export {};
@@ -0,0 +1,223 @@
1
+ import { computed, makeAutoObservable, runInAction } from "mobx";
2
+ import { ListPresenter } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
3
+ import { ListWebhookDeliveriesUseCase } from "../../features/listWebhookDeliveries/abstractions.js";
4
+ import { ResendWebhookDeliveryUseCase } from "../../features/resendWebhookDelivery/abstractions.js";
5
+ import { ListAvailableEventsUseCase } from "../../features/listAvailableEvents/abstractions.js";
6
+ import { ListWebhooksUseCase } from "../../features/ListWebhooks/abstractions.js";
7
+ import { WebhookDeliveriesDataSource } from "./WebhookDeliveriesDataSource.js";
8
+ import { WebhookDeliveriesPagePresenter } from "./abstractions.js";
9
+ const createEmptyFilters = ()=>({
10
+ webhookId: null,
11
+ app: null,
12
+ entity: null,
13
+ eventName: null,
14
+ status: []
15
+ });
16
+ class WebhookDeliveriesPagePresenterImpl {
17
+ constructor(listPresenter, listDeliveriesUseCase, listAvailableEventsUseCase, resendDeliveryUseCase, listWebhooksUseCase){
18
+ this.listPresenter = listPresenter;
19
+ this.listDeliveriesUseCase = listDeliveriesUseCase;
20
+ this.listAvailableEventsUseCase = listAvailableEventsUseCase;
21
+ this.resendDeliveryUseCase = resendDeliveryUseCase;
22
+ this.listWebhooksUseCase = listWebhooksUseCase;
23
+ this._availableEvents = [];
24
+ this._availableWebhooks = [];
25
+ this._filters = createEmptyFilters();
26
+ this._resendingIds = new Set();
27
+ this._loading = false;
28
+ this._error = null;
29
+ makeAutoObservable(this, {
30
+ vm: computed
31
+ });
32
+ }
33
+ get vm() {
34
+ return {
35
+ availableWebhooks: this._availableWebhooks,
36
+ availableApps: this._computeAvailableApps(),
37
+ availableEntities: this._computeAvailableEntities(),
38
+ availableEventNames: this._computeAvailableEventNames(),
39
+ filters: {
40
+ ...this._filters
41
+ },
42
+ hasFilters: this._hasFilters(),
43
+ list: this.listPresenter.vm,
44
+ resendingIds: new Set(this._resendingIds),
45
+ loading: this._loading || this.listPresenter.vm.pagination.loading,
46
+ error: this._error
47
+ };
48
+ }
49
+ async init(webhookId) {
50
+ runInAction(()=>{
51
+ this._loading = true;
52
+ this._error = null;
53
+ if (webhookId) this._filters = {
54
+ ...this._filters,
55
+ webhookId
56
+ };
57
+ });
58
+ try {
59
+ const [events, webhooksResult] = await Promise.all([
60
+ this.listAvailableEventsUseCase.execute(),
61
+ this.listWebhooksUseCase.execute({
62
+ limit: 1000
63
+ })
64
+ ]);
65
+ runInAction(()=>{
66
+ this._availableEvents = events;
67
+ this._availableWebhooks = webhooksResult.items.map((w)=>({
68
+ value: w.id,
69
+ label: w.name
70
+ }));
71
+ });
72
+ } catch (err) {
73
+ runInAction(()=>{
74
+ this._error = err instanceof Error ? err.message : "Failed to load data.";
75
+ });
76
+ } finally{
77
+ runInAction(()=>{
78
+ this._loading = false;
79
+ });
80
+ }
81
+ const dataSource = new WebhookDeliveriesDataSource(this.listDeliveriesUseCase);
82
+ this.listPresenter.init({
83
+ dataSource,
84
+ initialSort: {
85
+ field: "createdOn",
86
+ direction: "DESC"
87
+ },
88
+ initialFilters: this._buildWhere(),
89
+ limit: 20
90
+ });
91
+ }
92
+ clearFilters() {
93
+ this._filters = createEmptyFilters();
94
+ this.listPresenter.actions.filter.clearAll();
95
+ }
96
+ setWebhookFilter(webhookId) {
97
+ this._filters = {
98
+ ...this._filters,
99
+ webhookId
100
+ };
101
+ this._syncFilters();
102
+ }
103
+ setAppFilter(app) {
104
+ this._filters = {
105
+ ...this._filters,
106
+ app,
107
+ entity: null,
108
+ eventName: null
109
+ };
110
+ this._syncFilters();
111
+ }
112
+ setEntityFilter(entity) {
113
+ this._filters = {
114
+ ...this._filters,
115
+ entity,
116
+ eventName: null
117
+ };
118
+ this._syncFilters();
119
+ }
120
+ setEventFilter(eventName) {
121
+ this._filters = {
122
+ ...this._filters,
123
+ eventName
124
+ };
125
+ this._syncFilters();
126
+ }
127
+ setStatusFilter(status) {
128
+ this._filters = {
129
+ ...this._filters,
130
+ status
131
+ };
132
+ this._syncFilters();
133
+ }
134
+ async loadMore() {
135
+ await this.listPresenter.actions.loadMore();
136
+ }
137
+ async resend(id) {
138
+ runInAction(()=>{
139
+ this._resendingIds.add(id);
140
+ });
141
+ try {
142
+ await this.resendDeliveryUseCase.execute(id);
143
+ await this.listPresenter.actions.refresh();
144
+ } finally{
145
+ runInAction(()=>{
146
+ this._resendingIds.delete(id);
147
+ });
148
+ }
149
+ }
150
+ _hasFilters() {
151
+ return null !== this._filters.webhookId || null !== this._filters.app || null !== this._filters.entity || null !== this._filters.eventName || this._filters.status.length > 0;
152
+ }
153
+ _syncFilters() {
154
+ const where = this._buildWhere();
155
+ this.listPresenter.actions.filter.clearAll();
156
+ for (const [key, value] of Object.entries(where))this.listPresenter.actions.filter.set(key, value);
157
+ }
158
+ _buildWhere() {
159
+ const where = {};
160
+ if (this._filters.webhookId) where.webhookId_eq = this._filters.webhookId;
161
+ const { app, entity, eventName } = this._filters;
162
+ if (app || entity || eventName) {
163
+ const matching = this._availableEvents.filter((event)=>{
164
+ if (app && event.app !== app) return false;
165
+ if (entity && event.entity !== entity) return false;
166
+ if (eventName && event.eventName !== eventName) return false;
167
+ return true;
168
+ });
169
+ if (matching.length > 0) where.eventType_in = matching.map((e)=>e.eventName);
170
+ }
171
+ if (this._filters.status.length > 0) where.status_in = this._filters.status;
172
+ return where;
173
+ }
174
+ _computeAvailableApps() {
175
+ const seen = new Set();
176
+ const result = [];
177
+ for (const event of this._availableEvents)if (!seen.has(event.app)) {
178
+ seen.add(event.app);
179
+ result.push({
180
+ value: event.app,
181
+ label: event.appLabel
182
+ });
183
+ }
184
+ return result;
185
+ }
186
+ _computeAvailableEntities() {
187
+ if (!this._filters.app) return [];
188
+ const seen = new Set();
189
+ const result = [];
190
+ for (const event of this._availableEvents)if (event.app === this._filters.app && !seen.has(event.entity)) {
191
+ seen.add(event.entity);
192
+ result.push({
193
+ value: event.entity,
194
+ label: event.entityLabel
195
+ });
196
+ }
197
+ return result;
198
+ }
199
+ _computeAvailableEventNames() {
200
+ if (!this._filters.app) return [];
201
+ return this._availableEvents.filter((event)=>{
202
+ if (event.app !== this._filters.app) return false;
203
+ if (this._filters.entity && event.entity !== this._filters.entity) return false;
204
+ return true;
205
+ }).map((event)=>({
206
+ value: event.eventName,
207
+ label: event.label
208
+ }));
209
+ }
210
+ }
211
+ const WebhookDeliveriesPagePresenter_WebhookDeliveriesPagePresenter = WebhookDeliveriesPagePresenter.createImplementation({
212
+ implementation: WebhookDeliveriesPagePresenterImpl,
213
+ dependencies: [
214
+ ListPresenter,
215
+ ListWebhookDeliveriesUseCase,
216
+ ListAvailableEventsUseCase,
217
+ ResendWebhookDeliveryUseCase,
218
+ ListWebhooksUseCase
219
+ ]
220
+ });
221
+ export { WebhookDeliveriesPagePresenter_WebhookDeliveriesPagePresenter as WebhookDeliveriesPagePresenter };
222
+
223
+ //# sourceMappingURL=WebhookDeliveriesPagePresenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js","sources":["../../../../src/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.ts"],"sourcesContent":["import { makeAutoObservable, computed, runInAction } from \"mobx\";\nimport { ListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { WebhookDelivery, WebhookEvent } from \"~/admin/shared/types.js\";\nimport { ListWebhookDeliveriesUseCase } from \"~/admin/features/listWebhookDeliveries/abstractions.js\";\nimport { ResendWebhookDeliveryUseCase } from \"~/admin/features/resendWebhookDelivery/abstractions.js\";\nimport { ListAvailableEventsUseCase } from \"~/admin/features/listAvailableEvents/abstractions.js\";\nimport { ListWebhooksUseCase } from \"~/admin/features/ListWebhooks/abstractions.js\";\nimport { WebhookDeliveriesDataSource } from \"./WebhookDeliveriesDataSource.js\";\nimport {\n WebhookDeliveriesPagePresenter as Abstraction,\n type IWebhookDeliveriesPagePresenter,\n type IWebhookDeliveriesPageViewModel,\n type IDeliveryFilterOption,\n type IDeliveryPageFilters\n} from \"./abstractions.js\";\n\nconst createEmptyFilters = (): IDeliveryPageFilters => {\n return {\n webhookId: null,\n app: null,\n entity: null,\n eventName: null,\n status: []\n };\n};\n\nclass WebhookDeliveriesPagePresenterImpl implements IWebhookDeliveriesPagePresenter {\n private _availableEvents: WebhookEvent[] = [];\n private _availableWebhooks: IDeliveryFilterOption[] = [];\n private _filters: IDeliveryPageFilters = createEmptyFilters();\n private _resendingIds: Set<string> = new Set();\n private _loading = false;\n private _error: string | null = null;\n\n constructor(\n private readonly listPresenter: ListPresenter.Interface<WebhookDelivery>,\n private readonly listDeliveriesUseCase: ListWebhookDeliveriesUseCase.Interface,\n private readonly listAvailableEventsUseCase: ListAvailableEventsUseCase.Interface,\n private readonly resendDeliveryUseCase: ResendWebhookDeliveryUseCase.Interface,\n private readonly listWebhooksUseCase: ListWebhooksUseCase.Interface\n ) {\n makeAutoObservable(this, { vm: computed });\n }\n\n get vm(): IWebhookDeliveriesPageViewModel {\n return {\n availableWebhooks: this._availableWebhooks,\n availableApps: this._computeAvailableApps(),\n availableEntities: this._computeAvailableEntities(),\n availableEventNames: this._computeAvailableEventNames(),\n filters: { ...this._filters },\n hasFilters: this._hasFilters(),\n list: this.listPresenter.vm,\n resendingIds: new Set(this._resendingIds),\n loading: this._loading || this.listPresenter.vm.pagination.loading,\n error: this._error\n };\n }\n\n public async init(webhookId?: string): Promise<void> {\n runInAction(() => {\n this._loading = true;\n this._error = null;\n if (webhookId) {\n this._filters = { ...this._filters, webhookId };\n }\n });\n try {\n const [events, webhooksResult] = await Promise.all([\n this.listAvailableEventsUseCase.execute(),\n this.listWebhooksUseCase.execute({ limit: 1000 })\n ]);\n runInAction(() => {\n this._availableEvents = events;\n this._availableWebhooks = webhooksResult.items.map(w => ({\n value: w.id,\n label: w.name\n }));\n });\n } catch (err) {\n runInAction(() => {\n this._error = err instanceof Error ? err.message : \"Failed to load data.\";\n });\n } finally {\n runInAction(() => {\n this._loading = false;\n });\n }\n\n const dataSource = new WebhookDeliveriesDataSource(this.listDeliveriesUseCase);\n this.listPresenter.init({\n dataSource,\n initialSort: { field: \"createdOn\", direction: \"DESC\" },\n initialFilters: this._buildWhere(),\n limit: 20\n });\n }\n\n public clearFilters(): void {\n this._filters = createEmptyFilters();\n this.listPresenter.actions.filter.clearAll();\n }\n\n public setWebhookFilter(webhookId: string | null): void {\n this._filters = { ...this._filters, webhookId };\n this._syncFilters();\n }\n\n public setAppFilter(app: string | null): void {\n this._filters = { ...this._filters, app, entity: null, eventName: null };\n this._syncFilters();\n }\n\n public setEntityFilter(entity: string | null): void {\n this._filters = { ...this._filters, entity, eventName: null };\n this._syncFilters();\n }\n\n public setEventFilter(eventName: string | null): void {\n this._filters = { ...this._filters, eventName };\n this._syncFilters();\n }\n\n public setStatusFilter(status: string[]): void {\n this._filters = { ...this._filters, status };\n this._syncFilters();\n }\n\n public async loadMore(): Promise<void> {\n await this.listPresenter.actions.loadMore();\n }\n\n public async resend(id: string): Promise<void> {\n runInAction(() => {\n this._resendingIds.add(id);\n });\n try {\n await this.resendDeliveryUseCase.execute(id);\n await this.listPresenter.actions.refresh();\n } finally {\n runInAction(() => {\n this._resendingIds.delete(id);\n });\n }\n }\n\n private _hasFilters(): boolean {\n return (\n this._filters.webhookId !== null ||\n this._filters.app !== null ||\n this._filters.entity !== null ||\n this._filters.eventName !== null ||\n this._filters.status.length > 0\n );\n }\n\n private _syncFilters(): void {\n const where = this._buildWhere();\n this.listPresenter.actions.filter.clearAll();\n for (const [key, value] of Object.entries(where)) {\n this.listPresenter.actions.filter.set(key, value);\n }\n }\n\n private _buildWhere(): Record<string, unknown> {\n const where: Record<string, unknown> = {};\n\n if (this._filters.webhookId) {\n where.webhookId_eq = this._filters.webhookId;\n }\n\n const { app, entity, eventName } = this._filters;\n\n if (app || entity || eventName) {\n const matching = this._availableEvents.filter(event => {\n if (app && event.app !== app) {\n return false;\n }\n if (entity && event.entity !== entity) {\n return false;\n }\n if (eventName && event.eventName !== eventName) {\n return false;\n }\n return true;\n });\n if (matching.length > 0) {\n where.eventType_in = matching.map(e => e.eventName);\n }\n }\n\n if (this._filters.status.length > 0) {\n where.status_in = this._filters.status;\n }\n\n return where;\n }\n\n private _computeAvailableApps(): IDeliveryFilterOption[] {\n const seen = new Set<string>();\n const result: IDeliveryFilterOption[] = [];\n for (const event of this._availableEvents) {\n if (!seen.has(event.app)) {\n seen.add(event.app);\n result.push({ value: event.app, label: event.appLabel });\n }\n }\n return result;\n }\n\n private _computeAvailableEntities(): IDeliveryFilterOption[] {\n if (!this._filters.app) {\n return [];\n }\n const seen = new Set<string>();\n const result: IDeliveryFilterOption[] = [];\n for (const event of this._availableEvents) {\n if (event.app === this._filters.app && !seen.has(event.entity)) {\n seen.add(event.entity);\n result.push({ value: event.entity, label: event.entityLabel });\n }\n }\n return result;\n }\n\n private _computeAvailableEventNames(): IDeliveryFilterOption[] {\n if (!this._filters.app) {\n return [];\n }\n return this._availableEvents\n .filter(event => {\n if (event.app !== this._filters.app) {\n return false;\n }\n if (this._filters.entity && event.entity !== this._filters.entity) {\n return false;\n }\n return true;\n })\n .map(event => ({ value: event.eventName, label: event.label }));\n }\n}\n\nexport const WebhookDeliveriesPagePresenter = Abstraction.createImplementation({\n implementation: WebhookDeliveriesPagePresenterImpl,\n dependencies: [\n ListPresenter,\n ListWebhookDeliveriesUseCase,\n ListAvailableEventsUseCase,\n ResendWebhookDeliveryUseCase,\n ListWebhooksUseCase\n ]\n});\n"],"names":["createEmptyFilters","WebhookDeliveriesPagePresenterImpl","listPresenter","listDeliveriesUseCase","listAvailableEventsUseCase","resendDeliveryUseCase","listWebhooksUseCase","Set","makeAutoObservable","computed","webhookId","runInAction","events","webhooksResult","Promise","w","err","Error","dataSource","WebhookDeliveriesDataSource","app","entity","eventName","status","id","where","key","value","Object","matching","event","e","seen","result","WebhookDeliveriesPagePresenter","Abstraction","ListPresenter","ListWebhookDeliveriesUseCase","ListAvailableEventsUseCase","ResendWebhookDeliveryUseCase","ListWebhooksUseCase"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { WebhookDelivery } from "../../../admin/shared/types.js";
2
+ import type { IListViewModel } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
3
+ export interface IDeliveryPageFilters {
4
+ webhookId: string | null;
5
+ app: string | null;
6
+ entity: string | null;
7
+ eventName: string | null;
8
+ status: string[];
9
+ }
10
+ export interface IDeliveryFilterOption {
11
+ value: string;
12
+ label: string;
13
+ }
14
+ export interface IWebhookDeliveriesPageViewModel {
15
+ availableWebhooks: IDeliveryFilterOption[];
16
+ availableApps: IDeliveryFilterOption[];
17
+ availableEntities: IDeliveryFilterOption[];
18
+ availableEventNames: IDeliveryFilterOption[];
19
+ filters: IDeliveryPageFilters;
20
+ list: IListViewModel<WebhookDelivery>;
21
+ resendingIds: Set<string>;
22
+ hasFilters: boolean;
23
+ loading: boolean;
24
+ error: string | null;
25
+ }
26
+ export interface IWebhookDeliveriesPagePresenter {
27
+ vm: IWebhookDeliveriesPageViewModel;
28
+ init(webhookId?: string): Promise<void>;
29
+ setWebhookFilter(webhookId: string | null): void;
30
+ setAppFilter(app: string | null): void;
31
+ setEntityFilter(entity: string | null): void;
32
+ setEventFilter(eventName: string | null): void;
33
+ setStatusFilter(status: string[]): void;
34
+ clearFilters(): void;
35
+ loadMore(): Promise<void>;
36
+ resend(id: string): Promise<void>;
37
+ }
38
+ export declare const WebhookDeliveriesPagePresenter: import("@webiny/di").Abstraction<IWebhookDeliveriesPagePresenter>;
39
+ export declare namespace WebhookDeliveriesPagePresenter {
40
+ type Interface = IWebhookDeliveriesPagePresenter;
41
+ type ViewModel = IWebhookDeliveriesPageViewModel;
42
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/admin";
2
+ const WebhookDeliveriesPagePresenter = createAbstraction("WebhookDeliveriesPagePresenter");
3
+ export { WebhookDeliveriesPagePresenter };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WebhookDeliveriesPage/abstractions.js","sources":["../../../../src/admin/presentation/WebhookDeliveriesPage/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\nimport type { IListViewModel } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\n\nexport interface IDeliveryPageFilters {\n webhookId: string | null;\n app: string | null;\n entity: string | null;\n eventName: string | null;\n status: string[];\n}\n\nexport interface IDeliveryFilterOption {\n value: string;\n label: string;\n}\n\nexport interface IWebhookDeliveriesPageViewModel {\n availableWebhooks: IDeliveryFilterOption[];\n availableApps: IDeliveryFilterOption[];\n availableEntities: IDeliveryFilterOption[];\n availableEventNames: IDeliveryFilterOption[];\n filters: IDeliveryPageFilters;\n list: IListViewModel<WebhookDelivery>;\n resendingIds: Set<string>;\n hasFilters: boolean;\n loading: boolean;\n error: string | null;\n}\n\nexport interface IWebhookDeliveriesPagePresenter {\n vm: IWebhookDeliveriesPageViewModel;\n init(webhookId?: string): Promise<void>;\n setWebhookFilter(webhookId: string | null): void;\n setAppFilter(app: string | null): void;\n setEntityFilter(entity: string | null): void;\n setEventFilter(eventName: string | null): void;\n setStatusFilter(status: string[]): void;\n clearFilters(): void;\n loadMore(): Promise<void>;\n resend(id: string): Promise<void>;\n}\n\nexport const WebhookDeliveriesPagePresenter = createAbstraction<IWebhookDeliveriesPagePresenter>(\n \"WebhookDeliveriesPagePresenter\"\n);\n\nexport namespace WebhookDeliveriesPagePresenter {\n export type Interface = IWebhookDeliveriesPagePresenter;\n export type ViewModel = IWebhookDeliveriesPageViewModel;\n}\n"],"names":["WebhookDeliveriesPagePresenter","createAbstraction"],"mappings":";AA2CO,MAAMA,iCAAiCC,kBAC1C"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { WebhookDelivery } from "../../../../admin/shared/types.js";
3
+ interface DeliveryAccordionRowProps {
4
+ delivery: WebhookDelivery;
5
+ open: boolean;
6
+ resending: boolean;
7
+ onOpenChange: (open: boolean) => void;
8
+ onResend: (id: string) => void;
9
+ }
10
+ export declare const DeliveryAccordionRow: ({ delivery, open, resending, onOpenChange, onResend }: DeliveryAccordionRowProps) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1,36 @@
1
+ import react from "react";
2
+ import { Accordion, Tag, Text, TimeAgo } from "@webiny/admin-ui";
3
+ import { ReactComponent } from "@webiny/icons/replay.svg";
4
+ import { DeliveryDetailContent } from "./DeliveryDetailContent.js";
5
+ import { statusVariant } from "./statusVariant.js";
6
+ const DeliveryAccordionRow = ({ delivery, open, resending, onOpenChange, onResend })=>/*#__PURE__*/ react.createElement(Accordion.Item, {
7
+ open: open,
8
+ onOpenChange: onOpenChange,
9
+ title: delivery.eventType,
10
+ description: /*#__PURE__*/ react.createElement("div", {
11
+ className: "flex items-center gap-sm"
12
+ }, /*#__PURE__*/ react.createElement(Tag, {
13
+ variant: statusVariant(delivery.status),
14
+ content: delivery.status
15
+ }), null !== delivery.responseStatus ? /*#__PURE__*/ react.createElement(Text, {
16
+ size: "sm"
17
+ }, "HTTP ", delivery.responseStatus) : null, delivery.responseTime ? /*#__PURE__*/ react.createElement(Text, {
18
+ size: "sm"
19
+ }, delivery.responseTime, "ms") : null, /*#__PURE__*/ react.createElement(Text, {
20
+ size: "sm",
21
+ className: "text-neutral-strong"
22
+ }, /*#__PURE__*/ react.createElement(TimeAgo, {
23
+ datetime: delivery.createdOn
24
+ }))),
25
+ actions: /*#__PURE__*/ react.createElement(Accordion.Item.Action, {
26
+ icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
27
+ onClick: ()=>onResend(delivery.id),
28
+ "aria-label": "Resend delivery",
29
+ disabled: resending
30
+ })
31
+ }, /*#__PURE__*/ react.createElement(DeliveryDetailContent, {
32
+ delivery: delivery
33
+ }));
34
+ export { DeliveryAccordionRow };
35
+
36
+ //# sourceMappingURL=DeliveryAccordionRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js","sources":["../../../../../src/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.tsx"],"sourcesContent":["import React from \"react\";\nimport { Accordion, Tag, Text, TimeAgo } from \"@webiny/admin-ui\";\nimport { ReactComponent as ReplayIcon } from \"@webiny/icons/replay.svg\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\nimport { DeliveryDetailContent } from \"./DeliveryDetailContent.js\";\nimport { statusVariant } from \"./statusVariant.js\";\n\ninterface DeliveryAccordionRowProps {\n delivery: WebhookDelivery;\n open: boolean;\n resending: boolean;\n onOpenChange: (open: boolean) => void;\n onResend: (id: string) => void;\n}\n\nexport const DeliveryAccordionRow = ({\n delivery,\n open,\n resending,\n onOpenChange,\n onResend\n}: DeliveryAccordionRowProps) => {\n return (\n <Accordion.Item\n open={open}\n onOpenChange={onOpenChange}\n title={delivery.eventType}\n description={\n <div className=\"flex items-center gap-sm\">\n <Tag variant={statusVariant(delivery.status)} content={delivery.status} />\n {delivery.responseStatus !== null ? (\n <Text size=\"sm\">HTTP {delivery.responseStatus}</Text>\n ) : null}\n {delivery.responseTime ? (\n <Text size=\"sm\">{delivery.responseTime}ms</Text>\n ) : null}\n <Text size=\"sm\" className=\"text-neutral-strong\">\n <TimeAgo datetime={delivery.createdOn} />\n </Text>\n </div>\n }\n actions={\n <Accordion.Item.Action\n icon={<ReplayIcon />}\n onClick={() => onResend(delivery.id)}\n aria-label=\"Resend delivery\"\n disabled={resending}\n />\n }\n >\n <DeliveryDetailContent delivery={delivery} />\n </Accordion.Item>\n );\n};\n"],"names":["DeliveryAccordionRow","delivery","open","resending","onOpenChange","onResend","Accordion","Tag","statusVariant","Text","TimeAgo","ReplayIcon","DeliveryDetailContent"],"mappings":";;;;;AAeO,MAAMA,uBAAuB,CAAC,EACjCC,QAAQ,EACRC,IAAI,EACJC,SAAS,EACTC,YAAY,EACZC,QAAQ,EACgB,GACjB,WAAP,GACI,oBAACC,UAAU,IAAI;QACX,MAAMJ;QACN,cAAcE;QACd,OAAOH,SAAS,SAAS;QACzB,2BACI,oBAAC;YAAI,WAAU;yBACX,oBAACM,KAAGA;YAAC,SAASC,cAAcP,SAAS,MAAM;YAAG,SAASA,SAAS,MAAM;YACrEA,AAA4B,SAA5BA,SAAS,cAAc,GAAY,WAAP,GACzB,oBAACQ,MAAIA;YAAC,MAAK;WAAK,SAAMR,SAAS,cAAc,IAC7C,MACHA,SAAS,YAAY,GAAG,WAAH,GAClB,oBAACQ,MAAIA;YAAC,MAAK;WAAMR,SAAS,YAAY,EAAC,QACvC,oBACJ,oBAACQ,MAAIA;YAAC,MAAK;YAAK,WAAU;yBACtB,oBAACC,SAAOA;YAAC,UAAUT,SAAS,SAAS;;QAIjD,uBACI,oBAACK,UAAU,IAAI,CAAC,MAAM;YAClB,oBAAM,oBAACK,gBAAUA;YACjB,SAAS,IAAMN,SAASJ,SAAS,EAAE;YACnC,cAAW;YACX,UAAUE;;qBAIlB,oBAACS,uBAAqBA;QAAC,UAAUX"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { IWebhookDeliveriesPagePresenter } from "../abstractions.js";
3
+ interface DeliveryBottomInfoBarProps {
4
+ presenter: IWebhookDeliveriesPagePresenter;
5
+ }
6
+ export declare const DeliveryBottomInfoBar: (({ presenter }: DeliveryBottomInfoBarProps) => React.JSX.Element | null) & {
7
+ displayName: string;
8
+ };
9
+ export {};
@@ -0,0 +1,43 @@
1
+ import react from "react";
2
+ import { observer } from "mobx-react-lite";
3
+ import { Loader, Separator, Text } from "@webiny/admin-ui";
4
+ const DeliveryBottomInfoBar_DeliveryBottomInfoBar = observer(function({ presenter }) {
5
+ const { vm } = presenter;
6
+ const { pagination } = vm.list;
7
+ if (pagination.loading && 0 === vm.list.rows.length) return null;
8
+ return /*#__PURE__*/ react.createElement("div", {
9
+ className: "sticky bottom-0 z-5 bg-neutral-base w-full transform translate-z-0 overflow-hidden"
10
+ }, /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement("div", {
11
+ className: "h-xl px-md py-sm flex items-center justify-between"
12
+ }, /*#__PURE__*/ react.createElement(DeliveryMeta, {
13
+ loading: pagination.loading,
14
+ currentCount: pagination.currentCount,
15
+ totalCount: pagination.totalCount
16
+ }), /*#__PURE__*/ react.createElement(DeliveryLoadingStatus, {
17
+ loading: pagination.loadingMore
18
+ })));
19
+ });
20
+ const DeliveryMeta = ({ loading, currentCount, totalCount })=>{
21
+ if (loading) return null;
22
+ const label = 1 === totalCount ? "delivery" : "deliveries";
23
+ return /*#__PURE__*/ react.createElement(Text, {
24
+ size: "sm",
25
+ as: "div",
26
+ className: "text-neutral-strong"
27
+ }, `Showing ${currentCount} out of ${totalCount} ${label}.`);
28
+ };
29
+ const DeliveryLoadingStatus = ({ loading })=>{
30
+ if (!loading) return null;
31
+ return /*#__PURE__*/ react.createElement("div", {
32
+ className: "flex items-center gap-sm"
33
+ }, /*#__PURE__*/ react.createElement(Text, {
34
+ size: "sm",
35
+ as: "div",
36
+ className: "text-neutral-strong"
37
+ }, "Loading more deliveries..."), /*#__PURE__*/ react.createElement(Loader, {
38
+ size: "xs"
39
+ }));
40
+ };
41
+ export { DeliveryBottomInfoBar_DeliveryBottomInfoBar as DeliveryBottomInfoBar };
42
+
43
+ //# sourceMappingURL=DeliveryBottomInfoBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js","sources":["../../../../../src/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.tsx"],"sourcesContent":["import React from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { Loader, Separator, Text } from \"@webiny/admin-ui\";\nimport type { IWebhookDeliveriesPagePresenter } from \"../abstractions.js\";\n\ninterface DeliveryBottomInfoBarProps {\n presenter: IWebhookDeliveriesPagePresenter;\n}\n\nexport const DeliveryBottomInfoBar = observer(function DeliveryBottomInfoBar({\n presenter\n}: DeliveryBottomInfoBarProps) {\n const { vm } = presenter;\n const { pagination } = vm.list;\n\n if (pagination.loading && vm.list.rows.length === 0) {\n return null;\n }\n\n return (\n <div className=\"sticky bottom-0 z-5 bg-neutral-base w-full transform translate-z-0 overflow-hidden\">\n <Separator />\n <div className=\"h-xl px-md py-sm flex items-center justify-between\">\n <DeliveryMeta\n loading={pagination.loading}\n currentCount={pagination.currentCount}\n totalCount={pagination.totalCount}\n />\n <DeliveryLoadingStatus loading={pagination.loadingMore} />\n </div>\n </div>\n );\n});\n\ninterface DeliveryMetaProps {\n loading: boolean;\n currentCount: number;\n totalCount: number;\n}\n\nconst DeliveryMeta = ({ loading, currentCount, totalCount }: DeliveryMetaProps) => {\n if (loading) {\n return null;\n }\n\n const label = totalCount === 1 ? \"delivery\" : \"deliveries\";\n\n return (\n <Text size=\"sm\" as=\"div\" className=\"text-neutral-strong\">\n {`Showing ${currentCount} out of ${totalCount} ${label}.`}\n </Text>\n );\n};\n\ninterface DeliveryLoadingStatusProps {\n loading: boolean;\n}\n\nconst DeliveryLoadingStatus = ({ loading }: DeliveryLoadingStatusProps) => {\n if (!loading) {\n return null;\n }\n\n return (\n <div className=\"flex items-center gap-sm\">\n <Text size=\"sm\" as=\"div\" className=\"text-neutral-strong\">\n Loading more deliveries...\n </Text>\n <Loader size=\"xs\" />\n </div>\n );\n};\n"],"names":["DeliveryBottomInfoBar","observer","presenter","vm","pagination","Separator","DeliveryMeta","DeliveryLoadingStatus","loading","currentCount","totalCount","label","Text","Loader"],"mappings":";;;AASO,MAAMA,8CAAwBC,SAAS,SAA+B,EACzEC,SAAS,EACgB;IACzB,MAAM,EAAEC,EAAE,EAAE,GAAGD;IACf,MAAM,EAAEE,UAAU,EAAE,GAAGD,GAAG,IAAI;IAE9B,IAAIC,WAAW,OAAO,IAAID,AAAwB,MAAxBA,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EACzC,OAAO;IAGX,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAACE,WAASA,OAAAA,WAAAA,GACV,oBAAC;QAAI,WAAU;qBACX,oBAACC,cAAYA;QACT,SAASF,WAAW,OAAO;QAC3B,cAAcA,WAAW,YAAY;QACrC,YAAYA,WAAW,UAAU;sBAErC,oBAACG,uBAAqBA;QAAC,SAASH,WAAW,WAAW;;AAItE;AAQA,MAAME,eAAe,CAAC,EAAEE,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAqB;IAC1E,IAAIF,SACA,OAAO;IAGX,MAAMG,QAAQD,AAAe,MAAfA,aAAmB,aAAa;IAE9C,OAAO,WAAP,GACI,oBAACE,MAAIA;QAAC,MAAK;QAAK,IAAG;QAAM,WAAU;OAC9B,CAAC,QAAQ,EAAEH,aAAa,QAAQ,EAAEC,WAAW,CAAC,EAAEC,MAAM,CAAC,CAAC;AAGrE;AAMA,MAAMJ,wBAAwB,CAAC,EAAEC,OAAO,EAA8B;IAClE,IAAI,CAACA,SACD,OAAO;IAGX,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAACI,MAAIA;QAAC,MAAK;QAAK,IAAG;QAAM,WAAU;OAAsB,6CAGzD,oBAACC,QAAMA;QAAC,MAAK;;AAGzB"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { WebhookDelivery } from "../../../../admin/shared/types.js";
3
+ interface DeliveryDetailContentProps {
4
+ delivery: WebhookDelivery;
5
+ }
6
+ export declare const DeliveryDetailContent: ({ delivery }: DeliveryDetailContentProps) => React.JSX.Element;
7
+ export {};
@@ -0,0 +1,76 @@
1
+ import react from "react";
2
+ import { Separator, Tabs } from "@webiny/admin-ui";
3
+ const formatJson = (value)=>{
4
+ if (null == value) return "—";
5
+ if ("string" == typeof value) try {
6
+ return JSON.stringify(JSON.parse(value), null, 2);
7
+ } catch {
8
+ return value;
9
+ }
10
+ return JSON.stringify(value, null, 2);
11
+ };
12
+ const getContentType = (responseHeaders)=>{
13
+ if (!responseHeaders || "object" != typeof responseHeaders) return null;
14
+ const headers = responseHeaders;
15
+ const key = Object.keys(headers).find((k)=>"content-type" === k.toLowerCase());
16
+ if (!key) return null;
17
+ return headers[key].split(";")[0].trim().toLowerCase();
18
+ };
19
+ const getContentTypeLabel = (contentType)=>{
20
+ if (!contentType) return null;
21
+ if (contentType.includes("json")) return "JSON";
22
+ if (contentType.includes("html")) return "HTML";
23
+ if (contentType.includes("xml")) return "XML";
24
+ if (contentType.includes("plain")) return "TEXT";
25
+ return null;
26
+ };
27
+ const renderResponseBody = (body, contentType)=>{
28
+ if (null === body) return "—";
29
+ if (!contentType || contentType.includes("json")) return formatJson(body);
30
+ return body;
31
+ };
32
+ const DeliveryDetailContent = ({ delivery })=>{
33
+ const contentType = getContentType(delivery.responseHeaders);
34
+ const contentTypeLabel = getContentTypeLabel(contentType);
35
+ return /*#__PURE__*/ react.createElement("div", {
36
+ className: "flex flex-col gap-md"
37
+ }, /*#__PURE__*/ react.createElement(Separator, null), /*#__PURE__*/ react.createElement(Tabs, {
38
+ tabs: [
39
+ /*#__PURE__*/ react.createElement(Tabs.Tab, {
40
+ key: "payload",
41
+ value: "payload",
42
+ trigger: "Payload",
43
+ content: /*#__PURE__*/ react.createElement("pre", {
44
+ className: "bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[250px]"
45
+ }, formatJson(delivery.payload))
46
+ }),
47
+ /*#__PURE__*/ react.createElement(Tabs.Tab, {
48
+ key: "req-headers",
49
+ value: "req-headers",
50
+ trigger: "Request Headers",
51
+ content: /*#__PURE__*/ react.createElement("pre", {
52
+ className: "bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[200px]"
53
+ }, formatJson(delivery.requestHeaders))
54
+ }),
55
+ /*#__PURE__*/ react.createElement(Tabs.Tab, {
56
+ key: "resp-headers",
57
+ value: "resp-headers",
58
+ trigger: "Response Headers",
59
+ content: /*#__PURE__*/ react.createElement("pre", {
60
+ className: "bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[200px]"
61
+ }, formatJson(delivery.responseHeaders))
62
+ }),
63
+ /*#__PURE__*/ react.createElement(Tabs.Tab, {
64
+ key: "resp-body",
65
+ value: "resp-body",
66
+ trigger: contentTypeLabel ? `Response Body (${contentTypeLabel})` : "Response Body",
67
+ content: /*#__PURE__*/ react.createElement("pre", {
68
+ className: "bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[200px]"
69
+ }, renderResponseBody(delivery.responseBody, contentType))
70
+ })
71
+ ]
72
+ }));
73
+ };
74
+ export { DeliveryDetailContent };
75
+
76
+ //# sourceMappingURL=DeliveryDetailContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js","sources":["../../../../../src/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator, Tabs } from \"@webiny/admin-ui\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\n\ninterface DeliveryDetailContentProps {\n delivery: WebhookDelivery;\n}\n\nconst formatJson = (value: unknown): string => {\n if (value === null || value === undefined) {\n return \"—\";\n }\n if (typeof value === \"string\") {\n try {\n return JSON.stringify(JSON.parse(value), null, 2);\n } catch {\n return value;\n }\n }\n return JSON.stringify(value, null, 2);\n};\n\nconst getContentType = (responseHeaders: unknown): string | null => {\n if (!responseHeaders || typeof responseHeaders !== \"object\") {\n return null;\n }\n const headers = responseHeaders as Record<string, string>;\n const key = Object.keys(headers).find(k => k.toLowerCase() === \"content-type\");\n if (!key) {\n return null;\n }\n return headers[key].split(\";\")[0].trim().toLowerCase();\n};\n\nconst getContentTypeLabel = (contentType: string | null): string | null => {\n if (!contentType) {\n return null;\n }\n if (contentType.includes(\"json\")) {\n return \"JSON\";\n }\n if (contentType.includes(\"html\")) {\n return \"HTML\";\n }\n if (contentType.includes(\"xml\")) {\n return \"XML\";\n }\n if (contentType.includes(\"plain\")) {\n return \"TEXT\";\n }\n return null;\n};\n\nconst renderResponseBody = (body: string | null, contentType: string | null): string => {\n if (body === null) {\n return \"—\";\n }\n if (!contentType || contentType.includes(\"json\")) {\n return formatJson(body);\n }\n return body;\n};\n\nexport const DeliveryDetailContent = ({ delivery }: DeliveryDetailContentProps) => {\n const contentType = getContentType(delivery.responseHeaders);\n const contentTypeLabel = getContentTypeLabel(contentType);\n\n return (\n <div className=\"flex flex-col gap-md\">\n <Separator />\n <Tabs\n tabs={[\n <Tabs.Tab\n key=\"payload\"\n value=\"payload\"\n trigger=\"Payload\"\n content={\n <pre className=\"bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[250px]\">\n {formatJson(delivery.payload)}\n </pre>\n }\n />,\n <Tabs.Tab\n key=\"req-headers\"\n value=\"req-headers\"\n trigger=\"Request Headers\"\n content={\n <pre className=\"bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[200px]\">\n {formatJson(delivery.requestHeaders)}\n </pre>\n }\n />,\n <Tabs.Tab\n key=\"resp-headers\"\n value=\"resp-headers\"\n trigger=\"Response Headers\"\n content={\n <pre className=\"bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[200px]\">\n {formatJson(delivery.responseHeaders)}\n </pre>\n }\n />,\n <Tabs.Tab\n key=\"resp-body\"\n value=\"resp-body\"\n trigger={\n contentTypeLabel\n ? `Response Body (${contentTypeLabel})`\n : \"Response Body\"\n }\n content={\n <pre className=\"bg-neutral-light rounded-sm p-sm text-xs overflow-auto max-h-[200px]\">\n {renderResponseBody(delivery.responseBody, contentType)}\n </pre>\n }\n />\n ]}\n />\n </div>\n );\n};\n"],"names":["formatJson","value","JSON","getContentType","responseHeaders","headers","key","Object","k","getContentTypeLabel","contentType","renderResponseBody","body","DeliveryDetailContent","delivery","contentTypeLabel","Separator","Tabs"],"mappings":";;AAQA,MAAMA,aAAa,CAACC;IAChB,IAAIA,QAAAA,OACA,OAAO;IAEX,IAAI,AAAiB,YAAjB,OAAOA,OACP,IAAI;QACA,OAAOC,KAAK,SAAS,CAACA,KAAK,KAAK,CAACD,QAAQ,MAAM;IACnD,EAAE,OAAM;QACJ,OAAOA;IACX;IAEJ,OAAOC,KAAK,SAAS,CAACD,OAAO,MAAM;AACvC;AAEA,MAAME,iBAAiB,CAACC;IACpB,IAAI,CAACA,mBAAmB,AAA2B,YAA3B,OAAOA,iBAC3B,OAAO;IAEX,MAAMC,UAAUD;IAChB,MAAME,MAAMC,OAAO,IAAI,CAACF,SAAS,IAAI,CAACG,CAAAA,IAAKA,AAAoB,mBAApBA,EAAE,WAAW;IACxD,IAAI,CAACF,KACD,OAAO;IAEX,OAAOD,OAAO,CAACC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,WAAW;AACxD;AAEA,MAAMG,sBAAsB,CAACC;IACzB,IAAI,CAACA,aACD,OAAO;IAEX,IAAIA,YAAY,QAAQ,CAAC,SACrB,OAAO;IAEX,IAAIA,YAAY,QAAQ,CAAC,SACrB,OAAO;IAEX,IAAIA,YAAY,QAAQ,CAAC,QACrB,OAAO;IAEX,IAAIA,YAAY,QAAQ,CAAC,UACrB,OAAO;IAEX,OAAO;AACX;AAEA,MAAMC,qBAAqB,CAACC,MAAqBF;IAC7C,IAAIE,AAAS,SAATA,MACA,OAAO;IAEX,IAAI,CAACF,eAAeA,YAAY,QAAQ,CAAC,SACrC,OAAOV,WAAWY;IAEtB,OAAOA;AACX;AAEO,MAAMC,wBAAwB,CAAC,EAAEC,QAAQ,EAA8B;IAC1E,MAAMJ,cAAcP,eAAeW,SAAS,eAAe;IAC3D,MAAMC,mBAAmBN,oBAAoBC;IAE7C,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAACM,WAASA,OAAAA,WAAAA,GACV,oBAACC,MAAIA;QACD,MAAM;0BACF,oBAACA,KAAK,GAAG;gBACL,KAAI;gBACJ,OAAM;gBACN,SAAQ;gBACR,uBACI,oBAAC;oBAAI,WAAU;mBACVjB,WAAWc,SAAS,OAAO;;0BAIxC,oBAACG,KAAK,GAAG;gBACL,KAAI;gBACJ,OAAM;gBACN,SAAQ;gBACR,uBACI,oBAAC;oBAAI,WAAU;mBACVjB,WAAWc,SAAS,cAAc;;0BAI/C,oBAACG,KAAK,GAAG;gBACL,KAAI;gBACJ,OAAM;gBACN,SAAQ;gBACR,uBACI,oBAAC;oBAAI,WAAU;mBACVjB,WAAWc,SAAS,eAAe;;0BAIhD,oBAACG,KAAK,GAAG;gBACL,KAAI;gBACJ,OAAM;gBACN,SACIF,mBACM,CAAC,eAAe,EAAEA,iBAAiB,CAAC,CAAC,GACrC;gBAEV,uBACI,oBAAC;oBAAI,WAAU;mBACVJ,mBAAmBG,SAAS,YAAY,EAAEJ;;SAI1D;;AAIjB"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { IWebhookDeliveriesPagePresenter } from "../abstractions.js";
3
+ interface DeliveryFiltersProps {
4
+ presenter: IWebhookDeliveriesPagePresenter;
5
+ }
6
+ export declare const DeliveryFilters: (({ presenter }: DeliveryFiltersProps) => React.JSX.Element) & {
7
+ displayName: string;
8
+ };
9
+ export {};