@webiny/webhooks 6.4.0-beta.1 → 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.
Files changed (208) hide show
  1. package/admin/WebhookRoutes.js +21 -3
  2. package/admin/WebhookRoutes.js.map +1 -1
  3. package/admin/Webhooks.js +11 -0
  4. package/admin/Webhooks.js.map +1 -1
  5. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.d.ts +12 -0
  6. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +40 -0
  7. package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js.map +1 -0
  8. package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.d.ts +11 -0
  9. package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js +18 -0
  10. package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js.map +1 -0
  11. package/admin/features/getWebhookSettings/abstractions.d.ts +15 -0
  12. package/admin/features/getWebhookSettings/abstractions.js +6 -0
  13. package/admin/features/getWebhookSettings/abstractions.js.map +1 -0
  14. package/admin/features/getWebhookSettings/feature.d.ts +3 -0
  15. package/admin/features/getWebhookSettings/feature.js +19 -0
  16. package/admin/features/getWebhookSettings/feature.js.map +1 -0
  17. package/admin/features/getWebhookSettings/index.d.ts +2 -0
  18. package/admin/features/getWebhookSettings/index.js +2 -0
  19. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.d.ts +12 -0
  20. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js +43 -0
  21. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js.map +1 -0
  22. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +11 -0
  23. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js +18 -0
  24. package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
  25. package/admin/features/updateWebhookSettings/abstractions.d.ts +18 -0
  26. package/admin/features/updateWebhookSettings/abstractions.js +6 -0
  27. package/admin/features/updateWebhookSettings/abstractions.js.map +1 -0
  28. package/admin/features/updateWebhookSettings/feature.d.ts +3 -0
  29. package/admin/features/updateWebhookSettings/feature.js +19 -0
  30. package/admin/features/updateWebhookSettings/feature.js.map +1 -0
  31. package/admin/features/updateWebhookSettings/index.d.ts +2 -0
  32. package/admin/features/updateWebhookSettings/index.js +2 -0
  33. package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +6 -2
  34. package/admin/presentation/WebhookForm/WebhookFormPresenter.js +87 -14
  35. package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -1
  36. package/admin/presentation/WebhookForm/abstractions.d.ts +0 -4
  37. package/admin/presentation/WebhookForm/abstractions.js.map +1 -1
  38. package/admin/presentation/WebhookForm/components/WebhookFormView.js +5 -11
  39. package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -1
  40. package/admin/presentation/WebhookList/components/WebhookListView.js +28 -21
  41. package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -1
  42. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.d.ts +21 -0
  43. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +83 -0
  44. package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js.map +1 -0
  45. package/admin/presentation/WebhookSettings/abstractions.d.ts +16 -0
  46. package/admin/presentation/WebhookSettings/abstractions.js +5 -0
  47. package/admin/presentation/WebhookSettings/abstractions.js.map +1 -0
  48. package/admin/presentation/WebhookSettings/components/WebhookSettingsView.d.ts +2 -0
  49. package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js +56 -0
  50. package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js.map +1 -0
  51. package/admin/presentation/WebhookSettings/feature.d.ts +3 -0
  52. package/admin/presentation/WebhookSettings/feature.js +17 -0
  53. package/admin/presentation/WebhookSettings/feature.js.map +1 -0
  54. package/admin/presentation/WebhookSettings/index.d.ts +2 -0
  55. package/admin/presentation/WebhookSettings/index.js +2 -0
  56. package/admin/routes.d.ts +1 -0
  57. package/admin/routes.js +4 -0
  58. package/admin/routes.js.map +1 -1
  59. package/admin/shared/types.d.ts +3 -0
  60. package/api/WebhooksFeature.js +10 -0
  61. package/api/WebhooksFeature.js.map +1 -1
  62. package/api/domain/WebhookSettings.d.ts +3 -0
  63. package/api/domain/WebhookSettings.js +0 -0
  64. package/api/domain/constants.d.ts +1 -0
  65. package/api/domain/constants.js +2 -1
  66. package/api/domain/constants.js.map +1 -1
  67. package/api/domain/errors.d.ts +7 -2
  68. package/api/domain/errors.js +16 -3
  69. package/api/domain/errors.js.map +1 -1
  70. package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +3 -3
  71. package/api/features/CreateWebhook/CreateWebhookUseCase.js +10 -19
  72. package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -1
  73. package/api/features/CreateWebhook/abstractions.d.ts +1 -1
  74. package/api/features/CreateWebhook/abstractions.js.map +1 -1
  75. package/api/features/CreateWebhook/schema.d.ts +10 -0
  76. package/api/features/CreateWebhook/schema.js +16 -0
  77. package/api/features/CreateWebhook/schema.js.map +1 -0
  78. package/api/features/DeleteWebhook/DeleteWebhookUseCase.d.ts +3 -3
  79. package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +8 -3
  80. package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -1
  81. package/api/features/DeleteWebhook/abstractions.d.ts +2 -2
  82. package/api/features/DeleteWebhook/abstractions.js.map +1 -1
  83. package/api/features/DeleteWebhook/schema.d.ts +4 -0
  84. package/api/features/DeleteWebhook/schema.js +7 -0
  85. package/api/features/DeleteWebhook/schema.js.map +1 -0
  86. package/api/features/GetWebhook/GetWebhookUseCase.d.ts +2 -2
  87. package/api/features/GetWebhook/GetWebhookUseCase.js +7 -2
  88. package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -1
  89. package/api/features/GetWebhook/abstractions.d.ts +2 -2
  90. package/api/features/GetWebhook/abstractions.js.map +1 -1
  91. package/api/features/GetWebhook/schema.d.ts +4 -0
  92. package/api/features/GetWebhook/schema.js +7 -0
  93. package/api/features/GetWebhook/schema.js.map +1 -0
  94. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.d.ts +2 -2
  95. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +7 -2
  96. package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -1
  97. package/api/features/GetWebhookDelivery/abstractions.d.ts +2 -2
  98. package/api/features/GetWebhookDelivery/abstractions.js.map +1 -1
  99. package/api/features/GetWebhookDelivery/schema.d.ts +4 -0
  100. package/api/features/GetWebhookDelivery/schema.js +7 -0
  101. package/api/features/GetWebhookDelivery/schema.js.map +1 -0
  102. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.d.ts +19 -0
  103. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js +55 -0
  104. package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js.map +1 -0
  105. package/api/features/GetWebhookSettings/abstractions.d.ts +13 -0
  106. package/api/features/GetWebhookSettings/abstractions.js +5 -0
  107. package/api/features/GetWebhookSettings/abstractions.js.map +1 -0
  108. package/api/features/GetWebhookSettings/feature.d.ts +4 -0
  109. package/api/features/GetWebhookSettings/feature.js +11 -0
  110. package/api/features/GetWebhookSettings/feature.js.map +1 -0
  111. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +2 -2
  112. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +4 -1
  113. package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -1
  114. package/api/features/ListWebhookDeliveries/abstractions.d.ts +2 -2
  115. package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -1
  116. package/api/features/ListWebhookDeliveries/schema.d.ts +7 -0
  117. package/api/features/ListWebhookDeliveries/schema.js +10 -0
  118. package/api/features/ListWebhookDeliveries/schema.js.map +1 -0
  119. package/api/features/ListWebhooks/ListWebhooksUseCase.d.ts +2 -2
  120. package/api/features/ListWebhooks/ListWebhooksUseCase.js +4 -1
  121. package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -1
  122. package/api/features/ListWebhooks/abstractions.d.ts +2 -2
  123. package/api/features/ListWebhooks/abstractions.js.map +1 -1
  124. package/api/features/ListWebhooks/schema.d.ts +7 -0
  125. package/api/features/ListWebhooks/schema.js +10 -0
  126. package/api/features/ListWebhooks/schema.js.map +1 -0
  127. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +5 -5
  128. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +7 -2
  129. package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -1
  130. package/api/features/ResendWebhookDelivery/abstractions.d.ts +2 -2
  131. package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -1
  132. package/api/features/ResendWebhookDelivery/schema.d.ts +4 -0
  133. package/api/features/ResendWebhookDelivery/schema.js +7 -0
  134. package/api/features/ResendWebhookDelivery/schema.js.map +1 -0
  135. package/api/features/SendWebhookTask/SendWebhookTask.d.ts +6 -2
  136. package/api/features/SendWebhookTask/SendWebhookTask.js +45 -33
  137. package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -1
  138. package/api/features/SendWebhookTask/types.d.ts +1 -0
  139. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +8 -2
  140. package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -1
  141. package/api/features/TriggerWebhook/abstractions.d.ts +2 -2
  142. package/api/features/TriggerWebhook/abstractions.js.map +1 -1
  143. package/api/features/TriggerWebhook/schema.d.ts +5 -0
  144. package/api/features/TriggerWebhook/schema.js +8 -0
  145. package/api/features/TriggerWebhook/schema.js.map +1 -0
  146. package/api/features/UpdateWebhook/UpdateWebhookUseCase.d.ts +4 -4
  147. package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +9 -33
  148. package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -1
  149. package/api/features/UpdateWebhook/abstractions.d.ts +0 -1
  150. package/api/features/UpdateWebhook/abstractions.js.map +1 -1
  151. package/api/features/UpdateWebhook/schema.d.ts +9 -0
  152. package/api/features/UpdateWebhook/schema.js +15 -0
  153. package/api/features/UpdateWebhook/schema.js.map +1 -0
  154. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.d.ts +21 -0
  155. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +60 -0
  156. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js.map +1 -0
  157. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +14 -0
  158. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js +27 -0
  159. package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
  160. package/api/features/UpdateWebhookSettings/abstractions.d.ts +26 -0
  161. package/api/features/UpdateWebhookSettings/abstractions.js +6 -0
  162. package/api/features/UpdateWebhookSettings/abstractions.js.map +1 -0
  163. package/api/features/UpdateWebhookSettings/feature.d.ts +4 -0
  164. package/api/features/UpdateWebhookSettings/feature.js +13 -0
  165. package/api/features/UpdateWebhookSettings/feature.js.map +1 -0
  166. package/api/features/UpdateWebhookSettings/schema.d.ts +4 -0
  167. package/api/features/UpdateWebhookSettings/schema.js +7 -0
  168. package/api/features/UpdateWebhookSettings/schema.js.map +1 -0
  169. package/api/features/WebhookDeliver/WebhookDeliver.d.ts +13 -0
  170. package/api/features/WebhookDeliver/WebhookDeliver.js +79 -0
  171. package/api/features/WebhookDeliver/WebhookDeliver.js.map +1 -0
  172. package/api/features/WebhookDeliver/abstractions.d.ts +24 -0
  173. package/api/features/WebhookDeliver/abstractions.js +5 -0
  174. package/api/features/WebhookDeliver/abstractions.js.map +1 -0
  175. package/api/features/WebhookDeliver/feature.d.ts +4 -0
  176. package/api/features/WebhookDeliver/feature.js +11 -0
  177. package/api/features/WebhookDeliver/feature.js.map +1 -0
  178. package/api/features/WebhookDeliver/index.d.ts +2 -0
  179. package/api/features/WebhookDeliver/index.js +2 -0
  180. package/api/features/WebhookSignPayload/WebhookSignPayload.d.ts +1 -0
  181. package/api/features/WebhookSignPayload/WebhookSignPayload.js +7 -1
  182. package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -1
  183. package/api/graphql/WebhookCrudSchema.js +1 -2
  184. package/api/graphql/WebhookCrudSchema.js.map +1 -1
  185. package/api/graphql/WebhookEventSchema.js +1 -0
  186. package/api/graphql/WebhookEventSchema.js.map +1 -1
  187. package/api/graphql/WebhookSettingsSchema.d.ts +8 -0
  188. package/api/graphql/WebhookSettingsSchema.js +60 -0
  189. package/api/graphql/WebhookSettingsSchema.js.map +1 -0
  190. package/api/models/WebhookDeliveryModel.js +4 -4
  191. package/api/models/WebhookDeliveryModel.js.map +1 -1
  192. package/api/models/WebhookModel.js +1 -1
  193. package/api/models/WebhookModel.js.map +1 -1
  194. package/api/models/WebhookSettingsModel.d.ts +8 -0
  195. package/api/models/WebhookSettingsModel.js +27 -0
  196. package/api/models/WebhookSettingsModel.js.map +1 -0
  197. package/api/utils/isValidEndpointUrl.d.ts +1 -0
  198. package/api/utils/isValidEndpointUrl.js +13 -0
  199. package/api/utils/isValidEndpointUrl.js.map +1 -0
  200. package/exports/api/webhooks.d.ts +0 -1
  201. package/exports/api/webhooks.js +0 -1
  202. package/package.json +22 -20
  203. package/admin/SecurityPermission.d.ts +0 -2
  204. package/admin/SecurityPermission.js +0 -15
  205. package/admin/SecurityPermission.js.map +0 -1
  206. package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +0 -12
  207. package/admin/presentation/WebhookForm/components/EventsSelector.js +0 -44
  208. 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().compressed().label("Payload"),
19
- requestHeaders: fields.text().compressed().label("Request Headers"),
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().compressed().label("Response Headers"),
23
- responseBody: fields.text().compressed().label("Response Body")
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().compressed().label(\"Payload\"),\n requestHeaders: fields.text().compressed().label(\"Request Headers\"),\n responseTime: fields.number().label(\"Response Time (ms)\"),\n responseStatus: fields.number().label(\"Response Status\"),\n responseHeaders: fields.text().compressed().label(\"Response Headers\"),\n responseBody: fields.text().compressed().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,UAAU,GAAG,KAAK,CAAC;gBAC1C,gBAAgBA,OAAO,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC;gBACjD,cAAcA,OAAO,MAAM,GAAG,KAAK,CAAC;gBACpC,gBAAgBA,OAAO,MAAM,GAAG,KAAK,CAAC;gBACtC,iBAAiBA,OAAO,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC;gBAClD,cAAcA,OAAO,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC;YACnD;QAEA,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,uBAAuBC,aAAa,oBAAoB,CAAC;IAClE,gBAAgBN;IAChB,cAAc,EAAE;AACpB"}
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").required().description("Signing secret - will be encrypted in the database.").minLength(16, "Signing secret must be at least 16 characters long.")
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 .required()\n .description(\"Signing secret - will be encrypted in the database.\")\n .minLength(16, \"Signing secret must be at least 16 characters long.\")\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,KAAK,CAAC,kBACN,QAAQ,GACR,WAAW,CAAC,uDACZ,SAAS,CAAC,IAAI;YACvB;QAEA,OAAO;YAACF;SAAM;IAClB;AACJ;AAEO,MAAMG,eAAeC,aAAa,oBAAoB,CAAC;IAC1D,gBAAgBN;IAChB,cAAc,EAAE;AACpB"}
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";
@@ -1,2 +1 @@
1
- export { WebhookDispatcher, WebhookFactory, WebhookProvider, WebhookSignPayload, WebhookVerifyPayload } from "@webiny/api-core/exports/api/webhooks.js";
2
1
  export { createWebhooks } from "../../api/index.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/webhooks",
3
- "version": "6.4.0-beta.1",
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.1",
23
- "@webiny/api-core": "6.4.0-beta.1",
24
- "@webiny/api-headless-cms": "6.4.0-beta.1",
25
- "@webiny/app": "6.4.0-beta.1",
26
- "@webiny/app-admin": "6.4.0-beta.1",
27
- "@webiny/feature": "6.4.0-beta.1",
28
- "@webiny/handler-graphql": "6.4.0-beta.1",
29
- "@webiny/icons": "6.4.0-beta.1",
30
- "@webiny/sdk": "6.4.0-beta.1",
31
- "@webiny/tasks": "6.4.0-beta.1",
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.1",
40
- "@webiny/build-tools": "6.4.0-beta.1",
41
- "@webiny/di": "0.2.3",
42
- "@webiny/handler": "6.4.0-beta.1",
43
- "@webiny/handler-aws": "6.4.0-beta.1",
44
- "@webiny/plugins": "6.4.0-beta.1",
45
- "@webiny/project-utils": "6.4.0-beta.1",
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": "73237b8243693038c072bae1c0b783387448cbbe"
55
+ "gitHead": "2e58681d4344024bfb60e6180338e2f154ec87f0"
54
56
  }
@@ -1,2 +0,0 @@
1
- import React from "react";
2
- export declare const SecurityPermission: () => React.JSX.Element;
@@ -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"}