whatsauto.js 1.1.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -46,14 +46,11 @@ const autoWA = new AutoWA("session_name");
46
46
  // or, using pair code (experimental)
47
47
  const autoWA = new AutoWA("session_name", { phoneNumber: "628xxxx" });
48
48
 
49
- // listen to some event
50
- const ev = autoWA.event;
51
-
52
- ev.onConnected(() => {
49
+ autoWA.on("connected", () => {
53
50
  console.log("Client Ready!");
54
51
  });
55
52
 
56
- ev.onMessage(async (msg) => {
53
+ autoWA.on("message", async (msg) => {
57
54
  console.log(msg.text);
58
55
  });
59
56
 
@@ -83,7 +80,7 @@ await autoWA.initialize();
83
80
  ### IWAutoMessage APIs
84
81
 
85
82
  ```ts
86
- ev.onMessageReceived(async (msg) => {
83
+ autoWA.on("message-received", async (msg) => {
87
84
  // read this message
88
85
  await msg.read();
89
86
 
@@ -1,37 +1,38 @@
1
+ import { GroupMemberUpdate, IWAutoMessage, WAutoMessageUpdated } from "../Types";
1
2
  export declare abstract class CREDENTIALS {
2
3
  static DIR_NAME: string;
3
4
  static PREFIX: string;
4
5
  }
5
- export declare enum CALLBACK_KEY {
6
- ON_MESSAGE = "message",
7
- ON_GROUP_MESSAGE = "group-message",
8
- ON_PRIVATE_MESSAGE = "private-message",
9
- ON_MESSAGE_RECEIVED = "message-received",
10
- ON_GROUP_MESSAGE_RECEIVED = "group-message-received",
11
- ON_PRIVATE_MESSAGE_RECEIVED = "private-message-received",
12
- ON_MESSAGE_SENT = "message-sent",
13
- ON_GROUP_MESSAGE_SENT = "group-message-sent",
14
- ON_PRIVATE_MESSAGE_SENT = "private-message-sent",
15
- ON_STORY = "story",
16
- ON_STORY_RECEIVED = "story-received",
17
- ON_STORY_SENT = "story-sent",
18
- ON_REACTION = "reaction",
19
- ON_REACTION_RECEIVED = "reaction-received",
20
- ON_REACTION_SENT = "reaction-sent",
21
- ON_GROUP_REACTION = "group-reaction",
22
- ON_GROUP_REACTION_RECEIVED = "group-reaction-received",
23
- ON_GROUP_REACTION_SENT = "group-reaction-sent",
24
- ON_PRIVATE_REACTION = "private-reaction",
25
- ON_PRIVATE_REACTION_RECEIVED = "private-reaction-received",
26
- ON_PRIVATE_REACTION_SENT = "private-reaction-sent",
27
- ON_QR = "qr",
28
- ON_CONNECTED = "connected",
29
- ON_DISCONNECTED = "disconnected",
30
- ON_CONNECTING = "connecting",
31
- ON_MESSAGE_UPDATED = "message-updated",
32
- ON_PAIRING_CODE = "pairing-code",
33
- ON_GROUP_MEMBER_UPDATE = "on-group-member-update"
34
- }
6
+ export type AutoWAEvents = {
7
+ connecting: [];
8
+ qr: [string];
9
+ "pairing-code": [string];
10
+ connected: [];
11
+ disconnected: [];
12
+ message: [IWAutoMessage];
13
+ "group-message": [IWAutoMessage];
14
+ "private-message": [IWAutoMessage];
15
+ "message-received": [IWAutoMessage];
16
+ "group-message-received": [IWAutoMessage];
17
+ "private-message-received": [IWAutoMessage];
18
+ "message-sent": [IWAutoMessage];
19
+ "group-message-sent": [IWAutoMessage];
20
+ "private-message-sent": [IWAutoMessage];
21
+ story: [IWAutoMessage];
22
+ "story-received": [IWAutoMessage];
23
+ "story-sent": [IWAutoMessage];
24
+ reaction: [IWAutoMessage];
25
+ "reaction-received": [IWAutoMessage];
26
+ "reaction-sent": [IWAutoMessage];
27
+ "group-reaction": [IWAutoMessage];
28
+ "group-reaction-received": [IWAutoMessage];
29
+ "group-reaction-sent": [IWAutoMessage];
30
+ "private-reaction": [IWAutoMessage];
31
+ "private-reaction-received": [IWAutoMessage];
32
+ "private-reaction-sent": [IWAutoMessage];
33
+ "message-updated": [WAutoMessageUpdated];
34
+ "group-member-update": [GroupMemberUpdate];
35
+ };
35
36
  export declare abstract class Messages {
36
37
  static sessionAlreadyExist: (sessionId: string) => string;
37
38
  static sessionNotFound: (sessionId: string) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAW;IAC/B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAc;IACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAY;CAClC;AAED,oBAAY,YAAY;IACtB,UAAU,YAAY;IACtB,gBAAgB,kBAAkB;IAClC,kBAAkB,oBAAoB;IACtC,mBAAmB,qBAAqB;IACxC,yBAAyB,2BAA2B;IACpD,2BAA2B,6BAA6B;IACxD,eAAe,iBAAiB;IAChC,qBAAqB,uBAAuB;IAC5C,uBAAuB,yBAAyB;IAChD,QAAQ,UAAU;IAClB,iBAAiB,mBAAmB;IACpC,aAAa,eAAe;IAC5B,WAAW,aAAa;IACxB,oBAAoB,sBAAsB;IAC1C,gBAAgB,kBAAkB;IAClC,iBAAiB,mBAAmB;IACpC,0BAA0B,4BAA4B;IACtD,sBAAsB,wBAAwB;IAC9C,mBAAmB,qBAAqB;IACxC,4BAA4B,8BAA8B;IAC1D,wBAAwB,0BAA0B;IAClD,KAAK,OAAO;IACZ,YAAY,cAAc;IAC1B,eAAe,iBAAiB;IAChC,aAAa,eAAe;IAC5B,kBAAkB,oBAAoB;IACtC,eAAe,iBAAiB;IAEhC,sBAAsB,2BAA2B;CAClD;AAED,8BAAsB,QAAQ;IAC5B,MAAM,CAAC,mBAAmB,cAAe,MAAM,KAAG,MAAM,CACgB;IAExE,MAAM,CAAC,eAAe,cAAe,MAAM,KAAG,MAAM,CACN;IAE9C,MAAM,CAAC,kBAAkB,UAAW,MAAM,EAAE,GAAG,MAAM,YAGpC;IAEjB,MAAM,CAAC,kBAAkB,UAAW,MAAM,EAAE,GAAG,MAAM,YAGnC;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Defaults/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjF,8BAAsB,WAAW;IAC/B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAc;IACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAY;CAClC;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,EAAE,CAAC;IACf,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IACb,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,EAAE,EAAE,CAAC;IACd,YAAY,EAAE,EAAE,CAAC;IAEjB,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;IACzB,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IACjC,iBAAiB,EAAE,CAAC,aAAa,CAAC,CAAC;IACnC,kBAAkB,EAAE,CAAC,aAAa,CAAC,CAAC;IACpC,wBAAwB,EAAE,CAAC,aAAa,CAAC,CAAC;IAC1C,0BAA0B,EAAE,CAAC,aAAa,CAAC,CAAC;IAC5C,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC;IAChC,oBAAoB,EAAE,CAAC,aAAa,CAAC,CAAC;IACtC,sBAAsB,EAAE,CAAC,aAAa,CAAC,CAAC;IACxC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;IACvB,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,YAAY,EAAE,CAAC,aAAa,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;IAC1B,mBAAmB,EAAE,CAAC,aAAa,CAAC,CAAC;IACrC,eAAe,EAAE,CAAC,aAAa,CAAC,CAAC;IACjC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC;IAClC,yBAAyB,EAAE,CAAC,aAAa,CAAC,CAAC;IAC3C,qBAAqB,EAAE,CAAC,aAAa,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC,aAAa,CAAC,CAAC;IACpC,2BAA2B,EAAE,CAAC,aAAa,CAAC,CAAC;IAC7C,uBAAuB,EAAE,CAAC,aAAa,CAAC,CAAC;IAEzC,iBAAiB,EAAE,CAAC,mBAAmB,CAAC,CAAC;IACzC,qBAAqB,EAAE,CAAC,iBAAiB,CAAC,CAAC;CAC5C,CAAC;AAEF,8BAAsB,QAAQ;IAC5B,MAAM,CAAC,mBAAmB,cAAe,MAAM,KAAG,MAAM,CACgB;IAExE,MAAM,CAAC,eAAe,cAAe,MAAM,KAAG,MAAM,CACN;IAE9C,MAAM,CAAC,kBAAkB,UAAW,MAAM,EAAE,GAAG,MAAM,YAGpC;IAEjB,MAAM,CAAC,kBAAkB,UAAW,MAAM,EAAE,GAAG,MAAM,YAGnC;CACnB"}
@@ -1,42 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Messages = exports.CALLBACK_KEY = exports.CREDENTIALS = void 0;
3
+ exports.Messages = exports.CREDENTIALS = void 0;
4
4
  class CREDENTIALS {
5
5
  }
6
6
  exports.CREDENTIALS = CREDENTIALS;
7
7
  CREDENTIALS.DIR_NAME = "wa_creds";
8
8
  CREDENTIALS.PREFIX = "_creds";
9
- var CALLBACK_KEY;
10
- (function (CALLBACK_KEY) {
11
- CALLBACK_KEY["ON_MESSAGE"] = "message";
12
- CALLBACK_KEY["ON_GROUP_MESSAGE"] = "group-message";
13
- CALLBACK_KEY["ON_PRIVATE_MESSAGE"] = "private-message";
14
- CALLBACK_KEY["ON_MESSAGE_RECEIVED"] = "message-received";
15
- CALLBACK_KEY["ON_GROUP_MESSAGE_RECEIVED"] = "group-message-received";
16
- CALLBACK_KEY["ON_PRIVATE_MESSAGE_RECEIVED"] = "private-message-received";
17
- CALLBACK_KEY["ON_MESSAGE_SENT"] = "message-sent";
18
- CALLBACK_KEY["ON_GROUP_MESSAGE_SENT"] = "group-message-sent";
19
- CALLBACK_KEY["ON_PRIVATE_MESSAGE_SENT"] = "private-message-sent";
20
- CALLBACK_KEY["ON_STORY"] = "story";
21
- CALLBACK_KEY["ON_STORY_RECEIVED"] = "story-received";
22
- CALLBACK_KEY["ON_STORY_SENT"] = "story-sent";
23
- CALLBACK_KEY["ON_REACTION"] = "reaction";
24
- CALLBACK_KEY["ON_REACTION_RECEIVED"] = "reaction-received";
25
- CALLBACK_KEY["ON_REACTION_SENT"] = "reaction-sent";
26
- CALLBACK_KEY["ON_GROUP_REACTION"] = "group-reaction";
27
- CALLBACK_KEY["ON_GROUP_REACTION_RECEIVED"] = "group-reaction-received";
28
- CALLBACK_KEY["ON_GROUP_REACTION_SENT"] = "group-reaction-sent";
29
- CALLBACK_KEY["ON_PRIVATE_REACTION"] = "private-reaction";
30
- CALLBACK_KEY["ON_PRIVATE_REACTION_RECEIVED"] = "private-reaction-received";
31
- CALLBACK_KEY["ON_PRIVATE_REACTION_SENT"] = "private-reaction-sent";
32
- CALLBACK_KEY["ON_QR"] = "qr";
33
- CALLBACK_KEY["ON_CONNECTED"] = "connected";
34
- CALLBACK_KEY["ON_DISCONNECTED"] = "disconnected";
35
- CALLBACK_KEY["ON_CONNECTING"] = "connecting";
36
- CALLBACK_KEY["ON_MESSAGE_UPDATED"] = "message-updated";
37
- CALLBACK_KEY["ON_PAIRING_CODE"] = "pairing-code";
38
- CALLBACK_KEY["ON_GROUP_MEMBER_UPDATE"] = "on-group-member-update";
39
- })(CALLBACK_KEY || (exports.CALLBACK_KEY = CALLBACK_KEY = {}));
40
9
  class Messages {
41
10
  }
42
11
  exports.Messages = Messages;
@@ -18,4 +18,7 @@ export declare const to: {
18
18
  export declare const isSessionExist: (sessionId: string) => boolean;
19
19
  export declare const setCredentialsDir: (dirname: string) => void;
20
20
  export declare const getBuffer: (url: string) => Promise<Buffer>;
21
+ export declare function getRandomFromArrays<T extends unknown[][]>(...arrays: T): {
22
+ [K in keyof T]: T[K] extends (infer U)[] ? U : never;
23
+ };
21
24
  //# sourceMappingURL=helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/Utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOhF,eAAO,MAAM,gBAAgB,QAAS,aAAa,KAAG,MAwBrD,CAAC;AAEF,eAAO,MAAM,gCAAgC,SACrC,KAAK,CAAC,cAAc,CAAC,MAAM,KAChC,mBAAmB,CAAC,eAAe,CAerC,CAAC;AAEF,eAAO,MAAM,UAAU,gCAIpB,gBAAgB,KAAG,MAerB,CAAC;AAEF,eAAO,MAAM,WAAW,cAAoB,MAAM,qBAMjD,CAAC;AAEF,eAAO,MAAM,EAAE;mBACE,GAAG,KAAG,OAAO;sBAGV,GAAG,KAAG,OAAO;iBAGlB,GAAG,KAAG,OAAO;qBAGT,GAAG,KAAG,OAAO;kBAGhB,GAAG,KAAG,OAAO;CAG5B,CAAC;AAEF,eAAO,MAAM,EAAE;kBACC,GAAG,KAAG,MAAM;qBAIT,GAAG,iBAAgB,GAAG,KAAe,MAAM,GAAG,MAAM,GAAG,SAAS;CAIlF,CAAC;AAEF,eAAO,MAAM,cAAc,cAAwB,MAAM,YASxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,SAOhD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAe,MAAM,KAAG,OAAO,CAAC,MAAM,CAS3D,CAAC"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/Utils/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAOhF,eAAO,MAAM,gBAAgB,QAAS,aAAa,KAAG,MAwBrD,CAAC;AAEF,eAAO,MAAM,gCAAgC,SACrC,KAAK,CAAC,cAAc,CAAC,MAAM,KAChC,mBAAmB,CAAC,eAAe,CAerC,CAAC;AAEF,eAAO,MAAM,UAAU,gCAIpB,gBAAgB,KAAG,MAerB,CAAC;AAEF,eAAO,MAAM,WAAW,cAAoB,MAAM,qBAMjD,CAAC;AAEF,eAAO,MAAM,EAAE;mBACE,GAAG,KAAG,OAAO;sBAGV,GAAG,KAAG,OAAO;iBAGlB,GAAG,KAAG,OAAO;qBAGT,GAAG,KAAG,OAAO;kBAGhB,GAAG,KAAG,OAAO;CAG5B,CAAC;AAEF,eAAO,MAAM,EAAE;kBACC,GAAG,KAAG,MAAM;qBAIT,GAAG,iBAAgB,GAAG,KAAe,MAAM,GAAG,MAAM,GAAG,SAAS;CAIlF,CAAC;AAEF,eAAO,MAAM,cAAc,cAAwB,MAAM,YASxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,SAOhD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAe,MAAM,KAAG,OAAO,CAAC,MAAM,CAS3D,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EACvD,GAAG,MAAM,EAAE,CAAC,GACX;KACA,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK;CACrD,CAKA"}
@@ -46,6 +46,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.getBuffer = exports.setCredentialsDir = exports.isSessionExist = exports.to = exports.is = exports.createDelay = exports.phoneToJid = exports.parseMessageStatusCodeToReadable = exports.getMediaMimeType = void 0;
49
+ exports.getRandomFromArrays = getRandomFromArrays;
49
50
  const baileys_1 = require("@whiskeysockets/baileys");
50
51
  const Error_1 = require("../Error");
51
52
  const fs = __importStar(require("fs"));
@@ -165,3 +166,9 @@ const getBuffer = (url) => __awaiter(void 0, void 0, void 0, function* () {
165
166
  return null;
166
167
  });
167
168
  exports.getBuffer = getBuffer;
169
+ function getRandomFromArrays(...arrays) {
170
+ return arrays.map((arr) => {
171
+ const randomIndex = Math.floor(Math.random() * arr.length);
172
+ return arr[randomIndex];
173
+ });
174
+ }
@@ -29,7 +29,7 @@ const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function*
29
29
  return buffer;
30
30
  const tempDir = (0, path_1.join)((0, os_1.tmpdir)(), `webp_${Math.random().toString(36).slice(2)}`);
31
31
  yield (0, fs_extra_1.ensureDir)(tempDir);
32
- const inputName = (0, path_1.join)(tempDir, typeof media == "string" ? media : getRandomName());
32
+ const inputName = typeof media == "string" ? media : (0, path_1.join)(tempDir, getRandomName());
33
33
  const webpName = (0, path_1.join)(tempDir, getRandomName());
34
34
  const data = JSON.stringify({
35
35
  "sticker-pack-id": (0, exports.generateStickerID)(),
@@ -1,14 +1,14 @@
1
1
  import { WASocket } from "@whiskeysockets/baileys";
2
+ import { AutoWAEvents } from "../Defaults";
2
3
  import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, WAutoGroupMemberActionOptions, IWAutoSendMedia, IWAutoPhoneToJid, IWAutoForwardMessage, IWAutoSendSticker, IStickerOptions } from "../Types";
3
4
  import AutoWAEvent from "./AutoWAEvent";
4
5
  export declare class AutoWA {
5
6
  private logger;
6
- private callback;
7
7
  private retryCount;
8
8
  sock: WASocket;
9
9
  sessionId: string;
10
10
  options: IWAutoSessionConfig;
11
- event: AutoWAEvent;
11
+ events: AutoWAEvent<AutoWAEvents>;
12
12
  private pairingCode?;
13
13
  defaultStickerProps: IStickerOptions;
14
14
  constructor(sessionId: string, options?: IWAutoSessionConfig);
@@ -36,10 +36,7 @@ export declare class AutoWA {
36
36
  forwardMessage({ to, msg, isGroup, ...props }: IWAutoForwardMessage): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
37
37
  getProfileInfo(target: string): Promise<{
38
38
  profilePictureUrl: string;
39
- status: {
40
- status: string | undefined;
41
- setAt: Date;
42
- };
39
+ status: import("@whiskeysockets/baileys").USyncQueryResultList[];
43
40
  }>;
44
41
  getGroupInfo(target: string): Promise<import("@whiskeysockets/baileys").GroupMetadata>;
45
42
  addMemberToGroup({ participants, to }: WAutoGroupMemberActionOptions): Promise<{
@@ -62,5 +59,10 @@ export declare class AutoWA {
62
59
  jid: string;
63
60
  content: import("@whiskeysockets/baileys").BinaryNode;
64
61
  }[]>;
62
+ on<K extends keyof AutoWAEvents>(event: K, listener: (...args: AutoWAEvents[K]) => void): void;
63
+ once<K extends keyof AutoWAEvents>(event: K, listener: (...args: AutoWAEvents[K]) => void): void;
64
+ off<K extends keyof AutoWAEvents>(event: K, listener: (...args: AutoWAEvents[K]) => void): void;
65
+ emit<K extends keyof AutoWAEvents>(event: K, ...args: AutoWAEvents[K]): boolean;
66
+ removeAllListeners<K extends keyof AutoWAEvents>(event?: K): void;
65
67
  }
66
68
  //# sourceMappingURL=AutoWA.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"AAGA,OAAqB,EACnB,QAAQ,EAOT,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAEL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EAEb,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAEhB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,UAAU,CAAC;AAQlB,OAAO,WAAW,MAAM,eAAe,CAAC;AASxC,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,UAAU,CAAS;IACpB,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,mBAAmB,EAAE,eAAe,CAIlC;gBAEU,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAqB/C,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,UAAU;YAKT,aAAa;YAiBb,WAAW;YAyBX,aAAa;IAiVd,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO;IA4BtB,OAAO,CAAC,EAAE,IAAI,EAAE,OAAe,EAAE,EAAE,gBAAgB;YAoBlD,aAAa;YAUb,gBAAgB;IAqBjB,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAS,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB;IAmBxE,SAAS,CAAC,EACrB,EAAE,EACF,IAAS,EACT,OAAe,EACf,KAAK,EACL,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe;IAoCL,SAAS,CAAC,EACrB,EAAE,EACF,IAAS,EACT,OAAe,EACf,KAAK,EACL,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe;IAoCL,YAAY,CAAC,EACxB,EAAE,EACF,IAAS,EACT,OAAe,EACf,KAAK,EACL,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,GAAG;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB;IAyCY,SAAS,CAAC,EACrB,EAAE,EACF,OAAe,EACf,KAAK,EACL,SAAiB,EACjB,OAAO,EACP,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;IAoCnB,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAe,EAAE,SAAS,EAAE,EAAE,iBAAiB;IAexE,UAAU,CAAC,EAAE,EAAE,EAAE,QAAe,EAAE,OAAe,EAAE,EAAE,gBAAgB;IAYrE,aAAa,CAAC,EAAE,EAAE,EAAE,QAAe,EAAE,OAAe,EAAE,EAAE,gBAAgB;IAYxE,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE;IAIjC,WAAW,CAAC,EACvB,EAAE,EACF,OAAO,EACP,OAAO,EACP,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,GAAG,eAAe;IAqDzB,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB;IAkB3E,cAAc,CAAC,MAAM,EAAE,MAAM;;;;;;;IAuB7B,YAAY,CAAC,MAAM,EAAE,MAAM;IAgB3B,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBA3vBtC,yBAAI;;IAswBlC,qBAAqB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBAtwB3C,yBAAI;;IAixBlC,kBAAkB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBAjxBxC,yBAAI;;IA4xBlC,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBA5xBvC,yBAAI;;CAsyBhD"}
1
+ {"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"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"}
@@ -71,8 +71,10 @@ const _1 = require(".");
71
71
  const P = require("pino")({
72
72
  level: "fatal",
73
73
  });
74
+ const qrcode = require("qrcode-terminal");
74
75
  class AutoWA {
75
76
  constructor(sessionId, options) {
77
+ this.events = new AutoWAEvent_1.default();
76
78
  this.defaultStickerProps = {
77
79
  pack: "whatsauto.js",
78
80
  author: "freack21",
@@ -86,9 +88,7 @@ class AutoWA {
86
88
  };
87
89
  this.sessionId = sessionId;
88
90
  this.options = Object.assign(Object.assign({}, defaultOptions), options);
89
- this.callback = new Map();
90
91
  this.retryCount = 0;
91
- this.event = new AutoWAEvent_1.default(this.callback);
92
92
  this.logger = new Logger_1.default(sessionId, this);
93
93
  _1.sessions.set(sessionId, this);
94
94
  this.logger.info("Created!");
@@ -122,13 +122,13 @@ class AutoWA {
122
122
  try {
123
123
  const { version } = yield (0, baileys_1.fetchLatestBaileysVersion)();
124
124
  const { state, saveCreds } = yield (0, baileys_1.useMultiFileAuthState)(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, sessionId + Defaults_1.CREDENTIALS.PREFIX));
125
+ const [platform, browser] = (0, helper_1.getRandomFromArrays)([baileys_1.Browsers.macOS, baileys_1.Browsers.ubuntu, baileys_1.Browsers.windows], ["Chrome", "Firefox", "Safari"]);
125
126
  this.sock = (0, baileys_1.default)({
126
127
  version,
127
- printQRInTerminal: options.printQR,
128
128
  auth: state,
129
129
  logger: P,
130
130
  markOnlineOnConnect: false,
131
- browser: baileys_1.Browsers.baileys(this.sessionId),
131
+ browser: platform(browser),
132
132
  });
133
133
  return this.setupWASocket(saveCreds);
134
134
  }
@@ -141,38 +141,41 @@ class AutoWA {
141
141
  }
142
142
  setupWASocket(saveCreds) {
143
143
  return __awaiter(this, void 0, void 0, function* () {
144
- var _a;
145
144
  try {
146
145
  if (typeof this.options.phoneNumber == "string" &&
147
146
  !this.options.printQR &&
148
147
  !this.pairingCode &&
149
148
  !this.sock.authState.creds.registered) {
149
+ const phoneNumber = (0, helper_1.phoneToJid)({ from: this.options.phoneNumber, reverse: true });
150
150
  try {
151
- this.pairingCode = yield this.sock.requestPairingCode((0, helper_1.phoneToJid)({ from: this.options.phoneNumber, reverse: true }));
151
+ this.pairingCode = yield this.sock.requestPairingCode(phoneNumber);
152
152
  this.logger.info(`Pairing Code: ${this.pairingCode}`);
153
- (_a = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PAIRING_CODE)) === null || _a === void 0 ? void 0 : _a(this.pairingCode);
153
+ this.events.emit("pairing-code", this.pairingCode);
154
154
  this.retryCount = 0;
155
155
  }
156
156
  catch (error) {
157
- this.logger.warn("Retry connecting for Pairing Code...");
158
- yield (0, helper_1.createDelay)(5000);
159
157
  this.retryCount++;
158
+ this.logger.warn(`Retry get pairing code for ${phoneNumber} (${this.retryCount}x)`);
159
+ yield (0, helper_1.createDelay)(1000);
160
160
  return yield this.startSocket(this.sessionId, this.options);
161
161
  }
162
162
  }
163
163
  this.sock.ev.on("connection.update", (update) => __awaiter(this, void 0, void 0, function* () {
164
- var _a, _b, _c, _d, _e, _f;
164
+ var _a, _b;
165
165
  const { connection, lastDisconnect, qr } = update;
166
166
  if (this.options.printQR && qr) {
167
167
  this.logger.info("QR Updated!");
168
- (_a = this.callback.get(Defaults_1.CALLBACK_KEY.ON_QR)) === null || _a === void 0 ? void 0 : _a(qr);
168
+ if (this.options.printQR) {
169
+ qrcode.generate(qr, { small: true });
170
+ }
171
+ this.events.emit("qr", qr);
169
172
  }
170
173
  if (connection == "connecting") {
171
174
  this.logger.info("Connecting...");
172
- (_b = this.callback.get(Defaults_1.CALLBACK_KEY.ON_CONNECTING)) === null || _b === void 0 ? void 0 : _b();
175
+ this.events.emit("connecting");
173
176
  }
174
177
  if (connection === "close" && !this.pairingCode) {
175
- const code = (_d = (_c = lastDisconnect === null || lastDisconnect === void 0 ? void 0 : lastDisconnect.error) === null || _c === void 0 ? void 0 : _c.output) === null || _d === void 0 ? void 0 : _d.statusCode;
178
+ const code = (_b = (_a = lastDisconnect === null || lastDisconnect === void 0 ? void 0 : lastDisconnect.error) === null || _a === void 0 ? void 0 : _a.output) === null || _b === void 0 ? void 0 : _b.statusCode;
176
179
  let shouldRetry = false;
177
180
  if (code != baileys_1.DisconnectReason.loggedOut && this.retryCount < 10) {
178
181
  shouldRetry = true;
@@ -183,11 +186,11 @@ class AutoWA {
183
186
  return yield this.startSocket(this.sessionId, this.options);
184
187
  }
185
188
  else {
186
- this.logger.warn("Disconnected!");
187
189
  this.retryCount = 0;
188
- (_e = this.callback.get(Defaults_1.CALLBACK_KEY.ON_DISCONNECTED)) === null || _e === void 0 ? void 0 : _e();
190
+ this.logger.warn("Disconnected!");
191
+ this.events.emit("disconnected");
189
192
  try {
190
- yield this.destroy();
193
+ yield this.destroy(true);
191
194
  }
192
195
  catch (error) { }
193
196
  return;
@@ -196,20 +199,19 @@ class AutoWA {
196
199
  if (connection == "open") {
197
200
  this.logger.info("Connected!");
198
201
  this.retryCount = 0;
199
- (_f = this.callback.get(Defaults_1.CALLBACK_KEY.ON_CONNECTED)) === null || _f === void 0 ? void 0 : _f();
202
+ this.events.emit("connected");
200
203
  }
201
204
  }));
202
205
  this.sock.ev.on("creds.update", () => __awaiter(this, void 0, void 0, function* () {
203
206
  yield saveCreds();
204
207
  }));
205
208
  this.sock.ev.on("messages.update", (message) => __awaiter(this, void 0, void 0, function* () {
206
- var _a;
207
209
  const msg = message[0];
208
210
  const data = Object.assign({ sessionId: this.sessionId, messageStatus: (0, helper_1.parseMessageStatusCodeToReadable)(msg.update.status) }, msg);
209
- (_a = this.callback.get(Defaults_1.CALLBACK_KEY.ON_MESSAGE_UPDATED)) === null || _a === void 0 ? void 0 : _a(data);
211
+ this.events.emit("message-updated", data);
210
212
  }));
211
213
  this.sock.ev.on("messages.upsert", (new_message) => __awaiter(this, void 0, void 0, function* () {
212
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
214
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
213
215
  if (new_message.type == "append")
214
216
  return;
215
217
  const myJid = (0, helper_1.phoneToJid)({ from: this.sock.user.id });
@@ -241,7 +243,7 @@ class AutoWA {
241
243
  }
242
244
  msg.quotedMessage = quotedMessage;
243
245
  const mediaTypes = ["image", "audio", "video", "document"];
244
- const setupMsg = (msg, parent) => {
246
+ const setupMsg = (msg) => {
245
247
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
246
248
  const text = ((_a = msg.message) === null || _a === void 0 ? void 0 : _a.conversation) ||
247
249
  ((_c = (_b = msg.message) === null || _b === void 0 ? void 0 : _b.extendedTextMessage) === null || _c === void 0 ? void 0 : _c.text) ||
@@ -259,7 +261,7 @@ class AutoWA {
259
261
  mediaTypes[mediaTypes.indexOf(mimeType.split("/")[0]) !== -1
260
262
  ? mediaTypes.indexOf(mimeType.split("/")[0])
261
263
  : 3];
262
- msg.downloadMedia = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve(""); });
264
+ msg.downloadMedia = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve(null); });
263
265
  msg.toSticker = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve([null, false]); });
264
266
  if (msg.hasMedia) {
265
267
  msg.downloadMedia = (...args_1) => __awaiter(this, [...args_1], void 0, function* (opts = {}) { return this.downloadMedia(msg, opts, ext); });
@@ -287,7 +289,6 @@ class AutoWA {
287
289
  const isGroup = from.includes("@g.us");
288
290
  const isStory = from.includes("status@broadcast");
289
291
  const isReaction = ((_o = msg.message) === null || _o === void 0 ? void 0 : _o.reactionMessage) ? true : false;
290
- // if (!parent)
291
292
  if ((_p = msg.key) === null || _p === void 0 ? void 0 : _p.fromMe) {
292
293
  msg.from = from;
293
294
  msg.receiver = from;
@@ -338,67 +339,66 @@ class AutoWA {
338
339
  return yield this.forwardMessage(Object.assign({ to, msg }, opts));
339
340
  });
340
341
  };
341
- msg.quotedMessage && setupMsg(msg.quotedMessage, msg);
342
+ msg.quotedMessage && setupMsg(msg.quotedMessage);
342
343
  setupMsg(msg);
343
344
  const { isStory, isReaction, isGroup } = msg;
344
345
  if (msg.key.fromMe) {
345
- (_s = this.callback.get(Defaults_1.CALLBACK_KEY.ON_MESSAGE_SENT)) === null || _s === void 0 ? void 0 : _s(msg);
346
+ this.events.emit("message-sent", msg);
346
347
  if (isStory) {
347
- (_t = this.callback.get(Defaults_1.CALLBACK_KEY.ON_STORY_SENT)) === null || _t === void 0 ? void 0 : _t(msg);
348
+ this.events.emit("story-sent", msg);
348
349
  }
349
350
  else if (isReaction) {
350
- (_u = this.callback.get(Defaults_1.CALLBACK_KEY.ON_REACTION_SENT)) === null || _u === void 0 ? void 0 : _u(msg);
351
+ this.events.emit("reaction-sent", msg);
351
352
  if (isGroup)
352
- (_v = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_REACTION_SENT)) === null || _v === void 0 ? void 0 : _v(msg);
353
+ this.events.emit("group-reaction-sent", msg);
353
354
  else
354
- (_w = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PRIVATE_REACTION_SENT)) === null || _w === void 0 ? void 0 : _w(msg);
355
+ this.events.emit("private-reaction-sent", msg);
355
356
  }
356
357
  else if (isGroup) {
357
- (_x = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_MESSAGE_SENT)) === null || _x === void 0 ? void 0 : _x(msg);
358
+ this.events.emit("group-message-sent", msg);
358
359
  }
359
360
  else {
360
- (_y = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PRIVATE_MESSAGE_SENT)) === null || _y === void 0 ? void 0 : _y(msg);
361
+ this.events.emit("private-message-sent", msg);
361
362
  }
362
363
  }
363
364
  else {
364
- (_z = this.callback.get(Defaults_1.CALLBACK_KEY.ON_MESSAGE_RECEIVED)) === null || _z === void 0 ? void 0 : _z(msg);
365
+ this.events.emit("message-received", msg);
365
366
  if (isStory) {
366
- (_0 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_STORY_RECEIVED)) === null || _0 === void 0 ? void 0 : _0(msg);
367
+ this.events.emit("story-received", msg);
367
368
  }
368
369
  else if (isReaction) {
369
- (_2 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_REACTION_RECEIVED)) === null || _2 === void 0 ? void 0 : _2(msg);
370
+ this.events.emit("reaction-received", msg);
370
371
  if (isGroup)
371
- (_3 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_REACTION_RECEIVED)) === null || _3 === void 0 ? void 0 : _3(msg);
372
+ this.events.emit("group-reaction-received", msg);
372
373
  else
373
- (_4 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PRIVATE_REACTION_RECEIVED)) === null || _4 === void 0 ? void 0 : _4(msg);
374
+ this.events.emit("private-reaction-received", msg);
374
375
  }
375
376
  else if (isGroup) {
376
- (_5 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_MESSAGE_RECEIVED)) === null || _5 === void 0 ? void 0 : _5(msg);
377
+ this.events.emit("group-message-received", msg);
377
378
  }
378
379
  else {
379
- (_6 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PRIVATE_MESSAGE_RECEIVED)) === null || _6 === void 0 ? void 0 : _6(msg);
380
+ this.events.emit("private-message-received", msg);
380
381
  }
381
382
  }
382
383
  if (isStory) {
383
- (_7 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_STORY)) === null || _7 === void 0 ? void 0 : _7(msg);
384
+ this.events.emit("story", msg);
384
385
  }
385
386
  else if (isReaction) {
386
- (_8 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_REACTION)) === null || _8 === void 0 ? void 0 : _8(msg);
387
+ this.events.emit("reaction", msg);
387
388
  if (isGroup)
388
- (_9 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_REACTION)) === null || _9 === void 0 ? void 0 : _9(msg);
389
+ this.events.emit("group-reaction", msg);
389
390
  else
390
- (_10 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PRIVATE_REACTION)) === null || _10 === void 0 ? void 0 : _10(msg);
391
+ this.events.emit("private-reaction", msg);
391
392
  }
392
393
  else if (isGroup) {
393
- (_11 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_MESSAGE)) === null || _11 === void 0 ? void 0 : _11(msg);
394
+ this.events.emit("group-message", msg);
394
395
  }
395
396
  else {
396
- (_12 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PRIVATE_MESSAGE)) === null || _12 === void 0 ? void 0 : _12(msg);
397
+ this.events.emit("private-message", msg);
397
398
  }
398
- (_13 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_MESSAGE)) === null || _13 === void 0 ? void 0 : _13(msg);
399
+ this.events.emit("message", msg);
399
400
  }));
400
401
  this.sock.ev.on("group-participants.update", (data) => __awaiter(this, void 0, void 0, function* () {
401
- var _a;
402
402
  const msg = Object.assign(Object.assign({}, data), { sessionId: this.sessionId });
403
403
  msg.replyWithText = (text, opts) => __awaiter(this, void 0, void 0, function* () {
404
404
  return yield this.sendText(Object.assign(Object.assign({}, opts), { text, to: data.id }));
@@ -421,7 +421,7 @@ class AutoWA {
421
421
  msg.replyWithRecording = (duration) => __awaiter(this, void 0, void 0, function* () {
422
422
  return yield this.sendRecording({ to: data.id, duration });
423
423
  });
424
- (_a = this.callback.get(Defaults_1.CALLBACK_KEY.ON_GROUP_MEMBER_UPDATE)) === null || _a === void 0 ? void 0 : _a(msg);
424
+ this.events.emit("group-member-update", msg);
425
425
  }));
426
426
  return this.sock;
427
427
  }
@@ -848,5 +848,20 @@ class AutoWA {
848
848
  return yield this.sock.groupParticipantsUpdate(group, participants, "demote");
849
849
  });
850
850
  }
851
+ on(event, listener) {
852
+ this.events.on(event, listener);
853
+ }
854
+ once(event, listener) {
855
+ this.events.once(event, listener);
856
+ }
857
+ off(event, listener) {
858
+ this.events.off(event, listener);
859
+ }
860
+ emit(event, ...args) {
861
+ return this.events.emit(event, ...args);
862
+ }
863
+ removeAllListeners(event) {
864
+ this.events.removeAllListeners(event);
865
+ }
851
866
  }
852
867
  exports.AutoWA = AutoWA;
@@ -1,34 +1,9 @@
1
- import { GroupMemberUpdate, IWAutoMessage, WAutoMessageUpdated } from "../Types";
2
- export default class AutoWAEvent {
3
- private callback;
4
- constructor(callback: Map<string, Function>);
5
- onQRUpdated: (listener: (qr: string) => void) => void;
6
- onConnected: (listener: () => void) => void;
7
- onDisconnected: (listener: () => void) => void;
8
- onConnecting: (listener: () => void) => void;
9
- onMessageUpdate: (listener: (data: WAutoMessageUpdated) => void) => void;
10
- onPairingCode: (listener: (code: string) => void) => void;
11
- onMessage: (listener: (msg: IWAutoMessage) => void) => void;
12
- onGroupMessage: (listener: (msg: IWAutoMessage) => void) => void;
13
- onPrivateMessage: (listener: (msg: IWAutoMessage) => void) => void;
14
- onMessageReceived: (listener: (msg: IWAutoMessage) => void) => void;
15
- onGroupMessageReceived: (listener: (msg: IWAutoMessage) => void) => void;
16
- onPrivateMessageReceived: (listener: (msg: IWAutoMessage) => void) => void;
17
- onMessageSent: (listener: (msg: IWAutoMessage) => void) => void;
18
- onGroupMessageSent: (listener: (msg: IWAutoMessage) => void) => void;
19
- onPrivateMessageSent: (listener: (msg: IWAutoMessage) => void) => void;
20
- onStory: (listener: (msg: IWAutoMessage) => void) => void;
21
- onStoryReceived: (listener: (msg: IWAutoMessage) => void) => void;
22
- onStorySent: (listener: (msg: IWAutoMessage) => void) => void;
23
- onReaction: (listener: (msg: IWAutoMessage) => void) => void;
24
- onReactionReceived: (listener: (msg: IWAutoMessage) => void) => void;
25
- onReactionSent: (listener: (msg: IWAutoMessage) => void) => void;
26
- onGroupReaction: (listener: (msg: IWAutoMessage) => void) => void;
27
- onGroupReactionReceived: (listener: (msg: IWAutoMessage) => void) => void;
28
- onGroupReactionSent: (listener: (msg: IWAutoMessage) => void) => void;
29
- onPrivateReaction: (listener: (msg: IWAutoMessage) => void) => void;
30
- onPrivateReactionReceived: (listener: (msg: IWAutoMessage) => void) => void;
31
- onPrivateReactionSent: (listener: (msg: IWAutoMessage) => void) => void;
32
- onGroupMemberUpdate: (listener: (msg: GroupMemberUpdate) => void) => void;
1
+ export default class AutoWAEvent<Events extends Record<string, any[]>> {
2
+ private emitter;
3
+ on<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
4
+ once<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
5
+ off<K extends keyof Events>(event: K, listener: (...args: Events[K]) => void): this;
6
+ emit<K extends keyof Events>(event: K, ...args: Events[K]): boolean;
7
+ removeAllListeners<K extends keyof Events>(event?: K): this;
33
8
  }
34
9
  //# sourceMappingURL=AutoWAEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoWAEvent.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWAEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,OAAO,CAAC,QAAQ,CAAwB;gBAE5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;IAI3C,WAAW,aAAc,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,UAE3C;IAEF,WAAW,aAAc,MAAM,IAAI,UAEjC;IAEF,cAAc,aAAc,MAAM,IAAI,UAEpC;IAEF,YAAY,aAAc,MAAM,IAAI,UAElC;IAEF,eAAe,aAAc,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,UAE9D;IAEF,aAAa,aAAc,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,UAE/C;IAEF,SAAS,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEjD;IAEF,cAAc,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEtD;IAEF,gBAAgB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAExD;IAEF,iBAAiB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEzD;IAEF,sBAAsB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE9D;IAEF,wBAAwB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEhE;IAEF,aAAa,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAErD;IAEF,kBAAkB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE1D;IAEF,oBAAoB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE5D;IAEF,OAAO,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE/C;IAEF,eAAe,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEvD;IAEF,WAAW,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEnD;IAEF,UAAU,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAElD;IAEF,kBAAkB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE1D;IAEF,cAAc,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEtD;IAEF,eAAe,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEvD;IAEF,uBAAuB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE/D;IAEF,mBAAmB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE3D;IAEF,iBAAiB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEzD;IAEF,yBAAyB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAEjE;IAEF,qBAAqB,aAAc,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,UAE7D;IAEF,mBAAmB,aAAc,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,UAE/D;CACH"}
1
+ {"version":3,"file":"AutoWAEvent.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWAEvent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,WAAW,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;IACnE,OAAO,CAAC,OAAO,CAAsB;IAErC,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAKlF,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAKpF,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAKnF,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO;IAInE,kBAAkB,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;CAI5D"}
@@ -1,93 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const Defaults_1 = require("../Defaults");
3
+ const events_1 = require("events");
4
4
  class AutoWAEvent {
5
- constructor(callback) {
6
- this.onQRUpdated = (listener) => {
7
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_QR, listener);
8
- };
9
- this.onConnected = (listener) => {
10
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_CONNECTED, listener);
11
- };
12
- this.onDisconnected = (listener) => {
13
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_DISCONNECTED, listener);
14
- };
15
- this.onConnecting = (listener) => {
16
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_CONNECTING, listener);
17
- };
18
- this.onMessageUpdate = (listener) => {
19
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_MESSAGE_UPDATED, listener);
20
- };
21
- this.onPairingCode = (listener) => {
22
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PAIRING_CODE, listener);
23
- };
24
- this.onMessage = (listener) => {
25
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_MESSAGE, listener);
26
- };
27
- this.onGroupMessage = (listener) => {
28
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_MESSAGE, listener);
29
- };
30
- this.onPrivateMessage = (listener) => {
31
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PRIVATE_MESSAGE, listener);
32
- };
33
- this.onMessageReceived = (listener) => {
34
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_MESSAGE_RECEIVED, listener);
35
- };
36
- this.onGroupMessageReceived = (listener) => {
37
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_MESSAGE_RECEIVED, listener);
38
- };
39
- this.onPrivateMessageReceived = (listener) => {
40
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PRIVATE_MESSAGE_RECEIVED, listener);
41
- };
42
- this.onMessageSent = (listener) => {
43
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_MESSAGE_SENT, listener);
44
- };
45
- this.onGroupMessageSent = (listener) => {
46
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_MESSAGE_SENT, listener);
47
- };
48
- this.onPrivateMessageSent = (listener) => {
49
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PRIVATE_MESSAGE_SENT, listener);
50
- };
51
- this.onStory = (listener) => {
52
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_STORY, listener);
53
- };
54
- this.onStoryReceived = (listener) => {
55
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_STORY_RECEIVED, listener);
56
- };
57
- this.onStorySent = (listener) => {
58
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_STORY_SENT, listener);
59
- };
60
- this.onReaction = (listener) => {
61
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_REACTION, listener);
62
- };
63
- this.onReactionReceived = (listener) => {
64
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_REACTION_RECEIVED, listener);
65
- };
66
- this.onReactionSent = (listener) => {
67
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_REACTION_SENT, listener);
68
- };
69
- this.onGroupReaction = (listener) => {
70
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_REACTION, listener);
71
- };
72
- this.onGroupReactionReceived = (listener) => {
73
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_REACTION_RECEIVED, listener);
74
- };
75
- this.onGroupReactionSent = (listener) => {
76
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_REACTION_SENT, listener);
77
- };
78
- this.onPrivateReaction = (listener) => {
79
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PRIVATE_REACTION, listener);
80
- };
81
- this.onPrivateReactionReceived = (listener) => {
82
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PRIVATE_REACTION_RECEIVED, listener);
83
- };
84
- this.onPrivateReactionSent = (listener) => {
85
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_PRIVATE_REACTION_SENT, listener);
86
- };
87
- this.onGroupMemberUpdate = (listener) => {
88
- this.callback.set(Defaults_1.CALLBACK_KEY.ON_GROUP_MEMBER_UPDATE, listener);
89
- };
90
- this.callback = callback;
5
+ constructor() {
6
+ this.emitter = new events_1.EventEmitter();
7
+ }
8
+ on(event, listener) {
9
+ this.emitter.on(event, listener);
10
+ return this;
11
+ }
12
+ once(event, listener) {
13
+ this.emitter.once(event, listener);
14
+ return this;
15
+ }
16
+ off(event, listener) {
17
+ this.emitter.off(event, listener);
18
+ return this;
19
+ }
20
+ emit(event, ...args) {
21
+ return this.emitter.emit(event, ...args);
22
+ }
23
+ removeAllListeners(event) {
24
+ this.emitter.removeAllListeners(event);
25
+ return this;
91
26
  }
92
27
  }
93
28
  exports.default = AutoWAEvent;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whatsauto.js",
3
- "version": "1.1.4",
3
+ "version": "1.2.0",
4
4
  "description": "Easy WhatsApp Automation with Session",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "@hapi/boom": "^10.0.1",
28
28
  "@types/fluent-ffmpeg": "^2.1.27",
29
29
  "@types/fs-extra": "^11.0.4",
30
- "@whiskeysockets/baileys": "^6.7.9",
30
+ "@whiskeysockets/baileys": "^6.7.17",
31
31
  "colorette": "^2.0.20",
32
32
  "file-type": "^16.5.3",
33
33
  "fluent-ffmpeg": "^2.1.3",