my-baileys 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/README.md +1145 -0
  2. package/WAProto/GenerateStatics.sh +3 -0
  3. package/WAProto/WAProto.proto +8083 -0
  4. package/WAProto/fix-imports.js +85 -0
  5. package/WAProto/index.d.ts +29095 -0
  6. package/WAProto/index.js +172336 -0
  7. package/engine-requirements.js +10 -0
  8. package/lib/Defaults/index.js +194 -0
  9. package/lib/Signal/Group/ciphertext-message.js +12 -0
  10. package/lib/Signal/Group/group-session-builder.js +30 -0
  11. package/lib/Signal/Group/group_cipher.js +82 -0
  12. package/lib/Signal/Group/index.js +12 -0
  13. package/lib/Signal/Group/keyhelper.js +18 -0
  14. package/lib/Signal/Group/sender-chain-key.js +26 -0
  15. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  16. package/lib/Signal/Group/sender-key-message.js +66 -0
  17. package/lib/Signal/Group/sender-key-name.js +48 -0
  18. package/lib/Signal/Group/sender-key-record.js +41 -0
  19. package/lib/Signal/Group/sender-key-state.js +84 -0
  20. package/lib/Signal/Group/sender-message-key.js +26 -0
  21. package/lib/Signal/libsignal.js +431 -0
  22. package/lib/Signal/lid-mapping.js +277 -0
  23. package/lib/Socket/Client/index.js +3 -0
  24. package/lib/Socket/Client/types.js +11 -0
  25. package/lib/Socket/Client/websocket.js +102 -0
  26. package/lib/Socket/aigroups.js +221 -0
  27. package/lib/Socket/business.js +379 -0
  28. package/lib/Socket/chats.js +1193 -0
  29. package/lib/Socket/communities.js +431 -0
  30. package/lib/Socket/graphql.js +524 -0
  31. package/lib/Socket/groups.js +408 -0
  32. package/lib/Socket/index.js +57 -0
  33. package/lib/Socket/interop.js +345 -0
  34. package/lib/Socket/luxu.js +510 -0
  35. package/lib/Socket/managed-account.js +99 -0
  36. package/lib/Socket/message-builder.js +523 -0
  37. package/lib/Socket/messages-recv.js +2009 -0
  38. package/lib/Socket/messages-send.js +1608 -0
  39. package/lib/Socket/mex.js +56 -0
  40. package/lib/Socket/newsletter.js +624 -0
  41. package/lib/Socket/privacy.js +128 -0
  42. package/lib/Socket/registration.js +238 -0
  43. package/lib/Socket/socket.js +1000 -0
  44. package/lib/Socket/text-router.js +67 -0
  45. package/lib/Socket/username.js +234 -0
  46. package/lib/Store/index.js +10 -0
  47. package/lib/Store/keyed-db.js +108 -0
  48. package/lib/Store/make-cache-manager-store.js +85 -0
  49. package/lib/Store/make-in-memory-store.js +198 -0
  50. package/lib/Store/make-ordered-dictionary.js +75 -0
  51. package/lib/Store/object-repository.js +32 -0
  52. package/lib/Types/Auth.js +2 -0
  53. package/lib/Types/Bussines.js +2 -0
  54. package/lib/Types/Call.js +2 -0
  55. package/lib/Types/Chat.js +8 -0
  56. package/lib/Types/Contact.js +2 -0
  57. package/lib/Types/Events.js +2 -0
  58. package/lib/Types/GroupMetadata.js +2 -0
  59. package/lib/Types/Label.js +25 -0
  60. package/lib/Types/LabelAssociation.js +7 -0
  61. package/lib/Types/Message.js +11 -0
  62. package/lib/Types/Mex.js +120 -0
  63. package/lib/Types/Product.js +2 -0
  64. package/lib/Types/Signal.js +2 -0
  65. package/lib/Types/Socket.js +3 -0
  66. package/lib/Types/State.js +56 -0
  67. package/lib/Types/USync.js +2 -0
  68. package/lib/Types/index.js +26 -0
  69. package/lib/Utils/adaptive-healing.js +53 -0
  70. package/lib/Utils/auth-utils.js +302 -0
  71. package/lib/Utils/browser-utils.js +50 -0
  72. package/lib/Utils/business.js +231 -0
  73. package/lib/Utils/chat-utils.js +872 -0
  74. package/lib/Utils/command-loader.js +108 -0
  75. package/lib/Utils/companion-reg-client-utils.js +35 -0
  76. package/lib/Utils/consumer-application.js +106 -0
  77. package/lib/Utils/crypto.js +137 -0
  78. package/lib/Utils/curve25519-js.js +262 -0
  79. package/lib/Utils/decode-wa-message.js +498 -0
  80. package/lib/Utils/event-buffer.js +622 -0
  81. package/lib/Utils/generics.js +403 -0
  82. package/lib/Utils/group-history.js +47 -0
  83. package/lib/Utils/history.js +134 -0
  84. package/lib/Utils/identity-change-handler.js +50 -0
  85. package/lib/Utils/index.js +38 -0
  86. package/lib/Utils/jid-display-normalization.js +198 -0
  87. package/lib/Utils/link-preview.js +85 -0
  88. package/lib/Utils/logger.js +3 -0
  89. package/lib/Utils/lt-hash.js +8 -0
  90. package/lib/Utils/make-mutex.js +33 -0
  91. package/lib/Utils/message-composer.js +273 -0
  92. package/lib/Utils/message-retry-manager.js +267 -0
  93. package/lib/Utils/messages-media.js +885 -0
  94. package/lib/Utils/messages.js +1405 -0
  95. package/lib/Utils/meta-ai-msmsg.js +271 -0
  96. package/lib/Utils/native-bridge.js +77 -0
  97. package/lib/Utils/noise-handler.js +201 -0
  98. package/lib/Utils/offline-node-processor.js +40 -0
  99. package/lib/Utils/optimizer.js +90 -0
  100. package/lib/Utils/pre-key-manager.js +106 -0
  101. package/lib/Utils/process-message.js +630 -0
  102. package/lib/Utils/reporting-utils.js +258 -0
  103. package/lib/Utils/session-pool.js +73 -0
  104. package/lib/Utils/signal.js +207 -0
  105. package/lib/Utils/stanza-ack.js +38 -0
  106. package/lib/Utils/sticker.js +297 -0
  107. package/lib/Utils/sync-action-utils.js +49 -0
  108. package/lib/Utils/tc-token-utils.js +163 -0
  109. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  110. package/lib/Utils/use-sqlite-auth-state.js +168 -0
  111. package/lib/Utils/validate-connection.js +203 -0
  112. package/lib/Utils/view-once-cache.js +79 -0
  113. package/lib/Utils/voip-rekey.js +25 -0
  114. package/lib/Utils/warmup.js +117 -0
  115. package/lib/WABinary/constants.js +1301 -0
  116. package/lib/WABinary/decode.js +262 -0
  117. package/lib/WABinary/encode.js +220 -0
  118. package/lib/WABinary/generic-utils.js +204 -0
  119. package/lib/WABinary/index.js +6 -0
  120. package/lib/WABinary/jid-utils.js +98 -0
  121. package/lib/WABinary/types.js +2 -0
  122. package/lib/WAM/BinaryInfo.js +10 -0
  123. package/lib/WAM/constants.js +22853 -0
  124. package/lib/WAM/encode.js +150 -0
  125. package/lib/WAM/index.js +4 -0
  126. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +41 -0
  127. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  128. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  129. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  130. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +52 -0
  131. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +31 -0
  132. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +26 -0
  133. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  134. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +35 -0
  135. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  136. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  137. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  138. package/lib/WAUSync/Protocols/index.js +13 -0
  139. package/lib/WAUSync/USyncQuery.js +127 -0
  140. package/lib/WAUSync/USyncUser.js +31 -0
  141. package/lib/WAUSync/index.js +4 -0
  142. package/lib/antiban.js +4087 -0
  143. package/lib/index.js +23 -0
  144. package/package.json +151 -0
@@ -0,0 +1,75 @@
1
+ export default function makeOrderedDictionary(idGetter) {
2
+ const array = [];
3
+ const dict = {};
4
+
5
+ const get = (id) => dict[id];
6
+
7
+ const update = (item) => {
8
+ const id = idGetter(item);
9
+ const idx = array.findIndex(i => idGetter(i) === id);
10
+ if (idx >= 0) {
11
+ array[idx] = item;
12
+ dict[id] = item;
13
+ }
14
+ return false;
15
+ };
16
+
17
+ const upsert = (item, mode) => {
18
+ const id = idGetter(item);
19
+ if (get(id)) {
20
+ update(item);
21
+ } else {
22
+ if (mode === 'append') array.push(item);
23
+ else array.unshift(item);
24
+ dict[id] = item;
25
+ }
26
+ };
27
+
28
+ const remove = (item) => {
29
+ const id = idGetter(item);
30
+ const idx = array.findIndex(i => idGetter(i) === id);
31
+ if (idx >= 0) {
32
+ array.splice(idx, 1);
33
+ delete dict[id];
34
+ return true;
35
+ }
36
+ return false;
37
+ };
38
+
39
+ return {
40
+ array,
41
+ get,
42
+ upsert,
43
+ update,
44
+ remove,
45
+ updateAssign: (id, update) => {
46
+ const item = get(id);
47
+ if (item) {
48
+ Object.assign(item, update);
49
+ delete dict[id];
50
+ dict[idGetter(item)] = item;
51
+ return true;
52
+ }
53
+ return false;
54
+ },
55
+ clear: () => {
56
+ array.length = 0;
57
+ for (const key of Object.keys(dict)) delete dict[key];
58
+ },
59
+ filter: (contain) => {
60
+ let i = 0;
61
+ while (i < array.length) {
62
+ if (!contain(array[i])) {
63
+ delete dict[idGetter(array[i])];
64
+ array.splice(i, 1);
65
+ } else {
66
+ i++;
67
+ }
68
+ }
69
+ },
70
+ toJSON: () => array,
71
+ fromJSON: (newItems) => {
72
+ array.splice(0, array.length, ...newItems);
73
+ }
74
+ };
75
+ }
@@ -0,0 +1,32 @@
1
+ export class ObjectRepository {
2
+ constructor(entities = {}) {
3
+ this.entityMap = new Map(Object.entries(entities));
4
+ }
5
+
6
+ findById(id) {
7
+ return this.entityMap.get(id);
8
+ }
9
+
10
+ findAll() {
11
+ return Array.from(this.entityMap.values());
12
+ }
13
+
14
+ upsertById(id, entity) {
15
+ this.entityMap.set(id, { ...entity });
16
+ return this;
17
+ }
18
+
19
+ deleteById(id) {
20
+ return this.entityMap.delete(id);
21
+ }
22
+
23
+ count() {
24
+ return this.entityMap.size;
25
+ }
26
+
27
+ toJSON() {
28
+ return this.findAll();
29
+ }
30
+ }
31
+
32
+ export default ObjectRepository;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Auth.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Bussines.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Call.js.map
@@ -0,0 +1,8 @@
1
+ export const ALL_WA_PATCH_NAMES = [
2
+ 'critical_block',
3
+ 'critical_unblock_low',
4
+ 'regular_high',
5
+ 'regular_low',
6
+ 'regular'
7
+ ];
8
+ //# sourceMappingURL=Chat.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Contact.js.map
@@ -0,0 +1,2 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ //# sourceMappingURL=Events.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GroupMetadata.js.map
@@ -0,0 +1,25 @@
1
+ /** WhatsApp has 20 predefined colors */
2
+ export var LabelColor;
3
+ (function (LabelColor) {
4
+ LabelColor[LabelColor["Color1"] = 0] = "Color1";
5
+ LabelColor[LabelColor["Color2"] = 1] = "Color2";
6
+ LabelColor[LabelColor["Color3"] = 2] = "Color3";
7
+ LabelColor[LabelColor["Color4"] = 3] = "Color4";
8
+ LabelColor[LabelColor["Color5"] = 4] = "Color5";
9
+ LabelColor[LabelColor["Color6"] = 5] = "Color6";
10
+ LabelColor[LabelColor["Color7"] = 6] = "Color7";
11
+ LabelColor[LabelColor["Color8"] = 7] = "Color8";
12
+ LabelColor[LabelColor["Color9"] = 8] = "Color9";
13
+ LabelColor[LabelColor["Color10"] = 9] = "Color10";
14
+ LabelColor[LabelColor["Color11"] = 10] = "Color11";
15
+ LabelColor[LabelColor["Color12"] = 11] = "Color12";
16
+ LabelColor[LabelColor["Color13"] = 12] = "Color13";
17
+ LabelColor[LabelColor["Color14"] = 13] = "Color14";
18
+ LabelColor[LabelColor["Color15"] = 14] = "Color15";
19
+ LabelColor[LabelColor["Color16"] = 15] = "Color16";
20
+ LabelColor[LabelColor["Color17"] = 16] = "Color17";
21
+ LabelColor[LabelColor["Color18"] = 17] = "Color18";
22
+ LabelColor[LabelColor["Color19"] = 18] = "Color19";
23
+ LabelColor[LabelColor["Color20"] = 19] = "Color20";
24
+ })(LabelColor || (LabelColor = {}));
25
+ //# sourceMappingURL=Label.js.map
@@ -0,0 +1,7 @@
1
+ /** Association type */
2
+ export var LabelAssociationType;
3
+ (function (LabelAssociationType) {
4
+ LabelAssociationType["Chat"] = "label_jid";
5
+ LabelAssociationType["Message"] = "label_message";
6
+ })(LabelAssociationType || (LabelAssociationType = {}));
7
+ //# sourceMappingURL=LabelAssociation.js.map
@@ -0,0 +1,11 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ // export the WAMessage Prototypes
3
+ export { proto as WAProto };
4
+ export const WAMessageStubType = proto.WebMessageInfo.StubType;
5
+ export const WAMessageStatus = proto.WebMessageInfo.Status;
6
+ export var WAMessageAddressingMode;
7
+ (function (WAMessageAddressingMode) {
8
+ WAMessageAddressingMode["PN"] = "pn";
9
+ WAMessageAddressingMode["LID"] = "lid";
10
+ })(WAMessageAddressingMode || (WAMessageAddressingMode = {}));
11
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1,120 @@
1
+ export var XWAPaths;
2
+ (function (XWAPaths) {
3
+ XWAPaths["xwa2_newsletter_create"] = "xwa2_newsletter_create";
4
+ XWAPaths["xwa2_newsletter_subscribers"] = "xwa2_newsletter_subscribers";
5
+ XWAPaths["xwa2_newsletter_view"] = "xwa2_newsletter_view";
6
+ XWAPaths["xwa2_newsletter_metadata"] = "xwa2_newsletter";
7
+ XWAPaths["xwa2_newsletter_admin_count"] = "xwa2_newsletter_admin";
8
+ XWAPaths["xwa2_newsletter_mute_v2"] = "xwa2_newsletter_mute_v2";
9
+ XWAPaths["xwa2_newsletter_unmute_v2"] = "xwa2_newsletter_unmute_v2";
10
+ XWAPaths["xwa2_newsletter_follow"] = "xwa2_newsletter_follow";
11
+ XWAPaths["xwa2_newsletter_unfollow"] = "xwa2_newsletter_unfollow";
12
+ XWAPaths["xwa2_newsletter_join_v2"] = "xwa2_newsletter_join_v2";
13
+ XWAPaths["xwa2_newsletter_leave_v2"] = "xwa2_newsletter_leave_v2";
14
+ XWAPaths["xwa2_newsletter_change_owner"] = "xwa2_newsletter_change_owner";
15
+ XWAPaths["xwa2_newsletter_demote"] = "xwa2_newsletter_demote";
16
+ XWAPaths["xwa2_newsletter_delete_v2"] = "xwa2_newsletter_delete_v2";
17
+ XWAPaths["xwa2_fetch_account_reachout_timelock"] = "xwa2_fetch_account_reachout_timelock";
18
+ XWAPaths["xwa2_message_capping_info"] = "xwa2_message_capping_info";
19
+ // --- Added from xbailsync@1.0.7: paths for methods newly wired in
20
+ // newsletter.js (subscriber list, generic newsletter update, block user).
21
+ XWAPaths["xwa2_newsletter_subscribed"] = "xwa2_newsletter_subscribed";
22
+ XWAPaths["xwa2_newsletter_update"] = "xwa2_newsletter_update";
23
+ XWAPaths["xwa2_newsletter_block_user"] = "xwa2_newsletter_block_user";
24
+ // --- Added: broader newsletter/channel admin, directory, and moderation
25
+ // surface not previously mapped. Pure additive data (string constants),
26
+ // doesn't change any existing key's value. See LITERACY.md changelog.
27
+ XWAPaths["xwa2_newsletter_admin_invite_create"] = "xwa2_newsletter_admin_invite_create";
28
+ XWAPaths["xwa2_newsletter_admin_invite_revoke"] = "xwa2_newsletter_admin_invite_revoke";
29
+ XWAPaths["xwa2_newsletter_admin_invite_accept"] = "xwa2_newsletter_admin_invite_accept";
30
+ XWAPaths["xwa2_newsletter_admin"] = "xwa2_newsletter_admin";
31
+ XWAPaths["xwa2_newsletter_admin_profile_update"] = "xwa2_newsletter_admin_profile_update";
32
+ XWAPaths["xwa2_newsletters_directory_list"] = "xwa2_newsletters_directory_list";
33
+ XWAPaths["xwa2_newsletters_directory_search"] = "xwa2_newsletters_directory_search";
34
+ XWAPaths["xwa2_newsletters_directory_category_preview"] = "xwa2_newsletters_directory_category_preview";
35
+ XWAPaths["xwa2_newsletters_search"] = "xwa2_newsletters_search";
36
+ XWAPaths["xwa2_newsletters_recommended"] = "xwa2_newsletters_recommended";
37
+ XWAPaths["xwa2_newsletters_similar"] = "xwa2_newsletters_similar";
38
+ XWAPaths["xwa2_newsletter_following"] = "xwa2_newsletter_following";
39
+ XWAPaths["xwa2_newsletter_admin_insights"] = "xwa2_newsletter_admin_insights";
40
+ XWAPaths["xwa2_newsletters_poll_voter_list"] = "xwa2_newsletters_poll_voter_list";
41
+ XWAPaths["xwa2_newsletters_reaction_sender_list"] = "xwa2_newsletters_reaction_sender_list";
42
+ XWAPaths["xwa2_newsletter_enforcements"] = "xwa2_newsletter_enforcements";
43
+ XWAPaths["xwa2_newsletter_user_reports"] = "xwa2_newsletter_user_reports";
44
+ XWAPaths["xwa2_newsletter_create_report_appeal"] = "xwa2_newsletter_create_report_appeal";
45
+ XWAPaths["xwa2_newsletter_link_preview_check"] = "xwa2_newsletter_link_preview_check";
46
+ XWAPaths["xwa2_newsletter_update_verification"] = "xwa2_newsletter_update_verification";
47
+ XWAPaths["xwa2_newsletter_label_paid_partnership"] = "xwa2_newsletter_label_paid_partnership";
48
+ XWAPaths["xwa2_newsletter_log_exposures"] = "xwa2_newsletter_log_exposures";
49
+ XWAPaths["xwa2_newsletter_update_user_setting"] = "xwa2_newsletter_update_user_setting";
50
+ XWAPaths["xwa2_newsletter_create_verified"] = "xwa2_newsletter_create_verified";
51
+ XWAPaths["xwa2_newsletter_ranking_features"] = "xwa2_newsletter_ranking_features";
52
+ XWAPaths["xwa2_wamo_afs_age_collection"] = "xwa2_wamo_afs_age_collection";
53
+ XWAPaths["xwa2_wamo_asset_collection"] = "xwa2_wamo_asset_collection";
54
+ XWAPaths["xwa2_wamo_fetch_adhoc_notice_by_id"] = "xwa2_wamo_fetch_adhoc_notice_by_id";
55
+ XWAPaths["xwa2_wamo_fetch_identity_token"] = "xwa2_wamo_fetch_identity_token";
56
+ XWAPaths["xwa2_wamo_sub_get_compliance_info"] = "xwa2_wamo_sub_get_compliance_info";
57
+ XWAPaths["xwa2_wamo_user_id_version"] = "xwa2_wamo_user_id_version";
58
+ XWAPaths["xwa2_wamo_set_user_id_version"] = "xwa2_wamo_set_user_id_version";
59
+ })(XWAPaths || (XWAPaths = {}));
60
+ export var QueryIds;
61
+ (function (QueryIds) {
62
+ QueryIds["CREATE"] = "8823471724422422";
63
+ QueryIds["UPDATE_METADATA"] = "25976052865358570"; // corrected against xbailsync@1.0.7 (was a placeholder, unused)
64
+ QueryIds["METADATA"] = "26099060629688646"; // corrected against xbailsync@1.0.7 (was a placeholder, unused; NOT the same as the separate local QueryIds.METADATA in newsletter.js, which is already working and untouched)
65
+ QueryIds["SUBSCRIBERS"] = "9783111038412085";
66
+ QueryIds["FOLLOW"] = "24404358912487870";
67
+ QueryIds["UNFOLLOW"] = "9767147403369991";
68
+ QueryIds["MUTE"] = "29766401636284406";
69
+ QueryIds["UNMUTE"] = "9864994326891137";
70
+ QueryIds["ADMIN_COUNT"] = "7130823597031706";
71
+ QueryIds["CHANGE_OWNER"] = "7341777602580933";
72
+ QueryIds["DEMOTE"] = "6551828931592903";
73
+ QueryIds["DELETE"] = "30062808666639665";
74
+ QueryIds["REACHOUT_TIMELOCK"] = "23983697327930364";
75
+ QueryIds["MESSAGE_CAPPING_INFO"] = "24503548349331633";
76
+ // --- Corrected against xbailsync@1.0.7: these were placeholder values,
77
+ // not wired into any function anywhere (confirmed via a fork-wide search)
78
+ // — safe to correct with no risk to existing behavior. Now wired into
79
+ // Socket/newsletter.js's newly-added admin/directory/wamo methods.
80
+ QueryIds["FETCH_SUBSCRIBE"] = "6388546374527196";
81
+ QueryIds["CREATE_VERIFIED"] = "8823471724422423";
82
+ QueryIds["LEAVE"] = "9784043202933196";
83
+ QueryIds["UPDATE_USER_SETTING"] = "29766401636284407";
84
+ QueryIds["ADMIN_INVITE"] = "7148599488585196";
85
+ QueryIds["ADMIN_INVITE_REVOKE"] = "6345824195482235";
86
+ QueryIds["ADMIN_INVITE_ACCEPT"] = "6345824195482236";
87
+ QueryIds["ADMIN_METADATA"] = "6895563180530100";
88
+ QueryIds["ADMIN_PROFILE_UPDATE"] = "6895563180530101";
89
+ QueryIds["DIRECTORY_LIST"] = "6388546374527198";
90
+ QueryIds["DIRECTORY_SEARCH"] = "6388546374527199";
91
+ QueryIds["DIRECTORY_CATEGORY_PREVIEW"] = "6388546374527200";
92
+ QueryIds["SEARCH"] = "26099060629688647";
93
+ QueryIds["RECOMMENDED"] = "26099060629688648";
94
+ QueryIds["SIMILAR"] = "26099060629688649";
95
+ QueryIds["FOLLOWING_LIST"] = "6388546374527197";
96
+ QueryIds["INSIGHTS"] = "6243647912368353";
97
+ QueryIds["POLL_VOTER_LIST"] = "9783111038412087";
98
+ QueryIds["REACTION_SENDERS_LIST"] = "9783111038412088";
99
+ QueryIds["QUESTION_RESPONSE_STATE_UPDATE"] = "24896618076668076";
100
+ QueryIds["LOG_EXPOSURES"] = "9864994326891138";
101
+ QueryIds["RANKING_FEATURES"] = "7130823597031708";
102
+ QueryIds["BLOCK_USER"] = "6345824195482237";
103
+ QueryIds["USER_REPORTS"] = "9783111038412086";
104
+ QueryIds["CREATE_REPORT_APPEAL"] = "6551828931592904";
105
+ QueryIds["ENFORCEMENTS"] = "7130823597031707";
106
+ QueryIds["LINK_PREVIEW_CHECK"] = "24404358912487871";
107
+ QueryIds["UPDATE_VERIFICATION"] = "25976052865358571";
108
+ QueryIds["LABEL_PAID_PARTNERSHIP"] = "7341777602580934";
109
+ QueryIds["WAMO_CHANGE_SUB"] = "7148599488585199";
110
+ QueryIds["WAMO_ENABLE_SUB"] = "7148599488585197";
111
+ QueryIds["WAMO_DISABLE_SUB"] = "7148599488585198";
112
+ QueryIds["WAMO_AFS_AGE_COLLECTION"] = "6895563180530102";
113
+ QueryIds["WAMO_ASSET_COLLECTION"] = "6895563180530103";
114
+ QueryIds["WAMO_FETCH_ADHOC_NOTICE"] = "6895563180530104";
115
+ QueryIds["WAMO_FETCH_IDENTITY_TOKEN"] = "6895563180530105";
116
+ QueryIds["WAMO_SUB_COMPLIANCE_INFO"] = "6895563180530106";
117
+ QueryIds["WAMO_USER_ID_VERSION"] = "6895563180530107";
118
+ QueryIds["WAMO_SET_USER_ID_VERSION"] = "6895563180530108";
119
+ })(QueryIds || (QueryIds = {}));
120
+ //# sourceMappingURL=Mex.js.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Product.js.map
@@ -0,0 +1,2 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ //# sourceMappingURL=Signal.js.map
@@ -0,0 +1,3 @@
1
+ import { proto } from '../../WAProto/index.js';
2
+ import {} from './Message.js';
3
+ //# sourceMappingURL=Socket.js.map
@@ -0,0 +1,56 @@
1
+ import { Boom } from '@hapi/boom';
2
+ export var SyncState;
3
+ (function (SyncState) {
4
+ /** The socket is connecting, but we haven't received pending notifications yet. */
5
+ SyncState[SyncState["Connecting"] = 0] = "Connecting";
6
+ /** Pending notifications received. Buffering events until we decide whether to sync or not. */
7
+ SyncState[SyncState["AwaitingInitialSync"] = 1] = "AwaitingInitialSync";
8
+ /** The initial app state sync (history, etc.) is in progress. Buffering continues. */
9
+ SyncState[SyncState["Syncing"] = 2] = "Syncing";
10
+ /** Initial sync is complete, or was skipped. The socket is fully operational and events are processed in real-time. */
11
+ SyncState[SyncState["Online"] = 3] = "Online";
12
+ })(SyncState || (SyncState = {}));
13
+ export var ReachoutTimelockEnforcementType;
14
+ (function (ReachoutTimelockEnforcementType) {
15
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_ALCOHOL"] = "BIZ_COMMERCE_VIOLATION_ALCOHOL";
16
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_ADULT"] = "BIZ_COMMERCE_VIOLATION_ADULT";
17
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_ANIMALS"] = "BIZ_COMMERCE_VIOLATION_ANIMALS";
18
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_BODY_PARTS_FLUIDS"] = "BIZ_COMMERCE_VIOLATION_BODY_PARTS_FLUIDS";
19
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_DATING"] = "BIZ_COMMERCE_VIOLATION_DATING";
20
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_DIGITAL_SERVICES_PRODUCTS"] = "BIZ_COMMERCE_VIOLATION_DIGITAL_SERVICES_PRODUCTS";
21
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_DRUGS"] = "BIZ_COMMERCE_VIOLATION_DRUGS";
22
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_DRUGS_ONLY_OTC"] = "BIZ_COMMERCE_VIOLATION_DRUGS_ONLY_OTC";
23
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_GAMBLING"] = "BIZ_COMMERCE_VIOLATION_GAMBLING";
24
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_HEALTHCARE"] = "BIZ_COMMERCE_VIOLATION_HEALTHCARE";
25
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_REAL_FAKE_CURRENCY"] = "BIZ_COMMERCE_VIOLATION_REAL_FAKE_CURRENCY";
26
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_SUPPLEMENTS"] = "BIZ_COMMERCE_VIOLATION_SUPPLEMENTS";
27
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_TOBACCO"] = "BIZ_COMMERCE_VIOLATION_TOBACCO";
28
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_VIOLENT_CONTENT"] = "BIZ_COMMERCE_VIOLATION_VIOLENT_CONTENT";
29
+ ReachoutTimelockEnforcementType["BIZ_COMMERCE_VIOLATION_WEAPONS"] = "BIZ_COMMERCE_VIOLATION_WEAPONS";
30
+ ReachoutTimelockEnforcementType["BIZ_QUALITY"] = "BIZ_QUALITY";
31
+ /** This means there is no restriction */
32
+ ReachoutTimelockEnforcementType["DEFAULT"] = "DEFAULT";
33
+ ReachoutTimelockEnforcementType["WEB_COMPANION_ONLY"] = "WEB_COMPANION_ONLY";
34
+ })(ReachoutTimelockEnforcementType || (ReachoutTimelockEnforcementType = {}));
35
+ export var NewChatMessageCappingStatusType;
36
+ (function (NewChatMessageCappingStatusType) {
37
+ NewChatMessageCappingStatusType["NONE"] = "NONE";
38
+ NewChatMessageCappingStatusType["FIRST_WARNING"] = "FIRST_WARNING";
39
+ NewChatMessageCappingStatusType["SECOND_WARNING"] = "SECOND_WARNING";
40
+ NewChatMessageCappingStatusType["CAPPED"] = "CAPPED";
41
+ })(NewChatMessageCappingStatusType || (NewChatMessageCappingStatusType = {}));
42
+ export var NewChatMessageCappingMVStatusType;
43
+ (function (NewChatMessageCappingMVStatusType) {
44
+ NewChatMessageCappingMVStatusType["NOT_ELIGIBLE"] = "NOT_ELIGIBLE";
45
+ NewChatMessageCappingMVStatusType["NOT_ACTIVE"] = "NOT_ACTIVE";
46
+ NewChatMessageCappingMVStatusType["ACTIVE"] = "ACTIVE";
47
+ NewChatMessageCappingMVStatusType["ACTIVE_UPGRADE_AVAILABLE"] = "ACTIVE_UPGRADE_AVAILABLE";
48
+ })(NewChatMessageCappingMVStatusType || (NewChatMessageCappingMVStatusType = {}));
49
+ export var NewChatMessageCappingOTEStatusType;
50
+ (function (NewChatMessageCappingOTEStatusType) {
51
+ NewChatMessageCappingOTEStatusType["NOT_ELIGIBLE"] = "NOT_ELIGIBLE";
52
+ NewChatMessageCappingOTEStatusType["ELIGIBLE"] = "ELIGIBLE";
53
+ NewChatMessageCappingOTEStatusType["ACTIVE_IN_CURRENT_CYCLE"] = "ACTIVE_IN_CURRENT_CYCLE";
54
+ NewChatMessageCappingOTEStatusType["EXHAUSTED"] = "EXHAUSTED";
55
+ })(NewChatMessageCappingOTEStatusType || (NewChatMessageCappingOTEStatusType = {}));
56
+ //# sourceMappingURL=State.js.map
@@ -0,0 +1,2 @@
1
+ import { USyncUser } from '../WAUSync/index.js';
2
+ //# sourceMappingURL=USync.js.map
@@ -0,0 +1,26 @@
1
+ export * from './Auth.js';
2
+ export * from './GroupMetadata.js';
3
+ export * from './Chat.js';
4
+ export * from './Contact.js';
5
+ export * from './State.js';
6
+ export * from './Message.js';
7
+ export * from './Socket.js';
8
+ export * from './Events.js';
9
+ export * from './Product.js';
10
+ export * from './Call.js';
11
+ export * from './Signal.js';
12
+ export * from './Mex.js';
13
+ export var DisconnectReason;
14
+ (function (DisconnectReason) {
15
+ DisconnectReason[DisconnectReason["connectionClosed"] = 428] = "connectionClosed";
16
+ DisconnectReason[DisconnectReason["connectionLost"] = 408] = "connectionLost";
17
+ DisconnectReason[DisconnectReason["connectionReplaced"] = 440] = "connectionReplaced";
18
+ DisconnectReason[DisconnectReason["timedOut"] = 408] = "timedOut";
19
+ DisconnectReason[DisconnectReason["loggedOut"] = 401] = "loggedOut";
20
+ DisconnectReason[DisconnectReason["badSession"] = 500] = "badSession";
21
+ DisconnectReason[DisconnectReason["restartRequired"] = 515] = "restartRequired";
22
+ DisconnectReason[DisconnectReason["multideviceMismatch"] = 411] = "multideviceMismatch";
23
+ DisconnectReason[DisconnectReason["forbidden"] = 403] = "forbidden";
24
+ DisconnectReason[DisconnectReason["unavailableService"] = 503] = "unavailableService";
25
+ })(DisconnectReason || (DisconnectReason = {}));
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,53 @@
1
+ /**
2
+ * lib/Utils/adaptive-healing.js — connection-quality helpers.
3
+ * `AdaptiveDelayManager` is a small backoff/cooldown timer (grows delay on
4
+ * repeated errors, cools back down on success) for use around any retry
5
+ * loop. `autoHealSession` is a targeted recovery step for the specific
6
+ * "MAC error" / decryption-failure symptom of a desynced Signal session:
7
+ * it just re-fetches the media connection info, nothing more invasive.
8
+ */
9
+ export class AdaptiveDelayManager {
10
+ constructor(options = {}) {
11
+ this.baseDelay = options.baseDelay || 1200;
12
+ this.maxDelay = options.maxDelay || 10000;
13
+ this.currentDelay = this.baseDelay;
14
+ this.consecutiveErrors = 0;
15
+ }
16
+
17
+ recordSuccess() {
18
+ this.consecutiveErrors = 0;
19
+ // Gradual cooldown back to base delay
20
+ if (this.currentDelay > this.baseDelay) {
21
+ this.currentDelay = Math.max(this.baseDelay, this.currentDelay - 200);
22
+ }
23
+ }
24
+
25
+ recordError() {
26
+ this.consecutiveErrors++;
27
+ // Exponential backoff with ceiling
28
+ this.currentDelay = Math.min(this.maxDelay, this.baseDelay * Math.pow(1.5, this.consecutiveErrors));
29
+ }
30
+
31
+ async wait() {
32
+ const jitter = Math.random() * 300;
33
+ const delayTime = Math.floor(this.currentDelay + jitter);
34
+ await new Promise(resolve => setTimeout(resolve, delayTime));
35
+ }
36
+ }
37
+
38
+ export async function autoHealSession(sock, error) {
39
+ console.warn('[AutoHeal] Detecting session anomaly or MAC error:', error?.message || error);
40
+ try {
41
+ if (error?.output?.statusCode === 428 || error?.message?.includes('MAC') || error?.message?.includes('Decryption')) {
42
+ console.log('[AutoHeal] Attempting automatic pre-key synchronization and session recovery...');
43
+ if (typeof sock.refreshMediaConn === 'function') {
44
+ await sock.refreshMediaConn(true);
45
+ }
46
+ console.log('[AutoHeal] Recovery sequence executed successfully.');
47
+ return true;
48
+ }
49
+ } catch (healError) {
50
+ console.error('[AutoHeal] Session healing failed:', healError);
51
+ }
52
+ return false;
53
+ }