@lizzythelizard/whatsapp-mcp 0.1.3 → 0.1.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2F,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAGtJ,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,WAAW,EAAE,MAAM,MAAM,CAAA;CAC1B;AAID,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAOxE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2F,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAEtJ,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,WAAW,EAAE,MAAM,MAAM,CAAA;CAC1B;AAID,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAOxE"}
package/dist/auth.js CHANGED
@@ -7,6 +7,7 @@ export function createExportableAuth(input) {
7
7
  toAuthState: () => toString({ creds, keys }),
8
8
  };
9
9
  }
10
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
10
11
  function fromString(str) {
11
12
  if (!str)
12
13
  return undefined;
package/dist/auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,aAAa,EAAqB,KAAK,EAAsC,MAAM,yBAAyB,CAAA;AAStJ,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,UAAU,CAAiB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IAC/F,OAAO;QACL,KAAK;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC,EAAE;QACtF,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC7C,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAI,GAAuB;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAM,CAAA;AACjD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,MAAM,CAAoC,IAAO,EAAE,GAAa,EAAE,IAA4B;IACrG,OAAO,GAAG,CAAC,MAAM,CAAuC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,UAAU,CAAuB,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAA;QACtB,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,KAAgD,CAAA;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC1E,MAAM,UAAU,GAAG,SAA4C,CAAA;YAC/D,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAA;QACtB,CAAC;aACI,CAAC;YACJ,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC;AAED,SAAS,MAAM,CAAC,IAAmB,EAAE,IAA4B;IAC/D,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAmC,CAAC,CAAA;QAC9D,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK;gBACV,gEAAgE;gBAC9D,OAAO,IAAI,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAA;iBAC7B,CAAC;gBACJ,IAAI,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,aAAa,EAAqB,KAAK,EAAsC,MAAM,yBAAyB,CAAA;AAQtJ,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAiB,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;IACjG,OAAO;QACL,KAAK;QACL,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC,EAAE;QACtF,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KAC7C,CAAA;AACH,CAAC;AAED,6EAA6E;AAC7E,SAAS,UAAU,CAAI,GAAuB;IAC5C,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,OAAO,CAAM,CAAA;AACjD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;AAClD,CAAC;AAED,SAAS,MAAM,CAAoC,IAAO,EAAE,GAAa,EAAE,IAA4B;IACrG,OAAO,GAAG,CAAC,MAAM,CAAuC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,UAAU,CAAuB,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAA;QACtB,IAAI,IAAI,KAAK,oBAAoB,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,KAAgD,CAAA;YACnE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;YAC1E,MAAM,UAAU,GAAG,SAA4C,CAAA;YAC/D,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAA;QACtB,CAAC;aACI,CAAC;YACJ,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAA;QACjB,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC;AAED,SAAS,MAAM,CAAC,IAAmB,EAAE,IAA4B;IAC/D,KAAK,MAAM,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,QAAmC,CAAC,CAAA;QAC9D,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;YAC9B,IAAI,CAAC,KAAK;gBACR,gEAAgE;gBAChE,OAAO,IAAI,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,CAAA;iBAC7B,CAAC;gBACJ,IAAI,CAAC,GAAG,QAAQ,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/index.js CHANGED
@@ -1,18 +1,41 @@
1
1
  #!/usr/bin/env node
2
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
- import { createStore } from "./store.js";
5
- import { createSyncHandler } from "./sync.js";
2
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
3
+ import pkg from '../package.json' with { type: 'json' };
4
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
+ import { createStore } from './store.js';
6
+ import { createHandler } from './sync.js';
7
+ import { promises as fsp } from 'fs';
8
+ import { registerWhatsAppTools } from './tools.js';
9
+ const dataDir = process.env.DATA_DIR ?? './data';
10
+ async function readDataFromFile() {
11
+ const canAccess = await fsp.access(dataDir).then(() => true).catch(() => false);
12
+ if (!canAccess)
13
+ return undefined;
14
+ const chats = await fsp.readFile(`${dataDir}/chats.json`, 'utf-8');
15
+ const messages = await fsp.readFile(`${dataDir}/messages.json`, 'utf-8');
16
+ const contacts = await fsp.readFile(`${dataDir}/contacts.json`, 'utf-8');
17
+ const auth = await fsp.readFile(`${dataDir}/auth.json`, 'utf-8');
18
+ return { chats, messages, contacts, auth };
19
+ }
20
+ async function writeDataToFile(data) {
21
+ await fsp.mkdir(dataDir, { recursive: true });
22
+ await fsp.writeFile(`${dataDir}/chats.json`, data.chats, 'utf-8');
23
+ await fsp.writeFile(`${dataDir}/messages.json`, data.messages, 'utf-8');
24
+ await fsp.writeFile(`${dataDir}/contacts.json`, data.contacts, 'utf-8');
25
+ await fsp.writeFile(`${dataDir}/auth.json`, data.auth, 'utf-8');
26
+ }
6
27
  async function main() {
7
- const server = new McpServer({ name: "whatsapp-mcp", version: "0.1.0" });
28
+ const server = new McpServer({ name: pkg.name, version: pkg.version });
8
29
  const transport = new StdioServerTransport();
9
- const whatsappStore = createStore();
10
- const whatsappSync = createSyncHandler(whatsappStore);
30
+ const inputData = await readDataFromFile();
31
+ const whatsappStore = createStore(writeDataToFile, inputData);
32
+ const whatsappSync = createHandler(whatsappStore);
33
+ registerWhatsAppTools(server, whatsappStore, whatsappSync);
11
34
  await server.connect(transport);
12
- console.info("whatsapp-mcp server running on stdio");
35
+ console.info('whatsapp-mcp server running on stdio');
13
36
  }
14
37
  main().catch((error) => {
15
- console.error("Server error:", error);
38
+ console.error('Server error:', error);
16
39
  process.exit(1);
17
40
  });
18
41
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,WAAW,EAAE,CAAC;IACpC,MAAM,YAAY,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;AACvD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts CHANGED
@@ -1,12 +1,26 @@
1
- import makeWASocket, { AuthenticationState, Chat, Contact, WAMessage } from '@whiskeysockets/baileys';
1
+ import { AuthenticationState, BaileysEventMap, Chat, Contact, WAMessage, WAMessageKey } from '@whiskeysockets/baileys';
2
+ export interface ChatWithId extends Chat {
3
+ id: string;
4
+ }
5
+ export interface ContactWithId extends Contact {
6
+ id: string;
7
+ }
8
+ export interface MessageWithId extends WAMessage {
9
+ key: WAMessageKey & {
10
+ id: string;
11
+ };
12
+ }
13
+ export interface Emitter {
14
+ process: (processor: (e: Partial<BaileysEventMap>) => void) => void;
15
+ }
2
16
  export interface WhatsAppStore {
3
- bind: (ev: ReturnType<typeof makeWASocket>['ev']) => void;
4
- getChats: () => Chat[];
5
- getChat: (id: string) => Chat | undefined;
6
- getContacts: () => Contact[];
7
- getContact: (id: string) => Contact | undefined;
8
- getMessages: () => WAMessage[];
9
- getMessage: (id: string) => WAMessage | undefined;
17
+ bind: (ev: Emitter) => void;
18
+ getChats: () => ChatWithId[];
19
+ getChat: (id: string) => ChatWithId | undefined;
20
+ getContacts: () => ContactWithId[];
21
+ getContact: (id: string) => ContactWithId | undefined;
22
+ getMessages: () => MessageWithId[];
23
+ getMessage: (id: string) => MessageWithId | undefined;
10
24
  reset: () => void;
11
25
  getAuth: () => AuthenticationState;
12
26
  }
@@ -16,5 +30,5 @@ export interface DataStore {
16
30
  messages: string;
17
31
  auth: string;
18
32
  }
19
- export declare function createStore(saveCb?: (data: DataStore) => void, initialData?: DataStore): WhatsAppStore;
33
+ export declare function createStore(saveCb?: (data: DataStore) => Promise<void>, initialData?: DataStore): WhatsAppStore;
20
34
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAE,mBAAmB,EAA+B,IAAI,EAAE,OAAO,EAAE,SAAS,EAAgB,MAAM,yBAAyB,CAAA;AAGhJ,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;IACzD,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAA;IACtB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAA;IACzC,WAAW,EAAE,MAAM,OAAO,EAAE,CAAA;IAC5B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC/C,WAAW,EAAE,MAAM,SAAS,EAAE,CAAA;IAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAA;IACjD,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,MAAM,mBAAmB,CAAA;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAG,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAaD,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,CA8HtG"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAc,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGlI,MAAM,WAAW,UAAW,SAAQ,IAAI;IACtC,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,GAAG,EAAE,YAAY,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CACnC;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,KAAK,IAAI,CAAA;CACpE;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3B,QAAQ,EAAE,MAAM,UAAU,EAAE,CAAA;IAC5B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAA;IAC/C,WAAW,EAAE,MAAM,aAAa,EAAE,CAAA;IAClC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAA;IACrD,WAAW,EAAE,MAAM,aAAa,EAAE,CAAA;IAClC,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,aAAa,GAAG,SAAS,CAAA;IACrD,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,MAAM,mBAAmB,CAAA;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb;AAYD,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,aAAa,CAqI/G"}
package/dist/store.js CHANGED
@@ -10,7 +10,7 @@ function toString(map) {
10
10
  return JSON.stringify(map, BufferJSON.replacer);
11
11
  }
12
12
  export function createStore(saveCb, initialData) {
13
- //TODO: Load initial states from somewhere
13
+ // TODO: Load initial states from somewhere
14
14
  const chats = fromString(initialData?.chats);
15
15
  const contacts = fromString(initialData?.contacts);
16
16
  const messages = fromString(initialData?.messages);
@@ -57,7 +57,7 @@ export function createStore(saveCb, initialData) {
57
57
  }
58
58
  function deleteMessage(jid) {
59
59
  for (const [id, m] of messages.entries()) {
60
- if (m.key?.remoteJid === jid) {
60
+ if (m.key.remoteJid === jid) {
61
61
  messages.delete(id);
62
62
  }
63
63
  }
@@ -65,12 +65,18 @@ export function createStore(saveCb, initialData) {
65
65
  function save() {
66
66
  if (!saveCb)
67
67
  return;
68
- saveCb({
69
- chats: toString(chats), contacts: toString(contacts), messages: toString(messages), auth: auth.toAuthState()
68
+ const data = {
69
+ chats: toString(chats),
70
+ contacts: toString(contacts),
71
+ messages: toString(messages),
72
+ auth: auth.toAuthState(),
73
+ };
74
+ void saveCb(data).catch((error) => {
75
+ console.error('Error saving WhatsApp store data:', error);
70
76
  });
71
77
  }
72
78
  function process(e) {
73
- //Store data if no new events come in for 1 second
79
+ // Store data if no new events come in for 1 second
74
80
  if (saveTimeout)
75
81
  clearTimeout(saveTimeout);
76
82
  if (saveCb)
@@ -119,20 +125,20 @@ export function createStore(saveCb, initialData) {
119
125
  console.error(`Error processing WhatsApp store event: ${error instanceof Error ? error.message : String(error)}`);
120
126
  }
121
127
  return {
122
- bind: (ev) => ev.process(process),
128
+ bind: (ev) => { ev.process(process); },
123
129
  getChats: () => Array.from(chats.values()),
124
- getChat: (id) => chats.get(id),
130
+ getChat: id => chats.get(id),
125
131
  getContacts: () => Array.from(contacts.values()),
126
- getContact: (id) => contacts.get(id),
132
+ getContact: id => contacts.get(id),
127
133
  getMessages: () => Array.from(messages.values()),
128
- getMessage: (id) => messages.get(id),
134
+ getMessage: id => messages.get(id),
129
135
  reset: () => {
130
136
  chats.clear();
131
137
  contacts.clear();
132
138
  messages.clear();
133
139
  auth = createExportableAuth(undefined);
134
140
  },
135
- getAuth: () => auth
141
+ getAuth: () => auth,
136
142
  };
137
143
  }
138
144
  //# sourceMappingURL=store.js.map
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/dist/sync.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { WAMessage } from '@whiskeysockets/baileys';
1
2
  import { createStore } from './store.js';
2
3
  export type SyncStatus = {
3
4
  type: 'connecting';
@@ -10,9 +11,12 @@ export type SyncStatus = {
10
11
  type: 'closed';
11
12
  error?: Error;
12
13
  };
13
- export interface SyncHandler {
14
+ export interface WhatsAppHandler {
14
15
  close: () => void;
15
16
  getStatus: () => SyncStatus;
17
+ sendMessage: (jid: string, text: string) => Promise<WAMessage>;
18
+ setRead: (jid: string, read: boolean) => Promise<void>;
19
+ setArchived: (jid: string, archived: boolean) => Promise<void>;
16
20
  }
17
- export declare function createSyncHandler(store: ReturnType<typeof createStore>): SyncHandler;
21
+ export declare function createHandler(store: ReturnType<typeof createStore>): WhatsAppHandler;
18
22
  //# sourceMappingURL=sync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,UAAU,GAAG;IAAC,IAAI,EAAE,YAAY,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAC,CAAA;AAElI,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,SAAS,EAAE,MAAM,UAAU,CAAA;CAC5B;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,WAAW,CAoEpF"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,OAAqB,EAAyC,SAAS,EAAS,MAAM,yBAAyB,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAE1I,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,SAAS,EAAE,MAAM,UAAU,CAAA;IAC3B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,eAAe,CAkHpF"}
package/dist/sync.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import makeWASocket from '@whiskeysockets/baileys';
2
- export function createSyncHandler(store) {
2
+ export function createHandler(store) {
3
3
  let state = { type: 'connecting' };
4
4
  let sock;
5
5
  const browser = ['Gutschi.site', 'Desktop', '1.0.0'];
@@ -46,7 +46,7 @@ export function createSyncHandler(store) {
46
46
  function startAgainAfterLogin() {
47
47
  sock = makeWASocket({ auth: store.getAuth(), browser, logger: baileysLogger, markOnlineOnConnect: false, syncFullHistory: true, emitOwnEvents: true });
48
48
  sock.ev.on('connection.update', (update) => { connectionUpdateAfterLogin(update, onClosed, onError); });
49
- //wait untill no new messages are received for 2 seconds, then set state to ready
49
+ // wait untill no new messages are received for 2 seconds, then set state to ready
50
50
  let timeout = setTimeout(() => state = { type: 'ready' }, 2000);
51
51
  sock.ev.process(() => {
52
52
  clearTimeout(timeout);
@@ -54,9 +54,68 @@ export function createSyncHandler(store) {
54
54
  });
55
55
  store.bind(sock.ev);
56
56
  }
57
+ async function sendMessage(jid, message) {
58
+ if (state.type === 'connecting')
59
+ throw new Error('Server still connecting, please wait');
60
+ if (state.type === 'closed')
61
+ throw new Error('Connection closed, please restart server');
62
+ if (state.type === 'needAuth')
63
+ throw new Error('Authentication needed, please authenticate yourself first');
64
+ if (sock === undefined)
65
+ throw new Error(`No Socket defined but state is ${state.type}. This is invalid, please restart server`);
66
+ const result = await sock.sendMessage(jid, { text: message });
67
+ if (!result)
68
+ throw new Error(`Failed to send message to ${jid}`);
69
+ return result;
70
+ }
71
+ async function setArchived(jid, archived) {
72
+ if (state.type === 'connecting')
73
+ throw new Error('Server still connecting, please wait');
74
+ if (state.type === 'closed')
75
+ throw new Error('Connection closed, please restart server');
76
+ if (state.type === 'needAuth')
77
+ throw new Error('Authentication needed, please authenticate yourself first');
78
+ if (sock === undefined)
79
+ throw new Error(`No Socket defined but state is ${state.type}. This is invalid, please restart server`);
80
+ const chat = store.getChat(jid);
81
+ if (!chat)
82
+ throw new Error(`No chat found for ${jid}`);
83
+ const lastMessage = chat.messages?.[0].message;
84
+ if (!lastMessage) {
85
+ await sock.chatModify({ archive: archived, lastMessages: [] }, jid);
86
+ return;
87
+ }
88
+ if (!lastMessage.key)
89
+ throw new Error(`Last message for ${jid} has no key, cannot archive chat`);
90
+ await sock.chatModify({ archive: archived, lastMessages: [lastMessage] }, jid);
91
+ }
92
+ async function setRead(jid, read) {
93
+ if (state.type === 'connecting')
94
+ throw new Error('Server still connecting, please wait');
95
+ if (state.type === 'closed')
96
+ throw new Error('Connection closed, please restart server');
97
+ if (state.type === 'needAuth')
98
+ throw new Error('Authentication needed, please authenticate yourself first');
99
+ if (sock === undefined)
100
+ throw new Error(`No Socket defined but state is ${state.type}. This is invalid, please restart server`);
101
+ const chat = store.getChat(jid);
102
+ if (!chat)
103
+ throw new Error(`No chat found for ${jid}`);
104
+ const lastMessage = chat.messages?.[0].message;
105
+ if (!lastMessage) {
106
+ await sock.chatModify({ markRead: read, lastMessages: [] }, jid);
107
+ return;
108
+ }
109
+ if (!lastMessage.key)
110
+ throw new Error(`Last message for ${jid} has no key, cannot mark chat as unread`);
111
+ await sock.chatModify({ markRead: read, lastMessages: [lastMessage] }, jid);
112
+ }
57
113
  start();
58
114
  return {
59
115
  getStatus: () => state,
116
+ sendMessage: sendMessage,
117
+ setArchived: setArchived,
118
+ setRead: setRead,
60
119
  close: close,
61
120
  };
62
121
  }
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA,OAAO,YAAyE,MAAM,yBAAyB,CAAA;AAa/G,MAAM,UAAU,aAAa,CAAC,KAAqC;IACjE,IAAI,KAAK,GAAe,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;IAC9C,IAAI,IAAiD,CAAA;IACrD,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAyB,CAAA;IAE5E,SAAS,OAAO,CAAC,KAAc;QAC7B,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACrE,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAA;QAC1D,KAAK,CAAC,GAAG,CAAC,CAAA;IACZ,CAAC;IAED,SAAS,KAAK,CAAC,KAAa;QAC1B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,IAAI,CAAA;YACpB,IAAI,GAAG,SAAS,CAAA;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;QACD,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC;IAED,SAAS,QAAQ,CAAC,KAAa;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;YAC5D,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;YAC1B,OAAM;QACR,CAAC;QACD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAA;YAClF,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,KAAK,EAAE,CAAA;YACP,OAAM;QACR,CAAC;QACD,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAA;YACxE,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,oBAAoB,EAAE,CAAA;YACtB,OAAM;QACR,CAAC;QACD,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IACnC,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACtJ,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;YACzC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAC/B,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EACtC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACpC,CAAC,CACA,CAAA;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED,SAAS,oBAAoB;QAC3B,IAAI,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QACtJ,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACtG,kFAAkF;QAClF,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACnB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,OAAe;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAC3G,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAA;QAC/H,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAC7D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,EAAE,CAAC,CAAA;QAChE,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,QAAiB;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAC3G,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAA;QAC/H,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;YACnE,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,kCAAkC,CAAC,CAAA;QAChG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,WAAsE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAC3I,CAAC;IAED,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,IAAa;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QAC3G,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,IAAI,0CAA0C,CAAC,CAAA;QAC/H,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;YAChE,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,yCAAyC,CAAC,CAAA;QACvG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,WAAsE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IACxI,CAAC;IACD,KAAK,EAAE,CAAA;IAEP,OAAO;QACL,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK;QACtB,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,KAAK;KACb,CAAA;AACH,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa;IAC1B,KAAK,EAAE,GAAG,EAAE,GAAe,CAAC;IAC5B,KAAK,EAAE,GAAG,EAAE,GAAe,CAAC;IAC5B,IAAI,EAAE,GAAG,EAAE,GAAe,CAAC;IAC3B,IAAI,EAAE,GAAG,EAAE,GAAe,CAAC;IAC3B,KAAK,EAAE,GAAG,EAAE,GAAe,CAAC;CAC7B,CAAA;AAED,SAAS,gBAAgB,CAAC,MAAgC,EAAE,OAAgC,EAAE,IAA2B,EAAE,OAAoB;IAC7I,IAAI,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;SAC3B,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM;QAAE,OAAO,EAAE,EAAE,CAAA;SAC7C,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC,sCAAsC,CAAC,CAAC;;QAC7E,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3E,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IACjD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC3C,IAAI,CAAC,CAAC,QAAQ,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAC3E,IAAI,CAAC,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAA;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IACjD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,0BAA0B,CAAC,MAAgC,EAAE,OAAgC,EAAE,KAA6B;IACnI,IAAI,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC,CAAA;SACtF,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC,CAAC,sCAAsC,CAAC,CAAC;SAC5E,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC,sCAAsC,CAAC,CAAC;;QAC7E,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC"}
package/dist/tools.d.ts CHANGED
@@ -1,2 +1,5 @@
1
- export {};
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp';
2
+ import { WhatsAppStore } from './store.js';
3
+ import { WhatsAppHandler } from './sync.js';
4
+ export declare function registerWhatsAppTools(server: McpServer, store: WhatsAppStore, sync: WhatsAppHandler): void;
2
5
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,sCAAsC,CAAA;AAClF,OAAO,EAA4C,aAAa,EAAE,MAAM,YAAY,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAK3C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,QAMnG"}
package/dist/tools.js CHANGED
@@ -1,65 +1,74 @@
1
- export {};
2
- /*
1
+ import { ResourceTemplate } from '@modelcontextprotocol/sdk/server/mcp';
2
+ import z from 'zod';
3
+ export function registerWhatsAppTools(server, store, sync) {
4
+ registerChatsResources(server, store);
5
+ registerContactsResources(server, store);
6
+ registerMessagesResources(server, store);
7
+ registerMessageTools(server, sync);
8
+ registerChatTools(server, sync);
9
+ }
10
+ function registerChatsResources(server, store) {
11
+ server.registerResource('chats', 'chats://app', { title: 'All WhatsApp Chats', description: 'List WhatsApp chats', mimeType: 'application/json' }, () => toReadResource(store.getChats().flatMap(chatToReadResource)));
12
+ server.registerResource('chat', new ResourceTemplate('chats://app/{chatId}', { list: () => toListResource(store.getChats().flatMap(chatToListResource)) }), { title: 'A single WhatsApp Chat', description: 'Details of a single WhatsApp chat', mimeType: 'application/json' }, (_, { chatId }) => toReadResource(chatToReadResource(store.getChat(chatId))));
13
+ }
14
+ const chatToReadResource = (chat) => chat
15
+ ? [{ uri: `chats://app/${chat.id}`, mimeType: 'application/json', text: JSON.stringify(chat) }]
16
+ : [];
17
+ const chatToListResource = (chat) => chat
18
+ ? [{ uri: `chats://app/${chat.id}`, name: chat.name ?? chat.id }]
19
+ : [];
20
+ function registerContactsResources(server, store) {
21
+ server.registerResource('contacts', 'contacts://app', { title: 'All WhatsApp Contacts', description: 'List WhatsApp contacts', mimeType: 'application/json' }, () => toReadResource(store.getContacts().flatMap(contactToReadResource)));
22
+ server.registerResource('contact', new ResourceTemplate('contacts://app/{contactId}', { list: () => toListResource(store.getContacts().flatMap(contactToListResource)) }), { title: 'A single WhatsApp Contact', description: 'Details of a single WhatsApp contact', mimeType: 'application/json' }, (_, { contactId }) => toReadResource(contactToReadResource(store.getContact(contactId))));
23
+ }
24
+ const contactToReadResource = (contact) => contact
25
+ ? [{ uri: `contacts://app/${contact.id}`, mimeType: 'application/json', text: JSON.stringify(contact) }]
26
+ : [];
27
+ const contactToListResource = (contact) => contact
28
+ ? [{ uri: `contacts://app/${contact.id}`, name: contact.name ?? contact.id }]
29
+ : [];
30
+ function registerMessagesResources(server, store) {
31
+ server.registerResource('messages', 'messages://app', { title: 'All WhatsApp Messages', description: 'List WhatsApp messages', mimeType: 'application/json' }, () => toReadResource(store.getMessages().flatMap(messageToReadResource)));
32
+ server.registerResource('message', new ResourceTemplate('messages://app/{messageId}', { list: () => toListResource(store.getMessages().flatMap(messageToListResource)) }), { title: 'A single WhatsApp Message', description: 'Details of a single WhatsApp message', mimeType: 'application/json' }, (_, { messageId }) => toReadResource(messageToReadResource(store.getMessage(messageId))));
33
+ }
34
+ const messageToReadResource = (message) => message
35
+ ? [{ uri: `messages://app/${message.key.id}`, mimeType: 'application/json', text: JSON.stringify(message) }]
36
+ : [];
37
+ const messageToListResource = (message) => message
38
+ ? [{ uri: `messages://app/${message.key.id}`, name: message.key.id }]
39
+ : [];
40
+ const toReadResource = (t) => ({ contents: t });
41
+ const toListResource = (t) => ({ resources: t });
42
+ function registerMessageTools(server, sync) {
43
+ server.registerTool('send_message', { description: 'Send a WhatsApp-Message to a given JID.', inputSchema: SendMessageSchema }, args => sync.sendMessage(args.jid, args.message).then(messageToText).then(toCallResult).catch(toCallError));
44
+ }
45
+ const messageToText = (message) => {
46
+ return `Message sent to ${message.key.remoteJid ?? 'unknown'}: "${message.message?.conversation ?? 'unknown'}"`;
47
+ };
48
+ function registerChatTools(server, sync) {
49
+ server.registerTool('set_chat_archived', { description: 'Set a WhatsApp chat as archived or unarchived.', inputSchema: ArchiveChatSchema }, args => sync.setArchived(args.jid, args.archived).then(() => `Chat ${args.jid} archived status set to ${args.archived.toString()}`).then(toCallResult).catch(toCallError));
50
+ server.registerTool('set_chat_read', { description: 'Set a WhatsApp chat as read or unread.', inputSchema: ReadChatSchema }, args => sync.setRead(args.jid, args.read).then(() => `Chat ${args.jid} read status set to ${args.read.toString()}`).then(toCallResult).catch(toCallError));
51
+ }
52
+ const JidSchema = z.union([
53
+ z.string().min(1, 'JID is required').endsWith('@s.whatsapp.net', 'JID not a valid WhatsApp JID)'),
54
+ z.string().min(1, 'JID is required').endsWith('@g.us', 'JID not a valid WhatsApp JID)'),
55
+ ]).describe('The JID of the recipient or chat. For example 41791234567@s.whatsapp.net for an individual or 1234567890-1234567890@g.us for a group');
3
56
  const SendMessageSchema = z.object({
4
- to: z.string().min(1, "Recipient is required"),
5
- message: z.string().min(1, "Message body is required"),
57
+ jid: JidSchema,
58
+ message: z.string()
59
+ .min(1, 'Message body is required')
60
+ .describe('The body of the message to be sent. Can contain unicode characters like emojis.'),
6
61
  });
7
-
8
- const ListChatsSchema = z.object({
9
- limit: z.number().int().positive().optional().default(20),
62
+ const ArchiveChatSchema = z.object({
63
+ jid: JidSchema,
64
+ archived: z.boolean()
65
+ .describe('Whether the chat should be archived (true) or unarchived (false).'),
10
66
  });
11
-
12
- const ReadMessagesSchema = z.object({
13
- chatId: z.string().min(1, "Chat ID is required"),
14
- limit: z.number().int().positive().optional().default(50),
67
+ const ReadChatSchema = z.object({
68
+ jid: JidSchema,
69
+ read: z.boolean()
70
+ .describe('Whether the chat should be marked as read (true) or unread (false).'),
15
71
  });
16
-
17
- server.registerTool(
18
- "send_message",
19
- {
20
- description: "Send a WhatsApp message to a recipient",
21
- inputSchema: SendMessageSchema,
22
- },
23
- async ({ to, message }) => ({
24
- content: [
25
- {
26
- type: "text" as const,
27
- text: `Message would be sent to ${to}: "${message}" (not yet implemented)`,
28
- },
29
- ],
30
- }),
31
- );
32
-
33
- server.registerTool(
34
- "list_chats",
35
- {
36
- description: "List recent WhatsApp chats",
37
- inputSchema: ListChatsSchema,
38
- },
39
- async ({ limit }) => ({
40
- content: [
41
- {
42
- type: "text" as const,
43
- text: `Listing up to ${limit} chats (not yet implemented)`,
44
- },
45
- ],
46
- }),
47
- );
48
-
49
- server.registerTool(
50
- "read_messages",
51
- {
52
- description: "Read messages from a WhatsApp chat",
53
- inputSchema: ReadMessagesSchema,
54
- },
55
- async ({ chatId, limit }) => ({
56
- content: [
57
- {
58
- type: "text" as const,
59
- text: `Reading up to ${limit} messages from ${chatId} (not yet implemented)`,
60
- },
61
- ],
62
- }),
63
- );
64
- */
72
+ const toCallResult = (t) => ({ content: [{ type: 'text', text: t }], isError: false });
73
+ const toCallError = (error) => ({ content: [{ type: 'text', text: `Error: ${error.message}` }], isError: true });
65
74
  //# sourceMappingURL=tools.js.map
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8DE"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}