@webiny/webhooks 6.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/admin/SecurityPermission.d.ts +2 -0
- package/admin/SecurityPermission.js +15 -0
- package/admin/SecurityPermission.js.map +1 -0
- package/admin/WebhookRoutes.d.ts +2 -0
- package/admin/WebhookRoutes.js +33 -0
- package/admin/WebhookRoutes.js.map +1 -0
- package/admin/Webhooks.d.ts +2 -0
- package/admin/Webhooks.js +53 -0
- package/admin/Webhooks.js.map +1 -0
- package/admin/features/ListWebhooks/ListWebhooksGateway.d.ts +11 -0
- package/admin/features/ListWebhooks/ListWebhooksGateway.js +62 -0
- package/admin/features/ListWebhooks/ListWebhooksGateway.js.map +1 -0
- package/admin/features/ListWebhooks/ListWebhooksRepository.d.ts +10 -0
- package/admin/features/ListWebhooks/ListWebhooksRepository.js +18 -0
- package/admin/features/ListWebhooks/ListWebhooksRepository.js.map +1 -0
- package/admin/features/ListWebhooks/ListWebhooksUseCase.d.ts +10 -0
- package/admin/features/ListWebhooks/ListWebhooksUseCase.js +18 -0
- package/admin/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -0
- package/admin/features/ListWebhooks/abstractions.d.ts +36 -0
- package/admin/features/ListWebhooks/abstractions.js +7 -0
- package/admin/features/ListWebhooks/abstractions.js.map +1 -0
- package/admin/features/ListWebhooks/feature.d.ts +3 -0
- package/admin/features/ListWebhooks/feature.js +21 -0
- package/admin/features/ListWebhooks/feature.js.map +1 -0
- package/admin/features/ListWebhooks/index.d.ts +2 -0
- package/admin/features/ListWebhooks/index.js +2 -0
- package/admin/features/createWebhook/CreateWebhookGateway.d.ts +12 -0
- package/admin/features/createWebhook/CreateWebhookGateway.js +21 -0
- package/admin/features/createWebhook/CreateWebhookGateway.js.map +1 -0
- package/admin/features/createWebhook/CreateWebhookUseCase.d.ts +11 -0
- package/admin/features/createWebhook/CreateWebhookUseCase.js +18 -0
- package/admin/features/createWebhook/CreateWebhookUseCase.js.map +1 -0
- package/admin/features/createWebhook/abstractions.d.ts +23 -0
- package/admin/features/createWebhook/abstractions.js +6 -0
- package/admin/features/createWebhook/abstractions.js.map +1 -0
- package/admin/features/createWebhook/feature.d.ts +3 -0
- package/admin/features/createWebhook/feature.js +19 -0
- package/admin/features/createWebhook/feature.js.map +1 -0
- package/admin/features/createWebhook/index.d.ts +2 -0
- package/admin/features/createWebhook/index.js +2 -0
- package/admin/features/deleteWebhook/DeleteWebhookGateway.d.ts +11 -0
- package/admin/features/deleteWebhook/DeleteWebhookGateway.js +23 -0
- package/admin/features/deleteWebhook/DeleteWebhookGateway.js.map +1 -0
- package/admin/features/deleteWebhook/DeleteWebhookUseCase.d.ts +10 -0
- package/admin/features/deleteWebhook/DeleteWebhookUseCase.js +18 -0
- package/admin/features/deleteWebhook/DeleteWebhookUseCase.js.map +1 -0
- package/admin/features/deleteWebhook/abstractions.d.ts +14 -0
- package/admin/features/deleteWebhook/abstractions.js +6 -0
- package/admin/features/deleteWebhook/abstractions.js.map +1 -0
- package/admin/features/deleteWebhook/feature.d.ts +3 -0
- package/admin/features/deleteWebhook/feature.js +19 -0
- package/admin/features/deleteWebhook/feature.js.map +1 -0
- package/admin/features/deleteWebhook/index.d.ts +2 -0
- package/admin/features/deleteWebhook/index.js +2 -0
- package/admin/features/getWebhook/GetWebhookGateway.d.ts +12 -0
- package/admin/features/getWebhook/GetWebhookGateway.js +23 -0
- package/admin/features/getWebhook/GetWebhookGateway.js.map +1 -0
- package/admin/features/getWebhook/GetWebhookUseCase.d.ts +11 -0
- package/admin/features/getWebhook/GetWebhookUseCase.js +18 -0
- package/admin/features/getWebhook/GetWebhookUseCase.js.map +1 -0
- package/admin/features/getWebhook/abstractions.d.ts +15 -0
- package/admin/features/getWebhook/abstractions.js +6 -0
- package/admin/features/getWebhook/abstractions.js.map +1 -0
- package/admin/features/getWebhook/feature.d.ts +3 -0
- package/admin/features/getWebhook/feature.js +19 -0
- package/admin/features/getWebhook/feature.js.map +1 -0
- package/admin/features/getWebhook/index.d.ts +2 -0
- package/admin/features/getWebhook/index.js +2 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsGateway.d.ts +12 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsGateway.js +21 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsGateway.js.map +1 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.d.ts +11 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.js +18 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.js.map +1 -0
- package/admin/features/listAvailableEvents/abstractions.d.ts +15 -0
- package/admin/features/listAvailableEvents/abstractions.js +6 -0
- package/admin/features/listAvailableEvents/abstractions.js.map +1 -0
- package/admin/features/listAvailableEvents/feature.d.ts +3 -0
- package/admin/features/listAvailableEvents/feature.js +19 -0
- package/admin/features/listAvailableEvents/feature.js.map +1 -0
- package/admin/features/listAvailableEvents/index.d.ts +2 -0
- package/admin/features/listAvailableEvents/index.js +2 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.d.ts +11 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js +28 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js.map +1 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +10 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.js +18 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -0
- package/admin/features/listWebhookDeliveries/abstractions.d.ts +28 -0
- package/admin/features/listWebhookDeliveries/abstractions.js +6 -0
- package/admin/features/listWebhookDeliveries/abstractions.js.map +1 -0
- package/admin/features/listWebhookDeliveries/feature.d.ts +3 -0
- package/admin/features/listWebhookDeliveries/feature.js +19 -0
- package/admin/features/listWebhookDeliveries/feature.js.map +1 -0
- package/admin/features/listWebhookDeliveries/index.d.ts +2 -0
- package/admin/features/listWebhookDeliveries/index.js +2 -0
- package/admin/features/permissions/abstractions.d.ts +17 -0
- package/admin/features/permissions/abstractions.js +6 -0
- package/admin/features/permissions/abstractions.js.map +1 -0
- package/admin/features/permissions/feature.d.ts +14 -0
- package/admin/features/permissions/feature.js +7 -0
- package/admin/features/permissions/feature.js.map +1 -0
- package/admin/features/permissions/index.d.ts +2 -0
- package/admin/features/permissions/index.js +2 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.d.ts +11 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.js +23 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.js.map +1 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +10 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.js +18 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -0
- package/admin/features/resendWebhookDelivery/abstractions.d.ts +14 -0
- package/admin/features/resendWebhookDelivery/abstractions.js +6 -0
- package/admin/features/resendWebhookDelivery/abstractions.js.map +1 -0
- package/admin/features/resendWebhookDelivery/feature.d.ts +3 -0
- package/admin/features/resendWebhookDelivery/feature.js +19 -0
- package/admin/features/resendWebhookDelivery/feature.js.map +1 -0
- package/admin/features/resendWebhookDelivery/index.d.ts +2 -0
- package/admin/features/resendWebhookDelivery/index.js +2 -0
- package/admin/features/triggerWebhook/TriggerWebhookGateway.d.ts +12 -0
- package/admin/features/triggerWebhook/TriggerWebhookGateway.js +24 -0
- package/admin/features/triggerWebhook/TriggerWebhookGateway.js.map +1 -0
- package/admin/features/triggerWebhook/TriggerWebhookUseCase.d.ts +11 -0
- package/admin/features/triggerWebhook/TriggerWebhookUseCase.js +18 -0
- package/admin/features/triggerWebhook/TriggerWebhookUseCase.js.map +1 -0
- package/admin/features/triggerWebhook/abstractions.d.ts +15 -0
- package/admin/features/triggerWebhook/abstractions.js +6 -0
- package/admin/features/triggerWebhook/abstractions.js.map +1 -0
- package/admin/features/triggerWebhook/feature.d.ts +3 -0
- package/admin/features/triggerWebhook/feature.js +19 -0
- package/admin/features/triggerWebhook/feature.js.map +1 -0
- package/admin/features/triggerWebhook/index.d.ts +2 -0
- package/admin/features/triggerWebhook/index.js +2 -0
- package/admin/features/updateWebhook/UpdateWebhookGateway.d.ts +12 -0
- package/admin/features/updateWebhook/UpdateWebhookGateway.js +24 -0
- package/admin/features/updateWebhook/UpdateWebhookGateway.js.map +1 -0
- package/admin/features/updateWebhook/UpdateWebhookUseCase.d.ts +11 -0
- package/admin/features/updateWebhook/UpdateWebhookUseCase.js +18 -0
- package/admin/features/updateWebhook/UpdateWebhookUseCase.js.map +1 -0
- package/admin/features/updateWebhook/abstractions.d.ts +23 -0
- package/admin/features/updateWebhook/abstractions.js +6 -0
- package/admin/features/updateWebhook/abstractions.js.map +1 -0
- package/admin/features/updateWebhook/feature.d.ts +3 -0
- package/admin/features/updateWebhook/feature.js +19 -0
- package/admin/features/updateWebhook/feature.js.map +1 -0
- package/admin/features/updateWebhook/index.d.ts +2 -0
- package/admin/features/updateWebhook/index.js +2 -0
- package/admin/index.d.ts +2 -0
- package/admin/index.js +2 -0
- package/admin/permissions.d.ts +12 -0
- package/admin/permissions.js +22 -0
- package/admin/permissions.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.d.ts +16 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js +68 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.d.ts +19 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +77 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/abstractions.d.ts +22 -0
- package/admin/presentation/WebhookDeliveries/abstractions.js +5 -0
- package/admin/presentation/WebhookDeliveries/abstractions.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +11 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +73 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.d.ts +8 -0
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js +119 -0
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/feature.d.ts +3 -0
- package/admin/presentation/WebhookDeliveries/feature.js +17 -0
- package/admin/presentation/WebhookDeliveries/feature.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/index.d.ts +2 -0
- package/admin/presentation/WebhookDeliveries/index.js +2 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +35 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js +163 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -0
- package/admin/presentation/WebhookForm/abstractions.d.ts +35 -0
- package/admin/presentation/WebhookForm/abstractions.js +5 -0
- package/admin/presentation/WebhookForm/abstractions.js.map +1 -0
- package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +12 -0
- package/admin/presentation/WebhookForm/components/EventsSelector.js +44 -0
- package/admin/presentation/WebhookForm/components/EventsSelector.js.map +1 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +6 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.js +43 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.js.map +1 -0
- package/admin/presentation/WebhookForm/components/WebhookFormView.d.ts +2 -0
- package/admin/presentation/WebhookForm/components/WebhookFormView.js +88 -0
- package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -0
- package/admin/presentation/WebhookForm/feature.d.ts +3 -0
- package/admin/presentation/WebhookForm/feature.js +17 -0
- package/admin/presentation/WebhookForm/feature.js.map +1 -0
- package/admin/presentation/WebhookForm/index.d.ts +2 -0
- package/admin/presentation/WebhookForm/index.js +2 -0
- package/admin/presentation/WebhookList/WebhookListDataSource.d.ts +15 -0
- package/admin/presentation/WebhookList/WebhookListDataSource.js +67 -0
- package/admin/presentation/WebhookList/WebhookListDataSource.js.map +1 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.d.ts +22 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.js +90 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -0
- package/admin/presentation/WebhookList/abstractions.d.ts +27 -0
- package/admin/presentation/WebhookList/abstractions.js +5 -0
- package/admin/presentation/WebhookList/abstractions.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookListView.d.ts +2 -0
- package/admin/presentation/WebhookList/components/WebhookListView.js +172 -0
- package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -0
- package/admin/presentation/WebhookList/feature.d.ts +3 -0
- package/admin/presentation/WebhookList/feature.js +17 -0
- package/admin/presentation/WebhookList/feature.js.map +1 -0
- package/admin/presentation/WebhookList/index.d.ts +2 -0
- package/admin/presentation/WebhookList/index.js +2 -0
- package/admin/presentation/security/HasPermission.d.ts +12 -0
- package/admin/presentation/security/HasPermission.js +6 -0
- package/admin/presentation/security/HasPermission.js.map +1 -0
- package/admin/presentation/security/usePermissions.d.ts +12 -0
- package/admin/presentation/security/usePermissions.js +6 -0
- package/admin/presentation/security/usePermissions.js.map +1 -0
- package/admin/routes.d.ts +7 -0
- package/admin/routes.js +17 -0
- package/admin/routes.js.map +1 -0
- package/admin/shared/types.d.ts +5 -0
- package/admin/shared/types.js +0 -0
- package/api/Extension.d.ts +1 -0
- package/api/Extension.js +1 -0
- package/api/WebhooksFeature.d.ts +4 -0
- package/api/WebhooksFeature.js +55 -0
- package/api/WebhooksFeature.js.map +1 -0
- package/api/domain/Webhook.d.ts +27 -0
- package/api/domain/Webhook.js +0 -0
- package/api/domain/WebhookDelivery.d.ts +36 -0
- package/api/domain/WebhookDelivery.js +0 -0
- package/api/domain/constants.d.ts +4 -0
- package/api/domain/constants.js +7 -0
- package/api/domain/constants.js.map +1 -0
- package/api/domain/errors.d.ts +36 -0
- package/api/domain/errors.js +70 -0
- package/api/domain/errors.js.map +1 -0
- package/api/features/CreateWebhook/CreateWebhookRepository.d.ts +18 -0
- package/api/features/CreateWebhook/CreateWebhookRepository.js +43 -0
- package/api/features/CreateWebhook/CreateWebhookRepository.js.map +1 -0
- package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +16 -0
- package/api/features/CreateWebhook/CreateWebhookUseCase.js +57 -0
- package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -0
- package/api/features/CreateWebhook/abstractions.d.ts +33 -0
- package/api/features/CreateWebhook/abstractions.js +6 -0
- package/api/features/CreateWebhook/abstractions.js.map +1 -0
- package/api/features/CreateWebhook/feature.d.ts +4 -0
- package/api/features/CreateWebhook/feature.js +13 -0
- package/api/features/CreateWebhook/feature.js.map +1 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +20 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +58 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js.map +1 -0
- package/api/features/CreateWebhookDelivery/abstractions.d.ts +21 -0
- package/api/features/CreateWebhookDelivery/abstractions.js +5 -0
- package/api/features/CreateWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/CreateWebhookDelivery/feature.d.ts +4 -0
- package/api/features/CreateWebhookDelivery/feature.js +11 -0
- package/api/features/CreateWebhookDelivery/feature.js.map +1 -0
- package/api/features/DeleteWebhook/DeleteWebhookRepository.d.ts +19 -0
- package/api/features/DeleteWebhook/DeleteWebhookRepository.js +66 -0
- package/api/features/DeleteWebhook/DeleteWebhookRepository.js.map +1 -0
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.d.ts +15 -0
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +29 -0
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -0
- package/api/features/DeleteWebhook/abstractions.d.ts +20 -0
- package/api/features/DeleteWebhook/abstractions.js +6 -0
- package/api/features/DeleteWebhook/abstractions.js.map +1 -0
- package/api/features/DeleteWebhook/feature.d.ts +4 -0
- package/api/features/DeleteWebhook/feature.js +13 -0
- package/api/features/DeleteWebhook/feature.js.map +1 -0
- package/api/features/GetWebhook/GetWebhookRepository.d.ts +17 -0
- package/api/features/GetWebhook/GetWebhookRepository.js +39 -0
- package/api/features/GetWebhook/GetWebhookRepository.js.map +1 -0
- package/api/features/GetWebhook/GetWebhookUseCase.d.ts +14 -0
- package/api/features/GetWebhook/GetWebhookUseCase.js +24 -0
- package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -0
- package/api/features/GetWebhook/abstractions.d.ts +21 -0
- package/api/features/GetWebhook/abstractions.js +6 -0
- package/api/features/GetWebhook/abstractions.js.map +1 -0
- package/api/features/GetWebhook/feature.d.ts +4 -0
- package/api/features/GetWebhook/feature.js +13 -0
- package/api/features/GetWebhook/feature.js.map +1 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.d.ts +17 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.js +39 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.js.map +1 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.d.ts +14 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +24 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -0
- package/api/features/GetWebhookDelivery/abstractions.d.ts +21 -0
- package/api/features/GetWebhookDelivery/abstractions.js +6 -0
- package/api/features/GetWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/GetWebhookDelivery/feature.d.ts +4 -0
- package/api/features/GetWebhookDelivery/feature.js +13 -0
- package/api/features/GetWebhookDelivery/feature.js.map +1 -0
- package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.d.ts +14 -0
- package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.js +30 -0
- package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.js.map +1 -0
- package/api/features/ListAvailableWebhookEvents/abstractions.d.ts +9 -0
- package/api/features/ListAvailableWebhookEvents/abstractions.js +5 -0
- package/api/features/ListAvailableWebhookEvents/abstractions.js.map +1 -0
- package/api/features/ListAvailableWebhookEvents/feature.d.ts +4 -0
- package/api/features/ListAvailableWebhookEvents/feature.js +11 -0
- package/api/features/ListAvailableWebhookEvents/feature.js.map +1 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.d.ts +21 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.js +63 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.js.map +1 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +14 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +24 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -0
- package/api/features/ListWebhookDeliveries/abstractions.d.ts +40 -0
- package/api/features/ListWebhookDeliveries/abstractions.js +6 -0
- package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -0
- package/api/features/ListWebhookDeliveries/feature.d.ts +4 -0
- package/api/features/ListWebhookDeliveries/feature.js +13 -0
- package/api/features/ListWebhookDeliveries/feature.js.map +1 -0
- package/api/features/ListWebhooks/ListWebhooksRepository.d.ts +21 -0
- package/api/features/ListWebhooks/ListWebhooksRepository.js +63 -0
- package/api/features/ListWebhooks/ListWebhooksRepository.js.map +1 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.d.ts +14 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.js +24 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -0
- package/api/features/ListWebhooks/abstractions.d.ts +41 -0
- package/api/features/ListWebhooks/abstractions.js +6 -0
- package/api/features/ListWebhooks/abstractions.js.map +1 -0
- package/api/features/ListWebhooks/feature.d.ts +4 -0
- package/api/features/ListWebhooks/feature.js +13 -0
- package/api/features/ListWebhooks/feature.js.map +1 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +20 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +60 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -0
- package/api/features/ResendWebhookDelivery/abstractions.d.ts +12 -0
- package/api/features/ResendWebhookDelivery/abstractions.js +5 -0
- package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/ResendWebhookDelivery/feature.d.ts +4 -0
- package/api/features/ResendWebhookDelivery/feature.js +11 -0
- package/api/features/ResendWebhookDelivery/feature.js.map +1 -0
- package/api/features/SendWebhookTask/SendWebhookTask.d.ts +29 -0
- package/api/features/SendWebhookTask/SendWebhookTask.js +99 -0
- package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -0
- package/api/features/SendWebhookTask/feature.d.ts +4 -0
- package/api/features/SendWebhookTask/feature.js +11 -0
- package/api/features/SendWebhookTask/feature.js.map +1 -0
- package/api/features/SendWebhookTask/types.d.ts +15 -0
- package/api/features/SendWebhookTask/types.js +0 -0
- package/api/features/Transformers/WebhookDeliveryTransformer.d.ts +13 -0
- package/api/features/Transformers/WebhookDeliveryTransformer.js +57 -0
- package/api/features/Transformers/WebhookDeliveryTransformer.js.map +1 -0
- package/api/features/Transformers/WebhookTransformer.d.ts +11 -0
- package/api/features/Transformers/WebhookTransformer.js +35 -0
- package/api/features/Transformers/WebhookTransformer.js.map +1 -0
- package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.d.ts +10 -0
- package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js +5 -0
- package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js.map +1 -0
- package/api/features/Transformers/abstractions/WebhookTransformer.d.ts +10 -0
- package/api/features/Transformers/abstractions/WebhookTransformer.js +5 -0
- package/api/features/Transformers/abstractions/WebhookTransformer.js.map +1 -0
- package/api/features/Transformers/feature.d.ts +4 -0
- package/api/features/Transformers/feature.js +13 -0
- package/api/features/Transformers/feature.js.map +1 -0
- package/api/features/Transformers/index.d.ts +2 -0
- package/api/features/Transformers/index.js +2 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +19 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +54 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -0
- package/api/features/TriggerWebhook/abstractions.d.ts +13 -0
- package/api/features/TriggerWebhook/abstractions.js +5 -0
- package/api/features/TriggerWebhook/abstractions.js.map +1 -0
- package/api/features/TriggerWebhook/feature.d.ts +4 -0
- package/api/features/TriggerWebhook/feature.js +11 -0
- package/api/features/TriggerWebhook/feature.js.map +1 -0
- package/api/features/UpdateWebhook/UpdateWebhookRepository.d.ts +21 -0
- package/api/features/UpdateWebhook/UpdateWebhookRepository.js +50 -0
- package/api/features/UpdateWebhook/UpdateWebhookRepository.js.map +1 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.d.ts +16 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +66 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -0
- package/api/features/UpdateWebhook/abstractions.d.ts +31 -0
- package/api/features/UpdateWebhook/abstractions.js +6 -0
- package/api/features/UpdateWebhook/abstractions.js.map +1 -0
- package/api/features/UpdateWebhook/feature.d.ts +4 -0
- package/api/features/UpdateWebhook/feature.js +13 -0
- package/api/features/UpdateWebhook/feature.js.map +1 -0
- package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.d.ts +22 -0
- package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js +62 -0
- package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js.map +1 -0
- package/api/features/UpdateWebhookDelivery/abstractions.d.ts +23 -0
- package/api/features/UpdateWebhookDelivery/abstractions.js +5 -0
- package/api/features/UpdateWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/UpdateWebhookDelivery/feature.d.ts +4 -0
- package/api/features/UpdateWebhookDelivery/feature.js +11 -0
- package/api/features/UpdateWebhookDelivery/feature.js.map +1 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +17 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.js +56 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.js.map +1 -0
- package/api/features/WebhookDispatcher/feature.d.ts +4 -0
- package/api/features/WebhookDispatcher/feature.js +11 -0
- package/api/features/WebhookDispatcher/feature.js.map +1 -0
- package/api/features/WebhookPermissions/abstractions.d.ts +17 -0
- package/api/features/WebhookPermissions/abstractions.js +6 -0
- package/api/features/WebhookPermissions/abstractions.js.map +1 -0
- package/api/features/WebhookPermissions/feature.d.ts +4 -0
- package/api/features/WebhookPermissions/feature.js +7 -0
- package/api/features/WebhookPermissions/feature.js.map +1 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.d.ts +8 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js +20 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -0
- package/api/features/WebhookSignPayload/feature.d.ts +4 -0
- package/api/features/WebhookSignPayload/feature.js +11 -0
- package/api/features/WebhookSignPayload/feature.js.map +1 -0
- package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.d.ts +10 -0
- package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.js +22 -0
- package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.js.map +1 -0
- package/api/features/WebhookVerifyPayload/feature.d.ts +4 -0
- package/api/features/WebhookVerifyPayload/feature.js +11 -0
- package/api/features/WebhookVerifyPayload/feature.js.map +1 -0
- package/api/graphql/WebhookCrudSchema.d.ts +8 -0
- package/api/graphql/WebhookCrudSchema.js +167 -0
- package/api/graphql/WebhookCrudSchema.js.map +1 -0
- package/api/graphql/WebhookDeliverySchema.d.ts +8 -0
- package/api/graphql/WebhookDeliverySchema.js +96 -0
- package/api/graphql/WebhookDeliverySchema.js.map +1 -0
- package/api/graphql/WebhookEventSchema.d.ts +8 -0
- package/api/graphql/WebhookEventSchema.js +43 -0
- package/api/graphql/WebhookEventSchema.js.map +1 -0
- package/api/graphql/WebhookTriggerSchema.d.ts +8 -0
- package/api/graphql/WebhookTriggerSchema.js +36 -0
- package/api/graphql/WebhookTriggerSchema.js.map +1 -0
- package/api/index.d.ts +1 -0
- package/api/index.js +8 -0
- package/api/index.js.map +1 -0
- package/api/models/WebhookDeliveryModel.d.ts +8 -0
- package/api/models/WebhookDeliveryModel.js +36 -0
- package/api/models/WebhookDeliveryModel.js.map +1 -0
- package/api/models/WebhookModel.d.ts +8 -0
- package/api/models/WebhookModel.js +33 -0
- package/api/models/WebhookModel.js.map +1 -0
- package/api/permissions.d.ts +12 -0
- package/api/permissions.js +22 -0
- package/api/permissions.js.map +1 -0
- package/exports/api/webhooks.d.ts +6 -0
- package/exports/api/webhooks.js +2 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/TriggerWebhook/feature.js","sources":["../../../../src/api/features/TriggerWebhook/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { TriggerWebhookUseCase } from \"./TriggerWebhookUseCase.js\";\n\nexport const TriggerWebhookFeature = createFeature({\n name: \"TriggerWebhook\",\n register(container) {\n container.register(TriggerWebhookUseCase);\n }\n});\n"],"names":["TriggerWebhookFeature","createFeature","container","TriggerWebhookUseCase"],"mappings":";;AAGO,MAAMA,wBAAwBC,cAAc;IAC/C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
5
|
+
import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
6
|
+
import { WebhookTransformer } from "../../../api/features/Transformers/abstractions/WebhookTransformer.js";
|
|
7
|
+
import { UpdateWebhookRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
8
|
+
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
9
|
+
declare class UpdateWebhookRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
10
|
+
private readonly getModelRepository;
|
|
11
|
+
private readonly getLatestRevisionRepository;
|
|
12
|
+
private readonly updateEntryDataFactory;
|
|
13
|
+
private readonly updateEntryRepository;
|
|
14
|
+
private readonly transformer;
|
|
15
|
+
constructor(getModelRepository: GetModelRepository.Interface, getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface, updateEntryDataFactory: UpdateEntryDataFactory.Interface, updateEntryRepository: UpdateEntryRepository.Interface, transformer: WebhookTransformer.Interface);
|
|
16
|
+
execute(webhook: Webhook): Promise<Result<Webhook, RepositoryAbstraction.Error>>;
|
|
17
|
+
}
|
|
18
|
+
export declare const UpdateWebhookRepository: typeof UpdateWebhookRepositoryImpl & {
|
|
19
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateWebhookRepository>;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
5
|
+
import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
6
|
+
import { WebhookTransformer } from "../Transformers/abstractions/WebhookTransformer.js";
|
|
7
|
+
import { UpdateWebhookRepository } from "./abstractions.js";
|
|
8
|
+
import { WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
9
|
+
import { WEBHOOK_MODEL_ID } from "../../domain/constants.js";
|
|
10
|
+
class UpdateWebhookRepositoryImpl {
|
|
11
|
+
constructor(getModelRepository, getLatestRevisionRepository, updateEntryDataFactory, updateEntryRepository, transformer){
|
|
12
|
+
this.getModelRepository = getModelRepository;
|
|
13
|
+
this.getLatestRevisionRepository = getLatestRevisionRepository;
|
|
14
|
+
this.updateEntryDataFactory = updateEntryDataFactory;
|
|
15
|
+
this.updateEntryRepository = updateEntryRepository;
|
|
16
|
+
this.transformer = transformer;
|
|
17
|
+
}
|
|
18
|
+
async execute(webhook) {
|
|
19
|
+
try {
|
|
20
|
+
const modelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);
|
|
21
|
+
if (modelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));
|
|
22
|
+
const entryResult = await this.getLatestRevisionRepository.execute(modelResult.value, {
|
|
23
|
+
id: webhook.id
|
|
24
|
+
});
|
|
25
|
+
if (entryResult.isFail()) return Result.fail(WebhookPersistenceError.from(entryResult.error));
|
|
26
|
+
const values = this.transformer.toStorage(webhook);
|
|
27
|
+
const { entry } = await this.updateEntryDataFactory.create(modelResult.value, {
|
|
28
|
+
values
|
|
29
|
+
}, entryResult.value);
|
|
30
|
+
const updateResult = await this.updateEntryRepository.execute(modelResult.value, entry);
|
|
31
|
+
if (updateResult.isFail()) return Result.fail(WebhookPersistenceError.from(updateResult.error));
|
|
32
|
+
return Result.ok(webhook);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const UpdateWebhookRepository_UpdateWebhookRepository = UpdateWebhookRepository.createImplementation({
|
|
39
|
+
implementation: UpdateWebhookRepositoryImpl,
|
|
40
|
+
dependencies: [
|
|
41
|
+
GetModelRepository,
|
|
42
|
+
GetLatestRevisionByEntryIdRepository,
|
|
43
|
+
UpdateEntryDataFactory,
|
|
44
|
+
UpdateEntryRepository,
|
|
45
|
+
WebhookTransformer
|
|
46
|
+
]
|
|
47
|
+
});
|
|
48
|
+
export { UpdateWebhookRepository_UpdateWebhookRepository as UpdateWebhookRepository };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=UpdateWebhookRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhook/UpdateWebhookRepository.js","sources":["../../../../src/api/features/UpdateWebhook/UpdateWebhookRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { GetLatestRevisionByEntryIdRepository } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { UpdateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { UpdateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { WebhookTransformer } from \"~/api/features/Transformers/abstractions/WebhookTransformer.js\";\nimport { UpdateWebhookRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { WebhookModelNotFoundError, WebhookPersistenceError } from \"~/api/domain/errors.js\";\nimport { WEBHOOK_MODEL_ID } from \"~/api/domain/constants.js\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\n\nclass UpdateWebhookRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly updateEntryDataFactory: UpdateEntryDataFactory.Interface,\n private readonly updateEntryRepository: UpdateEntryRepository.Interface,\n private readonly transformer: WebhookTransformer.Interface\n ) {}\n\n async execute(webhook: Webhook): Promise<Result<Webhook, RepositoryAbstraction.Error>> {\n try {\n const modelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));\n }\n\n const entryResult =\n await this.getLatestRevisionRepository.execute<WebhookCmsEntryValues>(\n modelResult.value,\n { id: webhook.id }\n );\n if (entryResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(entryResult.error));\n }\n\n const values = this.transformer.toStorage(webhook);\n\n const { entry } = await this.updateEntryDataFactory.create<WebhookCmsEntryValues>(\n modelResult.value,\n { values },\n entryResult.value\n );\n\n const updateResult = await this.updateEntryRepository.execute(modelResult.value, entry);\n\n if (updateResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(updateResult.error));\n }\n\n return Result.ok(webhook);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n}\n\nexport const UpdateWebhookRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateWebhookRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetLatestRevisionByEntryIdRepository,\n UpdateEntryDataFactory,\n UpdateEntryRepository,\n WebhookTransformer\n ]\n});\n"],"names":["UpdateWebhookRepositoryImpl","getModelRepository","getLatestRevisionRepository","updateEntryDataFactory","updateEntryRepository","transformer","webhook","modelResult","WEBHOOK_MODEL_ID","Result","WebhookModelNotFoundError","entryResult","WebhookPersistenceError","values","entry","updateResult","error","UpdateWebhookRepository","RepositoryAbstraction","GetModelRepository","GetLatestRevisionByEntryIdRepository","UpdateEntryDataFactory","UpdateEntryRepository","WebhookTransformer"],"mappings":";;;;;;;;;AAWA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,2BAA2E,EAC3EC,sBAAwD,EACxDC,qBAAsD,EACtDC,WAAyC,CAC5D;aALmBJ,kBAAkB,GAAlBA;aACAC,2BAA2B,GAA3BA;aACAC,sBAAsB,GAAtBA;aACAC,qBAAqB,GAArBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QAAQC,OAAgB,EAAyD;QACnF,IAAI;YACA,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YAC1D,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,0BAA0BF;YAGrD,MAAMG,cACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC1CJ,YAAY,KAAK,EACjB;gBAAE,IAAID,QAAQ,EAAE;YAAC;YAEzB,IAAIK,YAAY,MAAM,IAClB,OAAOF,OAAO,IAAI,CAACG,wBAAwB,IAAI,CAACD,YAAY,KAAK;YAGrE,MAAME,SAAS,IAAI,CAAC,WAAW,CAAC,SAAS,CAACP;YAE1C,MAAM,EAAEQ,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACtDP,YAAY,KAAK,EACjB;gBAAEM;YAAO,GACTF,YAAY,KAAK;YAGrB,MAAMI,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,YAAY,KAAK,EAAEO;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAON,OAAO,IAAI,CAACG,wBAAwB,IAAI,CAACG,aAAa,KAAK;YAGtE,OAAON,OAAO,EAAE,CAACH;QACrB,EAAE,OAAOU,OAAO;YACZ,OAAOP,OAAO,IAAI,CAACG,wBAAwB,IAAI,CAACI;QACpD;IACJ;AACJ;AAEO,MAAMC,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBlB;IAChB,cAAc;QACVmB;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateWebhookUseCase as UseCaseAbstraction, UpdateWebhookRepository } from "./abstractions.js";
|
|
3
|
+
import { GetWebhookRepository } from "../../../api/features/GetWebhook/abstractions.js";
|
|
4
|
+
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
5
|
+
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
6
|
+
declare class UpdateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
7
|
+
private permissions;
|
|
8
|
+
private getWebhookRepository;
|
|
9
|
+
private updateRepository;
|
|
10
|
+
constructor(permissions: WebhookPermissions.Interface, getWebhookRepository: GetWebhookRepository.Interface, updateRepository: UpdateWebhookRepository.Interface);
|
|
11
|
+
execute(id: string, input: UseCaseAbstraction.Input): Promise<Result<Webhook, UseCaseAbstraction.Error>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const UpdateWebhookUseCase: typeof UpdateWebhookUseCaseImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateWebhookUseCase>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateWebhookRepository, UpdateWebhookUseCase } from "./abstractions.js";
|
|
3
|
+
import { GetWebhookRepository } from "../GetWebhook/abstractions.js";
|
|
4
|
+
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
5
|
+
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
6
|
+
const isValidEndpointUrl = (url)=>{
|
|
7
|
+
try {
|
|
8
|
+
const parsed = new URL(url);
|
|
9
|
+
if ("https:" === parsed.protocol) return true;
|
|
10
|
+
if ("http:" === parsed.protocol && ("localhost" === parsed.hostname || "127.0.0.1" === parsed.hostname)) return true;
|
|
11
|
+
return false;
|
|
12
|
+
} catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
class UpdateWebhookUseCaseImpl {
|
|
17
|
+
constructor(permissions, getWebhookRepository, updateRepository){
|
|
18
|
+
this.permissions = permissions;
|
|
19
|
+
this.getWebhookRepository = getWebhookRepository;
|
|
20
|
+
this.updateRepository = updateRepository;
|
|
21
|
+
}
|
|
22
|
+
async execute(id, input) {
|
|
23
|
+
if (!await this.permissions.canEdit("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
24
|
+
const getResult = await this.getWebhookRepository.execute(id);
|
|
25
|
+
if (getResult.isFail()) return Result.fail(getResult.error);
|
|
26
|
+
const existing = getResult.value;
|
|
27
|
+
if (input.endpointUrl && !isValidEndpointUrl(input.endpointUrl)) return Result.fail(new WebhookValidationError("Endpoint URL must use HTTPS. HTTP is only allowed for localhost."));
|
|
28
|
+
if (void 0 !== input.events && 0 === input.events.length) return Result.fail(new WebhookValidationError("At least one event must be selected."));
|
|
29
|
+
const updated = {
|
|
30
|
+
...existing,
|
|
31
|
+
...void 0 !== input.name ? {
|
|
32
|
+
name: input.name
|
|
33
|
+
} : {},
|
|
34
|
+
...void 0 !== input.slug ? {
|
|
35
|
+
slug: input.slug
|
|
36
|
+
} : {},
|
|
37
|
+
...void 0 !== input.endpointUrl ? {
|
|
38
|
+
endpointUrl: input.endpointUrl
|
|
39
|
+
} : {},
|
|
40
|
+
...void 0 !== input.description ? {
|
|
41
|
+
description: input.description
|
|
42
|
+
} : {},
|
|
43
|
+
...void 0 !== input.enabled ? {
|
|
44
|
+
enabled: input.enabled
|
|
45
|
+
} : {},
|
|
46
|
+
...void 0 !== input.events ? {
|
|
47
|
+
events: input.events
|
|
48
|
+
} : {},
|
|
49
|
+
...void 0 !== input.signingSecret ? {
|
|
50
|
+
signingSecret: input.signingSecret
|
|
51
|
+
} : {}
|
|
52
|
+
};
|
|
53
|
+
return this.updateRepository.execute(updated);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const UpdateWebhookUseCase_UpdateWebhookUseCase = UpdateWebhookUseCase.createImplementation({
|
|
57
|
+
implementation: UpdateWebhookUseCaseImpl,
|
|
58
|
+
dependencies: [
|
|
59
|
+
WebhookPermissions,
|
|
60
|
+
GetWebhookRepository,
|
|
61
|
+
UpdateWebhookRepository
|
|
62
|
+
]
|
|
63
|
+
});
|
|
64
|
+
export { UpdateWebhookUseCase_UpdateWebhookUseCase as UpdateWebhookUseCase };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=UpdateWebhookUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhook/UpdateWebhookUseCase.js","sources":["../../../../src/api/features/UpdateWebhook/UpdateWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n UpdateWebhookUseCase as UseCaseAbstraction,\n UpdateWebhookRepository\n} from \"./abstractions.js\";\nimport { GetWebhookRepository } from \"~/api/features/GetWebhook/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookValidationError, WebhookNotAuthorizedError } from \"~/api/domain/errors.js\";\nimport type { Webhook } from \"~/api/domain/Webhook.js\";\n\nconst isValidEndpointUrl = (url: string): boolean => {\n try {\n const parsed = new URL(url);\n if (parsed.protocol === \"https:\") {\n return true;\n }\n if (\n parsed.protocol === \"http:\" &&\n (parsed.hostname === \"localhost\" || parsed.hostname === \"127.0.0.1\")\n ) {\n return true;\n }\n return false;\n } catch {\n return false;\n }\n};\n\nclass UpdateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WebhookPermissions.Interface,\n private getWebhookRepository: GetWebhookRepository.Interface,\n private updateRepository: UpdateWebhookRepository.Interface\n ) {}\n\n async execute(\n id: string,\n input: UseCaseAbstraction.Input\n ): Promise<Result<Webhook, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canEdit(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const getResult = await this.getWebhookRepository.execute(id);\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n const existing = getResult.value;\n\n if (input.endpointUrl && !isValidEndpointUrl(input.endpointUrl)) {\n return Result.fail(\n new WebhookValidationError(\n \"Endpoint URL must use HTTPS. HTTP is only allowed for localhost.\"\n )\n );\n }\n\n if (input.events !== undefined && input.events.length === 0) {\n return Result.fail(new WebhookValidationError(\"At least one event must be selected.\"));\n }\n\n const updated: Webhook = {\n ...existing,\n ...(input.name !== undefined ? { name: input.name } : {}),\n ...(input.slug !== undefined ? { slug: input.slug } : {}),\n ...(input.endpointUrl !== undefined ? { endpointUrl: input.endpointUrl } : {}),\n ...(input.description !== undefined ? { description: input.description } : {}),\n ...(input.enabled !== undefined ? { enabled: input.enabled } : {}),\n ...(input.events !== undefined ? { events: input.events } : {}),\n ...(input.signingSecret !== undefined ? { signingSecret: input.signingSecret } : {})\n };\n\n return this.updateRepository.execute(updated);\n }\n}\n\nexport const UpdateWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: UpdateWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookRepository, UpdateWebhookRepository]\n});\n"],"names":["isValidEndpointUrl","url","parsed","URL","UpdateWebhookUseCaseImpl","permissions","getWebhookRepository","updateRepository","id","input","Result","WebhookNotAuthorizedError","getResult","existing","WebhookValidationError","undefined","updated","UpdateWebhookUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookRepository","UpdateWebhookRepository"],"mappings":";;;;;AAUA,MAAMA,qBAAqB,CAACC;IACxB,IAAI;QACA,MAAMC,SAAS,IAAIC,IAAIF;QACvB,IAAIC,AAAoB,aAApBA,OAAO,QAAQ,EACf,OAAO;QAEX,IACIA,AAAoB,YAApBA,OAAO,QAAQ,IACdA,CAAAA,AAAoB,gBAApBA,OAAO,QAAQ,IAAoBA,AAAoB,gBAApBA,OAAO,QAAQ,AAAe,GAElE,OAAO;QAEX,OAAO;IACX,EAAE,OAAM;QACJ,OAAO;IACX;AACJ;AAEA,MAAME;IACF,YACYC,WAAyC,EACzCC,oBAAoD,EACpDC,gBAAmD,CAC7D;aAHUF,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;aACAC,gBAAgB,GAAhBA;IACT;IAEH,MAAM,QACFC,EAAU,EACVC,KAA+B,EACmB;QAClD,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,YAAY,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACJ;QAC1D,IAAII,UAAU,MAAM,IAChB,OAAOF,OAAO,IAAI,CAACE,UAAU,KAAK;QAGtC,MAAMC,WAAWD,UAAU,KAAK;QAEhC,IAAIH,MAAM,WAAW,IAAI,CAACT,mBAAmBS,MAAM,WAAW,GAC1D,OAAOC,OAAO,IAAI,CACd,IAAII,uBACA;QAKZ,IAAIL,AAAiBM,WAAjBN,MAAM,MAAM,IAAkBA,AAAwB,MAAxBA,MAAM,MAAM,CAAC,MAAM,EACjD,OAAOC,OAAO,IAAI,CAAC,IAAII,uBAAuB;QAGlD,MAAME,UAAmB;YACrB,GAAGH,QAAQ;YACX,GAAIJ,AAAeM,WAAfN,MAAM,IAAI,GAAiB;gBAAE,MAAMA,MAAM,IAAI;YAAC,IAAI,CAAC,CAAC;YACxD,GAAIA,AAAeM,WAAfN,MAAM,IAAI,GAAiB;gBAAE,MAAMA,MAAM,IAAI;YAAC,IAAI,CAAC,CAAC;YACxD,GAAIA,AAAsBM,WAAtBN,MAAM,WAAW,GAAiB;gBAAE,aAAaA,MAAM,WAAW;YAAC,IAAI,CAAC,CAAC;YAC7E,GAAIA,AAAsBM,WAAtBN,MAAM,WAAW,GAAiB;gBAAE,aAAaA,MAAM,WAAW;YAAC,IAAI,CAAC,CAAC;YAC7E,GAAIA,AAAkBM,WAAlBN,MAAM,OAAO,GAAiB;gBAAE,SAASA,MAAM,OAAO;YAAC,IAAI,CAAC,CAAC;YACjE,GAAIA,AAAiBM,WAAjBN,MAAM,MAAM,GAAiB;gBAAE,QAAQA,MAAM,MAAM;YAAC,IAAI,CAAC,CAAC;YAC9D,GAAIA,AAAwBM,WAAxBN,MAAM,aAAa,GAAiB;gBAAE,eAAeA,MAAM,aAAa;YAAC,IAAI,CAAC,CAAC;QACvF;QAEA,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAACO;IACzC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;QAAsBC;KAAwB;AACrF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
3
|
+
import type { WebhookNotFoundError, WebhookValidationError, WebhookPersistenceError, WebhookModelNotFoundError, WebhookNotAuthorizedError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface IUpdateWebhookInput {
|
|
5
|
+
name?: string;
|
|
6
|
+
slug?: string;
|
|
7
|
+
endpointUrl?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
events?: string[];
|
|
11
|
+
signingSecret?: string;
|
|
12
|
+
}
|
|
13
|
+
type IError = WebhookNotFoundError | WebhookValidationError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
|
|
14
|
+
export interface IUpdateWebhookUseCase {
|
|
15
|
+
execute(id: string, input: IUpdateWebhookInput): Promise<Result<Webhook, IError>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const UpdateWebhookUseCase: import("@webiny/di").Abstraction<IUpdateWebhookUseCase>;
|
|
18
|
+
export declare namespace UpdateWebhookUseCase {
|
|
19
|
+
type Interface = IUpdateWebhookUseCase;
|
|
20
|
+
type Input = IUpdateWebhookInput;
|
|
21
|
+
type Error = IError;
|
|
22
|
+
}
|
|
23
|
+
export interface IUpdateWebhookRepository {
|
|
24
|
+
execute(webhook: Webhook): Promise<Result<Webhook, WebhookPersistenceError | WebhookModelNotFoundError>>;
|
|
25
|
+
}
|
|
26
|
+
export declare const UpdateWebhookRepository: import("@webiny/di").Abstraction<IUpdateWebhookRepository>;
|
|
27
|
+
export declare namespace UpdateWebhookRepository {
|
|
28
|
+
type Interface = IUpdateWebhookRepository;
|
|
29
|
+
type Error = WebhookPersistenceError | WebhookModelNotFoundError;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const UpdateWebhookUseCase = createAbstraction("Webhooks/UpdateWebhookUseCase");
|
|
3
|
+
const UpdateWebhookRepository = createAbstraction("Webhooks/UpdateWebhookRepository");
|
|
4
|
+
export { UpdateWebhookRepository, UpdateWebhookUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhook/abstractions.js","sources":["../../../../src/api/features/UpdateWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Webhook } from \"~/api/domain/Webhook.js\";\nimport type {\n WebhookNotFoundError,\n WebhookValidationError,\n WebhookPersistenceError,\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError\n} from \"~/api/domain/errors.js\";\n\nexport interface IUpdateWebhookInput {\n name?: string;\n slug?: string;\n endpointUrl?: string;\n description?: string;\n enabled?: boolean;\n events?: string[];\n signingSecret?: string;\n}\n\ntype IError =\n | WebhookNotFoundError\n | WebhookValidationError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError;\n\nexport interface IUpdateWebhookUseCase {\n execute(id: string, input: IUpdateWebhookInput): Promise<Result<Webhook, IError>>;\n}\n\nexport const UpdateWebhookUseCase = createAbstraction<IUpdateWebhookUseCase>(\n \"Webhooks/UpdateWebhookUseCase\"\n);\n\nexport namespace UpdateWebhookUseCase {\n export type Interface = IUpdateWebhookUseCase;\n export type Input = IUpdateWebhookInput;\n export type Error = IError;\n}\n\nexport interface IUpdateWebhookRepository {\n execute(\n webhook: Webhook\n ): Promise<Result<Webhook, WebhookPersistenceError | WebhookModelNotFoundError>>;\n}\n\nexport const UpdateWebhookRepository = createAbstraction<IUpdateWebhookRepository>(\n \"Webhooks/UpdateWebhookRepository\"\n);\n\nexport namespace UpdateWebhookRepository {\n export type Interface = IUpdateWebhookRepository;\n export type Error = WebhookPersistenceError | WebhookModelNotFoundError;\n}\n"],"names":["UpdateWebhookUseCase","createAbstraction","UpdateWebhookRepository"],"mappings":";AA+BO,MAAMA,uBAAuBC,kBAChC;AAeG,MAAMC,0BAA0BD,kBACnC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateWebhookUseCase } from "./UpdateWebhookUseCase.js";
|
|
3
|
+
import { UpdateWebhookRepository } from "./UpdateWebhookRepository.js";
|
|
4
|
+
const UpdateWebhookFeature = createFeature({
|
|
5
|
+
name: "UpdateWebhook",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(UpdateWebhookUseCase);
|
|
8
|
+
container.register(UpdateWebhookRepository).inSingletonScope();
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { UpdateWebhookFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhook/feature.js","sources":["../../../../src/api/features/UpdateWebhook/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateWebhookUseCase } from \"./UpdateWebhookUseCase.js\";\nimport { UpdateWebhookRepository } from \"./UpdateWebhookRepository.js\";\n\nexport const UpdateWebhookFeature = createFeature({\n name: \"UpdateWebhook\",\n register(container) {\n container.register(UpdateWebhookUseCase);\n container.register(UpdateWebhookRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateWebhookFeature","createFeature","container","UpdateWebhookUseCase","UpdateWebhookRepository"],"mappings":";;;AAIO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,yBAAyB,gBAAgB;IAChE;AACJ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
5
|
+
import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
6
|
+
import { WebhookDeliveryTransformer } from "../../../api/features/Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
7
|
+
import { UpdateWebhookDeliveryRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
8
|
+
import type { IUpdateDeliveryInput } from "./abstractions.js";
|
|
9
|
+
import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
|
|
10
|
+
declare class UpdateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
11
|
+
private readonly getModelRepository;
|
|
12
|
+
private readonly getLatestRevisionRepository;
|
|
13
|
+
private readonly updateEntryDataFactory;
|
|
14
|
+
private readonly updateEntryRepository;
|
|
15
|
+
private readonly transformer;
|
|
16
|
+
constructor(getModelRepository: GetModelRepository.Interface, getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface, updateEntryDataFactory: UpdateEntryDataFactory.Interface, updateEntryRepository: UpdateEntryRepository.Interface, transformer: WebhookDeliveryTransformer.Interface);
|
|
17
|
+
execute(id: string, input: IUpdateDeliveryInput): Promise<Result<WebhookDelivery, RepositoryAbstraction.Error>>;
|
|
18
|
+
}
|
|
19
|
+
export declare const UpdateWebhookDeliveryRepository: typeof UpdateWebhookDeliveryRepositoryImpl & {
|
|
20
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IUpdateWebhookDeliveryRepository>;
|
|
21
|
+
};
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
import { UpdateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
5
|
+
import { UpdateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js";
|
|
6
|
+
import { WebhookDeliveryTransformer } from "../Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
7
|
+
import { UpdateWebhookDeliveryRepository } from "./abstractions.js";
|
|
8
|
+
import { WebhookDeliveryNotFoundError, WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
9
|
+
import { WEBHOOK_DELIVERY_MODEL_ID } from "../../domain/constants.js";
|
|
10
|
+
class UpdateWebhookDeliveryRepositoryImpl {
|
|
11
|
+
constructor(getModelRepository, getLatestRevisionRepository, updateEntryDataFactory, updateEntryRepository, transformer){
|
|
12
|
+
this.getModelRepository = getModelRepository;
|
|
13
|
+
this.getLatestRevisionRepository = getLatestRevisionRepository;
|
|
14
|
+
this.updateEntryDataFactory = updateEntryDataFactory;
|
|
15
|
+
this.updateEntryRepository = updateEntryRepository;
|
|
16
|
+
this.transformer = transformer;
|
|
17
|
+
}
|
|
18
|
+
async execute(id, input) {
|
|
19
|
+
try {
|
|
20
|
+
const modelResult = await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);
|
|
21
|
+
if (modelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_DELIVERY_MODEL_ID));
|
|
22
|
+
const entryResult = await this.getLatestRevisionRepository.execute(modelResult.value, {
|
|
23
|
+
id
|
|
24
|
+
});
|
|
25
|
+
if (entryResult.isFail()) return Result.fail(new WebhookDeliveryNotFoundError(id));
|
|
26
|
+
const originalEntry = entryResult.value;
|
|
27
|
+
const existing = this.transformer.fromStorage(originalEntry);
|
|
28
|
+
const updated = {
|
|
29
|
+
...existing,
|
|
30
|
+
backgroundTaskId: input.backgroundTaskId ?? existing.backgroundTaskId,
|
|
31
|
+
status: input.status ?? existing.status,
|
|
32
|
+
payload: input.payload ?? existing.payload,
|
|
33
|
+
requestHeaders: input.requestHeaders ?? existing.requestHeaders,
|
|
34
|
+
responseTime: input.responseTime ?? existing.responseTime,
|
|
35
|
+
responseStatus: input.responseStatus ?? existing.responseStatus,
|
|
36
|
+
responseBody: input.responseBody ?? existing.responseBody
|
|
37
|
+
};
|
|
38
|
+
const storageValues = this.transformer.toStorage(updated);
|
|
39
|
+
const { entry } = await this.updateEntryDataFactory.create(modelResult.value, {
|
|
40
|
+
values: storageValues
|
|
41
|
+
}, originalEntry);
|
|
42
|
+
const updateResult = await this.updateEntryRepository.execute(modelResult.value, entry);
|
|
43
|
+
if (updateResult.isFail()) return Result.fail(WebhookPersistenceError.from(updateResult.error));
|
|
44
|
+
return Result.ok(updated);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const UpdateWebhookDeliveryRepository_UpdateWebhookDeliveryRepository = UpdateWebhookDeliveryRepository.createImplementation({
|
|
51
|
+
implementation: UpdateWebhookDeliveryRepositoryImpl,
|
|
52
|
+
dependencies: [
|
|
53
|
+
GetModelRepository,
|
|
54
|
+
GetLatestRevisionByEntryIdRepository,
|
|
55
|
+
UpdateEntryDataFactory,
|
|
56
|
+
UpdateEntryRepository,
|
|
57
|
+
WebhookDeliveryTransformer
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
export { UpdateWebhookDeliveryRepository_UpdateWebhookDeliveryRepository as UpdateWebhookDeliveryRepository };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=UpdateWebhookDeliveryRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js","sources":["../../../../src/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { GetLatestRevisionByEntryIdRepository } from \"@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js\";\nimport { UpdateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { UpdateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/UpdateEntry/index.js\";\nimport { WebhookDeliveryTransformer } from \"~/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js\";\nimport { UpdateWebhookDeliveryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport {\n WebhookDeliveryNotFoundError,\n WebhookModelNotFoundError,\n WebhookPersistenceError\n} from \"~/api/domain/errors.js\";\nimport { WEBHOOK_DELIVERY_MODEL_ID } from \"~/api/domain/constants.js\";\nimport type { IUpdateDeliveryInput } from \"./abstractions.js\";\nimport type {\n WebhookDelivery,\n WebhookDeliveryCmsEntryValues\n} from \"~/api/domain/WebhookDelivery.js\";\n\nclass UpdateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly updateEntryDataFactory: UpdateEntryDataFactory.Interface,\n private readonly updateEntryRepository: UpdateEntryRepository.Interface,\n private readonly transformer: WebhookDeliveryTransformer.Interface\n ) {}\n\n async execute(\n id: string,\n input: IUpdateDeliveryInput\n ): Promise<Result<WebhookDelivery, RepositoryAbstraction.Error>> {\n try {\n const modelResult = await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new WebhookModelNotFoundError(WEBHOOK_DELIVERY_MODEL_ID));\n }\n\n const entryResult =\n await this.getLatestRevisionRepository.execute<WebhookDeliveryCmsEntryValues>(\n modelResult.value,\n { id }\n );\n\n if (entryResult.isFail()) {\n return Result.fail(new WebhookDeliveryNotFoundError(id));\n }\n\n const originalEntry = entryResult.value;\n const existing = this.transformer.fromStorage(originalEntry);\n\n const updated: WebhookDelivery = {\n ...existing,\n backgroundTaskId: input.backgroundTaskId ?? existing.backgroundTaskId,\n status: input.status ?? existing.status,\n payload: input.payload ?? existing.payload,\n requestHeaders: input.requestHeaders ?? existing.requestHeaders,\n responseTime: input.responseTime ?? existing.responseTime,\n responseStatus: input.responseStatus ?? existing.responseStatus,\n responseBody: input.responseBody ?? existing.responseBody\n };\n\n const storageValues = this.transformer.toStorage(updated);\n\n const { entry } =\n await this.updateEntryDataFactory.create<WebhookDeliveryCmsEntryValues>(\n modelResult.value,\n { values: storageValues },\n originalEntry\n );\n\n const updateResult = await this.updateEntryRepository.execute(modelResult.value, entry);\n\n if (updateResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(updateResult.error));\n }\n\n return Result.ok(updated);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n}\n\nexport const UpdateWebhookDeliveryRepository = RepositoryAbstraction.createImplementation({\n implementation: UpdateWebhookDeliveryRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetLatestRevisionByEntryIdRepository,\n UpdateEntryDataFactory,\n UpdateEntryRepository,\n WebhookDeliveryTransformer\n ]\n});\n"],"names":["UpdateWebhookDeliveryRepositoryImpl","getModelRepository","getLatestRevisionRepository","updateEntryDataFactory","updateEntryRepository","transformer","id","input","modelResult","WEBHOOK_DELIVERY_MODEL_ID","Result","WebhookModelNotFoundError","entryResult","WebhookDeliveryNotFoundError","originalEntry","existing","updated","storageValues","entry","updateResult","WebhookPersistenceError","error","UpdateWebhookDeliveryRepository","RepositoryAbstraction","GetModelRepository","GetLatestRevisionByEntryIdRepository","UpdateEntryDataFactory","UpdateEntryRepository","WebhookDeliveryTransformer"],"mappings":";;;;;;;;;AAmBA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,2BAA2E,EAC3EC,sBAAwD,EACxDC,qBAAsD,EACtDC,WAAiD,CACpE;aALmBJ,kBAAkB,GAAlBA;aACAC,2BAA2B,GAA3BA;aACAC,sBAAsB,GAAtBA;aACAC,qBAAqB,GAArBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QACFC,EAAU,EACVC,KAA2B,EACkC;QAC7D,IAAI;YACA,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YAC1D,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,0BAA0BF;YAGrD,MAAMG,cACF,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC1CJ,YAAY,KAAK,EACjB;gBAAEF;YAAG;YAGb,IAAIM,YAAY,MAAM,IAClB,OAAOF,OAAO,IAAI,CAAC,IAAIG,6BAA6BP;YAGxD,MAAMQ,gBAAgBF,YAAY,KAAK;YACvC,MAAMG,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,CAACD;YAE9C,MAAME,UAA2B;gBAC7B,GAAGD,QAAQ;gBACX,kBAAkBR,MAAM,gBAAgB,IAAIQ,SAAS,gBAAgB;gBACrE,QAAQR,MAAM,MAAM,IAAIQ,SAAS,MAAM;gBACvC,SAASR,MAAM,OAAO,IAAIQ,SAAS,OAAO;gBAC1C,gBAAgBR,MAAM,cAAc,IAAIQ,SAAS,cAAc;gBAC/D,cAAcR,MAAM,YAAY,IAAIQ,SAAS,YAAY;gBACzD,gBAAgBR,MAAM,cAAc,IAAIQ,SAAS,cAAc;gBAC/D,cAAcR,MAAM,YAAY,IAAIQ,SAAS,YAAY;YAC7D;YAEA,MAAME,gBAAgB,IAAI,CAAC,WAAW,CAAC,SAAS,CAACD;YAEjD,MAAM,EAAEE,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCV,YAAY,KAAK,EACjB;gBAAE,QAAQS;YAAc,GACxBH;YAGR,MAAMK,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACX,YAAY,KAAK,EAAEU;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAOT,OAAO,IAAI,CAACU,wBAAwB,IAAI,CAACD,aAAa,KAAK;YAGtE,OAAOT,OAAO,EAAE,CAACM;QACrB,EAAE,OAAOK,OAAO;YACZ,OAAOX,OAAO,IAAI,CAACU,wBAAwB,IAAI,CAACC;QACpD;IACJ;AACJ;AAEO,MAAMC,kEAAkCC,gCAAAA,oBAA0C,CAAC;IACtF,gBAAgBvB;IAChB,cAAc;QACVwB;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { GenericRecord } from "@webiny/api/types.js";
|
|
3
|
+
import type { WebhookDelivery, WebhookDeliveryStatus } from "../../../api/domain/WebhookDelivery.js";
|
|
4
|
+
import type { WebhookPersistenceError, WebhookModelNotFoundError, WebhookDeliveryNotFoundError } from "../../../api/domain/errors.js";
|
|
5
|
+
export interface IUpdateDeliveryInput {
|
|
6
|
+
backgroundTaskId?: string;
|
|
7
|
+
status?: WebhookDeliveryStatus;
|
|
8
|
+
payload?: GenericRecord;
|
|
9
|
+
requestHeaders?: object;
|
|
10
|
+
responseTime?: number;
|
|
11
|
+
responseStatus?: number;
|
|
12
|
+
responseBody?: string;
|
|
13
|
+
}
|
|
14
|
+
type IError = WebhookPersistenceError | WebhookModelNotFoundError | WebhookDeliveryNotFoundError;
|
|
15
|
+
export interface IUpdateWebhookDeliveryRepository {
|
|
16
|
+
execute(id: string, input: IUpdateDeliveryInput): Promise<Result<WebhookDelivery, IError>>;
|
|
17
|
+
}
|
|
18
|
+
export declare const UpdateWebhookDeliveryRepository: import("@webiny/di").Abstraction<IUpdateWebhookDeliveryRepository>;
|
|
19
|
+
export declare namespace UpdateWebhookDeliveryRepository {
|
|
20
|
+
type Interface = IUpdateWebhookDeliveryRepository;
|
|
21
|
+
type Error = IError;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhookDelivery/abstractions.js","sources":["../../../../src/api/features/UpdateWebhookDelivery/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { WebhookDelivery, WebhookDeliveryStatus } from \"~/api/domain/WebhookDelivery.js\";\nimport type {\n WebhookPersistenceError,\n WebhookModelNotFoundError,\n WebhookDeliveryNotFoundError\n} from \"~/api/domain/errors.js\";\n\nexport interface IUpdateDeliveryInput {\n backgroundTaskId?: string;\n status?: WebhookDeliveryStatus;\n payload?: GenericRecord;\n requestHeaders?: object;\n responseTime?: number;\n responseStatus?: number;\n responseBody?: string;\n}\n\ntype IError = WebhookPersistenceError | WebhookModelNotFoundError | WebhookDeliveryNotFoundError;\n\nexport interface IUpdateWebhookDeliveryRepository {\n execute(id: string, input: IUpdateDeliveryInput): Promise<Result<WebhookDelivery, IError>>;\n}\n\nexport const UpdateWebhookDeliveryRepository = createAbstraction<IUpdateWebhookDeliveryRepository>(\n \"Webhooks/UpdateWebhookDeliveryRepository\"\n);\n\nexport namespace UpdateWebhookDeliveryRepository {\n export type Interface = IUpdateWebhookDeliveryRepository;\n export type Error = IError;\n}\n"],"names":["UpdateWebhookDeliveryRepository","createAbstraction"],"mappings":";AAyBO,MAAMA,kCAAkCC,kBAC3C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { UpdateWebhookDeliveryRepository } from "./UpdateWebhookDeliveryRepository.js";
|
|
3
|
+
const UpdateWebhookDeliveryFeature = createFeature({
|
|
4
|
+
name: "UpdateWebhookDelivery",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(UpdateWebhookDeliveryRepository).inSingletonScope();
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { UpdateWebhookDeliveryFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/UpdateWebhookDelivery/feature.js","sources":["../../../../src/api/features/UpdateWebhookDelivery/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { UpdateWebhookDeliveryRepository } from \"./UpdateWebhookDeliveryRepository.js\";\n\nexport const UpdateWebhookDeliveryFeature = createFeature({\n name: \"UpdateWebhookDelivery\",\n register(container) {\n container.register(UpdateWebhookDeliveryRepository).inSingletonScope();\n }\n});\n"],"names":["UpdateWebhookDeliveryFeature","createFeature","container","UpdateWebhookDeliveryRepository"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,iCAAiC,gBAAgB;IACxE;AACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { WebhookDispatcher as WebhookDispatcherAbstraction, WebhookProvider } from "@webiny/api-core/features/webhooks/index.js";
|
|
2
|
+
import { TaskService } from "@webiny/api-core/exports/api/tasks.js";
|
|
3
|
+
import { ListWebhooksRepository } from "../../../api/features/ListWebhooks/abstractions.js";
|
|
4
|
+
import { CreateWebhookDeliveryRepository } from "../../../api/features/CreateWebhookDelivery/abstractions.js";
|
|
5
|
+
import type { IWebhookDispatcherData } from "@webiny/api-core/features/webhooks/WebhookDispatcher/abstractions.js";
|
|
6
|
+
declare class WebhookDispatcherImpl implements WebhookDispatcherAbstraction.Interface {
|
|
7
|
+
private readonly listWebhooksRepository;
|
|
8
|
+
private readonly createDeliveryRepository;
|
|
9
|
+
private readonly taskService;
|
|
10
|
+
private readonly provider;
|
|
11
|
+
constructor(listWebhooksRepository: ListWebhooksRepository.Interface, createDeliveryRepository: CreateWebhookDeliveryRepository.Interface, taskService: TaskService.Interface, provider: WebhookProvider.Interface);
|
|
12
|
+
dispatch<T extends IWebhookDispatcherData = IWebhookDispatcherData>(eventName: string, payload: T): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export declare const WebhookDispatcher: typeof WebhookDispatcherImpl & {
|
|
15
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/webhooks/WebhookDispatcher/abstractions.js").IWebhookDispatcher>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { WebhookDispatcher, WebhookProvider } from "@webiny/api-core/features/webhooks/index.js";
|
|
2
|
+
import { TaskService } from "@webiny/api-core/exports/api/tasks.js";
|
|
3
|
+
import { ListWebhooksRepository } from "../ListWebhooks/abstractions.js";
|
|
4
|
+
import { CreateWebhookDeliveryRepository } from "../CreateWebhookDelivery/abstractions.js";
|
|
5
|
+
import { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_RETENTION_DAYS } from "../../domain/constants.js";
|
|
6
|
+
class WebhookDispatcherImpl {
|
|
7
|
+
constructor(listWebhooksRepository, createDeliveryRepository, taskService, provider){
|
|
8
|
+
this.listWebhooksRepository = listWebhooksRepository;
|
|
9
|
+
this.createDeliveryRepository = createDeliveryRepository;
|
|
10
|
+
this.taskService = taskService;
|
|
11
|
+
this.provider = provider;
|
|
12
|
+
}
|
|
13
|
+
async dispatch(eventName, payload) {
|
|
14
|
+
const events = await this.provider.execute();
|
|
15
|
+
const event = events.find((event)=>event.eventName === eventName);
|
|
16
|
+
if (!event) return;
|
|
17
|
+
const result = await this.listWebhooksRepository.execute({
|
|
18
|
+
where: {
|
|
19
|
+
enabled: true,
|
|
20
|
+
events_contains: eventName
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
if (result.isFail()) return;
|
|
24
|
+
const expiresAt = new Date(Date.now() + 24 * WEBHOOK_DELIVERY_RETENTION_DAYS * 3600000).toISOString();
|
|
25
|
+
for (const webhook of result.value.items){
|
|
26
|
+
const deliveryResult = await this.createDeliveryRepository.execute({
|
|
27
|
+
webhookId: webhook.id,
|
|
28
|
+
eventType: event.eventName,
|
|
29
|
+
status: "pending",
|
|
30
|
+
expiresAt,
|
|
31
|
+
payload
|
|
32
|
+
});
|
|
33
|
+
if (!deliveryResult.isFail()) await this.taskService.trigger({
|
|
34
|
+
definition: SEND_WEBHOOK_TASK,
|
|
35
|
+
name: `Webhook: ${webhook.slug} — ${event.eventName}`,
|
|
36
|
+
input: {
|
|
37
|
+
webhookId: webhook.id,
|
|
38
|
+
eventName,
|
|
39
|
+
deliveryId: deliveryResult.value.id
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const WebhookDispatcher_WebhookDispatcher = WebhookDispatcher.createImplementation({
|
|
46
|
+
implementation: WebhookDispatcherImpl,
|
|
47
|
+
dependencies: [
|
|
48
|
+
ListWebhooksRepository,
|
|
49
|
+
CreateWebhookDeliveryRepository,
|
|
50
|
+
TaskService,
|
|
51
|
+
WebhookProvider
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
export { WebhookDispatcher_WebhookDispatcher as WebhookDispatcher };
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=WebhookDispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WebhookDispatcher/WebhookDispatcher.js","sources":["../../../../src/api/features/WebhookDispatcher/WebhookDispatcher.ts"],"sourcesContent":["import {\n WebhookDispatcher as WebhookDispatcherAbstraction,\n WebhookProvider\n} from \"@webiny/api-core/features/webhooks/index.js\";\nimport { TaskService } from \"@webiny/api-core/exports/api/tasks.js\";\nimport { ListWebhooksRepository } from \"~/api/features/ListWebhooks/abstractions.js\";\nimport { CreateWebhookDeliveryRepository } from \"~/api/features/CreateWebhookDelivery/abstractions.js\";\nimport { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_RETENTION_DAYS } from \"~/api/domain/constants.js\";\nimport type { IWebhookDispatcherData } from \"@webiny/api-core/features/webhooks/WebhookDispatcher/abstractions.js\";\nimport type { ISendWebhookTaskInput } from \"~/api/features/SendWebhookTask/types.js\";\n\nclass WebhookDispatcherImpl implements WebhookDispatcherAbstraction.Interface {\n constructor(\n private readonly listWebhooksRepository: ListWebhooksRepository.Interface,\n private readonly createDeliveryRepository: CreateWebhookDeliveryRepository.Interface,\n private readonly taskService: TaskService.Interface,\n private readonly provider: WebhookProvider.Interface\n ) {}\n\n async dispatch<T extends IWebhookDispatcherData = IWebhookDispatcherData>(\n eventName: string,\n payload: T\n ): Promise<void> {\n /**\n * Let's first check if there is defined webhook event with the given name.\n * If not, we can just skip the dispatching process and db query.\n */\n const events = await this.provider.execute();\n const event = events.find(event => {\n return event.eventName === eventName;\n });\n if (!event) {\n return;\n }\n /**\n * Then we go and find all webhooks that are enabled and have the given event in their events list.\n */\n const result = await this.listWebhooksRepository.execute({\n where: {\n enabled: true,\n events_contains: eventName\n }\n });\n\n if (result.isFail()) {\n return;\n }\n\n const expiresAt = new Date(\n Date.now() + WEBHOOK_DELIVERY_RETENTION_DAYS * 24 * 60 * 60 * 1000\n ).toISOString();\n\n for (const webhook of result.value.items) {\n const deliveryResult = await this.createDeliveryRepository.execute({\n webhookId: webhook.id,\n eventType: event.eventName,\n status: \"pending\",\n expiresAt,\n payload\n });\n\n if (deliveryResult.isFail()) {\n continue;\n }\n\n await this.taskService.trigger<ISendWebhookTaskInput>({\n definition: SEND_WEBHOOK_TASK,\n name: `Webhook: ${webhook.slug} — ${event.eventName}`,\n input: {\n webhookId: webhook.id,\n eventName,\n deliveryId: deliveryResult.value.id\n }\n });\n }\n }\n}\n\nexport const WebhookDispatcher = WebhookDispatcherAbstraction.createImplementation({\n implementation: WebhookDispatcherImpl,\n dependencies: [\n ListWebhooksRepository,\n CreateWebhookDeliveryRepository,\n TaskService,\n WebhookProvider\n ]\n});\n"],"names":["WebhookDispatcherImpl","listWebhooksRepository","createDeliveryRepository","taskService","provider","eventName","payload","events","event","result","expiresAt","Date","WEBHOOK_DELIVERY_RETENTION_DAYS","webhook","deliveryResult","SEND_WEBHOOK_TASK","WebhookDispatcher","WebhookDispatcherAbstraction","ListWebhooksRepository","CreateWebhookDeliveryRepository","TaskService","WebhookProvider"],"mappings":";;;;;AAWA,MAAMA;IACF,YACqBC,sBAAwD,EACxDC,wBAAmE,EACnEC,WAAkC,EAClCC,QAAmC,CACtD;aAJmBH,sBAAsB,GAAtBA;aACAC,wBAAwB,GAAxBA;aACAC,WAAW,GAAXA;aACAC,QAAQ,GAARA;IAClB;IAEH,MAAM,SACFC,SAAiB,EACjBC,OAAU,EACG;QAKb,MAAMC,SAAS,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO;QAC1C,MAAMC,QAAQD,OAAO,IAAI,CAACC,CAAAA,QACfA,MAAM,SAAS,KAAKH;QAE/B,IAAI,CAACG,OACD;QAKJ,MAAMC,SAAS,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACrD,OAAO;gBACH,SAAS;gBACT,iBAAiBJ;YACrB;QACJ;QAEA,IAAII,OAAO,MAAM,IACb;QAGJ,MAAMC,YAAY,IAAIC,KAClBA,KAAK,GAAG,KAAKC,AAAkC,KAAlCA,kCAAAA,SACf,WAAW;QAEb,KAAK,MAAMC,WAAWJ,OAAO,KAAK,CAAC,KAAK,CAAE;YACtC,MAAMK,iBAAiB,MAAM,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;gBAC/D,WAAWD,QAAQ,EAAE;gBACrB,WAAWL,MAAM,SAAS;gBAC1B,QAAQ;gBACRE;gBACAJ;YACJ;YAEA,KAAIQ,eAAe,MAAM,IAIzB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAwB;gBAClD,YAAYC;gBACZ,MAAM,CAAC,SAAS,EAAEF,QAAQ,IAAI,CAAC,GAAG,EAAEL,MAAM,SAAS,EAAE;gBACrD,OAAO;oBACH,WAAWK,QAAQ,EAAE;oBACrBR;oBACA,YAAYS,eAAe,KAAK,CAAC,EAAE;gBACvC;YACJ;QACJ;IACJ;AACJ;AAEO,MAAME,sCAAoBC,kBAAAA,oBAAiD,CAAC;IAC/E,gBAAgBjB;IAChB,cAAc;QACVkB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { WebhookDispatcher } from "./WebhookDispatcher.js";
|
|
3
|
+
const WebhookDispatcherFeature = createFeature({
|
|
4
|
+
name: "WebhookDispatcher",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(WebhookDispatcher).inSingletonScope();
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { WebhookDispatcherFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WebhookDispatcher/feature.js","sources":["../../../../src/api/features/WebhookDispatcher/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { WebhookDispatcher } from \"./WebhookDispatcher.js\";\n\nexport const WebhookDispatcherFeature = createFeature({\n name: \"WebhookDispatcher\",\n register(container) {\n container.register(WebhookDispatcher).inSingletonScope();\n }\n});\n"],"names":["WebhookDispatcherFeature","createFeature","container","WebhookDispatcher"],"mappings":";;AAGO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,mBAAmB,gBAAgB;IAC1D;AACJ"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Permissions } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
import { WEBHOOK_PERMISSIONS_SCHEMA } from "../../../api/permissions.js";
|
|
3
|
+
export declare const WebhookPermissions: import("@webiny/di").Abstraction<import("@webiny/api-core/features/security/permissions/types").PermissionsTyped<{
|
|
4
|
+
readonly prefix: "webhooks";
|
|
5
|
+
readonly fullAccess: true;
|
|
6
|
+
readonly entities: readonly [{
|
|
7
|
+
readonly id: "webhook";
|
|
8
|
+
readonly permission: "webhooks.webhook";
|
|
9
|
+
readonly scopes: readonly ["full"];
|
|
10
|
+
readonly actions: readonly [{
|
|
11
|
+
readonly name: "rwd";
|
|
12
|
+
}];
|
|
13
|
+
}];
|
|
14
|
+
}>>;
|
|
15
|
+
export declare namespace WebhookPermissions {
|
|
16
|
+
type Interface = Permissions<typeof WEBHOOK_PERMISSIONS_SCHEMA>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createPermissionsAbstraction } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
import { WEBHOOK_PERMISSIONS_SCHEMA } from "../../permissions.js";
|
|
3
|
+
const WebhookPermissions = createPermissionsAbstraction(WEBHOOK_PERMISSIONS_SCHEMA);
|
|
4
|
+
export { WebhookPermissions };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WebhookPermissions/abstractions.js","sources":["../../../../src/api/features/WebhookPermissions/abstractions.ts"],"sourcesContent":["import { createPermissionsAbstraction } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport type { Permissions } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { WEBHOOK_PERMISSIONS_SCHEMA } from \"~/api/permissions.js\";\n\nexport const WebhookPermissions = createPermissionsAbstraction(WEBHOOK_PERMISSIONS_SCHEMA);\n\nexport namespace WebhookPermissions {\n export type Interface = Permissions<typeof WEBHOOK_PERMISSIONS_SCHEMA>;\n}\n"],"names":["WebhookPermissions","createPermissionsAbstraction","WEBHOOK_PERMISSIONS_SCHEMA"],"mappings":";;AAIO,MAAMA,qBAAqBC,6BAA6BC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createPermissionsFeature } from "@webiny/api-core/features/security/permissions/index.js";
|
|
2
|
+
import { WEBHOOK_PERMISSIONS_SCHEMA } from "../../permissions.js";
|
|
3
|
+
import { WebhookPermissions } from "./abstractions.js";
|
|
4
|
+
const WebhookPermissionsFeature = createPermissionsFeature(WEBHOOK_PERMISSIONS_SCHEMA, WebhookPermissions);
|
|
5
|
+
export { WebhookPermissionsFeature };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/WebhookPermissions/feature.js","sources":["../../../../src/api/features/WebhookPermissions/feature.ts"],"sourcesContent":["import { createPermissionsFeature } from \"@webiny/api-core/features/security/permissions/index.js\";\nimport { WEBHOOK_PERMISSIONS_SCHEMA } from \"~/api/permissions.js\";\nimport { WebhookPermissions } from \"./abstractions.js\";\n\nexport const WebhookPermissionsFeature = createPermissionsFeature(\n WEBHOOK_PERMISSIONS_SCHEMA,\n WebhookPermissions\n);\n"],"names":["WebhookPermissionsFeature","createPermissionsFeature","WEBHOOK_PERMISSIONS_SCHEMA","WebhookPermissions"],"mappings":";;;AAIO,MAAMA,4BAA4BC,yBACrCC,4BACAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebhookSignPayload as WebhookSignPayloadAbstraction } from "@webiny/api-core/features/webhooks/index.js";
|
|
2
|
+
declare class WebhookSignPayloadImpl implements WebhookSignPayloadAbstraction.Interface {
|
|
3
|
+
sign(msgId: string, timestamp: Date, rawBody: string | Buffer, secret: string): Promise<WebhookSignPayloadAbstraction.Headers>;
|
|
4
|
+
}
|
|
5
|
+
export declare const WebhookSignPayload: typeof WebhookSignPayloadImpl & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/webhooks/WebhookSignPayload/abstractions").IWebhookSignPayload>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|