@marinoscar/platform-api 0.1.0-next.18 → 0.1.0-next.20
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/CHANGELOG.md +28 -0
- package/README.md +1 -0
- package/dist/ai/runtime/ai-limits.service.d.ts.map +1 -1
- package/dist/ai/runtime/ai-limits.service.js +8 -1
- package/dist/ai/runtime/ai-limits.service.js.map +1 -1
- package/dist/ai/usage/ai-usage-admin.controller.d.ts +6 -3
- package/dist/ai/usage/ai-usage-admin.controller.d.ts.map +1 -1
- package/dist/ai/usage/ai-usage-admin.controller.js +31 -17
- package/dist/ai/usage/ai-usage-admin.controller.js.map +1 -1
- package/dist/ai/usage/ai-usage.controller.d.ts +5 -2
- package/dist/ai/usage/ai-usage.controller.d.ts.map +1 -1
- package/dist/ai/usage/ai-usage.controller.js +18 -11
- package/dist/ai/usage/ai-usage.controller.js.map +1 -1
- package/dist/ai/usage/ai-usage.service.d.ts +19 -4
- package/dist/ai/usage/ai-usage.service.d.ts.map +1 -1
- package/dist/ai/usage/ai-usage.service.js +84 -43
- package/dist/ai/usage/ai-usage.service.js.map +1 -1
- package/dist/ai/usage/dto/ai-usage.dto.d.ts +8 -0
- package/dist/ai/usage/dto/ai-usage.dto.d.ts.map +1 -1
- package/dist/ai/usage/dto/ai-usage.dto.js +16 -5
- package/dist/ai/usage/dto/ai-usage.dto.js.map +1 -1
- package/dist/alerts/alerts-admin.controller.d.ts +40 -0
- package/dist/alerts/alerts-admin.controller.d.ts.map +1 -0
- package/dist/alerts/alerts-admin.controller.js +297 -0
- package/dist/alerts/alerts-admin.controller.js.map +1 -0
- package/dist/alerts/alerts-context.service.d.ts +64 -0
- package/dist/alerts/alerts-context.service.d.ts.map +1 -0
- package/dist/alerts/alerts-context.service.js +190 -0
- package/dist/alerts/alerts-context.service.js.map +1 -0
- package/dist/alerts/alerts-dispatch.service.d.ts +53 -0
- package/dist/alerts/alerts-dispatch.service.d.ts.map +1 -0
- package/dist/alerts/alerts-dispatch.service.js +135 -0
- package/dist/alerts/alerts-dispatch.service.js.map +1 -0
- package/dist/alerts/alerts-evaluation.service.d.ts +88 -0
- package/dist/alerts/alerts-evaluation.service.d.ts.map +1 -0
- package/dist/alerts/alerts-evaluation.service.js +296 -0
- package/dist/alerts/alerts-evaluation.service.js.map +1 -0
- package/dist/alerts/alerts-event.listener.d.ts +22 -0
- package/dist/alerts/alerts-event.listener.d.ts.map +1 -0
- package/dist/alerts/alerts-event.listener.js +72 -0
- package/dist/alerts/alerts-event.listener.js.map +1 -0
- package/dist/alerts/alerts-incidents.service.d.ts +86 -0
- package/dist/alerts/alerts-incidents.service.d.ts.map +1 -0
- package/dist/alerts/alerts-incidents.service.js +144 -0
- package/dist/alerts/alerts-incidents.service.js.map +1 -0
- package/dist/alerts/alerts-rules.service.d.ts +73 -0
- package/dist/alerts/alerts-rules.service.d.ts.map +1 -0
- package/dist/alerts/alerts-rules.service.js +205 -0
- package/dist/alerts/alerts-rules.service.js.map +1 -0
- package/dist/alerts/alerts-seed.service.d.ts +25 -0
- package/dist/alerts/alerts-seed.service.d.ts.map +1 -0
- package/dist/alerts/alerts-seed.service.js +82 -0
- package/dist/alerts/alerts-seed.service.js.map +1 -0
- package/dist/alerts/alerts.constants.d.ts +53 -0
- package/dist/alerts/alerts.constants.d.ts.map +1 -0
- package/dist/alerts/alerts.constants.js +57 -0
- package/dist/alerts/alerts.constants.js.map +1 -0
- package/dist/alerts/alerts.errors.d.ts +44 -0
- package/dist/alerts/alerts.errors.d.ts.map +1 -0
- package/dist/alerts/alerts.errors.js +47 -0
- package/dist/alerts/alerts.errors.js.map +1 -0
- package/dist/alerts/alerts.metrics.d.ts +60 -0
- package/dist/alerts/alerts.metrics.d.ts.map +1 -0
- package/dist/alerts/alerts.metrics.js +135 -0
- package/dist/alerts/alerts.metrics.js.map +1 -0
- package/dist/alerts/alerts.module.d.ts +35 -0
- package/dist/alerts/alerts.module.d.ts.map +1 -0
- package/dist/alerts/alerts.module.js +96 -0
- package/dist/alerts/alerts.module.js.map +1 -0
- package/dist/alerts/alerts.options.d.ts +64 -0
- package/dist/alerts/alerts.options.d.ts.map +1 -0
- package/dist/alerts/alerts.options.js +34 -0
- package/dist/alerts/alerts.options.js.map +1 -0
- package/dist/alerts/alerts.permissions.d.ts +27 -0
- package/dist/alerts/alerts.permissions.d.ts.map +1 -0
- package/dist/alerts/alerts.permissions.js +29 -0
- package/dist/alerts/alerts.permissions.js.map +1 -0
- package/dist/alerts/alerts.types.d.ts +182 -0
- package/dist/alerts/alerts.types.d.ts.map +1 -0
- package/dist/alerts/alerts.types.js +3 -0
- package/dist/alerts/alerts.types.js.map +1 -0
- package/dist/alerts/data/alerts-db.d.ts +169 -0
- package/dist/alerts/data/alerts-db.d.ts.map +1 -0
- package/dist/alerts/data/alerts-db.js +18 -0
- package/dist/alerts/data/alerts-db.js.map +1 -0
- package/dist/alerts/dto/alerts.dto.d.ts +132 -0
- package/dist/alerts/dto/alerts.dto.d.ts.map +1 -0
- package/dist/alerts/dto/alerts.dto.js +42 -0
- package/dist/alerts/dto/alerts.dto.js.map +1 -0
- package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts +23 -0
- package/dist/alerts/handlers/alerts-evaluate-event.handler.d.ts.map +1 -0
- package/dist/alerts/handlers/alerts-evaluate-event.handler.js +71 -0
- package/dist/alerts/handlers/alerts-evaluate-event.handler.js.map +1 -0
- package/dist/alerts/handlers/alerts-evaluate.handler.d.ts +25 -0
- package/dist/alerts/handlers/alerts-evaluate.handler.d.ts.map +1 -0
- package/dist/alerts/handlers/alerts-evaluate.handler.js +54 -0
- package/dist/alerts/handlers/alerts-evaluate.handler.js.map +1 -0
- package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts +29 -0
- package/dist/alerts/handlers/alerts-incidents-purge.handler.d.ts.map +1 -0
- package/dist/alerts/handlers/alerts-incidents-purge.handler.js +76 -0
- package/dist/alerts/handlers/alerts-incidents-purge.handler.js.map +1 -0
- package/dist/alerts/index.d.ts +45 -0
- package/dist/alerts/index.d.ts.map +1 -0
- package/dist/alerts/index.js +108 -0
- package/dist/alerts/index.js.map +1 -0
- package/dist/alerts/kinds/alert-kind.registry.d.ts +33 -0
- package/dist/alerts/kinds/alert-kind.registry.d.ts.map +1 -0
- package/dist/alerts/kinds/alert-kind.registry.js +63 -0
- package/dist/alerts/kinds/alert-kind.registry.js.map +1 -0
- package/dist/alerts/kinds/builtin-kinds.d.ts +18 -0
- package/dist/alerts/kinds/builtin-kinds.d.ts.map +1 -0
- package/dist/alerts/kinds/builtin-kinds.js +33 -0
- package/dist/alerts/kinds/builtin-kinds.js.map +1 -0
- package/dist/alerts/kinds/metric-threshold.kind.d.ts +11 -0
- package/dist/alerts/kinds/metric-threshold.kind.d.ts.map +1 -0
- package/dist/alerts/kinds/metric-threshold.kind.js +63 -0
- package/dist/alerts/kinds/metric-threshold.kind.js.map +1 -0
- package/dist/alerts/kinds/metric-threshold.sql.d.ts +41 -0
- package/dist/alerts/kinds/metric-threshold.sql.d.ts.map +1 -0
- package/dist/alerts/kinds/metric-threshold.sql.js +124 -0
- package/dist/alerts/kinds/metric-threshold.sql.js.map +1 -0
- package/dist/alerts/kinds/node-event.kind.d.ts +44 -0
- package/dist/alerts/kinds/node-event.kind.d.ts.map +1 -0
- package/dist/alerts/kinds/node-event.kind.js +113 -0
- package/dist/alerts/kinds/node-event.kind.js.map +1 -0
- package/dist/alerts/kinds/node-offline.kind.d.ts +11 -0
- package/dist/alerts/kinds/node-offline.kind.d.ts.map +1 -0
- package/dist/alerts/kinds/node-offline.kind.js +41 -0
- package/dist/alerts/kinds/node-offline.kind.js.map +1 -0
- package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts +11 -0
- package/dist/alerts/kinds/telemetry-unavailable.kind.d.ts.map +1 -0
- package/dist/alerts/kinds/telemetry-unavailable.kind.js +40 -0
- package/dist/alerts/kinds/telemetry-unavailable.kind.js.map +1 -0
- package/dist/alerts/kinds/verdict.kind.d.ts +13 -0
- package/dist/alerts/kinds/verdict.kind.d.ts.map +1 -0
- package/dist/alerts/kinds/verdict.kind.js +34 -0
- package/dist/alerts/kinds/verdict.kind.js.map +1 -0
- package/dist/alerts/notifications/alerts.notifications.d.ts +77 -0
- package/dist/alerts/notifications/alerts.notifications.d.ts.map +1 -0
- package/dist/alerts/notifications/alerts.notifications.js +145 -0
- package/dist/alerts/notifications/alerts.notifications.js.map +1 -0
- package/dist/alerts/starter-rules.d.ts +21 -0
- package/dist/alerts/starter-rules.d.ts.map +1 -0
- package/dist/alerts/starter-rules.js +141 -0
- package/dist/alerts/starter-rules.js.map +1 -0
- package/dist/alerts/state/alert-state-machine.d.ts +92 -0
- package/dist/alerts/state/alert-state-machine.d.ts.map +1 -0
- package/dist/alerts/state/alert-state-machine.js +96 -0
- package/dist/alerts/state/alert-state-machine.js.map +1 -0
- package/dist/alerts/tasks/alerts-evaluate.task.d.ts +18 -0
- package/dist/alerts/tasks/alerts-evaluate.task.d.ts.map +1 -0
- package/dist/alerts/tasks/alerts-evaluate.task.js +61 -0
- package/dist/alerts/tasks/alerts-evaluate.task.js.map +1 -0
- package/dist/alerts/tasks/alerts-purge.task.d.ts +15 -0
- package/dist/alerts/tasks/alerts-purge.task.d.ts.map +1 -0
- package/dist/alerts/tasks/alerts-purge.task.js +58 -0
- package/dist/alerts/tasks/alerts-purge.task.js.map +1 -0
- package/dist/alerts/testing/conformance.d.ts +58 -0
- package/dist/alerts/testing/conformance.d.ts.map +1 -0
- package/dist/alerts/testing/conformance.js +198 -0
- package/dist/alerts/testing/conformance.js.map +1 -0
- package/dist/alerts/testing/fakes.d.ts +80 -0
- package/dist/alerts/testing/fakes.d.ts.map +1 -0
- package/dist/alerts/testing/fakes.js +230 -0
- package/dist/alerts/testing/fakes.js.map +1 -0
- package/dist/alerts/testing/index.d.ts +5 -0
- package/dist/alerts/testing/index.d.ts.map +1 -0
- package/dist/alerts/testing/index.js +15 -0
- package/dist/alerts/testing/index.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +13 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/net/ip-classify.d.ts +39 -0
- package/dist/core/net/ip-classify.d.ts.map +1 -0
- package/dist/core/net/ip-classify.js +196 -0
- package/dist/core/net/ip-classify.js.map +1 -0
- package/dist/core/timezone/request-time-zone.d.ts +61 -0
- package/dist/core/timezone/request-time-zone.d.ts.map +1 -0
- package/dist/core/timezone/request-time-zone.js +71 -0
- package/dist/core/timezone/request-time-zone.js.map +1 -0
- package/dist/credentials/testing/conformance.d.ts.map +1 -1
- package/dist/credentials/testing/conformance.js +1 -0
- package/dist/credentials/testing/conformance.js.map +1 -1
- package/dist/email/email-settings.controller.d.ts +5 -2
- package/dist/email/email-settings.controller.d.ts.map +1 -1
- package/dist/email/email-settings.controller.js +11 -5
- package/dist/email/email-settings.controller.js.map +1 -1
- package/dist/email/email-test-send.service.d.ts +11 -1
- package/dist/email/email-test-send.service.d.ts.map +1 -1
- package/dist/email/email-test-send.service.js +17 -3
- package/dist/email/email-test-send.service.js.map +1 -1
- package/dist/email/index.d.ts +2 -2
- package/dist/email/index.d.ts.map +1 -1
- package/dist/email/index.js +3 -1
- package/dist/email/index.js.map +1 -1
- package/dist/email/templates/backup-failed.email.d.ts.map +1 -1
- package/dist/email/templates/backup-failed.email.js +9 -5
- package/dist/email/templates/backup-failed.email.js.map +1 -1
- package/dist/email/templates/format-date.d.ts +39 -0
- package/dist/email/templates/format-date.d.ts.map +1 -0
- package/dist/email/templates/format-date.js +103 -0
- package/dist/email/templates/format-date.js.map +1 -0
- package/dist/email/templates/index.d.ts +2 -0
- package/dist/email/templates/index.d.ts.map +1 -1
- package/dist/email/templates/index.js +4 -1
- package/dist/email/templates/index.js.map +1 -1
- package/dist/email/templates/job-failed.email.d.ts +1 -1
- package/dist/email/templates/job-failed.email.d.ts.map +1 -1
- package/dist/email/templates/job-failed.email.js +6 -6
- package/dist/email/templates/job-failed.email.js.map +1 -1
- package/dist/email/templates/node-offline.email.d.ts.map +1 -1
- package/dist/email/templates/node-offline.email.js +11 -7
- package/dist/email/templates/node-offline.email.js.map +1 -1
- package/dist/email/templates/render-context.d.ts +5 -0
- package/dist/email/templates/render-context.d.ts.map +1 -1
- package/dist/email/templates/render-context.js.map +1 -1
- package/dist/email/templates/restore-completed.email.d.ts.map +1 -1
- package/dist/email/templates/restore-completed.email.js +9 -5
- package/dist/email/templates/restore-completed.email.js.map +1 -1
- package/dist/email/templates/role-changed.email.d.ts +1 -1
- package/dist/email/templates/role-changed.email.d.ts.map +1 -1
- package/dist/email/templates/role-changed.email.js +6 -7
- package/dist/email/templates/role-changed.email.js.map +1 -1
- package/dist/email/templates/test-email.email.d.ts +1 -1
- package/dist/email/templates/test-email.email.d.ts.map +1 -1
- package/dist/email/templates/test-email.email.js +6 -11
- package/dist/email/templates/test-email.email.js.map +1 -1
- package/dist/exports/export-job.d.ts +1 -0
- package/dist/exports/export-job.d.ts.map +1 -1
- package/dist/exports/export-job.js +2 -0
- package/dist/exports/export-job.js.map +1 -1
- package/dist/exports/export.types.d.ts +8 -0
- package/dist/exports/export.types.d.ts.map +1 -1
- package/dist/exports/exports.controller.d.ts +4 -2
- package/dist/exports/exports.controller.d.ts.map +1 -1
- package/dist/exports/exports.controller.js +15 -6
- package/dist/exports/exports.controller.js.map +1 -1
- package/dist/exports/exports.service.d.ts +5 -0
- package/dist/exports/exports.service.d.ts.map +1 -1
- package/dist/exports/exports.service.js +3 -0
- package/dist/exports/exports.service.js.map +1 -1
- package/dist/exports/handlers/export-run.handler.d.ts.map +1 -1
- package/dist/exports/handlers/export-run.handler.js +4 -1
- package/dist/exports/handlers/export-run.handler.js.map +1 -1
- package/dist/exports/index.d.ts +1 -0
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/index.js +7 -2
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/testing/conformance.d.ts.map +1 -1
- package/dist/exports/testing/conformance.js +1 -0
- package/dist/exports/testing/conformance.js.map +1 -1
- package/dist/host/http/cors-options.d.ts +5 -1
- package/dist/host/http/cors-options.d.ts.map +1 -1
- package/dist/host/http/cors-options.js.map +1 -1
- package/dist/identity/pat/pat.controller.d.ts +4 -3
- package/dist/identity/pat/pat.controller.d.ts.map +1 -1
- package/dist/identity/pat/pat.controller.js +19 -5
- package/dist/identity/pat/pat.controller.js.map +1 -1
- package/dist/identity/pat/pat.service.d.ts +21 -0
- package/dist/identity/pat/pat.service.d.ts.map +1 -1
- package/dist/identity/pat/pat.service.js +27 -10
- package/dist/identity/pat/pat.service.js.map +1 -1
- package/dist/jobs/data/jobs-db.d.ts +26 -0
- package/dist/jobs/data/jobs-db.d.ts.map +1 -1
- package/dist/jobs/index.d.ts +1 -1
- package/dist/jobs/index.d.ts.map +1 -1
- package/dist/jobs/index.js.map +1 -1
- package/dist/manifest/platform-model-ownership.d.ts +1 -1
- package/dist/manifest/platform-model-ownership.d.ts.map +1 -1
- package/dist/manifest/platform-model-ownership.js +30 -1
- package/dist/manifest/platform-model-ownership.js.map +1 -1
- package/dist/manifest/platform-permissions.d.ts +6 -2
- package/dist/manifest/platform-permissions.d.ts.map +1 -1
- package/dist/manifest/platform-permissions.js +56 -44
- package/dist/manifest/platform-permissions.js.map +1 -1
- package/dist/manifest/platform-user-owned-models.d.ts.map +1 -1
- package/dist/manifest/platform-user-owned-models.js +16 -0
- package/dist/manifest/platform-user-owned-models.js.map +1 -1
- package/dist/nodes/dto/node-admin.dto.d.ts +5 -0
- package/dist/nodes/dto/node-admin.dto.d.ts.map +1 -1
- package/dist/nodes/dto/node-admin.dto.js +19 -0
- package/dist/nodes/dto/node-admin.dto.js.map +1 -1
- package/dist/nodes/dto/node-control-plane.dto.d.ts +26 -0
- package/dist/nodes/dto/node-control-plane.dto.d.ts.map +1 -1
- package/dist/nodes/dto/node-event.dto.d.ts +100 -0
- package/dist/nodes/dto/node-event.dto.d.ts.map +1 -0
- package/dist/nodes/dto/node-event.dto.js +239 -0
- package/dist/nodes/dto/node-event.dto.js.map +1 -0
- package/dist/nodes/dto/node-response.dto.d.ts +21 -0
- package/dist/nodes/dto/node-response.dto.d.ts.map +1 -1
- package/dist/nodes/dto/node-response.dto.js +42 -1
- package/dist/nodes/dto/node-response.dto.js.map +1 -1
- package/dist/nodes/events/node-event.event.d.ts +41 -0
- package/dist/nodes/events/node-event.event.d.ts.map +1 -0
- package/dist/nodes/events/node-event.event.js +69 -0
- package/dist/nodes/events/node-event.event.js.map +1 -0
- package/dist/nodes/handlers/node-events-purge.handler.d.ts +31 -0
- package/dist/nodes/handlers/node-events-purge.handler.d.ts.map +1 -0
- package/dist/nodes/handlers/node-events-purge.handler.js +91 -0
- package/dist/nodes/handlers/node-events-purge.handler.js.map +1 -0
- package/dist/nodes/index.d.ts +11 -4
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/index.js +20 -1
- package/dist/nodes/index.js.map +1 -1
- package/dist/nodes/node-events.service.d.ts +87 -0
- package/dist/nodes/node-events.service.d.ts.map +1 -0
- package/dist/nodes/node-events.service.js +271 -0
- package/dist/nodes/node-events.service.js.map +1 -0
- package/dist/nodes/node-fleet-metrics.service.d.ts +10 -1
- package/dist/nodes/node-fleet-metrics.service.d.ts.map +1 -1
- package/dist/nodes/node-fleet-metrics.service.js +31 -0
- package/dist/nodes/node-fleet-metrics.service.js.map +1 -1
- package/dist/nodes/node-lifecycle.service.d.ts +16 -1
- package/dist/nodes/node-lifecycle.service.d.ts.map +1 -1
- package/dist/nodes/node-lifecycle.service.js +7 -0
- package/dist/nodes/node-lifecycle.service.js.map +1 -1
- package/dist/nodes/nodes-admin.controller.d.ts +5 -1
- package/dist/nodes/nodes-admin.controller.d.ts.map +1 -1
- package/dist/nodes/nodes-admin.controller.js +32 -2
- package/dist/nodes/nodes-admin.controller.js.map +1 -1
- package/dist/nodes/nodes.controller.d.ts +7 -3
- package/dist/nodes/nodes.controller.d.ts.map +1 -1
- package/dist/nodes/nodes.controller.js +46 -6
- package/dist/nodes/nodes.controller.js.map +1 -1
- package/dist/nodes/nodes.metrics.d.ts +23 -1
- package/dist/nodes/nodes.metrics.d.ts.map +1 -1
- package/dist/nodes/nodes.metrics.js +80 -1
- package/dist/nodes/nodes.metrics.js.map +1 -1
- package/dist/nodes/nodes.module.d.ts.map +1 -1
- package/dist/nodes/nodes.module.js +6 -0
- package/dist/nodes/nodes.module.js.map +1 -1
- package/dist/nodes/nodes.options.d.ts +17 -0
- package/dist/nodes/nodes.options.d.ts.map +1 -1
- package/dist/nodes/nodes.options.js +13 -2
- package/dist/nodes/nodes.options.js.map +1 -1
- package/dist/nodes/nodes.service.d.ts +3 -1
- package/dist/nodes/nodes.service.d.ts.map +1 -1
- package/dist/nodes/nodes.service.js +14 -3
- package/dist/nodes/nodes.service.js.map +1 -1
- package/dist/nodes/tasks/node-events-purge.task.d.ts +13 -0
- package/dist/nodes/tasks/node-events-purge.task.d.ts.map +1 -0
- package/dist/nodes/tasks/node-events-purge.task.js +73 -0
- package/dist/nodes/tasks/node-events-purge.task.js.map +1 -0
- package/dist/notifications/channels/browser-notification.channel.js +1 -1
- package/dist/notifications/channels/browser-notification.channel.js.map +1 -1
- package/dist/notifications/channels/browser-templates.d.ts +12 -1
- package/dist/notifications/channels/browser-templates.d.ts.map +1 -1
- package/dist/notifications/channels/browser-templates.js +5 -4
- package/dist/notifications/channels/browser-templates.js.map +1 -1
- package/dist/notifications/channels/email-notification.channel.d.ts.map +1 -1
- package/dist/notifications/channels/email-notification.channel.js +3 -3
- package/dist/notifications/channels/email-notification.channel.js.map +1 -1
- package/dist/notifications/channels/push-notification.channel.js +1 -1
- package/dist/notifications/channels/push-notification.channel.js.map +1 -1
- package/dist/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/notification.types.d.ts +15 -0
- package/dist/notifications/notification.types.d.ts.map +1 -1
- package/dist/notifications/notification.types.js.map +1 -1
- package/dist/notifications/notifications.service.d.ts.map +1 -1
- package/dist/notifications/notifications.service.js +8 -0
- package/dist/notifications/notifications.service.js.map +1 -1
- package/dist/notifications/push-config.controller.d.ts +5 -2
- package/dist/notifications/push-config.controller.d.ts.map +1 -1
- package/dist/notifications/push-config.controller.js +11 -5
- package/dist/notifications/push-config.controller.js.map +1 -1
- package/dist/notifications/push-test.service.d.ts +1 -1
- package/dist/notifications/push-test.service.d.ts.map +1 -1
- package/dist/notifications/push-test.service.js +6 -4
- package/dist/notifications/push-test.service.js.map +1 -1
- package/dist/settings/settings-resolver.d.ts +28 -1
- package/dist/settings/settings-resolver.d.ts.map +1 -1
- package/dist/settings/settings-resolver.js +41 -0
- package/dist/settings/settings-resolver.js.map +1 -1
- package/dist/settings/settings.module.d.ts.map +1 -1
- package/dist/settings/settings.module.js +9 -4
- package/dist/settings/settings.module.js.map +1 -1
- package/dist/settings/user-settings/user-settings.service.d.ts.map +1 -1
- package/dist/settings/user-settings/user-settings.service.js +2 -4
- package/dist/settings/user-settings/user-settings.service.js.map +1 -1
- package/dist/sharing/grants/grants.service.js +2 -2
- package/dist/sharing/grants/grants.service.js.map +1 -1
- package/dist/sharing/groups/group-invites.service.js +1 -1
- package/dist/sharing/groups/group-invites.service.js.map +1 -1
- package/dist/sharing/groups/sharing-effects.d.ts +2 -1
- package/dist/sharing/groups/sharing-effects.d.ts.map +1 -1
- package/dist/sharing/groups/sharing-effects.js +4 -4
- package/dist/sharing/groups/sharing-effects.js.map +1 -1
- package/dist/sharing/index.d.ts +1 -1
- package/dist/sharing/index.d.ts.map +1 -1
- package/dist/sharing/index.js.map +1 -1
- package/dist/sharing/notifications/group-invitation.templates.d.ts +23 -0
- package/dist/sharing/notifications/group-invitation.templates.d.ts.map +1 -1
- package/dist/sharing/notifications/group-invitation.templates.js +17 -2
- package/dist/sharing/notifications/group-invitation.templates.js.map +1 -1
- package/dist/sharing/notifications/shared-with-you.templates.d.ts +1 -1
- package/dist/sharing/notifications/shared-with-you.templates.d.ts.map +1 -1
- package/dist/sharing/notifications/shared-with-you.templates.js +3 -2
- package/dist/sharing/notifications/shared-with-you.templates.js.map +1 -1
- package/dist/sharing/ports.d.ts +15 -2
- package/dist/sharing/ports.d.ts.map +1 -1
- package/dist/sharing/ports.js.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts +30 -8
- package/dist/telemetry/dashboard/telemetry-dashboard.service.d.ts.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js +12 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.service.js.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts +15 -0
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.d.ts.map +1 -1
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js +17 -2
- package/dist/telemetry/dashboard/telemetry-dashboard.verdict.js.map +1 -1
- package/dist/telemetry/dto/telemetry-dashboard.dto.d.ts +3 -3
- package/dist/telemetry/index.d.ts +4 -2
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +4 -1
- package/dist/telemetry/index.js.map +1 -1
- package/dist/telemetry/metrics/groups/nodes.metric-group.d.ts.map +1 -1
- package/dist/telemetry/metrics/groups/nodes.metric-group.js +77 -0
- package/dist/telemetry/metrics/groups/nodes.metric-group.js.map +1 -1
- package/dist/telemetry/metrics/metric-verdict.d.ts +1 -1
- package/dist/telemetry/metrics/metric-verdict.d.ts.map +1 -1
- package/dist/telemetry/metrics/metric-verdict.js +15 -1
- package/dist/telemetry/metrics/metric-verdict.js.map +1 -1
- package/dist/telemetry/query/telemetry-query-facade.d.ts +1 -1
- package/dist/telemetry/query/telemetry-query-facade.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-query-facade.js.map +1 -1
- package/dist/telemetry/query/telemetry-query.service.d.ts +2 -2
- package/dist/telemetry/query/telemetry-query.service.d.ts.map +1 -1
- package/dist/telemetry/query/telemetry-query.service.js +4 -0
- package/dist/telemetry/query/telemetry-query.service.js.map +1 -1
- package/dist/telemetry/stack/dto/telemetry-stack.dto.d.ts +1 -1
- package/dist/telemetry/telemetry-support-bundle.section.d.ts +4 -4
- package/dist/telemetry/telemetry.module.d.ts.map +1 -1
- package/dist/telemetry/telemetry.module.js +1 -0
- package/dist/telemetry/telemetry.module.js.map +1 -1
- package/dist/telemetry/testing/metric-schema.fixture.d.ts.map +1 -1
- package/dist/telemetry/testing/metric-schema.fixture.js +56 -0
- package/dist/telemetry/testing/metric-schema.fixture.js.map +1 -1
- package/dist/user-data/platform-user-data.d.ts.map +1 -1
- package/dist/user-data/platform-user-data.js +2 -0
- package/dist/user-data/platform-user-data.js.map +1 -1
- package/dist/webhooks/data/webhooks-db.d.ts +176 -0
- package/dist/webhooks/data/webhooks-db.d.ts.map +1 -0
- package/dist/webhooks/data/webhooks-db.js +14 -0
- package/dist/webhooks/data/webhooks-db.js.map +1 -0
- package/dist/webhooks/egress/egress-guard.d.ts +99 -0
- package/dist/webhooks/egress/egress-guard.d.ts.map +1 -0
- package/dist/webhooks/egress/egress-guard.js +172 -0
- package/dist/webhooks/egress/egress-guard.js.map +1 -0
- package/dist/webhooks/egress/transport.d.ts +58 -0
- package/dist/webhooks/egress/transport.d.ts.map +1 -0
- package/dist/webhooks/egress/transport.js +115 -0
- package/dist/webhooks/egress/transport.js.map +1 -0
- package/dist/webhooks/handlers/webhook-deliver.handler.d.ts +76 -0
- package/dist/webhooks/handlers/webhook-deliver.handler.d.ts.map +1 -0
- package/dist/webhooks/handlers/webhook-deliver.handler.js +332 -0
- package/dist/webhooks/handlers/webhook-deliver.handler.js.map +1 -0
- package/dist/webhooks/handlers/webhook-fanout.handler.d.ts +28 -0
- package/dist/webhooks/handlers/webhook-fanout.handler.d.ts.map +1 -0
- package/dist/webhooks/handlers/webhook-fanout.handler.js +73 -0
- package/dist/webhooks/handlers/webhook-fanout.handler.js.map +1 -0
- package/dist/webhooks/handlers/webhook-purge.handler.d.ts +33 -0
- package/dist/webhooks/handlers/webhook-purge.handler.d.ts.map +1 -0
- package/dist/webhooks/handlers/webhook-purge.handler.js +77 -0
- package/dist/webhooks/handlers/webhook-purge.handler.js.map +1 -0
- package/dist/webhooks/http/admin-webhooks.controller.d.ts +36 -0
- package/dist/webhooks/http/admin-webhooks.controller.d.ts.map +1 -0
- package/dist/webhooks/http/admin-webhooks.controller.js +250 -0
- package/dist/webhooks/http/admin-webhooks.controller.js.map +1 -0
- package/dist/webhooks/http/org-webhooks.controller.d.ts +36 -0
- package/dist/webhooks/http/org-webhooks.controller.d.ts.map +1 -0
- package/dist/webhooks/http/org-webhooks.controller.js +249 -0
- package/dist/webhooks/http/org-webhooks.controller.js.map +1 -0
- package/dist/webhooks/http/scope-context.d.ts +17 -0
- package/dist/webhooks/http/scope-context.d.ts.map +1 -0
- package/dist/webhooks/http/scope-context.js +28 -0
- package/dist/webhooks/http/scope-context.js.map +1 -0
- package/dist/webhooks/http/webhook.dto.d.ts +174 -0
- package/dist/webhooks/http/webhook.dto.d.ts.map +1 -0
- package/dist/webhooks/http/webhook.dto.js +58 -0
- package/dist/webhooks/http/webhook.dto.js.map +1 -0
- package/dist/webhooks/http/webhooks.controller.d.ts +36 -0
- package/dist/webhooks/http/webhooks.controller.d.ts.map +1 -0
- package/dist/webhooks/http/webhooks.controller.js +243 -0
- package/dist/webhooks/http/webhooks.controller.js.map +1 -0
- package/dist/webhooks/index.d.ts +43 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +147 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/listeners/webhook-event.listeners.d.ts +23 -0
- package/dist/webhooks/listeners/webhook-event.listeners.d.ts.map +1 -0
- package/dist/webhooks/listeners/webhook-event.listeners.js +120 -0
- package/dist/webhooks/listeners/webhook-event.listeners.js.map +1 -0
- package/dist/webhooks/notifications/webhook-notification.channel.d.ts +31 -0
- package/dist/webhooks/notifications/webhook-notification.channel.d.ts.map +1 -0
- package/dist/webhooks/notifications/webhook-notification.channel.js +127 -0
- package/dist/webhooks/notifications/webhook-notification.channel.js.map +1 -0
- package/dist/webhooks/notifications/webhook-notifications.d.ts +98 -0
- package/dist/webhooks/notifications/webhook-notifications.d.ts.map +1 -0
- package/dist/webhooks/notifications/webhook-notifications.js +150 -0
- package/dist/webhooks/notifications/webhook-notifications.js.map +1 -0
- package/dist/webhooks/ports.d.ts +29 -0
- package/dist/webhooks/ports.d.ts.map +1 -0
- package/dist/webhooks/ports.js +23 -0
- package/dist/webhooks/ports.js.map +1 -0
- package/dist/webhooks/registry/builtin-events.d.ts +57 -0
- package/dist/webhooks/registry/builtin-events.d.ts.map +1 -0
- package/dist/webhooks/registry/builtin-events.js +113 -0
- package/dist/webhooks/registry/builtin-events.js.map +1 -0
- package/dist/webhooks/registry/webhook-catalog.d.ts +63 -0
- package/dist/webhooks/registry/webhook-catalog.d.ts.map +1 -0
- package/dist/webhooks/registry/webhook-catalog.js +123 -0
- package/dist/webhooks/registry/webhook-catalog.js.map +1 -0
- package/dist/webhooks/registry/webhook-event.registry.d.ts +116 -0
- package/dist/webhooks/registry/webhook-event.registry.d.ts.map +1 -0
- package/dist/webhooks/registry/webhook-event.registry.js +152 -0
- package/dist/webhooks/registry/webhook-event.registry.js.map +1 -0
- package/dist/webhooks/signing.d.ts +31 -0
- package/dist/webhooks/signing.d.ts.map +1 -0
- package/dist/webhooks/signing.js +48 -0
- package/dist/webhooks/signing.js.map +1 -0
- package/dist/webhooks/tasks/webhook-purge.task.d.ts +17 -0
- package/dist/webhooks/tasks/webhook-purge.task.d.ts.map +1 -0
- package/dist/webhooks/tasks/webhook-purge.task.js +68 -0
- package/dist/webhooks/tasks/webhook-purge.task.js.map +1 -0
- package/dist/webhooks/testing/conformance.d.ts +61 -0
- package/dist/webhooks/testing/conformance.d.ts.map +1 -0
- package/dist/webhooks/testing/conformance.js +316 -0
- package/dist/webhooks/testing/conformance.js.map +1 -0
- package/dist/webhooks/testing/in-memory.d.ts +156 -0
- package/dist/webhooks/testing/in-memory.d.ts.map +1 -0
- package/dist/webhooks/testing/in-memory.js +323 -0
- package/dist/webhooks/testing/in-memory.js.map +1 -0
- package/dist/webhooks/testing/index.d.ts +7 -0
- package/dist/webhooks/testing/index.d.ts.map +1 -0
- package/dist/webhooks/testing/index.js +25 -0
- package/dist/webhooks/testing/index.js.map +1 -0
- package/dist/webhooks/testing/kit.d.ts +86 -0
- package/dist/webhooks/testing/kit.d.ts.map +1 -0
- package/dist/webhooks/testing/kit.js +113 -0
- package/dist/webhooks/testing/kit.js.map +1 -0
- package/dist/webhooks/webhook-endpoints.service.d.ts +142 -0
- package/dist/webhooks/webhook-endpoints.service.d.ts.map +1 -0
- package/dist/webhooks/webhook-endpoints.service.js +366 -0
- package/dist/webhooks/webhook-endpoints.service.js.map +1 -0
- package/dist/webhooks/webhook-envelope.d.ts +36 -0
- package/dist/webhooks/webhook-envelope.d.ts.map +1 -0
- package/dist/webhooks/webhook-envelope.js +46 -0
- package/dist/webhooks/webhook-envelope.js.map +1 -0
- package/dist/webhooks/webhook-secrets.service.d.ts +49 -0
- package/dist/webhooks/webhook-secrets.service.d.ts.map +1 -0
- package/dist/webhooks/webhook-secrets.service.js +118 -0
- package/dist/webhooks/webhook-secrets.service.js.map +1 -0
- package/dist/webhooks/webhook-views.d.ts +34 -0
- package/dist/webhooks/webhook-views.d.ts.map +1 -0
- package/dist/webhooks/webhook-views.js +83 -0
- package/dist/webhooks/webhook-views.js.map +1 -0
- package/dist/webhooks/webhooks.access.d.ts +28 -0
- package/dist/webhooks/webhooks.access.d.ts.map +1 -0
- package/dist/webhooks/webhooks.access.js +55 -0
- package/dist/webhooks/webhooks.access.js.map +1 -0
- package/dist/webhooks/webhooks.constants.d.ts +73 -0
- package/dist/webhooks/webhooks.constants.d.ts.map +1 -0
- package/dist/webhooks/webhooks.constants.js +100 -0
- package/dist/webhooks/webhooks.constants.js.map +1 -0
- package/dist/webhooks/webhooks.credentials.d.ts +28 -0
- package/dist/webhooks/webhooks.credentials.d.ts.map +1 -0
- package/dist/webhooks/webhooks.credentials.js +51 -0
- package/dist/webhooks/webhooks.credentials.js.map +1 -0
- package/dist/webhooks/webhooks.errors.d.ts +25 -0
- package/dist/webhooks/webhooks.errors.d.ts.map +1 -0
- package/dist/webhooks/webhooks.errors.js +65 -0
- package/dist/webhooks/webhooks.errors.js.map +1 -0
- package/dist/webhooks/webhooks.metrics.d.ts +24 -0
- package/dist/webhooks/webhooks.metrics.d.ts.map +1 -0
- package/dist/webhooks/webhooks.metrics.js +70 -0
- package/dist/webhooks/webhooks.metrics.js.map +1 -0
- package/dist/webhooks/webhooks.module.d.ts +29 -0
- package/dist/webhooks/webhooks.module.d.ts.map +1 -0
- package/dist/webhooks/webhooks.module.js +108 -0
- package/dist/webhooks/webhooks.module.js.map +1 -0
- package/dist/webhooks/webhooks.options.d.ts +119 -0
- package/dist/webhooks/webhooks.options.d.ts.map +1 -0
- package/dist/webhooks/webhooks.options.js +80 -0
- package/dist/webhooks/webhooks.options.js.map +1 -0
- package/dist/webhooks/webhooks.permissions.d.ts +47 -0
- package/dist/webhooks/webhooks.permissions.d.ts.map +1 -0
- package/dist/webhooks/webhooks.permissions.js +83 -0
- package/dist/webhooks/webhooks.permissions.js.map +1 -0
- package/dist/webhooks/webhooks.repository.d.ts +162 -0
- package/dist/webhooks/webhooks.repository.d.ts.map +1 -0
- package/dist/webhooks/webhooks.repository.js +246 -0
- package/dist/webhooks/webhooks.repository.js.map +1 -0
- package/dist/webhooks/webhooks.service.d.ts +91 -0
- package/dist/webhooks/webhooks.service.d.ts.map +1 -0
- package/dist/webhooks/webhooks.service.js +216 -0
- package/dist/webhooks/webhooks.service.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// `@marinoscar/platform-api/webhooks`: outbound, signed webhooks (issue #1046,
|
|
3
|
+
// epic #1044). Endpoints for a member, an organization or the deployment; the
|
|
4
|
+
// event registry and catalog; the egress (SSRF) guard; signing with the
|
|
5
|
+
// credentials store; the `webhooks.deliver`, `webhooks.fanout` and
|
|
6
|
+
// `webhooks.deliveries_purge` jobs; the domain-event bridges; the `webhook`
|
|
7
|
+
// notification channel; and `/api/webhooks`, `/api/org/webhooks` and
|
|
8
|
+
// `/api/admin/webhooks`. Documented in ./README.md. Explicit named exports only.
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.WebhookDeliverHandler = exports.signedHeaders = exports.generateWebhookSecret = exports.nodeWebhookTransport = exports.WebhookTransportError = exports.WEBHOOKS_TRANSPORT = exports.WEBHOOKS_RESOLVER = exports.systemHostResolver = exports.resolveWebhookTarget = exports.parseWebhookUrl = exports.hostForLog = exports.WebhookEgressError = exports.WebhookEndpointsService = exports.eventGroupOf = exports.buildEnvelope = exports.WebhooksService = exports.registerBuiltinWebhookEvents = exports.WEBHOOK_PING_EVENT_KEY = exports.NODE_OFFLINE_WEBHOOK_EVENT_KEY = exports.NODE_EVENT_WEBHOOK_EVENT_KEY = exports.JOB_FAILED_WEBHOOK_EVENT_KEY = exports.BUILTIN_WEBHOOK_EVENTS = exports.subscribableEvents = exports.resolveWebhookEvent = exports.catalogFor = exports.allWebhookEvents = exports.webhookEventsForScope = exports.webhookEventRegistry = exports.subscriptionMatches = exports.registerWebhookEvent = exports.patternHasEventsForScope = exports.isSubscribed = exports.findWebhookEvent = exports.registerWebhooksSystemAccessReason = exports.WEBHOOKS_SYSTEM_ACCESS_REASON = exports.WEBHOOK_SIGNING_PURPOSE = exports.WEBHOOK_RETRY_SCHEDULE_MS = exports.WEBHOOK_PURGE_JOB_TYPE = exports.WEBHOOK_NOTIFICATION_EVENT_PREFIX = exports.WEBHOOK_NOTIFICATION_CHANNEL_ID = exports.WEBHOOK_FANOUT_JOB_TYPE = exports.WEBHOOK_ENDPOINT_DISABLED_EVENT_KEY = exports.WEBHOOK_ENDPOINT_DISABLED_EMAIL_TEMPLATE = exports.WEBHOOK_DELIVERY_SUBJECT_TYPE = exports.WEBHOOK_DELIVER_JOB_TYPE = exports.WEBHOOK_AUDIT_TARGET = exports.userAgentToken = exports.resolveWebhooksModuleOptions = exports.WEBHOOKS_OPTIONS = exports.WebhooksModule = void 0;
|
|
11
|
+
exports.WebhooksController = exports.OrgWebhooksController = exports.AdminWebhooksController = exports.WebhookTestResponseDto = exports.WebhookEventCatalogDto = exports.WebhookEndpointListDto = exports.WebhookEndpointDto = exports.WebhookEndpointCreatedDto = exports.WebhookDeliveryListQueryDto = exports.WebhookDeliveryListDto = exports.WebhookDeliveryDetailDto = exports.UpdateWebhookEndpointDto = exports.RotateWebhookSecretResponseDto = exports.CreateWebhookEndpointDto = exports.withWebhookChannel = exports.webhookEndpointDisabledEmail = exports.webhookEndpointDisabledBrowserTemplate = exports.registerWebhooksEmailTemplates = exports.WEBHOOK_NOTIFICATION_CHANNEL = exports.WEBHOOKS_NOTIFICATIONS = exports.WEBHOOK_EVENTS_METRIC = exports.WEBHOOK_EMIT_OUTCOMES = exports.WEBHOOK_DELIVERY_OUTCOMES = exports.WEBHOOK_DELIVERY_DURATION_METRIC = exports.WEBHOOK_DELIVERIES_METRIC = exports.WEBHOOKS_APP_METRICS = exports.registerWebhookErrorCodes = exports.WebhookRequestError = exports.WebhookNotFoundError = exports.WebhookDisabledError = exports.WebhookDeliveryNotFoundError = exports.WEBHOOKS_PERMISSIONS = exports.SYSTEM_WEBHOOKS_PERMISSIONS = exports.ORG_WEBHOOKS_PERMISSIONS = exports.ownerMayReceive = exports.ownerIdOf = exports.basePermissionFor = exports.WEBHOOK_SIGNING_USER_CREDENTIAL_PURPOSE_DEF = exports.WEBHOOK_SIGNING_CREDENTIAL_PURPOSE_DEF = exports.secretName = exports.WebhookSecrets = exports.CredentialsWebhookSecrets = exports.WebhooksRepository = exports.PrismaWebhooksRepository = exports.WEBHOOKS_SYSTEM_PRISMA = exports.WebhookPurgeHandler = exports.WebhookFanoutHandler = exports.retryDelayMs = exports.parseRetryAfter = void 0;
|
|
12
|
+
// ---- the module and its options (rung 1) ---------------------------------------------------
|
|
13
|
+
var webhooks_module_1 = require("./webhooks.module");
|
|
14
|
+
Object.defineProperty(exports, "WebhooksModule", { enumerable: true, get: function () { return webhooks_module_1.WebhooksModule; } });
|
|
15
|
+
var webhooks_options_1 = require("./webhooks.options");
|
|
16
|
+
Object.defineProperty(exports, "WEBHOOKS_OPTIONS", { enumerable: true, get: function () { return webhooks_options_1.WEBHOOKS_OPTIONS; } });
|
|
17
|
+
Object.defineProperty(exports, "resolveWebhooksModuleOptions", { enumerable: true, get: function () { return webhooks_options_1.resolveWebhooksModuleOptions; } });
|
|
18
|
+
Object.defineProperty(exports, "userAgentToken", { enumerable: true, get: function () { return webhooks_options_1.userAgentToken; } });
|
|
19
|
+
var webhooks_constants_1 = require("./webhooks.constants");
|
|
20
|
+
Object.defineProperty(exports, "WEBHOOK_AUDIT_TARGET", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_AUDIT_TARGET; } });
|
|
21
|
+
Object.defineProperty(exports, "WEBHOOK_DELIVER_JOB_TYPE", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_DELIVER_JOB_TYPE; } });
|
|
22
|
+
Object.defineProperty(exports, "WEBHOOK_DELIVERY_SUBJECT_TYPE", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_DELIVERY_SUBJECT_TYPE; } });
|
|
23
|
+
Object.defineProperty(exports, "WEBHOOK_ENDPOINT_DISABLED_EMAIL_TEMPLATE", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_ENDPOINT_DISABLED_EMAIL_TEMPLATE; } });
|
|
24
|
+
Object.defineProperty(exports, "WEBHOOK_ENDPOINT_DISABLED_EVENT_KEY", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_ENDPOINT_DISABLED_EVENT_KEY; } });
|
|
25
|
+
Object.defineProperty(exports, "WEBHOOK_FANOUT_JOB_TYPE", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_FANOUT_JOB_TYPE; } });
|
|
26
|
+
Object.defineProperty(exports, "WEBHOOK_NOTIFICATION_CHANNEL_ID", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_NOTIFICATION_CHANNEL_ID; } });
|
|
27
|
+
Object.defineProperty(exports, "WEBHOOK_NOTIFICATION_EVENT_PREFIX", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_NOTIFICATION_EVENT_PREFIX; } });
|
|
28
|
+
Object.defineProperty(exports, "WEBHOOK_PURGE_JOB_TYPE", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_PURGE_JOB_TYPE; } });
|
|
29
|
+
Object.defineProperty(exports, "WEBHOOK_RETRY_SCHEDULE_MS", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_RETRY_SCHEDULE_MS; } });
|
|
30
|
+
Object.defineProperty(exports, "WEBHOOK_SIGNING_PURPOSE", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOK_SIGNING_PURPOSE; } });
|
|
31
|
+
Object.defineProperty(exports, "WEBHOOKS_SYSTEM_ACCESS_REASON", { enumerable: true, get: function () { return webhooks_constants_1.WEBHOOKS_SYSTEM_ACCESS_REASON; } });
|
|
32
|
+
Object.defineProperty(exports, "registerWebhooksSystemAccessReason", { enumerable: true, get: function () { return webhooks_constants_1.registerWebhooksSystemAccessReason; } });
|
|
33
|
+
// ---- events (rung 2) ------------------------------------------------------------------------
|
|
34
|
+
var webhook_event_registry_1 = require("./registry/webhook-event.registry");
|
|
35
|
+
Object.defineProperty(exports, "findWebhookEvent", { enumerable: true, get: function () { return webhook_event_registry_1.findWebhookEvent; } });
|
|
36
|
+
Object.defineProperty(exports, "isSubscribed", { enumerable: true, get: function () { return webhook_event_registry_1.isSubscribed; } });
|
|
37
|
+
Object.defineProperty(exports, "patternHasEventsForScope", { enumerable: true, get: function () { return webhook_event_registry_1.patternHasEventsForScope; } });
|
|
38
|
+
Object.defineProperty(exports, "registerWebhookEvent", { enumerable: true, get: function () { return webhook_event_registry_1.registerWebhookEvent; } });
|
|
39
|
+
Object.defineProperty(exports, "subscriptionMatches", { enumerable: true, get: function () { return webhook_event_registry_1.subscriptionMatches; } });
|
|
40
|
+
Object.defineProperty(exports, "webhookEventRegistry", { enumerable: true, get: function () { return webhook_event_registry_1.webhookEventRegistry; } });
|
|
41
|
+
Object.defineProperty(exports, "webhookEventsForScope", { enumerable: true, get: function () { return webhook_event_registry_1.webhookEventsForScope; } });
|
|
42
|
+
var webhook_catalog_1 = require("./registry/webhook-catalog");
|
|
43
|
+
Object.defineProperty(exports, "allWebhookEvents", { enumerable: true, get: function () { return webhook_catalog_1.allWebhookEvents; } });
|
|
44
|
+
Object.defineProperty(exports, "catalogFor", { enumerable: true, get: function () { return webhook_catalog_1.catalogFor; } });
|
|
45
|
+
Object.defineProperty(exports, "resolveWebhookEvent", { enumerable: true, get: function () { return webhook_catalog_1.resolveWebhookEvent; } });
|
|
46
|
+
Object.defineProperty(exports, "subscribableEvents", { enumerable: true, get: function () { return webhook_catalog_1.subscribableEvents; } });
|
|
47
|
+
var builtin_events_1 = require("./registry/builtin-events");
|
|
48
|
+
Object.defineProperty(exports, "BUILTIN_WEBHOOK_EVENTS", { enumerable: true, get: function () { return builtin_events_1.BUILTIN_WEBHOOK_EVENTS; } });
|
|
49
|
+
Object.defineProperty(exports, "JOB_FAILED_WEBHOOK_EVENT_KEY", { enumerable: true, get: function () { return builtin_events_1.JOB_FAILED_WEBHOOK_EVENT_KEY; } });
|
|
50
|
+
Object.defineProperty(exports, "NODE_EVENT_WEBHOOK_EVENT_KEY", { enumerable: true, get: function () { return builtin_events_1.NODE_EVENT_WEBHOOK_EVENT_KEY; } });
|
|
51
|
+
Object.defineProperty(exports, "NODE_OFFLINE_WEBHOOK_EVENT_KEY", { enumerable: true, get: function () { return builtin_events_1.NODE_OFFLINE_WEBHOOK_EVENT_KEY; } });
|
|
52
|
+
Object.defineProperty(exports, "WEBHOOK_PING_EVENT_KEY", { enumerable: true, get: function () { return builtin_events_1.WEBHOOK_PING_EVENT_KEY; } });
|
|
53
|
+
Object.defineProperty(exports, "registerBuiltinWebhookEvents", { enumerable: true, get: function () { return builtin_events_1.registerBuiltinWebhookEvents; } });
|
|
54
|
+
// ---- emitting ---------------------------------------------------------------------------------
|
|
55
|
+
var webhooks_service_1 = require("./webhooks.service");
|
|
56
|
+
Object.defineProperty(exports, "WebhooksService", { enumerable: true, get: function () { return webhooks_service_1.WebhooksService; } });
|
|
57
|
+
var webhook_envelope_1 = require("./webhook-envelope");
|
|
58
|
+
Object.defineProperty(exports, "buildEnvelope", { enumerable: true, get: function () { return webhook_envelope_1.buildEnvelope; } });
|
|
59
|
+
Object.defineProperty(exports, "eventGroupOf", { enumerable: true, get: function () { return webhook_envelope_1.eventGroupOf; } });
|
|
60
|
+
var webhook_endpoints_service_1 = require("./webhook-endpoints.service");
|
|
61
|
+
Object.defineProperty(exports, "WebhookEndpointsService", { enumerable: true, get: function () { return webhook_endpoints_service_1.WebhookEndpointsService; } });
|
|
62
|
+
// ---- egress, transport and signing ------------------------------------------------------------
|
|
63
|
+
var egress_guard_1 = require("./egress/egress-guard");
|
|
64
|
+
Object.defineProperty(exports, "WebhookEgressError", { enumerable: true, get: function () { return egress_guard_1.WebhookEgressError; } });
|
|
65
|
+
Object.defineProperty(exports, "hostForLog", { enumerable: true, get: function () { return egress_guard_1.hostForLog; } });
|
|
66
|
+
Object.defineProperty(exports, "parseWebhookUrl", { enumerable: true, get: function () { return egress_guard_1.parseWebhookUrl; } });
|
|
67
|
+
Object.defineProperty(exports, "resolveWebhookTarget", { enumerable: true, get: function () { return egress_guard_1.resolveWebhookTarget; } });
|
|
68
|
+
Object.defineProperty(exports, "systemHostResolver", { enumerable: true, get: function () { return egress_guard_1.systemHostResolver; } });
|
|
69
|
+
var transport_1 = require("./egress/transport");
|
|
70
|
+
Object.defineProperty(exports, "WEBHOOKS_RESOLVER", { enumerable: true, get: function () { return transport_1.WEBHOOKS_RESOLVER; } });
|
|
71
|
+
Object.defineProperty(exports, "WEBHOOKS_TRANSPORT", { enumerable: true, get: function () { return transport_1.WEBHOOKS_TRANSPORT; } });
|
|
72
|
+
Object.defineProperty(exports, "WebhookTransportError", { enumerable: true, get: function () { return transport_1.WebhookTransportError; } });
|
|
73
|
+
Object.defineProperty(exports, "nodeWebhookTransport", { enumerable: true, get: function () { return transport_1.nodeWebhookTransport; } });
|
|
74
|
+
var signing_1 = require("./signing");
|
|
75
|
+
Object.defineProperty(exports, "generateWebhookSecret", { enumerable: true, get: function () { return signing_1.generateWebhookSecret; } });
|
|
76
|
+
Object.defineProperty(exports, "signedHeaders", { enumerable: true, get: function () { return signing_1.signedHeaders; } });
|
|
77
|
+
var webhook_deliver_handler_1 = require("./handlers/webhook-deliver.handler");
|
|
78
|
+
Object.defineProperty(exports, "WebhookDeliverHandler", { enumerable: true, get: function () { return webhook_deliver_handler_1.WebhookDeliverHandler; } });
|
|
79
|
+
Object.defineProperty(exports, "parseRetryAfter", { enumerable: true, get: function () { return webhook_deliver_handler_1.parseRetryAfter; } });
|
|
80
|
+
Object.defineProperty(exports, "retryDelayMs", { enumerable: true, get: function () { return webhook_deliver_handler_1.retryDelayMs; } });
|
|
81
|
+
var webhook_fanout_handler_1 = require("./handlers/webhook-fanout.handler");
|
|
82
|
+
Object.defineProperty(exports, "WebhookFanoutHandler", { enumerable: true, get: function () { return webhook_fanout_handler_1.WebhookFanoutHandler; } });
|
|
83
|
+
var webhook_purge_handler_1 = require("./handlers/webhook-purge.handler");
|
|
84
|
+
Object.defineProperty(exports, "WebhookPurgeHandler", { enumerable: true, get: function () { return webhook_purge_handler_1.WebhookPurgeHandler; } });
|
|
85
|
+
// ---- data and secrets ports ------------------------------------------------------------------
|
|
86
|
+
var ports_1 = require("./ports");
|
|
87
|
+
Object.defineProperty(exports, "WEBHOOKS_SYSTEM_PRISMA", { enumerable: true, get: function () { return ports_1.WEBHOOKS_SYSTEM_PRISMA; } });
|
|
88
|
+
var webhooks_repository_1 = require("./webhooks.repository");
|
|
89
|
+
Object.defineProperty(exports, "PrismaWebhooksRepository", { enumerable: true, get: function () { return webhooks_repository_1.PrismaWebhooksRepository; } });
|
|
90
|
+
Object.defineProperty(exports, "WebhooksRepository", { enumerable: true, get: function () { return webhooks_repository_1.WebhooksRepository; } });
|
|
91
|
+
var webhook_secrets_service_1 = require("./webhook-secrets.service");
|
|
92
|
+
Object.defineProperty(exports, "CredentialsWebhookSecrets", { enumerable: true, get: function () { return webhook_secrets_service_1.CredentialsWebhookSecrets; } });
|
|
93
|
+
Object.defineProperty(exports, "WebhookSecrets", { enumerable: true, get: function () { return webhook_secrets_service_1.WebhookSecrets; } });
|
|
94
|
+
Object.defineProperty(exports, "secretName", { enumerable: true, get: function () { return webhook_secrets_service_1.secretName; } });
|
|
95
|
+
var webhooks_credentials_1 = require("./webhooks.credentials");
|
|
96
|
+
Object.defineProperty(exports, "WEBHOOK_SIGNING_CREDENTIAL_PURPOSE_DEF", { enumerable: true, get: function () { return webhooks_credentials_1.WEBHOOK_SIGNING_CREDENTIAL_PURPOSE_DEF; } });
|
|
97
|
+
Object.defineProperty(exports, "WEBHOOK_SIGNING_USER_CREDENTIAL_PURPOSE_DEF", { enumerable: true, get: function () { return webhooks_credentials_1.WEBHOOK_SIGNING_USER_CREDENTIAL_PURPOSE_DEF; } });
|
|
98
|
+
var webhooks_access_1 = require("./webhooks.access");
|
|
99
|
+
Object.defineProperty(exports, "basePermissionFor", { enumerable: true, get: function () { return webhooks_access_1.basePermissionFor; } });
|
|
100
|
+
Object.defineProperty(exports, "ownerIdOf", { enumerable: true, get: function () { return webhooks_access_1.ownerIdOf; } });
|
|
101
|
+
Object.defineProperty(exports, "ownerMayReceive", { enumerable: true, get: function () { return webhooks_access_1.ownerMayReceive; } });
|
|
102
|
+
// ---- permissions, errors, metrics -------------------------------------------------------------
|
|
103
|
+
var webhooks_permissions_1 = require("./webhooks.permissions");
|
|
104
|
+
Object.defineProperty(exports, "ORG_WEBHOOKS_PERMISSIONS", { enumerable: true, get: function () { return webhooks_permissions_1.ORG_WEBHOOKS_PERMISSIONS; } });
|
|
105
|
+
Object.defineProperty(exports, "SYSTEM_WEBHOOKS_PERMISSIONS", { enumerable: true, get: function () { return webhooks_permissions_1.SYSTEM_WEBHOOKS_PERMISSIONS; } });
|
|
106
|
+
Object.defineProperty(exports, "WEBHOOKS_PERMISSIONS", { enumerable: true, get: function () { return webhooks_permissions_1.WEBHOOKS_PERMISSIONS; } });
|
|
107
|
+
var webhooks_errors_1 = require("./webhooks.errors");
|
|
108
|
+
Object.defineProperty(exports, "WebhookDeliveryNotFoundError", { enumerable: true, get: function () { return webhooks_errors_1.WebhookDeliveryNotFoundError; } });
|
|
109
|
+
Object.defineProperty(exports, "WebhookDisabledError", { enumerable: true, get: function () { return webhooks_errors_1.WebhookDisabledError; } });
|
|
110
|
+
Object.defineProperty(exports, "WebhookNotFoundError", { enumerable: true, get: function () { return webhooks_errors_1.WebhookNotFoundError; } });
|
|
111
|
+
Object.defineProperty(exports, "WebhookRequestError", { enumerable: true, get: function () { return webhooks_errors_1.WebhookRequestError; } });
|
|
112
|
+
Object.defineProperty(exports, "registerWebhookErrorCodes", { enumerable: true, get: function () { return webhooks_errors_1.registerWebhookErrorCodes; } });
|
|
113
|
+
var webhooks_metrics_1 = require("./webhooks.metrics");
|
|
114
|
+
Object.defineProperty(exports, "WEBHOOKS_APP_METRICS", { enumerable: true, get: function () { return webhooks_metrics_1.WEBHOOKS_APP_METRICS; } });
|
|
115
|
+
Object.defineProperty(exports, "WEBHOOK_DELIVERIES_METRIC", { enumerable: true, get: function () { return webhooks_metrics_1.WEBHOOK_DELIVERIES_METRIC; } });
|
|
116
|
+
Object.defineProperty(exports, "WEBHOOK_DELIVERY_DURATION_METRIC", { enumerable: true, get: function () { return webhooks_metrics_1.WEBHOOK_DELIVERY_DURATION_METRIC; } });
|
|
117
|
+
Object.defineProperty(exports, "WEBHOOK_DELIVERY_OUTCOMES", { enumerable: true, get: function () { return webhooks_metrics_1.WEBHOOK_DELIVERY_OUTCOMES; } });
|
|
118
|
+
Object.defineProperty(exports, "WEBHOOK_EMIT_OUTCOMES", { enumerable: true, get: function () { return webhooks_metrics_1.WEBHOOK_EMIT_OUTCOMES; } });
|
|
119
|
+
Object.defineProperty(exports, "WEBHOOK_EVENTS_METRIC", { enumerable: true, get: function () { return webhooks_metrics_1.WEBHOOK_EVENTS_METRIC; } });
|
|
120
|
+
// ---- notifications -----------------------------------------------------------------------------
|
|
121
|
+
var webhook_notifications_1 = require("./notifications/webhook-notifications");
|
|
122
|
+
Object.defineProperty(exports, "WEBHOOKS_NOTIFICATIONS", { enumerable: true, get: function () { return webhook_notifications_1.WEBHOOKS_NOTIFICATIONS; } });
|
|
123
|
+
Object.defineProperty(exports, "WEBHOOK_NOTIFICATION_CHANNEL", { enumerable: true, get: function () { return webhook_notifications_1.WEBHOOK_NOTIFICATION_CHANNEL; } });
|
|
124
|
+
Object.defineProperty(exports, "registerWebhooksEmailTemplates", { enumerable: true, get: function () { return webhook_notifications_1.registerWebhooksEmailTemplates; } });
|
|
125
|
+
Object.defineProperty(exports, "webhookEndpointDisabledBrowserTemplate", { enumerable: true, get: function () { return webhook_notifications_1.webhookEndpointDisabledBrowserTemplate; } });
|
|
126
|
+
Object.defineProperty(exports, "webhookEndpointDisabledEmail", { enumerable: true, get: function () { return webhook_notifications_1.webhookEndpointDisabledEmail; } });
|
|
127
|
+
Object.defineProperty(exports, "withWebhookChannel", { enumerable: true, get: function () { return webhook_notifications_1.withWebhookChannel; } });
|
|
128
|
+
// ---- routes (for the app's route discovery and tests) ---------------------------------------
|
|
129
|
+
var webhook_dto_1 = require("./http/webhook.dto");
|
|
130
|
+
Object.defineProperty(exports, "CreateWebhookEndpointDto", { enumerable: true, get: function () { return webhook_dto_1.CreateWebhookEndpointDto; } });
|
|
131
|
+
Object.defineProperty(exports, "RotateWebhookSecretResponseDto", { enumerable: true, get: function () { return webhook_dto_1.RotateWebhookSecretResponseDto; } });
|
|
132
|
+
Object.defineProperty(exports, "UpdateWebhookEndpointDto", { enumerable: true, get: function () { return webhook_dto_1.UpdateWebhookEndpointDto; } });
|
|
133
|
+
Object.defineProperty(exports, "WebhookDeliveryDetailDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookDeliveryDetailDto; } });
|
|
134
|
+
Object.defineProperty(exports, "WebhookDeliveryListDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookDeliveryListDto; } });
|
|
135
|
+
Object.defineProperty(exports, "WebhookDeliveryListQueryDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookDeliveryListQueryDto; } });
|
|
136
|
+
Object.defineProperty(exports, "WebhookEndpointCreatedDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookEndpointCreatedDto; } });
|
|
137
|
+
Object.defineProperty(exports, "WebhookEndpointDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookEndpointDto; } });
|
|
138
|
+
Object.defineProperty(exports, "WebhookEndpointListDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookEndpointListDto; } });
|
|
139
|
+
Object.defineProperty(exports, "WebhookEventCatalogDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookEventCatalogDto; } });
|
|
140
|
+
Object.defineProperty(exports, "WebhookTestResponseDto", { enumerable: true, get: function () { return webhook_dto_1.WebhookTestResponseDto; } });
|
|
141
|
+
var admin_webhooks_controller_1 = require("./http/admin-webhooks.controller");
|
|
142
|
+
Object.defineProperty(exports, "AdminWebhooksController", { enumerable: true, get: function () { return admin_webhooks_controller_1.AdminWebhooksController; } });
|
|
143
|
+
var org_webhooks_controller_1 = require("./http/org-webhooks.controller");
|
|
144
|
+
Object.defineProperty(exports, "OrgWebhooksController", { enumerable: true, get: function () { return org_webhooks_controller_1.OrgWebhooksController; } });
|
|
145
|
+
var webhooks_controller_1 = require("./http/webhooks.controller");
|
|
146
|
+
Object.defineProperty(exports, "WebhooksController", { enumerable: true, get: function () { return webhooks_controller_1.WebhooksController; } });
|
|
147
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/webhooks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type JobSettledEvent } from '../../jobs/index';
|
|
2
|
+
import { type NodeEventReportedEvent, type NodeOfflineEvent } from '../../nodes/index';
|
|
3
|
+
import { WebhooksService } from '../webhooks.service';
|
|
4
|
+
/**
|
|
5
|
+
* The bridges. See the file header.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*
|
|
9
|
+
* @stability experimental
|
|
10
|
+
*/
|
|
11
|
+
export declare class WebhookEventListeners {
|
|
12
|
+
private readonly webhooks;
|
|
13
|
+
private readonly logger;
|
|
14
|
+
constructor(webhooks: WebhooksService);
|
|
15
|
+
/** `nodes.node.offline` to the `nodes.node.offline` webhook event. */
|
|
16
|
+
onNodeOffline(event: NodeOfflineEvent): void;
|
|
17
|
+
/** `nodes.node.event` to the `nodes.node.event` webhook event. */
|
|
18
|
+
onNodeEvent(event: NodeEventReportedEvent): void;
|
|
19
|
+
/** `job.settled` (failed for good) to the `jobs.job.failed` webhook event. */
|
|
20
|
+
onJobSettled(event: JobSettledEvent): void;
|
|
21
|
+
private queue;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=webhook-event.listeners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-event.listeners.d.ts","sourceRoot":"","sources":["../../../src/webhooks/listeners/webhook-event.listeners.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAA2C,KAAK,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAMhI,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD;;;;;;GAMG;AACH,qBACa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;gBAEpC,QAAQ,EAAE,eAAe;IAEtD,sEAAsE;IAEtE,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAU5C,kEAAkE;IAElE,WAAW,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI;IAWhD,8EAA8E;IAE9E,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;YAc5B,KAAK;CAOpB"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Domain-event bridges (issue #1046)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// The platform raises plain in-process events (`nodes.node.offline`,
|
|
7
|
+
// `nodes.node.event`, `job.settled`); these listeners turn them into webhook
|
|
8
|
+
// events. A listener body does NO fan-out and NO I/O of its own: it validates
|
|
9
|
+
// nothing, loads nothing and sends nothing; it hands the event to
|
|
10
|
+
// `WebhooksService.enqueueFanout`, one bounded insert into the queue, and the
|
|
11
|
+
// `webhooks.fanout` job does the rest (the `on-event-no-io` rule).
|
|
12
|
+
//
|
|
13
|
+
// A failure of the enqueue is logged and swallowed: an event bridge must never
|
|
14
|
+
// break the code that raised the event.
|
|
15
|
+
//
|
|
16
|
+
// `job.settled` is bridged only for a job that FAILED FOR GOOD, and never for
|
|
17
|
+
// the slice's own `webhooks.*` jobs (a webhook about a failed webhook would
|
|
18
|
+
// loop).
|
|
19
|
+
// =============================================================================
|
|
20
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
21
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
22
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
23
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
24
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
25
|
+
};
|
|
26
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
27
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
28
|
+
};
|
|
29
|
+
var WebhookEventListeners_1;
|
|
30
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
+
exports.WebhookEventListeners = void 0;
|
|
32
|
+
const common_1 = require("@nestjs/common");
|
|
33
|
+
const event_emitter_1 = require("@nestjs/event-emitter");
|
|
34
|
+
const index_1 = require("../../jobs/index");
|
|
35
|
+
const index_2 = require("../../nodes/index");
|
|
36
|
+
const builtin_events_1 = require("../registry/builtin-events");
|
|
37
|
+
const webhooks_service_1 = require("../webhooks.service");
|
|
38
|
+
const LAST_ERROR_MAX = 500;
|
|
39
|
+
/**
|
|
40
|
+
* The bridges. See the file header.
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
43
|
+
*
|
|
44
|
+
* @stability experimental
|
|
45
|
+
*/
|
|
46
|
+
let WebhookEventListeners = WebhookEventListeners_1 = class WebhookEventListeners {
|
|
47
|
+
webhooks;
|
|
48
|
+
logger = new common_1.Logger(WebhookEventListeners_1.name);
|
|
49
|
+
constructor(webhooks) {
|
|
50
|
+
this.webhooks = webhooks;
|
|
51
|
+
}
|
|
52
|
+
/** `nodes.node.offline` to the `nodes.node.offline` webhook event. */
|
|
53
|
+
onNodeOffline(event) {
|
|
54
|
+
void this.queue(builtin_events_1.NODE_OFFLINE_WEBHOOK_EVENT_KEY, {
|
|
55
|
+
nodeId: event.nodeId,
|
|
56
|
+
nodeName: event.nodeName,
|
|
57
|
+
lastHeartbeatAt: event.lastHeartbeatAt ? event.lastHeartbeatAt.toISOString() : null,
|
|
58
|
+
markedOfflineAt: event.markedOfflineAt.toISOString(),
|
|
59
|
+
staleAfterMinutes: event.staleAfterMinutes,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/** `nodes.node.event` to the `nodes.node.event` webhook event. */
|
|
63
|
+
onNodeEvent(event) {
|
|
64
|
+
void this.queue(builtin_events_1.NODE_EVENT_WEBHOOK_EVENT_KEY, {
|
|
65
|
+
nodeId: event.nodeId,
|
|
66
|
+
nodeName: event.nodeName,
|
|
67
|
+
type: event.type,
|
|
68
|
+
severity: event.severity,
|
|
69
|
+
attrs: { ...event.attrs },
|
|
70
|
+
occurredAt: event.occurredAt.toISOString(),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/** `job.settled` (failed for good) to the `jobs.job.failed` webhook event. */
|
|
74
|
+
onJobSettled(event) {
|
|
75
|
+
if (event.succeeded || event.type.startsWith('webhooks.'))
|
|
76
|
+
return;
|
|
77
|
+
void this.queue(builtin_events_1.JOB_FAILED_WEBHOOK_EVENT_KEY, {
|
|
78
|
+
jobId: event.jobId,
|
|
79
|
+
type: event.type,
|
|
80
|
+
subjectType: event.subjectType,
|
|
81
|
+
subjectId: event.subjectId,
|
|
82
|
+
orgId: event.job.orgId ?? null,
|
|
83
|
+
attempts: event.job.attempts,
|
|
84
|
+
lastError: event.lastError ? event.lastError.slice(0, LAST_ERROR_MAX) : null,
|
|
85
|
+
finishedAt: event.job.finishedAt ? event.job.finishedAt.toISOString() : null,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async queue(eventKey, data) {
|
|
89
|
+
try {
|
|
90
|
+
await this.webhooks.enqueueFanout(eventKey, data, { orgId: null });
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
this.logger.warn(`Could not queue the "${eventKey}" webhook fan-out: ${error instanceof Error ? error.message : String(error)}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
exports.WebhookEventListeners = WebhookEventListeners;
|
|
98
|
+
__decorate([
|
|
99
|
+
(0, event_emitter_1.OnEvent)(index_2.NODE_OFFLINE_EVENT),
|
|
100
|
+
__metadata("design:type", Function),
|
|
101
|
+
__metadata("design:paramtypes", [Function]),
|
|
102
|
+
__metadata("design:returntype", void 0)
|
|
103
|
+
], WebhookEventListeners.prototype, "onNodeOffline", null);
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, event_emitter_1.OnEvent)(index_2.NODE_EVENT_REPORTED),
|
|
106
|
+
__metadata("design:type", Function),
|
|
107
|
+
__metadata("design:paramtypes", [Function]),
|
|
108
|
+
__metadata("design:returntype", void 0)
|
|
109
|
+
], WebhookEventListeners.prototype, "onNodeEvent", null);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, event_emitter_1.OnEvent)(index_1.JOB_SETTLED_EVENT),
|
|
112
|
+
__metadata("design:type", Function),
|
|
113
|
+
__metadata("design:paramtypes", [Function]),
|
|
114
|
+
__metadata("design:returntype", void 0)
|
|
115
|
+
], WebhookEventListeners.prototype, "onJobSettled", null);
|
|
116
|
+
exports.WebhookEventListeners = WebhookEventListeners = WebhookEventListeners_1 = __decorate([
|
|
117
|
+
(0, common_1.Injectable)(),
|
|
118
|
+
__metadata("design:paramtypes", [webhooks_service_1.WebhooksService])
|
|
119
|
+
], WebhookEventListeners);
|
|
120
|
+
//# sourceMappingURL=webhook-event.listeners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-event.listeners.js","sourceRoot":"","sources":["../../../src/webhooks/listeners/webhook-event.listeners.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { NotificationChannelSenderRegistry, type ChannelDeliveryResult, type NotificationChannelSender, type NotificationDispatchContext, type NotificationRecipient, type ResolvedRecipient } from '../../notifications/index';
|
|
3
|
+
import type { WebhooksPrisma } from '../ports';
|
|
4
|
+
import { WebhooksRepository } from '../webhooks.repository';
|
|
5
|
+
import { WebhooksService } from '../webhooks.service';
|
|
6
|
+
/**
|
|
7
|
+
* The transport. See the file header.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*
|
|
11
|
+
* @stability experimental
|
|
12
|
+
*/
|
|
13
|
+
export declare class WebhookNotificationChannel implements NotificationChannelSender, OnModuleInit {
|
|
14
|
+
private readonly senders;
|
|
15
|
+
private readonly webhooks;
|
|
16
|
+
private readonly repository;
|
|
17
|
+
private readonly prisma;
|
|
18
|
+
readonly channel = "webhook";
|
|
19
|
+
private readonly logger;
|
|
20
|
+
constructor(senders: NotificationChannelSenderRegistry, webhooks: WebhooksService, repository: WebhooksRepository, prisma: WebhooksPrisma);
|
|
21
|
+
/** Registers this sender for `webhook`; the channel id must be registered first. */
|
|
22
|
+
onModuleInit(): void;
|
|
23
|
+
resolveRecipient(recipient: NotificationRecipient, context: {
|
|
24
|
+
readonly event: {
|
|
25
|
+
readonly key: string;
|
|
26
|
+
};
|
|
27
|
+
}): Promise<ResolvedRecipient | null>;
|
|
28
|
+
deliver(context: NotificationDispatchContext, to: string): Promise<ChannelDeliveryResult>;
|
|
29
|
+
private renderLikeTheBell;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=webhook-notification.channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-notification.channel.d.ts","sourceRoot":"","sources":["../../../src/webhooks/notifications/webhook-notification.channel.ts"],"names":[],"mappings":"AAsBA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI/E,OAAO,EACL,iCAAiC,EAGjC,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;GAMG;AACH,qBACa,0BAA2B,YAAW,yBAAyB,EAAE,YAAY;IAMtF,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU;IACF,OAAO,CAAC,QAAQ,CAAC,MAAM;IARlD,QAAQ,CAAC,OAAO,aAAmC;IAEnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;gBAGnD,OAAO,EAAE,iCAAiC,EAC1C,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,kBAAkB,EACL,MAAM,EAAE,cAAc;IAGlE,oFAAoF;IACpF,YAAY,IAAI,IAAI;IAId,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAc5I,OAAO,CAAC,OAAO,EAAE,2BAA2B,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqB/F,OAAO,CAAC,iBAAiB;CAU1B"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// The `webhook` notification channel's transport (issue #1046)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
//
|
|
6
|
+
// A user's notification, forwarded to the user's own webhook endpoints. It is a
|
|
7
|
+
// `NotificationChannelSender` like the platform's: the dispatcher has already
|
|
8
|
+
// applied the user's preferences (they opt in per event in the matrix) and the
|
|
9
|
+
// administrator's channel switch before `deliver` runs.
|
|
10
|
+
//
|
|
11
|
+
// - `resolveRecipient` answers `null` (the channel is skipped, no row, no
|
|
12
|
+
// attempt) unless the user has at least one ENABLED user-scope endpoint
|
|
13
|
+
// subscribed to `notification.<eventKey>` (or `notification.*`, `*`);
|
|
14
|
+
// - `deliver` renders the notification the way the bell does (the event's
|
|
15
|
+
// channel template, else its browser template, else its label) and
|
|
16
|
+
// `WebhooksService.emitForUser`s it. The raw template data is NOT sent: only
|
|
17
|
+
// the rendered title, body and link, the event identity and any `fields`
|
|
18
|
+
// the channel template adds.
|
|
19
|
+
//
|
|
20
|
+
// It never throws and puts no secret or message text in an error. The send
|
|
21
|
+
// itself is the `webhooks.deliver` job's: this does one fan-out transaction.
|
|
22
|
+
// =============================================================================
|
|
23
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
24
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
25
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
26
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
27
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
28
|
+
};
|
|
29
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
30
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
31
|
+
};
|
|
32
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
33
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
34
|
+
};
|
|
35
|
+
var WebhookNotificationChannel_1;
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.WebhookNotificationChannel = void 0;
|
|
38
|
+
const common_1 = require("@nestjs/common");
|
|
39
|
+
const index_1 = require("../../core/index");
|
|
40
|
+
const index_2 = require("../../identity/index");
|
|
41
|
+
const index_3 = require("../../notifications/index");
|
|
42
|
+
const webhook_event_registry_1 = require("../registry/webhook-event.registry");
|
|
43
|
+
const webhooks_constants_1 = require("../webhooks.constants");
|
|
44
|
+
const webhooks_repository_1 = require("../webhooks.repository");
|
|
45
|
+
const webhooks_service_1 = require("../webhooks.service");
|
|
46
|
+
/**
|
|
47
|
+
* The transport. See the file header.
|
|
48
|
+
*
|
|
49
|
+
* @internal
|
|
50
|
+
*
|
|
51
|
+
* @stability experimental
|
|
52
|
+
*/
|
|
53
|
+
let WebhookNotificationChannel = WebhookNotificationChannel_1 = class WebhookNotificationChannel {
|
|
54
|
+
senders;
|
|
55
|
+
webhooks;
|
|
56
|
+
repository;
|
|
57
|
+
prisma;
|
|
58
|
+
channel = webhooks_constants_1.WEBHOOK_NOTIFICATION_CHANNEL_ID;
|
|
59
|
+
logger = new common_1.Logger(WebhookNotificationChannel_1.name);
|
|
60
|
+
constructor(senders, webhooks, repository, prisma) {
|
|
61
|
+
this.senders = senders;
|
|
62
|
+
this.webhooks = webhooks;
|
|
63
|
+
this.repository = repository;
|
|
64
|
+
this.prisma = prisma;
|
|
65
|
+
}
|
|
66
|
+
/** Registers this sender for `webhook`; the channel id must be registered first. */
|
|
67
|
+
onModuleInit() {
|
|
68
|
+
this.senders.register(this);
|
|
69
|
+
}
|
|
70
|
+
async resolveRecipient(recipient, context) {
|
|
71
|
+
if (!recipient.userId)
|
|
72
|
+
return null;
|
|
73
|
+
try {
|
|
74
|
+
const orgId = await (0, index_2.resolveOrgId)(this.prisma, recipient.orgId ?? null, 'Webhook notification');
|
|
75
|
+
const endpoints = await this.repository.enabledEndpoints(orgId, { scope: 'user', ownerUserId: recipient.userId });
|
|
76
|
+
const key = `${webhooks_constants_1.WEBHOOK_NOTIFICATION_EVENT_PREFIX}${context.event.key}`;
|
|
77
|
+
if (!endpoints.some((endpoint) => (0, webhook_event_registry_1.isSubscribed)(endpoint.eventKeys, key)))
|
|
78
|
+
return null;
|
|
79
|
+
return { to: recipient.userId, display: 'your webhook endpoints' };
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
this.logger.debug(`No webhook recipient for "${context.event.key}": ${error instanceof Error ? error.message : String(error)}`);
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async deliver(context, to) {
|
|
87
|
+
try {
|
|
88
|
+
const { event } = context;
|
|
89
|
+
const rendered = (0, index_3.renderChannelPayload)(this.channel, context) ??
|
|
90
|
+
this.renderLikeTheBell(context) ?? { title: event.label, body: event.description };
|
|
91
|
+
const data = {
|
|
92
|
+
event: { key: event.key, label: event.label, description: event.description },
|
|
93
|
+
title: rendered.title,
|
|
94
|
+
body: rendered.body,
|
|
95
|
+
link: rendered.link ?? null,
|
|
96
|
+
fields: ('fields' in rendered && rendered.fields ? rendered.fields : null),
|
|
97
|
+
};
|
|
98
|
+
await this.webhooks.emitForUser(to, `${webhooks_constants_1.WEBHOOK_NOTIFICATION_EVENT_PREFIX}${event.key}`, data, { orgId: context.recipient.orgId ?? null });
|
|
99
|
+
return { success: true };
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
this.logger.warn(`The webhook channel failed for "${context.event.key}": ${error instanceof Error ? error.constructor.name : 'error'}`);
|
|
103
|
+
return { success: false, error: 'The webhook fan-out failed' };
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
renderLikeTheBell(context) {
|
|
107
|
+
const binding = index_3.eventBrowserTemplateRegistry.get(context.event.key);
|
|
108
|
+
if (!binding)
|
|
109
|
+
return null;
|
|
110
|
+
try {
|
|
111
|
+
const content = binding.render(context.data, { timeZone: context.recipient.timeZone ?? null });
|
|
112
|
+
return { title: content.title, body: content.body, ...(content.link ? { link: content.link } : {}) };
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
exports.WebhookNotificationChannel = WebhookNotificationChannel;
|
|
120
|
+
exports.WebhookNotificationChannel = WebhookNotificationChannel = WebhookNotificationChannel_1 = __decorate([
|
|
121
|
+
(0, common_1.Injectable)(),
|
|
122
|
+
__param(3, (0, common_1.Inject)(index_1.PLATFORM_PRISMA)),
|
|
123
|
+
__metadata("design:paramtypes", [index_3.NotificationChannelSenderRegistry,
|
|
124
|
+
webhooks_service_1.WebhooksService,
|
|
125
|
+
webhooks_repository_1.WebhooksRepository, Object])
|
|
126
|
+
], WebhookNotificationChannel);
|
|
127
|
+
//# sourceMappingURL=webhook-notification.channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-notification.channel.js","sourceRoot":"","sources":["../../../src/webhooks/notifications/webhook-notification.channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { EmailRenderContext, RenderedEmail } from '../../email/index';
|
|
2
|
+
import type { NotificationChannelDef, NotificationRegistration } from '../../notifications/index';
|
|
3
|
+
/**
|
|
4
|
+
* The `webhook` channel's registry entry. Its id is persisted in preferences
|
|
5
|
+
* and delivery rows: never rename it.
|
|
6
|
+
*
|
|
7
|
+
* @extensionPoint registry
|
|
8
|
+
* @stability experimental
|
|
9
|
+
*/
|
|
10
|
+
export declare const WEBHOOK_NOTIFICATION_CHANNEL: NotificationChannelDef;
|
|
11
|
+
/**
|
|
12
|
+
* The data of `webhooks.endpoint_disabled`.
|
|
13
|
+
*
|
|
14
|
+
* @stability experimental
|
|
15
|
+
*/
|
|
16
|
+
export interface WebhookEndpointDisabledData {
|
|
17
|
+
/** The endpoint id. */
|
|
18
|
+
endpointId: string;
|
|
19
|
+
/** Its name. */
|
|
20
|
+
endpointName: string;
|
|
21
|
+
/** `user`, `org` or `system`. */
|
|
22
|
+
scope: string;
|
|
23
|
+
/** `circuit_open` (too many failures) or `gone` (the receiver answered 410). */
|
|
24
|
+
reason: string;
|
|
25
|
+
/** The receiver's host (never the path or query). */
|
|
26
|
+
host: string;
|
|
27
|
+
}
|
|
28
|
+
/** The bell and push text of a webhook notification. @stability experimental */
|
|
29
|
+
export interface WebhookBrowserContent {
|
|
30
|
+
/** The headline. */
|
|
31
|
+
title: string;
|
|
32
|
+
/** The sentence under it. */
|
|
33
|
+
body: string;
|
|
34
|
+
/** A root-relative link to the settings page. */
|
|
35
|
+
link: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The bell and push text of `webhooks.endpoint_disabled`.
|
|
39
|
+
*
|
|
40
|
+
* @param data - the event data.
|
|
41
|
+
* @returns title, body and a root-relative link to the settings page.
|
|
42
|
+
*
|
|
43
|
+
* @stability experimental
|
|
44
|
+
*/
|
|
45
|
+
export declare function webhookEndpointDisabledBrowserTemplate(data: WebhookEndpointDisabledData): WebhookBrowserContent;
|
|
46
|
+
/**
|
|
47
|
+
* The email of `webhooks.endpoint_disabled`.
|
|
48
|
+
*
|
|
49
|
+
* @param data - the event data; the endpoint name is user-typed and escaped on the way in.
|
|
50
|
+
* @param ctx - the render context.
|
|
51
|
+
* @returns the rendered message.
|
|
52
|
+
*
|
|
53
|
+
* @stability experimental
|
|
54
|
+
*/
|
|
55
|
+
export declare function webhookEndpointDisabledEmail(data: WebhookEndpointDisabledData, ctx?: EmailRenderContext): RenderedEmail;
|
|
56
|
+
/**
|
|
57
|
+
* Registers the slice's one email template with the email slice's registry.
|
|
58
|
+
* Idempotent. Call it from the notification manifest, after the email render
|
|
59
|
+
* context is configured and before `registerNotifications(WEBHOOKS_NOTIFICATIONS)`.
|
|
60
|
+
*
|
|
61
|
+
* @throws RegistryError `DUPLICATE_ID` when the app registered the name with another renderer; `FROZEN` after bootstrap.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* registerWebhooksEmailTemplates();
|
|
66
|
+
* registerNotifications(WEBHOOKS_NOTIFICATIONS);
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @extensionPoint registry
|
|
70
|
+
* @stability experimental
|
|
71
|
+
*/
|
|
72
|
+
export declare function registerWebhooksEmailTemplates(): void;
|
|
73
|
+
/**
|
|
74
|
+
* The `webhooks.endpoint_disabled` registration: event, email template name and
|
|
75
|
+
* browser renderer.
|
|
76
|
+
*
|
|
77
|
+
* @stability experimental
|
|
78
|
+
*/
|
|
79
|
+
export declare const WEBHOOKS_NOTIFICATIONS: readonly NotificationRegistration[];
|
|
80
|
+
/**
|
|
81
|
+
* Puts the `webhook` channel on notification registrations, so a member can
|
|
82
|
+
* forward the event to their endpoints from the preferences matrix. The
|
|
83
|
+
* slice's own `webhooks.endpoint_disabled` is left alone (a webhook about a
|
|
84
|
+
* broken webhook helps no one). The input is not modified.
|
|
85
|
+
*
|
|
86
|
+
* @param registrations - what the manifest would register.
|
|
87
|
+
* @returns the same registrations with `webhook` appended to each event's channels.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* registerNotifications(withWebhookChannel(AUTH_NOTIFICATIONS));
|
|
92
|
+
* ```
|
|
93
|
+
*
|
|
94
|
+
* @extensionPoint hook
|
|
95
|
+
* @stability experimental
|
|
96
|
+
*/
|
|
97
|
+
export declare function withWebhookChannel(registrations: readonly NotificationRegistration[]): NotificationRegistration[];
|
|
98
|
+
//# sourceMappingURL=webhook-notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-notifications.d.ts","sourceRoot":"","sources":["../../../src/webhooks/notifications/webhook-notifications.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,kBAAkB,EAAsB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAOlG;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,EAAE,sBAQzC,CAAC;AAEH;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,2BAA2B,GAAG,qBAAqB,CAO/G;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,2BAA2B,EAAE,GAAG,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAmBvH;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAIrD;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,wBAAwB,EAYpE,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,SAAS,wBAAwB,EAAE,GAAG,wBAAwB,EAAE,CAOjH"}
|