@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.
Files changed (281) hide show
  1. package/.dockerignore +14 -0
  2. package/.env.test.example +14 -0
  3. package/.eslintrc.json +26 -0
  4. package/.github/workflows/claude-code-review.yml +78 -0
  5. package/.github/workflows/claude-reviewer.yml +64 -0
  6. package/.github/workflows/publish-npm.yml +38 -0
  7. package/.github/workflows/push-to-main.yml +23 -0
  8. package/.node-version +1 -0
  9. package/.prettierrc +11 -0
  10. package/Dockerfile +25 -0
  11. package/LICENCE +661 -0
  12. package/README.md +709 -0
  13. package/dist/constants.d.ts +42 -0
  14. package/dist/constants.d.ts.map +1 -0
  15. package/dist/constants.js +45 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/core/websocket-client.d.ts +261 -0
  18. package/dist/core/websocket-client.d.ts.map +1 -0
  19. package/dist/core/websocket-client.js +875 -0
  20. package/dist/core/websocket-client.js.map +1 -0
  21. package/dist/formatters/response-formatter.d.ts +354 -0
  22. package/dist/formatters/response-formatter.d.ts.map +1 -0
  23. package/dist/formatters/response-formatter.js +575 -0
  24. package/dist/formatters/response-formatter.js.map +1 -0
  25. package/dist/handlers/message-handler-registry.d.ts +155 -0
  26. package/dist/handlers/message-handler-registry.d.ts.map +1 -0
  27. package/dist/handlers/message-handler-registry.js +216 -0
  28. package/dist/handlers/message-handler-registry.js.map +1 -0
  29. package/dist/handlers/message-handlers/agent-selected-handler.d.ts +112 -0
  30. package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -0
  31. package/dist/handlers/message-handlers/agent-selected-handler.js +40 -0
  32. package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -0
  33. package/dist/handlers/message-handlers/agents-list-handler.d.ts +14 -0
  34. package/dist/handlers/message-handlers/agents-list-handler.d.ts.map +1 -0
  35. package/dist/handlers/message-handlers/agents-list-handler.js +25 -0
  36. package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -0
  37. package/dist/handlers/message-handlers/auth-error-handler.d.ts +71 -0
  38. package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -0
  39. package/dist/handlers/message-handlers/auth-error-handler.js +30 -0
  40. package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -0
  41. package/dist/handlers/message-handlers/auth-message-handler.d.ts +18 -0
  42. package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -0
  43. package/dist/handlers/message-handlers/auth-message-handler.js +60 -0
  44. package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -0
  45. package/dist/handlers/message-handlers/auth-required-handler.d.ts +76 -0
  46. package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -0
  47. package/dist/handlers/message-handlers/auth-required-handler.js +23 -0
  48. package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -0
  49. package/dist/handlers/message-handlers/auth-success-handler.d.ts +18 -0
  50. package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -0
  51. package/dist/handlers/message-handlers/auth-success-handler.js +51 -0
  52. package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -0
  53. package/dist/handlers/message-handlers/base-handler.d.ts +55 -0
  54. package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -0
  55. package/dist/handlers/message-handlers/base-handler.js +83 -0
  56. package/dist/handlers/message-handlers/base-handler.js.map +1 -0
  57. package/dist/handlers/message-handlers/challenge-handler.d.ts +73 -0
  58. package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -0
  59. package/dist/handlers/message-handlers/challenge-handler.js +47 -0
  60. package/dist/handlers/message-handlers/challenge-handler.js.map +1 -0
  61. package/dist/handlers/message-handlers/error-message-handler.d.ts +76 -0
  62. package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -0
  63. package/dist/handlers/message-handlers/error-message-handler.js +29 -0
  64. package/dist/handlers/message-handlers/error-message-handler.js.map +1 -0
  65. package/dist/handlers/message-handlers/index.d.ts +28 -0
  66. package/dist/handlers/message-handlers/index.d.ts.map +1 -0
  67. package/dist/handlers/message-handlers/index.js +100 -0
  68. package/dist/handlers/message-handlers/index.js.map +1 -0
  69. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +122 -0
  70. package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -0
  71. package/dist/handlers/message-handlers/list-rooms-response-handler.js +30 -0
  72. package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -0
  73. package/dist/handlers/message-handlers/ping-pong-handler.d.ts +104 -0
  74. package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -0
  75. package/dist/handlers/message-handlers/ping-pong-handler.js +36 -0
  76. package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -0
  77. package/dist/handlers/message-handlers/regular-message-handler.d.ts +56 -0
  78. package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -0
  79. package/dist/handlers/message-handlers/regular-message-handler.js +59 -0
  80. package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -0
  81. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +81 -0
  82. package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -0
  83. package/dist/handlers/message-handlers/subscribe-response-handler.js +48 -0
  84. package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -0
  85. package/dist/handlers/message-handlers/task-response-handler.d.ts +14 -0
  86. package/dist/handlers/message-handlers/task-response-handler.d.ts.map +1 -0
  87. package/dist/handlers/message-handlers/task-response-handler.js +44 -0
  88. package/dist/handlers/message-handlers/task-response-handler.js.map +1 -0
  89. package/dist/handlers/message-handlers/types.d.ts +51 -0
  90. package/dist/handlers/message-handlers/types.d.ts.map +1 -0
  91. package/dist/handlers/message-handlers/types.js +7 -0
  92. package/dist/handlers/message-handlers/types.js.map +1 -0
  93. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +81 -0
  94. package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -0
  95. package/dist/handlers/message-handlers/unsubscribe-response-handler.js +48 -0
  96. package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -0
  97. package/dist/handlers/webhook-handler.d.ts +202 -0
  98. package/dist/handlers/webhook-handler.d.ts.map +1 -0
  99. package/dist/handlers/webhook-handler.js +511 -0
  100. package/dist/handlers/webhook-handler.js.map +1 -0
  101. package/dist/index.d.ts +71 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +217 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/managers/agent-registry.d.ts +173 -0
  106. package/dist/managers/agent-registry.d.ts.map +1 -0
  107. package/dist/managers/agent-registry.js +310 -0
  108. package/dist/managers/agent-registry.js.map +1 -0
  109. package/dist/managers/connection-manager.d.ts +134 -0
  110. package/dist/managers/connection-manager.d.ts.map +1 -0
  111. package/dist/managers/connection-manager.js +176 -0
  112. package/dist/managers/connection-manager.js.map +1 -0
  113. package/dist/managers/index.d.ts +9 -0
  114. package/dist/managers/index.d.ts.map +1 -0
  115. package/dist/managers/index.js +16 -0
  116. package/dist/managers/index.js.map +1 -0
  117. package/dist/managers/message-router.d.ts +112 -0
  118. package/dist/managers/message-router.d.ts.map +1 -0
  119. package/dist/managers/message-router.js +260 -0
  120. package/dist/managers/message-router.js.map +1 -0
  121. package/dist/managers/room-manager.d.ts +165 -0
  122. package/dist/managers/room-manager.d.ts.map +1 -0
  123. package/dist/managers/room-manager.js +227 -0
  124. package/dist/managers/room-manager.js.map +1 -0
  125. package/dist/teneo-sdk.d.ts +703 -0
  126. package/dist/teneo-sdk.d.ts.map +1 -0
  127. package/dist/teneo-sdk.js +907 -0
  128. package/dist/teneo-sdk.js.map +1 -0
  129. package/dist/types/config.d.ts +1047 -0
  130. package/dist/types/config.d.ts.map +1 -0
  131. package/dist/types/config.js +720 -0
  132. package/dist/types/config.js.map +1 -0
  133. package/dist/types/error-codes.d.ts +29 -0
  134. package/dist/types/error-codes.d.ts.map +1 -0
  135. package/dist/types/error-codes.js +41 -0
  136. package/dist/types/error-codes.js.map +1 -0
  137. package/dist/types/events.d.ts +616 -0
  138. package/dist/types/events.d.ts.map +1 -0
  139. package/dist/types/events.js +261 -0
  140. package/dist/types/events.js.map +1 -0
  141. package/dist/types/health.d.ts +40 -0
  142. package/dist/types/health.d.ts.map +1 -0
  143. package/dist/types/health.js +6 -0
  144. package/dist/types/health.js.map +1 -0
  145. package/dist/types/index.d.ts +10 -0
  146. package/dist/types/index.d.ts.map +1 -0
  147. package/dist/types/index.js +123 -0
  148. package/dist/types/index.js.map +1 -0
  149. package/dist/types/messages.d.ts +3734 -0
  150. package/dist/types/messages.d.ts.map +1 -0
  151. package/dist/types/messages.js +482 -0
  152. package/dist/types/messages.js.map +1 -0
  153. package/dist/types/validation.d.ts +81 -0
  154. package/dist/types/validation.d.ts.map +1 -0
  155. package/dist/types/validation.js +115 -0
  156. package/dist/types/validation.js.map +1 -0
  157. package/dist/utils/bounded-queue.d.ts +127 -0
  158. package/dist/utils/bounded-queue.d.ts.map +1 -0
  159. package/dist/utils/bounded-queue.js +181 -0
  160. package/dist/utils/bounded-queue.js.map +1 -0
  161. package/dist/utils/circuit-breaker.d.ts +141 -0
  162. package/dist/utils/circuit-breaker.d.ts.map +1 -0
  163. package/dist/utils/circuit-breaker.js +215 -0
  164. package/dist/utils/circuit-breaker.js.map +1 -0
  165. package/dist/utils/deduplication-cache.d.ts +110 -0
  166. package/dist/utils/deduplication-cache.d.ts.map +1 -0
  167. package/dist/utils/deduplication-cache.js +177 -0
  168. package/dist/utils/deduplication-cache.js.map +1 -0
  169. package/dist/utils/event-waiter.d.ts +101 -0
  170. package/dist/utils/event-waiter.d.ts.map +1 -0
  171. package/dist/utils/event-waiter.js +118 -0
  172. package/dist/utils/event-waiter.js.map +1 -0
  173. package/dist/utils/index.d.ts +51 -0
  174. package/dist/utils/index.d.ts.map +1 -0
  175. package/dist/utils/index.js +72 -0
  176. package/dist/utils/index.js.map +1 -0
  177. package/dist/utils/logger.d.ts +22 -0
  178. package/dist/utils/logger.d.ts.map +1 -0
  179. package/dist/utils/logger.js +91 -0
  180. package/dist/utils/logger.js.map +1 -0
  181. package/dist/utils/rate-limiter.d.ts +122 -0
  182. package/dist/utils/rate-limiter.d.ts.map +1 -0
  183. package/dist/utils/rate-limiter.js +190 -0
  184. package/dist/utils/rate-limiter.js.map +1 -0
  185. package/dist/utils/retry-policy.d.ts +191 -0
  186. package/dist/utils/retry-policy.d.ts.map +1 -0
  187. package/dist/utils/retry-policy.js +225 -0
  188. package/dist/utils/retry-policy.js.map +1 -0
  189. package/dist/utils/secure-private-key.d.ts +113 -0
  190. package/dist/utils/secure-private-key.d.ts.map +1 -0
  191. package/dist/utils/secure-private-key.js +188 -0
  192. package/dist/utils/secure-private-key.js.map +1 -0
  193. package/dist/utils/signature-verifier.d.ts +143 -0
  194. package/dist/utils/signature-verifier.d.ts.map +1 -0
  195. package/dist/utils/signature-verifier.js +238 -0
  196. package/dist/utils/signature-verifier.js.map +1 -0
  197. package/dist/utils/ssrf-validator.d.ts +36 -0
  198. package/dist/utils/ssrf-validator.d.ts.map +1 -0
  199. package/dist/utils/ssrf-validator.js +195 -0
  200. package/dist/utils/ssrf-validator.js.map +1 -0
  201. package/examples/.env.example +17 -0
  202. package/examples/basic-usage.ts +211 -0
  203. package/examples/production-dashboard/.env.example +153 -0
  204. package/examples/production-dashboard/package.json +39 -0
  205. package/examples/production-dashboard/public/dashboard.html +642 -0
  206. package/examples/production-dashboard/server.ts +753 -0
  207. package/examples/webhook-integration.ts +239 -0
  208. package/examples/x-influencer-battle-redesign.html +1065 -0
  209. package/examples/x-influencer-battle-server.ts +217 -0
  210. package/examples/x-influencer-battle.html +787 -0
  211. package/package.json +65 -0
  212. package/src/constants.ts +43 -0
  213. package/src/core/websocket-client.test.ts +512 -0
  214. package/src/core/websocket-client.ts +1056 -0
  215. package/src/formatters/response-formatter.test.ts +571 -0
  216. package/src/formatters/response-formatter.ts +677 -0
  217. package/src/handlers/message-handler-registry.ts +239 -0
  218. package/src/handlers/message-handlers/agent-selected-handler.ts +40 -0
  219. package/src/handlers/message-handlers/agents-list-handler.ts +26 -0
  220. package/src/handlers/message-handlers/auth-error-handler.ts +31 -0
  221. package/src/handlers/message-handlers/auth-message-handler.ts +66 -0
  222. package/src/handlers/message-handlers/auth-required-handler.ts +23 -0
  223. package/src/handlers/message-handlers/auth-success-handler.ts +57 -0
  224. package/src/handlers/message-handlers/base-handler.ts +101 -0
  225. package/src/handlers/message-handlers/challenge-handler.ts +57 -0
  226. package/src/handlers/message-handlers/error-message-handler.ts +27 -0
  227. package/src/handlers/message-handlers/index.ts +77 -0
  228. package/src/handlers/message-handlers/list-rooms-response-handler.ts +28 -0
  229. package/src/handlers/message-handlers/ping-pong-handler.ts +30 -0
  230. package/src/handlers/message-handlers/regular-message-handler.ts +65 -0
  231. package/src/handlers/message-handlers/subscribe-response-handler.ts +47 -0
  232. package/src/handlers/message-handlers/task-response-handler.ts +45 -0
  233. package/src/handlers/message-handlers/types.ts +77 -0
  234. package/src/handlers/message-handlers/unsubscribe-response-handler.ts +47 -0
  235. package/src/handlers/webhook-handler.test.ts +789 -0
  236. package/src/handlers/webhook-handler.ts +576 -0
  237. package/src/index.ts +269 -0
  238. package/src/managers/agent-registry.test.ts +466 -0
  239. package/src/managers/agent-registry.ts +347 -0
  240. package/src/managers/connection-manager.ts +195 -0
  241. package/src/managers/index.ts +9 -0
  242. package/src/managers/message-router.ts +349 -0
  243. package/src/managers/room-manager.ts +248 -0
  244. package/src/teneo-sdk.ts +1022 -0
  245. package/src/types/config.test.ts +325 -0
  246. package/src/types/config.ts +799 -0
  247. package/src/types/error-codes.ts +44 -0
  248. package/src/types/events.test.ts +302 -0
  249. package/src/types/events.ts +382 -0
  250. package/src/types/health.ts +46 -0
  251. package/src/types/index.ts +199 -0
  252. package/src/types/messages.test.ts +660 -0
  253. package/src/types/messages.ts +570 -0
  254. package/src/types/validation.ts +123 -0
  255. package/src/utils/bounded-queue.test.ts +356 -0
  256. package/src/utils/bounded-queue.ts +205 -0
  257. package/src/utils/circuit-breaker.test.ts +394 -0
  258. package/src/utils/circuit-breaker.ts +262 -0
  259. package/src/utils/deduplication-cache.test.ts +380 -0
  260. package/src/utils/deduplication-cache.ts +198 -0
  261. package/src/utils/event-waiter.test.ts +381 -0
  262. package/src/utils/event-waiter.ts +172 -0
  263. package/src/utils/index.ts +74 -0
  264. package/src/utils/logger.ts +87 -0
  265. package/src/utils/rate-limiter.test.ts +341 -0
  266. package/src/utils/rate-limiter.ts +211 -0
  267. package/src/utils/retry-policy.test.ts +558 -0
  268. package/src/utils/retry-policy.ts +272 -0
  269. package/src/utils/secure-private-key.test.ts +356 -0
  270. package/src/utils/secure-private-key.ts +205 -0
  271. package/src/utils/signature-verifier.test.ts +464 -0
  272. package/src/utils/signature-verifier.ts +298 -0
  273. package/src/utils/ssrf-validator.test.ts +372 -0
  274. package/src/utils/ssrf-validator.ts +224 -0
  275. package/tests/integration/real-server.test.ts +740 -0
  276. package/tests/integration/websocket.test.ts +381 -0
  277. package/tests/integration-setup.ts +16 -0
  278. package/tests/setup.ts +34 -0
  279. package/tsconfig.json +32 -0
  280. package/vitest.config.ts +42 -0
  281. 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"}