@waiaas/daemon 2.9.1-rc → 2.10.0-rc

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 (163) hide show
  1. package/dist/api/middleware/master-auth.d.ts +3 -0
  2. package/dist/api/middleware/master-auth.d.ts.map +1 -1
  3. package/dist/api/middleware/master-auth.js +14 -0
  4. package/dist/api/middleware/master-auth.js.map +1 -1
  5. package/dist/api/routes/admin.d.ts +4 -0
  6. package/dist/api/routes/admin.d.ts.map +1 -1
  7. package/dist/api/routes/admin.js +186 -1
  8. package/dist/api/routes/admin.js.map +1 -1
  9. package/dist/api/routes/audit-logs.d.ts +15 -0
  10. package/dist/api/routes/audit-logs.d.ts.map +1 -0
  11. package/dist/api/routes/audit-logs.js +119 -0
  12. package/dist/api/routes/audit-logs.js.map +1 -0
  13. package/dist/api/routes/index.d.ts +2 -1
  14. package/dist/api/routes/index.d.ts.map +1 -1
  15. package/dist/api/routes/index.js +2 -1
  16. package/dist/api/routes/index.js.map +1 -1
  17. package/dist/api/routes/openapi-schemas.d.ts +324 -6
  18. package/dist/api/routes/openapi-schemas.d.ts.map +1 -1
  19. package/dist/api/routes/openapi-schemas.js +76 -0
  20. package/dist/api/routes/openapi-schemas.js.map +1 -1
  21. package/dist/api/routes/sessions.d.ts +2 -0
  22. package/dist/api/routes/sessions.d.ts.map +1 -1
  23. package/dist/api/routes/sessions.js +21 -0
  24. package/dist/api/routes/sessions.js.map +1 -1
  25. package/dist/api/routes/transactions.d.ts +2 -1
  26. package/dist/api/routes/transactions.d.ts.map +1 -1
  27. package/dist/api/routes/transactions.js +72 -1
  28. package/dist/api/routes/transactions.js.map +1 -1
  29. package/dist/api/routes/wallets.d.ts.map +1 -1
  30. package/dist/api/routes/wallets.js +25 -0
  31. package/dist/api/routes/wallets.js.map +1 -1
  32. package/dist/api/routes/webhooks.d.ts +17 -0
  33. package/dist/api/routes/webhooks.d.ts.map +1 -0
  34. package/dist/api/routes/webhooks.js +218 -0
  35. package/dist/api/routes/webhooks.js.map +1 -0
  36. package/dist/api/server.d.ts +27 -0
  37. package/dist/api/server.d.ts.map +1 -1
  38. package/dist/api/server.js +31 -5
  39. package/dist/api/server.js.map +1 -1
  40. package/dist/index.d.ts +3 -0
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +2 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/infrastructure/backup/backup-format.d.ts +107 -0
  45. package/dist/infrastructure/backup/backup-format.d.ts.map +1 -0
  46. package/dist/infrastructure/backup/backup-format.js +134 -0
  47. package/dist/infrastructure/backup/backup-format.js.map +1 -0
  48. package/dist/infrastructure/backup/encrypted-backup-service.d.ts +56 -0
  49. package/dist/infrastructure/backup/encrypted-backup-service.d.ts.map +1 -0
  50. package/dist/infrastructure/backup/encrypted-backup-service.js +269 -0
  51. package/dist/infrastructure/backup/encrypted-backup-service.js.map +1 -0
  52. package/dist/infrastructure/backup/index.d.ts +3 -0
  53. package/dist/infrastructure/backup/index.d.ts.map +1 -1
  54. package/dist/infrastructure/backup/index.js +2 -0
  55. package/dist/infrastructure/backup/index.js.map +1 -1
  56. package/dist/infrastructure/config/loader.d.ts +23 -0
  57. package/dist/infrastructure/config/loader.d.ts.map +1 -1
  58. package/dist/infrastructure/config/loader.js +8 -0
  59. package/dist/infrastructure/config/loader.js.map +1 -1
  60. package/dist/infrastructure/database/audit-helper.d.ts +29 -0
  61. package/dist/infrastructure/database/audit-helper.d.ts.map +1 -0
  62. package/dist/infrastructure/database/audit-helper.js +30 -0
  63. package/dist/infrastructure/database/audit-helper.js.map +1 -0
  64. package/dist/infrastructure/database/index.d.ts +2 -0
  65. package/dist/infrastructure/database/index.d.ts.map +1 -1
  66. package/dist/infrastructure/database/index.js +1 -0
  67. package/dist/infrastructure/database/index.js.map +1 -1
  68. package/dist/infrastructure/database/migrate.d.ts +1 -1
  69. package/dist/infrastructure/database/migrate.d.ts.map +1 -1
  70. package/dist/infrastructure/database/migrate.js +83 -2
  71. package/dist/infrastructure/database/migrate.js.map +1 -1
  72. package/dist/infrastructure/database/schema.d.ts +343 -1
  73. package/dist/infrastructure/database/schema.d.ts.map +1 -1
  74. package/dist/infrastructure/database/schema.js +41 -1
  75. package/dist/infrastructure/database/schema.js.map +1 -1
  76. package/dist/infrastructure/metrics/in-memory-counter.d.ts +34 -0
  77. package/dist/infrastructure/metrics/in-memory-counter.d.ts.map +1 -0
  78. package/dist/infrastructure/metrics/in-memory-counter.js +88 -0
  79. package/dist/infrastructure/metrics/in-memory-counter.js.map +1 -0
  80. package/dist/infrastructure/settings/hot-reload.d.ts +1 -0
  81. package/dist/infrastructure/settings/hot-reload.d.ts.map +1 -1
  82. package/dist/infrastructure/settings/hot-reload.js +23 -2
  83. package/dist/infrastructure/settings/hot-reload.js.map +1 -1
  84. package/dist/infrastructure/settings/setting-keys.d.ts.map +1 -1
  85. package/dist/infrastructure/settings/setting-keys.js +4 -0
  86. package/dist/infrastructure/settings/setting-keys.js.map +1 -1
  87. package/dist/infrastructure/telegram/telegram-bot-service.d.ts.map +1 -1
  88. package/dist/infrastructure/telegram/telegram-bot-service.js +32 -19
  89. package/dist/infrastructure/telegram/telegram-bot-service.js.map +1 -1
  90. package/dist/lifecycle/daemon.d.ts +8 -1
  91. package/dist/lifecycle/daemon.d.ts.map +1 -1
  92. package/dist/lifecycle/daemon.js +103 -1
  93. package/dist/lifecycle/daemon.js.map +1 -1
  94. package/dist/pipeline/dry-run.d.ts +68 -0
  95. package/dist/pipeline/dry-run.d.ts.map +1 -0
  96. package/dist/pipeline/dry-run.js +426 -0
  97. package/dist/pipeline/dry-run.js.map +1 -0
  98. package/dist/pipeline/index.d.ts +1 -0
  99. package/dist/pipeline/index.d.ts.map +1 -1
  100. package/dist/pipeline/index.js +2 -0
  101. package/dist/pipeline/index.js.map +1 -1
  102. package/dist/pipeline/pipeline.d.ts +18 -1
  103. package/dist/pipeline/pipeline.d.ts.map +1 -1
  104. package/dist/pipeline/pipeline.js +38 -0
  105. package/dist/pipeline/pipeline.js.map +1 -1
  106. package/dist/pipeline/stages.d.ts +31 -1
  107. package/dist/pipeline/stages.d.ts.map +1 -1
  108. package/dist/pipeline/stages.js +120 -22
  109. package/dist/pipeline/stages.js.map +1 -1
  110. package/dist/services/admin-stats-service.d.ts +48 -0
  111. package/dist/services/admin-stats-service.d.ts.map +1 -0
  112. package/dist/services/admin-stats-service.js +182 -0
  113. package/dist/services/admin-stats-service.js.map +1 -0
  114. package/dist/services/autostop/autostop-service.d.ts +83 -0
  115. package/dist/services/autostop/autostop-service.d.ts.map +1 -0
  116. package/dist/services/autostop/autostop-service.js +252 -0
  117. package/dist/services/autostop/autostop-service.js.map +1 -0
  118. package/dist/services/autostop/index.d.ts +15 -0
  119. package/dist/services/autostop/index.d.ts.map +1 -0
  120. package/dist/services/autostop/index.js +11 -0
  121. package/dist/services/autostop/index.js.map +1 -0
  122. package/dist/services/autostop/rule-registry.d.ts +42 -0
  123. package/dist/services/autostop/rule-registry.d.ts.map +1 -0
  124. package/dist/services/autostop/rule-registry.js +54 -0
  125. package/dist/services/autostop/rule-registry.js.map +1 -0
  126. package/dist/services/autostop/rules/consecutive-failures.rule.d.ts +38 -0
  127. package/dist/services/autostop/rules/consecutive-failures.rule.d.ts.map +1 -0
  128. package/dist/services/autostop/rules/consecutive-failures.rule.js +75 -0
  129. package/dist/services/autostop/rules/consecutive-failures.rule.js.map +1 -0
  130. package/dist/services/autostop/rules/idle-timeout.rule.d.ts +43 -0
  131. package/dist/services/autostop/rules/idle-timeout.rule.d.ts.map +1 -0
  132. package/dist/services/autostop/rules/idle-timeout.rule.js +128 -0
  133. package/dist/services/autostop/rules/idle-timeout.rule.js.map +1 -0
  134. package/dist/services/autostop/rules/unusual-activity.rule.d.ts +33 -0
  135. package/dist/services/autostop/rules/unusual-activity.rule.d.ts.map +1 -0
  136. package/dist/services/autostop/rules/unusual-activity.rule.js +73 -0
  137. package/dist/services/autostop/rules/unusual-activity.rule.js.map +1 -0
  138. package/dist/services/autostop/types.d.ts +49 -0
  139. package/dist/services/autostop/types.d.ts.map +1 -0
  140. package/dist/services/autostop/types.js +10 -0
  141. package/dist/services/autostop/types.js.map +1 -0
  142. package/dist/services/autostop-rules.d.ts +11 -74
  143. package/dist/services/autostop-rules.d.ts.map +1 -1
  144. package/dist/services/autostop-rules.js +9 -169
  145. package/dist/services/autostop-rules.js.map +1 -1
  146. package/dist/services/autostop-service.d.ts +6 -77
  147. package/dist/services/autostop-service.d.ts.map +1 -1
  148. package/dist/services/autostop-service.js +5 -212
  149. package/dist/services/autostop-service.js.map +1 -1
  150. package/dist/services/kill-switch-service.d.ts.map +1 -1
  151. package/dist/services/kill-switch-service.js +36 -21
  152. package/dist/services/kill-switch-service.js.map +1 -1
  153. package/dist/services/webhook-delivery-queue.d.ts +53 -0
  154. package/dist/services/webhook-delivery-queue.d.ts.map +1 -0
  155. package/dist/services/webhook-delivery-queue.js +118 -0
  156. package/dist/services/webhook-delivery-queue.js.map +1 -0
  157. package/dist/services/webhook-service.d.ts +46 -0
  158. package/dist/services/webhook-service.d.ts.map +1 -0
  159. package/dist/services/webhook-service.js +160 -0
  160. package/dist/services/webhook-service.js.map +1 -0
  161. package/package.json +5 -5
  162. package/public/admin/assets/{index-CBU6NfOH.js → index-RagPnRU1.js} +2 -2
  163. package/public/admin/index.html +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"kill-switch-service.js","sourceRoot":"","sources":["../../src/services/kill-switch-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kill-switch-service.js","sourceRoot":"","sources":["../../src/services/kill-switch-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * WebhookDeliveryQueue: fire-and-forget delivery with HMAC-SHA256 signing and retry.
3
+ *
4
+ * Delivers webhook payloads to subscriber URLs with:
5
+ * - HMAC-SHA256 signature (X-WAIaaS-Signature header)
6
+ * - Exponential backoff retry (max 4 attempts: 0s, 1s, 2s, 4s)
7
+ * - 4xx immediate stop (client error, no retry)
8
+ * - 10s timeout per request
9
+ * - Per-attempt logging to webhook_logs table
10
+ *
11
+ * @see .planning/milestones/v30.0-phases/307/DESIGN-SPEC.md (OPS-04 section 5)
12
+ */
13
+ import type { Database as SQLiteDatabase } from 'better-sqlite3';
14
+ export interface WebhookPayload {
15
+ id: string;
16
+ event: string;
17
+ timestamp: number;
18
+ data: Record<string, unknown>;
19
+ }
20
+ export interface WebhookDeliveryJob {
21
+ webhookId: string;
22
+ url: string;
23
+ secretEncrypted: string;
24
+ eventType: string;
25
+ payload: WebhookPayload;
26
+ deliveryId: string;
27
+ }
28
+ export declare class WebhookDeliveryQueue {
29
+ private readonly sqlite;
30
+ private readonly getMasterPassword;
31
+ private readonly maxAttempts;
32
+ private readonly timeoutMs;
33
+ private readonly backoffMs;
34
+ constructor(sqlite: SQLiteDatabase, getMasterPassword: () => string);
35
+ /**
36
+ * Enqueue a delivery job (fire-and-forget).
37
+ * The delivery runs asynchronously and errors are caught internally.
38
+ */
39
+ enqueue(job: WebhookDeliveryJob): void;
40
+ /**
41
+ * Deliver a webhook payload with retry logic.
42
+ */
43
+ private deliver;
44
+ /**
45
+ * Produce HMAC-SHA256 signature in "sha256={hex}" format.
46
+ */
47
+ sign(secret: string, body: string): string;
48
+ /**
49
+ * Log a single delivery attempt to webhook_logs.
50
+ */
51
+ private logAttempt;
52
+ }
53
+ //# sourceMappingURL=webhook-delivery-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-delivery-queue.d.ts","sourceRoot":"","sources":["../../src/services/webhook-delivery-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQjE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IANpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;gBAGhC,MAAM,EAAE,cAAc,EACtB,iBAAiB,EAAE,MAAM,MAAM;IAGlD;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI;IAMtC;;OAEG;YACW,OAAO;IAgErB;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI1C;;OAEG;IACH,OAAO,CAAC,UAAU;CA8BnB"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * WebhookDeliveryQueue: fire-and-forget delivery with HMAC-SHA256 signing and retry.
3
+ *
4
+ * Delivers webhook payloads to subscriber URLs with:
5
+ * - HMAC-SHA256 signature (X-WAIaaS-Signature header)
6
+ * - Exponential backoff retry (max 4 attempts: 0s, 1s, 2s, 4s)
7
+ * - 4xx immediate stop (client error, no retry)
8
+ * - 10s timeout per request
9
+ * - Per-attempt logging to webhook_logs table
10
+ *
11
+ * @see .planning/milestones/v30.0-phases/307/DESIGN-SPEC.md (OPS-04 section 5)
12
+ */
13
+ import { createHmac } from 'node:crypto';
14
+ import { decryptSettingValue } from '../infrastructure/settings/settings-crypto.js';
15
+ import { generateId } from '../infrastructure/database/id.js';
16
+ // ---------------------------------------------------------------------------
17
+ // WebhookDeliveryQueue
18
+ // ---------------------------------------------------------------------------
19
+ export class WebhookDeliveryQueue {
20
+ sqlite;
21
+ getMasterPassword;
22
+ maxAttempts = 4;
23
+ timeoutMs = 10_000;
24
+ backoffMs = [0, 1000, 2000, 4000];
25
+ constructor(sqlite, getMasterPassword) {
26
+ this.sqlite = sqlite;
27
+ this.getMasterPassword = getMasterPassword;
28
+ }
29
+ /**
30
+ * Enqueue a delivery job (fire-and-forget).
31
+ * The delivery runs asynchronously and errors are caught internally.
32
+ */
33
+ enqueue(job) {
34
+ this.deliver(job, 1).catch((err) => {
35
+ console.error('[WebhookDeliveryQueue] unhandled delivery error:', err);
36
+ });
37
+ }
38
+ /**
39
+ * Deliver a webhook payload with retry logic.
40
+ */
41
+ async deliver(job, attempt) {
42
+ const startTime = Date.now();
43
+ let httpStatus = null;
44
+ let error = null;
45
+ try {
46
+ // Decrypt secret for HMAC signing
47
+ const secret = decryptSettingValue(job.secretEncrypted, this.getMasterPassword());
48
+ const body = JSON.stringify(job.payload);
49
+ const signature = this.sign(secret, body);
50
+ const timestamp = Math.floor(Date.now() / 1000);
51
+ const headers = {
52
+ 'Content-Type': 'application/json',
53
+ 'X-WAIaaS-Signature': signature,
54
+ 'X-WAIaaS-Event': job.eventType,
55
+ 'X-WAIaaS-Delivery': job.deliveryId,
56
+ 'X-WAIaaS-Timestamp': String(timestamp),
57
+ 'User-Agent': 'WAIaaS-Webhook/1.0',
58
+ };
59
+ const response = await fetch(job.url, {
60
+ method: 'POST',
61
+ headers,
62
+ body,
63
+ signal: AbortSignal.timeout(this.timeoutMs),
64
+ });
65
+ httpStatus = response.status;
66
+ const duration = Date.now() - startTime;
67
+ if (response.ok) {
68
+ // 2xx success
69
+ this.logAttempt(job.webhookId, job.eventType, 'success', httpStatus, attempt, null, duration);
70
+ return;
71
+ }
72
+ if (httpStatus >= 400 && httpStatus < 500) {
73
+ // 4xx client error -- no retry
74
+ error = `HTTP ${httpStatus}: client error`;
75
+ this.logAttempt(job.webhookId, job.eventType, 'failed', httpStatus, attempt, error, duration);
76
+ return;
77
+ }
78
+ // 5xx server error -- retry
79
+ error = `HTTP ${httpStatus}: server error`;
80
+ this.logAttempt(job.webhookId, job.eventType, 'failed', httpStatus, attempt, error, duration);
81
+ }
82
+ catch (err) {
83
+ // Network error or timeout
84
+ const duration = Date.now() - startTime;
85
+ error = err instanceof Error ? err.message : String(err);
86
+ this.logAttempt(job.webhookId, job.eventType, 'failed', null, attempt, error, duration);
87
+ }
88
+ // Retry with backoff if attempts remain
89
+ if (attempt < this.maxAttempts) {
90
+ const delay = this.backoffMs[attempt] ?? 4000;
91
+ await new Promise((resolve) => {
92
+ setTimeout(() => resolve(), delay);
93
+ });
94
+ return this.deliver(job, attempt + 1);
95
+ }
96
+ }
97
+ /**
98
+ * Produce HMAC-SHA256 signature in "sha256={hex}" format.
99
+ */
100
+ sign(secret, body) {
101
+ return `sha256=${createHmac('sha256', secret).update(body, 'utf8').digest('hex')}`;
102
+ }
103
+ /**
104
+ * Log a single delivery attempt to webhook_logs.
105
+ */
106
+ logAttempt(webhookId, eventType, status, httpStatus, attempt, error, requestDuration) {
107
+ try {
108
+ this.sqlite
109
+ .prepare(`INSERT INTO webhook_logs (id, webhook_id, event_type, status, http_status, attempt, error, request_duration, created_at)
110
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
111
+ .run(generateId(), webhookId, eventType, status, httpStatus, attempt, error, requestDuration, Math.floor(Date.now() / 1000));
112
+ }
113
+ catch (err) {
114
+ console.error('[WebhookDeliveryQueue] failed to log attempt:', err);
115
+ }
116
+ }
117
+ }
118
+ //# sourceMappingURL=webhook-delivery-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-delivery-queue.js","sourceRoot":"","sources":["../../src/services/webhook-delivery-queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * WebhookService: dispatches events to registered webhooks.
3
+ *
4
+ * Queries enabled webhooks from DB, filters by subscribed events array,
5
+ * and enqueues delivery jobs to WebhookDeliveryQueue. Operates independently
6
+ * from NotificationService (different concerns: N URLs + HMAC vs single channel).
7
+ *
8
+ * EventBus listeners map internal events to webhook event types:
9
+ * - transaction:completed -> TX_CONFIRMED
10
+ * - transaction:failed -> TX_FAILED
11
+ * - wallet:activity -> TX_SUBMITTED / SESSION_CREATED / OWNER_REGISTERED
12
+ * - kill-switch:state-changed -> KILL_SWITCH_ACTIVATED / KILL_SWITCH_RECOVERED
13
+ * - transaction:incoming -> TX_SUBMITTED (incoming notification)
14
+ *
15
+ * Direct dispatch() calls handle: WALLET_CREATED, WALLET_SUSPENDED,
16
+ * SESSION_REVOKED, POLICY_DENIED, MASTER_AUTH_FAILED, AUTO_STOP_TRIGGERED,
17
+ * NOTIFICATION_TOTAL_FAILURE from their respective handlers.
18
+ *
19
+ * @see .planning/milestones/v30.0-phases/307/DESIGN-SPEC.md (OPS-04 section 7)
20
+ */
21
+ import type { Database as SQLiteDatabase } from 'better-sqlite3';
22
+ import type { EventBus } from '@waiaas/core';
23
+ export declare class WebhookService {
24
+ private readonly sqlite;
25
+ private readonly queue;
26
+ private disposed;
27
+ readonly eventBus: EventBus;
28
+ constructor(sqlite: SQLiteDatabase, eventBus: EventBus, getMasterPassword: () => string);
29
+ /**
30
+ * Register EventBus listeners that map internal events to webhook event types.
31
+ */
32
+ private registerEventBusListeners;
33
+ /**
34
+ * Dispatch an event to all matching enabled webhooks.
35
+ *
36
+ * @param eventType - The webhook event type (e.g., 'TX_CONFIRMED')
37
+ * @param data - Event-specific payload data
38
+ */
39
+ dispatch(eventType: string, data: Record<string, unknown>): void;
40
+ /**
41
+ * Mark service as disposed. Prevents further dispatching.
42
+ * EventBus listeners are cleaned up when daemon calls eventBus.removeAllListeners().
43
+ */
44
+ destroy(): void;
45
+ }
46
+ //# sourceMappingURL=webhook-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-service.d.ts","sourceRoot":"","sources":["../../src/services/webhook-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AA2B7C,qBAAa,cAAc;IAMvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAS;IACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAGT,MAAM,EAAE,cAAc,EACvC,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE,MAAM,MAAM;IAOjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA8DjC;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA6ChE;;;OAGG;IACH,OAAO,IAAI,IAAI;CAGhB"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * WebhookService: dispatches events to registered webhooks.
3
+ *
4
+ * Queries enabled webhooks from DB, filters by subscribed events array,
5
+ * and enqueues delivery jobs to WebhookDeliveryQueue. Operates independently
6
+ * from NotificationService (different concerns: N URLs + HMAC vs single channel).
7
+ *
8
+ * EventBus listeners map internal events to webhook event types:
9
+ * - transaction:completed -> TX_CONFIRMED
10
+ * - transaction:failed -> TX_FAILED
11
+ * - wallet:activity -> TX_SUBMITTED / SESSION_CREATED / OWNER_REGISTERED
12
+ * - kill-switch:state-changed -> KILL_SWITCH_ACTIVATED / KILL_SWITCH_RECOVERED
13
+ * - transaction:incoming -> TX_SUBMITTED (incoming notification)
14
+ *
15
+ * Direct dispatch() calls handle: WALLET_CREATED, WALLET_SUSPENDED,
16
+ * SESSION_REVOKED, POLICY_DENIED, MASTER_AUTH_FAILED, AUTO_STOP_TRIGGERED,
17
+ * NOTIFICATION_TOTAL_FAILURE from their respective handlers.
18
+ *
19
+ * @see .planning/milestones/v30.0-phases/307/DESIGN-SPEC.md (OPS-04 section 7)
20
+ */
21
+ import { WebhookDeliveryQueue } from './webhook-delivery-queue.js';
22
+ import { generateId } from '../infrastructure/database/id.js';
23
+ /** Maps wallet:activity event names to webhook event types. */
24
+ const ACTIVITY_EVENT_MAP = {
25
+ TX_SUBMITTED: 'TX_SUBMITTED',
26
+ SESSION_CREATED: 'SESSION_CREATED',
27
+ OWNER_SET: 'OWNER_REGISTERED',
28
+ };
29
+ // ---------------------------------------------------------------------------
30
+ // WebhookService
31
+ // ---------------------------------------------------------------------------
32
+ export class WebhookService {
33
+ sqlite;
34
+ queue;
35
+ disposed = false;
36
+ eventBus;
37
+ constructor(sqlite, eventBus, getMasterPassword) {
38
+ this.sqlite = sqlite;
39
+ this.eventBus = eventBus;
40
+ this.queue = new WebhookDeliveryQueue(sqlite, getMasterPassword);
41
+ this.registerEventBusListeners();
42
+ }
43
+ /**
44
+ * Register EventBus listeners that map internal events to webhook event types.
45
+ */
46
+ registerEventBusListeners() {
47
+ // transaction:completed -> TX_CONFIRMED
48
+ this.eventBus.on('transaction:completed', (e) => {
49
+ this.dispatch('TX_CONFIRMED', {
50
+ txId: e.txId,
51
+ txHash: e.txHash,
52
+ walletId: e.walletId,
53
+ network: e.network,
54
+ type: e.type,
55
+ amount: e.amount,
56
+ });
57
+ });
58
+ // transaction:failed -> TX_FAILED
59
+ this.eventBus.on('transaction:failed', (e) => {
60
+ this.dispatch('TX_FAILED', {
61
+ txId: e.txId,
62
+ error: e.error,
63
+ walletId: e.walletId,
64
+ network: e.network,
65
+ type: e.type,
66
+ });
67
+ });
68
+ // wallet:activity -> TX_SUBMITTED / SESSION_CREATED / OWNER_REGISTERED
69
+ this.eventBus.on('wallet:activity', (e) => {
70
+ const webhookEvent = ACTIVITY_EVENT_MAP[e.activity];
71
+ if (webhookEvent) {
72
+ this.dispatch(webhookEvent, {
73
+ walletId: e.walletId,
74
+ ...(e.details ?? {}),
75
+ });
76
+ }
77
+ });
78
+ // kill-switch:state-changed -> KILL_SWITCH_ACTIVATED / KILL_SWITCH_RECOVERED
79
+ this.eventBus.on('kill-switch:state-changed', (e) => {
80
+ if (e.state === 'SUSPENDED') {
81
+ this.dispatch('KILL_SWITCH_ACTIVATED', {
82
+ activatedBy: e.activatedBy,
83
+ previousState: e.previousState,
84
+ });
85
+ }
86
+ else if (e.state === 'ACTIVE' && e.previousState !== 'ACTIVE') {
87
+ this.dispatch('KILL_SWITCH_RECOVERED', {
88
+ activatedBy: e.activatedBy,
89
+ });
90
+ }
91
+ });
92
+ // transaction:incoming -> TX_SUBMITTED (incoming notification)
93
+ this.eventBus.on('transaction:incoming', (e) => {
94
+ this.dispatch('TX_SUBMITTED', {
95
+ txHash: e.txHash,
96
+ fromAddress: e.fromAddress,
97
+ amount: e.amount,
98
+ walletId: e.walletId,
99
+ network: e.network,
100
+ status: e.status,
101
+ });
102
+ });
103
+ }
104
+ /**
105
+ * Dispatch an event to all matching enabled webhooks.
106
+ *
107
+ * @param eventType - The webhook event type (e.g., 'TX_CONFIRMED')
108
+ * @param data - Event-specific payload data
109
+ */
110
+ dispatch(eventType, data) {
111
+ if (this.disposed)
112
+ return;
113
+ try {
114
+ // Query all enabled webhooks
115
+ const rows = this.sqlite
116
+ .prepare('SELECT id, url, secret_encrypted, events FROM webhooks WHERE enabled = 1')
117
+ .all();
118
+ for (const row of rows) {
119
+ try {
120
+ // Parse events filter
121
+ const subscribedEvents = JSON.parse(row.events);
122
+ // Empty array = wildcard (match all events)
123
+ if (subscribedEvents.length > 0 && !subscribedEvents.includes(eventType)) {
124
+ continue; // Skip -- event not subscribed
125
+ }
126
+ const deliveryId = generateId();
127
+ const payload = {
128
+ id: deliveryId,
129
+ event: eventType,
130
+ timestamp: Math.floor(Date.now() / 1000),
131
+ data,
132
+ };
133
+ this.queue.enqueue({
134
+ webhookId: row.id,
135
+ url: row.url,
136
+ secretEncrypted: row.secret_encrypted,
137
+ eventType,
138
+ payload,
139
+ deliveryId,
140
+ });
141
+ }
142
+ catch (err) {
143
+ // One webhook error shouldn't block others
144
+ console.error(`[WebhookService] dispatch error for webhook ${row.id}:`, err);
145
+ }
146
+ }
147
+ }
148
+ catch (err) {
149
+ console.error('[WebhookService] dispatch query error:', err);
150
+ }
151
+ }
152
+ /**
153
+ * Mark service as disposed. Prevents further dispatching.
154
+ * EventBus listeners are cleaned up when daemon calls eventBus.removeAllListeners().
155
+ */
156
+ destroy() {
157
+ this.disposed = true;
158
+ }
159
+ }
160
+ //# sourceMappingURL=webhook-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-service.js","sourceRoot":"","sources":["../../src/services/webhook-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waiaas/daemon",
3
- "version": "2.9.1-rc",
3
+ "version": "2.10.0-rc",
4
4
  "description": "WAIaaS daemon - self-hosted wallet service for AI agents",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -47,10 +47,10 @@
47
47
  "uuidv7": "^1.0.2",
48
48
  "viem": "^2.21.0",
49
49
  "zod": "^3.24.0",
50
- "@waiaas/actions": "2.9.1-rc",
51
- "@waiaas/adapter-evm": "2.9.1-rc",
52
- "@waiaas/adapter-solana": "2.9.1-rc",
53
- "@waiaas/core": "2.9.1-rc"
50
+ "@waiaas/adapter-solana": "2.10.0-rc",
51
+ "@waiaas/actions": "2.10.0-rc",
52
+ "@waiaas/adapter-evm": "2.10.0-rc",
53
+ "@waiaas/core": "2.10.0-rc"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/better-sqlite3": "^7.6.0",