@sjawhar/whatsapp-mcp 2.1.1 → 2.2.1

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 (114) hide show
  1. package/dist/db.d.ts +27 -1
  2. package/dist/db.d.ts.map +1 -1
  3. package/dist/db.js +134 -31
  4. package/dist/db.js.map +1 -1
  5. package/dist/http-server.d.ts +8 -0
  6. package/dist/http-server.d.ts.map +1 -0
  7. package/dist/http-server.js +198 -0
  8. package/dist/http-server.js.map +1 -0
  9. package/dist/import-contacts.d.ts +6 -3
  10. package/dist/import-contacts.d.ts.map +1 -1
  11. package/dist/import-contacts.js +28 -14
  12. package/dist/import-contacts.js.map +1 -1
  13. package/dist/index.js +187 -64
  14. package/dist/index.js.map +1 -1
  15. package/dist/resources.d.ts +16 -0
  16. package/dist/resources.d.ts.map +1 -0
  17. package/dist/resources.js +84 -0
  18. package/dist/resources.js.map +1 -0
  19. package/dist/tools.d.ts.map +1 -1
  20. package/dist/tools.js +15 -16
  21. package/dist/tools.js.map +1 -1
  22. package/dist/whatsapp.d.ts +12 -0
  23. package/dist/whatsapp.d.ts.map +1 -1
  24. package/dist/whatsapp.js +153 -30
  25. package/dist/whatsapp.js.map +1 -1
  26. package/package.json +4 -1
  27. package/dist/__tests__/connection.test.d.ts +0 -2
  28. package/dist/__tests__/connection.test.d.ts.map +0 -1
  29. package/dist/__tests__/connection.test.js +0 -105
  30. package/dist/__tests__/connection.test.js.map +0 -1
  31. package/dist/__tests__/disconnect.test.d.ts +0 -2
  32. package/dist/__tests__/disconnect.test.d.ts.map +0 -1
  33. package/dist/__tests__/disconnect.test.js +0 -166
  34. package/dist/__tests__/disconnect.test.js.map +0 -1
  35. package/dist/__tests__/download-media.test.d.ts +0 -2
  36. package/dist/__tests__/download-media.test.d.ts.map +0 -1
  37. package/dist/__tests__/download-media.test.js +0 -110
  38. package/dist/__tests__/download-media.test.js.map +0 -1
  39. package/dist/__tests__/failures/connection-failures.test.d.ts +0 -2
  40. package/dist/__tests__/failures/connection-failures.test.d.ts.map +0 -1
  41. package/dist/__tests__/failures/connection-failures.test.js +0 -146
  42. package/dist/__tests__/failures/connection-failures.test.js.map +0 -1
  43. package/dist/__tests__/failures/edge-cases.test.d.ts +0 -2
  44. package/dist/__tests__/failures/edge-cases.test.d.ts.map +0 -1
  45. package/dist/__tests__/failures/edge-cases.test.js +0 -121
  46. package/dist/__tests__/failures/edge-cases.test.js.map +0 -1
  47. package/dist/__tests__/failures/resource-failures.test.d.ts +0 -2
  48. package/dist/__tests__/failures/resource-failures.test.d.ts.map +0 -1
  49. package/dist/__tests__/failures/resource-failures.test.js +0 -136
  50. package/dist/__tests__/failures/resource-failures.test.js.map +0 -1
  51. package/dist/__tests__/failures/security-failures.test.d.ts +0 -2
  52. package/dist/__tests__/failures/security-failures.test.d.ts.map +0 -1
  53. package/dist/__tests__/failures/security-failures.test.js +0 -0
  54. package/dist/__tests__/failures/security-failures.test.js.map +0 -1
  55. package/dist/__tests__/helpers/fake-baileys.d.ts +0 -52
  56. package/dist/__tests__/helpers/fake-baileys.d.ts.map +0 -1
  57. package/dist/__tests__/helpers/fake-baileys.js +0 -60
  58. package/dist/__tests__/helpers/fake-baileys.js.map +0 -1
  59. package/dist/__tests__/helpers/mcp-test-client.d.ts +0 -9
  60. package/dist/__tests__/helpers/mcp-test-client.d.ts.map +0 -1
  61. package/dist/__tests__/helpers/mcp-test-client.js +0 -40
  62. package/dist/__tests__/helpers/mcp-test-client.js.map +0 -1
  63. package/dist/__tests__/helpers/test-db.d.ts +0 -4
  64. package/dist/__tests__/helpers/test-db.d.ts.map +0 -1
  65. package/dist/__tests__/helpers/test-db.js +0 -32
  66. package/dist/__tests__/helpers/test-db.js.map +0 -1
  67. package/dist/__tests__/integration/chat-navigation.test.d.ts +0 -2
  68. package/dist/__tests__/integration/chat-navigation.test.d.ts.map +0 -1
  69. package/dist/__tests__/integration/chat-navigation.test.js +0 -171
  70. package/dist/__tests__/integration/chat-navigation.test.js.map +0 -1
  71. package/dist/__tests__/integration/contacts-flow.test.d.ts +0 -2
  72. package/dist/__tests__/integration/contacts-flow.test.d.ts.map +0 -1
  73. package/dist/__tests__/integration/contacts-flow.test.js +0 -150
  74. package/dist/__tests__/integration/contacts-flow.test.js.map +0 -1
  75. package/dist/__tests__/integration/media-flow.test.d.ts +0 -2
  76. package/dist/__tests__/integration/media-flow.test.d.ts.map +0 -1
  77. package/dist/__tests__/integration/media-flow.test.js +0 -225
  78. package/dist/__tests__/integration/media-flow.test.js.map +0 -1
  79. package/dist/__tests__/integration/search-flow.test.d.ts +0 -2
  80. package/dist/__tests__/integration/search-flow.test.d.ts.map +0 -1
  81. package/dist/__tests__/integration/search-flow.test.js +0 -44
  82. package/dist/__tests__/integration/search-flow.test.js.map +0 -1
  83. package/dist/__tests__/integration/send-message.test.d.ts +0 -2
  84. package/dist/__tests__/integration/send-message.test.d.ts.map +0 -1
  85. package/dist/__tests__/integration/send-message.test.js +0 -160
  86. package/dist/__tests__/integration/send-message.test.js.map +0 -1
  87. package/dist/__tests__/lock-file.test.d.ts +0 -2
  88. package/dist/__tests__/lock-file.test.d.ts.map +0 -1
  89. package/dist/__tests__/lock-file.test.js +0 -63
  90. package/dist/__tests__/lock-file.test.js.map +0 -1
  91. package/dist/__tests__/medium-fixes.test.d.ts +0 -2
  92. package/dist/__tests__/medium-fixes.test.d.ts.map +0 -1
  93. package/dist/__tests__/medium-fixes.test.js +0 -141
  94. package/dist/__tests__/medium-fixes.test.js.map +0 -1
  95. package/dist/__tests__/rate-limit.test.d.ts +0 -2
  96. package/dist/__tests__/rate-limit.test.d.ts.map +0 -1
  97. package/dist/__tests__/rate-limit.test.js +0 -193
  98. package/dist/__tests__/rate-limit.test.js.map +0 -1
  99. package/dist/__tests__/send-file.test.d.ts +0 -2
  100. package/dist/__tests__/send-file.test.d.ts.map +0 -1
  101. package/dist/__tests__/send-file.test.js +0 -237
  102. package/dist/__tests__/send-file.test.js.map +0 -1
  103. package/dist/__tests__/smoke.test.d.ts +0 -2
  104. package/dist/__tests__/smoke.test.d.ts.map +0 -1
  105. package/dist/__tests__/smoke.test.js +0 -28
  106. package/dist/__tests__/smoke.test.js.map +0 -1
  107. package/dist/__tests__/transcribe.test.d.ts +0 -2
  108. package/dist/__tests__/transcribe.test.d.ts.map +0 -1
  109. package/dist/__tests__/transcribe.test.js +0 -71
  110. package/dist/__tests__/transcribe.test.js.map +0 -1
  111. package/dist/__tests__/zombie.test.d.ts +0 -2
  112. package/dist/__tests__/zombie.test.d.ts.map +0 -1
  113. package/dist/__tests__/zombie.test.js +0 -145
  114. package/dist/__tests__/zombie.test.js.map +0 -1
package/dist/db.d.ts CHANGED
@@ -2,6 +2,12 @@ import Database from "better-sqlite3";
2
2
  import type { WAMessage } from "@whiskeysockets/baileys";
3
3
  export declare function upsertChat(jid: string, name?: string | null, conversationTs?: number | null, unreadCount?: number | null): void;
4
4
  export declare function upsertContact(jid: string, name?: string | null, notify?: string | null): void;
5
+ export declare function upsertUserProfile(jid: string, lidJid: string | null, name: string | null): void;
6
+ export declare function getUserProfile(): {
7
+ jid: string;
8
+ lid_jid: string | null;
9
+ name: string | null;
10
+ } | null;
5
11
  export declare function upsertMessage(chatJid: string, msg: WAMessage): void;
6
12
  export declare function upsertChats(chats: Array<{
7
13
  id: string;
@@ -27,11 +33,31 @@ export declare function getUnreadChats(messagesPerChat?: number): Record<string,
27
33
  * If a phone JID is given, also returns the LID JID (and vice versa).
28
34
  */
29
35
  export declare function getAllJidsFor(jid: string): string[];
30
- export declare function getMessageFromMe(chatJid: string, messageId: string): boolean | null;
36
+ /**
37
+ * Resolve a JID to its canonical form.
38
+ * If the input is a LID with a mapping, returns the phone JID.
39
+ * Otherwise returns the input as-is.
40
+ */
41
+ export declare function getCanonicalJid(jid: string): string;
42
+ /**
43
+ * Get the JID with the most recent message activity for a contact.
44
+ * Useful for routing sends to the active thread.
45
+ */
46
+ export declare function getActiveJid(jid: string): string;
47
+ /**
48
+ * Generic helper to deduplicate items by canonical JID.
49
+ * Merges items with the same canonical JID using a provided merge function.
50
+ */
51
+ export declare function mergeByCanonicalJid<T>(items: T[], getJid: (item: T) => string, merge: (existing: T, incoming: T) => T): T[];
52
+ export declare function getMessageFromMe(chatJid: string, messageId: string): {
53
+ fromMe: boolean;
54
+ chatJid: string;
55
+ } | null;
31
56
  export declare function resolveDisplayName(jid: string): string;
32
57
  export declare function getChats(nameFilter?: string, limit?: number): Record<string, unknown>[];
33
58
  export declare function getChat(jid: string): Record<string, unknown>;
34
59
  export declare function getMessages(jid: string, limit?: number): Record<string, unknown>[];
60
+ export declare function getRecentMessages(limit?: number): Record<string, unknown>[];
35
61
  export declare function searchMessages(query: string, jid?: string): Record<string, unknown>[];
36
62
  export declare function searchContacts(query: string): Record<string, unknown>[];
37
63
  export declare function getMessageContext(jid: string, messageId: string, count?: number): Record<string, unknown>;
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/db.js CHANGED
@@ -95,6 +95,14 @@ function createTables() {
95
95
  phone_jid TEXT NOT NULL
96
96
  );
97
97
  CREATE INDEX IF NOT EXISTS idx_jid_mapping_phone ON jid_mapping(phone_jid);
98
+
99
+ CREATE TABLE IF NOT EXISTS user_profile (
100
+ id INTEGER PRIMARY KEY CHECK (id = 1),
101
+ jid TEXT NOT NULL,
102
+ lid_jid TEXT,
103
+ name TEXT,
104
+ updated_at INTEGER NOT NULL DEFAULT (unixepoch())
105
+ );
98
106
  `);
99
107
  // Migration: add transcription column for voice note caching
100
108
  const hasCol = db.prepare(`SELECT COUNT(*) as cnt FROM pragma_table_info('messages') WHERE name = 'transcription'`).get();
@@ -146,6 +154,15 @@ function prepareStatements() {
146
154
  getContactName: db.prepare(`
147
155
  SELECT COALESCE(name, notify) AS display FROM contacts WHERE jid = ?
148
156
  `),
157
+ upsertUserProfile: db.prepare(`
158
+ INSERT INTO user_profile (id, jid, lid_jid, name, updated_at)
159
+ VALUES (1, @jid, @lid_jid, @name, unixepoch())
160
+ ON CONFLICT(id) DO UPDATE SET
161
+ jid = @jid,
162
+ lid_jid = @lid_jid,
163
+ name = @name,
164
+ updated_at = unixepoch()
165
+ `)
149
166
  };
150
167
  }
151
168
  // ─── Write Operations ───────────────────────────────────────────────
@@ -160,6 +177,13 @@ export function upsertChat(jid, name, conversationTs, unreadCount) {
160
177
  export function upsertContact(jid, name, notify) {
161
178
  stmts.upsertContact.run({ jid, name: name || null, notify: notify || null });
162
179
  }
180
+ export function upsertUserProfile(jid, lidJid, name) {
181
+ stmts.upsertUserProfile.run({ jid, lid_jid: lidJid || null, name: name || null });
182
+ }
183
+ export function getUserProfile() {
184
+ const row = db.prepare(`SELECT jid, lid_jid, name FROM user_profile WHERE id = 1`).get();
185
+ return row || null;
186
+ }
163
187
  function resolveSenderName(senderJid) {
164
188
  if (!senderJid)
165
189
  return null;
@@ -256,7 +280,19 @@ export function getUnreadChats(messagesPerChat = 5) {
256
280
  WHERE ch.unread_count > 0
257
281
  ORDER BY ch.conversation_ts DESC
258
282
  `).all();
259
- return chats.map(chat => {
283
+ // Merge LID chats into their phone JID counterparts to avoid duplicates.
284
+ const merged = mergeByCanonicalJid(chats, (c) => c.jid, (existing, incoming) => {
285
+ const canonicalJid = getCanonicalJid(existing.jid);
286
+ return {
287
+ jid: canonicalJid,
288
+ name: existing.name || incoming.name,
289
+ unread_count: (existing.unread_count || 0) + (incoming.unread_count || 0),
290
+ conversation_ts: Math.max(existing.conversation_ts, incoming.conversation_ts),
291
+ };
292
+ });
293
+ // Re-sort by conversation_ts after merging
294
+ const sorted = merged.sort((a, b) => b.conversation_ts - a.conversation_ts);
295
+ return sorted.map(chat => {
260
296
  const messages = getMessages(chat.jid, messagesPerChat);
261
297
  return {
262
298
  jid: chat.jid,
@@ -284,11 +320,65 @@ export function getAllJidsFor(jid) {
284
320
  }
285
321
  return jids;
286
322
  }
323
+ /**
324
+ * Resolve a JID to its canonical form.
325
+ * If the input is a LID with a mapping, returns the phone JID.
326
+ * Otherwise returns the input as-is.
327
+ */
328
+ export function getCanonicalJid(jid) {
329
+ if (jid.endsWith("@lid")) {
330
+ const phone = getPhoneJid(jid);
331
+ return phone || jid;
332
+ }
333
+ return jid;
334
+ }
335
+ /**
336
+ * Get the JID with the most recent message activity for a contact.
337
+ * Useful for routing sends to the active thread.
338
+ */
339
+ export function getActiveJid(jid) {
340
+ const jids = getAllJidsFor(jid);
341
+ if (jids.length === 1) {
342
+ return jids[0];
343
+ }
344
+ // Query for the JID with the most recent message
345
+ const placeholders = jids.map(() => "?").join(", ");
346
+ const row = db.prepare(`
347
+ SELECT chat_jid, MAX(timestamp) AS latest
348
+ FROM messages
349
+ WHERE chat_jid IN (${placeholders})
350
+ GROUP BY chat_jid
351
+ ORDER BY latest DESC
352
+ LIMIT 1
353
+ `).get(...jids);
354
+ return row?.chat_jid || jid;
355
+ }
356
+ /**
357
+ * Generic helper to deduplicate items by canonical JID.
358
+ * Merges items with the same canonical JID using a provided merge function.
359
+ */
360
+ export function mergeByCanonicalJid(items, getJid, merge) {
361
+ const map = new Map();
362
+ for (const item of items) {
363
+ const jid = getJid(item);
364
+ const canonical = getCanonicalJid(jid);
365
+ const existing = map.get(canonical);
366
+ if (existing) {
367
+ map.set(canonical, merge(existing, item));
368
+ }
369
+ else {
370
+ map.set(canonical, item);
371
+ }
372
+ }
373
+ return [...map.values()];
374
+ }
287
375
  export function getMessageFromMe(chatJid, messageId) {
288
- const row = db.prepare(`SELECT from_me FROM messages WHERE chat_jid = ? AND id = ?`).get(chatJid, messageId);
376
+ const jids = getAllJidsFor(chatJid);
377
+ const placeholders = jids.map(() => "?").join(", ");
378
+ const row = db.prepare(`SELECT from_me, chat_jid FROM messages WHERE chat_jid IN (${placeholders}) AND id = ?`).get(...jids, messageId);
289
379
  if (!row)
290
380
  return null;
291
- return row.from_me === 1;
381
+ return { fromMe: row.from_me === 1, chatJid: row.chat_jid };
292
382
  }
293
383
  // ─── Read Operations ────────────────────────────────────────────────
294
384
  export function resolveDisplayName(jid) {
@@ -330,30 +420,17 @@ export function getChats(nameFilter, limit = 100) {
330
420
  params.push(limit);
331
421
  const rows = db.prepare(sql).all(...params);
332
422
  // Merge LID chats into their phone JID counterparts to avoid duplicates.
333
- // If both a LID and phone JID exist for the same contact, keep the phone JID
334
- // entry with the latest timestamp from either.
335
- const merged = new Map();
336
- for (const r of rows) {
337
- let canonicalJid = r.jid;
338
- if (r.jid.endsWith("@lid")) {
339
- const phone = getPhoneJid(r.jid);
340
- if (phone)
341
- canonicalJid = phone;
342
- }
343
- const existing = merged.get(canonicalJid);
344
- if (existing) {
345
- // Merge: keep the latest timestamp, sum unread, prefer non-null name
346
- existing.effective_ts = Math.max(existing.effective_ts, r.effective_ts);
347
- existing.unread_count += r.unread_count || 0;
348
- if (!existing.name && r.name)
349
- existing.name = r.name;
350
- }
351
- else {
352
- merged.set(canonicalJid, { jid: canonicalJid, name: r.name, unread_count: r.unread_count, effective_ts: r.effective_ts });
353
- }
354
- }
423
+ const merged = mergeByCanonicalJid(rows, (r) => r.jid, (existing, incoming) => {
424
+ const canonical = getCanonicalJid(existing.jid);
425
+ return {
426
+ jid: canonical,
427
+ name: existing.name || incoming.name,
428
+ unread_count: (existing.unread_count || 0) + (incoming.unread_count || 0),
429
+ effective_ts: Math.max(existing.effective_ts, incoming.effective_ts),
430
+ };
431
+ });
355
432
  // Re-sort by effective_ts after merging
356
- const result = [...merged.values()].sort((a, b) => b.effective_ts - a.effective_ts);
433
+ const result = merged.sort((a, b) => b.effective_ts - a.effective_ts);
357
434
  return result.map((r) => ({
358
435
  jid: r.jid,
359
436
  name: r.name || (r.jid.endsWith("@lid") ? "Unknown" : fromJid(r.jid)),
@@ -404,6 +481,18 @@ export function getMessages(jid, limit = 50) {
404
481
  `).all(...jids, limit);
405
482
  return rows.map(formatMessageRow);
406
483
  }
484
+ export function getRecentMessages(limit = 10) {
485
+ const rows = db.prepare(`
486
+ SELECT id, chat_jid, from_me, sender_jid, sender_name, type, text, timestamp, has_media
487
+ FROM messages
488
+ ORDER BY timestamp DESC
489
+ LIMIT ?
490
+ `).all(limit);
491
+ return rows.map((r) => ({
492
+ ...formatMessageRow(r),
493
+ chat: getCanonicalJid(r.chat_jid),
494
+ }));
495
+ }
407
496
  export function searchMessages(query, jid) {
408
497
  let sql = `
409
498
  SELECT id, chat_jid, from_me, sender_jid, sender_name, type, text, timestamp, has_media
@@ -422,7 +511,7 @@ export function searchMessages(query, jid) {
422
511
  const rows = db.prepare(sql).all(...params);
423
512
  return rows.map((r) => ({
424
513
  ...formatMessageRow(r),
425
- chat: r.chat_jid,
514
+ chat: getCanonicalJid(r.chat_jid),
426
515
  }));
427
516
  }
428
517
  export function searchContacts(query) {
@@ -431,10 +520,22 @@ export function searchContacts(query) {
431
520
  FROM contacts
432
521
  WHERE name LIKE ? OR notify LIKE ? OR jid LIKE ?
433
522
  `).all(`%${query}%`, `%${query}%`, `%${query}%`);
434
- return rows.map((r) => ({
523
+ // Merge LID contacts into their phone JID counterparts to avoid duplicates.
524
+ const merged = mergeByCanonicalJid(rows, (r) => r.jid, (existing, incoming) => {
525
+ // Prefer phone JID over LID JID
526
+ const existingIsPhone = existing.jid.endsWith("@s.whatsapp.net");
527
+ const incomingIsPhone = incoming.jid.endsWith("@s.whatsapp.net");
528
+ const jid = incomingIsPhone && !existingIsPhone ? incoming.jid : existing.jid;
529
+ return {
530
+ jid,
531
+ name: existing.name || incoming.name,
532
+ notify: existing.notify || incoming.notify,
533
+ };
534
+ });
535
+ return merged.map((r) => ({
435
536
  jid: r.jid,
436
537
  name: r.name || r.notify || fromJid(r.jid),
437
- phone: fromJid(r.jid),
538
+ phone: fromJid(getCanonicalJid(r.jid)),
438
539
  isGroup: r.jid.endsWith("@g.us"),
439
540
  }));
440
541
  }
@@ -498,12 +599,14 @@ export function saveTranscription(chatJid, messageId, transcription) {
498
599
  db.prepare(`UPDATE messages SET transcription = ? WHERE chat_jid IN (${placeholders}) AND id = ?`).run(transcription, ...jids, messageId);
499
600
  }
500
601
  export function getLastMessageKey(jid) {
602
+ const jids = getAllJidsFor(jid);
603
+ const placeholders = jids.map(() => "?").join(", ");
501
604
  const row = db.prepare(`
502
605
  SELECT id, from_me, chat_jid, timestamp FROM messages
503
- WHERE chat_jid = ?
606
+ WHERE chat_jid IN (${placeholders})
504
607
  ORDER BY timestamp DESC
505
608
  LIMIT 1
506
- `).get(jid);
609
+ `).get(...jids);
507
610
  if (!row)
508
611
  return null;
509
612
  return { id: row.id, fromMe: row.from_me === 1, remoteJid: row.chat_jid, timestamp: row.timestamp };
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type ResourceSubscriptionStore } from "./resources.js";
2
+ export type HttpServerController = {
3
+ port: number;
4
+ host: string;
5
+ closeHttpServer: () => Promise<void>;
6
+ };
7
+ export declare function createHttpServer(port: number, host: string, apiKey: string, subscriptions?: ResourceSubscriptionStore): Promise<HttpServerController>;
8
+ //# sourceMappingURL=http-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.d.ts","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAOA,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,gBAAgB,CAAC;AASxB,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC,CAAC;AA+JF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,yBAA6D,GAC3E,OAAO,CAAC,oBAAoB,CAAC,CAoC/B"}
@@ -0,0 +1,198 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { createServer } from "node:http";
3
+ import express from "express";
4
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
6
+ import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
7
+ import { registerTools } from "./tools.js";
8
+ import { createResourceSubscriptionStore, registerResourceSubscriptionHandlers, registerResources, } from "./resources.js";
9
+ function parseBearerToken(authorization) {
10
+ if (typeof authorization !== "string") {
11
+ return undefined;
12
+ }
13
+ const [scheme, token] = authorization.split(" ");
14
+ if (scheme !== "Bearer" || !token) {
15
+ return undefined;
16
+ }
17
+ return token;
18
+ }
19
+ function isLoopbackHost(host) {
20
+ return host === "127.0.0.1" || host === "localhost" || host === "::1";
21
+ }
22
+ function createHostValidationMiddleware(host) {
23
+ if (!isLoopbackHost(host)) {
24
+ return (_req, _res, next) => {
25
+ next();
26
+ };
27
+ }
28
+ const allowedHosts = new Set(["localhost", "127.0.0.1", "[::1]"]);
29
+ return (req, res, next) => {
30
+ const hostHeader = req.headers.host;
31
+ if (!hostHeader) {
32
+ res.status(403).json({
33
+ jsonrpc: "2.0",
34
+ error: { code: -32000, message: "Missing Host header" },
35
+ id: null,
36
+ });
37
+ return;
38
+ }
39
+ let hostname;
40
+ try {
41
+ hostname = new URL(`http://${hostHeader}`).hostname;
42
+ }
43
+ catch {
44
+ res.status(403).json({
45
+ jsonrpc: "2.0",
46
+ error: { code: -32000, message: `Invalid Host header: ${hostHeader}` },
47
+ id: null,
48
+ });
49
+ return;
50
+ }
51
+ if (!allowedHosts.has(hostname)) {
52
+ res.status(403).json({
53
+ jsonrpc: "2.0",
54
+ error: { code: -32000, message: `Invalid Host: ${hostname}` },
55
+ id: null,
56
+ });
57
+ return;
58
+ }
59
+ next();
60
+ };
61
+ }
62
+ function createBearerAuthMiddleware(apiKey) {
63
+ return (req, res, next) => {
64
+ const token = parseBearerToken(req.headers.authorization);
65
+ if (token !== apiKey) {
66
+ res.status(401).json({ error: "Unauthorized" });
67
+ return;
68
+ }
69
+ next();
70
+ };
71
+ }
72
+ function wirePostRoute(app, sessions, subscriptions) {
73
+ app.post("/mcp", async (req, res) => {
74
+ try {
75
+ const sessionId = req.header("mcp-session-id");
76
+ const existing = sessionId ? sessions.get(sessionId) : undefined;
77
+ if (existing) {
78
+ await existing.transport.handleRequest(req, res, req.body);
79
+ return;
80
+ }
81
+ if (!sessionId && isInitializeRequest(req.body)) {
82
+ const server = new McpServer({ name: "whatsapp", version: "1.0.0" }, { capabilities: { resources: { subscribe: true, listChanged: true } } });
83
+ registerTools(server);
84
+ registerResources(server);
85
+ const transport = new StreamableHTTPServerTransport({
86
+ sessionIdGenerator: () => randomUUID(),
87
+ onsessioninitialized: (id) => {
88
+ sessions.set(id, { transport, server });
89
+ subscriptions.registerSession(id, (uri) => server.server.sendResourceUpdated({ uri }));
90
+ registerResourceSubscriptionHandlers(server, id, subscriptions);
91
+ },
92
+ });
93
+ transport.onclose = () => {
94
+ const id = transport.sessionId;
95
+ if (id) {
96
+ sessions.delete(id);
97
+ subscriptions.removeSession(id);
98
+ }
99
+ };
100
+ await server.connect(transport);
101
+ await transport.handleRequest(req, res, req.body);
102
+ return;
103
+ }
104
+ res.status(400).json({
105
+ jsonrpc: "2.0",
106
+ error: {
107
+ code: -32000,
108
+ message: "Bad Request: No valid session ID provided",
109
+ },
110
+ id: null,
111
+ });
112
+ }
113
+ catch (error) {
114
+ console.error("Error handling MCP POST:", error);
115
+ if (!res.headersSent) {
116
+ res.status(500).json({
117
+ jsonrpc: "2.0",
118
+ error: { code: -32603, message: "Internal server error" },
119
+ id: null,
120
+ });
121
+ }
122
+ }
123
+ });
124
+ }
125
+ function wireGetAndDeleteRoutes(app, sessions) {
126
+ const handler = async (req, res) => {
127
+ const sessionId = req.header("mcp-session-id");
128
+ if (!sessionId) {
129
+ res.status(400).send("Missing Mcp-Session-Id header");
130
+ return;
131
+ }
132
+ const session = sessions.get(sessionId);
133
+ if (!session) {
134
+ res.status(404).send("Unknown session");
135
+ return;
136
+ }
137
+ await session.transport.handleRequest(req, res);
138
+ };
139
+ app.get("/mcp", handler);
140
+ app.delete("/mcp", handler);
141
+ }
142
+ export async function createHttpServer(port, host, apiKey, subscriptions = createResourceSubscriptionStore()) {
143
+ const sessions = new Map();
144
+ const app = express();
145
+ app.use(express.json({ limit: "1mb" }));
146
+ app.use(createHostValidationMiddleware(host));
147
+ app.use(createBearerAuthMiddleware(apiKey));
148
+ wirePostRoute(app, sessions, subscriptions);
149
+ wireGetAndDeleteRoutes(app, sessions);
150
+ const httpServer = createServer(app);
151
+ await new Promise((resolve, reject) => {
152
+ httpServer.once("error", reject);
153
+ httpServer.listen(port, host, () => {
154
+ httpServer.off("error", reject);
155
+ resolve();
156
+ });
157
+ });
158
+ const address = httpServer.address();
159
+ if (!address || typeof address === "string") {
160
+ throw new Error("Failed to resolve HTTP listening address");
161
+ }
162
+ const closeHttpServer = async () => {
163
+ await closeSessions(sessions, subscriptions);
164
+ await closeNodeServer(httpServer);
165
+ };
166
+ return {
167
+ port: address.port,
168
+ host,
169
+ closeHttpServer,
170
+ };
171
+ }
172
+ async function closeSessions(sessions, subscriptions) {
173
+ const states = [...sessions.values()];
174
+ const ids = [...sessions.keys()];
175
+ sessions.clear();
176
+ for (const id of ids) {
177
+ subscriptions.removeSession(id);
178
+ }
179
+ for (const { transport, server } of states) {
180
+ await transport.close();
181
+ await server.close();
182
+ }
183
+ }
184
+ async function closeNodeServer(server) {
185
+ if (!server.listening) {
186
+ return;
187
+ }
188
+ await new Promise((resolve, reject) => {
189
+ server.close((error) => {
190
+ if (error) {
191
+ reject(error);
192
+ return;
193
+ }
194
+ resolve();
195
+ });
196
+ });
197
+ }
198
+ //# sourceMappingURL=http-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAiC,MAAM,WAAW,CAAC;AACxE,OAAO,OAA2D,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,iBAAiB,GAElB,MAAM,gBAAgB,CAAC;AAexB,SAAS,gBAAgB,CAAC,aAA4C;IACpE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,CAAC;AACxE,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY;IAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAa,EAAE,IAAc,EAAE,IAAkB,EAAQ,EAAE;YACjE,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAElE,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE;gBACvD,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,wBAAwB,UAAU,EAAE,EAAE;gBACtE,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,QAAQ,EAAE,EAAE;gBAC7D,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAc;IAChD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAQ,EAAE;QAC/D,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC1D,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,GAAoB,EAAE,QAAoB,EAAE,aAAwC;IACzG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEjE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC3D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EACtC,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CACxE,CAAC;gBACF,aAAa,CAAC,MAAM,CAAC,CAAC;gBACtB,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBAE1B,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;oBAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;oBACtC,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE;wBAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;wBACxC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;wBACvF,oCAAoC,CAAC,MAAM,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;oBAClE,CAAC;iBACF,CAAC,CAAC;gBAEH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;oBACvB,MAAM,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC;oBAC/B,IAAI,EAAE,EAAE,CAAC;wBACP,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACpB,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO;YACT,CAAC;YAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,CAAC,KAAK;oBACZ,OAAO,EAAE,2CAA2C;iBACrD;gBACD,EAAE,EAAE,IAAI;aACT,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;oBACzD,EAAE,EAAE,IAAI;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAoB,EAAE,QAAoB;IACxE,MAAM,OAAO,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QACnE,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,IAAY,EACZ,MAAc,EACd,gBAA2C,+BAA+B,EAAE;IAE5E,MAAM,QAAQ,GAAe,IAAI,GAAG,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,GAAG,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5C,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC5C,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;YACjC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;QAChD,MAAM,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC7C,MAAM,eAAe,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI;QACJ,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAoB,EAAE,aAAwC;IACzF,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QAC3C,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAsB;IACnD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YAED,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -25,13 +25,16 @@ export interface ImportResult {
25
25
  namelessChatsRemaining: number;
26
26
  }
27
27
  /**
28
- * Import contacts from a VCF file into the database.
28
+ * Import contacts from a VCF file or string into the database.
29
29
  * Can be called from the MCP tool or standalone CLI.
30
30
  *
31
31
  * @param dbInstance - An open better-sqlite3 database instance.
32
32
  * When called from the MCP server, pass the shared DB.
33
33
  * When called from CLI, opens its own connection.
34
- * @param vcfPath - Path to the .vcf file. Defaults to contacts/contacts.vcf.
34
+ * @param vcfContent - Optional VCF content as a string. If provided, parses this directly.
35
+ * If not provided, reads from vcfPath (defaults to contacts/contacts.vcf).
36
+ * @param vcfPath - Path to the .vcf file. Only used if vcfContent is not provided.
37
+ * Defaults to contacts/contacts.vcf.
35
38
  */
36
- export declare function importContactsFromVcf(dbInstance: Database.Database, vcfPath?: string): ImportResult;
39
+ export declare function importContactsFromVcf(dbInstance: Database.Database, vcfContent?: string, vcfPath?: string): ImportResult;
37
40
  //# sourceMappingURL=import-contacts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-contacts.d.ts","sourceRoot":"","sources":["../src/import-contacts.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAuFtC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CA2GnG"}
1
+ {"version":3,"file":"import-contacts.d.ts","sourceRoot":"","sources":["../src/import-contacts.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAuFtC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAuHxH"}