@webiny/webhooks 6.4.0-beta.3 → 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 (142) hide show
  1. package/admin/WebhookRoutes.js +13 -2
  2. package/admin/WebhookRoutes.js.map +1 -1
  3. package/admin/Webhooks.js +0 -3
  4. package/admin/Webhooks.js.map +1 -1
  5. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +1 -0
  6. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js.map +1 -1
  7. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js +1 -1
  8. package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js.map +1 -1
  9. package/admin/features/listWebhookDeliveries/abstractions.d.ts +6 -1
  10. package/admin/features/listWebhookDeliveries/abstractions.js.map +1 -1
  11. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js +1 -0
  12. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js.map +1 -1
  13. package/admin/features/updateWebhookSettings/abstractions.d.ts +1 -0
  14. package/admin/features/updateWebhookSettings/abstractions.js.map +1 -1
  15. package/admin/presentation/{WebhookDeliveries → WebhookDeliveriesPage}/WebhookDeliveriesDataSource.d.ts +1 -2
  16. package/admin/presentation/{WebhookDeliveries → WebhookDeliveriesPage}/WebhookDeliveriesDataSource.js +5 -7
  17. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.js.map +1 -0
  18. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.d.ts +41 -0
  19. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js +223 -0
  20. package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js.map +1 -0
  21. package/admin/presentation/WebhookDeliveriesPage/abstractions.d.ts +42 -0
  22. package/admin/presentation/WebhookDeliveriesPage/abstractions.js +5 -0
  23. package/admin/presentation/WebhookDeliveriesPage/abstractions.js.map +1 -0
  24. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.d.ts +11 -0
  25. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js +36 -0
  26. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js.map +1 -0
  27. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.d.ts +9 -0
  28. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js +43 -0
  29. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js.map +1 -0
  30. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.d.ts +7 -0
  31. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js +76 -0
  32. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js.map +1 -0
  33. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.d.ts +9 -0
  34. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js +85 -0
  35. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js.map +1 -0
  36. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.d.ts +9 -0
  37. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js +61 -0
  38. package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js.map +1 -0
  39. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.d.ts +2 -0
  40. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.js +16 -0
  41. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.js.map +1 -0
  42. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.d.ts +2 -0
  43. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js +73 -0
  44. package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js.map +1 -0
  45. package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.d.ts +1 -0
  46. package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.js +13 -0
  47. package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.js.map +1 -0
  48. package/admin/presentation/WebhookDeliveriesPage/feature.d.ts +3 -0
  49. package/admin/presentation/WebhookDeliveriesPage/feature.js +17 -0
  50. package/admin/presentation/WebhookDeliveriesPage/feature.js.map +1 -0
  51. package/admin/presentation/WebhookDeliveriesPage/index.d.ts +5 -0
  52. package/admin/presentation/WebhookDeliveriesPage/index.js +1 -0
  53. package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +6 -6
  54. package/admin/presentation/WebhookForm/WebhookFormPresenter.js +83 -72
  55. package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -1
  56. package/admin/presentation/WebhookForm/abstractions.d.ts +2 -9
  57. package/admin/presentation/WebhookForm/abstractions.js.map +1 -1
  58. package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +5 -2
  59. package/admin/presentation/WebhookForm/components/SigningSecret.js +7 -3
  60. package/admin/presentation/WebhookForm/components/SigningSecret.js.map +1 -1
  61. package/admin/presentation/WebhookForm/components/WebhookFormView.js +49 -35
  62. package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -1
  63. package/admin/presentation/WebhookList/WebhookListPresenter.d.ts +26 -2
  64. package/admin/presentation/WebhookList/WebhookListPresenter.js +36 -34
  65. package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -1
  66. package/admin/presentation/WebhookList/abstractions.d.ts +25 -7
  67. package/admin/presentation/WebhookList/abstractions.js.map +1 -1
  68. package/admin/presentation/WebhookList/components/CreateWebhookButton.d.ts +2 -0
  69. package/admin/presentation/WebhookList/components/CreateWebhookButton.js +22 -0
  70. package/admin/presentation/WebhookList/components/CreateWebhookButton.js.map +1 -0
  71. package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.d.ts +2 -0
  72. package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.js +16 -0
  73. package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.js.map +1 -0
  74. package/admin/presentation/WebhookList/components/WebhookListContent.d.ts +9 -0
  75. package/admin/presentation/WebhookList/components/WebhookListContent.js +170 -0
  76. package/admin/presentation/WebhookList/components/WebhookListContent.js.map +1 -0
  77. package/admin/presentation/WebhookList/components/WebhookListView.js +10 -140
  78. package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -1
  79. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +14 -6
  80. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js.map +1 -1
  81. package/admin/routes.d.ts +4 -1
  82. package/admin/routes.js +11 -4
  83. package/admin/routes.js.map +1 -1
  84. package/admin/shared/types.d.ts +1 -0
  85. package/api/domain/WebhookDelivery.d.ts +0 -1
  86. package/api/domain/WebhookSettings.d.ts +1 -0
  87. package/api/domain/constants.d.ts +1 -1
  88. package/api/domain/constants.js +2 -2
  89. package/api/domain/constants.js.map +1 -1
  90. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +1 -1
  91. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +3 -1
  92. package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js.map +1 -1
  93. package/api/features/CreateWebhookDelivery/abstractions.d.ts +1 -1
  94. package/api/features/CreateWebhookDelivery/abstractions.js.map +1 -1
  95. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js +4 -2
  96. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js.map +1 -1
  97. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +3 -1
  98. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +9 -4
  99. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -1
  100. package/api/features/SendWebhookTask/SendWebhookTask.d.ts +1 -1
  101. package/api/features/SendWebhookTask/SendWebhookTask.js +1 -1
  102. package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -1
  103. package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +3 -1
  104. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +9 -4
  105. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -1
  106. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +4 -2
  107. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js.map +1 -1
  108. package/api/features/UpdateWebhookSettings/abstractions.d.ts +1 -0
  109. package/api/features/UpdateWebhookSettings/abstractions.js.map +1 -1
  110. package/api/features/UpdateWebhookSettings/schema.d.ts +1 -0
  111. package/api/features/UpdateWebhookSettings/schema.js +3 -1
  112. package/api/features/UpdateWebhookSettings/schema.js.map +1 -1
  113. package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +3 -1
  114. package/api/features/WebhookDispatcher/WebhookDispatcher.js +9 -4
  115. package/api/features/WebhookDispatcher/WebhookDispatcher.js.map +1 -1
  116. package/api/graphql/WebhookDeliverySchema.js +12 -8
  117. package/api/graphql/WebhookDeliverySchema.js.map +1 -1
  118. package/api/graphql/WebhookEventSchema.js +1 -0
  119. package/api/graphql/WebhookEventSchema.js.map +1 -1
  120. package/api/graphql/WebhookSettingsSchema.js +2 -0
  121. package/api/graphql/WebhookSettingsSchema.js.map +1 -1
  122. package/api/models/WebhookSettingsModel.js +3 -2
  123. package/api/models/WebhookSettingsModel.js.map +1 -1
  124. package/package.json +24 -22
  125. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js.map +0 -1
  126. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.d.ts +0 -19
  127. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +0 -77
  128. package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +0 -1
  129. package/admin/presentation/WebhookDeliveries/abstractions.d.ts +0 -22
  130. package/admin/presentation/WebhookDeliveries/abstractions.js +0 -5
  131. package/admin/presentation/WebhookDeliveries/abstractions.js.map +0 -1
  132. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +0 -11
  133. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +0 -73
  134. package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +0 -1
  135. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.d.ts +0 -8
  136. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js +0 -119
  137. package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js.map +0 -1
  138. package/admin/presentation/WebhookDeliveries/feature.d.ts +0 -3
  139. package/admin/presentation/WebhookDeliveries/feature.js +0 -17
  140. package/admin/presentation/WebhookDeliveries/feature.js.map +0 -1
  141. package/admin/presentation/WebhookDeliveries/index.d.ts +0 -2
  142. package/admin/presentation/WebhookDeliveries/index.js +0 -2
@@ -5,8 +5,12 @@ import { HasPermission } from "./presentation/security/HasPermission.js";
5
5
  import { WebhookListView } from "./presentation/WebhookList/components/WebhookListView.js";
6
6
  import { WebhookFormView } from "./presentation/WebhookForm/components/WebhookFormView.js";
7
7
  import { WebhookSettingsView } from "./presentation/WebhookSettings/components/WebhookSettingsView.js";
8
+ import { WebhookDeliveriesPage } from "./presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js";
8
9
  import { Routes } from "./routes.js";
9
10
  const { Menu: Menu, Route: Route } = AdminConfig;
11
+ const beta = /*#__PURE__*/ react.createElement(Menu.Link.Badge, {
12
+ text: "BETA"
13
+ });
10
14
  const WebhookRoutes = ()=>{
11
15
  const { getLink } = useRouter();
12
16
  return /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(HasPermission, {
@@ -16,6 +20,11 @@ const WebhookRoutes = ()=>{
16
20
  element: /*#__PURE__*/ react.createElement(AdminLayout, {
17
21
  title: "Webhooks"
18
22
  }, /*#__PURE__*/ react.createElement(WebhookListView, null))
23
+ }), /*#__PURE__*/ react.createElement(Route, {
24
+ route: Routes.Deliveries,
25
+ element: /*#__PURE__*/ react.createElement(AdminLayout, {
26
+ title: "Delivery Log"
27
+ }, /*#__PURE__*/ react.createElement(WebhookDeliveriesPage, null))
19
28
  }), /*#__PURE__*/ react.createElement(Route, {
20
29
  route: Routes.Settings,
21
30
  element: /*#__PURE__*/ react.createElement(AdminLayout, {
@@ -27,11 +36,12 @@ const WebhookRoutes = ()=>{
27
36
  title: "Webhooks"
28
37
  }, /*#__PURE__*/ react.createElement(WebhookFormView, null))
29
38
  }), /*#__PURE__*/ react.createElement(Menu, {
30
- name: "webhooks.list",
39
+ name: "webhooks.deliveries",
31
40
  parent: "dev-tools",
32
41
  element: /*#__PURE__*/ react.createElement(Menu.Link, {
33
42
  text: "Webhooks",
34
- to: getLink(Routes.List),
43
+ badge: beta,
44
+ to: getLink(Routes.Deliveries),
35
45
  icon: /*#__PURE__*/ react.createElement(Menu.Link.Icon, {
36
46
  label: "Webhooks",
37
47
  element: /*#__PURE__*/ react.createElement(ReactComponent, null)
@@ -41,6 +51,7 @@ const WebhookRoutes = ()=>{
41
51
  name: "webhooks.settings",
42
52
  parent: "settings.system",
43
53
  element: /*#__PURE__*/ react.createElement(Menu.Link, {
54
+ badge: beta,
44
55
  text: "Webhooks",
45
56
  to: getLink(Routes.Settings)
46
57
  })
@@ -1 +1 @@
1
- {"version":3,"file":"admin/WebhookRoutes.js","sources":["../../src/admin/WebhookRoutes.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { AdminLayout } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookIcon } from \"@webiny/icons/webhook.svg\";\nimport { HasPermission } from \"./presentation/security/HasPermission.js\";\nimport { WebhookListView } from \"./presentation/WebhookList/components/WebhookListView.js\";\nimport { WebhookFormView } from \"./presentation/WebhookForm/components/WebhookFormView.js\";\nimport { WebhookSettingsView } from \"./presentation/WebhookSettings/components/WebhookSettingsView.js\";\nimport { Routes } from \"./routes.js\";\n\nconst { Menu, Route } = AdminConfig;\n\nexport const WebhookRoutes = () => {\n const { getLink } = useRouter();\n\n return (\n <AdminConfig>\n <HasPermission entity=\"webhook\">\n <Route\n route={Routes.List}\n element={\n <AdminLayout title=\"Webhooks\">\n <WebhookListView />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Settings}\n element={\n <AdminLayout title=\"Webhook Settings\">\n <WebhookSettingsView />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Form}\n element={\n <AdminLayout title=\"Webhooks\">\n <WebhookFormView />\n </AdminLayout>\n }\n />\n <Menu\n name=\"webhooks.list\"\n parent={\"dev-tools\"}\n element={\n <Menu.Link\n text=\"Webhooks\"\n to={getLink(Routes.List)}\n icon={<Menu.Link.Icon label=\"Webhooks\" element={<WebhookIcon />} />}\n />\n }\n />\n <Menu\n name=\"webhooks.settings\"\n parent=\"settings.system\"\n element={<Menu.Link text=\"Webhooks\" to={getLink(Routes.Settings)} />}\n />\n </HasPermission>\n </AdminConfig>\n );\n};\n"],"names":["Menu","Route","AdminConfig","WebhookRoutes","getLink","useRouter","HasPermission","Routes","AdminLayout","WebhookListView","WebhookSettingsView","WebhookFormView","WebhookIcon"],"mappings":";;;;;;;;AAWA,MAAM,EAAEA,MAAAA,IAAI,EAAEC,OAAAA,KAAK,EAAE,GAAGC;AAEjB,MAAMC,gBAAgB;IACzB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAEpB,OAAO,WAAP,GACI,oBAACH,aAAWA,MAAAA,WAAAA,GACR,oBAACI,eAAaA;QAAC,QAAO;qBAClB,oBAACL,OAAKA;QACF,OAAOM,OAAO,IAAI;QAClB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACC,iBAAeA;sBAI5B,oBAACR,OAAKA;QACF,OAAOM,OAAO,QAAQ;QACtB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACE,qBAAmBA;sBAIhC,oBAACT,OAAKA;QACF,OAAOM,OAAO,IAAI;QAClB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACG,iBAAeA;sBAI5B,oBAACX,MAAIA;QACD,MAAK;QACL,QAAQ;QACR,uBACI,oBAACA,KAAK,IAAI;YACN,MAAK;YACL,IAAII,QAAQG,OAAO,IAAI;YACvB,oBAAM,oBAACP,KAAK,IAAI,CAAC,IAAI;gBAAC,OAAM;gBAAW,uBAAS,oBAACY,gBAAWA;;;sBAIxE,oBAACZ,MAAIA;QACD,MAAK;QACL,QAAO;QACP,uBAAS,oBAACA,KAAK,IAAI;YAAC,MAAK;YAAW,IAAII,QAAQG,OAAO,QAAQ;;;AAKnF"}
1
+ {"version":3,"file":"admin/WebhookRoutes.js","sources":["../../src/admin/WebhookRoutes.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { AdminLayout } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookDeliveryIcon } from \"@webiny/icons/webhook.svg\";\nimport { HasPermission } from \"./presentation/security/HasPermission.js\";\nimport { WebhookListView } from \"./presentation/WebhookList/components/WebhookListView.js\";\nimport { WebhookFormView } from \"./presentation/WebhookForm/components/WebhookFormView.js\";\nimport { WebhookSettingsView } from \"./presentation/WebhookSettings/components/WebhookSettingsView.js\";\nimport { WebhookDeliveriesPage } from \"./presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js\";\nimport { Routes } from \"./routes.js\";\n\nconst { Menu, Route } = AdminConfig;\n\nconst beta = <Menu.Link.Badge text=\"BETA\" />;\n\nexport const WebhookRoutes = () => {\n const { getLink } = useRouter();\n\n return (\n <AdminConfig>\n <HasPermission entity=\"webhook\">\n <Route\n route={Routes.List}\n element={\n <AdminLayout title=\"Webhooks\">\n <WebhookListView />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Deliveries}\n element={\n <AdminLayout title=\"Delivery Log\">\n <WebhookDeliveriesPage />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Settings}\n element={\n <AdminLayout title=\"Webhook Settings\">\n <WebhookSettingsView />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Form}\n element={\n <AdminLayout title=\"Webhooks\">\n <WebhookFormView />\n </AdminLayout>\n }\n />\n <Menu\n name=\"webhooks.deliveries\"\n parent=\"dev-tools\"\n element={\n <Menu.Link\n text=\"Webhooks\"\n badge={beta}\n to={getLink(Routes.Deliveries)}\n icon={\n <Menu.Link.Icon\n label=\"Webhooks\"\n element={<WebhookDeliveryIcon />}\n />\n }\n />\n }\n />\n <Menu\n name=\"webhooks.settings\"\n parent=\"settings.system\"\n element={\n <Menu.Link badge={beta} text=\"Webhooks\" to={getLink(Routes.Settings)} />\n }\n />\n </HasPermission>\n </AdminConfig>\n );\n};\n"],"names":["Menu","Route","AdminConfig","beta","WebhookRoutes","getLink","useRouter","HasPermission","Routes","AdminLayout","WebhookListView","WebhookDeliveriesPage","WebhookSettingsView","WebhookFormView","WebhookDeliveryIcon"],"mappings":";;;;;;;;;AAYA,MAAM,EAAEA,MAAAA,IAAI,EAAEC,OAAAA,KAAK,EAAE,GAAGC;AAExB,MAAMC,OAAO,WAAHA,GAAG,oBAACH,KAAK,IAAI,CAAC,KAAK;IAAC,MAAK;;AAE5B,MAAMI,gBAAgB;IACzB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAEpB,OAAO,WAAP,GACI,oBAACJ,aAAWA,MAAAA,WAAAA,GACR,oBAACK,eAAaA;QAAC,QAAO;qBAClB,oBAACN,OAAKA;QACF,OAAOO,OAAO,IAAI;QAClB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACC,iBAAeA;sBAI5B,oBAACT,OAAKA;QACF,OAAOO,OAAO,UAAU;QACxB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACE,uBAAqBA;sBAIlC,oBAACV,OAAKA;QACF,OAAOO,OAAO,QAAQ;QACtB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACG,qBAAmBA;sBAIhC,oBAACX,OAAKA;QACF,OAAOO,OAAO,IAAI;QAClB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACI,iBAAeA;sBAI5B,oBAACb,MAAIA;QACD,MAAK;QACL,QAAO;QACP,uBACI,oBAACA,KAAK,IAAI;YACN,MAAK;YACL,OAAOG;YACP,IAAIE,QAAQG,OAAO,UAAU;YAC7B,oBACI,oBAACR,KAAK,IAAI,CAAC,IAAI;gBACX,OAAM;gBACN,uBAAS,oBAACc,gBAAmBA;;;sBAMjD,oBAACd,MAAIA;QACD,MAAK;QACL,QAAO;QACP,uBACI,oBAACA,KAAK,IAAI;YAAC,OAAOG;YAAM,MAAK;YAAW,IAAIE,QAAQG,OAAO,QAAQ;;;AAM3F"}
package/admin/Webhooks.js CHANGED
@@ -15,7 +15,6 @@ import { UpdateWebhookSettingsFeature } from "./features/updateWebhookSettings/i
15
15
  import { WebhookPermissionsFeature } from "./features/permissions/index.js";
16
16
  import { WebhookListPresenterFeature } from "./presentation/WebhookList/index.js";
17
17
  import { WebhookFormPresenterFeature } from "./presentation/WebhookForm/index.js";
18
- import { WebhookDeliveriesPresenterFeature } from "./presentation/WebhookDeliveries/index.js";
19
18
  import { WebhookSettingsPresenterFeature } from "./presentation/WebhookSettings/index.js";
20
19
  import { WebhookRoutes } from "./WebhookRoutes.js";
21
20
  import { WEBHOOK_PERMISSIONS_SCHEMA } from "./permissions.js";
@@ -48,8 +47,6 @@ const Webhooks = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#
48
47
  feature: WebhookListPresenterFeature
49
48
  }), /*#__PURE__*/ react.createElement(RegisterFeature, {
50
49
  feature: WebhookFormPresenterFeature
51
- }), /*#__PURE__*/ react.createElement(RegisterFeature, {
52
- feature: WebhookDeliveriesPresenterFeature
53
50
  }), /*#__PURE__*/ react.createElement(RegisterFeature, {
54
51
  feature: WebhookSettingsPresenterFeature
55
52
  }), /*#__PURE__*/ react.createElement(WebhookRoutes, null), /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(Security.Permissions, {
@@ -1 +1 @@
1
- {"version":3,"file":"admin/Webhooks.js","sources":["../../src/admin/Webhooks.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookIcon } from \"@webiny/icons/webhook.svg\";\nimport { ListWebhooksFeature } from \"./features/ListWebhooks/index.js\";\nimport { GetWebhookFeature } from \"./features/getWebhook/index.js\";\nimport { CreateWebhookFeature } from \"./features/createWebhook/index.js\";\nimport { UpdateWebhookFeature } from \"./features/updateWebhook/index.js\";\nimport { DeleteWebhookFeature } from \"./features/deleteWebhook/index.js\";\nimport { ListWebhookDeliveriesFeature } from \"./features/listWebhookDeliveries/index.js\";\nimport { TriggerWebhookFeature } from \"./features/triggerWebhook/index.js\";\nimport { ResendWebhookDeliveryFeature } from \"./features/resendWebhookDelivery/index.js\";\nimport { ListAvailableEventsFeature } from \"./features/listAvailableEvents/index.js\";\nimport { GetWebhookSettingsFeature } from \"./features/getWebhookSettings/index.js\";\nimport { UpdateWebhookSettingsFeature } from \"./features/updateWebhookSettings/index.js\";\nimport { WebhookPermissionsFeature } from \"./features/permissions/index.js\";\nimport { WebhookListPresenterFeature } from \"./presentation/WebhookList/index.js\";\nimport { WebhookFormPresenterFeature } from \"./presentation/WebhookForm/index.js\";\nimport { WebhookDeliveriesPresenterFeature } from \"./presentation/WebhookDeliveries/index.js\";\nimport { WebhookSettingsPresenterFeature } from \"./presentation/WebhookSettings/index.js\";\nimport { WebhookRoutes } from \"./WebhookRoutes.js\";\nimport { WEBHOOK_PERMISSIONS_SCHEMA } from \"~/admin/permissions.js\";\n\nconst { Security } = AdminConfig;\n\nexport const Webhooks = () => {\n return (\n <>\n {/* Headless features. */}\n <RegisterFeature feature={ListWebhooksFeature} />\n <RegisterFeature feature={GetWebhookFeature} />\n <RegisterFeature feature={CreateWebhookFeature} />\n <RegisterFeature feature={UpdateWebhookFeature} />\n <RegisterFeature feature={DeleteWebhookFeature} />\n <RegisterFeature feature={ListWebhookDeliveriesFeature} />\n <RegisterFeature feature={TriggerWebhookFeature} />\n <RegisterFeature feature={ResendWebhookDeliveryFeature} />\n <RegisterFeature feature={ListAvailableEventsFeature} />\n <RegisterFeature feature={GetWebhookSettingsFeature} />\n <RegisterFeature feature={UpdateWebhookSettingsFeature} />\n <RegisterFeature feature={WebhookPermissionsFeature} />\n {/* Presentation features. */}\n <RegisterFeature feature={WebhookListPresenterFeature} />\n <RegisterFeature feature={WebhookFormPresenterFeature} />\n <RegisterFeature feature={WebhookDeliveriesPresenterFeature} />\n <RegisterFeature feature={WebhookSettingsPresenterFeature} />\n {/* Routes + menu. */}\n <WebhookRoutes />\n {/* Security permissions UI. */}\n <AdminConfig>\n <Security.Permissions\n name=\"webhooks\"\n title=\"Webhooks\"\n description=\"Manage webhook permissions.\"\n icon={<WebhookIcon />}\n schema={WEBHOOK_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n </>\n );\n};\n"],"names":["Security","AdminConfig","Webhooks","RegisterFeature","ListWebhooksFeature","GetWebhookFeature","CreateWebhookFeature","UpdateWebhookFeature","DeleteWebhookFeature","ListWebhookDeliveriesFeature","TriggerWebhookFeature","ResendWebhookDeliveryFeature","ListAvailableEventsFeature","GetWebhookSettingsFeature","UpdateWebhookSettingsFeature","WebhookPermissionsFeature","WebhookListPresenterFeature","WebhookFormPresenterFeature","WebhookDeliveriesPresenterFeature","WebhookSettingsPresenterFeature","WebhookRoutes","WebhookIcon","WEBHOOK_PERMISSIONS_SCHEMA"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,WAAW,IACb,WAAP,GACI,wDAEI,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACH,iBAAeA;QAAC,SAASI;sBAC1B,oBAACJ,iBAAeA;QAAC,SAASK;sBAC1B,oBAACL,iBAAeA;QAAC,SAASM;sBAC1B,oBAACN,iBAAeA;QAAC,SAASO;sBAC1B,oBAACP,iBAAeA;QAAC,SAASQ;sBAC1B,oBAACR,iBAAeA;QAAC,SAASS;sBAC1B,oBAACT,iBAAeA;QAAC,SAASU;sBAC1B,oBAACV,iBAAeA;QAAC,SAASW;sBAC1B,oBAACX,iBAAeA;QAAC,SAASY;sBAE1B,oBAACZ,iBAAeA;QAAC,SAASa;sBAC1B,oBAACb,iBAAeA;QAAC,SAASc;sBAC1B,oBAACd,iBAAeA;QAAC,SAASe;sBAC1B,oBAACf,iBAAeA;QAAC,SAASgB;sBAE1B,oBAACC,eAAaA,OAAAA,WAAAA,GAEd,oBAACnB,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACqB,gBAAWA;QAClB,QAAQC"}
1
+ {"version":3,"file":"admin/Webhooks.js","sources":["../../src/admin/Webhooks.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookIcon } from \"@webiny/icons/webhook.svg\";\nimport { ListWebhooksFeature } from \"./features/ListWebhooks/index.js\";\nimport { GetWebhookFeature } from \"./features/getWebhook/index.js\";\nimport { CreateWebhookFeature } from \"./features/createWebhook/index.js\";\nimport { UpdateWebhookFeature } from \"./features/updateWebhook/index.js\";\nimport { DeleteWebhookFeature } from \"./features/deleteWebhook/index.js\";\nimport { ListWebhookDeliveriesFeature } from \"./features/listWebhookDeliveries/index.js\";\nimport { TriggerWebhookFeature } from \"./features/triggerWebhook/index.js\";\nimport { ResendWebhookDeliveryFeature } from \"./features/resendWebhookDelivery/index.js\";\nimport { ListAvailableEventsFeature } from \"./features/listAvailableEvents/index.js\";\nimport { GetWebhookSettingsFeature } from \"./features/getWebhookSettings/index.js\";\nimport { UpdateWebhookSettingsFeature } from \"./features/updateWebhookSettings/index.js\";\nimport { WebhookPermissionsFeature } from \"./features/permissions/index.js\";\nimport { WebhookListPresenterFeature } from \"./presentation/WebhookList/index.js\";\nimport { WebhookFormPresenterFeature } from \"./presentation/WebhookForm/index.js\";\nimport { WebhookSettingsPresenterFeature } from \"./presentation/WebhookSettings/index.js\";\nimport { WebhookRoutes } from \"./WebhookRoutes.js\";\nimport { WEBHOOK_PERMISSIONS_SCHEMA } from \"~/admin/permissions.js\";\n\nconst { Security } = AdminConfig;\n\nexport const Webhooks = () => {\n return (\n <>\n {/* Headless features. */}\n <RegisterFeature feature={ListWebhooksFeature} />\n <RegisterFeature feature={GetWebhookFeature} />\n <RegisterFeature feature={CreateWebhookFeature} />\n <RegisterFeature feature={UpdateWebhookFeature} />\n <RegisterFeature feature={DeleteWebhookFeature} />\n <RegisterFeature feature={ListWebhookDeliveriesFeature} />\n <RegisterFeature feature={TriggerWebhookFeature} />\n <RegisterFeature feature={ResendWebhookDeliveryFeature} />\n <RegisterFeature feature={ListAvailableEventsFeature} />\n <RegisterFeature feature={GetWebhookSettingsFeature} />\n <RegisterFeature feature={UpdateWebhookSettingsFeature} />\n <RegisterFeature feature={WebhookPermissionsFeature} />\n {/* Presentation features. */}\n <RegisterFeature feature={WebhookListPresenterFeature} />\n <RegisterFeature feature={WebhookFormPresenterFeature} />\n <RegisterFeature feature={WebhookSettingsPresenterFeature} />\n {/* Routes + menu. */}\n <WebhookRoutes />\n {/* Security permissions UI. */}\n <AdminConfig>\n <Security.Permissions\n name=\"webhooks\"\n title=\"Webhooks\"\n description=\"Manage webhook permissions.\"\n icon={<WebhookIcon />}\n schema={WEBHOOK_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n </>\n );\n};\n"],"names":["Security","AdminConfig","Webhooks","RegisterFeature","ListWebhooksFeature","GetWebhookFeature","CreateWebhookFeature","UpdateWebhookFeature","DeleteWebhookFeature","ListWebhookDeliveriesFeature","TriggerWebhookFeature","ResendWebhookDeliveryFeature","ListAvailableEventsFeature","GetWebhookSettingsFeature","UpdateWebhookSettingsFeature","WebhookPermissionsFeature","WebhookListPresenterFeature","WebhookFormPresenterFeature","WebhookSettingsPresenterFeature","WebhookRoutes","WebhookIcon","WEBHOOK_PERMISSIONS_SCHEMA"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,WAAW,IACb,WAAP,GACI,wDAEI,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACH,iBAAeA;QAAC,SAASI;sBAC1B,oBAACJ,iBAAeA;QAAC,SAASK;sBAC1B,oBAACL,iBAAeA;QAAC,SAASM;sBAC1B,oBAACN,iBAAeA;QAAC,SAASO;sBAC1B,oBAACP,iBAAeA;QAAC,SAASQ;sBAC1B,oBAACR,iBAAeA;QAAC,SAASS;sBAC1B,oBAACT,iBAAeA;QAAC,SAASU;sBAC1B,oBAACV,iBAAeA;QAAC,SAASW;sBAC1B,oBAACX,iBAAeA;QAAC,SAASY;sBAE1B,oBAACZ,iBAAeA;QAAC,SAASa;sBAC1B,oBAACb,iBAAeA;QAAC,SAASc;sBAC1B,oBAACd,iBAAeA;QAAC,SAASe;sBAE1B,oBAACC,eAAaA,OAAAA,WAAAA,GAEd,oBAAClB,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACoB,gBAAWA;QAClB,QAAQC"}
@@ -6,6 +6,7 @@ const GET_WEBHOOK_SETTINGS = `
6
6
  getSettings {
7
7
  data {
8
8
  signingSecret
9
+ deliveryRetentionDays
9
10
  }
10
11
  error {
11
12
  code
@@ -1 +1 @@
1
- {"version":3,"file":"admin/features/getWebhookSettings/GetWebhookSettingsGateway.js","sources":["../../../../src/admin/features/getWebhookSettings/GetWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport { GetWebhookSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst GET_WEBHOOK_SETTINGS = /* GraphQL */ `\n query GetWebhookSettings {\n webhooks {\n getSettings {\n data {\n signingSecret\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype GetWebhookSettingsResponse = {\n webhooks: {\n getSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass GetWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(): Promise<WebhookSettings> {\n const response = await this.client.execute<GetWebhookSettingsResponse>({\n query: GET_WEBHOOK_SETTINGS\n });\n\n const envelope = response.webhooks.getSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const GetWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: GetWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["GET_WEBHOOK_SETTINGS","GetWebhookSettingsGatewayImpl","client","response","envelope","Error","GetWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAIA,MAAMA,uBAAqC,CAAC;;;;;;;;;;;;;;;AAe5C,CAAC;AAUD,MAAMC;IACF,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,MAAM,UAAoC;QACtC,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA6B;YACnE,OAAOH;QACX;QAEA,MAAMI,WAAWD,SAAS,QAAQ,CAAC,WAAW;QAC9C,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,OAAOA,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
1
+ {"version":3,"file":"admin/features/getWebhookSettings/GetWebhookSettingsGateway.js","sources":["../../../../src/admin/features/getWebhookSettings/GetWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport { GetWebhookSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst GET_WEBHOOK_SETTINGS = /* GraphQL */ `\n query GetWebhookSettings {\n webhooks {\n getSettings {\n data {\n signingSecret\n deliveryRetentionDays\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype GetWebhookSettingsResponse = {\n webhooks: {\n getSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass GetWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(): Promise<WebhookSettings> {\n const response = await this.client.execute<GetWebhookSettingsResponse>({\n query: GET_WEBHOOK_SETTINGS\n });\n\n const envelope = response.webhooks.getSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const GetWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: GetWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["GET_WEBHOOK_SETTINGS","GetWebhookSettingsGatewayImpl","client","response","envelope","Error","GetWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAIA,MAAMA,uBAAqC,CAAC;;;;;;;;;;;;;;;;AAgB5C,CAAC;AAUD,MAAMC;IACF,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,MAAM,UAAoC;QACtC,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA6B;YACnE,OAAOH;QACX;QAEA,MAAMI,WAAWD,SAAS,QAAQ,CAAC,WAAW;QAC9C,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,OAAOA,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
@@ -6,7 +6,7 @@ class ListWebhookDeliveriesGatewayImpl {
6
6
  }
7
7
  async execute(params) {
8
8
  const result = await this.sdk.webhooks.listWebhookDeliveries({
9
- webhookId: params.webhookId,
9
+ where: params.where,
10
10
  limit: params.limit,
11
11
  after: params.after
12
12
  });
@@ -1 +1 @@
1
- {"version":3,"file":"admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js","sources":["../../../../src/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.ts"],"sourcesContent":["import { WebinySdk } from \"@webiny/app-admin/features/webinySdk/abstractions.js\";\nimport {\n ListWebhookDeliveriesGateway as GatewayAbstraction,\n type ListWebhookDeliveriesParams,\n type ListWebhookDeliveriesResult\n} from \"./abstractions.js\";\n\nclass ListWebhookDeliveriesGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly sdk: WebinySdk.Interface) {}\n\n async execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult> {\n const result = await this.sdk.webhooks.listWebhookDeliveries({\n webhookId: params.webhookId,\n limit: params.limit,\n after: params.after\n });\n\n if (result.isFail()) {\n throw new Error(result.error.message);\n }\n\n return {\n data: result.value.data,\n meta: result.value.meta\n };\n }\n}\n\nexport const ListWebhookDeliveriesGateway = GatewayAbstraction.createImplementation({\n implementation: ListWebhookDeliveriesGatewayImpl,\n dependencies: [WebinySdk]\n});\n"],"names":["ListWebhookDeliveriesGatewayImpl","sdk","params","result","Error","ListWebhookDeliveriesGateway","GatewayAbstraction","WebinySdk"],"mappings":";;AAOA,MAAMA;IACF,YAA6BC,GAAwB,CAAE;aAA1BA,GAAG,GAAHA;IAA2B;IAExD,MAAM,QAAQC,MAAmC,EAAwC;QACrF,MAAMC,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACzD,WAAWD,OAAO,SAAS;YAC3B,OAAOA,OAAO,KAAK;YACnB,OAAOA,OAAO,KAAK;QACvB;QAEA,IAAIC,OAAO,MAAM,IACb,MAAM,IAAIC,MAAMD,OAAO,KAAK,CAAC,OAAO;QAGxC,OAAO;YACH,MAAMA,OAAO,KAAK,CAAC,IAAI;YACvB,MAAMA,OAAO,KAAK,CAAC,IAAI;QAC3B;IACJ;AACJ;AAEO,MAAME,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBN;IAChB,cAAc;QAACO;KAAU;AAC7B"}
1
+ {"version":3,"file":"admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js","sources":["../../../../src/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.ts"],"sourcesContent":["import { WebinySdk } from \"@webiny/app-admin/features/webinySdk/abstractions.js\";\nimport {\n ListWebhookDeliveriesGateway as GatewayAbstraction,\n type ListWebhookDeliveriesParams,\n type ListWebhookDeliveriesResult\n} from \"./abstractions.js\";\n\nclass ListWebhookDeliveriesGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly sdk: WebinySdk.Interface) {}\n\n async execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult> {\n const result = await this.sdk.webhooks.listWebhookDeliveries({\n where: params.where,\n limit: params.limit,\n after: params.after\n });\n\n if (result.isFail()) {\n throw new Error(result.error.message);\n }\n\n return {\n data: result.value.data,\n meta: result.value.meta\n };\n }\n}\n\nexport const ListWebhookDeliveriesGateway = GatewayAbstraction.createImplementation({\n implementation: ListWebhookDeliveriesGatewayImpl,\n dependencies: [WebinySdk]\n});\n"],"names":["ListWebhookDeliveriesGatewayImpl","sdk","params","result","Error","ListWebhookDeliveriesGateway","GatewayAbstraction","WebinySdk"],"mappings":";;AAOA,MAAMA;IACF,YAA6BC,GAAwB,CAAE;aAA1BA,GAAG,GAAHA;IAA2B;IAExD,MAAM,QAAQC,MAAmC,EAAwC;QACrF,MAAMC,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACzD,OAAOD,OAAO,KAAK;YACnB,OAAOA,OAAO,KAAK;YACnB,OAAOA,OAAO,KAAK;QACvB;QAEA,IAAIC,OAAO,MAAM,IACb,MAAM,IAAIC,MAAMD,OAAO,KAAK,CAAC,OAAO;QAGxC,OAAO;YACH,MAAMA,OAAO,KAAK,CAAC,IAAI;YACvB,MAAMA,OAAO,KAAK,CAAC,IAAI;QAC3B;IACJ;AACJ;AAEO,MAAME,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBN;IAChB,cAAc;QAACO;KAAU;AAC7B"}
@@ -1,6 +1,11 @@
1
1
  import type { WebhookDelivery } from "../../../admin/shared/types.js";
2
+ export interface ListWebhookDeliveriesWhere {
3
+ webhookId_eq?: string;
4
+ eventType_in?: string[];
5
+ status_in?: string[];
6
+ }
2
7
  export interface ListWebhookDeliveriesParams {
3
- webhookId: string;
8
+ where?: ListWebhookDeliveriesWhere;
4
9
  limit?: number;
5
10
  after?: string;
6
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"admin/features/listWebhookDeliveries/abstractions.js","sources":["../../../../src/admin/features/listWebhookDeliveries/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\n\nexport interface ListWebhookDeliveriesParams {\n webhookId: string;\n limit?: number;\n after?: string;\n}\n\nexport interface ListWebhookDeliveriesResult {\n data: WebhookDelivery[];\n meta: {\n cursor: string | null;\n hasMoreItems: boolean;\n totalCount: number;\n };\n}\n\nexport interface IListWebhookDeliveriesGateway {\n execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult>;\n}\n\nexport const ListWebhookDeliveriesGateway = createAbstraction<IListWebhookDeliveriesGateway>(\n \"ListWebhookDeliveriesGateway\"\n);\n\nexport namespace ListWebhookDeliveriesGateway {\n export type Interface = IListWebhookDeliveriesGateway;\n}\n\nexport interface IListWebhookDeliveriesUseCase {\n execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult>;\n}\n\nexport const ListWebhookDeliveriesUseCase = createAbstraction<IListWebhookDeliveriesUseCase>(\n \"ListWebhookDeliveriesUseCase\"\n);\n\nexport namespace ListWebhookDeliveriesUseCase {\n export type Interface = IListWebhookDeliveriesUseCase;\n}\n"],"names":["ListWebhookDeliveriesGateway","createAbstraction","ListWebhookDeliveriesUseCase"],"mappings":";AAsBO,MAAMA,+BAA+BC,kBACxC;AAWG,MAAMC,+BAA+BD,kBACxC"}
1
+ {"version":3,"file":"admin/features/listWebhookDeliveries/abstractions.js","sources":["../../../../src/admin/features/listWebhookDeliveries/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\n\nexport interface ListWebhookDeliveriesWhere {\n webhookId_eq?: string;\n eventType_in?: string[];\n status_in?: string[];\n}\n\nexport interface ListWebhookDeliveriesParams {\n where?: ListWebhookDeliveriesWhere;\n limit?: number;\n after?: string;\n}\n\nexport interface ListWebhookDeliveriesResult {\n data: WebhookDelivery[];\n meta: {\n cursor: string | null;\n hasMoreItems: boolean;\n totalCount: number;\n };\n}\n\nexport interface IListWebhookDeliveriesGateway {\n execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult>;\n}\n\nexport const ListWebhookDeliveriesGateway = createAbstraction<IListWebhookDeliveriesGateway>(\n \"ListWebhookDeliveriesGateway\"\n);\n\nexport namespace ListWebhookDeliveriesGateway {\n export type Interface = IListWebhookDeliveriesGateway;\n}\n\nexport interface IListWebhookDeliveriesUseCase {\n execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult>;\n}\n\nexport const ListWebhookDeliveriesUseCase = createAbstraction<IListWebhookDeliveriesUseCase>(\n \"ListWebhookDeliveriesUseCase\"\n);\n\nexport namespace ListWebhookDeliveriesUseCase {\n export type Interface = IListWebhookDeliveriesUseCase;\n}\n"],"names":["ListWebhookDeliveriesGateway","createAbstraction","ListWebhookDeliveriesUseCase"],"mappings":";AA4BO,MAAMA,+BAA+BC,kBACxC;AAWG,MAAMC,+BAA+BD,kBACxC"}
@@ -6,6 +6,7 @@ const UPDATE_WEBHOOK_SETTINGS = `
6
6
  updateSettings(input: $input) {
7
7
  data {
8
8
  signingSecret
9
+ deliveryRetentionDays
9
10
  }
10
11
  error {
11
12
  code
@@ -1 +1 @@
1
- {"version":3,"file":"admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js","sources":["../../../../src/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport {\n UpdateWebhookSettingsGateway as GatewayAbstraction,\n type UpdateWebhookSettingsInput\n} from \"./abstractions.js\";\n\nconst UPDATE_WEBHOOK_SETTINGS = /* GraphQL */ `\n mutation UpdateWebhookSettings($input: UpdateWebhookSettingsInput!) {\n webhooks {\n updateSettings(input: $input) {\n data {\n signingSecret\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype UpdateWebhookSettingsResponse = {\n webhooks: {\n updateSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass UpdateWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings> {\n const response = await this.client.execute<UpdateWebhookSettingsResponse>({\n query: UPDATE_WEBHOOK_SETTINGS,\n variables: { input }\n });\n\n const envelope = response.webhooks.updateSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const UpdateWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: UpdateWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["UPDATE_WEBHOOK_SETTINGS","UpdateWebhookSettingsGatewayImpl","client","input","response","envelope","Error","UpdateWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAOA,MAAMA,0BAAwC,CAAC;;;;;;;;;;;;;;;AAe/C,CAAC;AAUD,MAAMC;IACF,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,MAAM,QAAQC,KAAiC,EAA4B;QACvE,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgC;YACtE,OAAOJ;YACP,WAAW;gBAAEG;YAAM;QACvB;QAEA,MAAME,WAAWD,SAAS,QAAQ,CAAC,cAAc;QACjD,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,OAAOA,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
1
+ {"version":3,"file":"admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js","sources":["../../../../src/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport {\n UpdateWebhookSettingsGateway as GatewayAbstraction,\n type UpdateWebhookSettingsInput\n} from \"./abstractions.js\";\n\nconst UPDATE_WEBHOOK_SETTINGS = /* GraphQL */ `\n mutation UpdateWebhookSettings($input: UpdateWebhookSettingsInput!) {\n webhooks {\n updateSettings(input: $input) {\n data {\n signingSecret\n deliveryRetentionDays\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype UpdateWebhookSettingsResponse = {\n webhooks: {\n updateSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass UpdateWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings> {\n const response = await this.client.execute<UpdateWebhookSettingsResponse>({\n query: UPDATE_WEBHOOK_SETTINGS,\n variables: { input }\n });\n\n const envelope = response.webhooks.updateSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const UpdateWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: UpdateWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["UPDATE_WEBHOOK_SETTINGS","UpdateWebhookSettingsGatewayImpl","client","input","response","envelope","Error","UpdateWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAOA,MAAMA,0BAAwC,CAAC;;;;;;;;;;;;;;;;AAgB/C,CAAC;AAUD,MAAMC;IACF,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,MAAM,QAAQC,KAAiC,EAA4B;QACvE,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgC;YACtE,OAAOJ;YACP,WAAW;gBAAEG;YAAM;QACvB;QAEA,MAAME,WAAWD,SAAS,QAAQ,CAAC,cAAc;QACjD,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,OAAOA,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
@@ -1,6 +1,7 @@
1
1
  import type { WebhookSettings } from "../../../admin/shared/types.js";
2
2
  export interface UpdateWebhookSettingsInput {
3
3
  signingSecret?: string;
4
+ deliveryRetentionDays?: number;
4
5
  }
5
6
  export interface IUpdateWebhookSettingsGateway {
6
7
  execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;
@@ -1 +1 @@
1
- {"version":3,"file":"admin/features/updateWebhookSettings/abstractions.js","sources":["../../../../src/admin/features/updateWebhookSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\n\nexport interface UpdateWebhookSettingsInput {\n signingSecret?: string;\n}\n\nexport interface IUpdateWebhookSettingsGateway {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsGateway = createAbstraction<IUpdateWebhookSettingsGateway>(\n \"UpdateWebhookSettingsGateway\"\n);\n\nexport namespace UpdateWebhookSettingsGateway {\n export type Interface = IUpdateWebhookSettingsGateway;\n}\n\nexport interface IUpdateWebhookSettingsUseCase {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsUseCase = createAbstraction<IUpdateWebhookSettingsUseCase>(\n \"UpdateWebhookSettingsUseCase\"\n);\n\nexport namespace UpdateWebhookSettingsUseCase {\n export type Interface = IUpdateWebhookSettingsUseCase;\n}\n"],"names":["UpdateWebhookSettingsGateway","createAbstraction","UpdateWebhookSettingsUseCase"],"mappings":";AAWO,MAAMA,+BAA+BC,kBACxC;AAWG,MAAMC,+BAA+BD,kBACxC"}
1
+ {"version":3,"file":"admin/features/updateWebhookSettings/abstractions.js","sources":["../../../../src/admin/features/updateWebhookSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\n\nexport interface UpdateWebhookSettingsInput {\n signingSecret?: string;\n deliveryRetentionDays?: number;\n}\n\nexport interface IUpdateWebhookSettingsGateway {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsGateway = createAbstraction<IUpdateWebhookSettingsGateway>(\n \"UpdateWebhookSettingsGateway\"\n);\n\nexport namespace UpdateWebhookSettingsGateway {\n export type Interface = IUpdateWebhookSettingsGateway;\n}\n\nexport interface IUpdateWebhookSettingsUseCase {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsUseCase = createAbstraction<IUpdateWebhookSettingsUseCase>(\n \"UpdateWebhookSettingsUseCase\"\n);\n\nexport namespace UpdateWebhookSettingsUseCase {\n export type Interface = IUpdateWebhookSettingsUseCase;\n}\n"],"names":["UpdateWebhookSettingsGateway","createAbstraction","UpdateWebhookSettingsUseCase"],"mappings":";AAYO,MAAMA,+BAA+BC,kBACxC;AAWG,MAAMC,+BAA+BD,kBACxC"}
@@ -3,11 +3,10 @@ import type { WebhookDelivery } from "../../../admin/shared/types.js";
3
3
  import type { IListWebhookDeliveriesUseCase } from "../../../admin/features/listWebhookDeliveries/abstractions.js";
4
4
  export declare class WebhookDeliveriesDataSource implements IDataSource<WebhookDelivery> {
5
5
  private readonly listDeliveriesUseCase;
6
- private readonly webhookId;
7
6
  private _rows;
8
7
  private _meta;
9
8
  private _loading;
10
- constructor(listDeliveriesUseCase: IListWebhookDeliveriesUseCase, webhookId: string);
9
+ constructor(listDeliveriesUseCase: IListWebhookDeliveriesUseCase);
11
10
  get rows(): WebhookDelivery[];
12
11
  get meta(): IDataSourceMeta;
13
12
  get loading(): boolean;
@@ -1,8 +1,7 @@
1
- import { computed, makeAutoObservable, runInAction } from "mobx";
1
+ import { makeAutoObservable, runInAction } from "mobx";
2
2
  class WebhookDeliveriesDataSource {
3
- constructor(listDeliveriesUseCase, webhookId){
3
+ constructor(listDeliveriesUseCase){
4
4
  this.listDeliveriesUseCase = listDeliveriesUseCase;
5
- this.webhookId = webhookId;
6
5
  this._rows = [];
7
6
  this._meta = {
8
7
  cursor: null,
@@ -11,8 +10,7 @@ class WebhookDeliveriesDataSource {
11
10
  };
12
11
  this._loading = false;
13
12
  makeAutoObservable(this, {
14
- listDeliveriesUseCase: false,
15
- rows: computed
13
+ listDeliveriesUseCase: false
16
14
  });
17
15
  }
18
16
  get rows() {
@@ -27,7 +25,7 @@ class WebhookDeliveriesDataSource {
27
25
  async query(params) {
28
26
  this._loading = true;
29
27
  const result = await this.listDeliveriesUseCase.execute({
30
- webhookId: this.webhookId,
28
+ where: params.filters ?? {},
31
29
  limit: params.limit,
32
30
  after: params.cursor
33
31
  });
@@ -45,7 +43,7 @@ class WebhookDeliveriesDataSource {
45
43
  if (!this._meta.hasMoreItems || this._loading) return;
46
44
  this._loading = true;
47
45
  const result = await this.listDeliveriesUseCase.execute({
48
- webhookId: this.webhookId,
46
+ where: params.filters ?? {},
49
47
  limit: params.limit,
50
48
  after: this._meta.cursor ?? void 0
51
49
  });
@@ -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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"}