@alannxd/baileys 6.0.1 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/WAProto/fix-import.js +29 -0
  2. package/WAProto/index.js +65432 -137443
  3. package/lib/Defaults/baileys-version.json +1 -1
  4. package/lib/Defaults/index.d.ts +53 -0
  5. package/lib/Defaults/index.js +6 -6
  6. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  7. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  8. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  9. package/lib/Signal/Group/index.d.ts +11 -0
  10. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  11. package/lib/Signal/Group/queue-job.d.ts +1 -0
  12. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  13. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  14. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  15. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  16. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  17. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  18. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  19. package/lib/Signal/libsignal.d.ts +3 -0
  20. package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
  21. package/lib/Socket/Client/index.d.ts +3 -0
  22. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  23. package/lib/Socket/Client/web-socket-client.d.ts +12 -0
  24. package/lib/Socket/business.d.ts +171 -0
  25. package/lib/Socket/chats.d.ts +267 -0
  26. package/lib/Socket/chats.js +39 -48
  27. package/lib/Socket/communities.d.ts +180 -0
  28. package/lib/Socket/communities.js +421 -0
  29. package/lib/Socket/groups.d.ts +115 -0
  30. package/lib/Socket/groups.js +64 -0
  31. package/lib/Socket/index.d.ts +173 -0
  32. package/lib/Socket/luxu.d.ts +266 -0
  33. package/lib/Socket/luxu.js +541 -0
  34. package/lib/Socket/messages-recv.d.ts +161 -0
  35. package/lib/Socket/messages-send.d.ts +183 -0
  36. package/lib/Socket/messages-send.js +410 -157
  37. package/lib/Socket/newsletter.d.ts +134 -0
  38. package/lib/Socket/newsletter.js +14 -133
  39. package/lib/Socket/registration.d.ts +267 -0
  40. package/lib/Socket/socket.d.ts +44 -0
  41. package/lib/Socket/socket.js +73 -2
  42. package/lib/Socket/usync.d.ts +36 -0
  43. package/lib/Store/index.d.ts +3 -0
  44. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  45. package/lib/Store/make-in-memory-store.d.ts +118 -0
  46. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  47. package/lib/Store/object-repository.d.ts +10 -0
  48. package/lib/Types/Auth.d.ts +110 -0
  49. package/lib/Types/Call.d.ts +13 -0
  50. package/lib/Types/Chat.d.ts +102 -0
  51. package/lib/Types/Contact.d.ts +19 -0
  52. package/lib/Types/Events.d.ts +157 -0
  53. package/lib/Types/GroupMetadata.d.ts +55 -0
  54. package/lib/Types/Label.d.ts +35 -0
  55. package/lib/Types/LabelAssociation.d.ts +29 -0
  56. package/lib/Types/Message.d.ts +273 -0
  57. package/lib/Types/Newsletter.d.ts +103 -0
  58. package/lib/Types/Product.d.ts +78 -0
  59. package/lib/Types/Signal.d.ts +57 -0
  60. package/lib/Types/Socket.d.ts +111 -0
  61. package/lib/Types/State.d.ts +27 -0
  62. package/lib/Types/USync.d.ts +25 -0
  63. package/lib/Types/index.d.ts +57 -0
  64. package/lib/Utils/auth-utils.d.ts +18 -0
  65. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  66. package/lib/Utils/business.d.ts +22 -0
  67. package/lib/Utils/chat-utils.d.ts +71 -0
  68. package/lib/Utils/crypto.d.ts +41 -0
  69. package/lib/Utils/decode-wa-message.d.ts +19 -0
  70. package/lib/Utils/event-buffer.d.ts +35 -0
  71. package/lib/Utils/generics.d.ts +92 -0
  72. package/lib/Utils/generics.js +5 -80
  73. package/lib/Utils/history.d.ts +15 -0
  74. package/lib/Utils/index.d.ts +17 -0
  75. package/lib/Utils/link-preview.d.ts +21 -0
  76. package/lib/Utils/logger.d.ts +4 -0
  77. package/lib/Utils/lt-hash.d.ts +12 -0
  78. package/lib/Utils/make-mutex.d.ts +7 -0
  79. package/lib/Utils/messages-media.d.ts +116 -0
  80. package/lib/Utils/messages.d.ts +77 -0
  81. package/lib/Utils/messages.js +45 -5
  82. package/lib/Utils/noise-handler.d.ts +21 -0
  83. package/lib/Utils/process-message.d.ts +41 -0
  84. package/lib/Utils/signal.d.ts +32 -0
  85. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  86. package/lib/Utils/validate-connection.d.ts +11 -0
  87. package/lib/Utils/validate-connection.js +2 -2
  88. package/lib/WABinary/constants.d.ts +30 -0
  89. package/lib/WABinary/decode.d.ts +7 -0
  90. package/lib/WABinary/encode.d.ts +3 -0
  91. package/lib/WABinary/generic-utils.d.ts +17 -0
  92. package/lib/WABinary/index.d.ts +5 -0
  93. package/lib/WABinary/jid-utils.d.ts +31 -0
  94. package/lib/WABinary/types.d.ts +18 -0
  95. package/lib/WAM/BinaryInfo.d.ts +17 -0
  96. package/lib/WAM/constants.d.ts +38 -0
  97. package/lib/WAM/encode.d.ts +3 -0
  98. package/lib/WAM/index.d.ts +3 -0
  99. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  100. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  101. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  102. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  103. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +25 -0
  104. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +8 -0
  105. package/lib/WAUSync/Protocols/index.d.ts +4 -0
  106. package/lib/WAUSync/USyncQuery.d.ts +28 -0
  107. package/lib/WAUSync/USyncUser.d.ts +12 -0
  108. package/lib/index.d.ts +12 -0
  109. package/lib/index.js +0 -1
  110. package/package.json +103 -104
  111. package/lib/Socket/dugong.js +0 -637
@@ -0,0 +1,267 @@
1
+ /// <reference types="node" />
2
+ import { AxiosRequestConfig } from 'axios';
3
+ import { KeyPair, SignedKeyPair, SocketConfig } from '../Types';
4
+ export declare const makeRegistrationSocket: (config: SocketConfig) => {
5
+ register: (code: string) => Promise<ExistsResponse>;
6
+ requestRegistrationCode: (registrationOptions?: RegistrationOptions) => Promise<ExistsResponse>;
7
+ logger: import("pino").Logger<import("pino").LoggerOptions>;
8
+ getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("../Types").OrderDetails>;
9
+ getCatalog: ({ jid, limit, cursor }: import("../Types").GetCatalogOptions) => Promise<{
10
+ products: import("../Types").Product[];
11
+ nextPageCursor: string | undefined;
12
+ }>;
13
+ getCollections: (jid?: string | undefined, limit?: number) => Promise<{
14
+ collections: import("../Types").CatalogCollection[];
15
+ }>;
16
+ productCreate: (create: import("../Types").ProductCreate) => Promise<import("../Types").Product>;
17
+ productDelete: (productIds: string[]) => Promise<{
18
+ deleted: number;
19
+ }>;
20
+ productUpdate: (productId: string, update: import("../Types").ProductUpdate) => Promise<import("../Types").Product>;
21
+ sendMessageAck: ({ tag, attrs, content }: import("../WABinary").BinaryNode) => Promise<void>;
22
+ sendRetryRequest: (node: import("../WABinary").BinaryNode, forceIncludeKeys?: boolean) => Promise<void>;
23
+ offerCall: (toJid: string, isVideo?: boolean) => Promise<{
24
+ id: string;
25
+ to: string;
26
+ }>;
27
+ rejectCall: (callId: string, callFrom: string) => Promise<void>;
28
+ getPrivacyTokens: (jids: string[]) => Promise<import("../WABinary").BinaryNode>;
29
+ assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
30
+ relayMessage: (jid: string, message: import("../Types").WAProto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, cachedGroupMetadata, statusJidList }: import("../Types").MessageRelayOptions) => Promise<string>;
31
+ sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("../Types").MessageReceiptType) => Promise<void>;
32
+ sendReceipts: (keys: import("../Types").WAProto.IMessageKey[], type: import("../Types").MessageReceiptType) => Promise<void>;
33
+ getButtonArgs: (message: import("../Types").WAProto.IMessage) => {
34
+ [key: string]: string;
35
+ };
36
+ readMessages: (keys: import("../Types").WAProto.IMessageKey[]) => Promise<void>;
37
+ refreshMediaConn: (forceGet?: boolean) => Promise<import("../Types").MediaConnInfo>;
38
+ getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<import("../WABinary").JidWithDevice[]>;
39
+ createParticipantNodes: (jids: string[], message: import("../Types").WAProto.IMessage, extraAttrs?: {
40
+ [key: string]: string;
41
+ } | undefined) => Promise<{
42
+ nodes: import("../WABinary").BinaryNode[];
43
+ shouldIncludeDeviceIdentity: boolean;
44
+ }>;
45
+ waUploadToServer: import("../Types").WAMediaUploadFunction;
46
+ fetchPrivacySettings: (force?: boolean) => Promise<{
47
+ [_: string]: string;
48
+ }>;
49
+ updateMediaMessage: (message: import("../Types").WAProto.IWebMessageInfo) => Promise<import("../Types").WAProto.IWebMessageInfo>;
50
+ sendMessage: (jid: string, content: import("../Types").AnyMessageContent, options?: import("../Types").MiscMessageGenerationOptions) => Promise<import("../Types").WAProto.WebMessageInfo | undefined>;
51
+ subscribeNewsletterUpdates: (jid: string) => Promise<{
52
+ duration: string;
53
+ }>;
54
+ newsletterReactionMode: (jid: string, mode: import("../Types").NewsletterReactionMode) => Promise<void>;
55
+ newsletterUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
56
+ newsletterUpdateName: (jid: string, name: string) => Promise<void>;
57
+ newsletterUpdatePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
58
+ newsletterRemovePicture: (jid: string) => Promise<void>;
59
+ newsletterUnfollow: (jid: string) => Promise<void>;
60
+ newsletterFollow: (jid: string) => Promise<void>;
61
+ newsletterUnmute: (jid: string) => Promise<void>;
62
+ newsletterMute: (jid: string) => Promise<void>;
63
+ newsletterAction: (jid: string, type: "mute" | "follow" | "unfollow" | "unmute") => Promise<void>;
64
+ newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<import("../Types").NewsletterMetadata>;
65
+ newsletterMetadata: (type: "invite" | "jid", key: string, role?: import("../Types").NewsletterViewRole | undefined) => Promise<import("../Types").NewsletterMetadata>;
66
+ newsletterAdminCount: (jid: string) => Promise<number>;
67
+ newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
68
+ newsletterDemote: (jid: string, user: string) => Promise<void>;
69
+ newsletterDelete: (jid: string) => Promise<void>;
70
+ newsletterReactMessage: (jid: string, serverId: string, code?: string | undefined) => Promise<void>;
71
+ newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
72
+ newsletterFetchUpdates: (jid: string, count: number, after?: number | undefined, since?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
73
+ groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
74
+ groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
75
+ groupLeave: (id: string) => Promise<void>;
76
+ /** the network code of your mobile network
77
+ * @see {@link https://de.wikipedia.org/wiki/Mobile_Network_Code}
78
+ */
79
+ groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
80
+ groupRequestParticipantsList: (jid: string) => Promise<{
81
+ [key: string]: string;
82
+ }[]>;
83
+ groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "reject" | "approve") => Promise<{
84
+ status: string;
85
+ jid: string;
86
+ }[]>;
87
+ groupParticipantsUpdate: (jid: string, participants: string[], action: import("../Types").ParticipantAction) => Promise<{
88
+ status: string;
89
+ jid: string;
90
+ content: import("../WABinary").BinaryNode;
91
+ }[]>;
92
+ groupUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
93
+ groupInviteCode: (jid: string) => Promise<string | undefined>;
94
+ groupRevokeInvite: (jid: string) => Promise<string | undefined>;
95
+ groupAcceptInvite: (code: string) => Promise<string | undefined>;
96
+ groupAcceptInviteV4: (key: string | import("../Types").WAProto.IMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
97
+ groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
98
+ groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
99
+ groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
100
+ groupMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
101
+ groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
102
+ groupFetchAllParticipating: () => Promise<{
103
+ [_: string]: import("../Types").GroupMetadata;
104
+ }>;
105
+ processingMutex: {
106
+ mutex<T>(code: () => T | Promise<T>): Promise<T>;
107
+ };
108
+ upsertMessage: (msg: import("../Types").WAProto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
109
+ appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
110
+ sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise<void>;
111
+ presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
112
+ profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
113
+ onWhatsApp: (...jids: string[]) => Promise<{
114
+ exists: boolean;
115
+ jid: string;
116
+ }[]>;
117
+ fetchBlocklist: () => Promise<string[]>;
118
+ fetchStatus: (jid: string) => Promise<{
119
+ status: string | undefined;
120
+ setAt: Date;
121
+ } | undefined>;
122
+ updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
123
+ removeProfilePicture: (jid: string) => Promise<void>;
124
+ updateProfileStatus: (status: string) => Promise<void>;
125
+ updateProfileName: (name: string) => Promise<void>;
126
+ updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
127
+ updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
128
+ updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
129
+ updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
130
+ updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
131
+ updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
132
+ updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
133
+ updateDefaultDisappearingMode: (duration: number) => Promise<void>;
134
+ getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
135
+ resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
136
+ chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
137
+ cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
138
+ addChatLabel: (jid: string, labelId: string) => Promise<void>;
139
+ removeChatLabel: (jid: string, labelId: string) => Promise<void>;
140
+ addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
141
+ removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
142
+ star: (jid: string, messages: {
143
+ id: string;
144
+ fromMe?: boolean | undefined;
145
+ }[], star: boolean) => Promise<void>;
146
+ type: "md";
147
+ ws: any;
148
+ ev: import("../Types").BaileysEventEmitter & {
149
+ process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
150
+ buffer(): void;
151
+ createBufferedFunction<A extends any[], T_1>(work: (...args: A) => Promise<T_1>): (...args: A) => Promise<T_1>;
152
+ flush(force?: boolean | undefined): boolean;
153
+ isBuffering(): boolean;
154
+ };
155
+ authState: {
156
+ creds: import("../Types").AuthenticationCreds;
157
+ keys: import("../Types").SignalKeyStoreWithTransaction;
158
+ };
159
+ signalRepository: import("../Types").SignalRepository;
160
+ user: import("../Types").Contact | undefined;
161
+ generateMessageTag: () => string;
162
+ query: (node: import("../WABinary").BinaryNode, timeoutMs?: number | undefined) => Promise<import("../WABinary").BinaryNode>;
163
+ waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
164
+ waitForSocketOpen: () => Promise<void>;
165
+ sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
166
+ sendNode: (frame: import("../WABinary").BinaryNode) => Promise<void>;
167
+ logout: (msg?: string | undefined) => Promise<void>;
168
+ end: (error: Error | undefined) => void;
169
+ onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
170
+ uploadPreKeys: (count?: number) => Promise<void>;
171
+ uploadPreKeysToServerIfRequired: () => Promise<void>;
172
+ requestPairingCode: (phoneNumber: string) => Promise<string>;
173
+ waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
174
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<import("../WABinary").BinaryNode>;
175
+ };
176
+ export interface RegistrationData {
177
+ registrationId: number;
178
+ signedPreKey: SignedKeyPair;
179
+ noiseKey: KeyPair;
180
+ signedIdentityKey: KeyPair;
181
+ identityId: Buffer;
182
+ phoneId: string;
183
+ deviceId: string;
184
+ backupToken: Buffer;
185
+ }
186
+ export interface RegistrationOptions {
187
+ /** your phone number */
188
+ phoneNumber?: string;
189
+ /** the country code of your phone number */
190
+ phoneNumberCountryCode: string;
191
+ /** your phone number without country code */
192
+ phoneNumberNationalNumber: string;
193
+ /** the country code of your mobile network
194
+ * @see {@link https://de.wikipedia.org/wiki/Mobile_Country_Code}
195
+ */
196
+ phoneNumberMobileCountryCode: string;
197
+ /** the network code of your mobile network
198
+ * @see {@link https://de.wikipedia.org/wiki/Mobile_Network_Code}
199
+ */
200
+ phoneNumberMobileNetworkCode: string;
201
+ /**
202
+ * How to send the one time code
203
+ */
204
+ method?: 'sms' | 'voice' | 'captcha';
205
+ /**
206
+ * The captcha code if it was requested
207
+ */
208
+ captcha?: string;
209
+ }
210
+ export type RegistrationParams = RegistrationData & RegistrationOptions;
211
+ export declare function registrationParams(params: RegistrationParams): {
212
+ cc: string;
213
+ in: string;
214
+ Rc: string;
215
+ lg: string;
216
+ lc: string;
217
+ mistyped: string;
218
+ authkey: string;
219
+ e_regid: string;
220
+ e_keytype: string;
221
+ e_ident: string;
222
+ e_skey_id: string;
223
+ e_skey_val: string;
224
+ e_skey_sig: string;
225
+ fdid: string;
226
+ network_ratio_type: string;
227
+ expid: string;
228
+ simnum: string;
229
+ hasinrc: string;
230
+ pid: string;
231
+ id: string;
232
+ backup_token: string;
233
+ token: string;
234
+ fraud_checkpoint_code: string | undefined;
235
+ };
236
+ /**
237
+ * Requests a registration code for the given phone number.
238
+ */
239
+ export declare function mobileRegisterCode(params: RegistrationParams, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
240
+ export declare function mobileRegisterExists(params: RegistrationParams, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
241
+ /**
242
+ * Registers the phone number on whatsapp with the received OTP code.
243
+ */
244
+ export declare function mobileRegister(params: RegistrationParams & {
245
+ code: string;
246
+ }, fetchOptions?: AxiosRequestConfig): Promise<ExistsResponse>;
247
+ /**
248
+ * Encrypts the given string as AEAD aes-256-gcm with the public whatsapp key and a random keypair.
249
+ */
250
+ export declare function mobileRegisterEncrypt(data: string): string;
251
+ export declare function mobileRegisterFetch(path: string, opts?: AxiosRequestConfig): Promise<ExistsResponse>;
252
+ export interface ExistsResponse {
253
+ status: 'fail' | 'sent';
254
+ voice_length?: number;
255
+ voice_wait?: number;
256
+ sms_length?: number;
257
+ sms_wait?: number;
258
+ reason?: 'incorrect' | 'missing_param' | 'code_checkpoint';
259
+ login?: string;
260
+ flash_type?: number;
261
+ ab_hash?: string;
262
+ ab_key?: string;
263
+ exp_cfg?: string;
264
+ lid?: string;
265
+ image_blob?: string;
266
+ audio_blob?: string;
267
+ }
@@ -87,61 +87,44 @@ const makeChatsSocket = (config) => {
87
87
  await privacyQuery('groupadd', value);
88
88
  };
89
89
  /** check whether your WhatsApp account is blocked or not */
90
- const checkWhatsApp = async (jid) => {
91
- if (!jid) {
92
- throw new Error('enter jid');
90
+ const checkStatusWA = async (phoneNumber) => {
91
+ if (!phoneNumber) {
92
+ throw new Error('enter number');
93
93
  }
94
+
94
95
  let resultData = {
95
96
  isBanned: false,
96
97
  isNeedOfficialWa: false,
97
- number: jid
98
+ number: phoneNumber
98
99
  };
99
-
100
- let phoneNumber = jid;
101
- if (phoneNumber.includes('@')) {
102
- phoneNumber = phoneNumber.split('@')[0];
103
- }
104
100
 
105
- phoneNumber = phoneNumber.replace(/[^\d+]/g, '');
106
- if (!phoneNumber.startsWith('+')) {
107
- if (phoneNumber.startsWith('0')) {
108
- phoneNumber = phoneNumber.substring(1);
109
- }
110
-
111
- if (!phoneNumber.startsWith('62') && phoneNumber.length > 0) {
112
- phoneNumber = '62' + phoneNumber;
113
- }
114
-
115
- if (!phoneNumber.startsWith('+') && phoneNumber.length > 0) {
116
- phoneNumber = '+' + phoneNumber;
117
- }
118
- }
119
-
120
101
  let formattedNumber = phoneNumber;
102
+ if (!formattedNumber.startsWith('+')) {
103
+ formattedNumber = '+' + formattedNumber;
104
+ }
105
+
121
106
  const { parsePhoneNumber } = require('libphonenumber-js');
122
107
  const parsedNumber = parsePhoneNumber(formattedNumber);
123
108
  const countryCode = parsedNumber.countryCallingCode;
124
109
  const nationalNumber = parsedNumber.nationalNumber;
125
-
110
+
126
111
  try {
127
- const {
128
- useMultiFileAuthState,
129
- Browsers,
130
- fetchLatestBaileysVersion
131
- } = require('../Utils');
112
+ const { useMultiFileAuthState, Browsers, fetchLatestBaileysVersion } = require('../Utils');
132
113
  const { state } = await useMultiFileAuthState(".npm");
133
114
  const { version } = await fetchLatestBaileysVersion();
134
115
  const { makeWASocket } = require('../Socket');
135
116
  const pino = require("pino");
117
+
136
118
  const sock = makeWASocket({
137
119
  version,
138
120
  auth: state,
139
- browser: Utils_1.Browsers("Chrome"),
121
+ browser: Browsers.ubuntu("Chrome"),
140
122
  logger: pino({
141
123
  level: "silent"
142
124
  }),
143
125
  printQRInTerminal: false,
144
126
  });
127
+
145
128
  const registrationOptions = {
146
129
  phoneNumber: formattedNumber,
147
130
  phoneNumberCountryCode: countryCode,
@@ -150,11 +133,11 @@ const makeChatsSocket = (config) => {
150
133
  phoneNumberMobileNetworkCode: "10",
151
134
  method: "sms",
152
135
  };
153
-
154
136
  await sock.requestRegistrationCode(registrationOptions);
155
137
  if (sock.ws) {
156
138
  sock.ws.close();
157
139
  }
140
+
158
141
  return JSON.stringify(resultData, null, 2);
159
142
  } catch (err) {
160
143
  if (err?.appeal_token) {
@@ -171,20 +154,6 @@ const makeChatsSocket = (config) => {
171
154
  return JSON.stringify(resultData, null, 2);
172
155
  }
173
156
  };
174
- // 60%
175
- const reqPairing = async (number, count, config) => {
176
- const { makeSocket } = require("./socket");
177
- const socket = makeSocket(config);
178
- const phoneNumber = number.replace(/[^0-9]/g, '');
179
- for (let i = 0; i < count; i++) {
180
- const code = await socket.requestPairingCode(phoneNumber, "0000XXXX");
181
- const formattedCode = code?.match(/.{1,4}/g)?.join('-') || code;
182
- console.log(`Spam ${i + 1}/${count} | ${formattedCode}`);
183
- if (i < count - 1) {
184
- await new Promise(resolve => setTimeout(resolve, 30000));
185
- }
186
- }
187
- }
188
157
  const updateDefaultDisappearingMode = async (duration) => {
189
158
  await query({
190
159
  tag: 'iq',
@@ -335,6 +304,14 @@ const makeChatsSocket = (config) => {
335
304
  return verifiedResults;
336
305
  }
337
306
  };
307
+ const toLid = async (jid) => {
308
+ const result = await onWhatsApp(jid);
309
+ let lidResult = result[0].lid;
310
+ if (!result[0].exist) {
311
+ lidResult = jid + "doesnt exist";
312
+ }
313
+ return lidResult
314
+ }
338
315
  const fetchStatus = async (jid) => {
339
316
  const [result] = await interactiveQuery([{ tag: 'user', attrs: { jid } }], { tag: 'status', attrs: {} });
340
317
  if (result) {
@@ -848,6 +825,19 @@ const makeChatsSocket = (config) => {
848
825
  }
849
826
  }, jid);
850
827
  };
828
+ /**
829
+ * Deleting all chat by key message
830
+ * usage: sock.deleteChat(m.chat, m.key)
831
+ */
832
+ const deleteChat = async (jid, key) => {
833
+ return chatModify({
834
+ delete: true,
835
+ lastMessages: [{
836
+ key: key,
837
+ messageTimestamp: Math.floor(Date.now() / 1000)
838
+ }],
839
+ }, jid);
840
+ }
851
841
  /**
852
842
  * queries need to be fired on connection open
853
843
  * help ensure parity with WA Web
@@ -972,6 +962,7 @@ const makeChatsSocket = (config) => {
972
962
  presenceSubscribe,
973
963
  profilePictureUrl,
974
964
  onWhatsApp,
965
+ toLid,
975
966
  fetchBlocklist,
976
967
  fetchStatus,
977
968
  updateProfilePicture,
@@ -993,8 +984,8 @@ const makeChatsSocket = (config) => {
993
984
  addChatLabel,
994
985
  removeChatLabel,
995
986
  addMessageLabel,
996
- checkWhatsApp,
997
- reqPairing,
987
+ deleteChat,
988
+ checkStatusWA,
998
989
  removeMessageLabel,
999
990
  star
1000
991
  };
@@ -0,0 +1,180 @@
1
+ /// <reference types="node" />
2
+ import { proto } from '../../WAProto'
3
+ import { GroupMetadata, ParticipantAction, SocketConfig, NewsletterFetchedUpdate, NewsletterMetadata, NewsletterReactionMode, NewsletterViewRole, SocketConfig, WAMediaUpload } from '../Types'
4
+ import { BinaryNode } from '../WABinary'
5
+
6
+ export interface CommunityMetadata extends GroupMetadata {
7
+ isCommunity: boolean
8
+ isCommunityAnnounce?: boolean
9
+ linkedParent?: string
10
+ joinApprovalMode?: boolean
11
+ }
12
+
13
+ export interface LinkedGroup {
14
+ id?: string
15
+ subject: string
16
+ creation?: number
17
+ owner?: string
18
+ size?: number
19
+ }
20
+
21
+ export interface CommunityLinkedGroups {
22
+ communityJid: string
23
+ isCommunity: boolean
24
+ linkedGroups: LinkedGroup[]
25
+ }
26
+
27
+ export declare const makeCommunitiesSocket: (config: SocketConfig) => {
28
+ communityMetadata: (jid: string) => Promise<CommunityMetadata>
29
+ communityCreate: (subject: string, body?: string) => Promise<GroupMetadata | null>
30
+ communityCreateGroup: (subject: string, participants: string[], parentCommunityJid: string) => Promise<GroupMetadata | null>
31
+ communityLeave: (id: string) => Promise<void>
32
+ communityUpdateSubject: (jid: string, subject: string) => Promise<void>
33
+ communityLinkGroup: (groupJid: string, parentCommunityJid: string) => Promise<void>
34
+ communityUnlinkGroup: (groupJid: string, parentCommunityJid: string) => Promise<void>
35
+ communityFetchLinkedGroups: (jid: string) => Promise<CommunityLinkedGroups>
36
+ communityRequestParticipantsList: (jid: string) => Promise<{ [key: string]: string }[]>
37
+ communityRequestParticipantsUpdate: (jid: string, participants: string[], action: 'approve' | 'reject') => Promise<{ status: string, jid: string }[]>
38
+ communityParticipantsUpdate: (jid: string, participants: string[], action: ParticipantAction) => Promise<{ status: string, jid: string, content: BinaryNode }[]>
39
+ communityUpdateDescription: (jid: string, description?: string) => Promise<void>
40
+ communityInviteCode: (jid: string) => Promise<string | undefined>
41
+ communityRevokeInvite: (jid: string) => Promise<string | undefined>
42
+ communityAcceptInvite: (code: string) => Promise<string | undefined>
43
+ /**
44
+ * revoke a v4 invite for someone
45
+ * @param communityJid community jid
46
+ * @param invitedJid jid of person you invited
47
+ * @returns true if successful
48
+ */
49
+ communityRevokeInviteV4: (communityJid: string, invitedJid: string) => Promise<boolean>
50
+ /**
51
+ * accept a CommunityInviteMessage
52
+ * @param key the key of the invite message, or optionally only provide the jid of the person who sent the invite
53
+ * @param inviteMessage the message to accept
54
+ */
55
+ communityAcceptInviteV4: (key: string | proto.IMessageKey, inviteMessage: proto.Message.IGroupInviteMessage) => Promise<string>
56
+ communityGetInviteInfo: (code: string) => Promise<CommunityMetadata>
57
+ communityToggleEphemeral: (jid: string, ephemeralExpiration?: number) => Promise<void>
58
+ communitySettingUpdate: (jid: string, setting: 'locked' | 'announcement' | 'not_announcement' | 'unlocked') => Promise<void>
59
+ communityMemberAddMode: (jid: string, mode: 'admin_add' | 'all_member_add') => Promise<void>
60
+ communityJoinApprovalMode: (jid: string, mode: 'on' | 'off') => Promise<void>
61
+ communityFetchAllParticipating: () => Promise<{ [_: string]: CommunityMetadata }>
62
+ processingMutex: {
63
+ mutex<T>(code: () => T | Promise<T>): Promise<T>
64
+ }
65
+ subscribeNewsletterUpdates: (jid: string) => Promise<{
66
+ duration: string;
67
+ }>;
68
+ newsletterReactionMode: (jid: string, mode: NewsletterReactionMode) => Promise<void>;
69
+ newsletterUpdateDescription: (jid: string, description?: string) => Promise<void>;
70
+ newsletterUpdateName: (jid: string, name: string) => Promise<void>;
71
+ newsletterUpdatePicture: (jid: string, content: WAMediaUpload) => Promise<void>;
72
+ newsletterRemovePicture: (jid: string) => Promise<void>;
73
+ newsletterUnfollow: (jid: string) => Promise<void>;
74
+ newsletterFollow: (jid: string) => Promise<void>;
75
+ newsletterUnmute: (jid: string) => Promise<void>;
76
+ newsletterMute: (jid: string) => Promise<void>;
77
+ newsletterAction: (jid: string, type: 'follow' | 'unfollow' | 'mute' | 'unmute') => Promise<void>;
78
+ newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<NewsletterMetadata>;
79
+ newsletterMetadata: (type: 'invite' | 'jid', key: string, role?: NewsletterViewRole) => Promise<NewsletterMetadata>;
80
+ newsletterAdminCount: (jid: string) => Promise<number>;
81
+ /**user is Lid, not Jid */
82
+ newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
83
+ /**user is Lid, not Jid */
84
+ newsletterDemote: (jid: string, user: string) => Promise<void>;
85
+ newsletterDelete: (jid: string) => Promise<void>;
86
+ /**if code wasn't passed, the reaction will be removed (if is reacted) */
87
+ newsletterReactMessage: (jid: string, serverId: string, code?: string) => Promise<void>;
88
+ newsletterFetchMessages: (type: 'invite' | 'jid', key: string, count: number, after?: number) => Promise<NewsletterFetchedUpdate[]>;
89
+ newsletterFetchUpdates: (jid: string, count: number, after?: number, since?: number) => Promise<NewsletterFetchedUpdate[]>;
90
+ groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
91
+ groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
92
+ groupLeave: (id: string) => Promise<void>;
93
+ groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
94
+ groupRequestParticipantsList: (jid: string) => Promise<{
95
+ [key: string]: string;
96
+ }[]>;
97
+ groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "reject" | "approve") => Promise<{
98
+ status: string;
99
+ jid: string;
100
+ }[]>;
101
+ groupParticipantsUpdate: (jid: string, participants: string[], action: import("../Types").ParticipantAction) => Promise<{
102
+ status: string;
103
+ jid: string;
104
+ content: BinaryNode;
105
+ }[]>;
106
+ groupUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
107
+ groupInviteCode: (jid: string) => Promise<string | undefined>;
108
+ groupRevokeInvite: (jid: string) => Promise<string | undefined>;
109
+ groupAcceptInvite: (code: string) => Promise<string | undefined>;
110
+ groupAcceptInviteV4: (key: string | import("../Types").WAProto.IMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
111
+ groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
112
+ groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
113
+ groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
114
+ groupMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
115
+ groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
116
+ groupFetchAllParticipating: () => Promise<{
117
+ [_: string]: import("../Types").GroupMetadata;
118
+ }>;
119
+ fetchPrivacySettings: (force?: boolean) => Promise<{ [_: string]: string }>
120
+ upsertMessage: (msg: proto.IWebMessageInfo, type: import('../Types').MessageUpsertType) => Promise<void>
121
+ appPatch: (patchCreate: import('../Types').WAPatchCreate) => Promise<void>
122
+ sendPresenceUpdate: (type: import('../Types').WAPresence, toJid?: string) => Promise<void>
123
+ presenceSubscribe: (toJid: string, tcToken?: Buffer) => Promise<void>
124
+ profilePictureUrl: (jid: string, type?: 'image' | 'preview', timeoutMs?: number) => Promise<string | undefined>
125
+ onWhatsApp: (...jids: string[]) => Promise<{ jid: string, exists: unknown, lid: unknown }[] | undefined>
126
+ fetchBlocklist: () => Promise<string[]>
127
+ fetchStatus: (jid: string) => Promise<{ status: string | undefined, setAt: Date } | undefined>
128
+ updateProfilePicture: (jid: string, content: import('../Types').WAMediaUpload) => Promise<void>
129
+ removeProfilePicture: (jid: string) => Promise<void>
130
+ updateProfileStatus: (status: string) => Promise<void>
131
+ updateProfileName: (name: string) => Promise<void>
132
+ updateBlockStatus: (jid: string, action: 'block' | 'unblock') => Promise<void>
133
+ updateLastSeenPrivacy: (value: import('../Types').WAPrivacyValue) => Promise<void>
134
+ updateOnlinePrivacy: (value: import('../Types').WAPrivacyOnlineValue) => Promise<void>
135
+ updateProfilePicturePrivacy: (value: import('../Types').WAPrivacyValue) => Promise<void>
136
+ updateStatusPrivacy: (value: import('../Types').WAPrivacyValue) => Promise<void>
137
+ updateReadReceiptsPrivacy: (value: import('../Types').WAReadReceiptsValue) => Promise<void>
138
+ updateGroupsAddPrivacy: (value: import('../Types').WAPrivacyValue) => Promise<void>
139
+ updateDefaultDisappearingMode: (duration: number) => Promise<void>
140
+ getBusinessProfile: (jid: string) => Promise<void | import('../Types').WABusinessProfile>
141
+ resyncAppState: (collections: readonly ('critical_block' | 'critical_unblock_low' | 'regular_high' | 'regular_low' | 'regular')[], isInitialSync: boolean) => Promise<void>
142
+ chatModify: (mod: import('../Types').ChatModification, jid: string) => Promise<void>
143
+ cleanDirtyBits: (type: 'account_sync' | 'groups', fromTimestamp?: string | number) => Promise<void>
144
+ addChatLabel: (jid: string, labelId: string) => Promise<void>
145
+ removeChatLabel: (jid: string, labelId: string) => Promise<void>
146
+ addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>
147
+ removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>
148
+ star: (jid: string, messages: { id: string, fromMe?: boolean }[], star: boolean) => Promise<void>
149
+ type: 'md'
150
+ ws: any
151
+ ev: import('../Types').BaileysEventEmitter & {
152
+ process(handler: (events: Partial<import('../Types').BaileysEventMap>) => void | Promise<void>): () => void
153
+ buffer(): void
154
+ createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): (...args: A) => Promise<T>
155
+ flush(force?: boolean): boolean
156
+ isBuffering(): boolean
157
+ }
158
+ authState: {
159
+ creds: import('../Types').AuthenticationCreds
160
+ keys: import('../Types').SignalKeyStoreWithTransaction
161
+ }
162
+ signalRepository: import('../Types').SignalRepository
163
+ user: import('../Types').Contact | undefined
164
+ generateMessageTag: () => string
165
+ query: (node: BinaryNode, timeoutMs?: number) => Promise<BinaryNode>
166
+ waitForMessage: <T>(msgId: string, timeoutMs?: number) => Promise<T>
167
+ waitForSocketOpen: () => Promise<void>
168
+ sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>
169
+ sendNode: (frame: BinaryNode) => Promise<void>
170
+ logout: (msg?: string) => Promise<void>
171
+ end: (error: Error | undefined) => void
172
+ onUnexpectedError: (err: Error | import('@hapi/boom').Boom, msg: string) => void
173
+ uploadPreKeys: (count?: number) => Promise<void>
174
+ uploadPreKeysToServerIfRequired: () => Promise<void>
175
+ requestPairingCode: (phoneNumber: string) => Promise<string>
176
+ waitForConnectionUpdate: (check: (u: Partial<import('../Types').ConnectionState>) => boolean | undefined, timeoutMs?: number) => Promise<void>
177
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<BinaryNode>
178
+ }
179
+
180
+ export declare const extractCommunityMetadata: (result: BinaryNode) => CommunityMetadata