@sasadevofc/baileys 1.0.0-beta.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 (111) hide show
  1. package/.github/workflows/publish.yml +21 -0
  2. package/README.md +1 -0
  3. package/dist/auth/pairing.d.ts +7 -0
  4. package/dist/auth/pairing.d.ts.map +1 -0
  5. package/dist/auth/pairing.js +13 -0
  6. package/dist/auth/pairing.js.map +1 -0
  7. package/dist/auth/state.d.ts +14 -0
  8. package/dist/auth/state.d.ts.map +1 -0
  9. package/dist/auth/state.js +61 -0
  10. package/dist/auth/state.js.map +1 -0
  11. package/dist/auth/store.d.ts +16 -0
  12. package/dist/auth/store.d.ts.map +1 -0
  13. package/dist/auth/store.js +22 -0
  14. package/dist/auth/store.js.map +1 -0
  15. package/dist/client.d.ts +41 -0
  16. package/dist/client.d.ts.map +1 -0
  17. package/dist/client.js +92 -0
  18. package/dist/client.js.map +1 -0
  19. package/dist/config.d.ts +3 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +12 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/connection/handshake.d.ts +8 -0
  24. package/dist/connection/handshake.d.ts.map +1 -0
  25. package/dist/connection/handshake.js +12 -0
  26. package/dist/connection/handshake.js.map +1 -0
  27. package/dist/connection/socket.d.ts +19 -0
  28. package/dist/connection/socket.d.ts.map +1 -0
  29. package/dist/connection/socket.js +99 -0
  30. package/dist/connection/socket.js.map +1 -0
  31. package/dist/connection/transport.d.ts +8 -0
  32. package/dist/connection/transport.d.ts.map +1 -0
  33. package/dist/connection/transport.js +21 -0
  34. package/dist/connection/transport.js.map +1 -0
  35. package/dist/message/decoder.d.ts +7 -0
  36. package/dist/message/decoder.d.ts.map +1 -0
  37. package/dist/message/decoder.js +19 -0
  38. package/dist/message/decoder.js.map +1 -0
  39. package/dist/message/encoder.d.ts +7 -0
  40. package/dist/message/encoder.d.ts.map +1 -0
  41. package/dist/message/encoder.js +14 -0
  42. package/dist/message/encoder.js.map +1 -0
  43. package/dist/message/handler.d.ts +18 -0
  44. package/dist/message/handler.d.ts.map +1 -0
  45. package/dist/message/handler.js +87 -0
  46. package/dist/message/handler.js.map +1 -0
  47. package/dist/plugins/command.d.ts +10 -0
  48. package/dist/plugins/command.d.ts.map +1 -0
  49. package/dist/plugins/command.js +36 -0
  50. package/dist/plugins/command.js.map +1 -0
  51. package/dist/plugins/plugin-base.d.ts +11 -0
  52. package/dist/plugins/plugin-base.d.ts.map +1 -0
  53. package/dist/plugins/plugin-base.js +35 -0
  54. package/dist/plugins/plugin-base.js.map +1 -0
  55. package/dist/types/auth.d.ts +29 -0
  56. package/dist/types/auth.d.ts.map +1 -0
  57. package/dist/types/auth.js +3 -0
  58. package/dist/types/auth.js.map +1 -0
  59. package/dist/types/events.d.ts +54 -0
  60. package/dist/types/events.d.ts.map +1 -0
  61. package/dist/types/events.js +3 -0
  62. package/dist/types/events.js.map +1 -0
  63. package/dist/types/messages.d.ts +30 -0
  64. package/dist/types/messages.d.ts.map +1 -0
  65. package/dist/types/messages.js +3 -0
  66. package/dist/types/messages.js.map +1 -0
  67. package/dist/types/plugin.d.ts +16 -0
  68. package/dist/types/plugin.d.ts.map +1 -0
  69. package/dist/types/plugin.js +3 -0
  70. package/dist/types/plugin.js.map +1 -0
  71. package/dist/types/socket.d.ts +16 -0
  72. package/dist/types/socket.d.ts.map +1 -0
  73. package/dist/types/socket.js +3 -0
  74. package/dist/types/socket.js.map +1 -0
  75. package/dist/utils/logger.d.ts +11 -0
  76. package/dist/utils/logger.d.ts.map +1 -0
  77. package/dist/utils/logger.js +14 -0
  78. package/dist/utils/logger.js.map +1 -0
  79. package/dist/utils/retry.d.ts +2 -0
  80. package/dist/utils/retry.d.ts.map +1 -0
  81. package/dist/utils/retry.js +18 -0
  82. package/dist/utils/retry.js.map +1 -0
  83. package/dist/utils/throttle.d.ts +2 -0
  84. package/dist/utils/throttle.d.ts.map +1 -0
  85. package/dist/utils/throttle.js +14 -0
  86. package/dist/utils/throttle.js.map +1 -0
  87. package/examples/basic-bot.ts +29 -0
  88. package/examples/command-bot.ts +19 -0
  89. package/package.json +58 -0
  90. package/src/auth/pairing.ts +11 -0
  91. package/src/auth/state.ts +66 -0
  92. package/src/auth/store.ts +26 -0
  93. package/src/client.ts +119 -0
  94. package/src/config.ts +10 -0
  95. package/src/connection/handshake.ts +10 -0
  96. package/src/connection/socket.ts +109 -0
  97. package/src/connection/transport.ts +20 -0
  98. package/src/message/decoder.ts +13 -0
  99. package/src/message/encoder.ts +9 -0
  100. package/src/message/handler.ts +91 -0
  101. package/src/plugins/command.ts +40 -0
  102. package/src/plugins/plugin-base.ts +36 -0
  103. package/src/types/auth.ts +30 -0
  104. package/src/types/events.ts +60 -0
  105. package/src/types/messages.ts +34 -0
  106. package/src/types/plugin.ts +20 -0
  107. package/src/types/socket.ts +16 -0
  108. package/src/utils/logger.ts +10 -0
  109. package/src/utils/retry.ts +12 -0
  110. package/src/utils/throttle.ts +9 -0
  111. package/tsconfig.json +19 -0
@@ -0,0 +1,21 @@
1
+ name: Publish to npm
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+
7
+ jobs:
8
+ publish:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - uses: actions/setup-node@v4
13
+ with:
14
+ node-version: 18
15
+ registry-url: 'https://registry.npmjs.org'
16
+ scope: '@sasadevofc'
17
+ - run: npm install
18
+ - run: npm run build
19
+ - run: npm publish --access public
20
+ env:
21
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # sasa-dev-baileys
@@ -0,0 +1,7 @@
1
+ import { BaileysClient } from '../client';
2
+ export declare class PairingHelper {
3
+ private client;
4
+ constructor(client: BaileysClient);
5
+ requestCode(phoneNumber: string): Promise<string>;
6
+ }
7
+ //# sourceMappingURL=pairing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.d.ts","sourceRoot":"","sources":["../../src/auth/pairing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgB;gBAClB,MAAM,EAAE,aAAa;IAE3B,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAKxD"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PairingHelper = void 0;
4
+ class PairingHelper {
5
+ constructor(client) { this.client = client; }
6
+ async requestCode(phoneNumber) {
7
+ // Placeholder: would call WhatsApp pairing API
8
+ const code = '12345';
9
+ return code;
10
+ }
11
+ }
12
+ exports.PairingHelper = PairingHelper;
13
+ //# sourceMappingURL=pairing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pairing.js","sourceRoot":"","sources":["../../src/auth/pairing.ts"],"names":[],"mappings":";;;AACA,MAAa,aAAa;IAExB,YAAY,MAAqB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAE5D,KAAK,CAAC,WAAW,CAAC,WAAmB;QACnC,+CAA+C;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AATD,sCASC"}
@@ -0,0 +1,14 @@
1
+ import { BaileysClient } from '../client';
2
+ import { AuthState, Credentials } from '../types/auth';
3
+ export declare class AuthManager {
4
+ private client;
5
+ private store;
6
+ private state;
7
+ constructor(client: BaileysClient);
8
+ loadSession(sessionId?: string): Promise<AuthState | null>;
9
+ createSession(): Promise<AuthState>;
10
+ saveSession(sessionId?: string): Promise<void>;
11
+ getCredentials(): Credentials | undefined;
12
+ startPairing(phoneNumber: string): Promise<string>;
13
+ }
14
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/auth/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKvD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,KAAK,CAA0B;gBAE3B,MAAM,EAAE,aAAa;IAK3B,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAU1D,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC;IA0BnC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM;IAKpC,cAAc,IAAI,WAAW,GAAG,SAAS;IAKnC,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGzD"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthManager = void 0;
4
+ const store_1 = require("./store");
5
+ const uuid_1 = require("uuid");
6
+ const pairing_1 = require("./pairing");
7
+ class AuthManager {
8
+ constructor(client) {
9
+ this.state = null;
10
+ this.client = client;
11
+ this.store = new store_1.AuthStore(); // can be replaced with custom store
12
+ }
13
+ async loadSession(sessionId) {
14
+ const id = sessionId || 'default';
15
+ const data = await this.store.load(id);
16
+ if (data) {
17
+ this.state = data;
18
+ return data;
19
+ }
20
+ return null;
21
+ }
22
+ async createSession() {
23
+ // Generate new keys (simplified)
24
+ const state = {
25
+ creds: {
26
+ clientId: (0, uuid_1.v4)(),
27
+ serverToken: '',
28
+ clientToken: '',
29
+ encKey: Buffer.alloc(32),
30
+ macKey: Buffer.alloc(32),
31
+ },
32
+ keys: {
33
+ registrationId: Math.floor(Math.random() * 16384),
34
+ identityKey: new Uint8Array(32),
35
+ signedPreKey: {
36
+ keyId: 1,
37
+ keyPair: { public: new Uint8Array(32), private: new Uint8Array(32) },
38
+ signature: new Uint8Array(64),
39
+ },
40
+ preKeys: [],
41
+ },
42
+ };
43
+ this.state = state;
44
+ await this.store.save('default', state);
45
+ return state;
46
+ }
47
+ async saveSession(sessionId) {
48
+ if (!this.state)
49
+ return;
50
+ await this.store.save(sessionId || 'default', this.state);
51
+ }
52
+ getCredentials() {
53
+ return this.state?.creds;
54
+ }
55
+ // Pairing code helper
56
+ async startPairing(phoneNumber) {
57
+ return new pairing_1.PairingHelper(this.client).requestCode(phoneNumber);
58
+ }
59
+ }
60
+ exports.AuthManager = AuthManager;
61
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/auth/state.ts"],"names":[],"mappings":";;;AAEA,mCAAoC;AACpC,+BAAoC;AACpC,uCAA0C;AAE1C,MAAa,WAAW;IAKtB,YAAY,MAAqB;QAFzB,UAAK,GAAqB,IAAI,CAAC;QAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAS,EAAE,CAAC,CAAC,oCAAoC;IACpE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAkB;QAClC,MAAM,EAAE,GAAG,SAAS,IAAI,SAAS,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,iCAAiC;QACjC,MAAM,KAAK,GAAc;YACvB,KAAK,EAAE;gBACL,QAAQ,EAAE,IAAA,SAAM,GAAE;gBAClB,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,EAAE;gBACf,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;aACzB;YACD,IAAI,EAAE;gBACJ,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC;gBACjD,WAAW,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;gBAC/B,YAAY,EAAE;oBACZ,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;oBACpE,SAAS,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC;iBAC9B;gBACD,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAkB;QAClC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3B,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,OAAO,IAAI,uBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACjE,CAAC;CACF;AA3DD,kCA2DC"}
@@ -0,0 +1,16 @@
1
+ import { AuthState } from '../types/auth';
2
+ export interface IAuthStore {
3
+ load(sessionId: string): Promise<AuthState | null>;
4
+ save(sessionId: string, state: AuthState): Promise<void>;
5
+ delete(sessionId: string): Promise<void>;
6
+ }
7
+ /**
8
+ * Default in‑memory store. For production use a persistent store (JSON file, DB, etc.)
9
+ */
10
+ export declare class AuthStore implements IAuthStore {
11
+ private cache;
12
+ load(sessionId: string): Promise<AuthState | null>;
13
+ save(sessionId: string, state: AuthState): Promise<void>;
14
+ delete(sessionId: string): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/auth/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED;;GAEG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,KAAK,CAAgC;IAEvC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAIlD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthStore = void 0;
4
+ /**
5
+ * Default in‑memory store. For production use a persistent store (JSON file, DB, etc.)
6
+ */
7
+ class AuthStore {
8
+ constructor() {
9
+ this.cache = new Map();
10
+ }
11
+ async load(sessionId) {
12
+ return this.cache.get(sessionId) || null;
13
+ }
14
+ async save(sessionId, state) {
15
+ this.cache.set(sessionId, state);
16
+ }
17
+ async delete(sessionId) {
18
+ this.cache.delete(sessionId);
19
+ }
20
+ }
21
+ exports.AuthStore = AuthStore;
22
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/auth/store.ts"],"names":[],"mappings":";;;AAQA;;GAEG;AACH,MAAa,SAAS;IAAtB;QACU,UAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAa/C,CAAC;IAXC,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAiB,EAAE,KAAgB;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;CACF;AAdD,8BAcC"}
@@ -0,0 +1,41 @@
1
+ import { EventEmitter } from 'events';
2
+ import { BaileysEventMap } from './types/events';
3
+ import { SocketConfig } from './types/socket';
4
+ import { AuthManager } from './auth/state';
5
+ import { ConnectionManager } from './connection/socket';
6
+ import { MessageHandler } from './message/handler';
7
+ import { PluginManager } from './plugins/plugin-base';
8
+ import { Logger } from './utils/logger';
9
+ export declare class BaileysClient extends EventEmitter {
10
+ auth: AuthManager;
11
+ connection: ConnectionManager;
12
+ messages: MessageHandler;
13
+ plugins: PluginManager;
14
+ logger: Logger;
15
+ private config;
16
+ constructor(config?: Partial<SocketConfig>);
17
+ /** Start the connection process */
18
+ connect(): Promise<void>;
19
+ /** Disconnect gracefully */
20
+ disconnect(): Promise<void>;
21
+ /** Request QR code for login (if loginMethod = 'qr') */
22
+ requestQR(): Promise<string>;
23
+ /** Request pairing code (if loginMethod = 'pairing_code') */
24
+ requestPairingCode(phoneNumber: string): Promise<string>;
25
+ /** Send a text message */
26
+ sendMessage(jid: string, content: string, options?: {
27
+ mentions?: string[];
28
+ quotedId?: string;
29
+ }): Promise<import("./types/messages").TextMessage>;
30
+ /** Send media (buffer or URL) */
31
+ sendMedia(jid: string, type: 'image' | 'video' | 'audio' | 'document', media: Buffer | string, options?: any): Promise<import("./types/messages").MediaMessage>;
32
+ /** ... other convenient methods delegate to feature modules */
33
+ deleteMessage(jid: string, messageId: string): Promise<void>;
34
+ editMessage(jid: string, messageId: string, newContent: string): Promise<void>;
35
+ reactToMessage(jid: string, messageId: string, reaction: string): Promise<void>;
36
+ downloadMedia(message: any): Promise<Buffer>;
37
+ on<K extends keyof BaileysEventMap>(event: K, listener: BaileysEventMap[K]): this;
38
+ emit<K extends keyof BaileysEventMap>(event: K, ...args: Parameters<BaileysEventMap[K]>): boolean;
39
+ once<K extends keyof BaileysEventMap>(event: K, listener: BaileysEventMap[K]): this;
40
+ }
41
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAoB,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAiB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAKxC,qBAAa,aAAc,SAAQ,YAAY;IACtC,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IA6B9C,mCAAmC;IAC7B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B,4BAA4B;IACtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,wDAAwD;IAClD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,6DAA6D;IACvD,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9D,0BAA0B;IACpB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAKpG,iCAAiC;IAC3B,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAC,OAAO,GAAC,OAAO,GAAC,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAI5G,+DAA+D;IACzD,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAI5C,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAI9D,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI/D,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAKjF,IAAI,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAKjG,IAAI,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;CAIpF"}
package/dist/client.js ADDED
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaileysClient = void 0;
4
+ const events_1 = require("events");
5
+ const state_1 = require("./auth/state");
6
+ const socket_1 = require("./connection/socket");
7
+ const handler_1 = require("./message/handler");
8
+ const plugin_base_1 = require("./plugins/plugin-base");
9
+ const logger_1 = require("./utils/logger");
10
+ const config_1 = require("./config");
11
+ class BaileysClient extends events_1.EventEmitter {
12
+ constructor(config = {}) {
13
+ super();
14
+ this.config = { ...config_1.defaultConfig, ...config };
15
+ this.logger = new logger_1.Logger({ level: 'info' });
16
+ this.auth = new state_1.AuthManager(this);
17
+ this.connection = new socket_1.ConnectionManager(this);
18
+ this.messages = new handler_1.MessageHandler(this);
19
+ this.plugins = new plugin_base_1.PluginManager(this);
20
+ // Wire up internal events
21
+ this.connection.on('update', (update) => {
22
+ this.emit('connection.update', update);
23
+ });
24
+ this.messages.on('message', (msg) => {
25
+ // Run middleware pipeline then emit
26
+ this.plugins.runMiddleware(msg, () => {
27
+ this.emit('message.new', msg);
28
+ });
29
+ });
30
+ this.messages.on('update', (update) => this.emit('message.update', update));
31
+ this.messages.on('receipt', (receipt) => this.emit('message.receipt', receipt));
32
+ this.messages.on('group.participants.update', (upd) => this.emit('group.participants.update', upd));
33
+ this.messages.on('presence', (upd) => this.emit('presence.update', upd));
34
+ this.messages.on('contacts', (contacts) => this.emit('contacts.update', contacts));
35
+ this.messages.on('reaction', (reaction) => this.emit('reaction', reaction));
36
+ }
37
+ /** Start the connection process */
38
+ async connect() {
39
+ try {
40
+ await this.connection.connect();
41
+ }
42
+ catch (err) {
43
+ this.logger.error('Failed to connect:', err);
44
+ this.emit('error', err);
45
+ }
46
+ }
47
+ /** Disconnect gracefully */
48
+ async disconnect() {
49
+ await this.connection.disconnect();
50
+ }
51
+ /** Request QR code for login (if loginMethod = 'qr') */
52
+ async requestQR() {
53
+ return this.connection.requestQR();
54
+ }
55
+ /** Request pairing code (if loginMethod = 'pairing_code') */
56
+ async requestPairingCode(phoneNumber) {
57
+ return this.connection.requestPairingCode(phoneNumber);
58
+ }
59
+ /** Send a text message */
60
+ async sendMessage(jid, content, options) {
61
+ const msg = await this.messages.sendText(jid, content, options);
62
+ return msg;
63
+ }
64
+ /** Send media (buffer or URL) */
65
+ async sendMedia(jid, type, media, options) {
66
+ return this.messages.sendMedia(jid, type, media, options);
67
+ }
68
+ /** ... other convenient methods delegate to feature modules */
69
+ async deleteMessage(jid, messageId) {
70
+ return this.messages.deleteMessage(jid, messageId);
71
+ }
72
+ async editMessage(jid, messageId, newContent) {
73
+ return this.messages.editMessage(jid, messageId, newContent);
74
+ }
75
+ async reactToMessage(jid, messageId, reaction) {
76
+ return this.messages.react(jid, messageId, reaction);
77
+ }
78
+ async downloadMedia(message) {
79
+ return this.messages.downloadMedia(message);
80
+ }
81
+ on(event, listener) {
82
+ return super.on(event, listener);
83
+ }
84
+ emit(event, ...args) {
85
+ return super.emit(event, ...args);
86
+ }
87
+ once(event, listener) {
88
+ return super.once(event, listener);
89
+ }
90
+ }
91
+ exports.BaileysClient = BaileysClient;
92
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SocketConfig } from './types/socket';
2
+ export declare const defaultConfig: SocketConfig;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,eAAO,MAAM,aAAa,EAAE,YAO3B,CAAC"}
package/dist/config.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultConfig = void 0;
4
+ exports.defaultConfig = {
5
+ wsUrl: 'wss://web.whatsapp.com/ws/md',
6
+ autoReconnect: true,
7
+ maxReconnectAttempts: -1,
8
+ reconnectDelay: 3000,
9
+ keepAliveInterval: 10000,
10
+ loginMethod: 'qr',
11
+ };
12
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAEa,QAAA,aAAa,GAAiB;IACzC,KAAK,EAAE,8BAA8B;IACrC,aAAa,EAAE,IAAI;IACnB,oBAAoB,EAAE,CAAC,CAAC;IACxB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,IAAI;CAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { BaileysClient } from '../client';
2
+ import WebSocket from 'ws';
3
+ export declare class Handshake {
4
+ private client;
5
+ constructor(client: BaileysClient);
6
+ perform(ws: WebSocket): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=handshake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/connection/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;gBAClB,MAAM,EAAE,aAAa;IAC3B,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5C"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Handshake = void 0;
4
+ class Handshake {
5
+ constructor(client) { this.client = client; }
6
+ async perform(ws) {
7
+ // Noise handshake placeholder; would exchange keys, etc.
8
+ return;
9
+ }
10
+ }
11
+ exports.Handshake = Handshake;
12
+ //# sourceMappingURL=handshake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshake.js","sourceRoot":"","sources":["../../src/connection/handshake.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IAEpB,YAAY,MAAqB,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;IAC5D,KAAK,CAAC,OAAO,CAAC,EAAa;QACzB,yDAAyD;QACzD,OAAO;IACT,CAAC;CACF;AAPD,8BAOC"}
@@ -0,0 +1,19 @@
1
+ import { EventEmitter } from 'events';
2
+ import { BaileysClient } from '../client';
3
+ export declare class ConnectionManager extends EventEmitter {
4
+ private client;
5
+ private ws;
6
+ private transport;
7
+ private handshake;
8
+ private reconnectAttempts;
9
+ private keepAliveTimer?;
10
+ constructor(client: BaileysClient);
11
+ connect(): Promise<void>;
12
+ disconnect(): Promise<void>;
13
+ requestQR(): Promise<string>;
14
+ requestPairingCode(phoneNumber: string): Promise<string>;
15
+ private startKeepAlive;
16
+ private stopKeepAlive;
17
+ sendRaw(data: Uint8Array): void;
18
+ }
19
+ //# sourceMappingURL=socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/connection/socket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAK1C,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAiB;gBAE5B,MAAM,EAAE,aAAa;IAO3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+CxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAO5B,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM9D,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,IAAI,EAAE,UAAU;CAOnB"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ConnectionManager = void 0;
7
+ const ws_1 = __importDefault(require("ws"));
8
+ const events_1 = require("events");
9
+ const transport_1 = require("./transport");
10
+ const handshake_1 = require("./handshake");
11
+ class ConnectionManager extends events_1.EventEmitter {
12
+ constructor(client) {
13
+ super();
14
+ this.ws = null;
15
+ this.reconnectAttempts = 0;
16
+ this.client = client;
17
+ this.transport = new transport_1.Transport(client);
18
+ this.handshake = new handshake_1.Handshake(client);
19
+ }
20
+ async connect() {
21
+ if (this.ws?.readyState === ws_1.default.OPEN)
22
+ return;
23
+ const { wsUrl, autoReconnect, reconnectDelay } = this.client['config'];
24
+ const doConnect = async () => {
25
+ this.emit('update', { status: 'connecting' });
26
+ const ws = new ws_1.default(wsUrl);
27
+ this.ws = ws;
28
+ ws.binaryType = 'arraybuffer';
29
+ return new Promise((resolve, reject) => {
30
+ ws.on('open', async () => {
31
+ this.emit('update', { status: 'open' });
32
+ this.reconnectAttempts = 0;
33
+ this.startKeepAlive();
34
+ // Perform noise handshake (stub)
35
+ await this.handshake.perform(ws);
36
+ resolve();
37
+ });
38
+ ws.on('message', (data) => {
39
+ const decoded = this.transport.decode(data);
40
+ // route to MessageHandler
41
+ this.client.messages.processIncoming(decoded);
42
+ });
43
+ ws.on('close', (code) => {
44
+ this.stopKeepAlive();
45
+ this.emit('update', { status: 'close', error: new Error(`Closed with code ${code}`) });
46
+ if (autoReconnect && (!this.client['config'].maxReconnectAttempts || this.reconnectAttempts < this.client['config'].maxReconnectAttempts)) {
47
+ setTimeout(() => {
48
+ this.reconnectAttempts++;
49
+ this.connect().catch(() => { });
50
+ }, reconnectDelay * Math.min(this.reconnectAttempts, 10));
51
+ }
52
+ });
53
+ ws.on('error', (err) => {
54
+ reject(err);
55
+ this.emit('update', { status: 'error', error: err });
56
+ });
57
+ });
58
+ };
59
+ return doConnect();
60
+ }
61
+ async disconnect() {
62
+ this.stopKeepAlive();
63
+ if (this.ws) {
64
+ this.ws.close();
65
+ this.ws = null;
66
+ }
67
+ }
68
+ async requestQR() {
69
+ // Simulated QR generation (real implementation would ask WhatsApp servers)
70
+ const qr = 'data:image/png;base64,iVBORw0KGgo...'; // placeholder
71
+ this.emit('update', { status: 'qr', qr });
72
+ return qr;
73
+ }
74
+ async requestPairingCode(phoneNumber) {
75
+ const code = '12345'; // placeholder
76
+ this.emit('update', { status: 'pairing', pairingCode: code });
77
+ return code;
78
+ }
79
+ startKeepAlive() {
80
+ this.keepAliveTimer = setInterval(() => {
81
+ this.ws?.ping();
82
+ }, this.client['config'].keepAliveInterval);
83
+ }
84
+ stopKeepAlive() {
85
+ if (this.keepAliveTimer)
86
+ clearInterval(this.keepAliveTimer);
87
+ }
88
+ // Outgoing message send raw
89
+ sendRaw(data) {
90
+ if (this.ws?.readyState === ws_1.default.OPEN) {
91
+ this.ws.send(data);
92
+ }
93
+ else {
94
+ throw new Error('WebSocket not connected');
95
+ }
96
+ }
97
+ }
98
+ exports.ConnectionManager = ConnectionManager;
99
+ //# sourceMappingURL=socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/connection/socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { BaileysClient } from '../client';
2
+ export declare class Transport {
3
+ private client;
4
+ constructor(client: BaileysClient);
5
+ decode(buffer: ArrayBuffer): any;
6
+ encode(message: any): Uint8Array;
7
+ }
8
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/connection/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;gBAClB,MAAM,EAAE,aAAa;IAIjC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG;IAMhC,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,UAAU;CAIjC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transport = void 0;
4
+ // Simplified protobuf encode/decode using protobufjs/minimal
5
+ // Real implementation would use fully defined .proto files.
6
+ class Transport {
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ decode(buffer) {
11
+ // Placeholder: parse binary into WAMessage format
12
+ // In a real lib this would use protobuf definitions
13
+ return JSON.parse(Buffer.from(buffer).toString('utf8'));
14
+ }
15
+ encode(message) {
16
+ // Placeholder
17
+ return Buffer.from(JSON.stringify(message));
18
+ }
19
+ }
20
+ exports.Transport = Transport;
21
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/connection/transport.ts"],"names":[],"mappings":";;;AACA,6DAA6D;AAC7D,4DAA4D;AAC5D,MAAa,SAAS;IAEpB,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAmB;QACxB,kDAAkD;QAClD,oDAAoD;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,OAAY;QACjB,cAAc;QACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC;CACF;AAhBD,8BAgBC"}
@@ -0,0 +1,7 @@
1
+ import { BaileysClient } from '../client';
2
+ export declare class Decoder {
3
+ private client;
4
+ constructor(client: BaileysClient);
5
+ decode(raw: any): any;
6
+ }
7
+ //# sourceMappingURL=decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../src/message/decoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,qBAAa,OAAO;IACN,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IACzC,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;CAQtB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Decoder = void 0;
4
+ class Decoder {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ decode(raw) {
9
+ // Placeholder – real implementation would deserialize protobuf
10
+ try {
11
+ return JSON.parse(Buffer.from(raw).toString('utf8'));
12
+ }
13
+ catch {
14
+ return {};
15
+ }
16
+ }
17
+ }
18
+ exports.Decoder = Decoder;
19
+ //# sourceMappingURL=decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/message/decoder.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAClB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAC7C,MAAM,CAAC,GAAQ;QACb,+DAA+D;QAC/D,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAVD,0BAUC"}
@@ -0,0 +1,7 @@
1
+ import { BaileysClient } from '../client';
2
+ export declare class Encoder {
3
+ private client;
4
+ constructor(client: BaileysClient);
5
+ encode(message: any): Uint8Array;
6
+ }
7
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/message/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,qBAAa,OAAO;IACN,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IACzC,MAAM,CAAC,OAAO,EAAE,GAAG,GAAG,UAAU;CAIjC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Encoder = void 0;
4
+ class Encoder {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ encode(message) {
9
+ // Placeholder – real implementation would serialize to protobuf
10
+ return Buffer.from(JSON.stringify(message));
11
+ }
12
+ }
13
+ exports.Encoder = Encoder;
14
+ //# sourceMappingURL=encoder.js.map