@webiny/webhooks 0.0.0-unstable.7be00a75a9
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/WebhookRoutes.d.ts +2 -0
- package/admin/WebhookRoutes.js +68 -0
- package/admin/WebhookRoutes.js.map +1 -0
- package/admin/Webhooks.d.ts +2 -0
- package/admin/Webhooks.js +64 -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/getWebhookSettings/GetWebhookSettingsGateway.d.ts +12 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +41 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js.map +1 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.d.ts +11 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js +18 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js.map +1 -0
- package/admin/features/getWebhookSettings/abstractions.d.ts +15 -0
- package/admin/features/getWebhookSettings/abstractions.js +6 -0
- package/admin/features/getWebhookSettings/abstractions.js.map +1 -0
- package/admin/features/getWebhookSettings/feature.d.ts +3 -0
- package/admin/features/getWebhookSettings/feature.js +19 -0
- package/admin/features/getWebhookSettings/feature.js.map +1 -0
- package/admin/features/getWebhookSettings/index.d.ts +2 -0
- package/admin/features/getWebhookSettings/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 +33 -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/features/updateWebhookSettings/UpdateWebhookSettingsGateway.d.ts +12 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js +44 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js.map +1 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +11 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js +18 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
- package/admin/features/updateWebhookSettings/abstractions.d.ts +19 -0
- package/admin/features/updateWebhookSettings/abstractions.js +6 -0
- package/admin/features/updateWebhookSettings/abstractions.js.map +1 -0
- package/admin/features/updateWebhookSettings/feature.d.ts +3 -0
- package/admin/features/updateWebhookSettings/feature.js +19 -0
- package/admin/features/updateWebhookSettings/feature.js.map +1 -0
- package/admin/features/updateWebhookSettings/index.d.ts +2 -0
- package/admin/features/updateWebhookSettings/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 +21 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +57 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/abstractions.d.ts +18 -0
- package/admin/presentation/WebhookDeliveries/abstractions.js +5 -0
- package/admin/presentation/WebhookDeliveries/abstractions.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryAccordionRow.d.ts +11 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryAccordionRow.js +36 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryAccordionRow.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +11 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +32 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetailContent.d.ts +7 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetailContent.js +76 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetailContent.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetailPanel.d.ts +9 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetailPanel.js +22 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetailPanel.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/components/statusVariant.d.ts +1 -0
- package/admin/presentation/WebhookDeliveries/components/statusVariant.js +13 -0
- package/admin/presentation/WebhookDeliveries/components/statusVariant.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/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.d.ts +37 -0
- package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js +196 -0
- package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/abstractions.d.ts +39 -0
- package/admin/presentation/WebhookDeliveriesPage/abstractions.js +5 -0
- package/admin/presentation/WebhookDeliveriesPage/abstractions.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.d.ts +9 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js +43 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.d.ts +9 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js +66 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.d.ts +9 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js +45 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.d.ts +2 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js +64 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/feature.d.ts +3 -0
- package/admin/presentation/WebhookDeliveriesPage/feature.js +17 -0
- package/admin/presentation/WebhookDeliveriesPage/feature.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/index.d.ts +5 -0
- package/admin/presentation/WebhookDeliveriesPage/index.js +1 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +42 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js +252 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -0
- package/admin/presentation/WebhookForm/abstractions.d.ts +27 -0
- package/admin/presentation/WebhookForm/abstractions.js +5 -0
- package/admin/presentation/WebhookForm/abstractions.js.map +1 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +9 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.js +47 -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 +97 -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 +46 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.js +92 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -0
- package/admin/presentation/WebhookList/abstractions.d.ts +45 -0
- package/admin/presentation/WebhookList/abstractions.js +5 -0
- package/admin/presentation/WebhookList/abstractions.js.map +1 -0
- package/admin/presentation/WebhookList/components/CreateWebhookButton.d.ts +2 -0
- package/admin/presentation/WebhookList/components/CreateWebhookButton.js +22 -0
- package/admin/presentation/WebhookList/components/CreateWebhookButton.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookListContent.d.ts +9 -0
- package/admin/presentation/WebhookList/components/WebhookListContent.js +158 -0
- package/admin/presentation/WebhookList/components/WebhookListContent.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookListView.d.ts +2 -0
- package/admin/presentation/WebhookList/components/WebhookListView.js +46 -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/WebhookSettings/WebhookSettingsPresenter.d.ts +21 -0
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +89 -0
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js.map +1 -0
- package/admin/presentation/WebhookSettings/abstractions.d.ts +16 -0
- package/admin/presentation/WebhookSettings/abstractions.js +5 -0
- package/admin/presentation/WebhookSettings/abstractions.js.map +1 -0
- package/admin/presentation/WebhookSettings/components/WebhookSettingsView.d.ts +2 -0
- package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js +56 -0
- package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js.map +1 -0
- package/admin/presentation/WebhookSettings/feature.d.ts +3 -0
- package/admin/presentation/WebhookSettings/feature.js +17 -0
- package/admin/presentation/WebhookSettings/feature.js.map +1 -0
- package/admin/presentation/WebhookSettings/index.d.ts +2 -0
- package/admin/presentation/WebhookSettings/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 +9 -0
- package/admin/routes.js +25 -0
- package/admin/routes.js.map +1 -0
- package/admin/shared/types.d.ts +9 -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 +65 -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 +35 -0
- package/api/domain/WebhookDelivery.js +0 -0
- package/api/domain/WebhookSettings.d.ts +4 -0
- package/api/domain/WebhookSettings.js +0 -0
- package/api/domain/constants.d.ts +5 -0
- package/api/domain/constants.js +8 -0
- package/api/domain/constants.js.map +1 -0
- package/api/domain/errors.d.ts +41 -0
- package/api/domain/errors.js +83 -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 +48 -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/CreateWebhook/schema.d.ts +10 -0
- package/api/features/CreateWebhook/schema.js +16 -0
- package/api/features/CreateWebhook/schema.js.map +1 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +20 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +60 -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 +34 -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/DeleteWebhook/schema.d.ts +4 -0
- package/api/features/DeleteWebhook/schema.js +7 -0
- package/api/features/DeleteWebhook/schema.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 +29 -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/GetWebhook/schema.d.ts +4 -0
- package/api/features/GetWebhook/schema.js +7 -0
- package/api/features/GetWebhook/schema.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 +29 -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/GetWebhookDelivery/schema.d.ts +4 -0
- package/api/features/GetWebhookDelivery/schema.js +7 -0
- package/api/features/GetWebhookDelivery/schema.js.map +1 -0
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.d.ts +19 -0
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js +57 -0
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js.map +1 -0
- package/api/features/GetWebhookSettings/abstractions.d.ts +13 -0
- package/api/features/GetWebhookSettings/abstractions.js +5 -0
- package/api/features/GetWebhookSettings/abstractions.js.map +1 -0
- package/api/features/GetWebhookSettings/feature.d.ts +4 -0
- package/api/features/GetWebhookSettings/feature.js +11 -0
- package/api/features/GetWebhookSettings/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 +27 -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/ListWebhookDeliveries/schema.d.ts +7 -0
- package/api/features/ListWebhookDeliveries/schema.js +10 -0
- package/api/features/ListWebhookDeliveries/schema.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 +27 -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/ListWebhooks/schema.d.ts +7 -0
- package/api/features/ListWebhooks/schema.js +10 -0
- package/api/features/ListWebhooks/schema.js.map +1 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +22 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +70 -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/ResendWebhookDelivery/schema.d.ts +4 -0
- package/api/features/ResendWebhookDelivery/schema.js +7 -0
- package/api/features/ResendWebhookDelivery/schema.js.map +1 -0
- package/api/features/SendWebhookTask/SendWebhookTask.d.ts +33 -0
- package/api/features/SendWebhookTask/SendWebhookTask.js +111 -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 +16 -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 +21 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +65 -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/TriggerWebhook/schema.d.ts +5 -0
- package/api/features/TriggerWebhook/schema.js +8 -0
- package/api/features/TriggerWebhook/schema.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 +42 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -0
- package/api/features/UpdateWebhook/abstractions.d.ts +30 -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/UpdateWebhook/schema.d.ts +9 -0
- package/api/features/UpdateWebhook/schema.js +15 -0
- package/api/features/UpdateWebhook/schema.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/UpdateWebhookSettings/UpdateWebhookSettingsRepository.d.ts +21 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +62 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js.map +1 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +14 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js +27 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
- package/api/features/UpdateWebhookSettings/abstractions.d.ts +27 -0
- package/api/features/UpdateWebhookSettings/abstractions.js +6 -0
- package/api/features/UpdateWebhookSettings/abstractions.js.map +1 -0
- package/api/features/UpdateWebhookSettings/feature.d.ts +4 -0
- package/api/features/UpdateWebhookSettings/feature.js +13 -0
- package/api/features/UpdateWebhookSettings/feature.js.map +1 -0
- package/api/features/UpdateWebhookSettings/schema.d.ts +5 -0
- package/api/features/UpdateWebhookSettings/schema.js +9 -0
- package/api/features/UpdateWebhookSettings/schema.js.map +1 -0
- package/api/features/WebhookDeliver/WebhookDeliver.d.ts +13 -0
- package/api/features/WebhookDeliver/WebhookDeliver.js +79 -0
- package/api/features/WebhookDeliver/WebhookDeliver.js.map +1 -0
- package/api/features/WebhookDeliver/abstractions.d.ts +24 -0
- package/api/features/WebhookDeliver/abstractions.js +5 -0
- package/api/features/WebhookDeliver/abstractions.js.map +1 -0
- package/api/features/WebhookDeliver/feature.d.ts +4 -0
- package/api/features/WebhookDeliver/feature.js +11 -0
- package/api/features/WebhookDeliver/feature.js.map +1 -0
- package/api/features/WebhookDeliver/index.d.ts +2 -0
- package/api/features/WebhookDeliver/index.js +2 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +19 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.js +61 -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 +9 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js +26 -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 +166 -0
- package/api/graphql/WebhookCrudSchema.js.map +1 -0
- package/api/graphql/WebhookDeliverySchema.d.ts +8 -0
- package/api/graphql/WebhookDeliverySchema.js +100 -0
- package/api/graphql/WebhookDeliverySchema.js.map +1 -0
- package/api/graphql/WebhookEventSchema.d.ts +8 -0
- package/api/graphql/WebhookEventSchema.js +45 -0
- package/api/graphql/WebhookEventSchema.js.map +1 -0
- package/api/graphql/WebhookSettingsSchema.d.ts +8 -0
- package/api/graphql/WebhookSettingsSchema.js +62 -0
- package/api/graphql/WebhookSettingsSchema.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/models/WebhookSettingsModel.d.ts +8 -0
- package/api/models/WebhookSettingsModel.js +28 -0
- package/api/models/WebhookSettingsModel.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/api/utils/isValidEndpointUrl.d.ts +1 -0
- package/api/utils/isValidEndpointUrl.js +13 -0
- package/api/utils/isValidEndpointUrl.js.map +1 -0
- package/exports/api/webhooks.d.ts +5 -0
- package/exports/api/webhooks.js +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { BaseError } from "@webiny/feature/api";
|
|
2
|
+
import { parseZodError } from "@webiny/utils";
|
|
3
|
+
class WebhookNotFoundError extends BaseError {
|
|
4
|
+
constructor(id){
|
|
5
|
+
super({
|
|
6
|
+
message: `Webhook "${id}" was not found.`
|
|
7
|
+
}), this.code = "WEBHOOK_NOT_FOUND";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
class WebhookDeliveryNotFoundError extends BaseError {
|
|
11
|
+
constructor(id){
|
|
12
|
+
super({
|
|
13
|
+
message: `Webhook delivery "${id}" was not found.`
|
|
14
|
+
}), this.code = "WEBHOOK_DELIVERY_NOT_FOUND";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
class WebhookValidationError extends BaseError {
|
|
18
|
+
constructor(error){
|
|
19
|
+
if ("string" == typeof error) super({
|
|
20
|
+
message: error,
|
|
21
|
+
data: {
|
|
22
|
+
issues: []
|
|
23
|
+
}
|
|
24
|
+
}), this.code = "WEBHOOK_VALIDATION_ERROR";
|
|
25
|
+
else {
|
|
26
|
+
const issues = parseZodError(error);
|
|
27
|
+
super({
|
|
28
|
+
message: "Validation failed.",
|
|
29
|
+
data: {
|
|
30
|
+
issues
|
|
31
|
+
}
|
|
32
|
+
}), this.code = "WEBHOOK_VALIDATION_ERROR";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class WebhookPersistenceError extends BaseError {
|
|
37
|
+
constructor(error){
|
|
38
|
+
super({
|
|
39
|
+
message: error.message,
|
|
40
|
+
data: {
|
|
41
|
+
originalMessage: error.message
|
|
42
|
+
}
|
|
43
|
+
}), this.code = "WEBHOOK_PERSISTENCE_ERROR";
|
|
44
|
+
}
|
|
45
|
+
static from(error) {
|
|
46
|
+
if (error instanceof Error) {
|
|
47
|
+
const instance = new WebhookPersistenceError(error);
|
|
48
|
+
const data = {
|
|
49
|
+
originalMessage: error.message,
|
|
50
|
+
originalCode: error.code,
|
|
51
|
+
originalData: error.data
|
|
52
|
+
};
|
|
53
|
+
instance.data = data;
|
|
54
|
+
instance.stack = error.stack;
|
|
55
|
+
return instance;
|
|
56
|
+
}
|
|
57
|
+
return new WebhookPersistenceError(new Error(String(error)));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
class WebhookModelNotFoundError extends BaseError {
|
|
61
|
+
constructor(modelId){
|
|
62
|
+
super({
|
|
63
|
+
message: `Webhook model "${modelId}" was not found.`
|
|
64
|
+
}), this.code = "WEBHOOK_MODEL_NOT_FOUND";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
class WebhookVerificationFailedError extends BaseError {
|
|
68
|
+
constructor(message){
|
|
69
|
+
super({
|
|
70
|
+
message
|
|
71
|
+
}), this.code = "WEBHOOK_VERIFICATION_FAILED";
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class WebhookNotAuthorizedError extends BaseError {
|
|
75
|
+
constructor(){
|
|
76
|
+
super({
|
|
77
|
+
message: "Not authorized!"
|
|
78
|
+
}), this.code = "WEBHOOK_NOT_AUTHORIZED";
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
export { WebhookDeliveryNotFoundError, WebhookModelNotFoundError, WebhookNotAuthorizedError, WebhookNotFoundError, WebhookPersistenceError, WebhookValidationError, WebhookVerificationFailedError };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/domain/errors.js","sources":["../../../src/api/domain/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\nimport type { ZodError } from \"zod\";\nimport { parseZodError } from \"@webiny/utils\";\nimport type { ValidationIssue } from \"@webiny/utils\";\n\nexport class WebhookNotFoundError extends BaseError {\n override readonly code = \"WEBHOOK_NOT_FOUND\" as const;\n\n constructor(id: string) {\n super({ message: `Webhook \"${id}\" was not found.` });\n }\n}\n\nexport class WebhookDeliveryNotFoundError extends BaseError {\n override readonly code = \"WEBHOOK_DELIVERY_NOT_FOUND\" as const;\n\n constructor(id: string) {\n super({ message: `Webhook delivery \"${id}\" was not found.` });\n }\n}\n\ninterface WebhookValidationErrorData {\n issues: ValidationIssue[];\n}\n\nexport class WebhookValidationError extends BaseError<WebhookValidationErrorData> {\n override readonly code = \"WEBHOOK_VALIDATION_ERROR\" as const;\n\n constructor(error: string | ZodError) {\n if (typeof error === \"string\") {\n super({ message: error, data: { issues: [] } });\n } else {\n const issues = parseZodError(error);\n super({ message: \"Validation failed.\", data: { issues } });\n }\n }\n}\n\ninterface WebhookPersistenceErrorData {\n originalMessage: string;\n originalCode?: string;\n originalData?: unknown;\n}\n\nexport class WebhookPersistenceError extends BaseError<WebhookPersistenceErrorData> {\n override readonly code = \"WEBHOOK_PERSISTENCE_ERROR\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { originalMessage: error.message } });\n }\n\n static from(error: unknown): WebhookPersistenceError {\n if (error instanceof Error) {\n const instance = new WebhookPersistenceError(error);\n const data: WebhookPersistenceErrorData = {\n originalMessage: error.message,\n originalCode: (error as any).code,\n originalData: (error as any).data\n };\n (instance as any).data = data;\n instance.stack = error.stack;\n return instance;\n }\n\n return new WebhookPersistenceError(new Error(String(error)));\n }\n}\n\nexport class WebhookModelNotFoundError extends BaseError {\n override readonly code = \"WEBHOOK_MODEL_NOT_FOUND\" as const;\n\n constructor(modelId: string) {\n super({ message: `Webhook model \"${modelId}\" was not found.` });\n }\n}\n\nexport class WebhookVerificationFailedError extends BaseError {\n override readonly code = \"WEBHOOK_VERIFICATION_FAILED\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class WebhookNotAuthorizedError extends BaseError {\n override readonly code = \"WEBHOOK_NOT_AUTHORIZED\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"names":["WebhookNotFoundError","BaseError","id","WebhookDeliveryNotFoundError","WebhookValidationError","error","issues","parseZodError","WebhookPersistenceError","Error","instance","data","String","WebhookModelNotFoundError","modelId","WebhookVerificationFailedError","message","WebhookNotAuthorizedError"],"mappings":";;AAKO,MAAMA,6BAA6BC;IAGtC,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YAAE,SAAS,CAAC,SAAS,EAAEA,GAAG,gBAAgB,CAAC;QAAC,SAHpC,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,qCAAqCF;IAG9C,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YAAE,SAAS,CAAC,kBAAkB,EAAEA,GAAG,gBAAgB,CAAC;QAAC,SAH7C,IAAI,GAAG;IAIzB;AACJ;AAMO,MAAME,+BAA+BH;IAGxC,YAAYI,KAAwB,CAAE;QAClC,IAAI,AAAiB,YAAjB,OAAOA,OACP,KAAK,CAAC;YAAE,SAASA;YAAO,MAAM;gBAAE,QAAQ,EAAE;YAAC;QAAE,SAJnC,IAAI,GAAG;aAKd;YACH,MAAMC,SAASC,cAAcF;YAC7B,KAAK,CAAC;gBAAE,SAAS;gBAAsB,MAAM;oBAAEC;gBAAO;YAAE,SAP9C,IAAI,GAAG;QAQrB;IACJ;AACJ;AAQO,MAAME,gCAAgCP;IAGzC,YAAYI,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;YAAE,MAAM;gBAAE,iBAAiBA,MAAM,OAAO;YAAC;QAAE,SAH3D,IAAI,GAAG;IAIzB;IAEA,OAAO,KAAKA,KAAc,EAA2B;QACjD,IAAIA,iBAAiBI,OAAO;YACxB,MAAMC,WAAW,IAAIF,wBAAwBH;YAC7C,MAAMM,OAAoC;gBACtC,iBAAiBN,MAAM,OAAO;gBAC9B,cAAeA,MAAc,IAAI;gBACjC,cAAeA,MAAc,IAAI;YACrC;YACCK,SAAiB,IAAI,GAAGC;YACzBD,SAAS,KAAK,GAAGL,MAAM,KAAK;YAC5B,OAAOK;QACX;QAEA,OAAO,IAAIF,wBAAwB,IAAIC,MAAMG,OAAOP;IACxD;AACJ;AAEO,MAAMQ,kCAAkCZ;IAG3C,YAAYa,OAAe,CAAE;QACzB,KAAK,CAAC;YAAE,SAAS,CAAC,eAAe,EAAEA,QAAQ,gBAAgB,CAAC;QAAC,SAH/C,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,uCAAuCd;IAGhD,YAAYe,OAAe,CAAE;QACzB,KAAK,CAAC;YAAEA;QAAQ,SAHF,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,kCAAkChB;IAG3C,aAAc;QACV,KAAK,CAAC;YAAE,SAAS;QAAkB,SAHrB,IAAI,GAAG;IAIzB;AACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
2
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
3
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
4
|
+
import { WebhookTransformer } from "../../../api/features/Transformers/abstractions/WebhookTransformer.js";
|
|
5
|
+
import { CreateWebhookRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
6
|
+
import type { WebhookCmsEntryValues } from "../../../api/domain/Webhook.js";
|
|
7
|
+
declare class CreateWebhookRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
8
|
+
private readonly getModelRepository;
|
|
9
|
+
private readonly createEntryRepository;
|
|
10
|
+
private readonly createEntryDataFactory;
|
|
11
|
+
private readonly transformer;
|
|
12
|
+
constructor(getModelRepository: GetModelRepository.Interface, createEntryRepository: CreateEntryRepository.Interface, createEntryDataFactory: CreateEntryDataFactory.Interface, transformer: WebhookTransformer.Interface);
|
|
13
|
+
execute(input: WebhookCmsEntryValues): Promise<RepositoryAbstraction.Response>;
|
|
14
|
+
}
|
|
15
|
+
export declare const CreateWebhookRepository: typeof CreateWebhookRepositoryImpl & {
|
|
16
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWebhookRepository>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
|
+
import { WebhookTransformer } from "../Transformers/abstractions/WebhookTransformer.js";
|
|
6
|
+
import { CreateWebhookRepository } from "./abstractions.js";
|
|
7
|
+
import { WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
8
|
+
import { WEBHOOK_MODEL_ID } from "../../domain/constants.js";
|
|
9
|
+
class CreateWebhookRepositoryImpl {
|
|
10
|
+
constructor(getModelRepository, createEntryRepository, createEntryDataFactory, transformer){
|
|
11
|
+
this.getModelRepository = getModelRepository;
|
|
12
|
+
this.createEntryRepository = createEntryRepository;
|
|
13
|
+
this.createEntryDataFactory = createEntryDataFactory;
|
|
14
|
+
this.transformer = transformer;
|
|
15
|
+
}
|
|
16
|
+
async execute(input) {
|
|
17
|
+
try {
|
|
18
|
+
const modelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);
|
|
19
|
+
if (modelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));
|
|
20
|
+
const { entry } = await this.createEntryDataFactory.create(modelResult.value, {
|
|
21
|
+
values: input
|
|
22
|
+
});
|
|
23
|
+
const createResult = await this.createEntryRepository.execute(modelResult.value, entry);
|
|
24
|
+
if (createResult.isFail()) return Result.fail(WebhookPersistenceError.from(createResult.error));
|
|
25
|
+
const webhook = this.transformer.fromStorage(entry);
|
|
26
|
+
return Result.ok(webhook);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const CreateWebhookRepository_CreateWebhookRepository = CreateWebhookRepository.createImplementation({
|
|
33
|
+
implementation: CreateWebhookRepositoryImpl,
|
|
34
|
+
dependencies: [
|
|
35
|
+
GetModelRepository,
|
|
36
|
+
CreateEntryRepository,
|
|
37
|
+
CreateEntryDataFactory,
|
|
38
|
+
WebhookTransformer
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
export { CreateWebhookRepository_CreateWebhookRepository as CreateWebhookRepository };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=CreateWebhookRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/CreateWebhookRepository.js","sources":["../../../../src/api/features/CreateWebhook/CreateWebhookRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { CreateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { WebhookTransformer } from \"~/api/features/Transformers/abstractions/WebhookTransformer.js\";\nimport { CreateWebhookRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { WebhookModelNotFoundError, WebhookPersistenceError } from \"~/api/domain/errors.js\";\nimport { WEBHOOK_MODEL_ID } from \"~/api/domain/constants.js\";\nimport type { WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\n\nclass CreateWebhookRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly createEntryRepository: CreateEntryRepository.Interface,\n private readonly createEntryDataFactory: CreateEntryDataFactory.Interface,\n private readonly transformer: WebhookTransformer.Interface\n ) {}\n\n async execute(input: WebhookCmsEntryValues): Promise<RepositoryAbstraction.Response> {\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 { entry } = await this.createEntryDataFactory.create<WebhookCmsEntryValues>(\n modelResult.value,\n { values: input }\n );\n\n const createResult = await this.createEntryRepository.execute(modelResult.value, entry);\n\n if (createResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(createResult.error));\n }\n\n const webhook = this.transformer.fromStorage(entry);\n\n return Result.ok(webhook);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n}\n\nexport const CreateWebhookRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateWebhookRepositoryImpl,\n dependencies: [\n GetModelRepository,\n CreateEntryRepository,\n CreateEntryDataFactory,\n WebhookTransformer\n ]\n});\n"],"names":["CreateWebhookRepositoryImpl","getModelRepository","createEntryRepository","createEntryDataFactory","transformer","input","modelResult","WEBHOOK_MODEL_ID","Result","WebhookModelNotFoundError","entry","createResult","WebhookPersistenceError","webhook","error","CreateWebhookRepository","RepositoryAbstraction","GetModelRepository","CreateEntryRepository","CreateEntryDataFactory","WebhookTransformer"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,qBAAsD,EACtDC,sBAAwD,EACxDC,WAAyC,CAC5D;aAJmBH,kBAAkB,GAAlBA;aACAC,qBAAqB,GAArBA;aACAC,sBAAsB,GAAtBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QAAQC,KAA4B,EAA2C;QACjF,IAAI;YACA,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YAC1D,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,0BAA0BF;YAGrD,MAAM,EAAEG,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACtDJ,YAAY,KAAK,EACjB;gBAAE,QAAQD;YAAM;YAGpB,MAAMM,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACL,YAAY,KAAK,EAAEI;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAOH,OAAO,IAAI,CAACI,wBAAwB,IAAI,CAACD,aAAa,KAAK;YAGtE,MAAME,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,CAACH;YAE7C,OAAOF,OAAO,EAAE,CAACK;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAON,OAAO,IAAI,CAACI,wBAAwB,IAAI,CAACE;QACpD;IACJ;AACJ;AAEO,MAAMC,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBhB;IAChB,cAAc;QACViB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookRepository, CreateWebhookUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
3
|
+
import { ListWebhooksRepository } from "../../../api/features/ListWebhooks/abstractions.js";
|
|
4
|
+
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
5
|
+
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
6
|
+
declare class CreateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
7
|
+
private readonly permissions;
|
|
8
|
+
private readonly repository;
|
|
9
|
+
private readonly listWebhooksRepository;
|
|
10
|
+
constructor(permissions: WebhookPermissions.Interface, repository: CreateWebhookRepository.Interface, listWebhooksRepository: ListWebhooksRepository.Interface);
|
|
11
|
+
execute(input: UseCaseAbstraction.Input): Promise<Result<Webhook, UseCaseAbstraction.Error>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const CreateWebhookUseCase: typeof CreateWebhookUseCaseImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWebhookUseCase>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookRepository, CreateWebhookUseCase } from "./abstractions.js";
|
|
3
|
+
import { CreateWebhookInputSchema } from "./schema.js";
|
|
4
|
+
import { ListWebhooksRepository } from "../ListWebhooks/abstractions.js";
|
|
5
|
+
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
6
|
+
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
7
|
+
const generateSlug = (name)=>name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 64);
|
|
8
|
+
class CreateWebhookUseCaseImpl {
|
|
9
|
+
constructor(permissions, repository, listWebhooksRepository){
|
|
10
|
+
this.permissions = permissions;
|
|
11
|
+
this.repository = repository;
|
|
12
|
+
this.listWebhooksRepository = listWebhooksRepository;
|
|
13
|
+
}
|
|
14
|
+
async execute(input) {
|
|
15
|
+
if (!await this.permissions.canCreate("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
16
|
+
const parsed = CreateWebhookInputSchema.safeParse(input);
|
|
17
|
+
if (!parsed.success) return Result.fail(new WebhookValidationError(parsed.error));
|
|
18
|
+
const slug = (parsed.data.slug || "").trim() || generateSlug(parsed.data.name);
|
|
19
|
+
const listResult = await this.listWebhooksRepository.execute({
|
|
20
|
+
where: {
|
|
21
|
+
slug
|
|
22
|
+
},
|
|
23
|
+
limit: 1
|
|
24
|
+
});
|
|
25
|
+
if (listResult.isOk() && listResult.value.items.length > 0) return Result.fail(new WebhookValidationError(`Slug "${slug}" is already taken.`));
|
|
26
|
+
const webhook = {
|
|
27
|
+
name: parsed.data.name,
|
|
28
|
+
slug,
|
|
29
|
+
endpointUrl: parsed.data.endpointUrl,
|
|
30
|
+
description: parsed.data.description,
|
|
31
|
+
enabled: parsed.data.enabled ?? false,
|
|
32
|
+
events: parsed.data.events,
|
|
33
|
+
signingSecret: parsed.data.signingSecret ?? ""
|
|
34
|
+
};
|
|
35
|
+
return this.repository.execute(webhook);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const CreateWebhookUseCase_CreateWebhookUseCase = CreateWebhookUseCase.createImplementation({
|
|
39
|
+
implementation: CreateWebhookUseCaseImpl,
|
|
40
|
+
dependencies: [
|
|
41
|
+
WebhookPermissions,
|
|
42
|
+
CreateWebhookRepository,
|
|
43
|
+
ListWebhooksRepository
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
export { CreateWebhookUseCase_CreateWebhookUseCase as CreateWebhookUseCase };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=CreateWebhookUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/CreateWebhookUseCase.js","sources":["../../../../src/api/features/CreateWebhook/CreateWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateWebhookRepository,\n CreateWebhookUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { CreateWebhookInputSchema } from \"./schema.js\";\nimport { ListWebhooksRepository } from \"~/api/features/ListWebhooks/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError, WebhookValidationError } from \"~/api/domain/errors.js\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\n\nconst generateSlug = (name: string): string => {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\")\n .slice(0, 64);\n};\n\nclass CreateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: WebhookPermissions.Interface,\n private readonly repository: CreateWebhookRepository.Interface,\n private readonly listWebhooksRepository: ListWebhooksRepository.Interface\n ) {}\n\n async execute(\n input: UseCaseAbstraction.Input\n ): Promise<Result<Webhook, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canCreate(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const parsed = CreateWebhookInputSchema.safeParse(input);\n if (!parsed.success) {\n return Result.fail(new WebhookValidationError(parsed.error));\n }\n\n const slug = (parsed.data.slug || \"\").trim() || generateSlug(parsed.data.name);\n\n const listResult = await this.listWebhooksRepository.execute({\n where: {\n slug\n },\n limit: 1\n });\n if (listResult.isOk() && listResult.value.items.length > 0) {\n return Result.fail(new WebhookValidationError(`Slug \"${slug}\" is already taken.`));\n }\n\n const webhook: WebhookCmsEntryValues = {\n name: parsed.data.name,\n slug,\n endpointUrl: parsed.data.endpointUrl,\n description: parsed.data.description,\n enabled: parsed.data.enabled ?? false,\n events: parsed.data.events,\n signingSecret: parsed.data.signingSecret ?? \"\"\n };\n\n return this.repository.execute(webhook);\n }\n}\n\nexport const CreateWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreateWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, CreateWebhookRepository, ListWebhooksRepository]\n});\n"],"names":["generateSlug","name","CreateWebhookUseCaseImpl","permissions","repository","listWebhooksRepository","input","Result","WebhookNotAuthorizedError","parsed","CreateWebhookInputSchema","WebhookValidationError","slug","listResult","webhook","CreateWebhookUseCase","UseCaseAbstraction","WebhookPermissions","CreateWebhookRepository","ListWebhooksRepository"],"mappings":";;;;;;AAWA,MAAMA,eAAe,CAACC,OACXA,KACF,WAAW,GACX,OAAO,CAAC,eAAe,KACvB,OAAO,CAAC,UAAU,IAClB,KAAK,CAAC,GAAG;AAGlB,MAAMC;IACF,YACqBC,WAAyC,EACzCC,UAA6C,EAC7CC,sBAAwD,CAC3E;aAHmBF,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,sBAAsB,GAAtBA;IAClB;IAEH,MAAM,QACFC,KAA+B,EACmB;QAClD,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YACnC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,yBAAyB,SAAS,CAACJ;QAClD,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,uBAAuBF,OAAO,KAAK;QAG9D,MAAMG,OAAQH,AAAAA,CAAAA,OAAO,IAAI,CAAC,IAAI,IAAI,EAAC,EAAG,IAAI,MAAMT,aAAaS,OAAO,IAAI,CAAC,IAAI;QAE7E,MAAMI,aAAa,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACzD,OAAO;gBACHD;YACJ;YACA,OAAO;QACX;QACA,IAAIC,WAAW,IAAI,MAAMA,WAAW,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GACrD,OAAON,OAAO,IAAI,CAAC,IAAII,uBAAuB,CAAC,MAAM,EAAEC,KAAK,mBAAmB,CAAC;QAGpF,MAAME,UAAiC;YACnC,MAAML,OAAO,IAAI,CAAC,IAAI;YACtBG;YACA,aAAaH,OAAO,IAAI,CAAC,WAAW;YACpC,aAAaA,OAAO,IAAI,CAAC,WAAW;YACpC,SAASA,OAAO,IAAI,CAAC,OAAO,IAAI;YAChC,QAAQA,OAAO,IAAI,CAAC,MAAM;YAC1B,eAAeA,OAAO,IAAI,CAAC,aAAa,IAAI;QAChD;QAEA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACK;IACnC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;QAAyBC;KAAuB;AACvF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { Webhook, WebhookCmsEntryValues } from "../../../api/domain/Webhook.js";
|
|
3
|
+
import type { WebhookModelNotFoundError, WebhookNotAuthorizedError, WebhookPersistenceError, WebhookValidationError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface ICreateWebhookInput {
|
|
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 = WebhookValidationError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
|
|
14
|
+
export interface ICreateWebhookUseCase {
|
|
15
|
+
execute(input: ICreateWebhookInput): Promise<Result<Webhook, IError>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const CreateWebhookUseCase: import("@webiny/di").Abstraction<ICreateWebhookUseCase>;
|
|
18
|
+
export declare namespace CreateWebhookUseCase {
|
|
19
|
+
type Interface = ICreateWebhookUseCase;
|
|
20
|
+
type Input = ICreateWebhookInput;
|
|
21
|
+
type Error = IError;
|
|
22
|
+
}
|
|
23
|
+
export type ICreateWebhookRepositoryResponse = Result<Webhook, WebhookPersistenceError | WebhookModelNotFoundError>;
|
|
24
|
+
export interface ICreateWebhookRepository {
|
|
25
|
+
execute(input: WebhookCmsEntryValues): Promise<ICreateWebhookRepositoryResponse>;
|
|
26
|
+
}
|
|
27
|
+
export declare const CreateWebhookRepository: import("@webiny/di").Abstraction<ICreateWebhookRepository>;
|
|
28
|
+
export declare namespace CreateWebhookRepository {
|
|
29
|
+
type Interface = ICreateWebhookRepository;
|
|
30
|
+
type Response = ICreateWebhookRepositoryResponse;
|
|
31
|
+
type Error = WebhookPersistenceError | WebhookModelNotFoundError;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const CreateWebhookUseCase = createAbstraction("Webhooks/CreateWebhookUseCase");
|
|
3
|
+
const CreateWebhookRepository = createAbstraction("Webhooks/CreateWebhookRepository");
|
|
4
|
+
export { CreateWebhookRepository, CreateWebhookUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/abstractions.js","sources":["../../../../src/api/features/CreateWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\nimport type {\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError,\n WebhookPersistenceError,\n WebhookValidationError\n} from \"~/api/domain/errors.js\";\n\nexport interface ICreateWebhookInput {\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 | WebhookValidationError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError;\n\nexport interface ICreateWebhookUseCase {\n execute(input: ICreateWebhookInput): Promise<Result<Webhook, IError>>;\n}\n\nexport const CreateWebhookUseCase = createAbstraction<ICreateWebhookUseCase>(\n \"Webhooks/CreateWebhookUseCase\"\n);\n\nexport namespace CreateWebhookUseCase {\n export type Interface = ICreateWebhookUseCase;\n export type Input = ICreateWebhookInput;\n export type Error = IError;\n}\n\nexport type ICreateWebhookRepositoryResponse = Result<\n Webhook,\n WebhookPersistenceError | WebhookModelNotFoundError\n>;\n\nexport interface ICreateWebhookRepository {\n execute(input: WebhookCmsEntryValues): Promise<ICreateWebhookRepositoryResponse>;\n}\n\nexport const CreateWebhookRepository = createAbstraction<ICreateWebhookRepository>(\n \"Webhooks/CreateWebhookRepository\"\n);\n\nexport namespace CreateWebhookRepository {\n export type Interface = ICreateWebhookRepository;\n export type Response = ICreateWebhookRepositoryResponse;\n export type Error = WebhookPersistenceError | WebhookModelNotFoundError;\n}\n"],"names":["CreateWebhookUseCase","createAbstraction","CreateWebhookRepository"],"mappings":";AA6BO,MAAMA,uBAAuBC,kBAChC;AAkBG,MAAMC,0BAA0BD,kBACnC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookUseCase } from "./CreateWebhookUseCase.js";
|
|
3
|
+
import { CreateWebhookRepository } from "./CreateWebhookRepository.js";
|
|
4
|
+
const CreateWebhookFeature = createFeature({
|
|
5
|
+
name: "CreateWebhook",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(CreateWebhookUseCase);
|
|
8
|
+
container.register(CreateWebhookRepository).inSingletonScope();
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { CreateWebhookFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/feature.js","sources":["../../../../src/api/features/CreateWebhook/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWebhookUseCase } from \"./CreateWebhookUseCase.js\";\nimport { CreateWebhookRepository } from \"./CreateWebhookRepository.js\";\n\nexport const CreateWebhookFeature = createFeature({\n name: \"CreateWebhook\",\n register(container) {\n container.register(CreateWebhookUseCase);\n container.register(CreateWebhookRepository).inSingletonScope();\n }\n});\n"],"names":["CreateWebhookFeature","createFeature","container","CreateWebhookUseCase","CreateWebhookRepository"],"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,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CreateWebhookInputSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
5
|
+
endpointUrl: z.ZodString;
|
|
6
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
events: z.ZodArray<z.ZodString>;
|
|
9
|
+
signingSecret: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { isValidEndpointUrl } from "../../utils/isValidEndpointUrl.js";
|
|
3
|
+
const CreateWebhookInputSchema = z.object({
|
|
4
|
+
name: z.string().min(1, "Name is required."),
|
|
5
|
+
slug: z.string().optional(),
|
|
6
|
+
endpointUrl: z.string().refine(isValidEndpointUrl, {
|
|
7
|
+
message: "Endpoint URL must use HTTPS. HTTP is only allowed for localhost."
|
|
8
|
+
}),
|
|
9
|
+
description: z.string().optional(),
|
|
10
|
+
enabled: z.boolean().optional(),
|
|
11
|
+
events: z.array(z.string()).min(1, "At least one event must be selected."),
|
|
12
|
+
signingSecret: z.string().optional()
|
|
13
|
+
});
|
|
14
|
+
export { CreateWebhookInputSchema };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/schema.js","sources":["../../../../src/api/features/CreateWebhook/schema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { isValidEndpointUrl } from \"~/api/utils/isValidEndpointUrl.js\";\n\nexport const CreateWebhookInputSchema = z.object({\n name: z.string().min(1, \"Name is required.\"),\n slug: z.string().optional(),\n endpointUrl: z.string().refine(isValidEndpointUrl, {\n message: \"Endpoint URL must use HTTPS. HTTP is only allowed for localhost.\"\n }),\n description: z.string().optional(),\n enabled: z.boolean().optional(),\n events: z.array(z.string()).min(1, \"At least one event must be selected.\"),\n signingSecret: z.string().optional()\n});\n"],"names":["CreateWebhookInputSchema","z","isValidEndpointUrl"],"mappings":";;AAGO,MAAMA,2BAA2BC,EAAE,MAAM,CAAC;IAC7C,MAAMA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;IACxB,MAAMA,EAAE,MAAM,GAAG,QAAQ;IACzB,aAAaA,EAAE,MAAM,GAAG,MAAM,CAACC,oBAAoB;QAC/C,SAAS;IACb;IACA,aAAaD,EAAE,MAAM,GAAG,QAAQ;IAChC,SAASA,EAAE,OAAO,GAAG,QAAQ;IAC7B,QAAQA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG;IACnC,eAAeA,EAAE,MAAM,GAAG,QAAQ;AACtC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
|
+
import { WebhookDeliveryTransformer } from "../../../api/features/Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
6
|
+
import type { ICreateDeliveryInput } from "./abstractions.js";
|
|
7
|
+
import { CreateWebhookDeliveryRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
8
|
+
import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
|
|
9
|
+
declare class CreateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
10
|
+
private readonly getModelRepository;
|
|
11
|
+
private readonly createEntryDataFactory;
|
|
12
|
+
private readonly createEntryRepository;
|
|
13
|
+
private readonly transformer;
|
|
14
|
+
constructor(getModelRepository: GetModelRepository.Interface, createEntryDataFactory: CreateEntryDataFactory.Interface, createEntryRepository: CreateEntryRepository.Interface, transformer: WebhookDeliveryTransformer.Interface);
|
|
15
|
+
execute(input: ICreateDeliveryInput): Promise<Result<WebhookDelivery, RepositoryAbstraction.Error>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const CreateWebhookDeliveryRepository: typeof CreateWebhookDeliveryRepositoryImpl & {
|
|
18
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWebhookDeliveryRepository>;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
|
+
import { WebhookDeliveryTransformer } from "../Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
6
|
+
import { CreateWebhookDeliveryRepository } from "./abstractions.js";
|
|
7
|
+
import { WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
8
|
+
import { WEBHOOK_DELIVERY_MODEL_ID } from "../../domain/constants.js";
|
|
9
|
+
class CreateWebhookDeliveryRepositoryImpl {
|
|
10
|
+
constructor(getModelRepository, createEntryDataFactory, createEntryRepository, transformer){
|
|
11
|
+
this.getModelRepository = getModelRepository;
|
|
12
|
+
this.createEntryDataFactory = createEntryDataFactory;
|
|
13
|
+
this.createEntryRepository = createEntryRepository;
|
|
14
|
+
this.transformer = transformer;
|
|
15
|
+
}
|
|
16
|
+
async execute(input) {
|
|
17
|
+
try {
|
|
18
|
+
const modelResult = await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);
|
|
19
|
+
if (modelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_DELIVERY_MODEL_ID));
|
|
20
|
+
const storageValues = this.transformer.toStorage({
|
|
21
|
+
id: "",
|
|
22
|
+
createdOn: "",
|
|
23
|
+
savedOn: "",
|
|
24
|
+
webhookId: input.webhookId,
|
|
25
|
+
backgroundTaskId: null,
|
|
26
|
+
eventType: input.eventType,
|
|
27
|
+
status: input.status,
|
|
28
|
+
payload: input.payload,
|
|
29
|
+
requestHeaders: null,
|
|
30
|
+
responseTime: null,
|
|
31
|
+
responseStatus: null,
|
|
32
|
+
responseHeaders: null,
|
|
33
|
+
responseBody: null
|
|
34
|
+
});
|
|
35
|
+
const expiresAt = new Date(input.expiresAt);
|
|
36
|
+
const { entry } = await this.createEntryDataFactory.create(modelResult.value, {
|
|
37
|
+
values: storageValues,
|
|
38
|
+
expiresAt
|
|
39
|
+
});
|
|
40
|
+
const createResult = await this.createEntryRepository.execute(modelResult.value, entry);
|
|
41
|
+
if (createResult.isFail()) return Result.fail(WebhookPersistenceError.from(createResult.error));
|
|
42
|
+
const delivery = this.transformer.fromStorage(entry);
|
|
43
|
+
return Result.ok(delivery);
|
|
44
|
+
} catch (error) {
|
|
45
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const CreateWebhookDeliveryRepository_CreateWebhookDeliveryRepository = CreateWebhookDeliveryRepository.createImplementation({
|
|
50
|
+
implementation: CreateWebhookDeliveryRepositoryImpl,
|
|
51
|
+
dependencies: [
|
|
52
|
+
GetModelRepository,
|
|
53
|
+
CreateEntryDataFactory,
|
|
54
|
+
CreateEntryRepository,
|
|
55
|
+
WebhookDeliveryTransformer
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
export { CreateWebhookDeliveryRepository_CreateWebhookDeliveryRepository as CreateWebhookDeliveryRepository };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=CreateWebhookDeliveryRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js","sources":["../../../../src/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { CreateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { WebhookDeliveryTransformer } from \"~/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js\";\nimport type { ICreateDeliveryInput } from \"./abstractions.js\";\nimport { CreateWebhookDeliveryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { WebhookModelNotFoundError, WebhookPersistenceError } from \"~/api/domain/errors.js\";\nimport { WEBHOOK_DELIVERY_MODEL_ID } from \"~/api/domain/constants.js\";\nimport type {\n WebhookDelivery,\n WebhookDeliveryCmsEntryValues\n} from \"~/api/domain/WebhookDelivery.js\";\n\nclass CreateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly createEntryDataFactory: CreateEntryDataFactory.Interface,\n private readonly createEntryRepository: CreateEntryRepository.Interface,\n private readonly transformer: WebhookDeliveryTransformer.Interface\n ) {}\n\n async execute(\n input: ICreateDeliveryInput\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 storageValues = this.transformer.toStorage({\n id: \"\",\n createdOn: \"\",\n savedOn: \"\",\n webhookId: input.webhookId,\n backgroundTaskId: null,\n eventType: input.eventType,\n status: input.status,\n payload: input.payload,\n requestHeaders: null,\n responseTime: null,\n responseStatus: null,\n responseHeaders: null,\n responseBody: null\n });\n\n const expiresAt = new Date(input.expiresAt);\n\n const { entry } =\n await this.createEntryDataFactory.create<WebhookDeliveryCmsEntryValues>(\n modelResult.value,\n {\n values: storageValues,\n expiresAt\n }\n );\n\n const createResult = await this.createEntryRepository.execute(modelResult.value, entry);\n\n if (createResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(createResult.error));\n }\n\n const delivery = this.transformer.fromStorage(entry);\n\n return Result.ok(delivery);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n}\n\nexport const CreateWebhookDeliveryRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateWebhookDeliveryRepositoryImpl,\n dependencies: [\n GetModelRepository,\n CreateEntryDataFactory,\n CreateEntryRepository,\n WebhookDeliveryTransformer\n ]\n});\n"],"names":["CreateWebhookDeliveryRepositoryImpl","getModelRepository","createEntryDataFactory","createEntryRepository","transformer","input","modelResult","WEBHOOK_DELIVERY_MODEL_ID","Result","WebhookModelNotFoundError","storageValues","expiresAt","Date","entry","createResult","WebhookPersistenceError","delivery","error","CreateWebhookDeliveryRepository","RepositoryAbstraction","GetModelRepository","CreateEntryDataFactory","CreateEntryRepository","WebhookDeliveryTransformer"],"mappings":";;;;;;;;AAcA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,sBAAwD,EACxDC,qBAAsD,EACtDC,WAAiD,CACpE;aAJmBH,kBAAkB,GAAlBA;aACAC,sBAAsB,GAAtBA;aACAC,qBAAqB,GAArBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QACFC,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,gBAAgB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC7C,IAAI;gBACJ,WAAW;gBACX,SAAS;gBACT,WAAWL,MAAM,SAAS;gBAC1B,kBAAkB;gBAClB,WAAWA,MAAM,SAAS;gBAC1B,QAAQA,MAAM,MAAM;gBACpB,SAASA,MAAM,OAAO;gBACtB,gBAAgB;gBAChB,cAAc;gBACd,gBAAgB;gBAChB,iBAAiB;gBACjB,cAAc;YAClB;YAEA,MAAMM,YAAY,IAAIC,KAAKP,MAAM,SAAS;YAE1C,MAAM,EAAEQ,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCP,YAAY,KAAK,EACjB;gBACI,QAAQI;gBACRC;YACJ;YAGR,MAAMG,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,YAAY,KAAK,EAAEO;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAON,OAAO,IAAI,CAACO,wBAAwB,IAAI,CAACD,aAAa,KAAK;YAGtE,MAAME,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,CAACH;YAE9C,OAAOL,OAAO,EAAE,CAACQ;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOT,OAAO,IAAI,CAACO,wBAAwB,IAAI,CAACE;QACpD;IACJ;AACJ;AAEO,MAAMC,kEAAkCC,gCAAAA,oBAA0C,CAAC;IACtF,gBAAgBnB;IAChB,cAAc;QACVoB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 } from "../../../api/domain/errors.js";
|
|
5
|
+
export interface ICreateDeliveryInput {
|
|
6
|
+
webhookId: string;
|
|
7
|
+
eventType: string;
|
|
8
|
+
status: WebhookDeliveryStatus;
|
|
9
|
+
payload: GenericRecord;
|
|
10
|
+
expiresAt: Date;
|
|
11
|
+
}
|
|
12
|
+
type IError = WebhookPersistenceError | WebhookModelNotFoundError;
|
|
13
|
+
export interface ICreateWebhookDeliveryRepository {
|
|
14
|
+
execute(input: ICreateDeliveryInput): Promise<Result<WebhookDelivery, IError>>;
|
|
15
|
+
}
|
|
16
|
+
export declare const CreateWebhookDeliveryRepository: import("@webiny/di").Abstraction<ICreateWebhookDeliveryRepository>;
|
|
17
|
+
export declare namespace CreateWebhookDeliveryRepository {
|
|
18
|
+
type Interface = ICreateWebhookDeliveryRepository;
|
|
19
|
+
type Error = IError;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhookDelivery/abstractions.js","sources":["../../../../src/api/features/CreateWebhookDelivery/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 { WebhookPersistenceError, WebhookModelNotFoundError } from \"~/api/domain/errors.js\";\n\nexport interface ICreateDeliveryInput {\n webhookId: string;\n eventType: string;\n status: WebhookDeliveryStatus;\n payload: GenericRecord;\n expiresAt: Date;\n}\n\ntype IError = WebhookPersistenceError | WebhookModelNotFoundError;\n\nexport interface ICreateWebhookDeliveryRepository {\n execute(input: ICreateDeliveryInput): Promise<Result<WebhookDelivery, IError>>;\n}\n\nexport const CreateWebhookDeliveryRepository = createAbstraction<ICreateWebhookDeliveryRepository>(\n \"Webhooks/CreateWebhookDeliveryRepository\"\n);\n\nexport namespace CreateWebhookDeliveryRepository {\n export type Interface = ICreateWebhookDeliveryRepository;\n export type Error = IError;\n}\n"],"names":["CreateWebhookDeliveryRepository","createAbstraction"],"mappings":";AAmBO,MAAMA,kCAAkCC,kBAC3C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookDeliveryRepository } from "./CreateWebhookDeliveryRepository.js";
|
|
3
|
+
const CreateWebhookDeliveryFeature = createFeature({
|
|
4
|
+
name: "CreateWebhookDelivery",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(CreateWebhookDeliveryRepository).inSingletonScope();
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { CreateWebhookDeliveryFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhookDelivery/feature.js","sources":["../../../../src/api/features/CreateWebhookDelivery/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWebhookDeliveryRepository } from \"./CreateWebhookDeliveryRepository.js\";\n\nexport const CreateWebhookDeliveryFeature = createFeature({\n name: \"CreateWebhookDelivery\",\n register(container) {\n container.register(CreateWebhookDeliveryRepository).inSingletonScope();\n }\n});\n"],"names":["CreateWebhookDeliveryFeature","createFeature","container","CreateWebhookDeliveryRepository"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,iCAAiC,gBAAgB;IACxE;AACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 { ListEntriesRepository } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
5
|
+
import { DeleteEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
6
|
+
import { DeleteWebhookRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
7
|
+
declare class DeleteWebhookRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
8
|
+
private readonly getModelRepository;
|
|
9
|
+
private readonly getLatestRevisionRepository;
|
|
10
|
+
private readonly listEntriesRepository;
|
|
11
|
+
private readonly deleteEntryRepository;
|
|
12
|
+
constructor(getModelRepository: GetModelRepository.Interface, getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface, listEntriesRepository: ListEntriesRepository.Interface, deleteEntryRepository: DeleteEntryRepository.Interface);
|
|
13
|
+
execute(id: string): Promise<Result<boolean, RepositoryAbstraction.Error>>;
|
|
14
|
+
private deleteAllDeliveries;
|
|
15
|
+
}
|
|
16
|
+
export declare const DeleteWebhookRepository: typeof DeleteWebhookRepositoryImpl & {
|
|
17
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteWebhookRepository>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
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 { ListEntriesRepository } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
5
|
+
import { DeleteEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
6
|
+
import { DeleteWebhookRepository } from "./abstractions.js";
|
|
7
|
+
import { WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
8
|
+
import { WEBHOOK_DELIVERY_MODEL_ID, WEBHOOK_MODEL_ID } from "../../domain/constants.js";
|
|
9
|
+
class DeleteWebhookRepositoryImpl {
|
|
10
|
+
constructor(getModelRepository, getLatestRevisionRepository, listEntriesRepository, deleteEntryRepository){
|
|
11
|
+
this.getModelRepository = getModelRepository;
|
|
12
|
+
this.getLatestRevisionRepository = getLatestRevisionRepository;
|
|
13
|
+
this.listEntriesRepository = listEntriesRepository;
|
|
14
|
+
this.deleteEntryRepository = deleteEntryRepository;
|
|
15
|
+
}
|
|
16
|
+
async execute(id) {
|
|
17
|
+
try {
|
|
18
|
+
const webhookModelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);
|
|
19
|
+
if (webhookModelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));
|
|
20
|
+
const deliveryModelResult = await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);
|
|
21
|
+
if (!deliveryModelResult.isFail()) try {
|
|
22
|
+
await this.deleteAllDeliveries(deliveryModelResult.value, id);
|
|
23
|
+
} catch {}
|
|
24
|
+
const entryResult = await this.getLatestRevisionRepository.execute(webhookModelResult.value, {
|
|
25
|
+
id
|
|
26
|
+
});
|
|
27
|
+
if (entryResult.isFail()) return Result.fail(WebhookPersistenceError.from(entryResult.error));
|
|
28
|
+
const deleteResult = await this.deleteEntryRepository.execute(webhookModelResult.value, entryResult.value);
|
|
29
|
+
if (deleteResult.isFail()) return Result.fail(WebhookPersistenceError.from(deleteResult.error));
|
|
30
|
+
return Result.ok(true);
|
|
31
|
+
} catch (error) {
|
|
32
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async deleteAllDeliveries(deliveryModel, webhookId) {
|
|
36
|
+
let cursor;
|
|
37
|
+
let hasMore = true;
|
|
38
|
+
while(hasMore){
|
|
39
|
+
const listResult = await this.listEntriesRepository.execute(deliveryModel, {
|
|
40
|
+
where: {
|
|
41
|
+
values: {
|
|
42
|
+
webhookId
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
limit: 100,
|
|
46
|
+
after: cursor
|
|
47
|
+
});
|
|
48
|
+
if (listResult.isFail()) throw listResult.error;
|
|
49
|
+
for (const entry of listResult.value.entries)await this.deleteEntryRepository.execute(deliveryModel, entry);
|
|
50
|
+
cursor = listResult.value.meta.cursor ?? void 0;
|
|
51
|
+
hasMore = !!cursor;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const DeleteWebhookRepository_DeleteWebhookRepository = DeleteWebhookRepository.createImplementation({
|
|
56
|
+
implementation: DeleteWebhookRepositoryImpl,
|
|
57
|
+
dependencies: [
|
|
58
|
+
GetModelRepository,
|
|
59
|
+
GetLatestRevisionByEntryIdRepository,
|
|
60
|
+
ListEntriesRepository,
|
|
61
|
+
DeleteEntryRepository
|
|
62
|
+
]
|
|
63
|
+
});
|
|
64
|
+
export { DeleteWebhookRepository_DeleteWebhookRepository as DeleteWebhookRepository };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=DeleteWebhookRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/DeleteWebhook/DeleteWebhookRepository.js","sources":["../../../../src/api/features/DeleteWebhook/DeleteWebhookRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport type { CmsModel } from \"@webiny/api-headless-cms/exports/api/cms/model.js\";\nimport type { CmsEntry } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\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 { ListEntriesRepository } from \"@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js\";\nimport { DeleteEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js\";\nimport { DeleteWebhookRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { WebhookModelNotFoundError, WebhookPersistenceError } from \"~/api/domain/errors.js\";\nimport { WEBHOOK_MODEL_ID, WEBHOOK_DELIVERY_MODEL_ID } from \"~/api/domain/constants.js\";\n\nclass DeleteWebhookRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface,\n private readonly listEntriesRepository: ListEntriesRepository.Interface,\n private readonly deleteEntryRepository: DeleteEntryRepository.Interface\n ) {}\n\n async execute(id: string): Promise<Result<boolean, RepositoryAbstraction.Error>> {\n try {\n const webhookModelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);\n if (webhookModelResult.isFail()) {\n return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));\n }\n\n const deliveryModelResult =\n await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);\n if (!deliveryModelResult.isFail()) {\n try {\n await this.deleteAllDeliveries(deliveryModelResult.value, id);\n } catch {\n /* Delivery cleanup is best-effort; proceed with webhook delete regardless. */\n }\n }\n\n const entryResult = await this.getLatestRevisionRepository.execute(\n webhookModelResult.value,\n { id }\n );\n if (entryResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(entryResult.error));\n }\n\n const deleteResult = await this.deleteEntryRepository.execute(\n webhookModelResult.value,\n entryResult.value\n );\n\n if (deleteResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(deleteResult.error));\n }\n\n return Result.ok(true);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n\n private async deleteAllDeliveries(deliveryModel: CmsModel, webhookId: string): Promise<void> {\n let cursor: string | undefined = undefined;\n let hasMore = true;\n while (hasMore) {\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n const listResult: Result<any, any> = await this.listEntriesRepository.execute(\n deliveryModel,\n {\n where: { values: { webhookId } },\n limit: 100,\n after: cursor\n }\n );\n\n if (listResult.isFail()) {\n throw listResult.error;\n }\n\n for (const entry of listResult.value.entries as CmsEntry[]) {\n /* Individual delivery delete failures are best-effort; continue with the rest. */\n await this.deleteEntryRepository.execute(deliveryModel, entry);\n }\n\n cursor = listResult.value.meta.cursor ?? undefined;\n hasMore = !!cursor;\n }\n }\n}\n\nexport const DeleteWebhookRepository = RepositoryAbstraction.createImplementation({\n implementation: DeleteWebhookRepositoryImpl,\n dependencies: [\n GetModelRepository,\n GetLatestRevisionByEntryIdRepository,\n ListEntriesRepository,\n DeleteEntryRepository\n ]\n});\n"],"names":["DeleteWebhookRepositoryImpl","getModelRepository","getLatestRevisionRepository","listEntriesRepository","deleteEntryRepository","id","webhookModelResult","WEBHOOK_MODEL_ID","Result","WebhookModelNotFoundError","deliveryModelResult","WEBHOOK_DELIVERY_MODEL_ID","entryResult","WebhookPersistenceError","deleteResult","error","deliveryModel","webhookId","cursor","hasMore","listResult","entry","undefined","DeleteWebhookRepository","RepositoryAbstraction","GetModelRepository","GetLatestRevisionByEntryIdRepository","ListEntriesRepository","DeleteEntryRepository"],"mappings":";;;;;;;;AAWA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,2BAA2E,EAC3EC,qBAAsD,EACtDC,qBAAsD,CACzE;aAJmBH,kBAAkB,GAAlBA;aACAC,2BAA2B,GAA3BA;aACAC,qBAAqB,GAArBA;aACAC,qBAAqB,GAArBA;IAClB;IAEH,MAAM,QAAQC,EAAU,EAAyD;QAC7E,IAAI;YACA,MAAMC,qBAAqB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YACjE,IAAID,mBAAmB,MAAM,IACzB,OAAOE,OAAO,IAAI,CAAC,IAAIC,0BAA0BF;YAGrD,MAAMG,sBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YAC1C,IAAI,CAACD,oBAAoB,MAAM,IAC3B,IAAI;gBACA,MAAM,IAAI,CAAC,mBAAmB,CAACA,oBAAoB,KAAK,EAAEL;YAC9D,EAAE,OAAM,CAER;YAGJ,MAAMO,cAAc,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAC9DN,mBAAmB,KAAK,EACxB;gBAAED;YAAG;YAET,IAAIO,YAAY,MAAM,IAClB,OAAOJ,OAAO,IAAI,CAACK,wBAAwB,IAAI,CAACD,YAAY,KAAK;YAGrE,MAAME,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CACzDR,mBAAmB,KAAK,EACxBM,YAAY,KAAK;YAGrB,IAAIE,aAAa,MAAM,IACnB,OAAON,OAAO,IAAI,CAACK,wBAAwB,IAAI,CAACC,aAAa,KAAK;YAGtE,OAAON,OAAO,EAAE,CAAC;QACrB,EAAE,OAAOO,OAAO;YACZ,OAAOP,OAAO,IAAI,CAACK,wBAAwB,IAAI,CAACE;QACpD;IACJ;IAEA,MAAc,oBAAoBC,aAAuB,EAAEC,SAAiB,EAAiB;QACzF,IAAIC;QACJ,IAAIC,UAAU;QACd,MAAOA,QAAS;YAEZ,MAAMC,aAA+B,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CACzEJ,eACA;gBACI,OAAO;oBAAE,QAAQ;wBAAEC;oBAAU;gBAAE;gBAC/B,OAAO;gBACP,OAAOC;YACX;YAGJ,IAAIE,WAAW,MAAM,IACjB,MAAMA,WAAW,KAAK;YAG1B,KAAK,MAAMC,SAASD,WAAW,KAAK,CAAC,OAAO,CAExC,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACJ,eAAeK;YAG5DH,SAASE,WAAW,KAAK,CAAC,IAAI,CAAC,MAAM,IAAIE;YACzCH,UAAU,CAAC,CAACD;QAChB;IACJ;AACJ;AAEO,MAAMK,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBxB;IAChB,cAAc;QACVyB;QACAC;QACAC;QACAC;KACH;AACL"}
|