@webiny/webhooks 6.4.0-beta.2 → 6.4.0-beta.3
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/admin/WebhookRoutes.js +21 -3
- package/admin/WebhookRoutes.js.map +1 -1
- package/admin/Webhooks.js +11 -0
- package/admin/Webhooks.js.map +1 -1
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.d.ts +12 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +40 -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/updateWebhookSettings/UpdateWebhookSettingsGateway.d.ts +12 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js +43 -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 +18 -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/presentation/WebhookForm/WebhookFormPresenter.d.ts +6 -2
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js +87 -14
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -1
- package/admin/presentation/WebhookForm/abstractions.d.ts +0 -4
- package/admin/presentation/WebhookForm/abstractions.js.map +1 -1
- package/admin/presentation/WebhookForm/components/WebhookFormView.js +5 -11
- package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -1
- package/admin/presentation/WebhookList/components/WebhookListView.js +28 -21
- package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -1
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.d.ts +21 -0
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +83 -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/routes.d.ts +1 -0
- package/admin/routes.js +4 -0
- package/admin/routes.js.map +1 -1
- package/admin/shared/types.d.ts +3 -0
- package/api/WebhooksFeature.js +10 -0
- package/api/WebhooksFeature.js.map +1 -1
- package/api/domain/WebhookSettings.d.ts +3 -0
- package/api/domain/WebhookSettings.js +0 -0
- package/api/domain/constants.d.ts +1 -0
- package/api/domain/constants.js +2 -1
- package/api/domain/constants.js.map +1 -1
- package/api/domain/errors.d.ts +7 -2
- package/api/domain/errors.js +16 -3
- package/api/domain/errors.js.map +1 -1
- package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +3 -3
- package/api/features/CreateWebhook/CreateWebhookUseCase.js +10 -19
- package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -1
- package/api/features/CreateWebhook/abstractions.d.ts +1 -1
- package/api/features/CreateWebhook/abstractions.js.map +1 -1
- 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/DeleteWebhook/DeleteWebhookUseCase.d.ts +3 -3
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +8 -3
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -1
- package/api/features/DeleteWebhook/abstractions.d.ts +2 -2
- package/api/features/DeleteWebhook/abstractions.js.map +1 -1
- 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/GetWebhookUseCase.d.ts +2 -2
- package/api/features/GetWebhook/GetWebhookUseCase.js +7 -2
- package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -1
- package/api/features/GetWebhook/abstractions.d.ts +2 -2
- package/api/features/GetWebhook/abstractions.js.map +1 -1
- 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/GetWebhookDeliveryUseCase.d.ts +2 -2
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +7 -2
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -1
- package/api/features/GetWebhookDelivery/abstractions.d.ts +2 -2
- package/api/features/GetWebhookDelivery/abstractions.js.map +1 -1
- 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 +55 -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/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +2 -2
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +4 -1
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -1
- package/api/features/ListWebhookDeliveries/abstractions.d.ts +2 -2
- package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -1
- 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/ListWebhooksUseCase.d.ts +2 -2
- package/api/features/ListWebhooks/ListWebhooksUseCase.js +4 -1
- package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -1
- package/api/features/ListWebhooks/abstractions.d.ts +2 -2
- package/api/features/ListWebhooks/abstractions.js.map +1 -1
- 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 +5 -5
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +7 -2
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -1
- package/api/features/ResendWebhookDelivery/abstractions.d.ts +2 -2
- package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -1
- 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 +6 -2
- package/api/features/SendWebhookTask/SendWebhookTask.js +45 -33
- package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -1
- package/api/features/SendWebhookTask/types.d.ts +1 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +8 -2
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -1
- package/api/features/TriggerWebhook/abstractions.d.ts +2 -2
- package/api/features/TriggerWebhook/abstractions.js.map +1 -1
- 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/UpdateWebhookUseCase.d.ts +4 -4
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +9 -33
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -1
- package/api/features/UpdateWebhook/abstractions.d.ts +0 -1
- package/api/features/UpdateWebhook/abstractions.js.map +1 -1
- 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/UpdateWebhookSettings/UpdateWebhookSettingsRepository.d.ts +21 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +60 -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 +26 -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 +4 -0
- package/api/features/UpdateWebhookSettings/schema.js +7 -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/WebhookSignPayload/WebhookSignPayload.d.ts +1 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js +7 -1
- package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -1
- package/api/graphql/WebhookCrudSchema.js +1 -2
- package/api/graphql/WebhookCrudSchema.js.map +1 -1
- package/api/graphql/WebhookEventSchema.js +1 -0
- package/api/graphql/WebhookEventSchema.js.map +1 -1
- package/api/graphql/WebhookSettingsSchema.d.ts +8 -0
- package/api/graphql/WebhookSettingsSchema.js +60 -0
- package/api/graphql/WebhookSettingsSchema.js.map +1 -0
- package/api/models/WebhookDeliveryModel.js +4 -4
- package/api/models/WebhookDeliveryModel.js.map +1 -1
- package/api/models/WebhookModel.js +1 -1
- package/api/models/WebhookModel.js.map +1 -1
- package/api/models/WebhookSettingsModel.d.ts +8 -0
- package/api/models/WebhookSettingsModel.js +27 -0
- package/api/models/WebhookSettingsModel.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 +0 -1
- package/exports/api/webhooks.js +0 -1
- package/package.json +22 -20
- package/admin/SecurityPermission.d.ts +0 -2
- package/admin/SecurityPermission.js +0 -15
- package/admin/SecurityPermission.js.map +0 -1
- package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +0 -12
- package/admin/presentation/WebhookForm/components/EventsSelector.js +0 -44
- package/admin/presentation/WebhookForm/components/EventsSelector.js.map +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { GraphQLSchemaFactory } from "@webiny/handler-graphql/graphql/abstractions.js";
|
|
2
|
+
import { ErrorResponse, Response } from "@webiny/handler-graphql";
|
|
3
|
+
import { GetWebhookSettingsRepository } from "../features/GetWebhookSettings/abstractions.js";
|
|
4
|
+
import { UpdateWebhookSettingsUseCase } from "../features/UpdateWebhookSettings/abstractions.js";
|
|
5
|
+
class WebhookSettingsSchema_ {
|
|
6
|
+
async execute(builder) {
|
|
7
|
+
builder.addTypeDefs(`
|
|
8
|
+
type WebhookSettings {
|
|
9
|
+
signingSecret: String
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
type WebhookSettingsResponse {
|
|
13
|
+
data: WebhookSettings
|
|
14
|
+
error: WebhookError
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
input UpdateWebhookSettingsInput {
|
|
18
|
+
signingSecret: String
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
extend type WebhookQuery {
|
|
22
|
+
getSettings: WebhookSettingsResponse
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
extend type WebhookMutation {
|
|
26
|
+
updateSettings(input: UpdateWebhookSettingsInput!): WebhookSettingsResponse
|
|
27
|
+
}
|
|
28
|
+
`);
|
|
29
|
+
builder.addResolver({
|
|
30
|
+
path: "WebhookQuery.getSettings",
|
|
31
|
+
dependencies: [
|
|
32
|
+
GetWebhookSettingsRepository
|
|
33
|
+
],
|
|
34
|
+
resolver: (getSettings)=>async ()=>{
|
|
35
|
+
const result = await getSettings.execute();
|
|
36
|
+
if (result.isFail()) return new ErrorResponse(result.error);
|
|
37
|
+
return new Response(result.value);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
builder.addResolver({
|
|
41
|
+
path: "WebhookMutation.updateSettings",
|
|
42
|
+
dependencies: [
|
|
43
|
+
UpdateWebhookSettingsUseCase
|
|
44
|
+
],
|
|
45
|
+
resolver: (updateSettings)=>async ({ args })=>{
|
|
46
|
+
const result = await updateSettings.execute(args.input);
|
|
47
|
+
if (result.isFail()) return new ErrorResponse(result.error);
|
|
48
|
+
return new Response(result.value);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return builder;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const WebhookSettingsSchema = GraphQLSchemaFactory.createImplementation({
|
|
55
|
+
implementation: WebhookSettingsSchema_,
|
|
56
|
+
dependencies: []
|
|
57
|
+
});
|
|
58
|
+
export { WebhookSettingsSchema };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=WebhookSettingsSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/graphql/WebhookSettingsSchema.js","sources":["../../../src/api/graphql/WebhookSettingsSchema.ts"],"sourcesContent":["import { GraphQLSchemaFactory } from \"@webiny/handler-graphql/graphql/abstractions.js\";\nimport { Response } from \"@webiny/handler-graphql\";\nimport { ErrorResponse } from \"@webiny/handler-graphql\";\nimport { GetWebhookSettingsRepository } from \"~/api/features/GetWebhookSettings/abstractions.js\";\nimport { UpdateWebhookSettingsUseCase } from \"~/api/features/UpdateWebhookSettings/abstractions.js\";\nimport type { IUpdateWebhookSettingsInput } from \"~/api/features/UpdateWebhookSettings/abstractions.js\";\n\ninterface IUpdateWebhookSettingsArgs {\n input: IUpdateWebhookSettingsInput;\n}\n\nclass WebhookSettingsSchema_ implements GraphQLSchemaFactory.Interface {\n async execute(\n builder: GraphQLSchemaFactory.SchemaBuilder\n ): Promise<GraphQLSchemaFactory.SchemaBuilder> {\n builder.addTypeDefs(/* GraphQL */ `\n type WebhookSettings {\n signingSecret: String\n }\n\n type WebhookSettingsResponse {\n data: WebhookSettings\n error: WebhookError\n }\n\n input UpdateWebhookSettingsInput {\n signingSecret: String\n }\n\n extend type WebhookQuery {\n getSettings: WebhookSettingsResponse\n }\n\n extend type WebhookMutation {\n updateSettings(input: UpdateWebhookSettingsInput!): WebhookSettingsResponse\n }\n `);\n\n builder.addResolver({\n path: \"WebhookQuery.getSettings\",\n dependencies: [GetWebhookSettingsRepository],\n resolver: (getSettings: GetWebhookSettingsRepository.Interface) => {\n return async () => {\n const result = await getSettings.execute();\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n return new Response(result.value);\n };\n }\n });\n\n builder.addResolver<IUpdateWebhookSettingsArgs>({\n path: \"WebhookMutation.updateSettings\",\n dependencies: [UpdateWebhookSettingsUseCase],\n resolver: (updateSettings: UpdateWebhookSettingsUseCase.Interface) => {\n return async ({ args }) => {\n const result = await updateSettings.execute(args.input);\n if (result.isFail()) {\n return new ErrorResponse(result.error);\n }\n return new Response(result.value);\n };\n }\n });\n\n return builder;\n }\n}\n\nexport const WebhookSettingsSchema = GraphQLSchemaFactory.createImplementation({\n implementation: WebhookSettingsSchema_,\n dependencies: []\n});\n"],"names":["WebhookSettingsSchema_","builder","GetWebhookSettingsRepository","getSettings","result","ErrorResponse","Response","UpdateWebhookSettingsUseCase","updateSettings","args","WebhookSettingsSchema","GraphQLSchemaFactory"],"mappings":";;;;AAWA,MAAMA;IACF,MAAM,QACFC,OAA2C,EACA;QAC3CA,QAAQ,WAAW,CAAe,CAAC;;;;;;;;;;;;;;;;;;;;;QAqBnC,CAAC;QAEDA,QAAQ,WAAW,CAAC;YAChB,MAAM;YACN,cAAc;gBAACC;aAA6B;YAC5C,UAAU,CAACC,cACA;oBACH,MAAMC,SAAS,MAAMD,YAAY,OAAO;oBACxC,IAAIC,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAEzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;QAER;QAEAH,QAAQ,WAAW,CAA6B;YAC5C,MAAM;YACN,cAAc;gBAACM;aAA6B;YAC5C,UAAU,CAACC,iBACA,OAAO,EAAEC,IAAI,EAAE;oBAClB,MAAML,SAAS,MAAMI,eAAe,OAAO,CAACC,KAAK,KAAK;oBACtD,IAAIL,OAAO,MAAM,IACb,OAAO,IAAIC,cAAcD,OAAO,KAAK;oBAEzC,OAAO,IAAIE,SAASF,OAAO,KAAK;gBACpC;QAER;QAEA,OAAOH;IACX;AACJ;AAEO,MAAMS,wBAAwBC,qBAAqB,oBAAoB,CAAC;IAC3E,gBAAgBX;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -15,12 +15,12 @@ class WebhookDeliveryModelFactory {
|
|
|
15
15
|
backgroundTaskId: fields.text().label("Background Task ID"),
|
|
16
16
|
eventType: fields.text().label("Event Type").required(),
|
|
17
17
|
status: fields.text().label("Status").required(),
|
|
18
|
-
payload: fields.text().
|
|
19
|
-
requestHeaders: fields.text().
|
|
18
|
+
payload: fields.text().compress().label("Payload"),
|
|
19
|
+
requestHeaders: fields.text().compress().label("Request Headers"),
|
|
20
20
|
responseTime: fields.number().label("Response Time (ms)"),
|
|
21
21
|
responseStatus: fields.number().label("Response Status"),
|
|
22
|
-
responseHeaders: fields.text().
|
|
23
|
-
responseBody: fields.text().
|
|
22
|
+
responseHeaders: fields.text().compress().label("Response Headers"),
|
|
23
|
+
responseBody: fields.text().compress().label("Response Body")
|
|
24
24
|
}));
|
|
25
25
|
return [
|
|
26
26
|
model
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/models/WebhookDeliveryModel.js","sources":["../../../src/api/models/WebhookDeliveryModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WEBHOOK_DELIVERY_MODEL_ID } from \"~/api/domain/constants.js\";\n\nclass WebhookDeliveryModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: WEBHOOK_DELIVERY_MODEL_ID,\n name: \"Webhook Delivery\",\n group: \"hidden\"\n })\n .description(\"Stores webhook delivery logs.\")\n .singularApiName(\"WebhookDelivery\")\n .pluralApiName(\"WebhookDeliveries\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model.fields(fields => ({\n webhookId: fields.text().label(\"Webhook ID\").required(),\n backgroundTaskId: fields.text().label(\"Background Task ID\"),\n eventType: fields.text().label(\"Event Type\").required(),\n status: fields.text().label(\"Status\").required(),\n payload: fields.text().
|
|
1
|
+
{"version":3,"file":"api/models/WebhookDeliveryModel.js","sources":["../../../src/api/models/WebhookDeliveryModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WEBHOOK_DELIVERY_MODEL_ID } from \"~/api/domain/constants.js\";\n\nclass WebhookDeliveryModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: WEBHOOK_DELIVERY_MODEL_ID,\n name: \"Webhook Delivery\",\n group: \"hidden\"\n })\n .description(\"Stores webhook delivery logs.\")\n .singularApiName(\"WebhookDelivery\")\n .pluralApiName(\"WebhookDeliveries\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model.fields(fields => ({\n webhookId: fields.text().label(\"Webhook ID\").required(),\n backgroundTaskId: fields.text().label(\"Background Task ID\"),\n eventType: fields.text().label(\"Event Type\").required(),\n status: fields.text().label(\"Status\").required(),\n payload: fields.text().compress().label(\"Payload\"),\n requestHeaders: fields.text().compress().label(\"Request Headers\"),\n responseTime: fields.number().label(\"Response Time (ms)\"),\n responseStatus: fields.number().label(\"Response Status\"),\n responseHeaders: fields.text().compress().label(\"Response Headers\"),\n responseBody: fields.text().compress().label(\"Response Body\")\n }));\n\n return [model];\n }\n}\n\nexport const WebhookDeliveryModel = ModelFactory.createImplementation({\n implementation: WebhookDeliveryModelFactory,\n dependencies: []\n});\n"],"names":["WebhookDeliveryModelFactory","builder","model","WEBHOOK_DELIVERY_MODEL_ID","fields","WebhookDeliveryModel","ModelFactory"],"mappings":";;AAGA,MAAMA;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YACJ,SAASE;YACT,MAAM;YACN,OAAO;QACX,GACC,WAAW,CAAC,iCACZ,eAAe,CAAC,mBAChB,aAAa,CAAC,qBACd,IAAI,CAAC;YAAC;YAAqB;SAAe;QAE/CD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,WAAWA,OAAO,IAAI,GAAG,KAAK,CAAC,cAAc,QAAQ;gBACrD,kBAAkBA,OAAO,IAAI,GAAG,KAAK,CAAC;gBACtC,WAAWA,OAAO,IAAI,GAAG,KAAK,CAAC,cAAc,QAAQ;gBACrD,QAAQA,OAAO,IAAI,GAAG,KAAK,CAAC,UAAU,QAAQ;gBAC9C,SAASA,OAAO,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;gBACxC,gBAAgBA,OAAO,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;gBAC/C,cAAcA,OAAO,MAAM,GAAG,KAAK,CAAC;gBACpC,gBAAgBA,OAAO,MAAM,GAAG,KAAK,CAAC;gBACtC,iBAAiBA,OAAO,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;gBAChD,cAAcA,OAAO,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;YACjD;QAEA,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,uBAAuBC,aAAa,oBAAoB,CAAC;IAClE,gBAAgBN;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -17,7 +17,7 @@ class WebhookModelFactory {
|
|
|
17
17
|
description: fields.longText().label("Description"),
|
|
18
18
|
enabled: fields.boolean().label("Enabled").defaultValue(false),
|
|
19
19
|
events: fields.text().list().label("Events").defaultValue([]).listMinLength(1, "At least one event must be selected."),
|
|
20
|
-
signingSecret: fields.text().label("Signing Secret").
|
|
20
|
+
signingSecret: fields.text().encrypt().label("Signing Secret").description("Signing secret - will be encrypted in the database.")
|
|
21
21
|
}));
|
|
22
22
|
return [
|
|
23
23
|
model
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/models/WebhookModel.js","sources":["../../../src/api/models/WebhookModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WEBHOOK_MODEL_ID } from \"~/api/domain/constants.js\";\n\nclass WebhookModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({ modelId: WEBHOOK_MODEL_ID, name: \"Webhook\", group: \"hidden\" })\n .description(\"Stores webhook configurations.\")\n .titleFieldId(\"name\")\n .singularApiName(\"Webhook\")\n .pluralApiName(\"Webhooks\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model.fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .required()\n .minLength(8, \"Name must be at least 8 characters long.\"),\n slug: fields\n .text()\n .label(\"Slug\")\n .required()\n .description(\"URL-safe identifier, unique per tenant.\")\n .minLength(3, \"Slug must be at least 3 characters long.\")\n .pattern(\n \"^[a-z0-9]+(?:-[a-z0-9]+)*$\",\n \"\",\n \"Slug can only contain lowercase letters, numbers, and hyphens, and must start and end with a letter or number.\"\n ),\n endpointUrl: fields\n .text()\n .label(\"Endpoint URL\")\n .required()\n .description(\"HTTPS destination for POST requests.\")\n .url(\"Must be a valid URL starting with https://\")\n .minLength(8, \"Endpoint URL must be at least 8 characters long.\")\n .pattern(\n \"^(https:\\\\/\\\\/.+|http:\\\\/\\\\/localhost.*)\",\n \"\",\n \"Endpoint URL must start with https://\"\n ),\n description: fields.longText().label(\"Description\"),\n enabled: fields.boolean().label(\"Enabled\").defaultValue(false),\n events: fields\n .text()\n .list()\n .label(\"Events\")\n .defaultValue([])\n .listMinLength(1, \"At least one event must be selected.\"),\n signingSecret: fields\n .text()\n .label(\"Signing Secret\")\n .
|
|
1
|
+
{"version":3,"file":"api/models/WebhookModel.js","sources":["../../../src/api/models/WebhookModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WEBHOOK_MODEL_ID } from \"~/api/domain/constants.js\";\n\nclass WebhookModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({ modelId: WEBHOOK_MODEL_ID, name: \"Webhook\", group: \"hidden\" })\n .description(\"Stores webhook configurations.\")\n .titleFieldId(\"name\")\n .singularApiName(\"Webhook\")\n .pluralApiName(\"Webhooks\")\n .tags([\"$publishing:false\", \"$hidden:true\"]);\n\n model.fields(fields => ({\n name: fields\n .text()\n .label(\"Name\")\n .required()\n .minLength(8, \"Name must be at least 8 characters long.\"),\n slug: fields\n .text()\n .label(\"Slug\")\n .required()\n .description(\"URL-safe identifier, unique per tenant.\")\n .minLength(3, \"Slug must be at least 3 characters long.\")\n .pattern(\n \"^[a-z0-9]+(?:-[a-z0-9]+)*$\",\n \"\",\n \"Slug can only contain lowercase letters, numbers, and hyphens, and must start and end with a letter or number.\"\n ),\n endpointUrl: fields\n .text()\n .label(\"Endpoint URL\")\n .required()\n .description(\"HTTPS destination for POST requests.\")\n .url(\"Must be a valid URL starting with https://\")\n .minLength(8, \"Endpoint URL must be at least 8 characters long.\")\n .pattern(\n \"^(https:\\\\/\\\\/.+|http:\\\\/\\\\/localhost.*)\",\n \"\",\n \"Endpoint URL must start with https://\"\n ),\n description: fields.longText().label(\"Description\"),\n enabled: fields.boolean().label(\"Enabled\").defaultValue(false),\n events: fields\n .text()\n .list()\n .label(\"Events\")\n .defaultValue([])\n .listMinLength(1, \"At least one event must be selected.\"),\n signingSecret: fields\n .text()\n .encrypt()\n .label(\"Signing Secret\")\n .description(\"Signing secret - will be encrypted in the database.\")\n }));\n\n return [model];\n }\n}\n\nexport const WebhookModel = ModelFactory.createImplementation({\n implementation: WebhookModelFactory,\n dependencies: []\n});\n"],"names":["WebhookModelFactory","builder","model","WEBHOOK_MODEL_ID","fields","WebhookModel","ModelFactory"],"mappings":";;AAGA,MAAMA;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YAAE,SAASE;YAAkB,MAAM;YAAW,OAAO;QAAS,GACrE,WAAW,CAAC,kCACZ,YAAY,CAAC,QACb,eAAe,CAAC,WAChB,aAAa,CAAC,YACd,IAAI,CAAC;YAAC;YAAqB;SAAe;QAE/CD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,QAAQ,GACR,SAAS,CAAC,GAAG;gBAClB,MAAMA,OACD,IAAI,GACJ,KAAK,CAAC,QACN,QAAQ,GACR,WAAW,CAAC,2CACZ,SAAS,CAAC,GAAG,4CACb,OAAO,CACJ,8BACA,IACA;gBAER,aAAaA,OACR,IAAI,GACJ,KAAK,CAAC,gBACN,QAAQ,GACR,WAAW,CAAC,wCACZ,GAAG,CAAC,8CACJ,SAAS,CAAC,GAAG,oDACb,OAAO,CACJ,4CACA,IACA;gBAER,aAAaA,OAAO,QAAQ,GAAG,KAAK,CAAC;gBACrC,SAASA,OAAO,OAAO,GAAG,KAAK,CAAC,WAAW,YAAY,CAAC;gBACxD,QAAQA,OACH,IAAI,GACJ,IAAI,GACJ,KAAK,CAAC,UACN,YAAY,CAAC,EAAE,EACf,aAAa,CAAC,GAAG;gBACtB,eAAeA,OACV,IAAI,GACJ,OAAO,GACP,KAAK,CAAC,kBACN,WAAW,CAAC;YACrB;QAEA,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,eAAeC,aAAa,oBAAoB,CAAC;IAC1D,gBAAgBN;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
declare class WebhookSettingsModelFactory implements ModelFactory.Interface {
|
|
3
|
+
execute(builder: ModelFactory.Builder): Promise<import("@webiny/api-headless-cms/features/modelBuilder/index.js").PublicModelBuilder[]>;
|
|
4
|
+
}
|
|
5
|
+
export declare const WebhookSettingsModel: typeof WebhookSettingsModelFactory & {
|
|
6
|
+
__abstraction: import("@webiny/di").Abstraction<import("@webiny/api-headless-cms/features/modelBuilder/abstractions").IModelFactory>;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ModelFactory } from "@webiny/api-headless-cms/features/modelBuilder/index.js";
|
|
2
|
+
import { WEBHOOK_SETTINGS_MODEL_ID } from "../domain/constants.js";
|
|
3
|
+
class WebhookSettingsModelFactory {
|
|
4
|
+
async execute(builder) {
|
|
5
|
+
const model = builder.public({
|
|
6
|
+
modelId: WEBHOOK_SETTINGS_MODEL_ID,
|
|
7
|
+
name: "Webhook Settings",
|
|
8
|
+
group: "hidden"
|
|
9
|
+
}).description("Global settings for the webhooks system.").titleFieldId("signingSecret").singularApiName("WebhookSettings").pluralApiName("WebhookSettings").tags([
|
|
10
|
+
"$publishing:false",
|
|
11
|
+
"$hidden:true"
|
|
12
|
+
]).singleEntry();
|
|
13
|
+
model.fields((fields)=>({
|
|
14
|
+
signingSecret: fields.text().label("Signing Secret").encrypt().description("Global signing secret used for all webhook deliveries.")
|
|
15
|
+
}));
|
|
16
|
+
return [
|
|
17
|
+
model
|
|
18
|
+
];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
const WebhookSettingsModel = ModelFactory.createImplementation({
|
|
22
|
+
implementation: WebhookSettingsModelFactory,
|
|
23
|
+
dependencies: []
|
|
24
|
+
});
|
|
25
|
+
export { WebhookSettingsModel };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=WebhookSettingsModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/models/WebhookSettingsModel.js","sources":["../../../src/api/models/WebhookSettingsModel.ts"],"sourcesContent":["import { ModelFactory } from \"@webiny/api-headless-cms/features/modelBuilder/index.js\";\nimport { WEBHOOK_SETTINGS_MODEL_ID } from \"~/api/domain/constants.js\";\n\nclass WebhookSettingsModelFactory implements ModelFactory.Interface {\n async execute(builder: ModelFactory.Builder) {\n const model = builder\n .public({\n modelId: WEBHOOK_SETTINGS_MODEL_ID,\n name: \"Webhook Settings\",\n group: \"hidden\"\n })\n .description(\"Global settings for the webhooks system.\")\n .titleFieldId(\"signingSecret\")\n .singularApiName(\"WebhookSettings\")\n .pluralApiName(\"WebhookSettings\")\n .tags([\"$publishing:false\", \"$hidden:true\"])\n .singleEntry();\n\n model.fields(fields => ({\n signingSecret: fields\n .text()\n .label(\"Signing Secret\")\n .encrypt()\n .description(\"Global signing secret used for all webhook deliveries.\")\n }));\n\n return [model];\n }\n}\n\nexport const WebhookSettingsModel = ModelFactory.createImplementation({\n implementation: WebhookSettingsModelFactory,\n dependencies: []\n});\n"],"names":["WebhookSettingsModelFactory","builder","model","WEBHOOK_SETTINGS_MODEL_ID","fields","WebhookSettingsModel","ModelFactory"],"mappings":";;AAGA,MAAMA;IACF,MAAM,QAAQC,OAA6B,EAAE;QACzC,MAAMC,QAAQD,QACT,MAAM,CAAC;YACJ,SAASE;YACT,MAAM;YACN,OAAO;QACX,GACC,WAAW,CAAC,4CACZ,YAAY,CAAC,iBACb,eAAe,CAAC,mBAChB,aAAa,CAAC,mBACd,IAAI,CAAC;YAAC;YAAqB;SAAe,EAC1C,WAAW;QAEhBD,MAAM,MAAM,CAACE,CAAAA,SAAW;gBACpB,eAAeA,OACV,IAAI,GACJ,KAAK,CAAC,kBACN,OAAO,GACP,WAAW,CAAC;YACrB;QAEA,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,uBAAuBC,aAAa,oBAAoB,CAAC;IAClE,gBAAgBN;IAChB,cAAc,EAAE;AACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isValidEndpointUrl: (url: string) => boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const isValidEndpointUrl = (url)=>{
|
|
2
|
+
try {
|
|
3
|
+
const parsed = new URL(url);
|
|
4
|
+
if ("https:" === parsed.protocol) return true;
|
|
5
|
+
if ("http:" === parsed.protocol && ("localhost" === parsed.hostname || "127.0.0.1" === parsed.hostname)) return true;
|
|
6
|
+
return false;
|
|
7
|
+
} catch {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
export { isValidEndpointUrl };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=isValidEndpointUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/utils/isValidEndpointUrl.js","sources":["../../../src/api/utils/isValidEndpointUrl.ts"],"sourcesContent":["export const isValidEndpointUrl = (url: string): boolean => {\n try {\n const parsed = new URL(url);\n if (parsed.protocol === \"https:\") {\n return true;\n } else if (\n parsed.protocol === \"http:\" &&\n (parsed.hostname === \"localhost\" || parsed.hostname === \"127.0.0.1\")\n ) {\n return true;\n }\n return false;\n } catch {\n return false;\n }\n};\n"],"names":["isValidEndpointUrl","url","parsed","URL"],"mappings":"AAAO,MAAMA,qBAAqB,CAACC;IAC/B,IAAI;QACA,MAAMC,SAAS,IAAIC,IAAIF;QACvB,IAAIC,AAAoB,aAApBA,OAAO,QAAQ,EACf,OAAO;QACJ,IACHA,AAAoB,YAApBA,OAAO,QAAQ,IACdA,CAAAA,AAAoB,gBAApBA,OAAO,QAAQ,IAAoBA,AAAoB,gBAApBA,OAAO,QAAQ,AAAe,GAElE,OAAO;QAEX,OAAO;IACX,EAAE,OAAM;QACJ,OAAO;IACX;AACJ"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { WebhookFactory, WebhookProvider, WebhookVerifyPayload, WebhookSignPayload, WebhookDispatcher } from "@webiny/api-core/exports/api/webhooks.js";
|
|
2
1
|
export type { Webhook, WebhookCmsEntry, WebhookCmsEntryValues } from "../../api/domain/Webhook.js";
|
|
3
2
|
export type { WebhookDelivery, WebhookDeliveryCmsEntry, WebhookDeliveryCmsEntryValues, WebhookDeliveryStatus } from "../../api/domain/WebhookDelivery.js";
|
|
4
3
|
export type { IWebhookPayload } from "../../api/features/SendWebhookTask/types.js";
|
package/exports/api/webhooks.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/webhooks",
|
|
3
|
-
"version": "6.4.0-beta.
|
|
3
|
+
"version": "6.4.0-beta.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -19,30 +19,32 @@
|
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@webiny/admin-ui": "6.4.0-beta.
|
|
23
|
-
"@webiny/api-core": "6.4.0-beta.
|
|
24
|
-
"@webiny/api-headless-cms": "6.4.0-beta.
|
|
25
|
-
"@webiny/app": "6.4.0-beta.
|
|
26
|
-
"@webiny/app-admin": "6.4.0-beta.
|
|
27
|
-
"@webiny/feature": "6.4.0-beta.
|
|
28
|
-
"@webiny/handler-graphql": "6.4.0-beta.
|
|
29
|
-
"@webiny/icons": "6.4.0-beta.
|
|
30
|
-
"@webiny/sdk": "6.4.0-beta.
|
|
31
|
-
"@webiny/tasks": "6.4.0-beta.
|
|
22
|
+
"@webiny/admin-ui": "6.4.0-beta.3",
|
|
23
|
+
"@webiny/api-core": "6.4.0-beta.3",
|
|
24
|
+
"@webiny/api-headless-cms": "6.4.0-beta.3",
|
|
25
|
+
"@webiny/app": "6.4.0-beta.3",
|
|
26
|
+
"@webiny/app-admin": "6.4.0-beta.3",
|
|
27
|
+
"@webiny/feature": "6.4.0-beta.3",
|
|
28
|
+
"@webiny/handler-graphql": "6.4.0-beta.3",
|
|
29
|
+
"@webiny/icons": "6.4.0-beta.3",
|
|
30
|
+
"@webiny/sdk": "6.4.0-beta.3",
|
|
31
|
+
"@webiny/tasks": "6.4.0-beta.3",
|
|
32
|
+
"@webiny/utils": "6.4.0-beta.3",
|
|
32
33
|
"mobx": "6.15.3",
|
|
33
34
|
"mobx-react-lite": "4.1.1",
|
|
34
35
|
"react": "18.3.1",
|
|
35
36
|
"react-dom": "18.3.1",
|
|
36
|
-
"standardwebhooks": "1.0.0"
|
|
37
|
+
"standardwebhooks": "1.0.0",
|
|
38
|
+
"zod": "4.4.3"
|
|
37
39
|
},
|
|
38
40
|
"devDependencies": {
|
|
39
|
-
"@webiny/api": "6.4.0-beta.
|
|
40
|
-
"@webiny/build-tools": "6.4.0-beta.
|
|
41
|
-
"@webiny/di": "0.
|
|
42
|
-
"@webiny/handler": "6.4.0-beta.
|
|
43
|
-
"@webiny/handler-aws": "6.4.0-beta.
|
|
44
|
-
"@webiny/plugins": "6.4.0-beta.
|
|
45
|
-
"@webiny/project-utils": "6.4.0-beta.
|
|
41
|
+
"@webiny/api": "6.4.0-beta.3",
|
|
42
|
+
"@webiny/build-tools": "6.4.0-beta.3",
|
|
43
|
+
"@webiny/di": "1.0.1",
|
|
44
|
+
"@webiny/handler": "6.4.0-beta.3",
|
|
45
|
+
"@webiny/handler-aws": "6.4.0-beta.3",
|
|
46
|
+
"@webiny/plugins": "6.4.0-beta.3",
|
|
47
|
+
"@webiny/project-utils": "6.4.0-beta.3",
|
|
46
48
|
"typescript": "6.0.3",
|
|
47
49
|
"vitest": "4.1.6"
|
|
48
50
|
},
|
|
@@ -50,5 +52,5 @@
|
|
|
50
52
|
"access": "public",
|
|
51
53
|
"directory": "dist"
|
|
52
54
|
},
|
|
53
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "2e58681d4344024bfb60e6180338e2f154ec87f0"
|
|
54
56
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import react from "react";
|
|
2
|
-
import { AdminConfig } from "@webiny/app-admin";
|
|
3
|
-
import { ReactComponent } from "@webiny/icons/webhook.svg";
|
|
4
|
-
import { WEBHOOK_PERMISSIONS_SCHEMA } from "./permissions.js";
|
|
5
|
-
const { Security: Security } = AdminConfig;
|
|
6
|
-
const SecurityPermission = ()=>/*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(Security.Permissions, {
|
|
7
|
-
name: "webhooks",
|
|
8
|
-
title: "Webhooks",
|
|
9
|
-
description: "Manage Webhooks permissions.",
|
|
10
|
-
icon: /*#__PURE__*/ react.createElement(ReactComponent, null),
|
|
11
|
-
schema: WEBHOOK_PERMISSIONS_SCHEMA
|
|
12
|
-
}));
|
|
13
|
-
export { SecurityPermission };
|
|
14
|
-
|
|
15
|
-
//# sourceMappingURL=SecurityPermission.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin/SecurityPermission.js","sources":["../../src/admin/SecurityPermission.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/webhook.svg\";\nimport { WEBHOOK_PERMISSIONS_SCHEMA } from \"~/admin/permissions.js\";\n\nconst { Security } = AdminConfig;\n\nexport const SecurityPermission = () => {\n return (\n <AdminConfig>\n <Security.Permissions\n name=\"webhooks\"\n title=\"Webhooks\"\n description=\"Manage Webhooks permissions.\"\n icon={<PermissionsIcon />}\n schema={WEBHOOK_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n );\n};\n"],"names":["Security","AdminConfig","SecurityPermission","PermissionsIcon","WEBHOOK_PERMISSIONS_SCHEMA"],"mappings":";;;;AAKA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,qBAAqB,IACvB,WAAP,GACI,oBAACD,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACG,gBAAeA;QACtB,QAAQC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { WebhookEvent } from "../../../../admin/shared/types.js";
|
|
3
|
-
interface EventsSelectorProps {
|
|
4
|
-
availableEvents: WebhookEvent[];
|
|
5
|
-
selectedEvents: string[];
|
|
6
|
-
onToggle: (eventName: string) => void;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare const EventsSelector: (({ availableEvents, selectedEvents, onToggle, disabled }: EventsSelectorProps) => React.JSX.Element) & {
|
|
10
|
-
displayName: string;
|
|
11
|
-
};
|
|
12
|
-
export {};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import react, { useMemo } from "react";
|
|
2
|
-
import { observer } from "mobx-react-lite";
|
|
3
|
-
import { CheckboxGroup, Heading, Separator } from "@webiny/admin-ui";
|
|
4
|
-
const EventsSelector_EventsSelector = observer(function({ availableEvents, selectedEvents, onToggle, disabled }) {
|
|
5
|
-
const grouped = useMemo(()=>{
|
|
6
|
-
const map = new Map();
|
|
7
|
-
for (const event of availableEvents){
|
|
8
|
-
const existing = map.get(event.app) ?? [];
|
|
9
|
-
existing.push(event);
|
|
10
|
-
map.set(event.app, existing);
|
|
11
|
-
}
|
|
12
|
-
return map;
|
|
13
|
-
}, [
|
|
14
|
-
availableEvents
|
|
15
|
-
]);
|
|
16
|
-
return /*#__PURE__*/ react.createElement("div", {
|
|
17
|
-
className: "flex flex-col gap-md"
|
|
18
|
-
}, /*#__PURE__*/ react.createElement(Heading, {
|
|
19
|
-
level: 6
|
|
20
|
-
}, "Events"), Array.from(grouped.entries()).map(([app, events])=>/*#__PURE__*/ react.createElement("div", {
|
|
21
|
-
key: app,
|
|
22
|
-
className: "flex flex-col gap-sm"
|
|
23
|
-
}, /*#__PURE__*/ react.createElement(Heading, {
|
|
24
|
-
level: 6,
|
|
25
|
-
className: "text-neutral-strong"
|
|
26
|
-
}, app), /*#__PURE__*/ react.createElement(CheckboxGroup, {
|
|
27
|
-
items: events.map((e)=>({
|
|
28
|
-
id: e.eventName,
|
|
29
|
-
label: e.label,
|
|
30
|
-
value: e.eventName
|
|
31
|
-
})),
|
|
32
|
-
value: selectedEvents,
|
|
33
|
-
onChange: (values)=>{
|
|
34
|
-
const current = new Set(selectedEvents);
|
|
35
|
-
const next = new Set(values);
|
|
36
|
-
for (const v of next)if (!current.has(v)) onToggle(v);
|
|
37
|
-
for (const v of current)if (!next.has(v) && events.some((e)=>e.eventName === v)) onToggle(v);
|
|
38
|
-
},
|
|
39
|
-
disabled: disabled
|
|
40
|
-
}), /*#__PURE__*/ react.createElement(Separator, null))));
|
|
41
|
-
});
|
|
42
|
-
export { EventsSelector_EventsSelector as EventsSelector };
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=EventsSelector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin/presentation/WebhookForm/components/EventsSelector.js","sources":["../../../../../src/admin/presentation/WebhookForm/components/EventsSelector.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport { CheckboxGroup } from \"@webiny/admin-ui\";\nimport { Heading } from \"@webiny/admin-ui\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport type { WebhookEvent } from \"~/admin/shared/types.js\";\n\ninterface EventsSelectorProps {\n availableEvents: WebhookEvent[];\n selectedEvents: string[];\n onToggle: (eventName: string) => void;\n disabled?: boolean;\n}\n\nexport const EventsSelector = observer(function EventsSelector({\n availableEvents,\n selectedEvents,\n onToggle,\n disabled\n}: EventsSelectorProps) {\n const grouped = useMemo(() => {\n const map = new Map<string, WebhookEvent[]>();\n\n for (const event of availableEvents) {\n const existing = map.get(event.app) ?? [];\n existing.push(event);\n map.set(event.app, existing);\n }\n\n return map;\n }, [availableEvents]);\n\n return (\n <div className=\"flex flex-col gap-md\">\n <Heading level={6}>Events</Heading>\n {Array.from(grouped.entries()).map(([app, events]) => (\n <div key={app} className=\"flex flex-col gap-sm\">\n <Heading level={6} className=\"text-neutral-strong\">\n {app}\n </Heading>\n <CheckboxGroup\n items={events.map(e => ({\n id: e.eventName,\n label: e.label,\n value: e.eventName\n }))}\n value={selectedEvents}\n onChange={values => {\n const current = new Set(selectedEvents);\n const next = new Set(values as string[]);\n\n for (const v of next) {\n if (!current.has(v)) {\n onToggle(v);\n }\n }\n\n for (const v of current) {\n if (!next.has(v) && events.some(e => e.eventName === v)) {\n onToggle(v);\n }\n }\n }}\n disabled={disabled}\n />\n <Separator />\n </div>\n ))}\n </div>\n );\n});\n"],"names":["EventsSelector","observer","availableEvents","selectedEvents","onToggle","disabled","grouped","useMemo","map","Map","event","existing","Heading","Array","app","events","CheckboxGroup","e","values","current","Set","next","v","Separator"],"mappings":";;;AAcO,MAAMA,gCAAiBC,SAAS,SAAwB,EAC3DC,eAAe,EACfC,cAAc,EACdC,QAAQ,EACRC,QAAQ,EACU;IAClB,MAAMC,UAAUC,QAAQ;QACpB,MAAMC,MAAM,IAAIC;QAEhB,KAAK,MAAMC,SAASR,gBAAiB;YACjC,MAAMS,WAAWH,IAAI,GAAG,CAACE,MAAM,GAAG,KAAK,EAAE;YACzCC,SAAS,IAAI,CAACD;YACdF,IAAI,GAAG,CAACE,MAAM,GAAG,EAAEC;QACvB;QAEA,OAAOH;IACX,GAAG;QAACN;KAAgB;IAEpB,OAAO,WAAP,GACI,oBAAC;QAAI,WAAU;qBACX,oBAACU,SAAOA;QAAC,OAAO;OAAG,WAClBC,MAAM,IAAI,CAACP,QAAQ,OAAO,IAAI,GAAG,CAAC,CAAC,CAACQ,KAAKC,OAAO,iBAC7C,oBAAC;YAAI,KAAKD;YAAK,WAAU;yBACrB,oBAACF,SAAOA;YAAC,OAAO;YAAG,WAAU;WACxBE,MAAAA,WAAAA,GAEL,oBAACE,eAAaA;YACV,OAAOD,OAAO,GAAG,CAACE,CAAAA,IAAM;oBACpB,IAAIA,EAAE,SAAS;oBACf,OAAOA,EAAE,KAAK;oBACd,OAAOA,EAAE,SAAS;gBACtB;YACA,OAAOd;YACP,UAAUe,CAAAA;gBACN,MAAMC,UAAU,IAAIC,IAAIjB;gBACxB,MAAMkB,OAAO,IAAID,IAAIF;gBAErB,KAAK,MAAMI,KAAKD,KACZ,IAAI,CAACF,QAAQ,GAAG,CAACG,IACblB,SAASkB;gBAIjB,KAAK,MAAMA,KAAKH,QACZ,IAAI,CAACE,KAAK,GAAG,CAACC,MAAMP,OAAO,IAAI,CAACE,CAAAA,IAAKA,EAAE,SAAS,KAAKK,IACjDlB,SAASkB;YAGrB;YACA,UAAUjB;0BAEd,oBAACkB,WAASA;AAK9B"}
|