@codexverified/baileys 2.7.5

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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/WAProto/V +1 -0
  4. package/WAProto/WAProto.proto +8051 -0
  5. package/WAProto/index.js +289292 -0
  6. package/engine-requirements.js +13 -0
  7. package/lib/Defaults/index.js +158 -0
  8. package/lib/Signal/Group/ciphertext-message.js +11 -0
  9. package/lib/Signal/Group/group-session-builder.js +29 -0
  10. package/lib/Signal/Group/group_cipher.js +81 -0
  11. package/lib/Signal/Group/index.js +11 -0
  12. package/lib/Signal/Group/keyhelper.js +17 -0
  13. package/lib/Signal/Group/sender-chain-key.js +25 -0
  14. package/lib/Signal/Group/sender-key-distribution-message.js +62 -0
  15. package/lib/Signal/Group/sender-key-message.js +65 -0
  16. package/lib/Signal/Group/sender-key-name.js +47 -0
  17. package/lib/Signal/Group/sender-key-record.js +40 -0
  18. package/lib/Signal/Group/sender-key-state.js +83 -0
  19. package/lib/Signal/Group/sender-message-key.js +25 -0
  20. package/lib/Signal/libsignal.js +428 -0
  21. package/lib/Signal/lid-mapping.js +280 -0
  22. package/lib/Socket/Client/index.js +2 -0
  23. package/lib/Socket/Client/types.js +10 -0
  24. package/lib/Socket/Client/websocket.js +53 -0
  25. package/lib/Socket/aigroups.js +315 -0
  26. package/lib/Socket/business.js +407 -0
  27. package/lib/Socket/chats.js +1831 -0
  28. package/lib/Socket/communities.js +431 -0
  29. package/lib/Socket/graphql.js +899 -0
  30. package/lib/Socket/groups.js +549 -0
  31. package/lib/Socket/index.js +79 -0
  32. package/lib/Socket/interactive-handler.js +600 -0
  33. package/lib/Socket/interop.js +563 -0
  34. package/lib/Socket/managed-account.js +208 -0
  35. package/lib/Socket/messages-recv.js +2144 -0
  36. package/lib/Socket/messages-send.js +2030 -0
  37. package/lib/Socket/mex.js +41 -0
  38. package/lib/Socket/newsletter.js +226 -0
  39. package/lib/Socket/privacy.js +446 -0
  40. package/lib/Socket/registration.js +428 -0
  41. package/lib/Socket/socket.js +1017 -0
  42. package/lib/Socket/username.js +229 -0
  43. package/lib/Store/index.js +4 -0
  44. package/lib/Store/make-cache-manager-store.js +89 -0
  45. package/lib/Store/make-in-memory-store.js +420 -0
  46. package/lib/Store/make-ordered-dictionary.js +78 -0
  47. package/lib/Store/object-repository.js +23 -0
  48. package/lib/Types/Auth.js +1 -0
  49. package/lib/Types/Bussines.js +1 -0
  50. package/lib/Types/Call.js +1 -0
  51. package/lib/Types/Chat.js +7 -0
  52. package/lib/Types/Contact.js +1 -0
  53. package/lib/Types/Events.js +1 -0
  54. package/lib/Types/GroupMetadata.js +1 -0
  55. package/lib/Types/Label.js +24 -0
  56. package/lib/Types/LabelAssociation.js +6 -0
  57. package/lib/Types/Message.js +17 -0
  58. package/lib/Types/Mex.js +39 -0
  59. package/lib/Types/Product.js +1 -0
  60. package/lib/Types/RichType.js +22 -0
  61. package/lib/Types/Signal.js +1 -0
  62. package/lib/Types/Socket.js +2 -0
  63. package/lib/Types/State.js +48 -0
  64. package/lib/Types/USync.js +1 -0
  65. package/lib/Types/index.js +25 -0
  66. package/lib/Utils/auth-utils.js +301 -0
  67. package/lib/Utils/bot-planning-replay.js +169 -0
  68. package/lib/Utils/browser-utils.js +28 -0
  69. package/lib/Utils/business.js +230 -0
  70. package/lib/Utils/chat-utils.js +885 -0
  71. package/lib/Utils/companion-reg-client-utils.js +32 -0
  72. package/lib/Utils/consumer-application.js +102 -0
  73. package/lib/Utils/crypto.js +117 -0
  74. package/lib/Utils/decode-wa-message.js +484 -0
  75. package/lib/Utils/event-buffer.js +589 -0
  76. package/lib/Utils/generics.js +388 -0
  77. package/lib/Utils/group-history.js +56 -0
  78. package/lib/Utils/history.js +130 -0
  79. package/lib/Utils/identity-change-handler.js +48 -0
  80. package/lib/Utils/index.js +34 -0
  81. package/lib/Utils/jid-display-normalization.js +209 -0
  82. package/lib/Utils/link-preview.js +84 -0
  83. package/lib/Utils/logger.js +2 -0
  84. package/lib/Utils/lt-hash.js +7 -0
  85. package/lib/Utils/make-mutex.js +32 -0
  86. package/lib/Utils/message-composer.js +467 -0
  87. package/lib/Utils/message-inspect.js +67 -0
  88. package/lib/Utils/message-retry-manager.js +241 -0
  89. package/lib/Utils/messages-media.js +1006 -0
  90. package/lib/Utils/messages.js +1851 -0
  91. package/lib/Utils/meta-ai-msmsg.js +130 -0
  92. package/lib/Utils/meta-compositing.js +194 -0
  93. package/lib/Utils/noise-handler.js +200 -0
  94. package/lib/Utils/offline-node-processor.js +39 -0
  95. package/lib/Utils/pre-key-manager.js +105 -0
  96. package/lib/Utils/process-message.js +527 -0
  97. package/lib/Utils/reporting-utils.js +257 -0
  98. package/lib/Utils/rich-message-utils.js +439 -0
  99. package/lib/Utils/signal.js +200 -0
  100. package/lib/Utils/stanza-ack.js +37 -0
  101. package/lib/Utils/sync-action-utils.js +47 -0
  102. package/lib/Utils/tc-token-utils.js +162 -0
  103. package/lib/Utils/use-multi-file-auth-state.js +120 -0
  104. package/lib/Utils/use-single-file-auth-state.js +96 -0
  105. package/lib/Utils/use-sqlite-auth-state.js +108 -0
  106. package/lib/Utils/validate-connection.js +206 -0
  107. package/lib/Utils/voip-rekey.js +20 -0
  108. package/lib/Utils/welcome-flow.js +217 -0
  109. package/lib/WABinary/constants.js +1463 -0
  110. package/lib/WABinary/decode.js +261 -0
  111. package/lib/WABinary/encode.js +219 -0
  112. package/lib/WABinary/generic-utils.js +227 -0
  113. package/lib/WABinary/index.js +5 -0
  114. package/lib/WABinary/jid-utils.js +95 -0
  115. package/lib/WABinary/types.js +1 -0
  116. package/lib/WAM/BinaryInfo.js +9 -0
  117. package/lib/WAM/constants.js +22852 -0
  118. package/lib/WAM/encode.js +149 -0
  119. package/lib/WAM/index.js +3 -0
  120. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +96 -0
  121. package/lib/WAUSync/Protocols/USyncContactProtocol.js +56 -0
  122. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +53 -0
  123. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +26 -0
  124. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +70 -0
  125. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +28 -0
  126. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +25 -0
  127. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +37 -0
  128. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +34 -0
  129. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +24 -0
  130. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +50 -0
  131. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +28 -0
  132. package/lib/WAUSync/Protocols/index.js +12 -0
  133. package/lib/WAUSync/USyncQuery.js +201 -0
  134. package/lib/WAUSync/USyncUser.js +54 -0
  135. package/lib/WAUSync/index.js +3 -0
  136. package/lib/antiban.cjs +4726 -0
  137. package/lib/index.d.ts +286 -0
  138. package/lib/index.js +18 -0
  139. package/package.json +121 -0
@@ -0,0 +1,428 @@
1
+ import { executeWMexQuery } from './mex.js';
2
+
3
+ const REGISTRATION_MEX_IDS = {
4
+ // Password
5
+ HAS_PASSWORD: '25379221318423478', // HasPasswordQuery
6
+ SET_PASSWORD: '33855141324134176', // SetPasswordMutation
7
+ CHECK_PASSWORD: '26881928138061632', // CheckPasswordMutation
8
+ DELETE_PASSWORD: '27247058691550586', // DeletePasswordMutation
9
+ // Passkey (account-level)
10
+ PASSKEY_EXIST: '25188064727509430', // PasskeyExistResponseQuery
11
+ PASSKEY_LIST_EXIST: '26930537423220681', // PasskeyListExistResponseQuery
12
+ PASSKEY_REQUEST_CHALLENGE: '26311497405176139', // PasskeyRequestChallengeMutation
13
+ PASSKEY_VERIFY_CHALLENGE: '26876394218624479', // PasskeyVerifyChallengeMutation
14
+ PASSKEY_DELETE: '25225683640428243', // PasskeyDeleteMutation
15
+ // Passkey (registration flow)
16
+ REG_PASSKEY_START: '25415371271434748', // RegistrationPasskeyStartRegisterMutation
17
+ REG_PASSKEY_FINISH: '24611221275218156', // RegistrationPasskeyFinishRegisterMutation
18
+ REG_PASSKEY_ENABLE: '25147880151540247', // RegistrationPasskeyEnableMutation
19
+ REG_PASSKEY_DISABLE: '27775237998742831', // RegistrationPasskeyDisableMutation
20
+ REG_PASSKEY_CLEAR: '25111972538494859', // RegistrationPasskeyClear
21
+ REG_PASSKEY_UPDATE_ENCRYPTION_STATUS: '24866837389649930', // RegistrationPasskeyUpdateClientEncryptionStatusMutation
22
+ // Registration upsells
23
+ GET_REGISTRATION_UPSELLS: '24265038133175291', // GetRegistrationUpsells
24
+ GET_DYNAMIC_REGISTRATION_UPSELLS: '32273353145641323', // GetDynamicRegistrationUpsells
25
+ REGISTRATION_UPSELL_SHOWN: '25896605016620945', // RegistrationUpsellShown
26
+ REGISTRATION_DYNAMIC_UPSELL_SHOWN: '25435755019399064', // RegistrationDynamicUpsellShown
27
+ REG_ACCOUNT_TRANSFER_VERIFY_TOKEN: '7580940708621318', // RegAccountTransferVerifyTokenMutation
28
+ // Contacts
29
+ CONTACTS_UPLOAD: '26270332909283337', // ContactsUploadMutation
30
+ CONTACTS_BACKUP: '25507366408898459', // ContactsBackupMutation
31
+ CONTACTS_BACKUP_QUERY: '25885591041046968', // ContactsBackupQuery
32
+ SELF_CONTACTS: '25273846082242404', // SelfContactsQuery
33
+ SUGGESTED_CONTACTS_V2: '31663643799945793', // SuggestedContactsV2
34
+ USYNC: '25973385702344488', // UsyncQuery
35
+ USER_COUNTRY_CODE: '25292528387076991', // UserCountryCodeGet
36
+ // Age verification
37
+ AGE_COLLECTION: '33502711132676934', // AgeCollection
38
+ GET_AGE_EXPERIENCE: '26567868986241476', // GetAgeExperience
39
+ SET_AGE_EXPERIENCE: '26051006311231325', // SetAgeExperienceMutation
40
+ GET_UNKU_AGE_INFO: '34766883369623606', // GetUNKUAgeCollectionInfoQuery
41
+ SUBMIT_AGE: '26049558371296621', // SubmitAge
42
+ // Imagine Me
43
+ GET_IMAGINE_ME_ONBOARDED: '25082125671408942', // GetImagineMeOnboarded
44
+ DELETE_IMAGINE_ME_ONBOARDING: '7106989772737677', // DeleteImagineMeOnboarding
45
+ // Misc account
46
+ FETCH_USER_NOTICES: '32114003924880386', // FetchUserNoticesByID
47
+ REMOVE_REACHOUT_TIMELOCK: '25040013452293167', // RemoveAccountReachoutTimelock
48
+ TOS_SET_RESULT: '25225843213776555', // TosSetResult
49
+ VALIDATE_VERIFIER_CONFIDENCE: '25879669248324812', // ValidateVerifierConfidence
50
+ WA_BINARY_DEMO: '25407430348912370', // WABinaryDemoQuery
51
+ START_CHAT_CONTEXT_INTEGRITY: '26204539559207163', // StartChatContextIntegrityQuery
52
+ MESSAGE_CAPPING_OTE: '36625113040420390', // MessageCappingOteRequestMutation
53
+ MOBILE_CONFIG_CONSISTENCY: '34033663249614454', // MobileConfigConsistencyLoggingQuery
54
+ REMINDER_CREATE: '32149118614673399', // ReminderCreate
55
+ REMINDER_DELETE: '25462476600019778', // ReminderDelete
56
+ OHAI_KEY_CONFIG: '25069818679280758', // OhaiKeyConfigQuery
57
+ REQUEST_PEER_LOGS_UPLOAD: '25383561471254437', // RequestPeerLogsUploadForBugMutation
58
+ HAS_BUSINESS_INTENT: '26322731900685133', // HasBusinessIntent
59
+ ESCPS_MIGRATION: '25342222212064844', // EscpsMigration
60
+ CREATE_ENFORCEMENT_APPEAL: '26933630359642347', // CreateEnforcementAppeal
61
+ GET_AUTO_CONF_CHALLENGE: '25578301865133112', // GetAutoConfConfidenceChallenge
62
+ GET_WA_OLD_RESPONSE: '25784374561179853', // GetWaOldResponse
63
+ GET_WA_ME_LINK: '25001183556215266', // GetWaMeLinkQuery
64
+ FETCH_BOT_PKI_CRL: '26249576291319392', // FetchBotPKICRL
65
+ TEE_CHAT_TOKEN: '25920135234315276', // TeeChatParticipationGenerateToken
66
+ // Linking data bundles
67
+ GENERATE_LINKING_BUNDLE: '24469763446033134', // GenerateLinkingDataBundle
68
+ GET_CACHEABLE_UNLINKED_BUNDLE: '26339420835710173', // GetCacheableUnlinkedDataBundle
69
+ GET_UNLINKED_BUNDLE: '25515726664782894', // GetUnlinkedDataBundle
70
+ GET_DSB_INFO: '24832343819719050', // GetDsbInfo
71
+ // WAMO MEX (identity versioning)
72
+ WAMO_USER_ID_VERSION: '24958410737155269', // WamoUserIdVersion
73
+ WAMO_SET_USER_ID_VERSION: '8148672891859281', // SetWamoUserIdVersion
74
+ // WWW / web companion
75
+ WWW_CREATE_ACCESS_TOKEN: '7956082757804344', // WWWCreateAccessToken
76
+ WWW_CREATE_USER: '8548056818544135', // WWWCreateUser
77
+ WWW_DELETE_USER: '7989555047767245', // WWWDeleteUser
78
+ WWW_EXCHANGE_NONCE: '25727187160203620', // WWWExchangeNonceForAccessToken
79
+ WWW_GET_CERTIFICATES: '25094190163544446', // WWWGetCertificates
80
+ WWW_GET_NONCE: '24635485196143064', // WWWGetNonceForCompanionDevice
81
+ WWW_TRADE_NONCES: '24184092467936760', // WWWTradeNonceForAccessTokens
82
+ WWW_TRIGGER_RECOVERY: '24896267680055094', // WWWTriggerAcountRecovery
83
+ WWW_VALIDATE_CANONICAL_USER: '25434261326170403' // WWWValidateCanonicalUser
84
+ };
85
+
86
+ export const makeRegistrationSocket = (sock) => {
87
+ const { query, generateMessageTag } = sock;
88
+
89
+ const mexQuery = (variables, queryId, dataPath) =>
90
+ executeWMexQuery(variables, queryId, dataPath, query, generateMessageTag);
91
+
92
+ // Password
93
+
94
+ const hasPassword = () => mexQuery({}, REGISTRATION_MEX_IDS.HAS_PASSWORD, 'xwa2_has_password');
95
+
96
+ const setPassword = (password, oldPassword = null) => {
97
+ const input = { password };
98
+ if (oldPassword) input.old_password = oldPassword;
99
+ return mexQuery({ input }, REGISTRATION_MEX_IDS.SET_PASSWORD, 'xwa2_set_password');
100
+ };
101
+
102
+ const checkPassword = password =>
103
+ mexQuery({ input: { password } }, REGISTRATION_MEX_IDS.CHECK_PASSWORD, 'xwa2_check_password');
104
+
105
+ const deletePassword = password =>
106
+ mexQuery({ input: { password } }, REGISTRATION_MEX_IDS.DELETE_PASSWORD, 'xwa2_delete_password');
107
+
108
+ // Passkey (account-level)
109
+
110
+ const passkeyExists = () => mexQuery({}, REGISTRATION_MEX_IDS.PASSKEY_EXIST, 'xwa2_passkey_exist_response');
111
+
112
+ const passkeyListExists = () =>
113
+ mexQuery({}, REGISTRATION_MEX_IDS.PASSKEY_LIST_EXIST, 'xwa2_passkey_list_exist_response');
114
+
115
+ const passkeyRequestChallenge = () =>
116
+ mexQuery({}, REGISTRATION_MEX_IDS.PASSKEY_REQUEST_CHALLENGE, 'xwa2_passkey_request_challenge');
117
+
118
+ const passkeyVerifyChallenge = (credentialId, authenticatorData, clientDataJson, signature) =>
119
+ mexQuery(
120
+ {
121
+ credential_id: credentialId,
122
+ authenticator_data: authenticatorData,
123
+ client_data_json: clientDataJson,
124
+ signature
125
+ },
126
+ REGISTRATION_MEX_IDS.PASSKEY_VERIFY_CHALLENGE,
127
+ 'xwa2_passkey_verify_challenge'
128
+ );
129
+
130
+ const passkeyDelete = credentialId =>
131
+ mexQuery({ credential_id: credentialId }, REGISTRATION_MEX_IDS.PASSKEY_DELETE, 'xwa2_passkey_delete');
132
+
133
+ // Passkey (registration flow)
134
+
135
+ const regPasskeyStart = () => mexQuery({}, REGISTRATION_MEX_IDS.REG_PASSKEY_START, 'xwa2_reg_passkey_start_register');
136
+
137
+ const regPasskeyFinish = (credentialId, attestationObject, clientDataJson) =>
138
+ mexQuery(
139
+ { credential_id: credentialId, attestation_object: attestationObject, client_data_json: clientDataJson },
140
+ REGISTRATION_MEX_IDS.REG_PASSKEY_FINISH,
141
+ 'xwa2_reg_passkey_finish_register'
142
+ );
143
+
144
+ const regPasskeyEnable = () => mexQuery({}, REGISTRATION_MEX_IDS.REG_PASSKEY_ENABLE, 'xwa2_reg_passkey_enable');
145
+
146
+ const regPasskeyDisable = () => mexQuery({}, REGISTRATION_MEX_IDS.REG_PASSKEY_DISABLE, 'xwa2_reg_passkey_disable');
147
+
148
+ const regPasskeyClear = () => mexQuery({}, REGISTRATION_MEX_IDS.REG_PASSKEY_CLEAR, 'xwa2_reg_passkey_clear');
149
+
150
+ const regPasskeyUpdateEncryptionStatus = encryptionEnabled =>
151
+ mexQuery(
152
+ { encryption_enabled: encryptionEnabled },
153
+ REGISTRATION_MEX_IDS.REG_PASSKEY_UPDATE_ENCRYPTION_STATUS,
154
+ 'xwa2_reg_passkey_update_encryption_status'
155
+ );
156
+
157
+ // Registration upsells
158
+
159
+ const getRegistrationUpsells = () =>
160
+ mexQuery({}, REGISTRATION_MEX_IDS.GET_REGISTRATION_UPSELLS, 'xwa2_dynamic_reg_upsells');
161
+
162
+ const getDynamicRegistrationUpsells = () =>
163
+ mexQuery({}, REGISTRATION_MEX_IDS.GET_DYNAMIC_REGISTRATION_UPSELLS, 'xwa2_dynamic_reg_upsells');
164
+
165
+ const registrationUpsellShown = upsellId =>
166
+ mexQuery({ upsell_id: upsellId }, REGISTRATION_MEX_IDS.REGISTRATION_UPSELL_SHOWN, 'xwa2_reg_dynamic_upsell_shown');
167
+
168
+ const registrationDynamicUpsellShown = upsellId =>
169
+ mexQuery(
170
+ { upsell_id: upsellId },
171
+ REGISTRATION_MEX_IDS.REGISTRATION_DYNAMIC_UPSELL_SHOWN,
172
+ 'xwa2_reg_dynamic_upsell_shown'
173
+ );
174
+
175
+ const regAccountTransferVerifyToken = token =>
176
+ mexQuery(
177
+ { token },
178
+ REGISTRATION_MEX_IDS.REG_ACCOUNT_TRANSFER_VERIFY_TOKEN,
179
+ 'xwa2_reg_account_transfer_verify_token'
180
+ );
181
+
182
+ // Contacts
183
+
184
+ const contactsUpload = contacts =>
185
+ mexQuery({ contacts }, REGISTRATION_MEX_IDS.CONTACTS_UPLOAD, 'xwa2_contacts_upload');
186
+
187
+ const contactsBackup = contacts =>
188
+ mexQuery({ contacts }, REGISTRATION_MEX_IDS.CONTACTS_BACKUP, 'xwa2_contacts_backup');
189
+
190
+ const contactsBackupQuery = () => mexQuery({}, REGISTRATION_MEX_IDS.CONTACTS_BACKUP_QUERY, 'xwa2_contacts_backup');
191
+
192
+ const selfContactsQuery = () => mexQuery({}, REGISTRATION_MEX_IDS.SELF_CONTACTS, 'xwa2_self_contacts');
193
+
194
+ const suggestedContactsV2 = (limit = 20) =>
195
+ mexQuery({ limit }, REGISTRATION_MEX_IDS.SUGGESTED_CONTACTS_V2, 'xwa2_suggested_contacts_v2');
196
+
197
+ const usyncQuery = jids => mexQuery({ jids }, REGISTRATION_MEX_IDS.USYNC, 'xwa2_usync');
198
+
199
+ const userCountryCodeGet = () => mexQuery({}, REGISTRATION_MEX_IDS.USER_COUNTRY_CODE, 'xwa2_user_country_code');
200
+
201
+ // Age verification
202
+
203
+ const ageCollection = () => mexQuery({}, REGISTRATION_MEX_IDS.AGE_COLLECTION, 'xwa2_age_collection');
204
+
205
+ const getAgeExperience = () => mexQuery({}, REGISTRATION_MEX_IDS.GET_AGE_EXPERIENCE, 'xwa2_get_age_experience');
206
+
207
+ const setAgeExperience = (birthYear, country = null) => {
208
+ const input = { birth_year: birthYear };
209
+ if (country) input.country = country;
210
+ return mexQuery({ input }, REGISTRATION_MEX_IDS.SET_AGE_EXPERIENCE, 'xwa2_set_age_experience');
211
+ };
212
+
213
+ const getUnkuAgeInfo = () => mexQuery({}, REGISTRATION_MEX_IDS.GET_UNKU_AGE_INFO, 'xwa2_get_unku_age_info');
214
+
215
+ const submitAge = (birthYear, country = null) => {
216
+ const input = { birth_year: birthYear };
217
+ if (country) input.country = country;
218
+ return mexQuery({ input }, REGISTRATION_MEX_IDS.SUBMIT_AGE, 'xwa2_submit_age');
219
+ };
220
+
221
+ // Imagine Me
222
+
223
+ const getImagineMeOnboarded = () =>
224
+ mexQuery({}, REGISTRATION_MEX_IDS.GET_IMAGINE_ME_ONBOARDED, 'xwa2_get_imagine_me_onboarded');
225
+
226
+ const deleteImagineMeOnboarding = () =>
227
+ mexQuery({}, REGISTRATION_MEX_IDS.DELETE_IMAGINE_ME_ONBOARDING, 'xwa2_delete_imagine_me_onboarding');
228
+
229
+ // Misc account
230
+
231
+ const fetchUserNoticesById = noticeIds =>
232
+ mexQuery({ notice_ids: noticeIds }, REGISTRATION_MEX_IDS.FETCH_USER_NOTICES, 'xwa2_fetch_user_notices_by_id');
233
+
234
+ const removeAccountReachoutTimelock = () =>
235
+ mexQuery({}, REGISTRATION_MEX_IDS.REMOVE_REACHOUT_TIMELOCK, 'xwa2_remove_account_reachout_timelock');
236
+
237
+ const tosSetResult = (tosId, result) =>
238
+ mexQuery({ tos_id: tosId, result }, REGISTRATION_MEX_IDS.TOS_SET_RESULT, 'xwa2_tos_set_result');
239
+
240
+ const validateVerifierConfidence = (verifierId, confidence) =>
241
+ mexQuery(
242
+ { verifier_id: verifierId, confidence },
243
+ REGISTRATION_MEX_IDS.VALIDATE_VERIFIER_CONFIDENCE,
244
+ 'xwa2_autoconf_validate_confidence'
245
+ );
246
+
247
+ const waBinaryDemoQuery = () => mexQuery({}, REGISTRATION_MEX_IDS.WA_BINARY_DEMO, 'xwa2_wa_binary_demo');
248
+
249
+ const startChatContextIntegrityQuery = jids =>
250
+ mexQuery(
251
+ { users: jids.map(jid => ({ jid })), use_case: 'START_CHAT_CONTEXT' },
252
+ REGISTRATION_MEX_IDS.START_CHAT_CONTEXT_INTEGRITY,
253
+ 'xwa2_fetch_wa_users'
254
+ );
255
+
256
+ const messageCappingOteRequest = () =>
257
+ mexQuery({}, REGISTRATION_MEX_IDS.MESSAGE_CAPPING_OTE, 'xwa2_message_capping_ote_request');
258
+
259
+ const mobileConfigConsistencyLogging = (config = {}) =>
260
+ mexQuery({ config }, REGISTRATION_MEX_IDS.MOBILE_CONFIG_CONSISTENCY, 'xwa2_mobile_config_consistency_logging');
261
+
262
+ const reminderCreate = (title, body, scheduledTime) =>
263
+ mexQuery(
264
+ { input: { title, body, scheduled_time: scheduledTime } },
265
+ REGISTRATION_MEX_IDS.REMINDER_CREATE,
266
+ 'xwa2_reminder_set'
267
+ );
268
+
269
+ const reminderDelete = reminderId =>
270
+ mexQuery({ reminder_id: reminderId }, REGISTRATION_MEX_IDS.REMINDER_DELETE, 'xwa2_reminder_delete');
271
+
272
+ const ohaiKeyConfigQuery = () => mexQuery({}, REGISTRATION_MEX_IDS.OHAI_KEY_CONFIG, 'xwa2_ohai_key_config');
273
+
274
+ const requestPeerLogsUpload = bugId =>
275
+ mexQuery({ bug_id: bugId }, REGISTRATION_MEX_IDS.REQUEST_PEER_LOGS_UPLOAD, 'xwa2_request_peer_logs_upload');
276
+
277
+ const hasBusinessIntent = () => mexQuery({}, REGISTRATION_MEX_IDS.HAS_BUSINESS_INTENT, 'xwa2_has_business_intent');
278
+
279
+ const escpsMigration = () => mexQuery({}, REGISTRATION_MEX_IDS.ESCPS_MIGRATION, 'xwa2_escps_migration');
280
+
281
+ const createEnforcementAppeal = (reason, details = null) => {
282
+ const input = { reason };
283
+ if (details) input.details = details;
284
+ return mexQuery({ input }, REGISTRATION_MEX_IDS.CREATE_ENFORCEMENT_APPEAL, 'xwa2_create_enforcement_appeal');
285
+ };
286
+
287
+ const getAutoConfChallenge = () =>
288
+ mexQuery({}, REGISTRATION_MEX_IDS.GET_AUTO_CONF_CHALLENGE, 'xwa2_autoconf_request_confidence_challenge');
289
+
290
+ const getWaOldResponse = () => mexQuery({}, REGISTRATION_MEX_IDS.GET_WA_OLD_RESPONSE, 'xwa2_get_wa_old_response');
291
+
292
+ const getWaMeLink = () => mexQuery({}, REGISTRATION_MEX_IDS.GET_WA_ME_LINK, 'xwa2_get_wa_me_link');
293
+
294
+ const fetchBotPkiCrl = () => mexQuery({}, REGISTRATION_MEX_IDS.FETCH_BOT_PKI_CRL, 'xwa2_fetch_bot_pki_crl');
295
+
296
+ const teeChatParticipationToken = (chatJid, participants) =>
297
+ mexQuery({ chat_jid: chatJid, participants }, REGISTRATION_MEX_IDS.TEE_CHAT_TOKEN, 'xwa2_generate_wa_tee_gs_token');
298
+
299
+ // Linking data bundles
300
+
301
+ const generateLinkingBundle = () =>
302
+ mexQuery({}, REGISTRATION_MEX_IDS.GENERATE_LINKING_BUNDLE, 'xwa2_waffle_generate_linking_data_bundle');
303
+
304
+ const getCacheableUnlinkedBundle = () =>
305
+ mexQuery({}, REGISTRATION_MEX_IDS.GET_CACHEABLE_UNLINKED_BUNDLE, 'xwa2_get_cacheable_unlinked_bundle');
306
+
307
+ const getUnlinkedBundle = () => mexQuery({}, REGISTRATION_MEX_IDS.GET_UNLINKED_BUNDLE, 'xwa2_get_unlinked_bundle');
308
+
309
+ const getDsbInfo = () => mexQuery({}, REGISTRATION_MEX_IDS.GET_DSB_INFO, 'xwa2_get_dsb_info');
310
+
311
+ const wamoUserIdVersion = () => mexQuery({}, REGISTRATION_MEX_IDS.WAMO_USER_ID_VERSION, 'xwa2_wamo_user_id_version');
312
+
313
+ const setWamoUserIdVersion = version =>
314
+ mexQuery({ version }, REGISTRATION_MEX_IDS.WAMO_SET_USER_ID_VERSION, 'xwa2_wamo_user_id_version_set');
315
+
316
+ // WWW / web companion
317
+
318
+ const wwwCreateAccessToken = (nonce, userId) =>
319
+ mexQuery({ nonce, user_id: userId }, REGISTRATION_MEX_IDS.WWW_CREATE_ACCESS_TOKEN, 'xwa2_www_create_access_token');
320
+
321
+ const wwwCreateUser = input => mexQuery({ input }, REGISTRATION_MEX_IDS.WWW_CREATE_USER, 'xwa2_www_create_user');
322
+
323
+ const wwwDeleteUser = () => mexQuery({}, REGISTRATION_MEX_IDS.WWW_DELETE_USER, 'xwa2_www_delete_user');
324
+
325
+ const wwwExchangeNonce = nonce =>
326
+ mexQuery({ nonce }, REGISTRATION_MEX_IDS.WWW_EXCHANGE_NONCE, 'xwa2_www_exchange_nonce_for_access_token');
327
+
328
+ const wwwGetCertificates = () => mexQuery({}, REGISTRATION_MEX_IDS.WWW_GET_CERTIFICATES, 'xwa2_www_get_certificates');
329
+
330
+ const wwwGetNonce = () => mexQuery({}, REGISTRATION_MEX_IDS.WWW_GET_NONCE, 'xwa2_ent_get_canonical_ent_device_nonce');
331
+
332
+ const wwwTradeNonces = nonces =>
333
+ mexQuery({ nonces }, REGISTRATION_MEX_IDS.WWW_TRADE_NONCES, 'xwa2_www_trade_nonce_for_access_tokens');
334
+
335
+ const wwwTriggerRecovery = phoneNumber =>
336
+ mexQuery(
337
+ { phone_number: phoneNumber },
338
+ REGISTRATION_MEX_IDS.WWW_TRIGGER_RECOVERY,
339
+ 'xwa2_www_trigger_account_recovery'
340
+ );
341
+
342
+ const wwwValidateCanonicalUser = token =>
343
+ mexQuery({ token }, REGISTRATION_MEX_IDS.WWW_VALIDATE_CANONICAL_USER, 'xwa2_www_validate_canonical_user');
344
+
345
+ return {
346
+ ...sock,
347
+ // Password
348
+ hasPassword,
349
+ setPassword,
350
+ checkPassword,
351
+ deletePassword,
352
+ // Passkey account-level
353
+ passkeyExists,
354
+ passkeyListExists,
355
+ passkeyRequestChallenge,
356
+ passkeyVerifyChallenge,
357
+ passkeyDelete,
358
+ // Passkey registration flow
359
+ regPasskeyStart,
360
+ regPasskeyFinish,
361
+ regPasskeyEnable,
362
+ regPasskeyDisable,
363
+ regPasskeyClear,
364
+ regPasskeyUpdateEncryptionStatus,
365
+ // Registration upsells
366
+ getRegistrationUpsells,
367
+ getDynamicRegistrationUpsells,
368
+ registrationUpsellShown,
369
+ registrationDynamicUpsellShown,
370
+ regAccountTransferVerifyToken,
371
+ // Contacts
372
+ contactsUpload,
373
+ contactsBackup,
374
+ contactsBackupQuery,
375
+ selfContactsQuery,
376
+ suggestedContactsV2,
377
+ usyncQuery,
378
+ userCountryCodeGet,
379
+ // Age
380
+ ageCollection,
381
+ getAgeExperience,
382
+ setAgeExperience,
383
+ getUnkuAgeInfo,
384
+ submitAge,
385
+ // Imagine Me
386
+ getImagineMeOnboarded,
387
+ deleteImagineMeOnboarding,
388
+ // Misc account
389
+ fetchUserNoticesById,
390
+ removeAccountReachoutTimelock,
391
+ tosSetResult,
392
+ validateVerifierConfidence,
393
+ waBinaryDemoQuery,
394
+ startChatContextIntegrityQuery,
395
+ messageCappingOteRequest,
396
+ mobileConfigConsistencyLogging,
397
+ reminderCreate,
398
+ reminderDelete,
399
+ ohaiKeyConfigQuery,
400
+ requestPeerLogsUpload,
401
+ hasBusinessIntent,
402
+ escpsMigration,
403
+ createEnforcementAppeal,
404
+ getAutoConfChallenge,
405
+ getWaOldResponse,
406
+ getWaMeLink,
407
+ fetchBotPkiCrl,
408
+ teeChatParticipationToken,
409
+ // Linking
410
+ generateLinkingBundle,
411
+ getCacheableUnlinkedBundle,
412
+ getUnlinkedBundle,
413
+ getDsbInfo,
414
+ wamoUserIdVersion,
415
+ setWamoUserIdVersion,
416
+ // WWW
417
+ wwwCreateAccessToken,
418
+ wwwCreateUser,
419
+ wwwDeleteUser,
420
+ wwwExchangeNonce,
421
+ wwwGetCertificates,
422
+ wwwGetNonce,
423
+ wwwTradeNonces,
424
+ wwwTriggerRecovery,
425
+ wwwValidateCanonicalUser,
426
+ REGISTRATION_MEX_IDS
427
+ };
428
+ };