@sjawhar/whatsapp-mcp 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 (125) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +122 -0
  3. package/dist/__tests__/connection.test.d.ts +2 -0
  4. package/dist/__tests__/connection.test.d.ts.map +1 -0
  5. package/dist/__tests__/connection.test.js +105 -0
  6. package/dist/__tests__/connection.test.js.map +1 -0
  7. package/dist/__tests__/disconnect.test.d.ts +2 -0
  8. package/dist/__tests__/disconnect.test.d.ts.map +1 -0
  9. package/dist/__tests__/disconnect.test.js +166 -0
  10. package/dist/__tests__/disconnect.test.js.map +1 -0
  11. package/dist/__tests__/download-media.test.d.ts +2 -0
  12. package/dist/__tests__/download-media.test.d.ts.map +1 -0
  13. package/dist/__tests__/download-media.test.js +110 -0
  14. package/dist/__tests__/download-media.test.js.map +1 -0
  15. package/dist/__tests__/failures/connection-failures.test.d.ts +2 -0
  16. package/dist/__tests__/failures/connection-failures.test.d.ts.map +1 -0
  17. package/dist/__tests__/failures/connection-failures.test.js +146 -0
  18. package/dist/__tests__/failures/connection-failures.test.js.map +1 -0
  19. package/dist/__tests__/failures/edge-cases.test.d.ts +2 -0
  20. package/dist/__tests__/failures/edge-cases.test.d.ts.map +1 -0
  21. package/dist/__tests__/failures/edge-cases.test.js +121 -0
  22. package/dist/__tests__/failures/edge-cases.test.js.map +1 -0
  23. package/dist/__tests__/failures/resource-failures.test.d.ts +2 -0
  24. package/dist/__tests__/failures/resource-failures.test.d.ts.map +1 -0
  25. package/dist/__tests__/failures/resource-failures.test.js +136 -0
  26. package/dist/__tests__/failures/resource-failures.test.js.map +1 -0
  27. package/dist/__tests__/failures/security-failures.test.d.ts +2 -0
  28. package/dist/__tests__/failures/security-failures.test.d.ts.map +1 -0
  29. package/dist/__tests__/failures/security-failures.test.js +0 -0
  30. package/dist/__tests__/failures/security-failures.test.js.map +1 -0
  31. package/dist/__tests__/helpers/fake-baileys.d.ts +52 -0
  32. package/dist/__tests__/helpers/fake-baileys.d.ts.map +1 -0
  33. package/dist/__tests__/helpers/fake-baileys.js +60 -0
  34. package/dist/__tests__/helpers/fake-baileys.js.map +1 -0
  35. package/dist/__tests__/helpers/mcp-test-client.d.ts +9 -0
  36. package/dist/__tests__/helpers/mcp-test-client.d.ts.map +1 -0
  37. package/dist/__tests__/helpers/mcp-test-client.js +40 -0
  38. package/dist/__tests__/helpers/mcp-test-client.js.map +1 -0
  39. package/dist/__tests__/helpers/test-db.d.ts +4 -0
  40. package/dist/__tests__/helpers/test-db.d.ts.map +1 -0
  41. package/dist/__tests__/helpers/test-db.js +32 -0
  42. package/dist/__tests__/helpers/test-db.js.map +1 -0
  43. package/dist/__tests__/integration/chat-navigation.test.d.ts +2 -0
  44. package/dist/__tests__/integration/chat-navigation.test.d.ts.map +1 -0
  45. package/dist/__tests__/integration/chat-navigation.test.js +171 -0
  46. package/dist/__tests__/integration/chat-navigation.test.js.map +1 -0
  47. package/dist/__tests__/integration/contacts-flow.test.d.ts +2 -0
  48. package/dist/__tests__/integration/contacts-flow.test.d.ts.map +1 -0
  49. package/dist/__tests__/integration/contacts-flow.test.js +144 -0
  50. package/dist/__tests__/integration/contacts-flow.test.js.map +1 -0
  51. package/dist/__tests__/integration/media-flow.test.d.ts +2 -0
  52. package/dist/__tests__/integration/media-flow.test.d.ts.map +1 -0
  53. package/dist/__tests__/integration/media-flow.test.js +225 -0
  54. package/dist/__tests__/integration/media-flow.test.js.map +1 -0
  55. package/dist/__tests__/integration/search-flow.test.d.ts +2 -0
  56. package/dist/__tests__/integration/search-flow.test.d.ts.map +1 -0
  57. package/dist/__tests__/integration/search-flow.test.js +44 -0
  58. package/dist/__tests__/integration/search-flow.test.js.map +1 -0
  59. package/dist/__tests__/integration/send-message.test.d.ts +2 -0
  60. package/dist/__tests__/integration/send-message.test.d.ts.map +1 -0
  61. package/dist/__tests__/integration/send-message.test.js +160 -0
  62. package/dist/__tests__/integration/send-message.test.js.map +1 -0
  63. package/dist/__tests__/lock-file.test.d.ts +2 -0
  64. package/dist/__tests__/lock-file.test.d.ts.map +1 -0
  65. package/dist/__tests__/lock-file.test.js +63 -0
  66. package/dist/__tests__/lock-file.test.js.map +1 -0
  67. package/dist/__tests__/medium-fixes.test.d.ts +2 -0
  68. package/dist/__tests__/medium-fixes.test.d.ts.map +1 -0
  69. package/dist/__tests__/medium-fixes.test.js +141 -0
  70. package/dist/__tests__/medium-fixes.test.js.map +1 -0
  71. package/dist/__tests__/rate-limit.test.d.ts +2 -0
  72. package/dist/__tests__/rate-limit.test.d.ts.map +1 -0
  73. package/dist/__tests__/rate-limit.test.js +193 -0
  74. package/dist/__tests__/rate-limit.test.js.map +1 -0
  75. package/dist/__tests__/send-file.test.d.ts +2 -0
  76. package/dist/__tests__/send-file.test.d.ts.map +1 -0
  77. package/dist/__tests__/send-file.test.js +237 -0
  78. package/dist/__tests__/send-file.test.js.map +1 -0
  79. package/dist/__tests__/smoke.test.d.ts +2 -0
  80. package/dist/__tests__/smoke.test.d.ts.map +1 -0
  81. package/dist/__tests__/smoke.test.js +28 -0
  82. package/dist/__tests__/smoke.test.js.map +1 -0
  83. package/dist/__tests__/transcribe.test.d.ts +2 -0
  84. package/dist/__tests__/transcribe.test.d.ts.map +1 -0
  85. package/dist/__tests__/transcribe.test.js +71 -0
  86. package/dist/__tests__/transcribe.test.js.map +1 -0
  87. package/dist/__tests__/zombie.test.d.ts +2 -0
  88. package/dist/__tests__/zombie.test.d.ts.map +1 -0
  89. package/dist/__tests__/zombie.test.js +145 -0
  90. package/dist/__tests__/zombie.test.js.map +1 -0
  91. package/dist/db.d.ts +53 -0
  92. package/dist/db.d.ts.map +1 -0
  93. package/dist/db.js +509 -0
  94. package/dist/db.js.map +1 -0
  95. package/dist/import-contacts.d.ts +37 -0
  96. package/dist/import-contacts.d.ts.map +1 -0
  97. package/dist/import-contacts.js +242 -0
  98. package/dist/import-contacts.js.map +1 -0
  99. package/dist/index.d.ts +3 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +62 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/lock.d.ts +16 -0
  104. package/dist/lock.d.ts.map +1 -0
  105. package/dist/lock.js +65 -0
  106. package/dist/lock.js.map +1 -0
  107. package/dist/tools.d.ts +6 -0
  108. package/dist/tools.d.ts.map +1 -0
  109. package/dist/tools.js +339 -0
  110. package/dist/tools.js.map +1 -0
  111. package/dist/transcribe.d.ts +8 -0
  112. package/dist/transcribe.d.ts.map +1 -0
  113. package/dist/transcribe.js +63 -0
  114. package/dist/transcribe.js.map +1 -0
  115. package/dist/utils.d.ts +51 -0
  116. package/dist/utils.d.ts.map +1 -0
  117. package/dist/utils.js +156 -0
  118. package/dist/utils.js.map +1 -0
  119. package/dist/whatsapp.d.ts +50 -0
  120. package/dist/whatsapp.d.ts.map +1 -0
  121. package/dist/whatsapp.js +896 -0
  122. package/dist/whatsapp.js.map +1 -0
  123. package/package.json +52 -0
  124. package/patches/@whiskeysockets+baileys+6.7.21.patch +46 -0
  125. package/patches/libsignal+2.0.1.patch +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { WASocket } from "@whiskeysockets/baileys";
2
+ export declare class SendRateLimiter {
3
+ private lastSendTimestamp;
4
+ private readonly minInterval;
5
+ private readonly jitterMs;
6
+ constructor(minInterval: number, jitterMs: number);
7
+ throttle(): Promise<void>;
8
+ }
9
+ export declare function getMyInfo(): {
10
+ jid: string | null;
11
+ lidJid: string | null;
12
+ name: string | null;
13
+ phone: string | null;
14
+ };
15
+ export declare function clearAuthState(): Promise<void>;
16
+ export declare function getReconnectAttempts(): number;
17
+ export declare function handleDisconnect(statusCode: number | undefined, currentSock: WASocket | null): Promise<void>;
18
+ /**
19
+ * Mark connection as ready without connecting to WhatsApp.
20
+ * Used when another instance owns the connection and this one reads from SQLite only.
21
+ */
22
+ export declare function resolveConnectionAsReadOnly(): void;
23
+ /**
24
+ * Initialize the Baileys WhatsApp client.
25
+ * QR codes are printed to stderr so they don't interfere with MCP stdio.
26
+ */
27
+ export declare function initWhatsApp(): Promise<void>;
28
+ /**
29
+ * Cleanly close the WhatsApp connection.
30
+ */
31
+ export declare function closeWhatsApp(): Promise<void>;
32
+ export declare function getChats(nameFilter?: string, limit?: number): Promise<Record<string, unknown>[]>;
33
+ export declare function getChat(jid: string): Promise<Record<string, unknown>>;
34
+ export declare function getMessages(jid: string, limit?: number): Promise<Record<string, unknown>[]>;
35
+ export declare function searchMessages(query: string, jid?: string): Promise<Record<string, unknown>[]>;
36
+ export declare function searchContacts(query: string): Promise<Record<string, unknown>[]>;
37
+ export declare function getMessageContext(jid: string, messageId: string, count?: number): Promise<Record<string, unknown>>;
38
+ export declare function updateContact(jid: string, name: string): Promise<Record<string, unknown>>;
39
+ export declare function deleteChat(jid: string): Promise<Record<string, unknown>>;
40
+ export declare function deleteMessage(jid: string, messageId: string): Promise<Record<string, unknown>>;
41
+ export declare function getRecipientInfo(jid: string): {
42
+ jid: string;
43
+ name: string | null;
44
+ phone: string;
45
+ };
46
+ export declare function sendTextMessage(jid: string, text: string): Promise<Record<string, unknown>>;
47
+ export declare function sendFileMessage(jid: string, filePath: string, caption?: string): Promise<Record<string, unknown>>;
48
+ export declare function downloadMessageMedia(jid: string, messageId: string): Promise<Record<string, unknown>>;
49
+ export declare function transcribeVoiceNote(jid: string, messageId: string): Promise<Record<string, unknown>>;
50
+ //# sourceMappingURL=whatsapp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../src/whatsapp.ts"],"names":[],"mappings":"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"}