whatsauto.js 1.0.3 → 1.0.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.
package/README.md CHANGED
@@ -37,7 +37,7 @@ Additionally, WhatsAuto.js uses the Object-Oriented Programming (OOP) paradigm,
37
37
  ### Make WA Session / Client
38
38
 
39
39
  ```ts
40
- import AutoWA from "../dist";
40
+ import AutoWA from "whatsauto.js";
41
41
 
42
42
  // using QR (default)
43
43
  const autoWA = new AutoWA("session_name", { printQR: true });
@@ -45,11 +45,7 @@ const autoWA = new AutoWA("session_name", { printQR: true });
45
45
  const autoWA = new AutoWA("session_name");
46
46
  // or, using pair code (experimental)
47
47
  const autoWA = new AutoWA("session_name", { phoneNumber: "628xxxx" });
48
- ```
49
-
50
- > See full session parameters [here](#session-parameters)
51
48
 
52
- ```ts
53
49
  // listen to some event
54
50
  const ev = autoWA.event;
55
51
 
@@ -84,6 +80,58 @@ await autoWA.initialize();
84
80
  }
85
81
  ```
86
82
 
83
+ ### IWAutoMessage APIs
84
+
85
+ ```ts
86
+ ev.onMessageReceived(async (msg) => {
87
+ // read this message
88
+ await msg.read();
89
+
90
+ if (msg.text == "react")
91
+ // react this message
92
+ await msg.react("🐾");
93
+
94
+ if (msg.text == "text")
95
+ // reply this message with text
96
+ await msg.replyWithText("Hello!");
97
+
98
+ if (msg.text == "image")
99
+ // reply this message with image
100
+ await msg.replyWithImage("https://picsum.photos/536/354");
101
+
102
+ if (msg.text == "video")
103
+ // reply this message with video
104
+ await msg.replyWithVideo(
105
+ "https://github.com/rafaelreis-hotmart/Audio-Sample-files/raw/master/sample.mp4"
106
+ );
107
+
108
+ if (msg.text == "audio")
109
+ // reply this message with audio
110
+ await msg.replyWithAudio(
111
+ "https://github.com/rafaelreis-hotmart/Audio-Sample-files/raw/master/sample.mp3"
112
+ );
113
+
114
+ if (msg.text == "sticker") {
115
+ // convert this message to sticker buffer (if its has media)
116
+ const sticker = await msg.toSticker();
117
+ // or
118
+ // const sticker = await msg.toSticker({ pack: "whatsauto.js", author: "freack21" });
119
+ if (sticker) {
120
+ // reply this message with audio
121
+ await msg.replyWithSticker(sticker);
122
+ }
123
+ }
124
+
125
+ if (msg.text == "typing")
126
+ // reply this message with typing presence
127
+ await msg.replyWithTyping(1000); // 1000ms / 1s
128
+
129
+ if (msg.text == "recording")
130
+ // reply this message with recording presence
131
+ await msg.replyWithRecording(1000); // 1000ms / 1s
132
+ });
133
+ ```
134
+
87
135
  ## 🧾 Disclaimer
88
136
 
89
137
  This library is for educational and research purposes only. Use it responsibly and at your own risk.
@@ -6,6 +6,17 @@ export interface IWAutoSendMessage {
6
6
  answering?: proto.IWebMessageInfo;
7
7
  mentions?: string[];
8
8
  }
9
+ export interface IWAutoForwardMessage {
10
+ to: string | number;
11
+ msg: proto.IWebMessageInfo;
12
+ isGroup?: boolean;
13
+ mentions?: string[];
14
+ }
15
+ export interface IWAutoPhoneToJid {
16
+ from: string | number;
17
+ isGroup?: boolean;
18
+ reverse?: boolean;
19
+ }
9
20
  export interface IWAutoSendMedia extends IWAutoSendMessage {
10
21
  /**
11
22
  * Media you want to send
@@ -20,6 +31,16 @@ export interface IWAutoSendTyping extends IWAutoSendMessage {
20
31
  */
21
32
  duration: number;
22
33
  }
34
+ export interface IWAutoDownloadMedia {
35
+ /**
36
+ * path of your downloaded media
37
+ */
38
+ path?: string;
39
+ /**
40
+ * return this function as buffer
41
+ */
42
+ asBuffer?: boolean;
43
+ }
23
44
  export interface Repliable {
24
45
  /**
25
46
  * reply this message with text
@@ -28,19 +49,19 @@ export interface Repliable {
28
49
  /**
29
50
  * reply this message with Audio
30
51
  */
31
- replyWithAudio: (data: IWAutoSendMedia) => Promise<proto.WebMessageInfo>;
52
+ replyWithAudio: (media: string | Buffer, data?: Partial<IWAutoSendMedia>) => Promise<proto.WebMessageInfo>;
32
53
  /**
33
54
  * reply this message with Video
34
55
  */
35
- replyWithVideo: (data: IWAutoSendMedia) => Promise<proto.WebMessageInfo>;
56
+ replyWithVideo: (media: string | Buffer, data?: Partial<IWAutoSendMedia>) => Promise<proto.WebMessageInfo>;
36
57
  /**
37
58
  * reply this message with Image
38
59
  */
39
- replyWithImage: (data: IWAutoSendMedia) => Promise<proto.WebMessageInfo>;
60
+ replyWithImage: (media: string | Buffer, data?: Partial<IWAutoSendMedia>) => Promise<proto.WebMessageInfo>;
40
61
  /**
41
62
  * reply this message with Sticker
42
63
  */
43
- replyWithSticker: (data: Partial<IWAutoSendMedia & IStickerOptions>) => Promise<proto.WebMessageInfo>;
64
+ replyWithSticker: (sticker: Buffer | null, data?: Partial<IWAutoSendMedia & IStickerOptions>) => Promise<proto.WebMessageInfo>;
44
65
  /**
45
66
  * reply this message with Typing
46
67
  */
@@ -89,9 +110,9 @@ export interface IWAutoMessage extends proto.IWebMessageInfo, Repliable {
89
110
  quotedMessage: IWAutoMessage;
90
111
  /**
91
112
  * @param path save media location path without extension
92
- * @example "./my_media"
113
+ * @example "my_media"
93
114
  */
94
- downloadMedia: (path?: string) => Promise<string>;
115
+ downloadMedia: (opts?: IWAutoDownloadMedia) => Promise<string | Buffer>;
95
116
  /**
96
117
  * react this message
97
118
  */
@@ -100,6 +121,14 @@ export interface IWAutoMessage extends proto.IWebMessageInfo, Repliable {
100
121
  * read this message
101
122
  */
102
123
  read: () => Promise<void>;
124
+ /**
125
+ * convert this message to sticker
126
+ */
127
+ toSticker: (props?: Omit<IStickerOptions, "media">) => Promise<Buffer | null>;
128
+ /**
129
+ * forward this message
130
+ */
131
+ forward: (to: string | number, props?: Partial<IWAutoForwardMessage>) => Promise<proto.IWebMessageInfo>;
103
132
  }
104
133
  export interface IWAutoMessageReceived extends IWAutoMessage {
105
134
  /**
@@ -139,11 +168,12 @@ export interface IWAutoSessionConfig {
139
168
  phoneNumber?: string;
140
169
  }
141
170
  export interface IStickerOptions {
142
- filePath: string;
171
+ media: string | Buffer;
143
172
  pack?: string;
144
173
  author?: string;
145
174
  transparent?: boolean;
146
175
  bgColor?: string;
176
+ sticker?: Buffer;
147
177
  }
148
178
  export interface GroupMemberUpdate extends Repliable {
149
179
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEpF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,EAAE,KAAK,CAAC,eAAe,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAElG;;OAEG;IACH,cAAc,EAAE,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,EAAE,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEnC;;OAEG;IACH,cAAc,EAAE,CACd,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,KAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEnC;;OAEG;IACH,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC,KAC9C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEnC;;OAEG;IACH,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;OAEG;IACH,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,aAAc,SAAQ,KAAK,CAAC,eAAe,EAAE,SAAS;IACrE;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAE7B;;;OAGG;IACH,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IAExE;;OAEG;IACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE3D;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE9E;;OAEG;IACH,OAAO,EAAE,CACP,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,KAAK,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,KAClC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,GAAG,iBAAiB,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IAClD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;CACjF,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ"}
@@ -1,12 +1,8 @@
1
1
  import { proto } from "@whiskeysockets/baileys";
2
- import { IWAutoMessage, WAutoMessageUpdated } from "../Types";
2
+ import { IWAutoMessage, IWAutoPhoneToJid, WAutoMessageUpdated } from "../Types";
3
3
  export declare const getMediaMimeType: (msg: IWAutoMessage) => string;
4
4
  export declare const parseMessageStatusCodeToReadable: (code: proto.WebMessageInfo.Status) => WAutoMessageUpdated["messageStatus"];
5
- export declare const phoneToJid: ({ to, isGroup, reverse, }: {
6
- to: string | number;
7
- isGroup?: boolean;
8
- reverse?: boolean;
9
- }) => string;
5
+ export declare const phoneToJid: ({ from, isGroup, reverse, }: IWAutoPhoneToJid) => string;
10
6
  export declare const createDelay: (duration?: number) => Promise<unknown>;
11
7
  export declare const is: {
12
8
  array: (array: any) => boolean;
@@ -21,4 +17,5 @@ export declare const to: {
21
17
  };
22
18
  export declare const isSessionExist: (sessionId: string) => boolean;
23
19
  export declare const setCredentialsDir: (dirname: string) => void;
20
+ export declare const getBuffer: (url: string) => Promise<Buffer>;
24
21
  //# 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,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAM9D,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,8BAIpB;IACD,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,MAgBH,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"}
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,MAgBrB,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"}
@@ -45,12 +45,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
45
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
46
46
  };
47
47
  Object.defineProperty(exports, "__esModule", { value: true });
48
- exports.setCredentialsDir = exports.isSessionExist = exports.to = exports.is = exports.createDelay = exports.phoneToJid = exports.parseMessageStatusCodeToReadable = exports.getMediaMimeType = void 0;
48
+ exports.getBuffer = exports.setCredentialsDir = exports.isSessionExist = exports.to = exports.is = exports.createDelay = exports.phoneToJid = exports.parseMessageStatusCodeToReadable = exports.getMediaMimeType = void 0;
49
49
  const baileys_1 = require("@whiskeysockets/baileys");
50
50
  const Error_1 = require("../Error");
51
51
  const fs = __importStar(require("fs"));
52
52
  const path_1 = __importDefault(require("path"));
53
53
  const Defaults_1 = require("../Defaults");
54
+ const axios_1 = __importDefault(require("axios"));
54
55
  const getMediaMimeType = (msg) => {
55
56
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
56
57
  if (!(msg === null || msg === void 0 ? void 0 : msg.message))
@@ -80,10 +81,10 @@ const parseMessageStatusCodeToReadable = (code) => {
80
81
  }
81
82
  };
82
83
  exports.parseMessageStatusCodeToReadable = parseMessageStatusCodeToReadable;
83
- const phoneToJid = ({ to, isGroup = false, reverse = false, }) => {
84
- if (!to)
85
- throw new Error_1.ValidationError('"to" parameter is required!');
86
- let number = to.toString();
84
+ const phoneToJid = ({ from, isGroup = false, reverse = false, }) => {
85
+ if (!from)
86
+ throw new Error_1.ValidationError('"from" parameter is required!');
87
+ let number = from.toString();
87
88
  if (number.includes("@broadcast"))
88
89
  return number;
89
90
  if (isGroup || number.includes("@g.us")) {
@@ -157,3 +158,14 @@ const setCredentialsDir = (dirname) => {
157
158
  Defaults_1.CREDENTIALS.DIR_NAME = dirname;
158
159
  };
159
160
  exports.setCredentialsDir = setCredentialsDir;
161
+ const getBuffer = (url) => __awaiter(void 0, void 0, void 0, function* () {
162
+ try {
163
+ const response = yield axios_1.default.get(url, {
164
+ responseType: "arraybuffer",
165
+ });
166
+ return Buffer.from(response.data);
167
+ }
168
+ catch (error) { }
169
+ return null;
170
+ });
171
+ exports.getBuffer = getBuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"make-stiker.d.ts","sourceRoot":"","sources":["../../src/Utils/make-stiker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,cAAc,YAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CA4DpF,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAA2D,CAAC"}
1
+ {"version":3,"file":"make-stiker.d.ts","sourceRoot":"","sources":["../../src/Utils/make-stiker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,eAAO,MAAM,cAAc,YAAmB,eAAe,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAoEpF,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAA2D,CAAC"}
@@ -18,15 +18,17 @@ const { Image } = require("node-webpmux");
18
18
  const fs_1 = __importDefault(require("fs"));
19
19
  const crypto_1 = require("crypto");
20
20
  const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function* () {
21
- const randomName = `./${Date.now()}${Math.random() * 1000}.webp`;
21
+ const getRandomName = () => `./${Date.now()}${Math.random() * 1000}.webp`;
22
+ const randomName = getRandomName();
22
23
  let buffer = null;
23
- const { filePath, pack = "", author = "", transparent = true, bgColor = "white" } = options;
24
- if (!filePath)
24
+ const { media, pack = "", author = "", transparent = true, bgColor = "white" } = options;
25
+ if (!media)
25
26
  return buffer;
27
+ const tempName = typeof media == "string" ? media : getRandomName();
26
28
  const data = JSON.stringify({
27
29
  "sticker-pack-id": (0, exports.generateStickerID)(),
28
- "sticker-pack-name": author,
29
- "sticker-pack-publisher": pack,
30
+ "sticker-pack-name": pack,
31
+ "sticker-pack-publisher": author,
30
32
  emojis: ["🐾"],
31
33
  });
32
34
  const exif = Buffer.concat([
@@ -38,11 +40,14 @@ const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function*
38
40
  ]);
39
41
  exif.writeUIntLE(new TextEncoder().encode(data).length, 14, 4);
40
42
  const backgroundColor = transparent ? "color=white@0.0" : `color=${bgColor}`;
43
+ if (Buffer.isBuffer(media)) {
44
+ fs_1.default.writeFileSync(tempName, media.toString("base64"), "base64");
45
+ }
41
46
  return new Promise((resolve) => {
42
- ffmpeg(filePath)
43
- .input(filePath)
47
+ ffmpeg(tempName)
48
+ .input(tempName)
44
49
  .on("error", () => {
45
- fs_1.default.unlinkSync(filePath);
50
+ fs_1.default.unlinkSync(tempName);
46
51
  if (fs_1.default.existsSync(randomName))
47
52
  fs_1.default.unlinkSync(randomName);
48
53
  resolve(buffer);
@@ -60,7 +65,7 @@ const makeWebpBuffer = (options) => __awaiter(void 0, void 0, void 0, function*
60
65
  }))();
61
66
  image.exif = exif;
62
67
  buffer = yield image.save(null);
63
- fs_1.default.unlinkSync(filePath);
68
+ fs_1.default.unlinkSync(tempName);
64
69
  fs_1.default.unlinkSync(randomName);
65
70
  resolve(buffer);
66
71
  }))
@@ -1,5 +1,5 @@
1
- import { WASocket, proto } from "@whiskeysockets/baileys";
2
- import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, IStickerOptions, WAutoGroupMemberActionOptions, IWAutoSendMedia } from "../Types";
1
+ import { WASocket } from "@whiskeysockets/baileys";
2
+ import { IWAutoSendMessage, IWAutoSendTyping, IWAutoSessionConfig, IWAutoMessage, IStickerOptions, WAutoGroupMemberActionOptions, IWAutoSendMedia, IWAutoPhoneToJid, IWAutoForwardMessage } from "../Types";
3
3
  import AutoWAEvent from "./AutoWAEvent";
4
4
  export declare class AutoWA {
5
5
  private logger;
@@ -10,6 +10,7 @@ export declare class AutoWA {
10
10
  options: IWAutoSessionConfig;
11
11
  event: AutoWAEvent;
12
12
  private pairingCode?;
13
+ defaultStickerProps: IStickerOptions;
13
14
  constructor(sessionId: string, options?: IWAutoSessionConfig);
14
15
  setLogging(logging: boolean): Promise<void>;
15
16
  initialize(): Promise<void>;
@@ -17,21 +18,22 @@ export declare class AutoWA {
17
18
  private startSocket;
18
19
  private setupWASocket;
19
20
  destroy(): Promise<void>;
20
- isExist({ to, isGroup }: IWAutoSendMessage): Promise<boolean>;
21
+ isExist({ from, isGroup }: IWAutoPhoneToJid): Promise<boolean>;
21
22
  private downloadMedia;
22
23
  private validateReceiver;
23
- sendText({ to, text, isGroup, ...props }: IWAutoSendMessage): Promise<proto.WebMessageInfo | undefined>;
24
- sendImage({ to, text, isGroup, media, ...props }: IWAutoSendMedia): Promise<proto.WebMessageInfo | undefined>;
25
- sendVideo({ to, text, isGroup, media, ...props }: IWAutoSendMedia): Promise<proto.WebMessageInfo | undefined>;
26
- sendDocument({ to, text, isGroup, media, filename, ...props }: IWAutoSendMedia & {
24
+ sendText({ to, text, isGroup, ...props }: IWAutoSendMessage): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
25
+ sendImage({ to, text, isGroup, media, failMsg, ...props }: IWAutoSendMedia): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
26
+ sendVideo({ to, text, isGroup, media, failMsg, ...props }: IWAutoSendMedia): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
27
+ sendDocument({ to, text, isGroup, media, filename, failMsg, ...props }: IWAutoSendMedia & {
27
28
  filename: string;
28
- }): Promise<proto.WebMessageInfo | undefined>;
29
- sendAudio({ to, isGroup, media, voiceNote, ...props }: Omit<IWAutoSendMedia, "text">): Promise<proto.WebMessageInfo | undefined>;
30
- sendReaction({ to, text, isGroup, answering }: IWAutoSendMessage): Promise<proto.WebMessageInfo>;
29
+ }): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
30
+ sendAudio({ to, isGroup, media, voiceNote, failMsg, ...props }: Omit<IWAutoSendMedia, "text">): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
31
+ sendReaction({ to, text, isGroup, answering }: IWAutoSendMessage): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
31
32
  sendTyping({ to, duration, isGroup }: IWAutoSendTyping): Promise<void>;
32
33
  sendRecording({ to, duration, isGroup }: IWAutoSendTyping): Promise<void>;
33
34
  readMessage(msgs: IWAutoMessage[]): Promise<void>;
34
- sendSticker({ to, isGroup, filePath, pack, author, failMsg, ...props }: IWAutoSendMedia & IStickerOptions): Promise<proto.WebMessageInfo | undefined>;
35
+ sendSticker({ to, isGroup, media, sticker, failMsg, ...props }: IWAutoSendMedia & IStickerOptions): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
36
+ forwardMessage({ to, msg, isGroup, ...props }: IWAutoForwardMessage): Promise<import("@whiskeysockets/baileys").proto.WebMessageInfo>;
35
37
  getProfileInfo(target: string): Promise<{
36
38
  profilePictureUrl: string;
37
39
  status: {
@@ -1 +1 @@
1
- {"version":3,"file":"AutoWA.d.ts","sourceRoot":"","sources":["../../src/WhatsApp/AutoWA.ts"],"names":[],"mappings":"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"}
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,EAGL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EAGb,eAAe,EAEf,6BAA6B,EAC7B,eAAe,EACf,gBAAgB,EAEhB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AASlB,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;IAyBP,OAAO,CAAC,EAAE,IAAI,EAAE,OAAe,EAAE,EAAE,gBAAgB;YAkBlD,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,KAAK,EACL,OAAO,EACP,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,GAAG,eAAe;IAsDvB,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB;IAkB3E,cAAc,CAAC,MAAM,EAAE,MAAM;;;;;;;IAiB7B,gBAAgB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBAjuBnC,yBAAI;;IA4uBrC,qBAAqB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBA5uBxC,yBAAI;;IAuvBrC,kBAAkB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBAvvBrC,yBAAI;;IAkwBrC,iBAAiB,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,6BAA6B;;;wBAlwBpC,yBAAI;;CA4wBnD"}
@@ -73,6 +73,11 @@ const P = require("pino")({
73
73
  });
74
74
  class AutoWA {
75
75
  constructor(sessionId, options) {
76
+ this.defaultStickerProps = {
77
+ media: "",
78
+ pack: "WhatsAuto.js",
79
+ author: "freack21",
80
+ };
76
81
  if ((0, helper_1.isSessionExist)(sessionId) && _1.sessions.get(sessionId))
77
82
  throw new Error_1.ValidationError(Defaults_1.Messages.sessionAlreadyExist(sessionId));
78
83
  const defaultOptions = {
@@ -106,7 +111,7 @@ class AutoWA {
106
111
  throw new Error_1.ValidationError(Defaults_1.Messages.paremetersNotValid("phoneNumber"));
107
112
  options.printQR = false;
108
113
  options.phoneNumber = (0, helper_1.phoneToJid)({
109
- to: options.phoneNumber,
114
+ from: options.phoneNumber,
110
115
  });
111
116
  }
112
117
  return this.startSocket(sessionId, options);
@@ -143,7 +148,7 @@ class AutoWA {
143
148
  !this.pairingCode &&
144
149
  !this.sock.authState.creds.registered) {
145
150
  try {
146
- this.pairingCode = yield this.sock.requestPairingCode(this.options.phoneNumber);
151
+ this.pairingCode = yield this.sock.requestPairingCode((0, helper_1.phoneToJid)({ from: this.options.phoneNumber, reverse: true }));
147
152
  this.logger.info(`Pairing Code: ${this.pairingCode}`);
148
153
  (_a = this.callback.get(Defaults_1.CALLBACK_KEY.ON_PAIRING_CODE)) === null || _a === void 0 ? void 0 : _a(this.pairingCode);
149
154
  this.retryCount = 0;
@@ -195,7 +200,6 @@ class AutoWA {
195
200
  }
196
201
  }));
197
202
  this.sock.ev.on("creds.update", () => __awaiter(this, void 0, void 0, function* () {
198
- this.logger.info("Creds Updated!");
199
203
  yield saveCreds();
200
204
  }));
201
205
  this.sock.ev.on("messages.update", (message) => __awaiter(this, void 0, void 0, function* () {
@@ -242,6 +246,7 @@ class AutoWA {
242
246
  msg.text = text;
243
247
  const mediaTypes = ["image", "audio", "video", "document"];
244
248
  const setupMsgMedia = (msg) => {
249
+ var _a;
245
250
  const mimeType = (0, helper_1.getMediaMimeType)(msg);
246
251
  const ext = mime_1.default.getExtension(mimeType);
247
252
  msg.hasMedia = mimeType !== "";
@@ -251,18 +256,38 @@ class AutoWA {
251
256
  mediaTypes[mediaTypes.indexOf(mimeType.split("/")[0]) !== -1
252
257
  ? mediaTypes.indexOf(mimeType.split("/")[0])
253
258
  : 3];
254
- msg.downloadMedia = (path) => ((path) => __awaiter(this, void 0, void 0, function* () { return (path = ""); }))(path);
255
- if (msg.hasMedia)
256
- msg.downloadMedia = (path = "my_media") => this.downloadMedia(msg, path + "." + ext);
259
+ msg.downloadMedia = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve(""); });
260
+ msg.toSticker = () => __awaiter(this, void 0, void 0, function* () { return Promise.resolve(null); });
261
+ if (msg.hasMedia) {
262
+ msg.downloadMedia = (...args_1) => __awaiter(this, [...args_1], void 0, function* (opts = {}) { return this.downloadMedia(msg, opts, ext); });
263
+ }
264
+ if (msg.hasMedia || ((_a = msg.quotedMessage) === null || _a === void 0 ? void 0 : _a.hasMedia)) {
265
+ msg.toSticker = (props) => __awaiter(this, void 0, void 0, function* () {
266
+ let mediaPath;
267
+ if (msg.hasMedia && ["image", "video"].includes(msg.mediaType)) {
268
+ mediaPath = yield msg.downloadMedia();
269
+ }
270
+ else if (msg.quotedMessage &&
271
+ msg.quotedMessage.hasMedia &&
272
+ ["image", "video"].includes(msg.quotedMessage.mediaType)) {
273
+ mediaPath = yield msg.quotedMessage.downloadMedia();
274
+ }
275
+ if (!mediaPath)
276
+ return null;
277
+ const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), props), { media: mediaPath });
278
+ const buffer = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
279
+ return buffer;
280
+ });
281
+ }
257
282
  };
258
- setupMsgMedia(msg);
259
283
  msg.quotedMessage && setupMsgMedia(msg.quotedMessage);
284
+ setupMsgMedia(msg);
260
285
  const from = ((_0 = msg.key) === null || _0 === void 0 ? void 0 : _0.remoteJid) || "";
261
286
  const participant = ((_2 = msg.key) === null || _2 === void 0 ? void 0 : _2.participant) || "";
262
287
  const isGroup = from.includes("@g.us");
263
288
  const isStory = from.includes("status@broadcast");
264
289
  const isReaction = ((_3 = msg.message) === null || _3 === void 0 ? void 0 : _3.reactionMessage) ? true : false;
265
- const myJid = (0, helper_1.phoneToJid)({ to: this.sock.user.id.split(":")[0] });
290
+ const myJid = (0, helper_1.phoneToJid)({ from: this.sock.user.id.split(":")[0] });
266
291
  msg.isGroup = isGroup;
267
292
  msg.isStory = isStory;
268
293
  msg.isReaction = isReaction;
@@ -274,17 +299,17 @@ class AutoWA {
274
299
  msg.replyWithText = (text, opts) => __awaiter(this, void 0, void 0, function* () {
275
300
  return yield this.sendText(Object.assign(Object.assign({}, opts), { text, to: from, answering: msg }));
276
301
  });
277
- msg.replyWithAudio = (opts) => __awaiter(this, void 0, void 0, function* () {
278
- return yield this.sendAudio(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
302
+ msg.replyWithAudio = (media, opts) => __awaiter(this, void 0, void 0, function* () {
303
+ return yield this.sendAudio(Object.assign(Object.assign({ media }, opts), { to: from, answering: msg }));
279
304
  });
280
- msg.replyWithImage = (opts) => __awaiter(this, void 0, void 0, function* () {
281
- return yield this.sendImage(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
305
+ msg.replyWithImage = (media, opts) => __awaiter(this, void 0, void 0, function* () {
306
+ return yield this.sendImage(Object.assign(Object.assign({ media }, opts), { to: from, answering: msg }));
282
307
  });
283
- msg.replyWithVideo = (opts) => __awaiter(this, void 0, void 0, function* () {
284
- return yield this.sendVideo(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
308
+ msg.replyWithVideo = (media, opts) => __awaiter(this, void 0, void 0, function* () {
309
+ return yield this.sendVideo(Object.assign(Object.assign({ media }, opts), { to: from, answering: msg }));
285
310
  });
286
- msg.replyWithSticker = (opts) => __awaiter(this, void 0, void 0, function* () {
287
- return yield this.sendSticker(Object.assign(Object.assign({}, opts), { to: from, answering: msg }));
311
+ msg.replyWithSticker = (sticker, opts) => __awaiter(this, void 0, void 0, function* () {
312
+ return yield this.sendSticker(Object.assign(Object.assign({ sticker }, opts), { to: from, answering: msg }));
288
313
  });
289
314
  msg.replyWithTyping = (duration) => __awaiter(this, void 0, void 0, function* () {
290
315
  return yield this.sendTyping({ to: from, duration });
@@ -298,6 +323,9 @@ class AutoWA {
298
323
  msg.react = (reaction) => __awaiter(this, void 0, void 0, function* () {
299
324
  return yield this.sendReaction({ to: from, answering: msg, text: reaction });
300
325
  });
326
+ msg.forward = (to, opts) => __awaiter(this, void 0, void 0, function* () {
327
+ return yield this.forwardMessage(Object.assign({ to, msg }, opts));
328
+ });
301
329
  if (msg.key.fromMe) {
302
330
  msg = Object.assign(Object.assign({}, msg), { receiver: from, author: myJid });
303
331
  (_6 = this.callback.get(Defaults_1.CALLBACK_KEY.ON_MESSAGE_SENT)) === null || _6 === void 0 ? void 0 : _6(msg);
@@ -370,17 +398,17 @@ class AutoWA {
370
398
  msg.replyWithText = (text, opts) => __awaiter(this, void 0, void 0, function* () {
371
399
  return yield this.sendText(Object.assign(Object.assign({}, opts), { text, to: data.id }));
372
400
  });
373
- msg.replyWithAudio = (opts) => __awaiter(this, void 0, void 0, function* () {
374
- return yield this.sendAudio(Object.assign(Object.assign({}, opts), { to: data.id }));
401
+ msg.replyWithAudio = (media, opts) => __awaiter(this, void 0, void 0, function* () {
402
+ return yield this.sendAudio(Object.assign(Object.assign({ media }, opts), { to: data.id }));
375
403
  });
376
- msg.replyWithImage = (opts) => __awaiter(this, void 0, void 0, function* () {
377
- return yield this.sendImage(Object.assign(Object.assign({}, opts), { to: data.id }));
404
+ msg.replyWithImage = (media, opts) => __awaiter(this, void 0, void 0, function* () {
405
+ return yield this.sendImage(Object.assign(Object.assign({ media }, opts), { to: data.id }));
378
406
  });
379
- msg.replyWithVideo = (opts) => __awaiter(this, void 0, void 0, function* () {
380
- return yield this.sendVideo(Object.assign(Object.assign({}, opts), { to: data.id }));
407
+ msg.replyWithVideo = (media, opts) => __awaiter(this, void 0, void 0, function* () {
408
+ return yield this.sendVideo(Object.assign(Object.assign({ media }, opts), { to: data.id }));
381
409
  });
382
- msg.replyWithSticker = (opts) => __awaiter(this, void 0, void 0, function* () {
383
- return yield this.sendSticker(Object.assign(Object.assign({}, opts), { to: data.id }));
410
+ msg.replyWithSticker = (sticker, opts) => __awaiter(this, void 0, void 0, function* () {
411
+ return yield this.sendSticker(Object.assign(Object.assign({ sticker }, opts), { to: data.id }));
384
412
  });
385
413
  msg.replyWithTyping = (duration) => __awaiter(this, void 0, void 0, function* () {
386
414
  return yield this.sendTyping({ to: data.id, duration });
@@ -402,28 +430,35 @@ class AutoWA {
402
430
  destroy() {
403
431
  return __awaiter(this, void 0, void 0, function* () {
404
432
  this.logger.info("Destroying...");
433
+ let error = false;
434
+ let msg = "";
405
435
  try {
406
436
  yield this.sock.logout();
407
437
  }
408
- catch (error) {
409
- const msg = `Logout failed: ${error.message}`;
438
+ catch (err) {
439
+ msg = `Logout failed: ${err.message}`;
440
+ error = true;
441
+ }
442
+ finally {
443
+ this.sock.end(undefined);
444
+ const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, this.sessionId + Defaults_1.CREDENTIALS.PREFIX);
445
+ if (fs_1.default.existsSync(dir)) {
446
+ fs_1.default.rmSync(dir, { force: true, recursive: true });
447
+ }
448
+ this.logger.info("Destroyed!");
449
+ }
450
+ if (error) {
410
451
  this.logger.error(msg);
411
452
  throw new Error_1.AutoWAError(msg);
412
453
  }
413
- this.sock.end(undefined);
414
- const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, this.sessionId + Defaults_1.CREDENTIALS.PREFIX);
415
- if (fs_1.default.existsSync(dir)) {
416
- fs_1.default.rmSync(dir, { force: true, recursive: true });
417
- }
418
- this.logger.info("Destroyed!");
419
454
  });
420
455
  }
421
456
  isExist(_a) {
422
- return __awaiter(this, arguments, void 0, function* ({ to, isGroup = false }) {
457
+ return __awaiter(this, arguments, void 0, function* ({ from, isGroup = false }) {
423
458
  var _b, _c;
424
459
  try {
425
460
  const receiver = (0, helper_1.phoneToJid)({
426
- to,
461
+ from: from,
427
462
  isGroup,
428
463
  });
429
464
  if (receiver.includes("@broadcast")) {
@@ -441,20 +476,22 @@ class AutoWA {
441
476
  }
442
477
  });
443
478
  }
444
- downloadMedia(msg, mediaPath) {
479
+ downloadMedia(msg, opts, ext) {
445
480
  return __awaiter(this, void 0, void 0, function* () {
446
- const filePath = path_1.default.join(process.cwd(), mediaPath);
481
+ const filePath = path_1.default.join(process.cwd(), (opts.path || "my_media") + "." + ext);
447
482
  const buf = yield (0, baileys_1.downloadMediaMessage)(msg, "buffer", {});
483
+ if (opts.asBuffer)
484
+ return Promise.resolve(buf);
448
485
  fs_1.default.writeFileSync(filePath, buf.toString("base64"), "base64");
449
486
  return Promise.resolve(filePath);
450
487
  });
451
488
  }
452
489
  validateReceiver(_a) {
453
- return __awaiter(this, arguments, void 0, function* ({ to, isGroup = false }) {
454
- const oldPhone = to;
455
- to = (0, helper_1.phoneToJid)({ to, isGroup });
490
+ return __awaiter(this, arguments, void 0, function* ({ from, isGroup = false }) {
491
+ const oldPhone = from;
492
+ from = (0, helper_1.phoneToJid)({ from, isGroup });
456
493
  const isRegistered = yield this.isExist({
457
- to,
494
+ from,
458
495
  isGroup,
459
496
  });
460
497
  if (!isRegistered) {
@@ -463,7 +500,7 @@ class AutoWA {
463
500
  };
464
501
  }
465
502
  return {
466
- receiver: to,
503
+ receiver: from,
467
504
  };
468
505
  });
469
506
  }
@@ -471,7 +508,7 @@ class AutoWA {
471
508
  return __awaiter(this, void 0, void 0, function* () {
472
509
  var { to, text = "", isGroup = false } = _a, props = __rest(_a, ["to", "text", "isGroup"]);
473
510
  const { receiver, msg } = yield this.validateReceiver({
474
- to,
511
+ from: to,
475
512
  isGroup,
476
513
  });
477
514
  if (msg)
@@ -486,109 +523,133 @@ class AutoWA {
486
523
  }
487
524
  sendImage(_a) {
488
525
  return __awaiter(this, void 0, void 0, function* () {
489
- var { to, text = "", isGroup = false, media } = _a, props = __rest(_a, ["to", "text", "isGroup", "media"]);
526
+ var { to, text = "", isGroup = false, media, failMsg } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "failMsg"]);
490
527
  if (!media)
491
528
  throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
492
529
  const { receiver, msg } = yield this.validateReceiver({
493
- to,
530
+ from: to,
494
531
  isGroup,
495
532
  });
496
533
  if (msg)
497
534
  throw new Error_1.AutoWAError(msg);
498
- return yield this.sock.sendMessage(receiver, {
499
- image: typeof media == "string"
500
- ? {
501
- url: media,
502
- }
503
- : media,
504
- caption: text,
505
- mentions: props.mentions,
506
- }, {
507
- quoted: props.answering,
508
- });
535
+ try {
536
+ return yield this.sock.sendMessage(receiver, {
537
+ image: typeof media == "string"
538
+ ? {
539
+ url: media,
540
+ }
541
+ : media,
542
+ caption: text,
543
+ mentions: props.mentions,
544
+ }, {
545
+ quoted: props.answering,
546
+ });
547
+ }
548
+ catch (error) {
549
+ this.logger.error("Failed send media:" + error.message);
550
+ return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the image🥹" }, props));
551
+ }
509
552
  });
510
553
  }
511
554
  sendVideo(_a) {
512
555
  return __awaiter(this, void 0, void 0, function* () {
513
- var { to, text = "", isGroup = false, media } = _a, props = __rest(_a, ["to", "text", "isGroup", "media"]);
556
+ var { to, text = "", isGroup = false, media, failMsg } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "failMsg"]);
514
557
  if (!media)
515
558
  throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
516
559
  const { receiver, msg } = yield this.validateReceiver({
517
- to,
560
+ from: to,
518
561
  isGroup,
519
562
  });
520
563
  if (msg)
521
564
  throw new Error_1.AutoWAError(msg);
522
- return yield this.sock.sendMessage(receiver, {
523
- video: typeof media == "string"
524
- ? {
525
- url: media,
526
- }
527
- : media,
528
- caption: text,
529
- mentions: props.mentions,
530
- }, {
531
- quoted: props.answering,
532
- });
565
+ try {
566
+ return yield this.sock.sendMessage(receiver, {
567
+ video: typeof media == "string"
568
+ ? {
569
+ url: media,
570
+ }
571
+ : media,
572
+ caption: text,
573
+ mentions: props.mentions,
574
+ }, {
575
+ quoted: props.answering,
576
+ });
577
+ }
578
+ catch (error) {
579
+ this.logger.error("Failed send media:" + error.message);
580
+ return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the video🥹" }, props));
581
+ }
533
582
  });
534
583
  }
535
584
  sendDocument(_a) {
536
585
  return __awaiter(this, void 0, void 0, function* () {
537
- var { to, text = "", isGroup = false, media, filename } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "filename"]);
586
+ var { to, text = "", isGroup = false, media, filename, failMsg } = _a, props = __rest(_a, ["to", "text", "isGroup", "media", "filename", "failMsg"]);
538
587
  if (!media)
539
588
  throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
540
589
  const mimetype = mime_1.default.getType(filename);
541
590
  if (!mimetype)
542
591
  throw new Error_1.AutoWAError(`Filename must include valid extension`);
543
592
  const { receiver, msg } = yield this.validateReceiver({
544
- to,
593
+ from: to,
545
594
  isGroup,
546
595
  });
547
596
  if (msg)
548
597
  throw new Error_1.AutoWAError(msg);
549
- return yield this.sock.sendMessage(receiver, {
550
- fileName: filename,
551
- document: typeof media == "string"
552
- ? {
553
- url: media,
554
- }
555
- : media,
556
- mimetype: mimetype,
557
- caption: text,
558
- mentions: props.mentions,
559
- }, {
560
- quoted: props.answering,
561
- });
598
+ try {
599
+ return yield this.sock.sendMessage(receiver, {
600
+ fileName: filename,
601
+ document: typeof media == "string"
602
+ ? {
603
+ url: media,
604
+ }
605
+ : media,
606
+ mimetype: mimetype,
607
+ caption: text,
608
+ mentions: props.mentions,
609
+ }, {
610
+ quoted: props.answering,
611
+ });
612
+ }
613
+ catch (error) {
614
+ this.logger.error("Failed send media:" + error.message);
615
+ return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the document" }, props));
616
+ }
562
617
  });
563
618
  }
564
619
  sendAudio(_a) {
565
620
  return __awaiter(this, void 0, void 0, function* () {
566
- var { to, isGroup = false, media, voiceNote = false } = _a, props = __rest(_a, ["to", "isGroup", "media", "voiceNote"]);
621
+ var { to, isGroup = false, media, voiceNote = false, failMsg } = _a, props = __rest(_a, ["to", "isGroup", "media", "voiceNote", "failMsg"]);
567
622
  if (!media)
568
623
  throw new Error_1.AutoWAError("'media' parameter must be Buffer or String URL");
569
624
  const { receiver, msg } = yield this.validateReceiver({
570
- to,
625
+ from: to,
571
626
  isGroup,
572
627
  });
573
628
  if (msg)
574
629
  throw new Error_1.AutoWAError(msg);
575
- return yield this.sock.sendMessage(receiver, {
576
- audio: typeof media == "string"
577
- ? {
578
- url: media,
579
- }
580
- : media,
581
- ptt: voiceNote,
582
- mentions: props.mentions,
583
- }, {
584
- quoted: props.answering,
585
- });
630
+ try {
631
+ return yield this.sock.sendMessage(receiver, {
632
+ audio: typeof media == "string"
633
+ ? {
634
+ url: media,
635
+ }
636
+ : media,
637
+ ptt: voiceNote,
638
+ mentions: props.mentions,
639
+ }, {
640
+ quoted: props.answering,
641
+ });
642
+ }
643
+ catch (error) {
644
+ this.logger.error("Failed send media:" + error.message);
645
+ return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the audio🥹" }, props));
646
+ }
586
647
  });
587
648
  }
588
649
  sendReaction(_a) {
589
650
  return __awaiter(this, arguments, void 0, function* ({ to, text, isGroup = false, answering }) {
590
651
  const { receiver, msg } = yield this.validateReceiver({
591
- to,
652
+ from: to,
592
653
  isGroup,
593
654
  });
594
655
  if (msg)
@@ -604,7 +665,7 @@ class AutoWA {
604
665
  sendTyping(_a) {
605
666
  return __awaiter(this, arguments, void 0, function* ({ to, duration = 1000, isGroup = false }) {
606
667
  const { receiver, msg } = yield this.validateReceiver({
607
- to,
668
+ from: to,
608
669
  isGroup,
609
670
  });
610
671
  if (msg)
@@ -617,7 +678,7 @@ class AutoWA {
617
678
  sendRecording(_a) {
618
679
  return __awaiter(this, arguments, void 0, function* ({ to, duration = 1000, isGroup = false }) {
619
680
  const { receiver, msg } = yield this.validateReceiver({
620
- to,
681
+ from: to,
621
682
  isGroup,
622
683
  });
623
684
  if (msg)
@@ -634,31 +695,66 @@ class AutoWA {
634
695
  }
635
696
  sendSticker(_a) {
636
697
  return __awaiter(this, void 0, void 0, function* () {
637
- var { to, isGroup, filePath, pack = "WhatsAuto.js", author = "freack21", failMsg } = _a, props = __rest(_a, ["to", "isGroup", "filePath", "pack", "author", "failMsg"]);
638
- if (!filePath)
639
- throw new Error_1.AutoWAError("'filePath' parameter must be String to file path");
698
+ var { to, isGroup, media, sticker, failMsg } = _a, props = __rest(_a, ["to", "isGroup", "media", "sticker", "failMsg"]);
640
699
  const { receiver, msg } = yield this.validateReceiver({
641
- to,
700
+ from: to,
642
701
  isGroup,
643
702
  });
644
703
  if (msg)
645
704
  throw new Error_1.AutoWAError(msg);
646
- const buffer = yield (0, make_stiker_1.makeWebpBuffer)(Object.assign({ filePath, pack, author }, props));
647
- if (buffer === null) {
648
- return yield this.sendText(Object.assign({ to, text: failMsg || "The server failed to create a sticker🥹", isGroup }, props));
705
+ let buf;
706
+ if (!sticker) {
707
+ if (!media)
708
+ throw new Error_1.AutoWAError("'media' or 'sticker' parameter must be filled");
709
+ if (!(typeof media === "string" || Buffer.isBuffer(media))) {
710
+ throw new Error_1.AutoWAError("'media' parameter must be String or Buffer");
711
+ }
712
+ const stickerProps = Object.assign(Object.assign(Object.assign({}, this.defaultStickerProps), { media }), props);
713
+ buf = yield (0, make_stiker_1.makeWebpBuffer)(stickerProps);
714
+ if (buf === null) {
715
+ return yield this.sendText(Object.assign({ to, text: failMsg || "There is error while creating the sticker🥹", isGroup }, props));
716
+ }
717
+ sticker = buf;
649
718
  }
650
- return yield this.sock.sendMessage(receiver, {
651
- sticker: buffer,
652
- mentions: props.mentions,
653
- }, {
654
- quoted: props.answering,
719
+ try {
720
+ return yield this.sock.sendMessage(receiver, {
721
+ sticker,
722
+ mentions: props.mentions,
723
+ }, {
724
+ quoted: props.answering,
725
+ });
726
+ }
727
+ catch (error) {
728
+ this.logger.error("Failed send media:" + error.message);
729
+ return yield this.sendText(Object.assign({ to: receiver, text: failMsg || "There is error while trying to send the sticker🥹" }, props));
730
+ }
731
+ });
732
+ }
733
+ forwardMessage(_a) {
734
+ return __awaiter(this, void 0, void 0, function* () {
735
+ var { to, msg, isGroup = false } = _a, props = __rest(_a, ["to", "msg", "isGroup"]);
736
+ const { receiver, msg: err_msg } = yield this.validateReceiver({
737
+ from: to,
738
+ isGroup,
655
739
  });
740
+ if (err_msg)
741
+ throw new Error_1.AutoWAError(err_msg);
742
+ try {
743
+ return yield this.sock.sendMessage(receiver, {
744
+ forward: msg,
745
+ mentions: props.mentions,
746
+ force: true,
747
+ });
748
+ }
749
+ catch (error) {
750
+ this.logger.error("Failed forward a message!");
751
+ }
656
752
  });
657
753
  }
658
754
  getProfileInfo(target) {
659
755
  return __awaiter(this, void 0, void 0, function* () {
660
756
  const { receiver, msg } = yield this.validateReceiver({
661
- to: target,
757
+ from: target,
662
758
  });
663
759
  if (msg)
664
760
  throw new Error_1.AutoWAError(msg);
@@ -675,48 +771,48 @@ class AutoWA {
675
771
  addMemberToGroup(_a) {
676
772
  return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
677
773
  const { receiver: group, msg } = yield this.validateReceiver({
678
- to,
774
+ from: to,
679
775
  isGroup: true,
680
776
  });
681
777
  if (msg)
682
778
  throw new Error_1.AutoWAError(msg);
683
- participants = participants.map((d) => (0, helper_1.phoneToJid)({ to: d }));
779
+ participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
684
780
  return yield this.sock.groupParticipantsUpdate(group, participants, "add");
685
781
  });
686
782
  }
687
783
  removeMemberFromGroup(_a) {
688
784
  return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
689
785
  const { receiver: group, msg } = yield this.validateReceiver({
690
- to,
786
+ from: to,
691
787
  isGroup: true,
692
788
  });
693
789
  if (msg)
694
790
  throw new Error_1.AutoWAError(msg);
695
- participants = participants.map((d) => (0, helper_1.phoneToJid)({ to: d }));
791
+ participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
696
792
  return yield this.sock.groupParticipantsUpdate(group, participants, "remove");
697
793
  });
698
794
  }
699
795
  promoteMemberGroup(_a) {
700
796
  return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
701
797
  const { receiver: group, msg } = yield this.validateReceiver({
702
- to,
798
+ from: to,
703
799
  isGroup: true,
704
800
  });
705
801
  if (msg)
706
802
  throw new Error_1.AutoWAError(msg);
707
- participants = participants.map((d) => (0, helper_1.phoneToJid)({ to: d }));
803
+ participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
708
804
  return yield this.sock.groupParticipantsUpdate(group, participants, "promote");
709
805
  });
710
806
  }
711
807
  demoteMemberGroup(_a) {
712
808
  return __awaiter(this, arguments, void 0, function* ({ participants, to }) {
713
809
  const { receiver: group, msg } = yield this.validateReceiver({
714
- to,
810
+ from: to,
715
811
  isGroup: true,
716
812
  });
717
813
  if (msg)
718
814
  throw new Error_1.AutoWAError(msg);
719
- participants = participants.map((d) => (0, helper_1.phoneToJid)({ to: d }));
815
+ participants = participants.map((d) => (0, helper_1.phoneToJid)({ from: d }));
720
816
  return yield this.sock.groupParticipantsUpdate(group, participants, "demote");
721
817
  });
722
818
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "whatsauto.js",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Easy WhatsApp Automation with Session",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",