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