@deathnaitsa/wa-api 1.0.44 → 2.0.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 +348 -0
- package/build.js +73 -0
- package/dist/WhatsAppClient.js +1 -0
- package/dist/index.js +1 -21
- package/package.json +9 -31
- package/socket.js +424 -0
- package/LICENSE +0 -2
- package/dist/Defaults/index.d.ts +0 -18
- package/dist/Defaults/index.d.ts.map +0 -1
- package/dist/Defaults/index.js +0 -28
- package/dist/Error/index.d.ts +0 -5
- package/dist/Error/index.d.ts.map +0 -1
- package/dist/Error/index.js +0 -14
- package/dist/Messaging/index.d.ts +0 -44
- package/dist/Messaging/index.d.ts.map +0 -1
- package/dist/Messaging/index.js +0 -121
- package/dist/Socket/Socket.d.ts +0 -21
- package/dist/Socket/Socket.d.ts.map +0 -1
- package/dist/Socket/Socket.interface.d.ts +0 -4
- package/dist/Socket/Socket.interface.d.ts.map +0 -1
- package/dist/Socket/Socket.interface.js +0 -2
- package/dist/Socket/Socket.js +0 -31
- package/dist/Socket/index.d.ts +0 -22
- package/dist/Socket/index.d.ts.map +0 -1
- package/dist/Socket/index.js +0 -375
- package/dist/Types/WhatsappOptions.d.ts +0 -3
- package/dist/Types/WhatsappOptions.d.ts.map +0 -1
- package/dist/Types/WhatsappOptions.js +0 -2
- package/dist/Types/index.d.ts +0 -51
- package/dist/Types/index.d.ts.map +0 -1
- package/dist/Types/index.js +0 -2
- package/dist/Utils/create-delay.d.ts +0 -2
- package/dist/Utils/create-delay.d.ts.map +0 -1
- package/dist/Utils/create-delay.js +0 -18
- package/dist/Utils/error.d.ts +0 -4
- package/dist/Utils/error.d.ts.map +0 -1
- package/dist/Utils/error.js +0 -8
- package/dist/Utils/index.d.ts +0 -5
- package/dist/Utils/index.d.ts.map +0 -1
- package/dist/Utils/index.js +0 -21
- package/dist/Utils/is-exist.d.ts +0 -3
- package/dist/Utils/is-exist.d.ts.map +0 -1
- package/dist/Utils/is-exist.js +0 -38
- package/dist/Utils/message-status.d.ts +0 -4
- package/dist/Utils/message-status.d.ts.map +0 -1
- package/dist/Utils/message-status.js +0 -18
- package/dist/Utils/phone-to-jid.d.ts +0 -5
- package/dist/Utils/phone-to-jid.d.ts.map +0 -1
- package/dist/Utils/phone-to-jid.js +0 -30
- package/dist/Utils/save-media.d.ts +0 -5
- package/dist/Utils/save-media.d.ts.map +0 -1
- package/dist/Utils/save-media.js +0 -47
- package/dist/Utils/set-credentials-dir.d.ts +0 -2
- package/dist/Utils/set-credentials-dir.d.ts.map +0 -1
- package/dist/Utils/set-credentials-dir.js +0 -8
- package/dist/Utils/set-credentials.d.ts +0 -2
- package/dist/Utils/set-credentials.d.ts.map +0 -1
- package/dist/Utils/set-credentials.js +0 -8
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/whatsapp/index.d.ts +0 -15
- package/dist/whatsapp/index.d.ts.map +0 -1
- package/dist/whatsapp/index.js +0 -206
- package/readme.md +0 -223
package/dist/Types/index.d.ts
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { WAMessageUpdate, proto } from "@deathnaitsa/baileys";
|
|
3
|
-
export interface SendMessageTypes {
|
|
4
|
-
to: string | number;
|
|
5
|
-
text?: string;
|
|
6
|
-
sessionId: string;
|
|
7
|
-
isGroup?: boolean;
|
|
8
|
-
answering?: proto.IWebMessageInfo;
|
|
9
|
-
}
|
|
10
|
-
export interface SendMediaTypes extends SendMessageTypes {
|
|
11
|
-
media?: string | Buffer;
|
|
12
|
-
}
|
|
13
|
-
export interface SendTypingTypes extends SendMessageTypes {
|
|
14
|
-
duration: number;
|
|
15
|
-
}
|
|
16
|
-
export interface SendReadTypes {
|
|
17
|
-
sessionId: string;
|
|
18
|
-
key: proto.IMessageKey;
|
|
19
|
-
}
|
|
20
|
-
export interface MessageReceived extends proto.IWebMessageInfo {
|
|
21
|
-
/**
|
|
22
|
-
* Your Session ID
|
|
23
|
-
*/
|
|
24
|
-
sessionId: string;
|
|
25
|
-
/**
|
|
26
|
-
* @param path save image location path with extension
|
|
27
|
-
* @example "./myimage.jpg"
|
|
28
|
-
*/
|
|
29
|
-
saveImage: (path: string) => Promise<void>;
|
|
30
|
-
/**
|
|
31
|
-
* @param path save video location path with extension
|
|
32
|
-
* @example "./myvideo.mp4"
|
|
33
|
-
*/
|
|
34
|
-
saveVideo: (path: string) => Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* @param path save image location path without extension
|
|
37
|
-
* @example "./mydocument"
|
|
38
|
-
*/
|
|
39
|
-
saveDocument: (path: string) => Promise<void>;
|
|
40
|
-
}
|
|
41
|
-
export interface StartSessionParams {
|
|
42
|
-
/**
|
|
43
|
-
* Print QR Code into Terminal
|
|
44
|
-
*/
|
|
45
|
-
printQR: boolean;
|
|
46
|
-
}
|
|
47
|
-
export type MessageUpdated = WAMessageUpdate & {
|
|
48
|
-
sessionId: string;
|
|
49
|
-
messageStatus: "error" | "pending" | "server" | "delivered" | "read" | "played";
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Types/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AACD,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,eAAe;IAC5D;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C;;;OAGG;IACH,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,WAAW,GACX,MAAM,GACN,QAAQ,CAAC;CACd,CAAC"}
|
package/dist/Types/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-delay.d.ts","sourceRoot":"","sources":["../../src/Utils/create-delay.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,cAAoB,MAAM,qBAMjD,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createDelay = void 0;
|
|
13
|
-
const createDelay = (duration = 1000) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
-
return yield new Promise((resolve) => setTimeout(() => {
|
|
15
|
-
resolve(true);
|
|
16
|
-
}, duration));
|
|
17
|
-
});
|
|
18
|
-
exports.createDelay = createDelay;
|
package/dist/Utils/error.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/Utils/error.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAG5B"}
|
package/dist/Utils/error.js
DELETED
package/dist/Utils/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
package/dist/Utils/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./phone-to-jid"), exports);
|
|
18
|
-
__exportStar(require("./is-exist"), exports);
|
|
19
|
-
__exportStar(require("./create-delay"), exports);
|
|
20
|
-
__exportStar(require("./set-credentials-dir"), exports);
|
|
21
|
-
__exportStar(require("./set-credentials"), exports);
|
package/dist/Utils/is-exist.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"is-exist.d.ts","sourceRoot":"","sources":["../../src/Utils/is-exist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,eAAO,MAAM,OAAO,gCAIjB,gBAAgB,KAAG,QAAQ,OAAO,CAiBpC,CAAC"}
|
package/dist/Utils/is-exist.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.isExist = void 0;
|
|
13
|
-
const Error_1 = require("../Error");
|
|
14
|
-
const Socket_1 = require("../Socket");
|
|
15
|
-
const phone_to_jid_1 = require("./phone-to-jid");
|
|
16
|
-
const isExist = ({ sessionId, to, isGroup = false, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
17
|
-
var _a, _b;
|
|
18
|
-
try {
|
|
19
|
-
const session = (0, Socket_1.getSession)(sessionId);
|
|
20
|
-
if (!session)
|
|
21
|
-
throw new Error_1.WhatsappError("Session ID Not Found!");
|
|
22
|
-
const receiver = (0, phone_to_jid_1.phoneToJid)({
|
|
23
|
-
to: to,
|
|
24
|
-
isGroup: isGroup,
|
|
25
|
-
});
|
|
26
|
-
if (!isGroup) {
|
|
27
|
-
const one = Boolean((_b = (_a = (yield (session === null || session === void 0 ? void 0 : session.onWhatsApp(receiver)))) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.exists);
|
|
28
|
-
return one;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
return Boolean((yield session.groupMetadata(receiver)).id);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
throw error;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
exports.isExist = isExist;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"message-status.d.ts","sourceRoot":"","sources":["../../src/Utils/message-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,eAAO,MAAM,gCAAgC,SACrC,MAAM,cAAc,CAAC,MAAM,KAChC,cAAc,CAAC,eAAe,CAQhC,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseMessageStatusCodeToReadable = void 0;
|
|
4
|
-
const baileys_1 = require("@deathnaitsa/baileys");
|
|
5
|
-
const parseMessageStatusCodeToReadable = (code) => {
|
|
6
|
-
if (code == baileys_1.proto.WebMessageInfo.Status.PENDING)
|
|
7
|
-
return "pending";
|
|
8
|
-
if (code == baileys_1.proto.WebMessageInfo.Status.SERVER_ACK)
|
|
9
|
-
return "server";
|
|
10
|
-
if (code == baileys_1.proto.WebMessageInfo.Status.DELIVERY_ACK)
|
|
11
|
-
return "delivered";
|
|
12
|
-
if (code == baileys_1.proto.WebMessageInfo.Status.READ)
|
|
13
|
-
return "read";
|
|
14
|
-
if (code == baileys_1.proto.WebMessageInfo.Status.PLAYED)
|
|
15
|
-
return "played";
|
|
16
|
-
return "error";
|
|
17
|
-
};
|
|
18
|
-
exports.parseMessageStatusCodeToReadable = parseMessageStatusCodeToReadable;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"phone-to-jid.d.ts","sourceRoot":"","sources":["../../src/Utils/phone-to-jid.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,UAAU;QAIjB,MAAM,GAAG,MAAM;;MAEjB,MAgBH,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.phoneToJid = void 0;
|
|
4
|
-
const Error_1 = require("../Error");
|
|
5
|
-
const baileys_1 = require("@deathnaitsa/baileys");
|
|
6
|
-
const isPhoneNumberValidCountry = (phone) => {
|
|
7
|
-
return Object.keys(baileys_1.PHONENUMBER_MCC).some((key) => {
|
|
8
|
-
return phone.startsWith(key);
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
const phoneToJid = ({ to, isGroup = false, }) => {
|
|
12
|
-
if (!to)
|
|
13
|
-
throw new Error_1.WhatsappError('parameter "to" is required');
|
|
14
|
-
let number = to.toString();
|
|
15
|
-
if (!isPhoneNumberValidCountry(number)) {
|
|
16
|
-
throw new Error_1.WhatsappError("phone number must start with valid country code");
|
|
17
|
-
}
|
|
18
|
-
if (isGroup) {
|
|
19
|
-
number = number.replace(/\s|[+]|[-]/gim, "");
|
|
20
|
-
if (!number.includes("@g.us"))
|
|
21
|
-
number = number + "@g.us";
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
number = number.replace(/\s|[+]|[-]/gim, "");
|
|
25
|
-
if (!number.includes("@s.whatsapp.net"))
|
|
26
|
-
number = number + "@s.whatsapp.net";
|
|
27
|
-
}
|
|
28
|
-
return number;
|
|
29
|
-
};
|
|
30
|
-
exports.phoneToJid = phoneToJid;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { MessageReceived } from "../Types";
|
|
2
|
-
export declare const saveImageHandler: (msg: MessageReceived, path: string) => Promise<void>;
|
|
3
|
-
export declare const saveVideoHandler: (msg: MessageReceived, path: string) => Promise<void>;
|
|
4
|
-
export declare const saveDocumentHandler: (msg: MessageReceived, path: string) => Promise<void>;
|
|
5
|
-
//# sourceMappingURL=save-media.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"save-media.d.ts","sourceRoot":"","sources":["../../src/Utils/save-media.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAQ3C,eAAO,MAAM,gBAAgB,QAAe,eAAe,QAAQ,MAAM,kBAOxE,CAAC;AACF,eAAO,MAAM,gBAAgB,QAAe,eAAe,QAAQ,MAAM,kBAOxE,CAAC;AAEF,eAAO,MAAM,mBAAmB,QACzB,eAAe,QACd,MAAM,kBAUb,CAAC"}
|
package/dist/Utils/save-media.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.saveDocumentHandler = exports.saveVideoHandler = exports.saveImageHandler = void 0;
|
|
16
|
-
const baileys_1 = require("@deathnaitsa/baileys");
|
|
17
|
-
const error_1 = __importDefault(require("./error"));
|
|
18
|
-
const promises_1 = __importDefault(require("fs/promises"));
|
|
19
|
-
const saveMedia = (path, data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
-
yield promises_1.default.writeFile(path, data.toString("base64"), "base64");
|
|
21
|
-
});
|
|
22
|
-
const saveImageHandler = (msg, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
-
var _a;
|
|
24
|
-
if (!((_a = msg.message) === null || _a === void 0 ? void 0 : _a.imageMessage))
|
|
25
|
-
throw new error_1.default("Message is not contain Image");
|
|
26
|
-
const buf = yield (0, baileys_1.downloadMediaMessage)(msg, "buffer", {});
|
|
27
|
-
return saveMedia(path, buf);
|
|
28
|
-
});
|
|
29
|
-
exports.saveImageHandler = saveImageHandler;
|
|
30
|
-
const saveVideoHandler = (msg, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
31
|
-
var _b;
|
|
32
|
-
if (!((_b = msg.message) === null || _b === void 0 ? void 0 : _b.videoMessage))
|
|
33
|
-
throw new error_1.default("Message is not contain Video");
|
|
34
|
-
const buf = yield (0, baileys_1.downloadMediaMessage)(msg, "buffer", {});
|
|
35
|
-
return saveMedia(path, buf);
|
|
36
|
-
});
|
|
37
|
-
exports.saveVideoHandler = saveVideoHandler;
|
|
38
|
-
const saveDocumentHandler = (msg, path) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
-
var _c, _d;
|
|
40
|
-
if (!((_c = msg.message) === null || _c === void 0 ? void 0 : _c.documentMessage))
|
|
41
|
-
throw new error_1.default("Message is not contain Document");
|
|
42
|
-
const buf = yield (0, baileys_1.downloadMediaMessage)(msg, "buffer", {});
|
|
43
|
-
const ext = (_d = msg.message.documentMessage.fileName) === null || _d === void 0 ? void 0 : _d.split(".").pop();
|
|
44
|
-
path += "." + ext;
|
|
45
|
-
return saveMedia(path, buf);
|
|
46
|
-
});
|
|
47
|
-
exports.saveDocumentHandler = saveDocumentHandler;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-credentials-dir.d.ts","sourceRoot":"","sources":["../../src/Utils/set-credentials-dir.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,aAAa,MAAM,SAEhD,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setCredentialsDir = void 0;
|
|
4
|
-
const Defaults_1 = require("../Defaults");
|
|
5
|
-
const setCredentialsDir = (dirname = "wa_credentials") => {
|
|
6
|
-
Defaults_1.CREDENTIALS.DIR_NAME = dirname;
|
|
7
|
-
};
|
|
8
|
-
exports.setCredentialsDir = setCredentialsDir;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set-credentials-dir.d.ts","sourceRoot":"","sources":["../../src/Utils/set-credentials.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,aAAa,MAAM,SAEhD,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setCredentials = void 0;
|
|
4
|
-
const Defaults_1 = require("../Defaults");
|
|
5
|
-
const setCredentials = (dirname = "_credentials") => {
|
|
6
|
-
Defaults_1.CREDENTIALS.SUFFIX = dirname;
|
|
7
|
-
};
|
|
8
|
-
exports.setCredentials = setCredentials;
|
package/dist/index.d.ts
DELETED
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
package/dist/whatsapp/index.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Socket } from "../Socket/Socket";
|
|
2
|
-
import { WhatsappOptions } from "../Types/WhatsappOptions";
|
|
3
|
-
export declare class Whatsapp {
|
|
4
|
-
constructor(options?: WhatsappOptions);
|
|
5
|
-
sockets: Map<string, Socket>;
|
|
6
|
-
callback: Map<string, Function>;
|
|
7
|
-
retryCount: Map<string, number>;
|
|
8
|
-
load(each?: (socket: Socket) => Socket): Promise<void>;
|
|
9
|
-
private shouldLoadSession;
|
|
10
|
-
private getSocket;
|
|
11
|
-
startSession: (socket: Socket) => Promise<Socket>;
|
|
12
|
-
private isSessionExistAndRunning;
|
|
13
|
-
deleteSession: (sessionId: string) => Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Whatsapp/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAc3D,qBAAa,QAAQ;gBACP,OAAO,GAAE,eAAoB;IAEzC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACzC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAC5C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEtC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;IAsB5C,OAAO,CAAC,iBAAiB,CAoBvB;IAEF,OAAO,CAAC,SAAS,CACe;IAEhC,YAAY,WAAkB,MAAM,KAAG,QAAQ,MAAM,CAAC,CAiGpD;IAEF,OAAO,CAAC,wBAAwB,CAoB9B;IAEF,aAAa,cAAqB,MAAM,mBAWtC;CACH"}
|
package/dist/whatsapp/index.js
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.Whatsapp = void 0;
|
|
39
|
-
const baileys_1 = __importStar(require("@deathnaitsa/baileys"));
|
|
40
|
-
const Defaults_1 = require("../Defaults");
|
|
41
|
-
const Socket_1 = require("../Socket/Socket");
|
|
42
|
-
const fs_1 = __importDefault(require("fs"));
|
|
43
|
-
const path_1 = __importDefault(require("path"));
|
|
44
|
-
const Error_1 = require("../Error");
|
|
45
|
-
const pino_1 = __importDefault(require("pino"));
|
|
46
|
-
const message_status_1 = require("../Utils/message-status");
|
|
47
|
-
const save_media_1 = require("../Utils/save-media");
|
|
48
|
-
class Whatsapp {
|
|
49
|
-
constructor(options = {}) {
|
|
50
|
-
this.sockets = new Map();
|
|
51
|
-
this.callback = new Map();
|
|
52
|
-
this.retryCount = new Map();
|
|
53
|
-
this.shouldLoadSession = (socket) => {
|
|
54
|
-
if (fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME)) &&
|
|
55
|
-
fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, socket.id + "_" + socket.phoneNumber + Defaults_1.CREDENTIALS.SUFFIX)) &&
|
|
56
|
-
fs_1.default.readdirSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, socket.id + "_" + socket.phoneNumber + Defaults_1.CREDENTIALS.SUFFIX)).length &&
|
|
57
|
-
!this.getSocket(socket.id)) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
return false;
|
|
61
|
-
};
|
|
62
|
-
this.getSocket = (key) => { var _a; return (_a = this.sockets.get(key)) !== null && _a !== void 0 ? _a : null; };
|
|
63
|
-
this.startSession = (socket) => __awaiter(this, void 0, void 0, function* () {
|
|
64
|
-
if (this.isSessionExistAndRunning(socket))
|
|
65
|
-
throw new Error_1.WhatsappError(Defaults_1.Messages.sessionAlreadyExist(socket.id));
|
|
66
|
-
const logger = (0, pino_1.default)({ level: "silent" });
|
|
67
|
-
const { version } = yield (0, baileys_1.fetchLatestBaileysVersion)();
|
|
68
|
-
const startSocket = () => __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
var _a;
|
|
70
|
-
const { state, saveCreds } = yield (0, baileys_1.useMultiFileAuthState)(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, socket.id + "_" + socket.phoneNumber + Defaults_1.CREDENTIALS.SUFFIX));
|
|
71
|
-
const sock = (0, baileys_1.default)({
|
|
72
|
-
version,
|
|
73
|
-
auth: {
|
|
74
|
-
creds: state.creds,
|
|
75
|
-
keys: (0, baileys_1.makeCacheableSignalKeyStore)(state.keys, logger),
|
|
76
|
-
},
|
|
77
|
-
logger,
|
|
78
|
-
markOnlineOnConnect: false,
|
|
79
|
-
browser: baileys_1.Browsers.ubuntu("Chrome"),
|
|
80
|
-
});
|
|
81
|
-
socket.socket = sock;
|
|
82
|
-
this.sockets.set(socket.id, socket);
|
|
83
|
-
try {
|
|
84
|
-
sock.ev.process((events) => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
86
|
-
if (events["connection.update"]) {
|
|
87
|
-
const update = events["connection.update"];
|
|
88
|
-
const { connection, lastDisconnect } = update;
|
|
89
|
-
if (update.qr) {
|
|
90
|
-
(_b = socket.onQr) === null || _b === void 0 ? void 0 : _b.call(socket, update.qr);
|
|
91
|
-
}
|
|
92
|
-
if (connection == "connecting") {
|
|
93
|
-
(_c = socket.onConnecting) === null || _c === void 0 ? void 0 : _c.call(socket);
|
|
94
|
-
}
|
|
95
|
-
if (connection === "close") {
|
|
96
|
-
const code = (_e = (_d = lastDisconnect === null || lastDisconnect === void 0 ? void 0 : lastDisconnect.error) === null || _d === void 0 ? void 0 : _d.output) === null || _e === void 0 ? void 0 : _e.statusCode;
|
|
97
|
-
let retryAttempt = (_f = this.retryCount.get(socket.id)) !== null && _f !== void 0 ? _f : 0;
|
|
98
|
-
let shouldRetry;
|
|
99
|
-
if (code != baileys_1.DisconnectReason.loggedOut && retryAttempt < 10) {
|
|
100
|
-
shouldRetry = true;
|
|
101
|
-
}
|
|
102
|
-
if (shouldRetry) {
|
|
103
|
-
retryAttempt++;
|
|
104
|
-
}
|
|
105
|
-
if (shouldRetry) {
|
|
106
|
-
this.retryCount.set(socket.id, retryAttempt);
|
|
107
|
-
startSocket();
|
|
108
|
-
}
|
|
109
|
-
else {
|
|
110
|
-
this.retryCount.delete(socket.id);
|
|
111
|
-
this.deleteSession(socket.id);
|
|
112
|
-
(_g = socket.onDisconnected) === null || _g === void 0 ? void 0 : _g.call(socket);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (connection == "open") {
|
|
116
|
-
this.retryCount.delete(socket.id);
|
|
117
|
-
(_h = socket.onConnected) === null || _h === void 0 ? void 0 : _h.call(socket);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
if (events["creds.update"]) {
|
|
121
|
-
yield saveCreds();
|
|
122
|
-
}
|
|
123
|
-
if (events["messages.update"]) {
|
|
124
|
-
const msg = events["messages.update"][0];
|
|
125
|
-
const data = Object.assign({ sessionId: socket.id, messageStatus: (0, message_status_1.parseMessageStatusCodeToReadable)(msg.update.status) }, msg);
|
|
126
|
-
(_j = socket.onMessageUpdated) === null || _j === void 0 ? void 0 : _j.call(socket, data);
|
|
127
|
-
}
|
|
128
|
-
if (events["messages.upsert"]) {
|
|
129
|
-
const msg = (_k = events["messages.upsert"]
|
|
130
|
-
.messages) === null || _k === void 0 ? void 0 : _k[0];
|
|
131
|
-
msg.sessionId = socket.id;
|
|
132
|
-
msg.saveImage = (path) => (0, save_media_1.saveImageHandler)(msg, path);
|
|
133
|
-
msg.saveVideo = (path) => (0, save_media_1.saveVideoHandler)(msg, path);
|
|
134
|
-
msg.saveDocument = (path) => (0, save_media_1.saveDocumentHandler)(msg, path);
|
|
135
|
-
(_l = socket.onMessageReceived) === null || _l === void 0 ? void 0 : _l.call(socket, msg);
|
|
136
|
-
}
|
|
137
|
-
}));
|
|
138
|
-
if (!sock.authState.creds.registered) {
|
|
139
|
-
yield new Promise((resolve) => setTimeout(resolve, 5000));
|
|
140
|
-
const code = yield sock.requestPairingCode(socket.phoneNumber);
|
|
141
|
-
console.log(code);
|
|
142
|
-
(_a = socket.onPairing) === null || _a === void 0 ? void 0 : _a.call(socket, code);
|
|
143
|
-
}
|
|
144
|
-
return socket;
|
|
145
|
-
}
|
|
146
|
-
catch (error) {
|
|
147
|
-
console.log(error.message);
|
|
148
|
-
return socket;
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
return startSocket();
|
|
152
|
-
});
|
|
153
|
-
this.isSessionExistAndRunning = (socket) => {
|
|
154
|
-
if (fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME)) &&
|
|
155
|
-
fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, socket.id + "_" + socket.phoneNumber + Defaults_1.CREDENTIALS.SUFFIX)) &&
|
|
156
|
-
fs_1.default.readdirSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, socket.id + "_" + socket.phoneNumber + Defaults_1.CREDENTIALS.SUFFIX)).length &&
|
|
157
|
-
this.getSocket(socket.id)) {
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
return false;
|
|
161
|
-
};
|
|
162
|
-
this.deleteSession = (sessionId) => __awaiter(this, void 0, void 0, function* () {
|
|
163
|
-
const socket = this.getSocket(sessionId);
|
|
164
|
-
if (!socket)
|
|
165
|
-
return;
|
|
166
|
-
yield socket.logout();
|
|
167
|
-
const dir = path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME, socket.id + "_" + socket.phoneNumber + Defaults_1.CREDENTIALS.SUFFIX);
|
|
168
|
-
if (fs_1.default.existsSync(dir)) {
|
|
169
|
-
fs_1.default.rmSync(dir, { force: true, recursive: true });
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
load(each) {
|
|
174
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
-
if (!fs_1.default.existsSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME))) {
|
|
176
|
-
fs_1.default.mkdirSync(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME));
|
|
177
|
-
}
|
|
178
|
-
fs_1.default.readdir(path_1.default.resolve(Defaults_1.CREDENTIALS.DIR_NAME), (err, dirs) => __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
var _a;
|
|
180
|
-
if (err) {
|
|
181
|
-
throw err;
|
|
182
|
-
}
|
|
183
|
-
for (const dir of dirs) {
|
|
184
|
-
const sessionId = dir.split("_")[0];
|
|
185
|
-
const phoneNumber = dir.split("_")[1];
|
|
186
|
-
let socket = new Socket_1.Socket({
|
|
187
|
-
id: sessionId,
|
|
188
|
-
phoneNumber: phoneNumber,
|
|
189
|
-
});
|
|
190
|
-
socket = (_a = each === null || each === void 0 ? void 0 : each(socket)) !== null && _a !== void 0 ? _a : socket;
|
|
191
|
-
if (!this.shouldLoadSession(socket))
|
|
192
|
-
continue;
|
|
193
|
-
this.startSession(socket);
|
|
194
|
-
}
|
|
195
|
-
}));
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
exports.Whatsapp = Whatsapp;
|
|
200
|
-
const wa = new Whatsapp();
|
|
201
|
-
// wa.load();
|
|
202
|
-
const mySocket = new Socket_1.Socket({ id: "mysocket", phoneNumber: "6281524538841" });
|
|
203
|
-
mySocket.onPairing = (code) => {
|
|
204
|
-
console.log(code);
|
|
205
|
-
};
|
|
206
|
-
wa.startSession(mySocket);
|