@teneo-protocol/sdk 1.0.0
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/.dockerignore +14 -0
- package/.env.test.example +14 -0
- package/.eslintrc.json +26 -0
- package/.github/workflows/claude-code-review.yml +78 -0
- package/.github/workflows/claude-reviewer.yml +64 -0
- package/.github/workflows/publish-npm.yml +38 -0
- package/.github/workflows/push-to-main.yml +23 -0
- package/.node-version +1 -0
- package/.prettierrc +11 -0
- package/Dockerfile +25 -0
- package/LICENCE +661 -0
- package/README.md +709 -0
- package/dist/constants.d.ts +42 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +45 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/websocket-client.d.ts +261 -0
- package/dist/core/websocket-client.d.ts.map +1 -0
- package/dist/core/websocket-client.js +875 -0
- package/dist/core/websocket-client.js.map +1 -0
- package/dist/formatters/response-formatter.d.ts +354 -0
- package/dist/formatters/response-formatter.d.ts.map +1 -0
- package/dist/formatters/response-formatter.js +575 -0
- package/dist/formatters/response-formatter.js.map +1 -0
- package/dist/handlers/message-handler-registry.d.ts +155 -0
- package/dist/handlers/message-handler-registry.d.ts.map +1 -0
- package/dist/handlers/message-handler-registry.js +216 -0
- package/dist/handlers/message-handler-registry.js.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts +112 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.js +40 -0
- package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agents-list-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/agents-list-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agents-list-handler.js +25 -0
- package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts +71 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.js +30 -0
- package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts +18 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-message-handler.js +60 -0
- package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-required-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-required-handler.js +23 -0
- package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts +18 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/auth-success-handler.js +51 -0
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -0
- package/dist/handlers/message-handlers/base-handler.d.ts +55 -0
- package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/base-handler.js +83 -0
- package/dist/handlers/message-handlers/base-handler.js.map +1 -0
- package/dist/handlers/message-handlers/challenge-handler.d.ts +73 -0
- package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/challenge-handler.js +47 -0
- package/dist/handlers/message-handlers/challenge-handler.js.map +1 -0
- package/dist/handlers/message-handlers/error-message-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/error-message-handler.js +29 -0
- package/dist/handlers/message-handlers/error-message-handler.js.map +1 -0
- package/dist/handlers/message-handlers/index.d.ts +28 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -0
- package/dist/handlers/message-handlers/index.js +100 -0
- package/dist/handlers/message-handlers/index.js.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +122 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.js +30 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts +104 -0
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/ping-pong-handler.js +36 -0
- package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -0
- package/dist/handlers/message-handlers/regular-message-handler.d.ts +56 -0
- package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/regular-message-handler.js +59 -0
- package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +81 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.js +48 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/task-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.js +44 -0
- package/dist/handlers/message-handlers/task-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/types.d.ts +51 -0
- package/dist/handlers/message-handlers/types.d.ts.map +1 -0
- package/dist/handlers/message-handlers/types.js +7 -0
- package/dist/handlers/message-handlers/types.js.map +1 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +81 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js +48 -0
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -0
- package/dist/handlers/webhook-handler.d.ts +202 -0
- package/dist/handlers/webhook-handler.d.ts.map +1 -0
- package/dist/handlers/webhook-handler.js +511 -0
- package/dist/handlers/webhook-handler.js.map +1 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +217 -0
- package/dist/index.js.map +1 -0
- package/dist/managers/agent-registry.d.ts +173 -0
- package/dist/managers/agent-registry.d.ts.map +1 -0
- package/dist/managers/agent-registry.js +310 -0
- package/dist/managers/agent-registry.js.map +1 -0
- package/dist/managers/connection-manager.d.ts +134 -0
- package/dist/managers/connection-manager.d.ts.map +1 -0
- package/dist/managers/connection-manager.js +176 -0
- package/dist/managers/connection-manager.js.map +1 -0
- package/dist/managers/index.d.ts +9 -0
- package/dist/managers/index.d.ts.map +1 -0
- package/dist/managers/index.js +16 -0
- package/dist/managers/index.js.map +1 -0
- package/dist/managers/message-router.d.ts +112 -0
- package/dist/managers/message-router.d.ts.map +1 -0
- package/dist/managers/message-router.js +260 -0
- package/dist/managers/message-router.js.map +1 -0
- package/dist/managers/room-manager.d.ts +165 -0
- package/dist/managers/room-manager.d.ts.map +1 -0
- package/dist/managers/room-manager.js +227 -0
- package/dist/managers/room-manager.js.map +1 -0
- package/dist/teneo-sdk.d.ts +703 -0
- package/dist/teneo-sdk.d.ts.map +1 -0
- package/dist/teneo-sdk.js +907 -0
- package/dist/teneo-sdk.js.map +1 -0
- package/dist/types/config.d.ts +1047 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +720 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/error-codes.d.ts +29 -0
- package/dist/types/error-codes.d.ts.map +1 -0
- package/dist/types/error-codes.js +41 -0
- package/dist/types/error-codes.js.map +1 -0
- package/dist/types/events.d.ts +616 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +261 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/health.d.ts +40 -0
- package/dist/types/health.d.ts.map +1 -0
- package/dist/types/health.js +6 -0
- package/dist/types/health.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +123 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/messages.d.ts +3734 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +482 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/validation.d.ts +81 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +115 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/utils/bounded-queue.d.ts +127 -0
- package/dist/utils/bounded-queue.d.ts.map +1 -0
- package/dist/utils/bounded-queue.js +181 -0
- package/dist/utils/bounded-queue.js.map +1 -0
- package/dist/utils/circuit-breaker.d.ts +141 -0
- package/dist/utils/circuit-breaker.d.ts.map +1 -0
- package/dist/utils/circuit-breaker.js +215 -0
- package/dist/utils/circuit-breaker.js.map +1 -0
- package/dist/utils/deduplication-cache.d.ts +110 -0
- package/dist/utils/deduplication-cache.d.ts.map +1 -0
- package/dist/utils/deduplication-cache.js +177 -0
- package/dist/utils/deduplication-cache.js.map +1 -0
- package/dist/utils/event-waiter.d.ts +101 -0
- package/dist/utils/event-waiter.d.ts.map +1 -0
- package/dist/utils/event-waiter.js +118 -0
- package/dist/utils/event-waiter.js.map +1 -0
- package/dist/utils/index.d.ts +51 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +72 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +91 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +122 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +190 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/retry-policy.d.ts +191 -0
- package/dist/utils/retry-policy.d.ts.map +1 -0
- package/dist/utils/retry-policy.js +225 -0
- package/dist/utils/retry-policy.js.map +1 -0
- package/dist/utils/secure-private-key.d.ts +113 -0
- package/dist/utils/secure-private-key.d.ts.map +1 -0
- package/dist/utils/secure-private-key.js +188 -0
- package/dist/utils/secure-private-key.js.map +1 -0
- package/dist/utils/signature-verifier.d.ts +143 -0
- package/dist/utils/signature-verifier.d.ts.map +1 -0
- package/dist/utils/signature-verifier.js +238 -0
- package/dist/utils/signature-verifier.js.map +1 -0
- package/dist/utils/ssrf-validator.d.ts +36 -0
- package/dist/utils/ssrf-validator.d.ts.map +1 -0
- package/dist/utils/ssrf-validator.js +195 -0
- package/dist/utils/ssrf-validator.js.map +1 -0
- package/examples/.env.example +17 -0
- package/examples/basic-usage.ts +211 -0
- package/examples/production-dashboard/.env.example +153 -0
- package/examples/production-dashboard/package.json +39 -0
- package/examples/production-dashboard/public/dashboard.html +642 -0
- package/examples/production-dashboard/server.ts +753 -0
- package/examples/webhook-integration.ts +239 -0
- package/examples/x-influencer-battle-redesign.html +1065 -0
- package/examples/x-influencer-battle-server.ts +217 -0
- package/examples/x-influencer-battle.html +787 -0
- package/package.json +65 -0
- package/src/constants.ts +43 -0
- package/src/core/websocket-client.test.ts +512 -0
- package/src/core/websocket-client.ts +1056 -0
- package/src/formatters/response-formatter.test.ts +571 -0
- package/src/formatters/response-formatter.ts +677 -0
- package/src/handlers/message-handler-registry.ts +239 -0
- package/src/handlers/message-handlers/agent-selected-handler.ts +40 -0
- package/src/handlers/message-handlers/agents-list-handler.ts +26 -0
- package/src/handlers/message-handlers/auth-error-handler.ts +31 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +66 -0
- package/src/handlers/message-handlers/auth-required-handler.ts +23 -0
- package/src/handlers/message-handlers/auth-success-handler.ts +57 -0
- package/src/handlers/message-handlers/base-handler.ts +101 -0
- package/src/handlers/message-handlers/challenge-handler.ts +57 -0
- package/src/handlers/message-handlers/error-message-handler.ts +27 -0
- package/src/handlers/message-handlers/index.ts +77 -0
- package/src/handlers/message-handlers/list-rooms-response-handler.ts +28 -0
- package/src/handlers/message-handlers/ping-pong-handler.ts +30 -0
- package/src/handlers/message-handlers/regular-message-handler.ts +65 -0
- package/src/handlers/message-handlers/subscribe-response-handler.ts +47 -0
- package/src/handlers/message-handlers/task-response-handler.ts +45 -0
- package/src/handlers/message-handlers/types.ts +77 -0
- package/src/handlers/message-handlers/unsubscribe-response-handler.ts +47 -0
- package/src/handlers/webhook-handler.test.ts +789 -0
- package/src/handlers/webhook-handler.ts +576 -0
- package/src/index.ts +269 -0
- package/src/managers/agent-registry.test.ts +466 -0
- package/src/managers/agent-registry.ts +347 -0
- package/src/managers/connection-manager.ts +195 -0
- package/src/managers/index.ts +9 -0
- package/src/managers/message-router.ts +349 -0
- package/src/managers/room-manager.ts +248 -0
- package/src/teneo-sdk.ts +1022 -0
- package/src/types/config.test.ts +325 -0
- package/src/types/config.ts +799 -0
- package/src/types/error-codes.ts +44 -0
- package/src/types/events.test.ts +302 -0
- package/src/types/events.ts +382 -0
- package/src/types/health.ts +46 -0
- package/src/types/index.ts +199 -0
- package/src/types/messages.test.ts +660 -0
- package/src/types/messages.ts +570 -0
- package/src/types/validation.ts +123 -0
- package/src/utils/bounded-queue.test.ts +356 -0
- package/src/utils/bounded-queue.ts +205 -0
- package/src/utils/circuit-breaker.test.ts +394 -0
- package/src/utils/circuit-breaker.ts +262 -0
- package/src/utils/deduplication-cache.test.ts +380 -0
- package/src/utils/deduplication-cache.ts +198 -0
- package/src/utils/event-waiter.test.ts +381 -0
- package/src/utils/event-waiter.ts +172 -0
- package/src/utils/index.ts +74 -0
- package/src/utils/logger.ts +87 -0
- package/src/utils/rate-limiter.test.ts +341 -0
- package/src/utils/rate-limiter.ts +211 -0
- package/src/utils/retry-policy.test.ts +558 -0
- package/src/utils/retry-policy.ts +272 -0
- package/src/utils/secure-private-key.test.ts +356 -0
- package/src/utils/secure-private-key.ts +205 -0
- package/src/utils/signature-verifier.test.ts +464 -0
- package/src/utils/signature-verifier.ts +298 -0
- package/src/utils/ssrf-validator.test.ts +372 -0
- package/src/utils/ssrf-validator.ts +224 -0
- package/tests/integration/real-server.test.ts +740 -0
- package/tests/integration/websocket.test.ts +381 -0
- package/tests/integration-setup.ts +16 -0
- package/tests/setup.ts +34 -0
- package/tsconfig.json +32 -0
- package/vitest.config.ts +42 -0
- package/vitest.integration.config.ts +23 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Webhook handler for Teneo Protocol SDK
|
|
3
|
+
* Manages webhook delivery with retries and error handling using Zod validation
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from "eventemitter3";
|
|
6
|
+
import { WebhookConfig, WebhookEventType, BaseMessage, Logger, SDKConfig } from "../types";
|
|
7
|
+
import { SDKEvents } from "../types/events";
|
|
8
|
+
export declare class WebhookHandler extends EventEmitter<SDKEvents> {
|
|
9
|
+
private readonly config;
|
|
10
|
+
private webhookConfig?;
|
|
11
|
+
private readonly logger;
|
|
12
|
+
private queue;
|
|
13
|
+
private circuitBreaker;
|
|
14
|
+
private retryPolicy;
|
|
15
|
+
private isProcessing;
|
|
16
|
+
private processTimer?;
|
|
17
|
+
private isDestroyed;
|
|
18
|
+
constructor(config: SDKConfig, logger: Logger);
|
|
19
|
+
/**
|
|
20
|
+
* Configures or updates webhook settings with runtime validation.
|
|
21
|
+
* Validates the webhook URL for security (HTTPS requirement except localhost)
|
|
22
|
+
* and sets up retry logic, timeout, and event filtering.
|
|
23
|
+
*
|
|
24
|
+
* @param config - Webhook configuration object
|
|
25
|
+
* @param config.url - Webhook endpoint URL (must be HTTPS unless localhost)
|
|
26
|
+
* @param config.headers - Optional HTTP headers to include with requests
|
|
27
|
+
* @param config.retries - Maximum number of retry attempts for failed deliveries (default: 3)
|
|
28
|
+
* @param config.timeout - Request timeout in milliseconds (default: 30000)
|
|
29
|
+
* @param config.events - Array of event types to send webhooks for (default: all events)
|
|
30
|
+
* @throws {WebhookError} If URL is invalid, insecure, or points to private IP ranges
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* webhookHandler.configure({
|
|
35
|
+
* url: 'https://api.example.com/webhooks',
|
|
36
|
+
* headers: { 'Authorization': 'Bearer token' },
|
|
37
|
+
* retries: 5,
|
|
38
|
+
* timeout: 60000,
|
|
39
|
+
* events: ['message', 'agent_selected', 'error']
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
configure(config: WebhookConfig): void;
|
|
44
|
+
/**
|
|
45
|
+
* Sends a webhook for a specific event type with payload validation.
|
|
46
|
+
* Validates event type and payload with Zod schemas before queueing.
|
|
47
|
+
* Webhooks are queued and delivered asynchronously with retry logic.
|
|
48
|
+
* Emits 'webhook:sent', 'webhook:success', or 'webhook:error' events.
|
|
49
|
+
*
|
|
50
|
+
* @param eventType - Type of event to send ('message', 'task_response', 'agent_selected', or 'error')
|
|
51
|
+
* @param data - Event-specific data payload (validated with Zod)
|
|
52
|
+
* @param metadata - Optional metadata to include with the event
|
|
53
|
+
* @returns Promise that resolves when webhook is queued (not when delivered)
|
|
54
|
+
* @throws {ValidationError} If eventType or data fail Zod validation
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* await webhookHandler.sendWebhook('agent_selected', {
|
|
59
|
+
* agent_id: 'weather-agent',
|
|
60
|
+
* agent_name: 'Weather Agent',
|
|
61
|
+
* capabilities: ['weather-forecast']
|
|
62
|
+
* }, {
|
|
63
|
+
* agentId: 'weather-agent',
|
|
64
|
+
* taskId: 'task-123'
|
|
65
|
+
* });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
sendWebhook(eventType: WebhookEventType, data: any, metadata?: any): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Sends a webhook specifically for message events with automatic event type detection.
|
|
71
|
+
* Filters out system messages (ping, pong, auth) and maps message types to webhook events.
|
|
72
|
+
* Validates message with Zod schema before sending.
|
|
73
|
+
*
|
|
74
|
+
* @param message - The message to send as a webhook
|
|
75
|
+
* @returns Promise that resolves when webhook is queued
|
|
76
|
+
* @throws {ValidationError} If message fails Zod validation
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```typescript
|
|
80
|
+
* const userMessage = createUserMessage('Hello', 'general', walletAddress);
|
|
81
|
+
* await webhookHandler.sendMessageWebhook(userMessage);
|
|
82
|
+
* // Webhook will be sent with event type 'message'
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
sendMessageWebhook(message: BaseMessage): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Process webhook queue
|
|
88
|
+
*/
|
|
89
|
+
private processQueue;
|
|
90
|
+
/**
|
|
91
|
+
* Deliver a webhook
|
|
92
|
+
*/
|
|
93
|
+
private deliverWebhook;
|
|
94
|
+
/**
|
|
95
|
+
* Validate webhook URL for SSRF vulnerabilities
|
|
96
|
+
* Uses comprehensive SSRF validator to block:
|
|
97
|
+
* - Private IP ranges (RFC1918)
|
|
98
|
+
* - Cloud metadata endpoints (AWS, GCP, Azure)
|
|
99
|
+
* - Kubernetes service discovery
|
|
100
|
+
* - Dangerous internal ports
|
|
101
|
+
* - Localhost (unless allowInsecureWebhooks is enabled)
|
|
102
|
+
*/
|
|
103
|
+
private validateWebhookUrl;
|
|
104
|
+
/**
|
|
105
|
+
* Gets the current status of the webhook delivery queue.
|
|
106
|
+
* Useful for monitoring webhook health and detecting delivery issues.
|
|
107
|
+
*
|
|
108
|
+
* @returns Object containing queue statistics
|
|
109
|
+
* @returns {number} returns.pending - Total number of webhooks in queue (including failed)
|
|
110
|
+
* @returns {boolean} returns.processing - Whether queue is currently being processed
|
|
111
|
+
* @returns {number} returns.failed - Number of webhooks that have failed and are awaiting retry
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const status = webhookHandler.getQueueStatus();
|
|
116
|
+
* console.log(`Queue: ${status.pending} pending, ${status.failed} failed`);
|
|
117
|
+
* if (status.failed > 10) {
|
|
118
|
+
* console.warn('High number of failed webhooks detected');
|
|
119
|
+
* }
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
getQueueStatus(): {
|
|
123
|
+
pending: number;
|
|
124
|
+
processing: boolean;
|
|
125
|
+
failed: number;
|
|
126
|
+
circuitState: string;
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Clears all pending and failed webhooks from the delivery queue.
|
|
130
|
+
* Warning: This permanently discards all queued webhooks.
|
|
131
|
+
* Use this to recover from queue issues or when webhooks are no longer relevant.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* webhookHandler.clearQueue();
|
|
136
|
+
* console.log('All pending webhooks cleared');
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
clearQueue(): void;
|
|
140
|
+
/**
|
|
141
|
+
* Retries all failed webhooks in the queue immediately.
|
|
142
|
+
* Resets attempt counters and error states for failed webhooks.
|
|
143
|
+
* Useful for recovering from temporary network or endpoint issues.
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* const status = webhookHandler.getQueueStatus();
|
|
148
|
+
* if (status.failed > 0) {
|
|
149
|
+
* webhookHandler.retryFailed();
|
|
150
|
+
* console.log(`Retrying ${status.failed} failed webhooks`);
|
|
151
|
+
* }
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
retryFailed(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Destroys the webhook handler and cleans up resources.
|
|
157
|
+
* Stops queue processing, clears all timers, removes event listeners,
|
|
158
|
+
* and discards all pending webhooks. After destruction, the handler cannot be reused.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* webhookHandler.destroy();
|
|
163
|
+
* console.log('Webhook handler destroyed');
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
destroy(): void;
|
|
167
|
+
/**
|
|
168
|
+
* Quick check for whether a webhook URL has been configured.
|
|
169
|
+
* Returns true if configure() has been called with a valid URL.
|
|
170
|
+
*
|
|
171
|
+
* @returns True if webhook is configured, false otherwise
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* if (webhookHandler.isConfigured) {
|
|
176
|
+
* console.log('Webhooks are enabled');
|
|
177
|
+
* } else {
|
|
178
|
+
* console.log('Webhooks not configured');
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
get isConfigured(): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Gets the current webhook configuration including URL, headers, and settings.
|
|
185
|
+
* Returns a defensive copy to prevent external modification of internal state.
|
|
186
|
+
* Returns undefined if webhook has not been configured.
|
|
187
|
+
*
|
|
188
|
+
* @returns Copy of current webhook configuration, or undefined if not configured
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```typescript
|
|
192
|
+
* const config = webhookHandler.getConfig();
|
|
193
|
+
* if (config) {
|
|
194
|
+
* console.log(`Webhook URL: ${config.url}`);
|
|
195
|
+
* console.log(`Max retries: ${config.retries}`);
|
|
196
|
+
* console.log(`Timeout: ${config.timeout}ms`);
|
|
197
|
+
* }
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
getConfig(): WebhookConfig | undefined;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=webhook-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-handler.d.ts","sourceRoot":"","sources":["../../src/handlers/webhook-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAM7C,OAAO,EACL,aAAa,EAEb,gBAAgB,EAIhB,WAAW,EAEX,MAAM,EAEN,SAAS,EAEV,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,SAAS,EAAiC,MAAM,iBAAiB,CAAC;AAW3E,qBAAa,cAAe,SAAQ,YAAY,CAAC,SAAS,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM;IAqD7C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAmB7C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,WAAW,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C/F;;;;;;;;;;;;;;;OAeG;IACU,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDpE;;OAEG;YACW,YAAY;IA+E1B;;OAEG;YACW,cAAc;IAoD5B;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAU1B;;;;;;;;;;;;;;;;;OAiBG;IACI,cAAc,IAAI;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB;IAUD;;;;;;;;;;OAUG;IACI,UAAU,IAAI,IAAI;IAKzB;;;;;;;;;;;;;OAaG;IACI,WAAW,IAAI,IAAI;IAU1B;;;;;;;;;;OAUG;IACI,OAAO,IAAI,IAAI;IAWtB;;;;;;;;;;;;;;OAcG;IACH,IAAW,YAAY,IAAI,OAAO,CAEjC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,SAAS,IAAI,aAAa,GAAG,SAAS;CAG9C"}
|