@periskope/baileys 6.7.18-alpha.2 → 6.7.18-alpha.4

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.
@@ -7,7 +7,7 @@ export declare const DEF_TAG_PREFIX = "TAG:";
7
7
  export declare const PHONE_CONNECTION_CB = "CB:Pong";
8
8
  export declare const WA_DEFAULT_EPHEMERAL: number;
9
9
  export declare const NOISE_MODE = "Noise_XX_25519_AESGCM_SHA256\0\0\0\0";
10
- export declare const DICT_VERSION = 2;
10
+ export declare const DICT_VERSION = 3;
11
11
  export declare const KEY_BUNDLE_TYPE: Buffer<ArrayBuffer>;
12
12
  export declare const NOISE_WA_HEADER: Buffer<ArrayBuffer>;
13
13
  /** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
@@ -16,7 +16,7 @@ exports.DEF_TAG_PREFIX = 'TAG:';
16
16
  exports.PHONE_CONNECTION_CB = 'CB:Pong';
17
17
  exports.WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60;
18
18
  exports.NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0';
19
- exports.DICT_VERSION = 2;
19
+ exports.DICT_VERSION = 3;
20
20
  exports.KEY_BUNDLE_TYPE = Buffer.from([5]);
21
21
  exports.NOISE_WA_HEADER = Buffer.from([87, 65, 6, exports.DICT_VERSION]); // last is "DICT_VERSION"
22
22
  /** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
@@ -101,7 +101,7 @@ export declare const makeBusinessSocket: (config: SocketConfig) => {
101
101
  updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
102
102
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
103
103
  getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
104
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
104
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
105
105
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
106
106
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
107
107
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
@@ -40,7 +40,7 @@ export declare const makeChatsSocket: (config: SocketConfig) => {
40
40
  updateGroupsAddPrivacy: (value: WAPrivacyGroupAddValue) => Promise<void>;
41
41
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
42
42
  getBusinessProfile: (jid: string) => Promise<WABusinessProfile | void>;
43
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
43
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
44
44
  chatModify: (mod: ChatModification, jid: string) => Promise<void>;
45
45
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
46
46
  addLabel: (jid: string, labels: LabelActionBody) => Promise<void>;
@@ -78,7 +78,7 @@ export declare const makeGroupsSocket: (config: SocketConfig) => {
78
78
  updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
79
79
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
80
80
  getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
81
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
81
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
82
82
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
83
83
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
84
84
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
@@ -319,7 +319,8 @@ const extractGroupMetadata = (result) => {
319
319
  return {
320
320
  ...attrs,
321
321
  id: attrs.jid,
322
- jid: attrs.phone_number ? (0, WABinary_1.jidNormalizedUser)(attrs.phone_number) : undefined,
322
+ jid: (0, WABinary_1.isJidUser)(attrs.jid) ? attrs.jid : (0, WABinary_1.jidNormalizedUser)(attrs.phone_number),
323
+ lid: (0, WABinary_1.isLidUser)(attrs.jid) ? attrs.jid : attrs.lid,
323
324
  admin: (attrs.type || null)
324
325
  };
325
326
  }),
@@ -100,7 +100,7 @@ declare const makeWASocket: (config: UserFacingSocketConfig) => {
100
100
  updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
101
101
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
102
102
  getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
103
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
103
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
104
104
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
105
105
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
106
106
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
@@ -90,7 +90,7 @@ export declare const makeMessagesRecvSocket: (config: SocketConfig) => {
90
90
  updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
91
91
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
92
92
  getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
93
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
93
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
94
94
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
95
95
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
96
96
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
@@ -85,7 +85,7 @@ export declare const makeMessagesSocket: (config: SocketConfig) => {
85
85
  updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyGroupAddValue) => Promise<void>;
86
86
  updateDefaultDisappearingMode: (duration: number) => Promise<void>;
87
87
  getBusinessProfile: (jid: string) => Promise<import("../Types").WABusinessProfile | void>;
88
- resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
88
+ resyncAppState: (collections: readonly ("critical_unblock_low" | "regular_high" | "regular_low" | "critical_block" | "regular")[], isInitialSync: boolean) => Promise<void>;
89
89
  chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
90
90
  cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: number | string) => Promise<void>;
91
91
  addLabel: (jid: string, labels: import("../Types/Label").LabelActionBody) => Promise<void>;
@@ -1,6 +1,10 @@
1
1
  export interface Contact {
2
+ /** ID either in lid or jid format **/
2
3
  id: string;
4
+ /** ID in Lid (anonymous) format (@lid) **/
3
5
  lid?: string;
6
+ /** ID in Phone Number format (@s.whatsapp.net) **/
7
+ jid?: string;
4
8
  /** name of the contact, you have saved on your WA */
5
9
  name?: string;
6
10
  /** name of the contact, the contact has set on their own on WA */
@@ -49,6 +49,9 @@ export type BaileysEventMap = {
49
49
  jid: string;
50
50
  all: true;
51
51
  };
52
+ 'messages.revoke': {
53
+ key: WAMessageKey;
54
+ }[];
52
55
  'messages.update': WAMessageUpdate[];
53
56
  'messages.read': {
54
57
  key: WAMessageKey;
@@ -29,22 +29,22 @@ export declare const decodeSyncdPatch: (msg: proto.ISyncdPatch, name: WAPatchNam
29
29
  };
30
30
  }>;
31
31
  export declare const extractSyncdPatches: (result: BinaryNode, options: AxiosRequestConfig<{}>) => Promise<{
32
- critical_block: {
32
+ critical_unblock_low: {
33
33
  patches: proto.ISyncdPatch[];
34
34
  hasMorePatches: boolean;
35
35
  snapshot?: proto.ISyncdSnapshot;
36
36
  };
37
- critical_unblock_low: {
37
+ regular_high: {
38
38
  patches: proto.ISyncdPatch[];
39
39
  hasMorePatches: boolean;
40
40
  snapshot?: proto.ISyncdSnapshot;
41
41
  };
42
- regular_high: {
42
+ regular_low: {
43
43
  patches: proto.ISyncdPatch[];
44
44
  hasMorePatches: boolean;
45
45
  snapshot?: proto.ISyncdSnapshot;
46
46
  };
47
- regular_low: {
47
+ critical_block: {
48
48
  patches: proto.ISyncdPatch[];
49
49
  hasMorePatches: boolean;
50
50
  snapshot?: proto.ISyncdSnapshot;
@@ -642,7 +642,14 @@ const processSyncAction = (syncAction, ev, me, initialSyncOpts, logger) => {
642
642
  });
643
643
  }
644
644
  else if (action === null || action === void 0 ? void 0 : action.contactAction) {
645
- ev.emit('contacts.upsert', [{ id, name: action.contactAction.fullName }]);
645
+ ev.emit('contacts.upsert', [
646
+ {
647
+ id: id,
648
+ name: action.contactAction.fullName,
649
+ lid: action.contactAction.lidJid || undefined,
650
+ jid: (0, WABinary_1.isJidUser)(id) ? id : undefined
651
+ }
652
+ ]);
646
653
  }
647
654
  else if (action === null || action === void 0 ? void 0 : action.pushNameSetting) {
648
655
  const name = (_b = action === null || action === void 0 ? void 0 : action.pushNameSetting) === null || _b === void 0 ? void 0 : _b.name;
@@ -81,7 +81,7 @@ export declare const getCodeFromWSError: (error: Error) => number;
81
81
  * Is the given platform WA business
82
82
  * @param platform AuthenticationCreds.platform
83
83
  */
84
- export declare const isWABusinessPlatform: (platform: string) => platform is "smbi" | "smba";
84
+ export declare const isWABusinessPlatform: (platform: string) => platform is "smba" | "smbi";
85
85
  export declare function trimUndefined(obj: {
86
86
  [_: string]: any;
87
87
  }): {
@@ -34,7 +34,12 @@ const processHistoryMessage = (item) => {
34
34
  case WAProto_1.proto.HistorySync.HistorySyncType.FULL:
35
35
  case WAProto_1.proto.HistorySync.HistorySyncType.ON_DEMAND:
36
36
  for (const chat of item.conversations) {
37
- contacts.push({ id: chat.id, name: chat.name || undefined });
37
+ contacts.push({
38
+ id: chat.id,
39
+ name: chat.name || undefined,
40
+ lid: chat.lidJid || undefined,
41
+ jid: (0, WABinary_1.isJidUser)(chat.id) ? chat.id : undefined
42
+ });
38
43
  const msgs = chat.messages || [];
39
44
  delete chat.messages;
40
45
  delete chat.archived;
@@ -38,7 +38,7 @@ export declare const extractMessageContent: (content: WAMessageContent | undefin
38
38
  /**
39
39
  * Returns the device predicted by message ID
40
40
  */
41
- export declare const getDevice: (id: string) => "android" | "unknown" | "web" | "ios" | "desktop";
41
+ export declare const getDevice: (id: string) => "web" | "unknown" | "android" | "ios" | "desktop";
42
42
  /** Upserts a receipt in the message */
43
43
  export declare const updateMessageWithReceipt: (msg: Pick<WAMessage, "userReceipt">, receipt: MessageUserReceipt) => void;
44
44
  /** Update the message with a new reaction */
@@ -625,9 +625,8 @@ exports.updateMessageWithReceipt = updateMessageWithReceipt;
625
625
  const updateMessageWithReaction = (msg, reaction) => {
626
626
  const authorID = (0, generics_1.getKeyAuthor)(reaction.key);
627
627
  const reactions = (msg.reactions || []).filter(r => (0, generics_1.getKeyAuthor)(r.key) !== authorID);
628
- if (reaction.text) {
629
- reactions.push(reaction);
630
- }
628
+ reaction.text = reaction.text || '';
629
+ reactions.push(reaction);
631
630
  msg.reactions = reactions;
632
631
  };
633
632
  exports.updateMessageWithReaction = updateMessageWithReaction;
@@ -173,13 +173,9 @@ const processMessage = async (message, { shouldProcessHistoryMsg, placeholderRes
173
173
  }
174
174
  break;
175
175
  case WAProto_1.proto.Message.ProtocolMessage.Type.REVOKE:
176
- ev.emit('messages.update', [
176
+ ev.emit('messages.revoke', [
177
177
  {
178
- key: {
179
- ...message.key,
180
- id: protocolMsg.key.id
181
- },
182
- update: { message: null, messageStubType: Types_1.WAMessageStubType.REVOKE, key: message.key }
178
+ key: protocolMsg.key
183
179
  }
184
180
  ]);
185
181
  break;
@@ -105,21 +105,21 @@ const configureSuccessfulPairing = (stanza, { advSecretKey, signedIdentityKey, s
105
105
  }
106
106
  const bizName = businessNode === null || businessNode === void 0 ? void 0 : businessNode.attrs.name;
107
107
  const jid = deviceNode.attrs.jid;
108
- const { details, hmac } = WAProto_1.proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content);
109
- // check HMAC matches
110
- const advSign = (0, crypto_2.hmacSign)(details, Buffer.from(advSecretKey, 'base64'));
108
+ const { details, hmac, accountType } = WAProto_1.proto.ADVSignedDeviceIdentityHMAC.decode(deviceIdentityNode.content);
109
+ const isHostedAccount = accountType !== undefined && accountType === WAProto_1.proto.ADVEncryptionType.HOSTED;
110
+ const hmacPrefix = isHostedAccount ? Buffer.from([6, 5]) : Buffer.alloc(0);
111
+ const advSign = (0, crypto_2.hmacSign)(Buffer.concat([hmacPrefix, details]), Buffer.from(advSecretKey, 'base64'));
111
112
  if (Buffer.compare(hmac, advSign) !== 0) {
112
113
  throw new boom_1.Boom('Invalid account signature');
113
114
  }
114
115
  const account = WAProto_1.proto.ADVSignedDeviceIdentity.decode(details);
115
116
  const { accountSignatureKey, accountSignature, details: deviceDetails } = account;
116
- // verify the device signature matches
117
117
  const accountMsg = Buffer.concat([Buffer.from([6, 0]), deviceDetails, signedIdentityKey.public]);
118
118
  if (!crypto_2.Curve.verify(accountSignatureKey, accountMsg, accountSignature)) {
119
119
  throw new boom_1.Boom('Failed to verify account signature');
120
120
  }
121
- // sign the details with our identity key
122
- const deviceMsg = Buffer.concat([Buffer.from([6, 1]), deviceDetails, signedIdentityKey.public, accountSignatureKey]);
121
+ const devicePrefix = isHostedAccount ? Buffer.from([6, 6]) : Buffer.from([6, 1]);
122
+ const deviceMsg = Buffer.concat([devicePrefix, deviceDetails, signedIdentityKey.public, accountSignatureKey]);
123
123
  account.deviceSignature = crypto_2.Curve.sign(signedIdentityKey.private, deviceMsg);
124
124
  const identity = (0, signal_1.createSignalIdentity)(jid, accountSignatureKey);
125
125
  const accountEnc = (0, exports.encodeSignedDeviceIdentity)(account, false);
@@ -4,6 +4,8 @@ export declare const TAGS: {
4
4
  DICTIONARY_1: number;
5
5
  DICTIONARY_2: number;
6
6
  DICTIONARY_3: number;
7
+ INTEROP_JID: number;
8
+ FB_JID: number;
7
9
  AD_JID: number;
8
10
  LIST_8: number;
9
11
  LIST_16: number;
@@ -14,11 +16,9 @@ export declare const TAGS: {
14
16
  BINARY_32: number;
15
17
  NIBBLE_8: number;
16
18
  PACKED_MAX: number;
17
- SINGLE_BYTE_MAX: number;
18
- STREAM_END: number;
19
19
  };
20
- export declare const DOUBLE_BYTE_TOKENS: string[][];
21
- export declare const SINGLE_BYTE_TOKENS: (string | null)[];
20
+ export declare const DOUBLE_BYTE_TOKENS: readonly [readonly ["read-self", "active", "fbns", "protocol", "reaction", "screen_width", "heartbeat", "deviceid", "2:47DEQpj8", "uploadfieldstat", "voip_settings", "retry", "priority", "longitude", "conflict", "false", "ig_professional", "replaced", "preaccept", "cover_photo", "uncompressed", "encopt", "ppic", "04", "passive", "status-revoke-drop", "keygen", "540", "offer", "rate", "opus", "latitude", "w:gp2", "ver", "4", "business_profile", "medium", "sender", "prev_v_id", "email", "website", "invited", "sign_credential", "05", "transport", "skey", "reason", "peer_abtest_bucket", "America/Sao_Paulo", "appid", "refresh", "100", "06", "404", "101", "104", "107", "102", "109", "103", "member_add_mode", "105", "transaction-id", "110", "106", "outgoing", "108", "111", "tokens", "followers", "ig_handle", "self_pid", "tue", "dec", "thu", "joinable", "peer_pid", "mon", "features", "wed", "peer_device_presence", "pn", "delete", "07", "fri", "audio_duration", "admin", "connected", "delta", "rcat", "disable", "collection", "08", "480", "sat", "phash", "all", "invite", "accept", "critical_unblock_low", "group_update", "signed_credential", "blinded_credential", "eph_setting", "net", "09", "background_location", "refresh_id", "Asia/Kolkata", "privacy_mode_ts", "account_sync", "voip_payload_type", "service_areas", "acs_public_key", "v_id", "0a", "fallback_class", "relay", "actual_actors", "metadata", "w:biz", "5", "connected-limit", "notice", "0b", "host_storage", "fb_page", "subject", "privatestats", "invis", "groupadd", "010", "note.m4r", "uuid", "0c", "8000", "sun", "372", "1020", "stage", "1200", "720", "canonical", "fb", "011", "video_duration", "0d", "1140", "superadmin", "012", "Opening.m4r", "keystore_attestation", "dleq_proof", "013", "timestamp", "ab_key", "w:sync:app:state", "0e", "vertical", "600", "p_v_id", "6", "likes", "014", "500", "1260", "creator", "0f", "rte", "destination", "group", "group_info", "syncd_anti_tampering_fatal_exception_enabled", "015", "dl_bw", "Asia/Jakarta", "vp8/h.264", "online", "1320", "fb:multiway", "10", "timeout", "016", "nse_retry", "urn:xmpp:whatsapp:dirty", "017", "a_v_id", "web_shops_chat_header_button_enabled", "nse_call", "inactive-upgrade", "none", "web", "groups", "2250", "mms_hot_content_timespan_in_seconds", "contact_blacklist", "nse_read", "suspended_group_deletion_notification", "binary_version", "018", "https://www.whatsapp.com/otp/copy/", "reg_push", "shops_hide_catalog_attachment_entrypoint", "server_sync", ".", "ephemeral_messages_allowed_values", "019", "mms_vcache_aggregation_enabled", "iphone", "America/Argentina/Buenos_Aires", "01a", "mms_vcard_autodownload_size_kb", "nse_ver", "shops_header_dropdown_menu_item", "dhash", "catalog_status", "communities_mvp_new_iqs_serverprop", "blocklist", "default", "11", "ephemeral_messages_enabled", "01b", "original_dimensions", "8", "mms4_media_retry_notification_encryption_enabled", "mms4_server_error_receipt_encryption_enabled", "original_image_url", "sync", "multiway", "420", "companion_enc_static", "shops_profile_drawer_entrypoint", "01c", "vcard_as_document_size_kb", "status_video_max_duration", "request_image_url", "01d", "regular_high", "s_t", "abt", "share_ext_min_preliminary_image_quality", "01e", "32", "syncd_key_rotation_enabled", "data_namespace", "md_downgrade_read_receipts2", "patch", "polltype", "ephemeral_messages_setting", "userrate", "15", "partial_pjpeg_bw_threshold", "played-self", "catalog_exists", "01f", "mute_v2"], readonly ["reject", "dirty", "announcement", "020", "13", "9", "status_video_max_bitrate", "fb:thrift_iq", "offline_batch", "022", "full", "ctwa_first_business_reply_logging", "h.264", "smax_id", "group_description_length", "https://www.whatsapp.com/otp/code", "status_image_max_edge", "smb_upsell_business_profile_enabled", "021", "web_upgrade_to_md_modal", "14", "023", "s_o", "smaller_video_thumbs_status_enabled", "media_max_autodownload", "960", "blocking_status", "peer_msg", "joinable_group_call_client_version", "group_call_video_maximization_enabled", "return_snapshot", "high", "America/Mexico_City", "entry_point_block_logging_enabled", "pop", "024", "1050", "16", "1380", "one_tap_calling_in_group_chat_size", "regular_low", "inline_joinable_education_enabled", "hq_image_max_edge", "locked", "America/Bogota", "smb_biztools_deeplink_enabled", "status_image_quality", "1088", "025", "payments_upi_intent_transaction_limit", "voip", "w:g2", "027", "md_pin_chat_enabled", "026", "multi_scan_pjpeg_download_enabled", "shops_product_grid", "transaction_id", "ctwa_context_enabled", "20", "fna", "hq_image_quality", "alt_jpeg_doc_detection_quality", "group_call_max_participants", "pkey", "America/Belem", "image_max_kbytes", "web_cart_v1_1_order_message_changes_enabled", "ctwa_context_enterprise_enabled", "urn:xmpp:whatsapp:account", "840", "Asia/Kuala_Lumpur", "max_participants", "video_remux_after_repair_enabled", "stella_addressbook_restriction_type", "660", "900", "780", "context_menu_ios13_enabled", "mute-state", "ref", "payments_request_messages", "029", "frskmsg", "vcard_max_size_kb", "sample_buffer_gif_player_enabled", "match_last_seen", "510", "4983", "video_max_bitrate", "028", "w:comms:chat", "17", "frequently_forwarded_max", "groups_privacy_blacklist", "Asia/Karachi", "02a", "web_download_document_thumb_mms_enabled", "02b", "hist_sync", "biz_block_reasons_version", "1024", "18", "web_is_direct_connection_for_plm_transparent", "view_once_write", "file_max_size", "paid_convo_id", "online_privacy_setting", "video_max_edge", "view_once_read", "enhanced_storage_management", "multi_scan_pjpeg_encoding_enabled", "ctwa_context_forward_enabled", "video_transcode_downgrade_enable", "template_doc_mime_types", "hq_image_bw_threshold", "30", "body", "u_aud_limit_sil_restarts_ctrl", "other", "participating", "w:biz:directory", "1110", "vp8", "4018", "meta", "doc_detection_image_max_edge", "image_quality", "1170", "02c", "smb_upsell_chat_banner_enabled", "key_expiry_time_second", "pid", "stella_interop_enabled", "19", "linked_device_max_count", "md_device_sync_enabled", "02d", "02e", "360", "enhanced_block_enabled", "ephemeral_icon_in_forwarding", "paid_convo_status", "gif_provider", "project_name", "server-error", "canonical_url_validation_enabled", "wallpapers_v2", "syncd_clear_chat_delete_chat_enabled", "medianotify", "02f", "shops_required_tos_version", "vote", "reset_skey_on_id_change", "030", "image_max_edge", "multicast_limit_global", "ul_bw", "21", "25", "5000", "poll", "570", "22", "031", "1280", "WhatsApp", "032", "bloks_shops_enabled", "50", "upload_host_switching_enabled", "web_ctwa_context_compose_enabled", "ptt_forwarded_features_enabled", "unblocked", "partial_pjpeg_enabled", "fbid:devices", "height", "ephemeral_group_query_ts", "group_join_permissions", "order", "033", "alt_jpeg_status_quality", "migrate", "popular-bank", "win_uwp_deprecation_killswitch_enabled", "web_download_status_thumb_mms_enabled", "blocking", "url_text", "035", "web_forwarding_limit_to_groups", "1600", "val", "1000", "syncd_msg_date_enabled", "bank-ref-id", "max_subject", "payments_web_enabled", "web_upload_document_thumb_mms_enabled", "size", "request", "ephemeral", "24", "receipt_agg", "ptt_remember_play_position", "sampling_weight", "enc_rekey", "mute_always", "037", "034", "23", "036", "action", "click_to_chat_qr_enabled", "width", "disabled", "038", "md_blocklist_v2", "played_self_enabled", "web_buttons_message_enabled", "flow_id", "clear", "450", "fbid:thread", "bloks_session_state", "America/Lima", "attachment_picker_refresh", "download_host_switching_enabled", "1792", "u_aud_limit_sil_restarts_test2", "custom_urls", "device_fanout", "optimistic_upload", "2000", "key_cipher_suite", "web_smb_upsell_in_biz_profile_enabled", "e", "039", "siri_post_status_shortcut", "pair-device", "lg", "lc", "stream_attribution_url", "model", "mspjpeg_phash_gen", "catalog_send_all", "new_multi_vcards_ui", "share_biz_vcard_enabled", "-", "clean", "200", "md_blocklist_v2_server", "03b", "03a", "web_md_migration_experience", "ptt_conversation_waveform", "u_aud_limit_sil_restarts_test1"], readonly ["64", "ptt_playback_speed_enabled", "web_product_list_message_enabled", "paid_convo_ts", "27", "manufacturer", "psp-routing", "grp_uii_cleanup", "ptt_draft_enabled", "03c", "business_initiated", "web_catalog_products_onoff", "web_upload_link_thumb_mms_enabled", "03e", "mediaretry", "35", "hfm_string_changes", "28", "America/Fortaleza", "max_keys", "md_mhfs_days", "streaming_upload_chunk_size", "5541", "040", "03d", "2675", "03f", "...", "512", "mute", "48", "041", "alt_jpeg_quality", "60", "042", "md_smb_quick_reply", "5183", "c", "1343", "40", "1230", "043", "044", "mms_cat_v1_forward_hot_override_enabled", "user_notice", "ptt_waveform_send", "047", "Asia/Calcutta", "250", "md_privacy_v2", "31", "29", "128", "md_messaging_enabled", "046", "crypto", "690", "045", "enc_iv", "75", "failure", "ptt_oot_playback", "AIzaSyDR5yfaG7OG8sMTUj8kfQEb8T9pN8BM6Lk", "w", "048", "2201", "web_large_files_ui", "Asia/Makassar", "812", "status_collapse_muted", "1334", "257", "2HP4dm", "049", "patches", "1290", "43cY6T", "America/Caracas", "web_sticker_maker", "campaign", "ptt_pausable_enabled", "33", "42", "attestation", "biz", "04b", "query_linked", "s", "125", "04a", "810", "availability", "1411", "responsiveness_v2_m1", "catalog_not_created", "34", "America/Santiago", "1465", "enc_p", "04d", "status_info", "04f", "key_version", "..", "04c", "04e", "md_group_notification", "1598", "1215", "web_cart_enabled", "37", "630", "1920", "2394", "-1", "vcard", "38", "elapsed", "36", "828", "peer", "pricing_category", "1245", "invalid", "stella_ios_enabled", "2687", "45", "1528", "39", "u_is_redial_audio_1104_ctrl", "1025", "1455", "58", "2524", "2603", "054", "bsp_system_message_enabled", "web_pip_redesign", "051", "verify_apps", "1974", "1272", "1322", "1755", "052", "70", "050", "1063", "1135", "1361", "80", "1096", "1828", "1851", "1251", "1921", "key_config_id", "1254", "1566", "1252", "2525", "critical_block", "1669", "max_available", "w:auth:backup:token", "product", "2530", "870", "1022", "participant_uuid", "web_cart_on_off", "1255", "1432", "1867", "41", "1415", "1440", "240", "1204", "1608", "1690", "1846", "1483", "1687", "1749", "69", "url_number", "053", "1325", "1040", "365", "59", "Asia/Riyadh", "1177", "test_recommended", "057", "1612", "43", "1061", "1518", "1635", "055", "1034", "1375", "750", "1430", "event_code", "1682", "503", "55", "865", "78", "1309", "1365", "44", "America/Guayaquil", "535", "LIMITED", "1377", "1613", "1420", "1599", "1822", "05a", "1681", "password", "1111", "1214", "1376", "1478", "47", "1082", "4282", "Europe/Istanbul", "1307", "46", "058", "1124", "256", "rate-overlimit", "retail", "u_a_socket_err_fix_succ_test", "1292", "1370", "1388", "520", "861", "psa", "regular", "1181", "1766", "05b", "1183", "1213", "1304", "1537"], readonly ["1724", "profile_picture", "1071", "1314", "1605", "407", "990", "1710", "746", "pricing_model", "056", "059", "061", "1119", "6027", "65", "877", "1607", "05d", "917", "seen", "1516", "49", "470", "973", "1037", "1350", "1394", "1480", "1796", "keys", "794", "1536", "1594", "2378", "1333", "1524", "1825", "116", "309", "52", "808", "827", "909", "495", "1660", "361", "957", "google", "1357", "1565", "1967", "996", "1775", "586", "736", "1052", "1670", "bank", "177", "1416", "2194", "2222", "1454", "1839", "1275", "53", "997", "1629", "6028", "smba", "1378", "1410", "05c", "1849", "727", "create", "1559", "536", "1106", "1310", "1944", "670", "1297", "1316", "1762", "en", "1148", "1295", "1551", "1853", "1890", "1208", "1784", "7200", "05f", "178", "1283", "1332", "381", "643", "1056", "1238", "2024", "2387", "179", "981", "1547", "1705", "05e", "290", "903", "1069", "1285", "2436", "062", "251", "560", "582", "719", "56", "1700", "2321", "325", "448", "613", "777", "791", "51", "488", "902", "Asia/Almaty", "is_hidden", "1398", "1527", "1893", "1999", "2367", "2642", "237", "busy", "065", "067", "233", "590", "993", "1511", "54", "723", "860", "363", "487", "522", "605", "995", "1321", "1691", "1865", "2447", "2462", "NON_TRANSACTIONAL", "433", "871", "432", "1004", "1207", "2032", "2050", "2379", "2446", "279", "636", "703", "904", "248", "370", "691", "700", "1068", "1655", "2334", "060", "063", "364", "533", "534", "567", "1191", "1210", "1473", "1827", "069", "701", "2531", "514", "prev_dhash", "064", "496", "790", "1046", "1139", "1505", "1521", "1108", "207", "544", "637", "final", "1173", "1293", "1694", "1939", "1951", "1993", "2353", "2515", "504", "601", "857", "modify", "spam_request", "p_121_aa_1101_test4", "866", "1427", "1502", "1638", "1744", "2153", "068", "382", "725", "1704", "1864", "1990", "2003", "Asia/Dubai", "508", "531", "1387", "1474", "1632", "2307", "2386", "819", "2014", "066", "387", "1468", "1706", "2186", "2261", "471", "728", "1147", "1372", "1961"]];
21
+ export declare const SINGLE_BYTE_TOKENS: string[];
22
22
  export declare const TOKEN_MAP: {
23
23
  [token: string]: {
24
24
  dict?: number;