riftcore 1.4.6 → 1.4.7

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/example.js ADDED
@@ -0,0 +1,13 @@
1
+ const [currentMajor] = process.versions.node.split('.').map(Number);
2
+
3
+ if (currentMajor < 20) {
4
+ console.error(`
5
+ 🚫 Unsupported Node.js version detected!
6
+
7
+ • Required : Node.js v20 or newer
8
+ • Current : v${process.versions.node}
9
+
10
+ 👉 Please install Node.js 20+ to continue.
11
+ `);
12
+ process.exit(1);
13
+ }
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": [2, 3000, 1026924051]
2
+ "version": [2, 3000, 1023223821]
3
3
  }
@@ -26,54 +26,37 @@ exports.DEFAULT_CACHE_TTLS =
26
26
  exports.UNAUTHORIZED_CODES =
27
27
  void 0;
28
28
 
29
- const crypto_1 = require("crypto");
30
- const { proto } = require("../../WAProto"),
29
+ const WAProto_1 = require("../../WAProto"),
31
30
  libsignal_1 = require("../Signal/libsignal"),
32
31
  Utils_1 = require("../Utils"),
33
32
  logger_1 = __importDefault(require("../Utils/logger")),
34
- baileys_version_json_1 = require("./baileys-version.json"),
35
- phonenumber_mcc_json_1 = __importDefault(require("./phonenumber-mcc.json"));
33
+ baileys_version_json_1 = require("./baileys-version.json");
36
34
 
37
35
  exports.UNAUTHORIZED_CODES = [401, 403, 419];
38
- exports.version = [2, 3000, 1027934701];
39
- exports.PHONENUMBER_MCC = phonenumber_mcc_json_1.default;
40
36
  exports.DEFAULT_ORIGIN = "https://web.whatsapp.com";
41
- exports.MOBILE_ENDPOINT = 'g.whatsapp.net';
42
- exports.MOBILE_PORT = 443;
43
37
  exports.DEF_CALLBACK_PREFIX = "CB:";
44
38
  exports.DEF_TAG_PREFIX = "TAG:";
45
39
  exports.PHONE_CONNECTION_CB = "CB:Pong";
46
40
  exports.WA_DEFAULT_EPHEMERAL = 604800;
47
- const WA_VERSION = '2.25.23.24';
48
- const WA_VERSION_HASH = (0, crypto_1.createHash)('md5').update(WA_VERSION).digest('hex');
49
- exports.MOBILE_TOKEN = Buffer.from('0a1mLfGUIBVrMKF1RdvLI5lkRBvof6vn0fD2QRSM' + WA_VERSION_HASH);
50
- exports.MOBILE_REGISTRATION_ENDPOINT = 'https://v.whatsapp.net/v2';
51
- exports.MOBILE_USERAGENT = `WhatsApp/${WA_VERSION} iOS/17.5.1 Device/Apple-iPhone_13`;
52
- exports.REGISTRATION_PUBLIC_KEY = Buffer.from([
53
- 5, 142, 140, 15, 116, 195, 235, 197, 215, 166, 134, 92, 108, 60, 132, 56, 86, 176, 97, 33, 204, 232, 234, 119, 77,
54
- 34, 251, 111, 18, 37, 18, 48, 45,
55
- ]);
56
41
  exports.NOISE_MODE = "Noise_XX_25519_AESGCM_SHA256\x00\x00\x00\x00";
57
42
  exports.DICT_VERSION = 2;
58
43
  exports.KEY_BUNDLE_TYPE = Buffer.from([5]);
59
44
  exports.NOISE_WA_HEADER = Buffer.from([87, 65, 6, exports.DICT_VERSION]);
60
- exports.PROTOCOL_VERSION = [5, 2];
61
- exports.MOBILE_NOISE_HEADER = Buffer.concat([Buffer.from('WA'), Buffer.from(exports.PROTOCOL_VERSION)]);
62
45
 
63
46
  exports.URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g;
64
47
  exports.WA_CERT_DETAILS = { SERIAL: 0 };
65
48
 
66
49
  exports.PROCESSABLE_HISTORY_TYPES = [
67
- "INITIAL_BOOTSTRAP",
68
- "PUSH_NAME",
69
- "RECENT",
70
- "FULL",
71
- "ON_DEMAND"
50
+ WAProto_1.proto.Message.HistorySyncNotification.HistorySyncType.INITIAL_BOOTSTRAP,
51
+ WAProto_1.proto.Message.HistorySyncNotification.HistorySyncType.PUSH_NAME,
52
+ WAProto_1.proto.Message.HistorySyncNotification.HistorySyncType.RECENT,
53
+ WAProto_1.proto.Message.HistorySyncNotification.HistorySyncType.FULL,
54
+ WAProto_1.proto.Message.HistorySyncNotification.HistorySyncType.ON_DEMAND
72
55
  ];
73
56
 
74
57
  exports.DEFAULT_CONNECTION_CONFIG = {
75
58
  version: baileys_version_json_1.version,
76
- browser: Utils_1.Browsers("Chrome"),
59
+ browser: Utils_1.Browsers.ubuntu("Chrome"),
77
60
  waWebSocketUrl: "wss://web.whatsapp.com/ws/chat",
78
61
  connectTimeoutMs: 2E4,
79
62
  keepAliveIntervalMs: 3E4,
@@ -1,115 +1,20 @@
1
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;
2
+ import { Boom } from '@hapi/boom';
3
+ import { proto } from '../../WAProto';
4
+ import { ChatModification, MessageUpsertType, SocketConfig, WABusinessProfile, WAMediaUpload, WAPatchCreate, WAPresence, WAPrivacyOnlineValue, WAPrivacyValue, WAReadReceiptsValue } from '../Types';
5
+ import { BinaryNode } from '../WABinary';
6
+ export declare const makeChatsSocket: (config: SocketConfig) => {
7
+ processingMutex: {
8
+ mutex<T>(code: () => T | Promise<T>): Promise<T>;
35
9
  };
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
10
  fetchPrivacySettings: (force?: boolean) => Promise<{
47
11
  [_: string]: string;
48
12
  }>;
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>;
13
+ upsertMessage: (msg: proto.IWebMessageInfo, type: MessageUpsertType) => Promise<void>;
14
+ appPatch: (patchCreate: WAPatchCreate) => Promise<void>;
15
+ sendPresenceUpdate: (type: WAPresence, toJid?: string) => Promise<void>;
16
+ presenceSubscribe: (toJid: string, tcToken?: Buffer) => Promise<void>;
17
+ profilePictureUrl: (jid: string, type?: 'preview' | 'image', timeoutMs?: number) => Promise<string | undefined>;
113
18
  onWhatsApp: (...jids: string[]) => Promise<{
114
19
  exists: boolean;
115
20
  jid: string;
@@ -119,29 +24,29 @@ export declare const makeRegistrationSocket: (config: SocketConfig) => {
119
24
  status: string | undefined;
120
25
  setAt: Date;
121
26
  } | undefined>;
122
- updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
27
+ updateProfilePicture: (jid: string, content: WAMediaUpload) => Promise<void>;
123
28
  removeProfilePicture: (jid: string) => Promise<void>;
124
29
  updateProfileStatus: (status: string) => Promise<void>;
125
30
  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>;
31
+ updateBlockStatus: (jid: string, action: 'block' | 'unblock') => Promise<void>;
32
+ updateLastSeenPrivacy: (value: WAPrivacyValue) => Promise<void>;
33
+ updateOnlinePrivacy: (value: WAPrivacyOnlineValue) => Promise<void>;
34
+ updateProfilePicturePrivacy: (value: WAPrivacyValue) => Promise<void>;
35
+ updateStatusPrivacy: (value: WAPrivacyValue) => Promise<void>;
36
+ updateReadReceiptsPrivacy: (value: WAReadReceiptsValue) => Promise<void>;
37
+ updateGroupsAddPrivacy: (value: WAPrivacyValue) => Promise<void>;
133
38
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
134
- getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
39
+ getBusinessProfile: (jid: string) => Promise<WABusinessProfile | void>;
135
40
  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>;
41
+ chatModify: (mod: ChatModification, jid: string) => Promise<void>;
42
+ cleanDirtyBits: (type: 'account_sync' | 'groups', fromTimestamp?: number | string) => Promise<void>;
138
43
  addChatLabel: (jid: string, labelId: string) => Promise<void>;
139
44
  removeChatLabel: (jid: string, labelId: string) => Promise<void>;
140
45
  addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
141
46
  removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
142
47
  star: (jid: string, messages: {
143
48
  id: string;
144
- fromMe?: boolean | undefined;
49
+ fromMe?: boolean;
145
50
  }[], star: boolean) => Promise<void>;
146
51
  type: "md";
147
52
  ws: any;
@@ -159,109 +64,17 @@ export declare const makeRegistrationSocket: (config: SocketConfig) => {
159
64
  signalRepository: import("../Types").SignalRepository;
160
65
  user: import("../Types").Contact | undefined;
161
66
  generateMessageTag: () => string;
162
- query: (node: import("../WABinary").BinaryNode, timeoutMs?: number | undefined) => Promise<import("../WABinary").BinaryNode>;
67
+ query: (node: BinaryNode, timeoutMs?: number | undefined) => Promise<BinaryNode>;
163
68
  waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
164
69
  waitForSocketOpen: () => Promise<void>;
165
70
  sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
166
- sendNode: (frame: import("../WABinary").BinaryNode) => Promise<void>;
71
+ sendNode: (frame: BinaryNode) => Promise<void>;
167
72
  logout: (msg?: string | undefined) => Promise<void>;
168
73
  end: (error: Error | undefined) => void;
169
- onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
74
+ onUnexpectedError: (err: Error | Boom<any>, msg: string) => void;
170
75
  uploadPreKeys: (count?: number) => Promise<void>;
171
76
  uploadPreKeysToServerIfRequired: () => Promise<void>;
172
77
  requestPairingCode: (phoneNumber: string) => Promise<string>;
173
78
  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;
79
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<BinaryNode>;
235
80
  };
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
- }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
4
+ };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.makeChatsSocket = void 0;
7
7
  const boom_1 = require("@hapi/boom");
@@ -86,74 +86,6 @@ const makeChatsSocket = (config) => {
86
86
  const updateGroupsAddPrivacy = async (value) => {
87
87
  await privacyQuery('groupadd', value);
88
88
  };
89
- /** check whether your WhatsApp account is blocked or not */
90
- const checkStatusWA = async (phoneNumber) => {
91
- if (!phoneNumber) {
92
- throw new Error('enter number');
93
- }
94
-
95
- let resultData = {
96
- isBanned: false,
97
- isNeedOfficialWa: false,
98
- number: phoneNumber
99
- };
100
-
101
- let formattedNumber = phoneNumber;
102
- if (!formattedNumber.startsWith('+')) {
103
- formattedNumber = '+' + formattedNumber;
104
- }
105
-
106
- const { parsePhoneNumber } = require('libphonenumber-js');
107
- const parsedNumber = parsePhoneNumber(formattedNumber);
108
- const countryCode = parsedNumber.countryCallingCode;
109
- const nationalNumber = parsedNumber.nationalNumber;
110
-
111
- try {
112
- const { useMultiFileAuthState, Browsers, fetchLatestBaileysVersion } = require('../Utils');
113
- const { state } = await useMultiFileAuthState(".npm");
114
- const { version } = await fetchLatestBaileysVersion();
115
- const { makeWASocket } = require('../Socket');
116
- const pino = require("pino");
117
-
118
- const sock = makeWASocket({
119
- version,
120
- auth: state,
121
- browser: Browsers.ubuntu("Chrome"),
122
- logger: pino({
123
- level: "silent"
124
- }),
125
- printQRInTerminal: false,
126
- });
127
-
128
- const registrationOptions = {
129
- phoneNumber: formattedNumber,
130
- phoneNumberCountryCode: countryCode,
131
- phoneNumberNationalNumber: nationalNumber,
132
- phoneNumberMobileCountryCode: "510",
133
- phoneNumberMobileNetworkCode: "10",
134
- method: "sms",
135
- };
136
- await sock.requestRegistrationCode(registrationOptions);
137
- if (sock.ws) {
138
- sock.ws.close();
139
- }
140
-
141
- return JSON.stringify(resultData, null, 2);
142
- } catch (err) {
143
- if (err?.appeal_token) {
144
- resultData.isBanned = true;
145
- resultData.data = {
146
- violation_type: err.violation_type || null,
147
- in_app_ban_appeal: err.in_app_ban_appeal || null,
148
- appeal_token: err.appeal_token || null,
149
- };
150
- }
151
- else if (err?.custom_block_screen || err?.reason === 'blocked') {
152
- resultData.isNeedOfficialWa = true;
153
- }
154
- return JSON.stringify(resultData, null, 2);
155
- }
156
- };
157
89
  const updateDefaultDisappearingMode = async (duration) => {
158
90
  await query({
159
91
  tag: 'iq',
@@ -209,99 +141,17 @@ const makeChatsSocket = (config) => {
209
141
  const users = (0, WABinary_1.getBinaryNodeChildren)(listNode, 'user');
210
142
  return users;
211
143
  };
212
- const getBusinessProfile = async (jid) => {
213
- var _a, _b, _c, _d, _e, _f, _g;
214
- const results = await query({
215
- tag: 'iq',
216
- attrs: {
217
- to: 's.whatsapp.net',
218
- xmlns: 'w:biz',
219
- type: 'get'
220
- },
221
- content: [{
222
- tag: 'business_profile',
223
- attrs: { v: '244' },
224
- content: [{
225
- tag: 'profile',
226
- attrs: { jid }
227
- }]
228
- }]
229
- });
230
- const profileNode = (0, WABinary_1.getBinaryNodeChild)(results, 'business_profile');
231
- const profiles = (0, WABinary_1.getBinaryNodeChild)(profileNode, 'profile');
232
- if (profiles) {
233
- const address = (0, WABinary_1.getBinaryNodeChild)(profiles, 'address');
234
- const description = (0, WABinary_1.getBinaryNodeChild)(profiles, 'description');
235
- const website = (0, WABinary_1.getBinaryNodeChild)(profiles, 'website');
236
- const email = (0, WABinary_1.getBinaryNodeChild)(profiles, 'email');
237
- const category = (0, WABinary_1.getBinaryNodeChild)((0, WABinary_1.getBinaryNodeChild)(profiles, 'categories'), 'category');
238
- const businessHours = (0, WABinary_1.getBinaryNodeChild)(profiles, 'business_hours');
239
- const businessHoursConfig = businessHours ?
240
- (0, WABinary_1.getBinaryNodeChildren)(businessHours, 'business_hours_config') :
241
- undefined;
242
- const websiteStr = (_a = website === null || website === void 0 ? void 0 : website.content) === null || _a === void 0 ? void 0 : _a.toString();
243
- return {
244
- wid: (_b = profiles.attrs) === null || _b === void 0 ? void 0 : _b.jid,
245
- address: (_c = address === null || address === void 0 ? void 0 : address.content) === null || _c === void 0 ? void 0 : _c.toString(),
246
- description: ((_d = description === null || description === void 0 ? void 0 : description.content) === null || _d === void 0 ? void 0 : _d.toString()) || '',
247
- website: websiteStr ? [websiteStr] : [],
248
- email: (_e = email === null || email === void 0 ? void 0 : email.content) === null || _e === void 0 ? void 0 : _e.toString(),
249
- category: (_f = category === null || category === void 0 ? void 0 : category.content) === null || _f === void 0 ? void 0 : _f.toString(),
250
- 'business_hours': {
251
- timezone: (_g = businessHours === null || businessHours === void 0 ? void 0 : businessHours.attrs) === null || _g === void 0 ? void 0 : _g.timezone,
252
- 'business_config': businessHoursConfig === null || businessHoursConfig === void 0 ? void 0 : businessHoursConfig.map(({ attrs }) => attrs)
253
- }
254
- };
255
- }
256
- };
257
144
  const onWhatsApp = async (...jids) => {
258
145
  const usyncQuery = new WAUSync_1.USyncQuery()
259
- .withContactProtocol()
260
- .withLIDProtocol();
261
-
146
+ .withContactProtocol()
147
+ .withLIDProtocol();
262
148
  for (const jid of jids) {
263
149
  const phone = `+${jid.replace('+', '').split('@')[0].split(':')[0]}`;
264
150
  usyncQuery.withUser(new WAUSync_1.USyncUser().withPhone(phone));
265
151
  }
266
-
267
152
  const results = await sock.executeUSyncQuery(usyncQuery);
268
153
  if (results) {
269
- const verifiedResults = await Promise.all(
270
- results.list
271
- .filter((a) => !!a.contact)
272
- .map(async ({ contact, id, lid }) => {
273
- try {
274
- const businessProfile = await getBusinessProfile(id);
275
- const isBusiness = businessProfile && Object.keys(businessProfile).length > 0;
276
- if (isBusiness) {
277
- const { wid, ...businessInfo } = businessProfile;
278
-
279
- return {
280
- jid: id,
281
- exists: true,
282
- lid: lid,
283
- status: 'business',
284
- businessInfo: businessInfo
285
- };
286
- } else {
287
- return {
288
- jid: id,
289
- exists: true,
290
- lid: lid,
291
- status: 'regular'
292
- };
293
- }
294
- } catch (error) {
295
- return {
296
- jid: id,
297
- exists: true,
298
- lid: lid,
299
- status: error
300
- };
301
- }
302
- })
303
- );
304
- return verifiedResults;
154
+ return results.list.filter((a) => !!a.contact).map(({ contact, id, lid }) => ({ jid: id, exists: contact, lid }));
305
155
  }
306
156
  };
307
157
  const fetchStatus = async (jid) => {
@@ -413,6 +263,51 @@ const makeChatsSocket = (config) => {
413
263
  ]
414
264
  });
415
265
  };
266
+ const getBusinessProfile = async (jid) => {
267
+ var _a, _b, _c, _d, _e, _f, _g;
268
+ const results = await query({
269
+ tag: 'iq',
270
+ attrs: {
271
+ to: 's.whatsapp.net',
272
+ xmlns: 'w:biz',
273
+ type: 'get'
274
+ },
275
+ content: [{
276
+ tag: 'business_profile',
277
+ attrs: { v: '244' },
278
+ content: [{
279
+ tag: 'profile',
280
+ attrs: { jid }
281
+ }]
282
+ }]
283
+ });
284
+ const profileNode = (0, WABinary_1.getBinaryNodeChild)(results, 'business_profile');
285
+ const profiles = (0, WABinary_1.getBinaryNodeChild)(profileNode, 'profile');
286
+ if (profiles) {
287
+ const address = (0, WABinary_1.getBinaryNodeChild)(profiles, 'address');
288
+ const description = (0, WABinary_1.getBinaryNodeChild)(profiles, 'description');
289
+ const website = (0, WABinary_1.getBinaryNodeChild)(profiles, 'website');
290
+ const email = (0, WABinary_1.getBinaryNodeChild)(profiles, 'email');
291
+ const category = (0, WABinary_1.getBinaryNodeChild)((0, WABinary_1.getBinaryNodeChild)(profiles, 'categories'), 'category');
292
+ const businessHours = (0, WABinary_1.getBinaryNodeChild)(profiles, 'business_hours');
293
+ const businessHoursConfig = businessHours ?
294
+ (0, WABinary_1.getBinaryNodeChildren)(businessHours, 'business_hours_config') :
295
+ undefined;
296
+ const websiteStr = (_a = website === null || website === void 0 ? void 0 : website.content) === null || _a === void 0 ? void 0 : _a.toString();
297
+ return {
298
+ wid: (_b = profiles.attrs) === null || _b === void 0 ? void 0 : _b.jid,
299
+ address: (_c = address === null || address === void 0 ? void 0 : address.content) === null || _c === void 0 ? void 0 : _c.toString(),
300
+ description: ((_d = description === null || description === void 0 ? void 0 : description.content) === null || _d === void 0 ? void 0 : _d.toString()) || '',
301
+ website: websiteStr ? [websiteStr] : [],
302
+ email: (_e = email === null || email === void 0 ? void 0 : email.content) === null || _e === void 0 ? void 0 : _e.toString(),
303
+ category: (_f = category === null || category === void 0 ? void 0 : category.content) === null || _f === void 0 ? void 0 : _f.toString(),
304
+ 'business_hours': {
305
+ timezone: (_g = businessHours === null || businessHours === void 0 ? void 0 : businessHours.attrs) === null || _g === void 0 ? void 0 : _g.timezone,
306
+ 'business_config': businessHoursConfig === null || businessHoursConfig === void 0 ? void 0 : businessHoursConfig.map(({ attrs }) => attrs)
307
+ }
308
+ };
309
+ }
310
+ };
416
311
  const cleanDirtyBits = async (type, fromTimestamp) => {
417
312
  logger.info({ fromTimestamp }, 'clean dirty bits ' + type);
418
313
  await sendNode({
@@ -962,7 +857,6 @@ const makeChatsSocket = (config) => {
962
857
  addChatLabel,
963
858
  removeChatLabel,
964
859
  addMessageLabel,
965
- checkStatusWA,
966
860
  removeMessageLabel,
967
861
  star
968
862
  };