zaileys 0.28.99-beta → 0.29.0-beta
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/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/custom.md +10 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/dist/index.d.mts +193 -0
- package/dist/index.d.ts +193 -3
- package/dist/index.js +1 -6
- package/dist/index.mjs +1 -0
- package/package.json +12 -11
- package/tsup.config.ts +11 -0
- package/dist/Modules/Action.d.ts +0 -14
- package/dist/Modules/Action.js +0 -16
- package/dist/Modules/Client.d.ts +0 -36
- package/dist/Modules/Client.js +0 -274
- package/dist/Modules/Config.d.ts +0 -72
- package/dist/Modules/Config.js +0 -75
- package/dist/Modules/Utils.d.ts +0 -2
- package/dist/Modules/Utils.js +0 -26
- package/dist/Parser/Message.d.ts +0 -18
- package/dist/Parser/Message.js +0 -127
- package/dist/Types/Action.d.ts +0 -9
- package/dist/Types/Action.js +0 -2
- package/dist/Types/General.d.ts +0 -38
- package/dist/Types/General.js +0 -2
- package/dist/Types/Message.d.ts +0 -44
- package/dist/Types/Message.js +0 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Go to '...'
|
|
16
|
+
2. Click on '....'
|
|
17
|
+
3. Scroll down to '....'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
**Expected behavior**
|
|
21
|
+
A clear and concise description of what you expected to happen.
|
|
22
|
+
|
|
23
|
+
**Screenshots**
|
|
24
|
+
If applicable, add screenshots to help explain your problem.
|
|
25
|
+
|
|
26
|
+
**Desktop (please complete the following information):**
|
|
27
|
+
- OS: [e.g. iOS]
|
|
28
|
+
- Browser [e.g. chrome, safari]
|
|
29
|
+
- Version [e.g. 22]
|
|
30
|
+
|
|
31
|
+
**Smartphone (please complete the following information):**
|
|
32
|
+
- Device: [e.g. iPhone6]
|
|
33
|
+
- OS: [e.g. iOS8.1]
|
|
34
|
+
- Browser [e.g. stock browser, safari]
|
|
35
|
+
- Version [e.g. 22]
|
|
36
|
+
|
|
37
|
+
**Additional context**
|
|
38
|
+
Add any other context about the problem here.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
title: ''
|
|
5
|
+
labels: ''
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { WABusinessProfile, proto } from '@whiskeysockets/baileys';
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
|
|
4
|
+
declare const MESSAGE_TYPE: {
|
|
5
|
+
readonly text: "text";
|
|
6
|
+
readonly conversation: "text";
|
|
7
|
+
readonly imageMessage: "image";
|
|
8
|
+
readonly contactMessage: "contact";
|
|
9
|
+
readonly locationMessage: "location";
|
|
10
|
+
readonly documentMessage: "document";
|
|
11
|
+
readonly audioMessage: "audio";
|
|
12
|
+
readonly videoMessage: "video";
|
|
13
|
+
readonly protocolMessage: "protocol";
|
|
14
|
+
readonly contactsArrayMessage: "contactsArray";
|
|
15
|
+
readonly highlyStructuredMessage: "highlyStructured";
|
|
16
|
+
readonly sendPaymentMessage: "sendPayment";
|
|
17
|
+
readonly liveLocationMessage: "liveLocation";
|
|
18
|
+
readonly requestPaymentMessage: "requestPayment";
|
|
19
|
+
readonly declinePaymentRequestMessage: "declinePaymentRequest";
|
|
20
|
+
readonly cancelPaymentRequestMessage: "cancelPaymentRequest";
|
|
21
|
+
readonly templateMessage: "template";
|
|
22
|
+
readonly stickerMessage: "sticker";
|
|
23
|
+
readonly groupInviteMessage: "groupInvite";
|
|
24
|
+
readonly templateButtonReplyMessage: "templateButtonReply";
|
|
25
|
+
readonly productMessage: "product";
|
|
26
|
+
readonly deviceSentMessage: "deviceSent";
|
|
27
|
+
readonly listMessage: "list";
|
|
28
|
+
readonly viewOnceMessage: "viewOnce";
|
|
29
|
+
readonly orderMessage: "order";
|
|
30
|
+
readonly listResponseMessage: "listResponse";
|
|
31
|
+
readonly ephemeralMessage: "ephemeral";
|
|
32
|
+
readonly invoiceMessage: "invoice";
|
|
33
|
+
readonly buttonsMessage: "buttons";
|
|
34
|
+
readonly buttonsResponseMessage: "buttonsResponse";
|
|
35
|
+
readonly paymentInviteMessage: "paymentInvite";
|
|
36
|
+
readonly interactiveMessage: "interactive";
|
|
37
|
+
readonly reactionMessage: "reaction";
|
|
38
|
+
readonly stickerSyncRmrMessage: "sticker";
|
|
39
|
+
readonly interactiveResponseMessage: "interactiveResponse";
|
|
40
|
+
readonly pollCreationMessage: "pollCreation";
|
|
41
|
+
readonly pollUpdateMessage: "pollUpdate";
|
|
42
|
+
readonly keepInChatMessage: "keepInChat";
|
|
43
|
+
readonly documentWithCaptionMessage: "document";
|
|
44
|
+
readonly requestPhoneNumberMessage: "requestPhoneNumber";
|
|
45
|
+
readonly viewOnceMessageV2: "viewOnce";
|
|
46
|
+
readonly encReactionMessage: "reaction";
|
|
47
|
+
readonly editedMessage: "text";
|
|
48
|
+
readonly viewOnceMessageV2Extension: "viewOnce";
|
|
49
|
+
readonly pollCreationMessageV2: "pollCreation";
|
|
50
|
+
readonly scheduledCallCreationMessage: "scheduledCallCreation";
|
|
51
|
+
readonly groupMentionedMessage: "groupMentioned";
|
|
52
|
+
readonly pinInChatMessage: "pinInChat";
|
|
53
|
+
readonly pollCreationMessageV3: "pollCreation";
|
|
54
|
+
readonly scheduledCallEditMessage: "scheduledCallEdit";
|
|
55
|
+
readonly ptvMessage: "ptv";
|
|
56
|
+
readonly botInvokeMessage: "botInvoke";
|
|
57
|
+
readonly callLogMesssage: "callLog";
|
|
58
|
+
readonly encCommentMessage: "encComment";
|
|
59
|
+
readonly bcallMessage: "bcall";
|
|
60
|
+
readonly lottieStickerMessage: "lottieSticker";
|
|
61
|
+
readonly eventMessage: "event";
|
|
62
|
+
readonly commentMessage: "comment";
|
|
63
|
+
readonly newsletterAdminInviteMessage: "text";
|
|
64
|
+
readonly extendedTextMessageWithParentKey: "text";
|
|
65
|
+
readonly placeholderMessage: "placeholder";
|
|
66
|
+
readonly encEventUpdateMessage: "encEventUpdate";
|
|
67
|
+
};
|
|
68
|
+
declare const VERIFIED_PLATFORM: {
|
|
69
|
+
readonly whatsapp: "0@s.whatsapp.net";
|
|
70
|
+
readonly meta: "13135550002@s.whatsapp.net";
|
|
71
|
+
readonly chatgpt: "18002428478@s.whatsapp.net";
|
|
72
|
+
readonly copilot: "18772241042@s.whatsapp.net";
|
|
73
|
+
readonly instagram: "447723442971@s.whatsapp.net";
|
|
74
|
+
readonly tiktok: "6285574670498@s.whatsapp.net";
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
type FakeVerifiedEnum = keyof typeof VERIFIED_PLATFORM;
|
|
78
|
+
type SendActionType = {
|
|
79
|
+
asReply?: boolean;
|
|
80
|
+
};
|
|
81
|
+
type ReplyActionType = {
|
|
82
|
+
footer?: string;
|
|
83
|
+
fakeVerified?: FakeVerifiedEnum;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
type MessageTypeEnum = (typeof MESSAGE_TYPE)[keyof typeof MESSAGE_TYPE];
|
|
87
|
+
type DeviceTypeEnum = "unknown" | "android" | "ios" | "desktop" | "web";
|
|
88
|
+
type MessageBaseContent<T> = {
|
|
89
|
+
fromMe: boolean;
|
|
90
|
+
chatId: string;
|
|
91
|
+
roomId: string;
|
|
92
|
+
roomImage: () => Promise<string | null>;
|
|
93
|
+
senderId: string;
|
|
94
|
+
senderName: string;
|
|
95
|
+
senderDevice: DeviceTypeEnum;
|
|
96
|
+
senderBio: () => Promise<string | null>;
|
|
97
|
+
senderImage: () => Promise<string | null>;
|
|
98
|
+
senderBusiness: () => Promise<WABusinessProfile | null>;
|
|
99
|
+
chatType: MessageTypeEnum;
|
|
100
|
+
timestamp: number;
|
|
101
|
+
text: string;
|
|
102
|
+
command: string;
|
|
103
|
+
mentions: string[] | null;
|
|
104
|
+
isGroup: boolean;
|
|
105
|
+
isStory: boolean;
|
|
106
|
+
isEdited: boolean;
|
|
107
|
+
isChannel: boolean;
|
|
108
|
+
isBroadcast: boolean;
|
|
109
|
+
isEphemeral: boolean;
|
|
110
|
+
isForwarded: boolean;
|
|
111
|
+
citation: {
|
|
112
|
+
[key: string]: unknown;
|
|
113
|
+
} | null;
|
|
114
|
+
media: {
|
|
115
|
+
buffer?: () => Promise<Buffer | null>;
|
|
116
|
+
stream?: () => Promise<Buffer | null>;
|
|
117
|
+
[key: string]: unknown;
|
|
118
|
+
} | null;
|
|
119
|
+
reply: MessageBaseContent<T> | null;
|
|
120
|
+
key: () => proto.IMessageKey;
|
|
121
|
+
message: () => proto.IWebMessageInfo;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
type AuthType = "pairing" | "qr";
|
|
125
|
+
type CitationConfig = {
|
|
126
|
+
[key: string]: (() => string[]) | (() => Promise<string[]>);
|
|
127
|
+
};
|
|
128
|
+
interface BaseClientConfig {
|
|
129
|
+
prefix?: string;
|
|
130
|
+
ignoreMe?: boolean;
|
|
131
|
+
authPath?: string;
|
|
132
|
+
authType: AuthType;
|
|
133
|
+
showLogs?: boolean;
|
|
134
|
+
autoMentions?: boolean;
|
|
135
|
+
autoOnline?: boolean;
|
|
136
|
+
autoRead?: boolean;
|
|
137
|
+
autoRejectCall?: boolean;
|
|
138
|
+
citation?: CitationConfig;
|
|
139
|
+
}
|
|
140
|
+
interface PairingClientConfig extends BaseClientConfig {
|
|
141
|
+
authType: "pairing";
|
|
142
|
+
phoneNumber: number;
|
|
143
|
+
}
|
|
144
|
+
interface QRClientConfig extends BaseClientConfig {
|
|
145
|
+
authType: "qr";
|
|
146
|
+
}
|
|
147
|
+
type ClientConfig = PairingClientConfig | QRClientConfig;
|
|
148
|
+
interface BaseContext {
|
|
149
|
+
}
|
|
150
|
+
interface ConnectionContext extends BaseContext {
|
|
151
|
+
status: "connecting" | "open" | "close";
|
|
152
|
+
}
|
|
153
|
+
interface ErrorContext extends BaseContext {
|
|
154
|
+
error: Error;
|
|
155
|
+
}
|
|
156
|
+
interface ClientEvents<B> {
|
|
157
|
+
connection: (ctx: ConnectionContext) => void;
|
|
158
|
+
message: (ctx: MessageBaseContent<B>) => void;
|
|
159
|
+
error: (ctx: ErrorContext) => void;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
declare class Client extends EventEmitter {
|
|
163
|
+
private config;
|
|
164
|
+
private authState;
|
|
165
|
+
private authProvider;
|
|
166
|
+
private socket;
|
|
167
|
+
private store;
|
|
168
|
+
private groupCache;
|
|
169
|
+
private logger;
|
|
170
|
+
protected temporaryMessage: MessageBaseContent<any> | null;
|
|
171
|
+
protected parseMention: string[];
|
|
172
|
+
private spinner;
|
|
173
|
+
constructor(config: ClientConfig);
|
|
174
|
+
protected initialize(): Promise<void>;
|
|
175
|
+
private deleteSession;
|
|
176
|
+
on<K extends keyof ClientEvents<typeof this$1.config.citation>>(event: K, listener: ClientEvents<typeof this$1.config.citation>[K]): this;
|
|
177
|
+
emit<K extends keyof ClientEvents<typeof this$1.config.citation>>(event: K, ...args: Parameters<ClientEvents<typeof this$1.config.citation>[K]>): boolean;
|
|
178
|
+
protected generateMentions(mentions: string[]): string[];
|
|
179
|
+
protected generateFakeVerified(key: proto.IMessageKey, platform: FakeVerifiedEnum): {
|
|
180
|
+
participant: "0@s.whatsapp.net" | "13135550002@s.whatsapp.net" | "18002428478@s.whatsapp.net" | "18772241042@s.whatsapp.net" | "447723442971@s.whatsapp.net" | "6285574670498@s.whatsapp.net";
|
|
181
|
+
remoteJid?: string | null | undefined;
|
|
182
|
+
fromMe?: boolean | null | undefined;
|
|
183
|
+
id?: string | null | undefined;
|
|
184
|
+
};
|
|
185
|
+
sendText(text: string, payload?: ReplyActionType): Promise<void>;
|
|
186
|
+
sendReply(text: string, payload?: ReplyActionType): Promise<void>;
|
|
187
|
+
sendImage(image: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
188
|
+
sendVideo(video: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
189
|
+
sendAudio(audio: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
190
|
+
sendSticker(sticker: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export { Client, Client as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,193 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { WABusinessProfile, proto } from '@whiskeysockets/baileys';
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
|
|
4
|
+
declare const MESSAGE_TYPE: {
|
|
5
|
+
readonly text: "text";
|
|
6
|
+
readonly conversation: "text";
|
|
7
|
+
readonly imageMessage: "image";
|
|
8
|
+
readonly contactMessage: "contact";
|
|
9
|
+
readonly locationMessage: "location";
|
|
10
|
+
readonly documentMessage: "document";
|
|
11
|
+
readonly audioMessage: "audio";
|
|
12
|
+
readonly videoMessage: "video";
|
|
13
|
+
readonly protocolMessage: "protocol";
|
|
14
|
+
readonly contactsArrayMessage: "contactsArray";
|
|
15
|
+
readonly highlyStructuredMessage: "highlyStructured";
|
|
16
|
+
readonly sendPaymentMessage: "sendPayment";
|
|
17
|
+
readonly liveLocationMessage: "liveLocation";
|
|
18
|
+
readonly requestPaymentMessage: "requestPayment";
|
|
19
|
+
readonly declinePaymentRequestMessage: "declinePaymentRequest";
|
|
20
|
+
readonly cancelPaymentRequestMessage: "cancelPaymentRequest";
|
|
21
|
+
readonly templateMessage: "template";
|
|
22
|
+
readonly stickerMessage: "sticker";
|
|
23
|
+
readonly groupInviteMessage: "groupInvite";
|
|
24
|
+
readonly templateButtonReplyMessage: "templateButtonReply";
|
|
25
|
+
readonly productMessage: "product";
|
|
26
|
+
readonly deviceSentMessage: "deviceSent";
|
|
27
|
+
readonly listMessage: "list";
|
|
28
|
+
readonly viewOnceMessage: "viewOnce";
|
|
29
|
+
readonly orderMessage: "order";
|
|
30
|
+
readonly listResponseMessage: "listResponse";
|
|
31
|
+
readonly ephemeralMessage: "ephemeral";
|
|
32
|
+
readonly invoiceMessage: "invoice";
|
|
33
|
+
readonly buttonsMessage: "buttons";
|
|
34
|
+
readonly buttonsResponseMessage: "buttonsResponse";
|
|
35
|
+
readonly paymentInviteMessage: "paymentInvite";
|
|
36
|
+
readonly interactiveMessage: "interactive";
|
|
37
|
+
readonly reactionMessage: "reaction";
|
|
38
|
+
readonly stickerSyncRmrMessage: "sticker";
|
|
39
|
+
readonly interactiveResponseMessage: "interactiveResponse";
|
|
40
|
+
readonly pollCreationMessage: "pollCreation";
|
|
41
|
+
readonly pollUpdateMessage: "pollUpdate";
|
|
42
|
+
readonly keepInChatMessage: "keepInChat";
|
|
43
|
+
readonly documentWithCaptionMessage: "document";
|
|
44
|
+
readonly requestPhoneNumberMessage: "requestPhoneNumber";
|
|
45
|
+
readonly viewOnceMessageV2: "viewOnce";
|
|
46
|
+
readonly encReactionMessage: "reaction";
|
|
47
|
+
readonly editedMessage: "text";
|
|
48
|
+
readonly viewOnceMessageV2Extension: "viewOnce";
|
|
49
|
+
readonly pollCreationMessageV2: "pollCreation";
|
|
50
|
+
readonly scheduledCallCreationMessage: "scheduledCallCreation";
|
|
51
|
+
readonly groupMentionedMessage: "groupMentioned";
|
|
52
|
+
readonly pinInChatMessage: "pinInChat";
|
|
53
|
+
readonly pollCreationMessageV3: "pollCreation";
|
|
54
|
+
readonly scheduledCallEditMessage: "scheduledCallEdit";
|
|
55
|
+
readonly ptvMessage: "ptv";
|
|
56
|
+
readonly botInvokeMessage: "botInvoke";
|
|
57
|
+
readonly callLogMesssage: "callLog";
|
|
58
|
+
readonly encCommentMessage: "encComment";
|
|
59
|
+
readonly bcallMessage: "bcall";
|
|
60
|
+
readonly lottieStickerMessage: "lottieSticker";
|
|
61
|
+
readonly eventMessage: "event";
|
|
62
|
+
readonly commentMessage: "comment";
|
|
63
|
+
readonly newsletterAdminInviteMessage: "text";
|
|
64
|
+
readonly extendedTextMessageWithParentKey: "text";
|
|
65
|
+
readonly placeholderMessage: "placeholder";
|
|
66
|
+
readonly encEventUpdateMessage: "encEventUpdate";
|
|
67
|
+
};
|
|
68
|
+
declare const VERIFIED_PLATFORM: {
|
|
69
|
+
readonly whatsapp: "0@s.whatsapp.net";
|
|
70
|
+
readonly meta: "13135550002@s.whatsapp.net";
|
|
71
|
+
readonly chatgpt: "18002428478@s.whatsapp.net";
|
|
72
|
+
readonly copilot: "18772241042@s.whatsapp.net";
|
|
73
|
+
readonly instagram: "447723442971@s.whatsapp.net";
|
|
74
|
+
readonly tiktok: "6285574670498@s.whatsapp.net";
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
type FakeVerifiedEnum = keyof typeof VERIFIED_PLATFORM;
|
|
78
|
+
type SendActionType = {
|
|
79
|
+
asReply?: boolean;
|
|
80
|
+
};
|
|
81
|
+
type ReplyActionType = {
|
|
82
|
+
footer?: string;
|
|
83
|
+
fakeVerified?: FakeVerifiedEnum;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
type MessageTypeEnum = (typeof MESSAGE_TYPE)[keyof typeof MESSAGE_TYPE];
|
|
87
|
+
type DeviceTypeEnum = "unknown" | "android" | "ios" | "desktop" | "web";
|
|
88
|
+
type MessageBaseContent<T> = {
|
|
89
|
+
fromMe: boolean;
|
|
90
|
+
chatId: string;
|
|
91
|
+
roomId: string;
|
|
92
|
+
roomImage: () => Promise<string | null>;
|
|
93
|
+
senderId: string;
|
|
94
|
+
senderName: string;
|
|
95
|
+
senderDevice: DeviceTypeEnum;
|
|
96
|
+
senderBio: () => Promise<string | null>;
|
|
97
|
+
senderImage: () => Promise<string | null>;
|
|
98
|
+
senderBusiness: () => Promise<WABusinessProfile | null>;
|
|
99
|
+
chatType: MessageTypeEnum;
|
|
100
|
+
timestamp: number;
|
|
101
|
+
text: string;
|
|
102
|
+
command: string;
|
|
103
|
+
mentions: string[] | null;
|
|
104
|
+
isGroup: boolean;
|
|
105
|
+
isStory: boolean;
|
|
106
|
+
isEdited: boolean;
|
|
107
|
+
isChannel: boolean;
|
|
108
|
+
isBroadcast: boolean;
|
|
109
|
+
isEphemeral: boolean;
|
|
110
|
+
isForwarded: boolean;
|
|
111
|
+
citation: {
|
|
112
|
+
[key: string]: unknown;
|
|
113
|
+
} | null;
|
|
114
|
+
media: {
|
|
115
|
+
buffer?: () => Promise<Buffer | null>;
|
|
116
|
+
stream?: () => Promise<Buffer | null>;
|
|
117
|
+
[key: string]: unknown;
|
|
118
|
+
} | null;
|
|
119
|
+
reply: MessageBaseContent<T> | null;
|
|
120
|
+
key: () => proto.IMessageKey;
|
|
121
|
+
message: () => proto.IWebMessageInfo;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
type AuthType = "pairing" | "qr";
|
|
125
|
+
type CitationConfig = {
|
|
126
|
+
[key: string]: (() => string[]) | (() => Promise<string[]>);
|
|
127
|
+
};
|
|
128
|
+
interface BaseClientConfig {
|
|
129
|
+
prefix?: string;
|
|
130
|
+
ignoreMe?: boolean;
|
|
131
|
+
authPath?: string;
|
|
132
|
+
authType: AuthType;
|
|
133
|
+
showLogs?: boolean;
|
|
134
|
+
autoMentions?: boolean;
|
|
135
|
+
autoOnline?: boolean;
|
|
136
|
+
autoRead?: boolean;
|
|
137
|
+
autoRejectCall?: boolean;
|
|
138
|
+
citation?: CitationConfig;
|
|
139
|
+
}
|
|
140
|
+
interface PairingClientConfig extends BaseClientConfig {
|
|
141
|
+
authType: "pairing";
|
|
142
|
+
phoneNumber: number;
|
|
143
|
+
}
|
|
144
|
+
interface QRClientConfig extends BaseClientConfig {
|
|
145
|
+
authType: "qr";
|
|
146
|
+
}
|
|
147
|
+
type ClientConfig = PairingClientConfig | QRClientConfig;
|
|
148
|
+
interface BaseContext {
|
|
149
|
+
}
|
|
150
|
+
interface ConnectionContext extends BaseContext {
|
|
151
|
+
status: "connecting" | "open" | "close";
|
|
152
|
+
}
|
|
153
|
+
interface ErrorContext extends BaseContext {
|
|
154
|
+
error: Error;
|
|
155
|
+
}
|
|
156
|
+
interface ClientEvents<B> {
|
|
157
|
+
connection: (ctx: ConnectionContext) => void;
|
|
158
|
+
message: (ctx: MessageBaseContent<B>) => void;
|
|
159
|
+
error: (ctx: ErrorContext) => void;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
declare class Client extends EventEmitter {
|
|
163
|
+
private config;
|
|
164
|
+
private authState;
|
|
165
|
+
private authProvider;
|
|
166
|
+
private socket;
|
|
167
|
+
private store;
|
|
168
|
+
private groupCache;
|
|
169
|
+
private logger;
|
|
170
|
+
protected temporaryMessage: MessageBaseContent<any> | null;
|
|
171
|
+
protected parseMention: string[];
|
|
172
|
+
private spinner;
|
|
173
|
+
constructor(config: ClientConfig);
|
|
174
|
+
protected initialize(): Promise<void>;
|
|
175
|
+
private deleteSession;
|
|
176
|
+
on<K extends keyof ClientEvents<typeof this$1.config.citation>>(event: K, listener: ClientEvents<typeof this$1.config.citation>[K]): this;
|
|
177
|
+
emit<K extends keyof ClientEvents<typeof this$1.config.citation>>(event: K, ...args: Parameters<ClientEvents<typeof this$1.config.citation>[K]>): boolean;
|
|
178
|
+
protected generateMentions(mentions: string[]): string[];
|
|
179
|
+
protected generateFakeVerified(key: proto.IMessageKey, platform: FakeVerifiedEnum): {
|
|
180
|
+
participant: "0@s.whatsapp.net" | "13135550002@s.whatsapp.net" | "18002428478@s.whatsapp.net" | "18772241042@s.whatsapp.net" | "447723442971@s.whatsapp.net" | "6285574670498@s.whatsapp.net";
|
|
181
|
+
remoteJid?: string | null | undefined;
|
|
182
|
+
fromMe?: boolean | null | undefined;
|
|
183
|
+
id?: string | null | undefined;
|
|
184
|
+
};
|
|
185
|
+
sendText(text: string, payload?: ReplyActionType): Promise<void>;
|
|
186
|
+
sendReply(text: string, payload?: ReplyActionType): Promise<void>;
|
|
187
|
+
sendImage(image: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
188
|
+
sendVideo(video: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
189
|
+
sendAudio(audio: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
190
|
+
sendSticker(sticker: string | Buffer, payload?: SendActionType): Promise<void>;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
export { Client, Client as default };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Client = void 0;
|
|
4
|
-
const Client_1 = require("./Modules/Client");
|
|
5
|
-
Object.defineProperty(exports, "Client", { enumerable: true, get: function () { return Client_1.Client; } });
|
|
6
|
-
exports.default = Client_1.Client;
|
|
1
|
+
var ye=Object.create;var S=Object.defineProperty;var ke=Object.getOwnPropertyDescriptor;var ve=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,Ie=Object.prototype.hasOwnProperty;var Ce=(c,g)=>{for(var t in g)S(c,t,{get:g[t],enumerable:!0})},ae=(c,g,t,e)=>{if(g&&typeof g=="object"||typeof g=="function")for(let s of ve(g))!Ie.call(c,s)&&s!==t&&S(c,s,{get:()=>g[s],enumerable:!(e=ke(g,s))||e.enumerable});return c};var M=(c,g,t)=>(t=c!=null?ye(we(c)):{},ae(g||!c||!c.__esModule?S(t,"default",{value:c,enumerable:!0}):t,c)),Se=c=>ae(S({},"__esModule",{value:!0}),c);var be={};Ce(be,{Client:()=>v,default:()=>Te});module.exports=Se(be);var p=M(require("@whiskeysockets/baileys")),he=require("awesome-phonenumber"),me=M(require("chalk")),R=M(require("consola")),pe=require("events"),de=M(require("figlet")),le=M(require("fs")),P=M(require("node-cache")),ue=M(require("ora")),fe=M(require("pino"));var k=require("@whiskeysockets/baileys");var re={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contactsArray",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"liveLocation",requestPaymentMessage:"requestPayment",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"templateButtonReply",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"list",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"listResponse",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttonsResponse",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},ce={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};var ge=(c,g)=>{let t=new Set(c);for(let e of g)if(t.has(e))return!0;return!1},y=(c,g)=>Array.isArray(c)?c.map(t=>y(t,g)):c&&typeof c=="object"?Object.keys(c).reduce((t,e)=>(g.includes(e)||(t[e]=y(c[e],g)),t),{}):c;var b=class{constructor({socket:g,message:t,config:e,store:s}){this.socket=g,this.message=t,this.config=e,this.store=s}async handle(g){var I,x,E,A,B,F,O,q,W,J,K,V,L,N,j,D,z,U,_,$,G,H,Q,Y,Z,X,ee,te,se,ie,oe,ne;let t=y(g||this.message,["senderKeyDistributionMessage","messageContextInfo"]);if(t!=null&&t.messageStubType||!Object.keys(t==null?void 0:t.message).length)return;let e=t.ephemeralMessage||t,s=!!((I=e.message)!=null&&I.extendedTextMessage),n=!!((E=(x=e.message)==null?void 0:x.protocolMessage)!=null&&E.editedMessage),a=!!((A=e.message)!=null&&A.botInvokeMessage),i=((O=(F=(B=e.message)==null?void 0:B.protocolMessage)==null?void 0:F.editedMessage)==null?void 0:O.extendedTextMessage)||((W=(q=e.message)==null?void 0:q.protocolMessage)==null?void 0:W.editedMessage),o=s?Object.keys(e.message.extendedTextMessage)[0]:n?Object.keys(i)[0]:a?Object.keys(e.message.botInvokeMessage.message.extendedTextMessage)[0]:Object.keys(e.message)[0],h=s?(V=(K=(J=e.message)==null?void 0:J.extendedTextMessage)==null?void 0:K.contextInfo)==null?void 0:V.stanzaId:(j=(N=(L=e.message)==null?void 0:L[o])==null?void 0:N.contextInfo)==null?void 0:j.stanzaId,d=re[o];(z=(D=e.message)==null?void 0:D.protocolMessage)!=null&&z.ephemeralExpiration&&(d="ephemeral");let r=s?e.message.extendedTextMessage[o]:n?i[o]:a?e.message.botInvokeMessage.message.extendedTextMessage[o]:e.message[o],l=typeof r=="string"?r:(r==null?void 0:r.caption)||(r==null?void 0:r.text)||(r==null?void 0:r.name)||null,w=(l==null?void 0:l.match(/@\d+/g))||null,m={fromMe:e.key.fromMe,chatId:e.key.id,roomId:e.key.remoteJid,roomImage:async()=>await this.socket.profilePictureUrl(e.key.remoteJid,"image").catch(()=>null),senderId:e.participant||e.key.participant||e.key.remoteJid,senderName:e.pushName||e.verifiedBizName||null,senderDevice:(0,k.getDevice)(e.key.id),senderBio:async()=>await this.socket.fetchStatus(e.key.participant||e.key.remoteJid).then(u=>{var f,C;return(C=(f=u==null?void 0:u[0])==null?void 0:f.status)==null?void 0:C.status}).catch(()=>null),senderImage:async()=>{let u=await this.socket.profilePictureUrl(e.key.participant||e.key.remoteJid,"image").catch(()=>null);return u===void 0?null:u},senderBusiness:async()=>await this.socket.getBusinessProfile(e.key.participant||e.key.remoteJid).catch(()=>null),chatType:d,timestamp:Number((e.messageTimestamp.low||e.messageTimestamp||0).toString()),text:l,command:l!=null&&l.startsWith(this.config.prefix)?(U=l.split(" ")[0])==null?void 0:U.slice(1):null,mentions:w,isGroup:e.key.remoteJid.endsWith("@g.us"),isStory:e.key.remoteJid.endsWith("@broadcast"),isEdited:n,isChannel:e.key.remoteJid.endsWith("@newsletter"),isBroadcast:!!e.broadcast,isEphemeral:d==="ephemeral"||!!((G=($=(_=e.message)==null?void 0:_.extendedTextMessage)==null?void 0:$.contextInfo)!=null&&G.expiration),isForwarded:!!((Y=(Q=(H=e.message)==null?void 0:H.extendedTextMessage)==null?void 0:Q.contextInfo)!=null&&Y.isForwarded),citation:{},media:typeof r!="string"?r:null,reply:null,key:()=>e.key,message:()=>this.message};if(m.media&&(m.media={...m.media,...(m.media.url||((X=(Z=e.message)==null?void 0:Z.extendedTextMessage)==null?void 0:X.jpegThumbnail)||((ee=e.message)==null?void 0:ee.newsletterAdminInviteMessage)||((te=e.message)==null?void 0:te.orderMessage))&&{buffer:async()=>await(0,k.downloadMediaMessage)(this.message,"buffer",{}).catch(()=>null),stream:async()=>await(0,k.downloadMediaMessage)(this.message,"stream",{}).catch(()=>null)}},m.media=y(m.media,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","midQualityFileSha256"])||null),this.config.citation){let u=[(se=m.roomId)==null?void 0:se.split("@")[0],(ie=m.senderId)==null?void 0:ie.split("@")[0]];for(let f of Object.keys(this.config.citation)){let C=`is${f[0].toUpperCase()}${f.slice(1)}`,Me=await this.config.citation[f]();m.citation={...m.citation||{},[C]:ge(Me,u)}}}if(h){let u=(oe=this.store.messages[m.roomId])==null?void 0:oe.get(h),f=(ne=this.store.messages[m.senderId])==null?void 0:ne.get(h);if(!u&&!f)return m;m.reply=await this.handle(u||f)}return m}};var v=class extends pe.EventEmitter{constructor(t){var s;super();this.groupCache=new P.default({stdTTL:5*60,useClones:!1});this.logger=(0,fe.default)({level:"silent",enabled:!1});this.spinner=(0,ue.default)();this.config=t,this.config.showLogs=!!this.config.showLogs,this.config.autoOnline=!!this.config.autoOnline,this.config.authPath=this.config.authPath||".zaileys",this.config.ignoreMe=this.config.ignoreMe==null?!0:this.config.ignoreMe,this.config.showLogs=this.config.showLogs==null?!0:this.config.showLogs,this.authProvider=(0,p.useMultiFileAuthState)(this.config.authPath+"/session"),this.store=(0,p.makeInMemoryStore)({logger:this.logger});try{(s=this.store)==null||s.readFromFile(this.config.authPath+"/memory.json"),setInterval(()=>{var n;(n=this==null?void 0:this.store)==null||n.writeToFile(this.config.authPath+"/memory.json")},1e4)}catch(n){}Object.keys(this.config).length&&this.initialize()}async initialize(){var s,n,a;await console.clear(),await(0,de.default)("Zaileys Libs",function(i,o){console.log(me.default.greenBright(o)),console.log()}),this==null||this.spinner.start("Make connection to whatsapp...");let{state:t,saveCreds:e}=await this.authProvider;if(this.authState={load:t,save:e},this.socket=(0,p.default)({logger:this.logger,printQRInTerminal:this.config.authType=="qr",markOnlineOnConnect:this.config.autoOnline,auth:this.authState.load,version:[2,3e3,1017531287],syncFullHistory:!0,msgRetryCounterCache:new P.default,browser:p.Browsers.ubuntu(this.config.authType=="qr"?"Zaileys Library":"Firefox"),cachedGroupMetadata:async i=>this.groupCache.get(i),getMessage:async i=>{if(this.store){let o=await this.store.loadMessage(i.remoteJid,i.id);return(o==null?void 0:o.message)||void 0}return p.proto.Message.fromObject({})},shouldSyncHistoryMessage:i=>!!i.syncType}),this.store.bind(this.socket.ev),this.config.authType=="pairing"&&this.config.phoneNumber&&!this.socket.authState.creds.registered){if(!this.config.phoneNumber){this.spinner.warn("Please enter your phone number");return}if(!(0,he.parsePhoneNumber)("+"+this.config.phoneNumber.toString()).valid){this==null||this.spinner.warn("Please enter a valid phone number");return}setTimeout(async()=>{try{if(this.config.authType=="pairing"){let i=await this.socket.requestPairingCode(this.config.phoneNumber.toString());this.spinner.info("This is your OTP code: "+i.replace(/(.{4})/,"$1-"))}}catch(i){}},5e3)}(s=this==null?void 0:this.socket)==null||s.ev.on("connection.update",async i=>{var r,l,w;let{connection:o,lastDisconnect:h,qr:d}=i;if(this.emit("connection",{status:o||"connecting"}),this.config.authType=="qr"&&d&&this.spinner.info("Scan qrcode with your whatsapp: "),o==="close"){let m=(l=(r=h==null?void 0:h.error)==null?void 0:r.output)==null?void 0:l.statusCode,I=m!==p.DisconnectReason.loggedOut;if(this==null||this.spinner.fail((w=h==null?void 0:h.error)==null?void 0:w.message),m==401||m==405||m==500){this.spinner.warn(`Bad session, please delete "${this.config.authPath}" folder and try again`),await R.default.prompt("Do you want to delete the session?",{type:"confirm"})&&await this.deleteSession();return}I&&this.initialize()}else o==="open"&&this.spinner.succeed("Successfully connected to whatsapp")}),(n=this==null?void 0:this.socket)==null||n.ev.on("creds.update",this.authState.save),this.socket.ev.on("contacts.update",i=>{var o;for(let h of i){let d=(0,p.jidNormalizedUser)(h.id);this.store&&this.store.contacts&&(this.store.contacts[d]={...((o=this.store.contacts)==null?void 0:o[d])||{},...h||{}})}}),this.socket.ev.on("contacts.upsert",i=>{for(let o of i){let h=(0,p.jidNormalizedUser)(o.id);this.store&&this.store.contacts&&(this.store.contacts[h]={...o||{}})}}),(a=this.socket)==null||a.ev.on("messages.upsert",async i=>{let o=i.messages;for(let h of o){if(this.config.ignoreMe&&h.key.fromMe)continue;let r=await new b({message:h,socket:this.socket,config:this.config,store:this.store}).handle();r&&(this.config.autoRead&&await this.socket.readMessages([r.key()]),this.temporaryMessage=r,this.config.autoMentions&&(this.parseMention=r.mentions),this.emit("message",r))}}),this.socket.ev.on("groups.update",async([i])=>{let o=await this.socket.groupMetadata(i.id);this.groupCache.set(i.id,o)}),this.socket.ev.on("group-participants.update",async i=>{let o=await this.socket.groupMetadata(i.id);this.groupCache.set(i.id,o)}),this.socket.ev.on("call",async i=>{for(let o of i)this.config.autoRejectCall&&await this.socket.rejectCall(o.id,o.from)})}async deleteSession(){try{await le.default.rmSync(`${this.config.authPath}`,{recursive:!0,force:!0}),await this.spinner.succeed("Session deleted. Please restart manually"),process.exit(0)}catch(t){if(this==null||this.spinner.fail("Failed to delete session"),await R.default.prompt("Do you want to try again?",{type:"confirm"}))return await this.deleteSession();process.exit(0)}}on(t,e){return super.on(t,e)}emit(t,...e){return super.emit(t,...e)}generateMentions(t){let e=["@s.whatsapp.net","@g.us","@newsletter"],s=[];return t==null||t.forEach(n=>{e.forEach(a=>{s.push(n.slice(1)+a)})}),s}generateFakeVerified(t,e){return{...t,participant:ce[e]}}async sendText(t,e){var s,n,a;try{if(e!=null&&e.footer){let i=(0,p.generateWAMessageFromContent)((s=this==null?void 0:this.temporaryMessage)==null?void 0:s.roomId,{interactiveMessage:{contextInfo:{mentionedJid:this.generateMentions(this.parseMention)},body:{text:t},footer:{text:e==null?void 0:e.footer},nativeFlowMessage:{}}},{userJid:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.roomId});await this.socket.relayMessage(i.key.remoteJid,i.message,{messageId:i.key.id})}else await this.socket.sendMessage((a=this.temporaryMessage)==null?void 0:a.roomId,{text:t})}catch(i){throw i}}async sendReply(t,e){var s,n,a,i,o,h,d;try{if(e!=null&&e.footer){let r=(0,p.generateWAMessageFromContent)((s=this.temporaryMessage)==null?void 0:s.roomId,{interactiveMessage:{contextInfo:{mentionedJid:this.generateMentions(this.parseMention)},body:{text:t},footer:{text:e==null?void 0:e.footer},nativeFlowMessage:{}}},{quoted:{...(n=this.temporaryMessage)==null?void 0:n.message(),key:this.generateFakeVerified((a=this==null?void 0:this.temporaryMessage)==null?void 0:a.message().key,e.fakeVerified)},userJid:(i=this==null?void 0:this.temporaryMessage)==null?void 0:i.roomId});await this.socket.relayMessage(r.key.remoteJid,r.message,{messageId:r.key.id})}else await this.socket.sendMessage((o=this.temporaryMessage)==null?void 0:o.roomId,{text:t},{quoted:{...(h=this==null?void 0:this.temporaryMessage)==null?void 0:h.message(),key:this.generateFakeVerified((d=this==null?void 0:this.temporaryMessage)==null?void 0:d.message().key,e==null?void 0:e.fakeVerified)}})}catch(r){throw r}}async sendImage(t,e){var s,n;try{let a=typeof t=="string"?{image:{url:t}}:{image:t};this.socket.sendMessage((s=this==null?void 0:this.temporaryMessage)==null?void 0:s.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}async sendVideo(t,e){var s,n;try{let a=typeof t=="string"?{video:{url:t}}:{video:t};this.socket.sendMessage((s=this==null?void 0:this.temporaryMessage)==null?void 0:s.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}async sendAudio(t,e){var s,n;try{let a=typeof t=="string"?{audio:{url:t}}:{audio:t};this.socket.sendMessage((s=this.temporaryMessage)==null?void 0:s.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}async sendSticker(t,e){var s,n;try{let a=typeof t=="string"?{sticker:{url:t}}:{sticker:t};this.socket.sendMessage((s=this==null?void 0:this.temporaryMessage)==null?void 0:s.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}};var Te=v;0&&(module.exports={Client});
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import me,{Browsers as pe,DisconnectReason as de,generateWAMessageFromContent as ne,jidNormalizedUser as ae,makeInMemoryStore as le,proto as ue,useMultiFileAuthState as fe}from"@whiskeysockets/baileys";import{parsePhoneNumber as Me}from"awesome-phonenumber";import ye from"chalk";import re from"consola";import{EventEmitter as ke}from"events";import ve from"figlet";import we from"fs";import ce from"node-cache";import Ie from"ora";import Ce from"pino";import{downloadMediaMessage as oe,getDevice as he}from"@whiskeysockets/baileys";var te={text:"text",conversation:"text",imageMessage:"image",contactMessage:"contact",locationMessage:"location",documentMessage:"document",audioMessage:"audio",videoMessage:"video",protocolMessage:"protocol",contactsArrayMessage:"contactsArray",highlyStructuredMessage:"highlyStructured",sendPaymentMessage:"sendPayment",liveLocationMessage:"liveLocation",requestPaymentMessage:"requestPayment",declinePaymentRequestMessage:"declinePaymentRequest",cancelPaymentRequestMessage:"cancelPaymentRequest",templateMessage:"template",stickerMessage:"sticker",groupInviteMessage:"groupInvite",templateButtonReplyMessage:"templateButtonReply",productMessage:"product",deviceSentMessage:"deviceSent",listMessage:"list",viewOnceMessage:"viewOnce",orderMessage:"order",listResponseMessage:"listResponse",ephemeralMessage:"ephemeral",invoiceMessage:"invoice",buttonsMessage:"buttons",buttonsResponseMessage:"buttonsResponse",paymentInviteMessage:"paymentInvite",interactiveMessage:"interactive",reactionMessage:"reaction",stickerSyncRmrMessage:"sticker",interactiveResponseMessage:"interactiveResponse",pollCreationMessage:"pollCreation",pollUpdateMessage:"pollUpdate",keepInChatMessage:"keepInChat",documentWithCaptionMessage:"document",requestPhoneNumberMessage:"requestPhoneNumber",viewOnceMessageV2:"viewOnce",encReactionMessage:"reaction",editedMessage:"text",viewOnceMessageV2Extension:"viewOnce",pollCreationMessageV2:"pollCreation",scheduledCallCreationMessage:"scheduledCallCreation",groupMentionedMessage:"groupMentioned",pinInChatMessage:"pinInChat",pollCreationMessageV3:"pollCreation",scheduledCallEditMessage:"scheduledCallEdit",ptvMessage:"ptv",botInvokeMessage:"botInvoke",callLogMesssage:"callLog",encCommentMessage:"encComment",bcallMessage:"bcall",lottieStickerMessage:"lottieSticker",eventMessage:"event",commentMessage:"comment",newsletterAdminInviteMessage:"text",extendedTextMessageWithParentKey:"text",placeholderMessage:"placeholder",encEventUpdateMessage:"encEventUpdate"},se={whatsapp:"0@s.whatsapp.net",meta:"13135550002@s.whatsapp.net",chatgpt:"18002428478@s.whatsapp.net",copilot:"18772241042@s.whatsapp.net",instagram:"447723442971@s.whatsapp.net",tiktok:"6285574670498@s.whatsapp.net"};var ie=(m,l)=>{let t=new Set(m);for(let e of l)if(t.has(e))return!0;return!1},f=(m,l)=>Array.isArray(m)?m.map(t=>f(t,l)):m&&typeof m=="object"?Object.keys(m).reduce((t,e)=>(l.includes(e)||(t[e]=f(m[e],l)),t),{}):m;var I=class{constructor({socket:l,message:t,config:e,store:o}){this.socket=l,this.message=t,this.config=e,this.store=o}async handle(l){var y,S,T,b,x,R,P,E,A,B,F,O,q,W,J,K,V,L,N,j,D,z,U,_,$,G,H,Q,Y,Z,X,ee;let t=f(l||this.message,["senderKeyDistributionMessage","messageContextInfo"]);if(t!=null&&t.messageStubType||!Object.keys(t==null?void 0:t.message).length)return;let e=t.ephemeralMessage||t,o=!!((y=e.message)!=null&&y.extendedTextMessage),n=!!((T=(S=e.message)==null?void 0:S.protocolMessage)!=null&&T.editedMessage),a=!!((b=e.message)!=null&&b.botInvokeMessage),s=((P=(R=(x=e.message)==null?void 0:x.protocolMessage)==null?void 0:R.editedMessage)==null?void 0:P.extendedTextMessage)||((A=(E=e.message)==null?void 0:E.protocolMessage)==null?void 0:A.editedMessage),i=o?Object.keys(e.message.extendedTextMessage)[0]:n?Object.keys(s)[0]:a?Object.keys(e.message.botInvokeMessage.message.extendedTextMessage)[0]:Object.keys(e.message)[0],c=o?(O=(F=(B=e.message)==null?void 0:B.extendedTextMessage)==null?void 0:F.contextInfo)==null?void 0:O.stanzaId:(J=(W=(q=e.message)==null?void 0:q[i])==null?void 0:W.contextInfo)==null?void 0:J.stanzaId,h=te[i];(V=(K=e.message)==null?void 0:K.protocolMessage)!=null&&V.ephemeralExpiration&&(h="ephemeral");let r=o?e.message.extendedTextMessage[i]:n?s[i]:a?e.message.botInvokeMessage.message.extendedTextMessage[i]:e.message[i],p=typeof r=="string"?r:(r==null?void 0:r.caption)||(r==null?void 0:r.text)||(r==null?void 0:r.name)||null,M=(p==null?void 0:p.match(/@\d+/g))||null,g={fromMe:e.key.fromMe,chatId:e.key.id,roomId:e.key.remoteJid,roomImage:async()=>await this.socket.profilePictureUrl(e.key.remoteJid,"image").catch(()=>null),senderId:e.participant||e.key.participant||e.key.remoteJid,senderName:e.pushName||e.verifiedBizName||null,senderDevice:he(e.key.id),senderBio:async()=>await this.socket.fetchStatus(e.key.participant||e.key.remoteJid).then(d=>{var u,k;return(k=(u=d==null?void 0:d[0])==null?void 0:u.status)==null?void 0:k.status}).catch(()=>null),senderImage:async()=>{let d=await this.socket.profilePictureUrl(e.key.participant||e.key.remoteJid,"image").catch(()=>null);return d===void 0?null:d},senderBusiness:async()=>await this.socket.getBusinessProfile(e.key.participant||e.key.remoteJid).catch(()=>null),chatType:h,timestamp:Number((e.messageTimestamp.low||e.messageTimestamp||0).toString()),text:p,command:p!=null&&p.startsWith(this.config.prefix)?(L=p.split(" ")[0])==null?void 0:L.slice(1):null,mentions:M,isGroup:e.key.remoteJid.endsWith("@g.us"),isStory:e.key.remoteJid.endsWith("@broadcast"),isEdited:n,isChannel:e.key.remoteJid.endsWith("@newsletter"),isBroadcast:!!e.broadcast,isEphemeral:h==="ephemeral"||!!((D=(j=(N=e.message)==null?void 0:N.extendedTextMessage)==null?void 0:j.contextInfo)!=null&&D.expiration),isForwarded:!!((_=(U=(z=e.message)==null?void 0:z.extendedTextMessage)==null?void 0:U.contextInfo)!=null&&_.isForwarded),citation:{},media:typeof r!="string"?r:null,reply:null,key:()=>e.key,message:()=>this.message};if(g.media&&(g.media={...g.media,...(g.media.url||((G=($=e.message)==null?void 0:$.extendedTextMessage)==null?void 0:G.jpegThumbnail)||((H=e.message)==null?void 0:H.newsletterAdminInviteMessage)||((Q=e.message)==null?void 0:Q.orderMessage))&&{buffer:async()=>await oe(this.message,"buffer",{}).catch(()=>null),stream:async()=>await oe(this.message,"stream",{}).catch(()=>null)}},g.media=f(g.media,["url","contextInfo","fileSha256","fileEncSha256","mediaKey","directPath","waveform","thumbnail","jpegThumbnail","thumbnailEncSha256","thumbnailSha256","thumbnailDirectPath","firstFrameSidecar","streamingSidecar","scansSidecar","callKey","midQualityFileSha256"])||null),this.config.citation){let d=[(Y=g.roomId)==null?void 0:Y.split("@")[0],(Z=g.senderId)==null?void 0:Z.split("@")[0]];for(let u of Object.keys(this.config.citation)){let k=`is${u[0].toUpperCase()}${u.slice(1)}`,ge=await this.config.citation[u]();g.citation={...g.citation||{},[k]:ie(ge,d)}}}if(c){let d=(X=this.store.messages[g.roomId])==null?void 0:X.get(c),u=(ee=this.store.messages[g.senderId])==null?void 0:ee.get(c);if(!d&&!u)return g;g.reply=await this.handle(d||u)}return g}};var C=class extends ke{constructor(t){var o;super();this.groupCache=new ce({stdTTL:5*60,useClones:!1});this.logger=Ce({level:"silent",enabled:!1});this.spinner=Ie();this.config=t,this.config.showLogs=!!this.config.showLogs,this.config.autoOnline=!!this.config.autoOnline,this.config.authPath=this.config.authPath||".zaileys",this.config.ignoreMe=this.config.ignoreMe==null?!0:this.config.ignoreMe,this.config.showLogs=this.config.showLogs==null?!0:this.config.showLogs,this.authProvider=fe(this.config.authPath+"/session"),this.store=le({logger:this.logger});try{(o=this.store)==null||o.readFromFile(this.config.authPath+"/memory.json"),setInterval(()=>{var n;(n=this==null?void 0:this.store)==null||n.writeToFile(this.config.authPath+"/memory.json")},1e4)}catch(n){}Object.keys(this.config).length&&this.initialize()}async initialize(){var o,n,a;await console.clear(),await ve("Zaileys Libs",function(s,i){console.log(ye.greenBright(i)),console.log()}),this==null||this.spinner.start("Make connection to whatsapp...");let{state:t,saveCreds:e}=await this.authProvider;if(this.authState={load:t,save:e},this.socket=me({logger:this.logger,printQRInTerminal:this.config.authType=="qr",markOnlineOnConnect:this.config.autoOnline,auth:this.authState.load,version:[2,3e3,1017531287],syncFullHistory:!0,msgRetryCounterCache:new ce,browser:pe.ubuntu(this.config.authType=="qr"?"Zaileys Library":"Firefox"),cachedGroupMetadata:async s=>this.groupCache.get(s),getMessage:async s=>{if(this.store){let i=await this.store.loadMessage(s.remoteJid,s.id);return(i==null?void 0:i.message)||void 0}return ue.Message.fromObject({})},shouldSyncHistoryMessage:s=>!!s.syncType}),this.store.bind(this.socket.ev),this.config.authType=="pairing"&&this.config.phoneNumber&&!this.socket.authState.creds.registered){if(!this.config.phoneNumber){this.spinner.warn("Please enter your phone number");return}if(!Me("+"+this.config.phoneNumber.toString()).valid){this==null||this.spinner.warn("Please enter a valid phone number");return}setTimeout(async()=>{try{if(this.config.authType=="pairing"){let s=await this.socket.requestPairingCode(this.config.phoneNumber.toString());this.spinner.info("This is your OTP code: "+s.replace(/(.{4})/,"$1-"))}}catch(s){}},5e3)}(o=this==null?void 0:this.socket)==null||o.ev.on("connection.update",async s=>{var r,p,M;let{connection:i,lastDisconnect:c,qr:h}=s;if(this.emit("connection",{status:i||"connecting"}),this.config.authType=="qr"&&h&&this.spinner.info("Scan qrcode with your whatsapp: "),i==="close"){let g=(p=(r=c==null?void 0:c.error)==null?void 0:r.output)==null?void 0:p.statusCode,y=g!==de.loggedOut;if(this==null||this.spinner.fail((M=c==null?void 0:c.error)==null?void 0:M.message),g==401||g==405||g==500){this.spinner.warn(`Bad session, please delete "${this.config.authPath}" folder and try again`),await re.prompt("Do you want to delete the session?",{type:"confirm"})&&await this.deleteSession();return}y&&this.initialize()}else i==="open"&&this.spinner.succeed("Successfully connected to whatsapp")}),(n=this==null?void 0:this.socket)==null||n.ev.on("creds.update",this.authState.save),this.socket.ev.on("contacts.update",s=>{var i;for(let c of s){let h=ae(c.id);this.store&&this.store.contacts&&(this.store.contacts[h]={...((i=this.store.contacts)==null?void 0:i[h])||{},...c||{}})}}),this.socket.ev.on("contacts.upsert",s=>{for(let i of s){let c=ae(i.id);this.store&&this.store.contacts&&(this.store.contacts[c]={...i||{}})}}),(a=this.socket)==null||a.ev.on("messages.upsert",async s=>{let i=s.messages;for(let c of i){if(this.config.ignoreMe&&c.key.fromMe)continue;let r=await new I({message:c,socket:this.socket,config:this.config,store:this.store}).handle();r&&(this.config.autoRead&&await this.socket.readMessages([r.key()]),this.temporaryMessage=r,this.config.autoMentions&&(this.parseMention=r.mentions),this.emit("message",r))}}),this.socket.ev.on("groups.update",async([s])=>{let i=await this.socket.groupMetadata(s.id);this.groupCache.set(s.id,i)}),this.socket.ev.on("group-participants.update",async s=>{let i=await this.socket.groupMetadata(s.id);this.groupCache.set(s.id,i)}),this.socket.ev.on("call",async s=>{for(let i of s)this.config.autoRejectCall&&await this.socket.rejectCall(i.id,i.from)})}async deleteSession(){try{await we.rmSync(`${this.config.authPath}`,{recursive:!0,force:!0}),await this.spinner.succeed("Session deleted. Please restart manually"),process.exit(0)}catch(t){if(this==null||this.spinner.fail("Failed to delete session"),await re.prompt("Do you want to try again?",{type:"confirm"}))return await this.deleteSession();process.exit(0)}}on(t,e){return super.on(t,e)}emit(t,...e){return super.emit(t,...e)}generateMentions(t){let e=["@s.whatsapp.net","@g.us","@newsletter"],o=[];return t==null||t.forEach(n=>{e.forEach(a=>{o.push(n.slice(1)+a)})}),o}generateFakeVerified(t,e){return{...t,participant:se[e]}}async sendText(t,e){var o,n,a;try{if(e!=null&&e.footer){let s=ne((o=this==null?void 0:this.temporaryMessage)==null?void 0:o.roomId,{interactiveMessage:{contextInfo:{mentionedJid:this.generateMentions(this.parseMention)},body:{text:t},footer:{text:e==null?void 0:e.footer},nativeFlowMessage:{}}},{userJid:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.roomId});await this.socket.relayMessage(s.key.remoteJid,s.message,{messageId:s.key.id})}else await this.socket.sendMessage((a=this.temporaryMessage)==null?void 0:a.roomId,{text:t})}catch(s){throw s}}async sendReply(t,e){var o,n,a,s,i,c,h;try{if(e!=null&&e.footer){let r=ne((o=this.temporaryMessage)==null?void 0:o.roomId,{interactiveMessage:{contextInfo:{mentionedJid:this.generateMentions(this.parseMention)},body:{text:t},footer:{text:e==null?void 0:e.footer},nativeFlowMessage:{}}},{quoted:{...(n=this.temporaryMessage)==null?void 0:n.message(),key:this.generateFakeVerified((a=this==null?void 0:this.temporaryMessage)==null?void 0:a.message().key,e.fakeVerified)},userJid:(s=this==null?void 0:this.temporaryMessage)==null?void 0:s.roomId});await this.socket.relayMessage(r.key.remoteJid,r.message,{messageId:r.key.id})}else await this.socket.sendMessage((i=this.temporaryMessage)==null?void 0:i.roomId,{text:t},{quoted:{...(c=this==null?void 0:this.temporaryMessage)==null?void 0:c.message(),key:this.generateFakeVerified((h=this==null?void 0:this.temporaryMessage)==null?void 0:h.message().key,e==null?void 0:e.fakeVerified)}})}catch(r){throw r}}async sendImage(t,e){var o,n;try{let a=typeof t=="string"?{image:{url:t}}:{image:t};this.socket.sendMessage((o=this==null?void 0:this.temporaryMessage)==null?void 0:o.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}async sendVideo(t,e){var o,n;try{let a=typeof t=="string"?{video:{url:t}}:{video:t};this.socket.sendMessage((o=this==null?void 0:this.temporaryMessage)==null?void 0:o.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}async sendAudio(t,e){var o,n;try{let a=typeof t=="string"?{audio:{url:t}}:{audio:t};this.socket.sendMessage((o=this.temporaryMessage)==null?void 0:o.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}async sendSticker(t,e){var o,n;try{let a=typeof t=="string"?{sticker:{url:t}}:{sticker:t};this.socket.sendMessage((o=this==null?void 0:this.temporaryMessage)==null?void 0:o.roomId,{...a},{...(e==null?void 0:e.asReply)&&{quoted:(n=this==null?void 0:this.temporaryMessage)==null?void 0:n.message()}})}catch(a){throw a}}};var Ze=C;export{C as Client,Ze as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zaileys",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.00-beta",
|
|
4
4
|
"description": "Zaileys - Simplify Typescript/Javascript WhatsApp NodeJS API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"zaileys",
|
|
@@ -31,34 +31,35 @@
|
|
|
31
31
|
},
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"main": "dist/index.js",
|
|
34
|
+
"module": "dist/index.mjs",
|
|
34
35
|
"types": "dist/index.d.ts",
|
|
35
|
-
"files": [
|
|
36
|
-
"dist/*"
|
|
37
|
-
],
|
|
38
36
|
"engines": {
|
|
39
37
|
"node": ">=18"
|
|
40
38
|
},
|
|
41
39
|
"scripts": {
|
|
42
|
-
"build
|
|
43
|
-
"
|
|
44
|
-
"
|
|
40
|
+
"build": "tsup",
|
|
41
|
+
"dev": "npx ts-node-dev test/example",
|
|
42
|
+
"test": "npx ts-node test/example",
|
|
43
|
+
"docs": "typedoc",
|
|
44
|
+
"prod": "tsup && typedoc && npm publish --tag latest"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@whiskeysockets/baileys": "^6.7.12",
|
|
48
48
|
"awesome-phonenumber": "^7.2.0",
|
|
49
|
+
"chalk": "^5.4.1",
|
|
49
50
|
"consola": "^3.4.0",
|
|
50
|
-
"
|
|
51
|
+
"figlet": "^1.8.0",
|
|
51
52
|
"jimp": "0.22.12",
|
|
52
53
|
"node-cache": "^5.1.2",
|
|
54
|
+
"ora": "^8.2.0",
|
|
53
55
|
"pino": "^9.6.0",
|
|
54
|
-
"qrcode-terminal": "^0.12.0"
|
|
55
|
-
"tsc": "^2.0.4",
|
|
56
|
-
"zod": "^3.24.1"
|
|
56
|
+
"qrcode-terminal": "^0.12.0"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/node": "^16.0.0",
|
|
60
60
|
"ts-node": "^10.8.1",
|
|
61
61
|
"ts-node-dev": "^2.0.0",
|
|
62
|
+
"tsup": "^8.3.6",
|
|
62
63
|
"typedoc": "^0.24.7",
|
|
63
64
|
"typedoc-material-theme": "^1.3.0",
|
|
64
65
|
"typescript": "^4.6.4"
|
package/tsup.config.ts
ADDED
package/dist/Modules/Action.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import EventEmitter from "events";
|
|
3
|
-
import { Client } from "./Client";
|
|
4
|
-
type ActionType = {
|
|
5
|
-
config: Client["config"];
|
|
6
|
-
socket: Client["socket"];
|
|
7
|
-
store: Client["store"];
|
|
8
|
-
};
|
|
9
|
-
export declare class Action extends EventEmitter {
|
|
10
|
-
private provider;
|
|
11
|
-
constructor();
|
|
12
|
-
protected setProvider(provider: ActionType): void;
|
|
13
|
-
}
|
|
14
|
-
export {};
|
package/dist/Modules/Action.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Action = void 0;
|
|
7
|
-
const events_1 = __importDefault(require("events"));
|
|
8
|
-
class Action extends events_1.default {
|
|
9
|
-
constructor() {
|
|
10
|
-
super();
|
|
11
|
-
}
|
|
12
|
-
setProvider(provider) {
|
|
13
|
-
this.provider = provider;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
exports.Action = Action;
|