@badzz88/baileys 8.5.7 → 8.5.8

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 (142) hide show
  1. package/README.md +337 -1055
  2. package/WAProto/WAProto.proto +284 -264
  3. package/WAProto/index.js +5 -5
  4. package/engine-requirements.js +7 -15
  5. package/lib/Defaults/index.js +130 -187
  6. package/lib/Signal/Group/ciphertext-message.js +11 -14
  7. package/lib/Signal/Group/group-session-builder.js +29 -91
  8. package/lib/Signal/Group/group_cipher.js +81 -88
  9. package/lib/Signal/Group/index.js +12 -136
  10. package/lib/Signal/Group/keyhelper.js +15 -70
  11. package/lib/Signal/Group/sender-chain-key.js +25 -31
  12. package/lib/Signal/Group/sender-key-distribution-message.js +62 -65
  13. package/lib/Signal/Group/sender-key-message.js +65 -68
  14. package/lib/Signal/Group/sender-key-name.js +41 -43
  15. package/lib/Signal/Group/sender-key-record.js +40 -43
  16. package/lib/Signal/Group/sender-key-state.js +83 -96
  17. package/lib/Signal/Group/sender-message-key.js +25 -29
  18. package/lib/Signal/libsignal.js +425 -453
  19. package/lib/Signal/lid-mapping.js +276 -259
  20. package/lib/Socket/Client/index.js +3 -30
  21. package/lib/Socket/Client/types.js +10 -12
  22. package/lib/Socket/Client/websocket.js +53 -61
  23. package/lib/Socket/business.js +379 -422
  24. package/lib/Socket/chats.js +1193 -1816
  25. package/lib/Socket/communities.js +431 -549
  26. package/lib/Socket/graphql.js +672 -612
  27. package/lib/Socket/groups.js +374 -764
  28. package/lib/Socket/index.js +17 -38
  29. package/lib/Socket/interop.js +417 -503
  30. package/lib/Socket/messages-recv.js +1915 -2441
  31. package/lib/Socket/messages-send.js +1213 -1630
  32. package/lib/Socket/mex.js +9 -15
  33. package/lib/Socket/newsletter.js +747 -808
  34. package/lib/Socket/privacy.js +310 -441
  35. package/lib/Socket/socket.js +1025 -1022
  36. package/lib/Socket/username.js +8 -15
  37. package/lib/Store/index.js +10 -36
  38. package/lib/Store/make-cache-manager-store.js +80 -85
  39. package/lib/Store/make-in-memory-store.js +231 -591
  40. package/lib/Store/make-ordered-dictionary.js +72 -78
  41. package/lib/Store/object-repository.js +28 -25
  42. package/lib/Types/Auth.js +2 -38
  43. package/lib/Types/Bussines.js +2 -2
  44. package/lib/Types/Call.js +2 -2
  45. package/lib/Types/Chat.js +8 -4
  46. package/lib/Types/Contact.js +2 -2
  47. package/lib/Types/Events.js +2 -2
  48. package/lib/Types/GroupMetadata.js +2 -2
  49. package/lib/Types/Label.js +24 -26
  50. package/lib/Types/LabelAssociation.js +6 -8
  51. package/lib/Types/Message.js +11 -95
  52. package/lib/Types/Mex.js +111 -112
  53. package/lib/Types/Product.js +2 -2
  54. package/lib/Types/Signal.js +2 -2
  55. package/lib/Types/Socket.js +3 -2
  56. package/lib/Types/State.js +56 -70
  57. package/lib/Types/USync.js +2 -2
  58. package/lib/Types/index.js +26 -55
  59. package/lib/Utils/auth-utils.js +288 -292
  60. package/lib/Utils/browser-utils.js +47 -113
  61. package/lib/Utils/business.js +224 -240
  62. package/lib/Utils/chat-utils.js +869 -1205
  63. package/lib/Utils/companion-reg-client-utils.js +34 -41
  64. package/lib/Utils/crypto.js +107 -144
  65. package/lib/Utils/decode-wa-message.js +308 -518
  66. package/lib/Utils/event-buffer.js +611 -596
  67. package/lib/Utils/generics.js +355 -515
  68. package/lib/Utils/history.js +134 -244
  69. package/lib/Utils/identity-change-handler.js +49 -51
  70. package/lib/Utils/index.js +23 -57
  71. package/lib/Utils/link-preview.js +77 -135
  72. package/lib/Utils/logger.js +3 -9
  73. package/lib/Utils/lt-hash.js +6 -37
  74. package/lib/Utils/make-mutex.js +33 -36
  75. package/lib/Utils/message-composer.js +233 -439
  76. package/lib/Utils/message-retry-manager.js +260 -265
  77. package/lib/Utils/messages-media.js +829 -855
  78. package/lib/Utils/messages.js +961 -2528
  79. package/lib/Utils/noise-handler.js +200 -195
  80. package/lib/Utils/offline-node-processor.js +33 -35
  81. package/lib/Utils/pre-key-manager.js +102 -103
  82. package/lib/Utils/process-message.js +560 -978
  83. package/lib/Utils/reporting-utils.js +253 -257
  84. package/lib/Utils/signal.js +195 -218
  85. package/lib/Utils/stanza-ack.js +29 -31
  86. package/lib/Utils/sticker.js +109 -144
  87. package/lib/Utils/sync-action-utils.js +45 -50
  88. package/lib/Utils/tc-token-utils.js +139 -137
  89. package/lib/Utils/use-multi-file-auth-state.js +109 -109
  90. package/lib/Utils/validate-connection.js +202 -218
  91. package/lib/WABinary/constants.js +1299 -1302
  92. package/lib/WABinary/decode.js +262 -343
  93. package/lib/WABinary/encode.js +4 -12
  94. package/lib/WABinary/generic-utils.js +187 -223
  95. package/lib/WABinary/index.js +6 -33
  96. package/lib/WABinary/jid-utils.js +88 -351
  97. package/lib/WABinary/types.js +2 -2
  98. package/lib/WAM/BinaryInfo.js +9 -12
  99. package/lib/WAM/constants.js +22853 -39486
  100. package/lib/WAM/encode.js +140 -132
  101. package/lib/WAM/index.js +4 -31
  102. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +21 -23
  103. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +9 -9
  104. package/lib/WAUSync/Protocols/USyncContactProtocol.js +7 -7
  105. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +10 -10
  106. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +7 -7
  107. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +11 -12
  108. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +4 -5
  109. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +7 -7
  110. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +7 -8
  111. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +7 -7
  112. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +8 -8
  113. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +7 -7
  114. package/lib/WAUSync/Protocols/index.js +12 -39
  115. package/lib/WAUSync/USyncQuery.js +67 -49
  116. package/lib/WAUSync/USyncUser.js +11 -5
  117. package/lib/WAUSync/index.js +3 -31
  118. package/lib/index.js +15 -48
  119. package/package.json +129 -99
  120. package/LICENSE +0 -21
  121. package/lib/Defaults/phonenumber-mcc.json +0 -223
  122. package/lib/Socket/aigroups.js +0 -240
  123. package/lib/Socket/interactive-handler.js +0 -522
  124. package/lib/Socket/managed-account.js +0 -183
  125. package/lib/Socket/registration.js +0 -427
  126. package/lib/Socket/text-router.js +0 -83
  127. package/lib/Types/Newsletter.js +0 -121
  128. package/lib/Utils/command-loader.d.ts +0 -31
  129. package/lib/Utils/command-loader.js +0 -100
  130. package/lib/Utils/consumer-application.js +0 -107
  131. package/lib/Utils/curve25519-js.js +0 -275
  132. package/lib/Utils/group-history.js +0 -60
  133. package/lib/Utils/jid-display-normalization.js +0 -218
  134. package/lib/Utils/meta-ai-msmsg.js +0 -262
  135. package/lib/Utils/native-bridge.js +0 -82
  136. package/lib/Utils/session-pool.d.ts +0 -16
  137. package/lib/Utils/session-pool.js +0 -94
  138. package/lib/Utils/sticker.d.ts +0 -17
  139. package/lib/Utils/view-once-cache.d.ts +0 -9
  140. package/lib/Utils/view-once-cache.js +0 -79
  141. package/lib/Utils/voip-rekey.js +0 -22
  142. package/lib/antiban.js +0 -4637
@@ -1,17 +1,13 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.makeGraphQLSocket = exports.executeWWWGraphQL = exports.executeWamoGraphQL = exports.executeFacebookGraphQL = void 0
4
-
5
- const boom_1 = require('@hapi/boom')
1
+ import Boom from '@hapi/boom'
6
2
 
7
3
  // Endpoints confirmed from APX.java and WamoGraphQLExecutor.java
8
4
  const ENDPOINTS = {
9
- WWW: 'https://graph.whatsapp.com/graphql',
10
- ACS: 'https://acs.whatsapp.com/graphql',
11
- // Wamo host is fetched dynamically at runtime from a config service.
12
- // The path /api/wamo/graphql/ is appended to this base host.
13
- // Callers must provide the full wamo URL or use a configured host.
14
- WAMO_PATH: '/api/wamo/graphql/'
5
+ WWW: 'https://graph.whatsapp.com/graphql',
6
+ ACS: 'https://acs.whatsapp.com/graphql',
7
+ // Wamo host is fetched dynamically at runtime from a config service.
8
+ // The path /api/wamo/graphql/ is appended to this base host.
9
+ // Callers must provide the full wamo URL or use a configured host.
10
+ WAMO_PATH: '/api/wamo/graphql/'
15
11
  }
16
12
 
17
13
  // Default fallback token — only valid as a no-op / anonymous placeholder.
@@ -23,634 +19,698 @@ const WWW_DEFAULT_TOKEN = `WA|${WAMO_APP_ID}|3201f239340c1c8ec6262a6dad04200e`
23
19
  /**
24
20
  * Parse a GraphQL JSON response and extract the data at the given path.
25
21
  * Throws a Boom error if errors are present or the path is missing.
26
- *
27
- * @param {object} json - Parsed JSON response body
28
- * @param {string|null} dataPath - Key in data to extract (null = full data)
29
22
  */
30
23
  const parseGraphQLResponse = (json, dataPath) => {
31
- if (json.errors?.length) {
32
- const msgs = json.errors.map(e => e.message || 'Unknown error').join(', ')
33
- const code = json.errors[0]?.extensions?.error_code || 400
34
- throw new boom_1.Boom(`GraphQL error: ${msgs}`, { statusCode: code, data: json.errors[0] })
35
- }
36
- const response = dataPath ? json?.data?.[dataPath] : json?.data
37
- if (typeof response === 'undefined') {
38
- throw new boom_1.Boom('Unexpected GraphQL response structure', { statusCode: 400, data: json })
39
- }
40
- return response
24
+ if (json.errors?.length) {
25
+ const msgs = json.errors.map(e => e.message || 'Unknown error').join(', ')
26
+ const code = json.errors[0]?.extensions?.error_code || 400
27
+ throw new Boom(`GraphQL error: ${msgs}`, { statusCode: code, data: json.errors[0] })
28
+ }
29
+ const response = dataPath? json?.data?.[dataPath] : json?.data
30
+ if (response === undefined) {
31
+ throw new Boom('Unexpected GraphQL response structure', { statusCode: 400, data: json })
32
+ }
33
+ return response
41
34
  }
42
35
 
43
36
  /**
44
37
  * Execute a www-schema GraphQL query over HTTPS.
45
- *
46
- * Transport confirmed from APX.java:
47
- * POST https://graph.whatsapp.com/graphql
48
- * Content-Type: application/json
49
- * Body: { access_token, doc_id, variables, lang }
50
- *
51
- * @param {string|number} docId - Numeric doc_id from whatsapp-android-www asset file
52
- * @param {object} variables - Query variables
53
- * @param {string} [accessToken] - ACS access token (obtain via wwwGetNonce + wwwExchangeNonce)
54
- * @param {string|null} [dataPath] - JSON data key to extract from response
55
- * @param {string} [lang='en'] - Language for response
56
- * @param {string} [endpoint] - Override endpoint URL (default: graph.whatsapp.com/graphql)
57
38
  */
58
- const executeWWWGraphQL = async (docId, variables, accessToken, dataPath = null, lang = 'en', endpoint = ENDPOINTS.WWW) => {
59
- const token = accessToken || WWW_DEFAULT_TOKEN
60
- const body = JSON.stringify({ access_token: token, doc_id: String(docId), variables, lang })
61
- const res = await fetch(endpoint, {
62
- method: 'POST',
63
- headers: { 'Content-Type': 'application/json' },
64
- body
65
- })
66
- if (!res.ok) {
67
- throw new boom_1.Boom(`GraphQL HTTP error ${res.status}`, { statusCode: res.status })
68
- }
69
- const json = await res.json()
70
- return parseGraphQLResponse(json, dataPath)
39
+ export const executeWWWGraphQL = async (
40
+ docId,
41
+ variables,
42
+ accessToken,
43
+ dataPath = null,
44
+ lang = 'en',
45
+ endpoint = ENDPOINTS.WWW
46
+ ) => {
47
+ const token = accessToken || WWW_DEFAULT_TOKEN
48
+ const body = JSON.stringify({ access_token: token, doc_id: String(docId), variables, lang })
49
+ const res = await fetch(endpoint, {
50
+ method: 'POST',
51
+ headers: { 'Content-Type': 'application/json' },
52
+ body
53
+ })
54
+ if (!res.ok) {
55
+ throw new Boom(`GraphQL HTTP error ${res.status}`, { statusCode: res.status })
56
+ }
57
+ const json = await res.json()
58
+ return parseGraphQLResponse(json, dataPath)
71
59
  }
72
60
 
73
- exports.executeWWWGraphQL = executeWWWGraphQL
74
-
75
61
  /**
76
62
  * Execute a facebook-schema GraphQL query over HTTPS.
77
- *
78
- * Transport confirmed from WaFaConfigFetcher.java:
79
- * POST https://acs.whatsapp.com/graphql
80
- * Content-Type: application/json
81
- * Body: { access_token, doc_id, variables, lang }
82
- *
83
- * @param {string|number} docId - Numeric doc_id from whatsapp-android-facebook-schema asset file
84
- * @param {object} variables - Query variables
85
- * @param {string} [accessToken] - ACS access token
86
- * @param {string|null} [dataPath] - JSON data key to extract
87
- * @param {string} [lang='en']
88
63
  */
89
- const executeFacebookGraphQL = (docId, variables, accessToken, dataPath = null, lang = 'en') =>
90
- executeWWWGraphQL(docId, variables, accessToken, dataPath, lang, ENDPOINTS.ACS)
91
-
92
- exports.executeFacebookGraphQL = executeFacebookGraphQL
64
+ export const executeFacebookGraphQL = (docId, variables, accessToken, dataPath = null, lang = 'en') =>
65
+ executeWWWGraphQL(docId, variables, accessToken, dataPath, lang, ENDPOINTS.ACS)
93
66
 
94
67
  /**
95
68
  * Execute a wamo-schema GraphQL query over HTTPS.
96
- *
97
- * Transport confirmed from WamoGraphQLExecutor.java:
98
- * POST https://<wamoHost>/api/wamo/graphql/
99
- * Content-Type: application/x-www-form-urlencoded
100
- * Body: access_token=<token>&credential=<cred>&user_id=<uid>&app_id=1015890928915437&doc_id=<id>&variables=<json>
101
- *
102
- * @param {string|number} docId - Numeric doc_id from whatsapp-android-wamo asset file
103
- * @param {object} variables - Query variables
104
- * @param {object} wamoAuth - { accessToken, credential, userId }
105
- * @param {string|null} [dataPath] - JSON data key to extract
106
- * @param {string} [wamoHost='wamo.whatsapp.net'] - Wamo API host (fetched from config at runtime)
107
69
  */
108
- const executeWamoGraphQL = async (docId, variables, wamoAuth = {}, dataPath = null, wamoHost = 'wamo.whatsapp.net') => {
109
- const { accessToken = WWW_DEFAULT_TOKEN, credential = '', userId = '' } = wamoAuth
110
- const params = new URLSearchParams({
111
- access_token: accessToken,
112
- credential,
113
- user_id: String(userId),
114
- app_id: WAMO_APP_ID,
115
- doc_id: String(docId),
116
- variables: JSON.stringify(variables)
117
- })
118
- const url = `https://${wamoHost}${ENDPOINTS.WAMO_PATH}`
119
- const res = await fetch(url, {
120
- method: 'POST',
121
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
122
- body: params.toString()
123
- })
124
- if (!res.ok) {
125
- throw new boom_1.Boom(`Wamo GraphQL HTTP error ${res.status}`, { statusCode: res.status })
126
- }
127
- const json = await res.json()
128
- return parseGraphQLResponse(json, dataPath)
70
+ export const executeWamoGraphQL = async (
71
+ docId,
72
+ variables,
73
+ wamoAuth = {},
74
+ dataPath = null,
75
+ wamoHost = 'wamo.whatsapp.net'
76
+ ) => {
77
+ const { accessToken = WWW_DEFAULT_TOKEN, credential = '', userId = '' } = wamoAuth
78
+ const params = new URLSearchParams({
79
+ access_token: accessToken,
80
+ credential,
81
+ user_id: String(userId),
82
+ app_id: WAMO_APP_ID,
83
+ doc_id: String(docId),
84
+ variables: JSON.stringify(variables)
85
+ })
86
+ const url = `https://${wamoHost}${ENDPOINTS.WAMO_PATH}`
87
+ const res = await fetch(url, {
88
+ method: 'POST',
89
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
90
+ body: params.toString()
91
+ })
92
+ if (!res.ok) {
93
+ throw new Boom(`Wamo GraphQL HTTP error ${res.status}`, { statusCode: res.status })
94
+ }
95
+ const json = await res.json()
96
+ return parseGraphQLResponse(json, dataPath)
129
97
  }
130
98
 
131
- exports.executeWamoGraphQL = executeWamoGraphQL
132
-
133
- // ── Wamo schema IDs (whatsapp-android-wamo_client_persist_ids.json) ──────────
99
+ // ── Wamo schema IDs ──────────
134
100
  const WAMO_GQL_IDS = {
135
- BLOKS_GET_LAYOUT: '35761428053502960', // WamoBloksGetLayoutQuery
136
- CREATE_USER: '26643102025382056', // WamoCreateUserMutation
137
- DELETE_USER: '26847597944871230', // WamoDeleteUserMutation
138
- DYI_JOB_CREATE: '35432158949761170', // WamoDYIJobCreateMutation
139
- DYI_JOB_DELETE: '35418212507825480', // WamoDYIJobDeleteMutation
140
- DYI_JOB_STATUS: '26233222629644330', // WamoDYIJobStatusQuery
141
- HEARTBEAT: '26147852544878404', // WamoHeartbeatMutation
142
- HIDE_PAGE: '26762670266664464', // WamoHidePageMutation
143
- HIDE_PROMO: '26672924455626300', // WamoHidePromoMutation
144
- LINK_USER: '26986545907702584', // WamoLinkUserMutation
145
- REPORT_PROMO: '26170110515981668', // WamoReportPromoMutation
146
- START_VIEWER_SESSION: '25895257976843090', // WamoStartViewerSessionQuery
147
- UNHIDE_PAGE: '26357347627241176', // WamoUnhidePageMutation
148
- UNHIDE_PAGE_V2: '26343585518664600', // WamoUnhidePageV2Mutation
149
- USER_BASIC: '26217108451265492' // WamoUserBasicQuery
101
+ BLOKS_GET_LAYOUT: '35761428053502960',
102
+ CREATE_USER: '26643102025382056',
103
+ DELETE_USER: '26847597944871230',
104
+ DYI_JOB_CREATE: '35432158949761170',
105
+ DYI_JOB_DELETE: '35418212507825480',
106
+ DYI_JOB_STATUS: '26233222629644330',
107
+ HEARTBEAT: '26147852544878404',
108
+ HIDE_PAGE: '26762670266664464',
109
+ HIDE_PROMO: '26672924455626300',
110
+ LINK_USER: '26986545907702584',
111
+ REPORT_PROMO: '26170110515981668',
112
+ START_VIEWER_SESSION: '25895257976843090',
113
+ UNHIDE_PAGE: '26357347627241176',
114
+ UNHIDE_PAGE_V2: '26343585518664600',
115
+ USER_BASIC: '26217108451265492'
150
116
  }
151
117
 
152
- // ── Facebook schema IDs (whatsapp-android-facebook-schema_client_persist_ids.json) ──
118
+ // ── Facebook schema IDs ──
153
119
  const FACEBOOK_GQL_IDS = {
154
- ACDC_CREATE_COMMERCE_NONCE: '24264828513176160', // AcDcCreateDigitalCommerceNonse
155
- BIZ_ALERTS_NOTIFICATION_LIST: '25131061249916280', // BizAlertsNotificationList
156
- BIZ_ALERTS_UPDATE: '31887288120915504', // BizAlertsUpdateMutation
157
- CTWA_ADS_CONTEXT_BIZ: '26795336300063576', // CtwaAdsContextBizQuery
158
- DIGITAL_CONTENT_IAP_PURCHASE_QUOTE: '24407486212227380', // DigitalContentIAPPurchaseQuoteMutation
159
- GET_COMPLIANCE: '25758882000383880', // GetCompliance
160
- GET_CUSTOM_URLS: '24381430531538260', // GetCustomUrlsQuery
161
- GET_DCP_PRODUCTS: '24562080436794784', // GetDcpProductsQuery
162
- SET_COMPLIANCE: '25904531552477560', // SetCompliance
163
- USERNAME_RECOMMENDATIONS: '24622018447392760' // UsernameRecommendationsQuery
120
+ ACDC_CREATE_COMMERCE_NONCE: '24264828513176160',
121
+ BIZ_ALERTS_NOTIFICATION_LIST: '25131061249916280',
122
+ BIZ_ALERTS_UPDATE: '31887288120915504',
123
+ CTWA_ADS_CONTEXT_BIZ: '26795336300063576',
124
+ DIGITAL_CONTENT_IAP_PURCHASE_QUOTE: '24407486212227380',
125
+ GET_COMPLIANCE: '25758882000383880',
126
+ GET_CUSTOM_URLS: '24381430531538260',
127
+ GET_DCP_PRODUCTS: '24562080436794784',
128
+ SET_COMPLIANCE: '25904531552477560',
129
+ USERNAME_RECOMMENDATIONS: '24622018447392760'
164
130
  }
165
131
 
166
- // ── WWW schema IDs (whatsapp-android-www_client_persist_ids.json) ─────────────
132
+ // ── WWW schema IDs ─────────────
167
133
  const WWW_GQL_IDS = {
168
- // Meta AI
169
- AI_IMAGINE_EDIT_VIDEO_STYLES: '27077837108487436',
170
- AI_STUDIO_MEMORY_DELETE_ALL: '30717961127818650',
171
- AI_STUDIO_MEMORY_DELETE: '9705428856224794',
172
- AI_STUDIO_MEMORY_QUERY: '31947510941561276',
173
- AI_CHARACTER_UPDATE_HIDE_STATUS: '9487449704689544',
174
- AI_CREATION_CHECK_CREATED_BY_ME: '25141566425478200',
175
- AI_CREATION_DELETE_PERSONA: '24692252033716044',
176
- AI_CREATION_FETCH_CREATED_BOT: '25201089862855984',
177
- AI_CREATION_FETCH_VOICE_SAMPLE: '25257088623922964',
178
- AI_CREATION_UPDATE_PERSONA: '25011855005109940',
179
- AI_CREATION_UPLOAD_IMAGE: '25003350059353070',
180
- AI_HOME_FETCH_USER_CREATED_PERSONAS: '26593306827004416',
181
- AI_HOME_SEARCH: '27216563884595110',
182
- AI_SUBSCRIPTION_STATE: '36037182252547600',
183
- AI_SUBSCRIPTION_USAGE_DATA: '25534888536186100',
184
- META_AI_MEMORY_DELETE: '24675700195394532',
185
- META_AI_MEMORY_DELETE_ALL: '25139336568989424',
186
- META_AI_MEMORY_QUERY: '24926755306989290',
187
- META_AI_UNIFIED_MEMORY_QUERY: '25207057475554616',
188
- META_AI_VOICE_OPTIONS_FETCH: '25173439348954280',
189
- META_AI_VOICE_OPTIONS_WITH_DEFAULT_FETCH: '32678535865070708',
190
- META_AI_MEMORY_OPT_OUT_STATUS: '32233077506339604',
191
- META_AI_MEMORY_OPT_OUT_UPDATE: '24192448100382070',
192
- META_AI_COMMAND_GET: '26391941983796720',
193
- META_CONFIG_FETCH: '26061411083512356',
194
- META_POI_TYPE_AHEAD: '24998731673114764',
195
- // Imagine / GenAI
196
- IMAGINE_CANVAS_CONTENT: '25210964258554530',
197
- IMAGINE_EDIT: '26387089294279400',
198
- IMAGINE_EDIT_VIDEO: '34646600944984156',
199
- IMAGINE_EXPAND: '27439000172356856',
200
- IMAGINE_GENERATE_ANIMATE: '26556281783984270',
201
- IMAGINE_INTENTS: '27226922903577250',
202
- IMAGINE_ME_DELETE_ONBOARDING: '25412186125078290',
203
- IMAGINE_ME_IS_ONBOARDED: '25177591448557896',
204
- IMAGINE_ME_ONBOARDING: '33085607387721668',
205
- IMAGINE_ME_ONBOARDING_WITH_VALIDATION: '33430299463235084',
206
- IMAGINE_REPORT: '26056343243953412',
207
- IMAGINE_SPOTLIGHT: '24814269768178584',
208
- IMAGINE_VIDEO_STATUS: '34577682511875320',
209
- IMMERSIVE_CREATION_COMPLETE: '25751460157775136',
210
- IMMERSIVE_CREATION_CONFIG: '32047877418194044',
211
- GEN_AI_IMAGINE_3P_FOR_INTENTS: '26873302172253410',
212
- // Avatar
213
- AVATAR_USER_RECOVERY: '24876192928715390',
214
- LOAD_AVATAR_POSES: '25262916630008930',
215
- SAVE_AVATAR_POSE: '24194307116878704',
216
- SELECTED_OR_DEFAULT_POSE: '24956844700642720',
217
- // Events
218
- ADD_EVENT_INVITATIONS: '26095825686706664',
219
- CREATE_EVENT: '27259582783645464',
220
- DELETE_EVENT: '24671535952543812',
221
- GET_EVENT: '26814174831581200',
222
- GET_EVENT_LINK_PREVIEW: '26580394538296892',
223
- GET_OR_CREATE_EVENT_INVITE_LINK: '26392982740362904',
224
- LIST_EVENTS: '35283909937920624',
225
- LIST_PRESET_COVER_IMAGES: '34976018872012652',
226
- REMOVE_EVENT_INVITATIONS: '27723734560563308',
227
- REMOVE_SELF_EVENT_INVITATION: '27063717026648636',
228
- ROTATE_EVENT_INVITE_LINK: '27134834146102810',
229
- UPDATE_EVENT: '35415093074772810',
230
- UPDATE_EVENT_RSVP: '25954023907630800',
231
- // Payments (Brazil PIX)
232
- BR_AUTHORIZE_BIOMETRIC_PAYMENT: '26860182267017040',
233
- BR_COMPLETE_ENROLLMENT_REGISTRATION: '34346544594993864',
234
- BR_GET_AUTH_OPTIONS: '26954282557514064',
235
- BR_SAVE_CPF: '25491798377107610',
236
- COMPLETE_PIX_TRANSACTION: '25561969973442564',
237
- CREATE_ENROLLMENT: '34570903025891764',
238
- GEN_CREATE_PAYMENT_KEY: '24662763616751130',
239
- GEN_DELETE_PAYMENT_KEY: '25206218195637620',
240
- GEN_SHARE_REMITTANCE_TRANSACTION_INTENT: '27219114284360650',
241
- GEN_UPDATE_PAYMENT_KEY: '31853210500991230',
242
- GET_BILL_COMPLAINT_URL: '33320245170908124',
243
- GET_BILL_RECEIPT: '24825217813815704',
244
- GET_BILLER_PLANS: '27309428811987468',
245
- GET_ELIGIBILITY: '26212557348384404',
246
- GET_ENROLLMENT_REGISTRATION_OPTIONS: '26215100541486172',
247
- GET_MERCHANT_PIX_INFO: '32899184613062020',
248
- GET_PAYMENT_KEY: '32245076985140016',
249
- GET_PIX_BANK_LIST: '23883352801362930',
250
- GET_REMITTANCE_TRANSACTION_DETAILS: '27062965096645132',
251
- PAYMENT_HEALTH_CHECKS: '26301245572841100',
252
- PAYMENT_REMINDER_CANCEL: '24755605054137416',
253
- PAYMENT_REMINDER_CREATE: '26322317040760200',
254
- PAYMENT_REMINDER_GET: '26644104721946830',
255
- PAYMENT_REMINDER_STOP: '26813099368301640',
256
- PAY_WITH_PIX_PRECHECK: '25489011890740690',
257
- SAVE_REMITTANCE_PAYMENT_MESSAGE_ID: '26662893096684910',
258
- SAVE_SENDER_PAYMENT_MESSAGE_PREFERENCE: '35084492951197548',
259
- // Payments (UPI India)
260
- GET_UPI_ACCOUNTS: '25691302307224710',
261
- GET_UPI_LITE_DETAILS: '25808397275476136',
262
- GET_UPI_PURPOSE_LIMITING_KEY: '25956012240759790',
263
- GET_UPI_TOKEN: '25639185495767704',
264
- UPI_ACCEPT_MANDATE: '26786867597629452',
265
- UPI_CREATE_MANDATE: '26775212245448044',
266
- UPI_EXECUTE_MANDATE: '26461549356828410',
267
- UPI_PAUSE_MANDATE: '27067583129520630',
268
- UPI_REJECT_MANDATE: '26669988755996836',
269
- UPI_RESUME_MANDATE: '26691956223780310',
270
- UPI_REVOKE_MANDATE: '25917438317930590',
271
- ENROLL_AND_GET_INCENTIVE_REFERRAL_ID: '26794756530116496',
272
- // Payments (PMTA)
273
- PMTA_GET_AI_CONTROLS: '35629699809954692',
274
- PMTA_SET_AI_CONTROLS: '35241761128770990',
275
- // Wamo (commerce, via www schema)
276
- WAMO_AFS_SUBSCRIPTION_INFO: '26173991525527520',
277
- WAMO_PROMO_ID_DELETE: '35985621974354824',
278
- WAMO_PROMO_ID_QUERY: '35176707691976468',
279
- WAMO_PROMO_ID_SET: '27944525051814324',
280
- WAMO_SUB_CANCEL_SUBSCRIPTION: '24229142763394572',
281
- WAMO_SUB_OVERRIDE_STATUS: '24524888373876350',
282
- WAMO_SUB_QUERY_STATUS: '25015488928115160',
283
- // Business / Catalog
284
- BRAND_IDS_GET_PHONE_NUMBERS: '33159498536982770',
285
- BUSINESS_INTERACTION_PILLS: '26641674408836110',
286
- GET_BUSINESS_PROFILE_WEBSITE_SHIM_URL: '32216187747994820',
287
- WA_WEB_BIZ_CREATE_ORDER_JOB: '26504097415860764',
288
- WA_WEB_BIZ_GRAPHQL_REFRESH_CART: '25888664220811280',
289
- WA_WEB_BIZ_QUERY_ORDER_JOB: '26400495852915744',
290
- WHATSAPP_CATALOG_REPORT_PRODUCT: '31943750621890740',
291
- EXTERNAL_CTX_AUTHORISE_WA_CHAT: '31162432756736010',
292
- // User / account
293
- FACEBOOK_ACCOUNT_NAME: '25250471057951830',
294
- INSTAGRAM_ACCOUNT_NAME: '25214758521544980',
295
- GET_SIGNUP_METADATA: '26051411631187570',
296
- GET_SUBSCRIPTIONS_AND_FEATURE_FLAGS: '26245030708467560',
297
- REGISTER_ALL_ACCOUNTS: '33722449810701640',
298
- REGISTER_INIT: '25224082377250600',
299
- CHECK_DEVICE_REGISTRATION: '27544422375150964',
300
- CANONICAL_ENT_QUERY_FEATURE: '24676915942008136',
301
- CANONICAL_ENT_SETUP_FEATURE: '24192659730425376',
302
- CANONICAL_ENT_TEARDOWN_FEATURE: '30858669277110520',
303
- WWW_CANONICAL_USER_VALID: '25129145013440740',
304
- WAFFLE_USER_AGE_CHECK: '26764575806469450',
305
- // Support / misc
306
- BOT_PROACTIVE_MSG_CONTROL_STATUS: '24651002484600324',
307
- BOT_PROACTIVE_MSG_CONTROL_UPDATE: '24122315620764244',
308
- BOT_PROFILES_SYNC: '25828046330205656',
309
- CREATE_DOGFOODING_TASK: '26434237576236230',
310
- CREATE_GROUP_SUSPENSION_APPEAL: '25646047815072530',
311
- DELETE_USER_BILL_ACCOUNT: '24937622855831030',
312
- EDIT_GEN_AI_TASK: '24357066917314970',
313
- DELETE_GEN_AI_TASKS: '24358846127109424',
314
- GET_SUBSCRIBED_TASKS_FOR_THREAD: '25301053199520772',
315
- HATCH_CHANNEL_LINK: '27380458404880336',
316
- HATCH_CHANNEL_METADATA: '36296584079940370',
317
- LOG_SERVER_SENT_INVITE_INTENT: '26580640204871220',
318
- OXYGEN_CHANNEL_OPT_IN: '32987565744221084',
319
- OXYGEN_CHANNEL_OPT_OUT: '25230178203329240',
320
- OXYGEN_CHANNEL_STATUS: '25600766796255944',
321
- PASL_GET_LOGGER_CONFIG: '25514254748263110',
322
- QUICK_PROMOTION_BATCH_FETCH: '27370264315996308',
323
- SUBMIT_BUG_REPORT: '25907249708909480',
324
- SUPPORT_CONTACT_FORM: '25272895205718040',
325
- UNIFIED_CONVERSATION_STARTERS: '34344055808526010',
326
- WA_GIZMO_POST_METADATA: '26390610653941050',
327
- WA_QUICK_PROMOTION_LOG: '24712276558462964',
328
- WA_SUPPORT_MESSAGE_FEEDBACK: '25850332711237184',
329
- GET_AI_PREDICTED_AGE: '34158896507030940',
330
- FETCH_META_AI_MODES: '26061411083512356'
134
+ // Meta AI
135
+ AI_IMAGINE_EDIT_VIDEO_STYLES: '27077837108487436',
136
+ AI_STUDIO_MEMORY_DELETE_ALL: '30717961127818650',
137
+ AI_STUDIO_MEMORY_DELETE: '9705428856224794',
138
+ AI_STUDIO_MEMORY_QUERY: '31947510941561276',
139
+ AI_CHARACTER_UPDATE_HIDE_STATUS: '9487449704689544',
140
+ AI_CREATION_CHECK_CREATED_BY_ME: '25141566425478200',
141
+ AI_CREATION_DELETE_PERSONA: '24692252033716044',
142
+ AI_CREATION_FETCH_CREATED_BOT: '25201089862855984',
143
+ AI_CREATION_FETCH_VOICE_SAMPLE: '25257088623922964',
144
+ AI_CREATION_UPDATE_PERSONA: '25011855005109940',
145
+ AI_CREATION_UPLOAD_IMAGE: '25003350059353070',
146
+ AI_HOME_FETCH_USER_CREATED_PERSONAS: '26593306827004416',
147
+ AI_HOME_SEARCH: '27216563884595110',
148
+ AI_SUBSCRIPTION_STATE: '36037182252547600',
149
+ AI_SUBSCRIPTION_USAGE_DATA: '25534888536186100',
150
+ META_AI_MEMORY_DELETE: '24675700195394532',
151
+ META_AI_MEMORY_DELETE_ALL: '25139336568989424',
152
+ META_AI_MEMORY_QUERY: '24926755306989290',
153
+ META_AI_UNIFIED_MEMORY_QUERY: '25207057475554616',
154
+ META_AI_VOICE_OPTIONS_FETCH: '25173439348954280',
155
+ META_AI_VOICE_OPTIONS_WITH_DEFAULT_FETCH: '32678535865070708',
156
+ META_AI_MEMORY_OPT_OUT_STATUS: '32233077506339604',
157
+ META_AI_MEMORY_OPT_OUT_UPDATE: '24192448100382070',
158
+ META_AI_COMMAND_GET: '26391941983796720',
159
+ META_CONFIG_FETCH: '26061411083512356',
160
+ META_POI_TYPE_AHEAD: '24998731673114764',
161
+ // Imagine / GenAI
162
+ IMAGINE_CANVAS_CONTENT: '25210964258554530',
163
+ IMAGINE_EDIT: '26387089294279400',
164
+ IMAGINE_EDIT_VIDEO: '34646600944984156',
165
+ IMAGINE_EXPAND: '27439000172356856',
166
+ IMAGINE_GENERATE_ANIMATE: '26556281783984270',
167
+ IMAGINE_INTENTS: '27226922903577250',
168
+ IMAGINE_ME_DELETE_ONBOARDING: '25412186125078290',
169
+ IMAGINE_ME_IS_ONBOARDED: '25177591448557896',
170
+ IMAGINE_ME_ONBOARDING: '33085607387721668',
171
+ IMAGINE_ME_ONBOARDING_WITH_VALIDATION: '33430299463235084',
172
+ IMAGINE_REPORT: '26056343243953412',
173
+ IMAGINE_SPOTLIGHT: '24814269768178584',
174
+ IMAGINE_VIDEO_STATUS: '34577682511875320',
175
+ IMMERSIVE_CREATION_COMPLETE: '25751460157775136',
176
+ IMMERSIVE_CREATION_CONFIG: '32047877418194044',
177
+ GEN_AI_IMAGINE_3P_FOR_INTENTS: '26873302172253410',
178
+ // Avatar
179
+ AVATAR_USER_RECOVERY: '24876192928715390',
180
+ LOAD_AVATAR_POSES: '25262916630008930',
181
+ SAVE_AVATAR_POSE: '24194307116878704',
182
+ SELECTED_OR_DEFAULT_POSE: '24956844700642720',
183
+ // Events
184
+ ADD_EVENT_INVITATIONS: '26095825686706664',
185
+ CREATE_EVENT: '27259582783645464',
186
+ DELETE_EVENT: '24671535952543812',
187
+ GET_EVENT: '26814174831581200',
188
+ GET_EVENT_LINK_PREVIEW: '26580394538296892',
189
+ GET_OR_CREATE_EVENT_INVITE_LINK: '26392982740362904',
190
+ LIST_EVENTS: '35283909937920624',
191
+ LIST_PRESET_COVER_IMAGES: '34976018872012652',
192
+ REMOVE_EVENT_INVITATIONS: '27723734560563308',
193
+ REMOVE_SELF_EVENT_INVITATION: '27063717026648636',
194
+ ROTATE_EVENT_INVITE_LINK: '27134834146102810',
195
+ UPDATE_EVENT: '35415093074772810',
196
+ UPDATE_EVENT_RSVP: '25954023907630800',
197
+ // Payments (Brazil PIX)
198
+ BR_AUTHORIZE_BIOMETRIC_PAYMENT: '26860182267017040',
199
+ BR_COMPLETE_ENROLLMENT_REGISTRATION: '34346544594993864',
200
+ BR_GET_AUTH_OPTIONS: '26954282557514064',
201
+ BR_SAVE_CPF: '25491798377107610',
202
+ COMPLETE_PIX_TRANSACTION: '25561969973442564',
203
+ CREATE_ENROLLMENT: '34570903025891764',
204
+ GEN_CREATE_PAYMENT_KEY: '24662763616751130',
205
+ GEN_DELETE_PAYMENT_KEY: '25206218195637620',
206
+ GEN_SHARE_REMITTANCE_TRANSACTION_INTENT: '27219114284360650',
207
+ GEN_UPDATE_PAYMENT_KEY: '31853210500991230',
208
+ GET_BILL_COMPLAINT_URL: '33320245170908124',
209
+ GET_BILL_RECEIPT: '24825217813815704',
210
+ GET_BILLER_PLANS: '27309428811987468',
211
+ GET_ELIGIBILITY: '26212557348384404',
212
+ GET_ENROLLMENT_REGISTRATION_OPTIONS: '26215100541486172',
213
+ GET_MERCHANT_PIX_INFO: '32899184613062020',
214
+ GET_PAYMENT_KEY: '32245076985140016',
215
+ GET_PIX_BANK_LIST: '23883352801362930',
216
+ GET_REMITTANCE_TRANSACTION_DETAILS: '27062965096645132',
217
+ PAYMENT_HEALTH_CHECKS: '26301245572841100',
218
+ PAYMENT_REMINDER_CANCEL: '24755605054137416',
219
+ PAYMENT_REMINDER_CREATE: '26322317040760200',
220
+ PAYMENT_REMINDER_GET: '26644104721946830',
221
+ PAYMENT_REMINDER_STOP: '26813099368301640',
222
+ PAY_WITH_PIX_PRECHECK: '25489011890740690',
223
+ SAVE_REMITTANCE_PAYMENT_MESSAGE_ID: '26662893096684910',
224
+ SAVE_SENDER_PAYMENT_MESSAGE_PREFERENCE: '35084492951197548',
225
+ // Payments (UPI India)
226
+ GET_UPI_ACCOUNTS: '25691302307224710',
227
+ GET_UPI_LITE_DETAILS: '25808397275476136',
228
+ GET_UPI_PURPOSE_LIMITING_KEY: '25956012240759790',
229
+ GET_UPI_TOKEN: '25639185495767704',
230
+ UPI_ACCEPT_MANDATE: '26786867597629452',
231
+ UPI_CREATE_MANDATE: '26775212245448044',
232
+ UPI_EXECUTE_MANDATE: '26461549356828410',
233
+ UPI_PAUSE_MANDATE: '27067583129520630',
234
+ UPI_REJECT_MANDATE: '26669988755996836',
235
+ UPI_RESUME_MANDATE: '26691956223780310',
236
+ UPI_REVOKE_MANDATE: '25917438317930590',
237
+ ENROLL_AND_GET_INCENTIVE_REFERRAL_ID: '26794756530116496',
238
+ // Payments (PMTA)
239
+ PMTA_GET_AI_CONTROLS: '35629699809954692',
240
+ PMTA_SET_AI_CONTROLS: '35241761128770990',
241
+ // Wamo (commerce, via www schema)
242
+ WAMO_AFS_SUBSCRIPTION_INFO: '26173991525527520',
243
+ WAMO_PROMO_ID_DELETE: '35985621974354824',
244
+ WAMO_PROMO_ID_QUERY: '35176707691976468',
245
+ WAMO_PROMO_ID_SET: '27944525051814324',
246
+ WAMO_SUB_CANCEL_SUBSCRIPTION: '24229142763394572',
247
+ WAMO_SUB_OVERRIDE_STATUS: '24524888373876350',
248
+ WAMO_SUB_QUERY_STATUS: '25015488928115160',
249
+ // Business / Catalog
250
+ BRAND_IDS_GET_PHONE_NUMBERS: '33159498536982770',
251
+ BUSINESS_INTERACTION_PILLS: '26641674408836110',
252
+ GET_BUSINESS_PROFILE_WEBSITE_SHIM_URL: '32216187747994820',
253
+ WA_WEB_BIZ_CREATE_ORDER_JOB: '26504097415860764',
254
+ WA_WEB_BIZ_GRAPHQL_REFRESH_CART: '25888664220811280',
255
+ WA_WEB_BIZ_QUERY_ORDER_JOB: '26400495852915744',
256
+ WHATSAPP_CATALOG_REPORT_PRODUCT: '31943750621890740',
257
+ EXTERNAL_CTX_AUTHORISE_WA_CHAT: '31162432756736010',
258
+ // User / account
259
+ FACEBOOK_ACCOUNT_NAME: '25250471057951830',
260
+ INSTAGRAM_ACCOUNT_NAME: '25214758521544980',
261
+ GET_SIGNUP_METADATA: '26051411631187570',
262
+ GET_SUBSCRIPTIONS_AND_FEATURE_FLAGS: '26245030708467560',
263
+ REGISTER_ALL_ACCOUNTS: '33722449810701640',
264
+ REGISTER_INIT: '25224082377250600',
265
+ CHECK_DEVICE_REGISTRATION: '27544422375150964',
266
+ CANONICAL_ENT_QUERY_FEATURE: '24676915942008136',
267
+ CANONICAL_ENT_SETUP_FEATURE: '24192659730425376',
268
+ CANONICAL_ENT_TEARDOWN_FEATURE: '30858669277110520',
269
+ WWW_CANONICAL_USER_VALID: '25129145013440740',
270
+ WAFFLE_USER_AGE_CHECK: '26764575806469450',
271
+ // Support / misc
272
+ BOT_PROACTIVE_MSG_CONTROL_STATUS: '24651002484600324',
273
+ BOT_PROACTIVE_MSG_CONTROL_UPDATE: '24122315620764244',
274
+ BOT_PROFILES_SYNC: '25828046330205656',
275
+ CREATE_DOGFOODING_TASK: '26434237576236230',
276
+ CREATE_GROUP_SUSPENSION_APPEAL: '25646047815072530',
277
+ DELETE_USER_BILL_ACCOUNT: '24937622855831030',
278
+ EDIT_GEN_AI_TASK: '24357066917314970',
279
+ DELETE_GEN_AI_TASKS: '24358846127109424',
280
+ GET_SUBSCRIBED_TASKS_FOR_THREAD: '25301053199520772',
281
+ HATCH_CHANNEL_LINK: '27380458404880336',
282
+ HATCH_CHANNEL_METADATA: '36296584079940370',
283
+ LOG_SERVER_SENT_INVITE_INTENT: '26580640204871220',
284
+ OXYGEN_CHANNEL_OPT_IN: '32987565744221084',
285
+ OXYGEN_CHANNEL_OPT_OUT: '25230178203329240',
286
+ OXYGEN_CHANNEL_STATUS: '25600766796255944',
287
+ PASL_GET_LOGGER_CONFIG: '25514254748263110',
288
+ QUICK_PROMOTION_BATCH_FETCH: '27370264315996308',
289
+ SUBMIT_BUG_REPORT: '25907249708909480',
290
+ SUPPORT_CONTACT_FORM: '25272895205718040',
291
+ UNIFIED_CONVERSATION_STARTERS: '34344055808526010',
292
+ WA_GIZMO_POST_METADATA: '26390610653941050',
293
+ WA_QUICK_PROMOTION_LOG: '24712276558462964',
294
+ WA_SUPPORT_MESSAGE_FEEDBACK: '25850332711237184',
295
+ GET_AI_PREDICTED_AGE: '34158896507030940',
296
+ FETCH_META_AI_MODES: '26061411083512356'
331
297
  }
332
298
 
333
- // ── client-persist IDs (whatsapp-android_client-persist.json) ─────────────────
299
+ // ── client-persist IDs ─────────────────
334
300
  const CLIENT_PERSIST_GQL_IDS = {
335
- ADD_MEMU_PROFILE_PHOTOS: '24668200096214476',
336
- CREATE_MEMU_PROFILE: '26069800429275530',
337
- DROP_IN_IMAGINE_GENERATE: '34481380128115810',
338
- FB_MEMU_PERMISSION_QUERY: '26457099770583124',
339
- FETCH_META_AI_MODES: '24685093691140660',
340
- GEN_AI_EDIT_ANIMATE: '26618842254369468',
341
- GEN_AI_EDIT_BACKDROP_SUGGESTIONS: '6884142735042929',
342
- GEN_AI_EDIT_IMAGE_BACKDROP: '24768153272860376',
343
- GEN_AI_EDIT_SUGGESTIONS: '27713400524973656',
344
- GEN_AI_EDIT_UPLOAD_AUTHENTIC_IMAGE: '8289643261132632',
345
- GEN_AI_IMAGINE_BULK_SEND_MEDIA_TO_CHAT: '9621096711262312',
346
- GEN_AI_IMAGINE_CANVAS_API: '26120441040992056',
347
- GEN_AI_IMAGINE_DOWNLOAD_MEDIA: '34879204598389744',
348
- GEN_AI_IMAGINE_EDIT: '26723939223901400',
349
- GEN_AI_IMAGINE_GENERATE_FLASH: '25517143427978588',
350
- GEN_AI_IMAGINE_GENERATE_FROM_IMAGE: '26234794616158744',
351
- GEN_AI_IMAGINE_GENERATE: '25754106557586292',
352
- GEN_AI_IMAGINE_GENERATE_STREAMING: '26021242964174344',
353
- GEN_AI_IMAGINE_HAS_MEMU_PROFILE: '25660710533526260',
354
- GEN_AI_IMAGINE_INSPIRATION_CANVAS_API: '26630710513263730',
355
- GEN_AI_IMAGINE_PROMPT_SUMMARIZATION: '8356011394456431',
356
- GEN_AI_IMAGINE_REGENERATE: '25723954363936656',
357
- GEN_AI_IMAGINE_RESTYLE_SECTIONS: '30782654914682896',
358
- GEN_AI_IMAGINE_SEND_MEDIA_TO_CHAT: '9040988989304072',
359
- GEN_AI_IMAGINE_SUGGESTIONS: '26477038211947360',
360
- GEN_AI_IMAGINE_UPDATE_MEMU_PROFILE_PERMISSION: '24987386417587030',
361
- GEN_AI_MEMU_UPDATE_VOICE: '25208555012114170',
362
- GEN_AI_SOCIAL_ENTITY_DETAILS: '27413840814867420',
363
- GEN_AI_VERIFY_MEMU_PHOTOS: '30310486848564932',
364
- GET_MEMU_STICKER_BY_ID: '8894972063896486',
365
- MAI_UNIFIED_USER: '24664034623258600',
366
- MAI_UNIFIED_USER_QUERY: '24774891068876300',
367
- MAI_UNIFIED_USER_RESET: '26233658572900960',
368
- MEMU_PREVIEW_PHOTO: '7416457868478773',
369
- MEMU_PROFILE_QUERY: '25494748856799176',
370
- MEMU_UPDATE_PROFILE: '8634007059959370',
371
- META_AI_FEEDBACK: '24461110943539464',
372
- META_AI_INTENT_CARD_NUX_ELIGIBILITY_RESET: '7906012969525854',
373
- META_AI_INTENT_CARD_NUX_IMPRESSION: '29146653178312916',
374
- META_AI_INTENT_CARD_NUX_IMPRESSION_QUERY: '7397847270321576',
375
- META_AI_MODES_QUERY: '9990098797780674',
376
- META_AI_RICH_PLACE_DETAILS: '26652957641066240',
377
- META_AI_SIDE_BY_SIDE_SURVEY_RESPONSE: '23972248465795460',
378
- META_AI_STOP_GENERATION: '25449755391321784',
379
- META_AI_BIZ_AGENT_VOICE_ATTACHMENTS: '32359943033604852',
380
- META_AI_CUSTOMIZATION_GEN_AI_SET_MODE: '31825632867051630',
381
- SIMPLE_ECHO: '8800911093353750',
382
- UPDATE_MEMU_SELFIE: '26374541155506570'
383
- }
384
-
385
- const makeGraphQLSocket = sock => {
386
- let _accessToken = null
387
- let _tokenPromise = null
388
- let _wamoAuth = {}
389
- let _wamoHost = 'wamo.whatsapp.net'
390
-
391
- const setAccessToken = token => {
392
- _accessToken = token
393
- _tokenPromise = null
394
- }
395
-
396
- const setWamoAuth = (auth, host = null) => {
397
- _wamoAuth = auth
398
- if (host) _wamoHost = host
399
- }
400
-
401
- /**
402
- * Ensure a valid ACS access token is available.
403
- * On first call (or after invalidation), runs the MEX nonce flow:
404
- * wwwGetNonce() → wwwExchangeNonce(nonce) → caches the resulting token.
405
- * Subsequent calls return the cached token immediately.
406
- * Concurrent callers share a single in-flight request.
407
- */
408
- const acquireAccessToken = () => {
409
- if (_accessToken) return Promise.resolve(_accessToken)
410
- if (_tokenPromise) return _tokenPromise
411
- _tokenPromise = (async () => {
412
- const nonceData = await sock.wwwGetNonce()
413
- const nonce = nonceData?.nonce ?? nonceData
414
- const tokenData = await sock.wwwExchangeNonce(nonce)
415
- const token = tokenData?.access_token ?? tokenData
416
- _accessToken = token
417
- _tokenPromise = null
418
- return token
419
- })()
420
- return _tokenPromise
421
- }
422
-
423
- const www = async (docId, variables, dataPath = null) => {
424
- const token = await acquireAccessToken()
425
- return executeWWWGraphQL(docId, variables, token, dataPath)
426
- }
427
-
428
- const fb = async (docId, variables, dataPath = null) => {
429
- const token = await acquireAccessToken()
430
- return executeFacebookGraphQL(docId, variables, token, dataPath)
431
- }
432
-
433
- const wamo = (docId, variables, dataPath = null) =>
434
- executeWamoGraphQL(docId, variables, _wamoAuth, dataPath, _wamoHost)
435
-
436
- return {
437
- ...sock,
438
-
439
- // ── Token management ──────────────────────────────────────────────────
440
- setAccessToken,
441
- setWamoAuth,
442
- acquireAccessToken,
443
-
444
- // ── Raw GraphQL executors ─────────────────────────────────────────────
445
- executeWWWGraphQL,
446
- executeFacebookGraphQL,
447
- executeWamoGraphQL,
448
-
449
- // ── Meta AI ───────────────────────────────────────────────────────────
450
- aiStudioMemoryQuery: () => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_QUERY, {}, 'xwa2_ai_studio_wa_memory_query'),
451
- aiStudioMemoryDelete: id => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE, { id }, 'xwa2_ai_studio_wa_memory_delete'),
452
- aiStudioMemoryDeleteAll: () => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE_ALL, {}, 'xwa2_ai_studio_wa_memory_delete_all'),
453
- metaAiMemoryQuery: () => www(WWW_GQL_IDS.META_AI_MEMORY_QUERY, {}, 'xwa2_meta_ai_memory'),
454
- metaAiUnifiedMemoryQuery: () => www(WWW_GQL_IDS.META_AI_UNIFIED_MEMORY_QUERY, {}, 'xwa2_meta_ai_unified_memory'),
455
- metaAiMemoryDelete: id => www(WWW_GQL_IDS.META_AI_MEMORY_DELETE, { id }, 'xwa2_meta_ai_memory_delete'),
456
- metaAiMemoryDeleteAll: () => www(WWW_GQL_IDS.META_AI_MEMORY_DELETE_ALL, {}, 'xwa2_meta_ai_memory_delete_all'),
457
- metaAiMemoryOptOutStatus: () => www(WWW_GQL_IDS.META_AI_MEMORY_OPT_OUT_STATUS, {}, 'xwa2_meta_ai_wa_memory_opt_out_status'),
458
- metaAiMemoryOptOutUpdate: optOut => www(WWW_GQL_IDS.META_AI_MEMORY_OPT_OUT_UPDATE, { opt_out: optOut }, 'xwa2_meta_ai_wa_memory_opt_out_update'),
459
- metaAiCommandGet: (chatJid, command) => www(WWW_GQL_IDS.META_AI_COMMAND_GET, { chat_jid: chatJid, command }, 'xwa2_meta_ai_command_get'),
460
- metaAiVoiceOptionsFetch: () => www(WWW_GQL_IDS.META_AI_VOICE_OPTIONS_FETCH, {}, 'xwa2_meta_ai_voice_wa_options_fetch'),
461
- metaAiVoiceOptionsWithDefaultFetch: () => www(WWW_GQL_IDS.META_AI_VOICE_OPTIONS_WITH_DEFAULT_FETCH, {}, 'xwa2_meta_ai_voice_wa_options_with_default_fetch'),
462
- aiSubscriptionState: () => www(WWW_GQL_IDS.AI_SUBSCRIPTION_STATE, {}, 'xwa2_ai_subscription_state'),
463
- aiSubscriptionUsageData: () => www(WWW_GQL_IDS.AI_SUBSCRIPTION_USAGE_DATA, {}, 'xwa2_ai_subscription_usage_data'),
464
-
465
- // ── Imagine / GenAI (www) ─────────────────────────────────────────────
466
- imagineEdit: (imageId, prompt) => www(WWW_GQL_IDS.IMAGINE_EDIT, { image_id: imageId, prompt }, 'xwa2_imagine_edit'),
467
- imagineEditVideo: (videoId, styleId) => www(WWW_GQL_IDS.IMAGINE_EDIT_VIDEO, { video_id: videoId, style_id: styleId }, 'xwa2_imagine_edit_video'),
468
- imagineExpand: (imageId, direction) => www(WWW_GQL_IDS.IMAGINE_EXPAND, { image_id: imageId, direction }, 'xwa2_imagine_expand'),
469
- imagineGenerateAnimate: (imageId, options = {}) => www(WWW_GQL_IDS.IMAGINE_GENERATE_ANIMATE, { image_id: imageId, ...options }, 'xwa2_imagine_generate_animate'),
470
- imagineIntents: prompt => www(WWW_GQL_IDS.IMAGINE_INTENTS, { prompt }, 'xwa2_imagine_intents'),
471
- imagineCanvasContent: canvasId => www(WWW_GQL_IDS.IMAGINE_CANVAS_CONTENT, { canvas_id: canvasId }, 'xwa2_imagine_canvas_content'),
472
- imagineSpotlight: (prompt, options = {}) => www(WWW_GQL_IDS.IMAGINE_SPOTLIGHT, { prompt, ...options }, 'xwa2_imagine_spotlight'),
473
- imagineVideoStatus: jobId => www(WWW_GQL_IDS.IMAGINE_VIDEO_STATUS, { job_id: jobId }, 'xwa2_imagine_video_status'),
474
- imagineReport: (imageId, reason) => www(WWW_GQL_IDS.IMAGINE_REPORT, { image_id: imageId, reason }, 'xwa2_imagine_report'),
475
- imagineMeIsOnboarded: () => www(WWW_GQL_IDS.IMAGINE_ME_IS_ONBOARDED, {}, 'xwa2_imagine_me_is_onboarded'),
476
- imagineMeOnboarding: input => www(WWW_GQL_IDS.IMAGINE_ME_ONBOARDING, { input }, 'xwa2_imagine_me_onboarding'),
477
- imagineMeOnboardingWithValidation: input => www(WWW_GQL_IDS.IMAGINE_ME_ONBOARDING_WITH_VALIDATION, { input }, 'xwa2_imagine_me_onboarding_with_validation'),
478
- imagineMeDeleteOnboarding: () => www(WWW_GQL_IDS.IMAGINE_ME_DELETE_ONBOARDING, {}, 'xwa2_imagine_me_delete_onboarding'),
479
- imagineEditVideoStyles: () => www(WWW_GQL_IDS.AI_IMAGINE_EDIT_VIDEO_STYLES, {}, 'xwa2_ai_imagine_edit_video_styles'),
480
-
481
- // ── AI Creation (bot personas) ─────────────────────────────────────────
482
- aiCreationFetchCreatedBot: botId => www(WWW_GQL_IDS.AI_CREATION_FETCH_CREATED_BOT, { bot_id: botId }, 'xwa2_ai_creation_fetch_created_bot'),
483
- aiCreationUpdatePersona: (botId, updates) => www(WWW_GQL_IDS.AI_CREATION_UPDATE_PERSONA, { bot_id: botId, ...updates }, 'xwa2_ai_creation_update_persona'),
484
- aiCreationDeletePersona: botId => www(WWW_GQL_IDS.AI_CREATION_DELETE_PERSONA, { bot_id: botId }, 'xwa2_ai_creation_delete_persona'),
485
- aiCreationUploadImage: imageData => www(WWW_GQL_IDS.AI_CREATION_UPLOAD_IMAGE, { image_data: imageData }, 'xwa2_ai_creation_upload_image'),
486
- aiCreationCheckCreatedByMe: botId => www(WWW_GQL_IDS.AI_CREATION_CHECK_CREATED_BY_ME, { bot_id: botId }, 'xwa2_ai_creation_check_created_by_me'),
487
- aiCreationFetchVoiceSample: voiceId => www(WWW_GQL_IDS.AI_CREATION_FETCH_VOICE_SAMPLE, { voice_id: voiceId }, 'xwa2_ai_creation_fetch_voice_sample'),
488
- aiHomeFetchUserCreatedPersonas: () => www(WWW_GQL_IDS.AI_HOME_FETCH_USER_CREATED_PERSONAS, {}, 'xwa2_ai_home_fetch_user_created_personas'),
489
- aiHomeSearch: query => www(WWW_GQL_IDS.AI_HOME_SEARCH, { query }, 'xwa2_ai_home_search'),
490
- aiCharacterUpdateHideStatus: (botId, hidden) => www(WWW_GQL_IDS.AI_CHARACTER_UPDATE_HIDE_STATUS, { bot_id: botId, hidden }, 'xwa2_ai_character_update_hide_status'),
491
- botProactiveMessageControlStatus: botId => www(WWW_GQL_IDS.BOT_PROACTIVE_MSG_CONTROL_STATUS, { bot_id: botId }, 'xwa2_bot_proactive_message_control_status'),
492
- botProactiveMessageControlUpdate: (botId, enabled) => www(WWW_GQL_IDS.BOT_PROACTIVE_MSG_CONTROL_UPDATE, { bot_id: botId, enabled }, 'xwa2_bot_proactive_message_control_update'),
493
- botProfilesSync: () => www(WWW_GQL_IDS.BOT_PROFILES_SYNC, {}, 'xwa2_bot_profiles_sync'),
494
-
495
- // ── Avatar ────────────────────────────────────────────────────────────
496
- avatarUserRecovery: () => www(WWW_GQL_IDS.AVATAR_USER_RECOVERY, {}, 'xwa2_avatar_user_recovery'),
497
- loadAvatarPoses: () => www(WWW_GQL_IDS.LOAD_AVATAR_POSES, {}, 'xwa2_load_avatar_poses'),
498
- saveAvatarPose: (poseId, options = {}) => www(WWW_GQL_IDS.SAVE_AVATAR_POSE, { pose_id: poseId, ...options }, 'xwa2_save_avatar_pose'),
499
- selectedOrDefaultPose: () => www(WWW_GQL_IDS.SELECTED_OR_DEFAULT_POSE, {}, 'xwa2_selected_or_default_pose'),
500
-
501
- // ── Events ────────────────────────────────────────────────────────────
502
- createEvent: input => www(WWW_GQL_IDS.CREATE_EVENT, { input }, 'xwa2_create_event'),
503
- getEvent: eventId => www(WWW_GQL_IDS.GET_EVENT, { event_id: eventId }, 'xwa2_get_event'),
504
- updateEvent: (eventId, updates) => www(WWW_GQL_IDS.UPDATE_EVENT, { event_id: eventId, ...updates }, 'xwa2_update_event'),
505
- deleteEvent: eventId => www(WWW_GQL_IDS.DELETE_EVENT, { event_id: eventId }, 'xwa2_delete_event'),
506
- listEvents: (options = {}) => www(WWW_GQL_IDS.LIST_EVENTS, options, 'xwa2_list_events'),
507
- updateEventRsvp: (eventId, rsvp) => www(WWW_GQL_IDS.UPDATE_EVENT_RSVP, { event_id: eventId, rsvp }, 'xwa2_update_event_rsvp'),
508
- addEventInvitations: (eventId, jids) => www(WWW_GQL_IDS.ADD_EVENT_INVITATIONS, { event_id: eventId, jids }, 'xwa2_add_event_invitations'),
509
- removeEventInvitations: (eventId, jids) => www(WWW_GQL_IDS.REMOVE_EVENT_INVITATIONS, { event_id: eventId, jids }, 'xwa2_remove_event_invitations'),
510
- removeSelfEventInvitation: eventId => www(WWW_GQL_IDS.REMOVE_SELF_EVENT_INVITATION, { event_id: eventId }, 'xwa2_remove_self_event_invitation'),
511
- getOrCreateEventInviteLink: eventId => www(WWW_GQL_IDS.GET_OR_CREATE_EVENT_INVITE_LINK, { event_id: eventId }, 'xwa2_get_or_create_event_invite_link'),
512
- rotateEventInviteLink: eventId => www(WWW_GQL_IDS.ROTATE_EVENT_INVITE_LINK, { event_id: eventId }, 'xwa2_rotate_event_invite_link'),
513
- getEventLinkPreview: url => www(WWW_GQL_IDS.GET_EVENT_LINK_PREVIEW, { url }, 'xwa2_get_event_link_preview'),
514
- listPresetCoverImages: () => www(WWW_GQL_IDS.LIST_PRESET_COVER_IMAGES, {}, 'xwa2_list_preset_cover_images'),
515
-
516
- // ── Business / Catalog ────────────────────────────────────────────────
517
- getBusinessProfileWebsiteShimUrl: bizJid => www(WWW_GQL_IDS.GET_BUSINESS_PROFILE_WEBSITE_SHIM_URL, { biz_jid: bizJid }, 'xwa2_get_business_profile_website_shim_url'),
518
- waWebBizCreateOrderJob: input => www(WWW_GQL_IDS.WA_WEB_BIZ_CREATE_ORDER_JOB, { input }, 'xwa2_wa_web_biz_create_order_job'),
519
- waWebBizGraphqlRefreshCart: cartId => www(WWW_GQL_IDS.WA_WEB_BIZ_GRAPHQL_REFRESH_CART, { cart_id: cartId }, 'xwa2_wa_web_biz_graphql_refresh_cart'),
520
- waWebBizQueryOrderJob: jobId => www(WWW_GQL_IDS.WA_WEB_BIZ_QUERY_ORDER_JOB, { job_id: jobId }, 'xwa2_wa_web_biz_query_order_job'),
521
- whatsappCatalogReportProduct: (productId, reason) => www(WWW_GQL_IDS.WHATSAPP_CATALOG_REPORT_PRODUCT, { product_id: productId, reason }, 'xwa2_whatsapp_catalog_report_product'),
522
- brandIdsGetPhoneNumbers: brandId => www(WWW_GQL_IDS.BRAND_IDS_GET_PHONE_NUMBERS, { brand_id: brandId }, 'xwa2_brand_ids_get_phone_numbers'),
523
- businessInteractionPills: bizJid => www(WWW_GQL_IDS.BUSINESS_INTERACTION_PILLS, { biz_jid: bizJid }, 'xwa2_business_interaction_pills'),
524
- externalCtxAuthoriseWAChat: input => www(WWW_GQL_IDS.EXTERNAL_CTX_AUTHORISE_WA_CHAT, { input }, 'xwa2_external_ctx_authorise_wa_chat'),
525
-
526
- // ── Payments (Brazil PIX) ─────────────────────────────────────────────
527
- brGetAuthOptions: () => www(WWW_GQL_IDS.BR_GET_AUTH_OPTIONS, {}, 'xwa2_br_get_auth_options'),
528
- brSaveCpf: cpf => www(WWW_GQL_IDS.BR_SAVE_CPF, { cpf }, 'xwa2_br_save_cpf'),
529
- brCreateEnrollment: options => www(WWW_GQL_IDS.CREATE_ENROLLMENT, options, 'xwa2_create_enrollment'),
530
- brCompleteEnrollmentRegistration: input => www(WWW_GQL_IDS.BR_COMPLETE_ENROLLMENT_REGISTRATION, { input }, 'xwa2_br_complete_enrollment_registration'),
531
- brGetEnrollmentOptions: () => www(WWW_GQL_IDS.GET_ENROLLMENT_REGISTRATION_OPTIONS, {}, 'xwa2_get_enrollment_registration_options'),
532
- brAuthorizePayment: input => www(WWW_GQL_IDS.BR_AUTHORIZE_BIOMETRIC_PAYMENT, { input }, 'xwa2_br_authorize_biometric_payment'),
533
- getPixBankList: () => www(WWW_GQL_IDS.GET_PIX_BANK_LIST, {}, 'xwa2_get_pix_bank_list'),
534
- getMerchantPixInfo: merchantId => www(WWW_GQL_IDS.GET_MERCHANT_PIX_INFO, { merchant_id: merchantId }, 'xwa2_get_merchant_pix_info'),
535
- completePixTransaction: input => www(WWW_GQL_IDS.COMPLETE_PIX_TRANSACTION, { input }, 'xwa2_complete_pix_transaction'),
536
- payWithPixPrecheck: input => www(WWW_GQL_IDS.PAY_WITH_PIX_PRECHECK, { input }, 'xwa2_pay_with_pix_precheck'),
537
- paymentHealthChecks: () => www(WWW_GQL_IDS.PAYMENT_HEALTH_CHECKS, {}, 'xwa2_payment_health_checks'),
538
- getPaymentKey: () => www(WWW_GQL_IDS.GET_PAYMENT_KEY, {}, 'xwa2_get_payment_key'),
539
- genCreatePaymentKey: input => www(WWW_GQL_IDS.GEN_CREATE_PAYMENT_KEY, { input }, 'xwa2_gen_create_payment_key'),
540
- genUpdatePaymentKey: input => www(WWW_GQL_IDS.GEN_UPDATE_PAYMENT_KEY, { input }, 'xwa2_gen_update_payment_key'),
541
- genDeletePaymentKey: keyId => www(WWW_GQL_IDS.GEN_DELETE_PAYMENT_KEY, { key_id: keyId }, 'xwa2_gen_delete_payment_key'),
542
- getBillerPlans: billerId => www(WWW_GQL_IDS.GET_BILLER_PLANS, { biller_id: billerId }, 'xwa2_get_biller_plans'),
543
- getBillReceipt: billId => www(WWW_GQL_IDS.GET_BILL_RECEIPT, { bill_id: billId }, 'xwa2_get_bill_receipt'),
544
- getBillComplaintUrl: billId => www(WWW_GQL_IDS.GET_BILL_COMPLAINT_URL, { bill_id: billId }, 'xwa2_get_bill_complaint_url'),
545
- paymentReminderCreate: input => www(WWW_GQL_IDS.PAYMENT_REMINDER_CREATE, { input }, 'xwa2_payment_reminder_create'),
546
- paymentReminderGet: reminderId => www(WWW_GQL_IDS.PAYMENT_REMINDER_GET, { reminder_id: reminderId }, 'xwa2_payment_reminder_get'),
547
- paymentReminderCancel: reminderId => www(WWW_GQL_IDS.PAYMENT_REMINDER_CANCEL, { reminder_id: reminderId }, 'xwa2_payment_reminder_cancel'),
548
- paymentReminderStop: reminderId => www(WWW_GQL_IDS.PAYMENT_REMINDER_STOP, { reminder_id: reminderId }, 'xwa2_payment_reminder_stop'),
549
- genShareRemittanceIntent: input => www(WWW_GQL_IDS.GEN_SHARE_REMITTANCE_TRANSACTION_INTENT, { input }, 'xwa2_gen_share_remittance_transaction_intent'),
550
- getRemittanceTransactionDetails: txId => www(WWW_GQL_IDS.GET_REMITTANCE_TRANSACTION_DETAILS, { transaction_id: txId }, 'xwa2_get_remittance_transaction_details'),
551
- saveRemittancePaymentMessageId: input => www(WWW_GQL_IDS.SAVE_REMITTANCE_PAYMENT_MESSAGE_ID, { input }, 'xwa2_save_remittance_payment_message_id'),
552
- saveSenderPaymentMessagePreference: preference => www(WWW_GQL_IDS.SAVE_SENDER_PAYMENT_MESSAGE_PREFERENCE, { preference }, 'xwa2_save_sender_payment_message_preference'),
553
- getEligibility: (feature = null) => www(WWW_GQL_IDS.GET_ELIGIBILITY, feature ? { feature } : {}, 'xwa2_get_eligibility'),
554
- enrollAndGetIncentiveReferralId: input => www(WWW_GQL_IDS.ENROLL_AND_GET_INCENTIVE_REFERRAL_ID, { input }, 'xwa2_enroll_and_get_incentive_referral_id'),
555
- getSubscriptionsAndFeatureFlags: () => www(WWW_GQL_IDS.GET_SUBSCRIPTIONS_AND_FEATURE_FLAGS, {}, 'xwa2_get_subscriptions_and_feature_flags'),
556
-
557
- // ── Payments (UPI India) ──────────────────────────────────────────────
558
- getUpiAccounts: () => www(WWW_GQL_IDS.GET_UPI_ACCOUNTS, {}, 'xwa2_get_upi_accounts'),
559
- getUpiLiteDetails: () => www(WWW_GQL_IDS.GET_UPI_LITE_DETAILS, {}, 'xwa2_get_upi_lite_details'),
560
- getUpiToken: upiAccountId => www(WWW_GQL_IDS.GET_UPI_TOKEN, { upi_account_id: upiAccountId }, 'xwa2_get_upi_token'),
561
- getUpiPurposeLimitingKey: () => www(WWW_GQL_IDS.GET_UPI_PURPOSE_LIMITING_KEY, {}, 'xwa2_get_upi_purpose_limiting_key'),
562
- upiCreateMandate: input => www(WWW_GQL_IDS.UPI_CREATE_MANDATE, { input }, 'xwa2_upi_create_mandate'),
563
- upiAcceptMandate: mandateId => www(WWW_GQL_IDS.UPI_ACCEPT_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_accept_mandate'),
564
- upiRejectMandate: mandateId => www(WWW_GQL_IDS.UPI_REJECT_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_reject_mandate'),
565
- upiExecuteMandate: mandateId => www(WWW_GQL_IDS.UPI_EXECUTE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_execute_mandate'),
566
- upiPauseMandate: mandateId => www(WWW_GQL_IDS.UPI_PAUSE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_pause_mandate'),
567
- upiResumeMandate: mandateId => www(WWW_GQL_IDS.UPI_RESUME_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_resume_mandate'),
568
- upiRevokeMandate: mandateId => www(WWW_GQL_IDS.UPI_REVOKE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_revoke_mandate'),
569
- pmtaGetAiControls: () => www(WWW_GQL_IDS.PMTA_GET_AI_CONTROLS, {}, 'xwa2_pmta_get_ai_controls'),
570
- pmtaSetAiControls: controls => www(WWW_GQL_IDS.PMTA_SET_AI_CONTROLS, { controls }, 'xwa2_pmta_set_ai_controls'),
571
-
572
- // ── Wamo commerce (via www schema) ────────────────────────────────────
573
- wamoSubQueryStatus: newsletterJid => www(WWW_GQL_IDS.WAMO_SUB_QUERY_STATUS, { newsletter_jid: newsletterJid }, 'xwa2_wamo_sub_query_status'),
574
- wamoSubCancelSubscription: (newsletterJid, subscriptionId) => www(WWW_GQL_IDS.WAMO_SUB_CANCEL_SUBSCRIPTION, { newsletter_jid: newsletterJid, subscription_id: subscriptionId }, 'xwa2_wamo_sub_cancel_subscription'),
575
- wamoSubOverrideStatus: (newsletterJid, status) => www(WWW_GQL_IDS.WAMO_SUB_OVERRIDE_STATUS, { newsletter_jid: newsletterJid, status }, 'xwa2_wamo_sub_override_status'),
576
- wamoAfsSubscriptionInfo: newsletterJid => www(WWW_GQL_IDS.WAMO_AFS_SUBSCRIPTION_INFO, { newsletter_jid: newsletterJid }, 'xwa2_wamo_afs_subscription_info'),
577
- wamoPromoIdQuery: newsletterJid => www(WWW_GQL_IDS.WAMO_PROMO_ID_QUERY, { newsletter_jid: newsletterJid }, 'xwa2_wamo_promo_id_query'),
578
- wamoPromoIdSet: (newsletterJid, promoId) => www(WWW_GQL_IDS.WAMO_PROMO_ID_SET, { newsletter_jid: newsletterJid, promo_id: promoId }, 'xwa2_wamo_promo_id_set'),
579
- wamoPromoIdDelete: newsletterJid => www(WWW_GQL_IDS.WAMO_PROMO_ID_DELETE, { newsletter_jid: newsletterJid }, 'xwa2_wamo_promo_id_delete'),
580
-
581
- // ── User / account ────────────────────────────────────────────────────
582
- facebookAccountName: () => www(WWW_GQL_IDS.FACEBOOK_ACCOUNT_NAME, {}, 'xwa2_facebook_account_name'),
583
- instagramAccountName: () => www(WWW_GQL_IDS.INSTAGRAM_ACCOUNT_NAME, {}, 'xwa2_instagram_account_name'),
584
- getSignupMetadata: () => www(WWW_GQL_IDS.GET_SIGNUP_METADATA, {}, 'xwa2_get_signup_metadata'),
585
- registerInit: input => www(WWW_GQL_IDS.REGISTER_INIT, { input }, 'xwa2_register_init'),
586
- registerAllAccounts: () => www(WWW_GQL_IDS.REGISTER_ALL_ACCOUNTS, {}, 'xwa2_register_all_accounts'),
587
- checkDeviceRegistration: deviceId => www(WWW_GQL_IDS.CHECK_DEVICE_REGISTRATION, { device_id: deviceId }, 'xwa2_check_device_registration'),
588
- canonicalEntQueryFeature: feature => www(WWW_GQL_IDS.CANONICAL_ENT_QUERY_FEATURE, { feature }, 'xwa2_canonical_ent_query_feature'),
589
- canonicalEntSetupFeature: (feature, options = {}) => www(WWW_GQL_IDS.CANONICAL_ENT_SETUP_FEATURE, { feature, ...options }, 'xwa2_canonical_ent_setup_feature'),
590
- canonicalEntTeardownFeature: feature => www(WWW_GQL_IDS.CANONICAL_ENT_TEARDOWN_FEATURE, { feature }, 'xwa2_canonical_ent_teardown_feature'),
591
- wwwCanonicalUserValid: token => www(WWW_GQL_IDS.WWW_CANONICAL_USER_VALID, { token }, 'xwa2_www_canonical_user_valid'),
592
- waffleUserAgeCheck: () => www(WWW_GQL_IDS.WAFFLE_USER_AGE_CHECK, {}, 'xwa2_waffle_user_age_check'),
593
- getAiPredictedAge: () => www(WWW_GQL_IDS.GET_AI_PREDICTED_AGE, {}, 'xwa2_get_ai_predicted_age'),
594
-
595
- // ── Support / misc ────────────────────────────────────────────────────
596
- submitBugReport: input => www(WWW_GQL_IDS.SUBMIT_BUG_REPORT, { input }, 'xwa2_submit_bug_report'),
597
- supportContactForm: input => www(WWW_GQL_IDS.SUPPORT_CONTACT_FORM, { input }, 'xwa2_support_contact_form'),
598
- createGroupSuspensionAppeal: (groupJid, reason) => www(WWW_GQL_IDS.CREATE_GROUP_SUSPENSION_APPEAL, { group_jid: groupJid, reason }, 'xwa2_create_group_suspension_appeal'),
599
- createDogfoodingTask: input => www(WWW_GQL_IDS.CREATE_DOGFOODING_TASK, { input }, 'xwa2_create_dogfooding_task'),
600
- hatchChannelLink: input => www(WWW_GQL_IDS.HATCH_CHANNEL_LINK, { input }, 'xwa2_hatch_channel_link'),
601
- hatchChannelMetadata: channelId => www(WWW_GQL_IDS.HATCH_CHANNEL_METADATA, { channel_id: channelId }, 'xwa2_hatch_channel_metadata'),
602
- oxygenChannelOptIn: channelId => www(WWW_GQL_IDS.OXYGEN_CHANNEL_OPT_IN, { channel_id: channelId }, 'xwa2_oxygen_channel_opt_in'),
603
- oxygenChannelOptOut: channelId => www(WWW_GQL_IDS.OXYGEN_CHANNEL_OPT_OUT, { channel_id: channelId }, 'xwa2_oxygen_channel_opt_out'),
604
- oxygenChannelStatus: channelId => www(WWW_GQL_IDS.OXYGEN_CHANNEL_STATUS, { channel_id: channelId }, 'xwa2_oxygen_channel_status'),
605
- paslGetLoggerConfig: () => www(WWW_GQL_IDS.PASL_GET_LOGGER_CONFIG, {}, 'xwa2_pasl_get_logger_config'),
606
- quickPromotionBatchFetch: input => www(WWW_GQL_IDS.QUICK_PROMOTION_BATCH_FETCH, { input }, 'xwa2_quick_promotion_batch_fetch'),
607
- waQuickPromotionLog: events => www(WWW_GQL_IDS.WA_QUICK_PROMOTION_LOG, { events }, 'xwa2_wa_quick_promotion_log'),
608
- waSupportMessageFeedback: input => www(WWW_GQL_IDS.WA_SUPPORT_MESSAGE_FEEDBACK, { input }, 'xwa2_wa_support_message_feedback'),
609
- waGizmoPostMetadata: postId => www(WWW_GQL_IDS.WA_GIZMO_POST_METADATA, { post_id: postId }, 'xwa2_wa_gizmo_post_metadata'),
610
- unifiedConversationStarters: chatJid => www(WWW_GQL_IDS.UNIFIED_CONVERSATION_STARTERS, { chat_jid: chatJid }, 'xwa2_unified_conversation_starters'),
611
- getSubscribedTasksForThread: threadId => www(WWW_GQL_IDS.GET_SUBSCRIBED_TASKS_FOR_THREAD, { thread_id: threadId }, 'xwa2_get_subscribed_tasks_for_thread'),
612
- editGenAiTask: (taskId, updates) => www(WWW_GQL_IDS.EDIT_GEN_AI_TASK, { task_id: taskId, ...updates }, 'xwa2_edit_gen_ai_task'),
613
- deleteGenAiTasks: taskIds => www(WWW_GQL_IDS.DELETE_GEN_AI_TASKS, { task_ids: taskIds }, 'xwa2_delete_gen_ai_tasks'),
614
- deleteUserBillAccount: () => www(WWW_GQL_IDS.DELETE_USER_BILL_ACCOUNT, {}, 'xwa2_delete_user_bill_account'),
615
- metaPoiTypeAhead: query => www(WWW_GQL_IDS.META_POI_TYPE_AHEAD, { query }, 'xwa2_meta_poi_type_ahead'),
616
- metaConfigFetch: () => www(WWW_GQL_IDS.META_CONFIG_FETCH, {}, 'xwa2_meta_config_fetch'),
617
-
618
- // ── Facebook schema ───────────────────────────────────────────────────
619
- bizAlertsNotificationList: () => fb(FACEBOOK_GQL_IDS.BIZ_ALERTS_NOTIFICATION_LIST, {}, 'xwa2_biz_alerts_notification_list'),
620
- bizAlertsUpdate: (alertId, read) => fb(FACEBOOK_GQL_IDS.BIZ_ALERTS_UPDATE, { alert_id: alertId, read }, 'xwa2_biz_alerts_update'),
621
- ctwaAdsContextBiz: bizJid => fb(FACEBOOK_GQL_IDS.CTWA_ADS_CONTEXT_BIZ, { biz_jid: bizJid }, 'xwa2_ctwa_ads_context_biz'),
622
- digitalContentIapPurchaseQuote: input => fb(FACEBOOK_GQL_IDS.DIGITAL_CONTENT_IAP_PURCHASE_QUOTE, { input }, 'xwa2_digital_content_iap_purchase_quote'),
623
- getCompliance: () => fb(FACEBOOK_GQL_IDS.GET_COMPLIANCE, {}, 'xwa2_get_compliance'),
624
- setCompliance: (complianceType, accepted) => fb(FACEBOOK_GQL_IDS.SET_COMPLIANCE, { compliance_type: complianceType, accepted }, 'xwa2_set_compliance'),
625
- getCustomUrls: () => fb(FACEBOOK_GQL_IDS.GET_CUSTOM_URLS, {}, 'xwa2_get_custom_urls'),
626
- getDcpProducts: (categoryId = null) => fb(FACEBOOK_GQL_IDS.GET_DCP_PRODUCTS, categoryId ? { category_id: categoryId } : {}, 'xwa2_get_dcp_products'),
627
- acDcCreateCommerceNonce: input => fb(FACEBOOK_GQL_IDS.ACDC_CREATE_COMMERCE_NONCE, { input }, 'xwa2_acdc_create_commerce_nonce'),
628
- fbUsernameRecommendations: (source = null) => fb(FACEBOOK_GQL_IDS.USERNAME_RECOMMENDATIONS, source ? { source } : {}, 'xwa2_username_recommendations'),
629
-
630
- // ── Wamo platform schema (form-encoded, separate endpoint) ────────────
631
- wamoUserBasic: () => wamo(WAMO_GQL_IDS.USER_BASIC, {}, 'xwa2_wamo_user_basic'),
632
- wamoCreateUser: input => wamo(WAMO_GQL_IDS.CREATE_USER, { input }, 'xwa2_wamo_create_user'),
633
- wamoDeleteUser: () => wamo(WAMO_GQL_IDS.DELETE_USER, {}, 'xwa2_wamo_delete_user'),
634
- wamoLinkUser: input => wamo(WAMO_GQL_IDS.LINK_USER, { input }, 'xwa2_wamo_link_user'),
635
- wamoHeartbeat: () => wamo(WAMO_GQL_IDS.HEARTBEAT, {}, 'xwa2_wamo_heartbeat'),
636
- wamoHidePage: pageId => wamo(WAMO_GQL_IDS.HIDE_PAGE, { page_id: pageId }, 'xwa2_wamo_hide_page'),
637
- wamoUnhidePage: pageId => wamo(WAMO_GQL_IDS.UNHIDE_PAGE, { page_id: pageId }, 'xwa2_wamo_unhide_page'),
638
- wamoUnhidePageV2: pageId => wamo(WAMO_GQL_IDS.UNHIDE_PAGE_V2, { page_id: pageId }, 'xwa2_wamo_unhide_page_v2'),
639
- wamoHidePromo: promoId => wamo(WAMO_GQL_IDS.HIDE_PROMO, { promo_id: promoId }, 'xwa2_wamo_hide_promo'),
640
- wamoReportPromo: (promoId, reason) => wamo(WAMO_GQL_IDS.REPORT_PROMO, { promo_id: promoId, reason }, 'xwa2_wamo_report_promo'),
641
- wamoStartViewerSession: pageId => wamo(WAMO_GQL_IDS.START_VIEWER_SESSION, { page_id: pageId }, 'xwa2_wamo_start_viewer_session'),
642
- wamoBloksGetLayout: (layoutId, context = {}) => wamo(WAMO_GQL_IDS.BLOKS_GET_LAYOUT, { layout_id: layoutId, ...context }, 'xwa2_wamo_bloks_get_layout'),
643
- wamoDyiJobCreate: input => wamo(WAMO_GQL_IDS.DYI_JOB_CREATE, { input }, 'xwa2_wamo_dyi_job_create'),
644
- wamoDyiJobDelete: jobId => wamo(WAMO_GQL_IDS.DYI_JOB_DELETE, { job_id: jobId }, 'xwa2_wamo_dyi_job_delete'),
645
- wamoDyiJobStatus: jobId => wamo(WAMO_GQL_IDS.DYI_JOB_STATUS, { job_id: jobId }, 'xwa2_wamo_dyi_job_status'),
646
-
647
- // ── ID dictionaries (for raw access) ─────────────────────────────────
648
- WWW_GQL_IDS,
649
- FACEBOOK_GQL_IDS,
650
- WAMO_GQL_IDS,
651
- CLIENT_PERSIST_GQL_IDS,
652
- ENDPOINTS
653
- }
301
+ ADD_MEMU_PROFILE_PHOTOS: '24668200096214476',
302
+ CREATE_MEMU_PROFILE: '26069800429275530',
303
+ DROP_IN_IMAGINE_GENERATE: '34481380128115810',
304
+ FB_MEMU_PERMISSION_QUERY: '26457099770583124',
305
+ FETCH_META_AI_MODES: '24685093691140660',
306
+ GEN_AI_EDIT_ANIMATE: '26618842254369468',
307
+ GEN_AI_EDIT_BACKDROP_SUGGESTIONS: '6884142735042929',
308
+ GEN_AI_EDIT_IMAGE_BACKDROP: '24768153272860376',
309
+ GEN_AI_EDIT_SUGGESTIONS: '27713400524973656',
310
+ GEN_AI_EDIT_UPLOAD_AUTHENTIC_IMAGE: '8289643261132632',
311
+ GEN_AI_IMAGINE_BULK_SEND_MEDIA_TO_CHAT: '9621096711262312',
312
+ GEN_AI_IMAGINE_CANVAS_API: '26120441040992056',
313
+ GEN_AI_IMAGINE_DOWNLOAD_MEDIA: '34879204598389744',
314
+ GEN_AI_IMAGINE_EDIT: '26723939223901400',
315
+ GEN_AI_IMAGINE_GENERATE_FLASH: '25517143427978588',
316
+ GEN_AI_IMAGINE_GENERATE_FROM_IMAGE: '26234794616158744',
317
+ GEN_AI_IMAGINE_GENERATE: '25754106557586292',
318
+ GEN_AI_IMAGINE_GENERATE_STREAMING: '26021242964174344',
319
+ GEN_AI_IMAGINE_HAS_MEMU_PROFILE: '25660710533526260',
320
+ GEN_AI_IMAGINE_INSPIRATION_CANVAS_API: '26630710513263730',
321
+ GEN_AI_IMAGINE_PROMPT_SUMMARIZATION: '8356011394456431',
322
+ GEN_AI_IMAGINE_REGENERATE: '25723954363936656',
323
+ GEN_AI_IMAGINE_RESTYLE_SECTIONS: '30782654914682896',
324
+ GEN_AI_IMAGINE_SEND_MEDIA_TO_CHAT: '9040988989304072',
325
+ GEN_AI_IMAGINE_SUGGESTIONS: '26477038211947360',
326
+ GEN_AI_IMAGINE_UPDATE_MEMU_PROFILE_PERMISSION: '24987386417587030',
327
+ GEN_AI_MEMU_UPDATE_VOICE: '25208555012114170',
328
+ GEN_AI_SOCIAL_ENTITY_DETAILS: '27413840814867420',
329
+ GEN_AI_VERIFY_MEMU_PHOTOS: '30310486848564932',
330
+ GET_MEMU_STICKER_BY_ID: '8894972063896486',
331
+ MAI_UNIFIED_USER: '24664034623258600',
332
+ MAI_UNIFIED_USER_QUERY: '24774891068876300',
333
+ MAI_UNIFIED_USER_RESET: '26233658572900960',
334
+ MEMU_PREVIEW_PHOTO: '7416457868478773',
335
+ MEMU_PROFILE_QUERY: '25494748856799176',
336
+ MEMU_UPDATE_PROFILE: '8634007059959370',
337
+ META_AI_FEEDBACK: '24461110943539464',
338
+ META_AI_INTENT_CARD_NUX_ELIGIBILITY_RESET: '7906012969525854',
339
+ META_AI_INTENT_CARD_NUX_IMPRESSION: '29146653178312916',
340
+ META_AI_INTENT_CARD_NUX_IMPRESSION_QUERY: '7397847270321576',
341
+ META_AI_MODES_QUERY: '9990098797780674',
342
+ META_AI_RICH_PLACE_DETAILS: '26652957641066240',
343
+ META_AI_SIDE_BY_SIDE_SURVEY_RESPONSE: '23972248465795460',
344
+ META_AI_STOP_GENERATION: '25449755391321784',
345
+ META_AI_BIZ_AGENT_VOICE_ATTACHMENTS: '32359943033604852',
346
+ META_AI_CUSTOMIZATION_GEN_AI_SET_MODE: '31825632867051630',
347
+ SIMPLE_ECHO: '8800911093353750',
348
+ UPDATE_MEMU_SELFIE: '26374541155506570'
654
349
  }
655
350
 
656
- exports.makeGraphQLSocket = makeGraphQLSocket
351
+ export const makeGraphQLSocket = sock => {
352
+ let _accessToken = null
353
+ let _tokenPromise = null
354
+ let _wamoAuth = {}
355
+ let _wamoHost = 'wamo.whatsapp.net'
356
+
357
+ const setAccessToken = token => {
358
+ _accessToken = token
359
+ _tokenPromise = null
360
+ }
361
+
362
+ const setWamoAuth = (auth, host = null) => {
363
+ _wamoAuth = auth
364
+ if (host) _wamoHost = host
365
+ }
366
+
367
+ /**
368
+ * Ensure a valid ACS access token is available.
369
+ */
370
+ const acquireAccessToken = () => {
371
+ if (_accessToken) return Promise.resolve(_accessToken)
372
+ if (_tokenPromise) return _tokenPromise
373
+ _tokenPromise = (async () => {
374
+ const nonceData = await sock.wwwGetNonce()
375
+ const nonce = nonceData?.nonce?? nonceData
376
+ const tokenData = await sock.wwwExchangeNonce(nonce)
377
+ const token = tokenData?.access_token?? tokenData
378
+ _accessToken = token
379
+ _tokenPromise = null
380
+ return token
381
+ })()
382
+ return _tokenPromise
383
+ }
384
+
385
+ const www = async (docId, variables, dataPath = null) => {
386
+ const token = await acquireAccessToken()
387
+ return executeWWWGraphQL(docId, variables, token, dataPath)
388
+ }
389
+
390
+ const fb = async (docId, variables, dataPath = null) => {
391
+ const token = await acquireAccessToken()
392
+ return executeFacebookGraphQL(docId, variables, token, dataPath)
393
+ }
394
+
395
+ const wamo = (docId, variables, dataPath = null) =>
396
+ executeWamoGraphQL(docId, variables, _wamoAuth, dataPath, _wamoHost)
397
+
398
+ return {
399
+ ...sock,
400
+
401
+ // ── Token management ──────────────────────────────────────────────────
402
+ setAccessToken,
403
+ setWamoAuth,
404
+ acquireAccessToken,
405
+
406
+ // ── Raw GraphQL executors ─────────────────────────────────────────────
407
+ executeWWWGraphQL,
408
+ executeFacebookGraphQL,
409
+ executeWamoGraphQL,
410
+
411
+ // ── Meta AI ───────────────────────────────────────────────────────────
412
+ aiStudioMemoryQuery: () => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_QUERY, {}, 'xwa2_ai_studio_wa_memory_query'),
413
+ aiStudioMemoryDelete: id => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE, { id }, 'xwa2_ai_studio_wa_memory_delete'),
414
+ aiStudioMemoryDeleteAll: () =>
415
+ www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE_ALL, {}, 'xwa2_ai_studio_wa_memory_delete_all'),
416
+ metaAiMemoryQuery: () => www(WWW_GQL_IDS.META_AI_MEMORY_QUERY, {}, 'xwa2_meta_ai_memory'),
417
+ metaAiUnifiedMemoryQuery: () => www(WWW_GQL_IDS.META_AI_UNIFIED_MEMORY_QUERY, {}, 'xwa2_meta_ai_unified_memory'),
418
+ metaAiMemoryDelete: id => www(WWW_GQL_IDS.META_AI_MEMORY_DELETE, { id }, 'xwa2_meta_ai_memory_delete'),
419
+ metaAiMemoryDeleteAll: () => www(WWW_GQL_IDS.META_AI_MEMORY_DELETE_ALL, {}, 'xwa2_meta_ai_memory_delete_all'),
420
+ metaAiMemoryOptOutStatus: () =>
421
+ www(WWW_GQL_IDS.META_AI_MEMORY_OPT_OUT_STATUS, {}, 'xwa2_meta_ai_wa_memory_opt_out_status'),
422
+ metaAiMemoryOptOutUpdate: optOut =>
423
+ www(WWW_GQL_IDS.META_AI_MEMORY_OPT_OUT_UPDATE, { opt_out: optOut }, 'xwa2_meta_ai_wa_memory_opt_out_update'),
424
+ metaAiCommandGet: (chatJid, command) =>
425
+ www(WWW_GQL_IDS.META_AI_COMMAND_GET, { chat_jid: chatJid, command }, 'xwa2_meta_ai_command_get'),
426
+ metaAiVoiceOptionsFetch: () =>
427
+ www(WWW_GQL_IDS.META_AI_VOICE_OPTIONS_FETCH, {}, 'xwa2_meta_ai_voice_wa_options_fetch'),
428
+ metaAiVoiceOptionsWithDefaultFetch: () =>
429
+ www(WWW_GQL_IDS.META_AI_VOICE_OPTIONS_WITH_DEFAULT_FETCH, {}, 'xwa2_meta_ai_voice_wa_options_with_default_fetch'),
430
+ aiSubscriptionState: () => www(WWW_GQL_IDS.AI_SUBSCRIPTION_STATE, {}, 'xwa2_ai_subscription_state'),
431
+ aiSubscriptionUsageData: () => www(WWW_GQL_IDS.AI_SUBSCRIPTION_USAGE_DATA, {}, 'xwa2_ai_subscription_usage_data'),
432
+
433
+ // ── Imagine / GenAI (www) ─────────────────────────────────────────────
434
+ imagineEdit: (imageId, prompt) => www(WWW_GQL_IDS.IMAGINE_EDIT, { image_id: imageId, prompt }, 'xwa2_imagine_edit'),
435
+ imagineEditVideo: (videoId, styleId) =>
436
+ www(WWW_GQL_IDS.IMAGINE_EDIT_VIDEO, { video_id: videoId, style_id: styleId }, 'xwa2_imagine_edit_video'),
437
+ imagineExpand: (imageId, direction) =>
438
+ www(WWW_GQL_IDS.IMAGINE_EXPAND, { image_id: imageId, direction }, 'xwa2_imagine_expand'),
439
+ imagineGenerateAnimate: (imageId, options = {}) =>
440
+ www(WWW_GQL_IDS.IMAGINE_GENERATE_ANIMATE, { image_id: imageId,...options }, 'xwa2_imagine_generate_animate'),
441
+ imagineIntents: prompt => www(WWW_GQL_IDS.IMAGINE_INTENTS, { prompt }, 'xwa2_imagine_intents'),
442
+ imagineCanvasContent: canvasId =>
443
+ www(WWW_GQL_IDS.IMAGINE_CANVAS_CONTENT, { canvas_id: canvasId }, 'xwa2_imagine_canvas_content'),
444
+ imagineSpotlight: (prompt, options = {}) =>
445
+ www(WWW_GQL_IDS.IMAGINE_SPOTLIGHT, { prompt,...options }, 'xwa2_imagine_spotlight'),
446
+ imagineVideoStatus: jobId => www(WWW_GQL_IDS.IMAGINE_VIDEO_STATUS, { job_id: jobId }, 'xwa2_imagine_video_status'),
447
+ imagineReport: (imageId, reason) =>
448
+ www(WWW_GQL_IDS.IMAGINE_REPORT, { image_id: imageId, reason }, 'xwa2_imagine_report'),
449
+ imagineMeIsOnboarded: () => www(WWW_GQL_IDS.IMAGINE_ME_IS_ONBOARDED, {}, 'xwa2_imagine_me_is_onboarded'),
450
+ imagineMeOnboarding: input => www(WWW_GQL_IDS.IMAGINE_ME_ONBOARDING, { input }, 'xwa2_imagine_me_onboarding'),
451
+ imagineMeOnboardingWithValidation: input =>
452
+ www(WWW_GQL_IDS.IMAGINE_ME_ONBOARDING_WITH_VALIDATION, { input }, 'xwa2_imagine_me_onboarding_with_validation'),
453
+ imagineMeDeleteOnboarding: () =>
454
+ www(WWW_GQL_IDS.IMAGINE_ME_DELETE_ONBOARDING, {}, 'xwa2_imagine_me_delete_onboarding'),
455
+ imagineEditVideoStyles: () =>
456
+ www(WWW_GQL_IDS.AI_IMAGINE_EDIT_VIDEO_STYLES, {}, 'xwa2_ai_imagine_edit_video_styles'),
457
+
458
+ // ── AI Creation (bot personas) ─────────────────────────────────────────
459
+ aiCreationFetchCreatedBot: botId =>
460
+ www(WWW_GQL_IDS.AI_CREATION_FETCH_CREATED_BOT, { bot_id: botId }, 'xwa2_ai_creation_fetch_created_bot'),
461
+ aiCreationUpdatePersona: (botId, updates) =>
462
+ www(WWW_GQL_IDS.AI_CREATION_UPDATE_PERSONA, { bot_id: botId,...updates }, 'xwa2_ai_creation_update_persona'),
463
+ aiCreationDeletePersona: botId =>
464
+ www(WWW_GQL_IDS.AI_CREATION_DELETE_PERSONA, { bot_id: botId }, 'xwa2_ai_creation_delete_persona'),
465
+ aiCreationUploadImage: imageData =>
466
+ www(WWW_GQL_IDS.AI_CREATION_UPLOAD_IMAGE, { image_data: imageData }, 'xwa2_ai_creation_upload_image'),
467
+ aiCreationCheckCreatedByMe: botId =>
468
+ www(WWW_GQL_IDS.AI_CREATION_CHECK_CREATED_BY_ME, { bot_id: botId }, 'xwa2_ai_creation_check_created_by_me'),
469
+ aiCreationFetchVoiceSample: voiceId =>
470
+ www(WWW_GQL_IDS.AI_CREATION_FETCH_VOICE_SAMPLE, { voice_id: voiceId }, 'xwa2_ai_creation_fetch_voice_sample'),
471
+ aiHomeFetchUserCreatedPersonas: () =>
472
+ www(WWW_GQL_IDS.AI_HOME_FETCH_USER_CREATED_PERSONAS, {}, 'xwa2_ai_home_fetch_user_created_personas'),
473
+ aiHomeSearch: query => www(WWW_GQL_IDS.AI_HOME_SEARCH, { query }, 'xwa2_ai_home_search'),
474
+ aiCharacterUpdateHideStatus: (botId, hidden) =>
475
+ www(WWW_GQL_IDS.AI_CHARACTER_UPDATE_HIDE_STATUS, { bot_id: botId, hidden }, 'xwa2_ai_character_update_hide_status'),
476
+ botProactiveMessageControlStatus: botId =>
477
+ www(WWW_GQL_IDS.BOT_PROACTIVE_MSG_CONTROL_STATUS, { bot_id: botId }, 'xwa2_bot_proactive_message_control_status'),
478
+ botProactiveMessageControlUpdate: (botId, enabled) =>
479
+ www(WWW_GQL_IDS.BOT_PROACTIVE_MSG_CONTROL_UPDATE, { bot_id: botId, enabled }, 'xwa2_bot_proactive_message_control_update'),
480
+ botProfilesSync: () => www(WWW_GQL_IDS.BOT_PROFILES_SYNC, {}, 'xwa2_bot_profiles_sync'),
481
+
482
+ // ── Avatar ────────────────────────────────────────────────────────────
483
+ avatarUserRecovery: () => www(WWW_GQL_IDS.AVATAR_USER_RECOVERY, {}, 'xwa2_avatar_user_recovery'),
484
+ loadAvatarPoses: () => www(WWW_GQL_IDS.LOAD_AVATAR_POSES, {}, 'xwa2_load_avatar_poses'),
485
+ saveAvatarPose: (poseId, options = {}) =>
486
+ www(WWW_GQL_IDS.SAVE_AVATAR_POSE, { pose_id: poseId,...options }, 'xwa2_save_avatar_pose'),
487
+ selectedOrDefaultPose: () => www(WWW_GQL_IDS.SELECTED_OR_DEFAULT_POSE, {}, 'xwa2_selected_or_default_pose'),
488
+
489
+ // ── Events ────────────────────────────────────────────────────────────
490
+ createEvent: input => www(WWW_GQL_IDS.CREATE_EVENT, { input }, 'xwa2_create_event'),
491
+ getEvent: eventId => www(WWW_GQL_IDS.GET_EVENT, { event_id: eventId }, 'xwa2_get_event'),
492
+ updateEvent: (eventId, updates) =>
493
+ www(WWW_GQL_IDS.UPDATE_EVENT, { event_id: eventId,...updates }, 'xwa2_update_event'),
494
+ deleteEvent: eventId => www(WWW_GQL_IDS.DELETE_EVENT, { event_id: eventId }, 'xwa2_delete_event'),
495
+ listEvents: (options = {}) => www(WWW_GQL_IDS.LIST_EVENTS, options, 'xwa2_list_events'),
496
+ updateEventRsvp: (eventId, rsvp) =>
497
+ www(WWW_GQL_IDS.UPDATE_EVENT_RSVP, { event_id: eventId, rsvp }, 'xwa2_update_event_rsvp'),
498
+ addEventInvitations: (eventId, jids) =>
499
+ www(WWW_GQL_IDS.ADD_EVENT_INVITATIONS, { event_id: eventId, jids }, 'xwa2_add_event_invitations'),
500
+ removeEventInvitations: (eventId, jids) =>
501
+ www(WWW_GQL_IDS.REMOVE_EVENT_INVITATIONS, { event_id: eventId, jids }, 'xwa2_remove_event_invitations'),
502
+ removeSelfEventInvitation: eventId =>
503
+ www(WWW_GQL_IDS.REMOVE_SELF_EVENT_INVITATION, { event_id: eventId }, 'xwa2_remove_self_event_invitation'),
504
+ getOrCreateEventInviteLink: eventId =>
505
+ www(WWW_GQL_IDS.GET_OR_CREATE_EVENT_INVITE_LINK, { event_id: eventId }, 'xwa2_get_or_create_event_invite_link'),
506
+ rotateEventInviteLink: eventId =>
507
+ www(WWW_GQL_IDS.ROTATE_EVENT_INVITE_LINK, { event_id: eventId }, 'xwa2_rotate_event_invite_link'),
508
+ getEventLinkPreview: url => www(WWW_GQL_IDS.GET_EVENT_LINK_PREVIEW, { url }, 'xwa2_get_event_link_preview'),
509
+ listPresetCoverImages: () => www(WWW_GQL_IDS.LIST_PRESET_COVER_IMAGES, {}, 'xwa2_list_preset_cover_images'),
510
+
511
+ // ── Business / Catalog ────────────────────────────────────────────────
512
+ getBusinessProfileWebsiteShimUrl: bizJid =>
513
+ www(WWW_GQL_IDS.GET_BUSINESS_PROFILE_WEBSITE_SHIM_URL, { biz_jid: bizJid }, 'xwa2_get_business_profile_website_shim_url'),
514
+ waWebBizCreateOrderJob: input =>
515
+ www(WWW_GQL_IDS.WA_WEB_BIZ_CREATE_ORDER_JOB, { input }, 'xwa2_wa_web_biz_create_order_job'),
516
+ waWebBizGraphqlRefreshCart: cartId =>
517
+ www(WWW_GQL_IDS.WA_WEB_BIZ_GRAPHQL_REFRESH_CART, { cart_id: cartId }, 'xwa2_wa_web_biz_graphql_refresh_cart'),
518
+ waWebBizQueryOrderJob: jobId =>
519
+ www(WWW_GQL_IDS.WA_WEB_BIZ_QUERY_ORDER_JOB, { job_id: jobId }, 'xwa2_wa_web_biz_query_order_job'),
520
+ whatsappCatalogReportProduct: (productId, reason) =>
521
+ www(WWW_GQL_IDS.WHATSAPP_CATALOG_REPORT_PRODUCT, { product_id: productId, reason }, 'xwa2_whatsapp_catalog_report_product'),
522
+ brandIdsGetPhoneNumbers: brandId =>
523
+ www(WWW_GQL_IDS.BRAND_IDS_GET_PHONE_NUMBERS, { brand_id: brandId }, 'xwa2_brand_ids_get_phone_numbers'),
524
+ businessInteractionPills: bizJid =>
525
+ www(WWW_GQL_IDS.BUSINESS_INTERACTION_PILLS, { biz_jid: bizJid }, 'xwa2_business_interaction_pills'),
526
+ externalCtxAuthoriseWAChat: input =>
527
+ www(WWW_GQL_IDS.EXTERNAL_CTX_AUTHORISE_WA_CHAT, { input }, 'xwa2_external_ctx_authorise_wa_chat'),
528
+
529
+ // ── Payments (Brazil PIX) ─────────────────────────────────────────────
530
+ brGetAuthOptions: () => www(WWW_GQL_IDS.BR_GET_AUTH_OPTIONS, {}, 'xwa2_br_get_auth_options'),
531
+ brSaveCpf: cpf => www(WWW_GQL_IDS.BR_SAVE_CPF, { cpf }, 'xwa2_br_save_cpf'),
532
+ brCreateEnrollment: options => www(WWW_GQL_IDS.CREATE_ENROLLMENT, options, 'xwa2_create_enrollment'),
533
+ brCompleteEnrollmentRegistration: input =>
534
+ www(WWW_GQL_IDS.BR_COMPLETE_ENROLLMENT_REGISTRATION, { input }, 'xwa2_br_complete_enrollment_registration'),
535
+ brGetEnrollmentOptions: () =>
536
+ www(WWW_GQL_IDS.GET_ENROLLMENT_REGISTRATION_OPTIONS, {}, 'xwa2_get_enrollment_registration_options'),
537
+ brAuthorizePayment: input =>
538
+ www(WWW_GQL_IDS.BR_AUTHORIZE_BIOMETRIC_PAYMENT, { input }, 'xwa2_br_authorize_biometric_payment'),
539
+ getPixBankList: () => www(WWW_GQL_IDS.GET_PIX_BANK_LIST, {}, 'xwa2_get_pix_bank_list'),
540
+ getMerchantPixInfo: merchantId =>
541
+ www(WWW_GQL_IDS.GET_MERCHANT_PIX_INFO, { merchant_id: merchantId }, 'xwa2_get_merchant_pix_info'),
542
+ completePixTransaction: input =>
543
+ www(WWW_GQL_IDS.COMPLETE_PIX_TRANSACTION, { input }, 'xwa2_complete_pix_transaction'),
544
+ payWithPixPrecheck: input => www(WWW_GQL_IDS.PAY_WITH_PIX_PRECHECK, { input }, 'xwa2_pay_with_pix_precheck'),
545
+ paymentHealthChecks: () => www(WWW_GQL_IDS.PAYMENT_HEALTH_CHECKS, {}, 'xwa2_payment_health_checks'),
546
+ getPaymentKey: () => www(WWW_GQL_IDS.GET_PAYMENT_KEY, {}, 'xwa2_get_payment_key'),
547
+ genCreatePaymentKey: input => www(WWW_GQL_IDS.GEN_CREATE_PAYMENT_KEY, { input }, 'xwa2_gen_create_payment_key'),
548
+ genUpdatePaymentKey: input => www(WWW_GQL_IDS.GEN_UPDATE_PAYMENT_KEY, { input }, 'xwa2_gen_update_payment_key'),
549
+ genDeletePaymentKey: keyId =>
550
+ www(WWW_GQL_IDS.GEN_DELETE_PAYMENT_KEY, { key_id: keyId }, 'xwa2_gen_delete_payment_key'),
551
+ getBillerPlans: billerId => www(WWW_GQL_IDS.GET_BILLER_PLANS, { biller_id: billerId }, 'xwa2_get_biller_plans'),
552
+ getBillReceipt: billId => www(WWW_GQL_IDS.GET_BILL_RECEIPT, { bill_id: billId }, 'xwa2_get_bill_receipt'),
553
+ getBillComplaintUrl: billId =>
554
+ www(WWW_GQL_IDS.GET_BILL_COMPLAINT_URL, { bill_id: billId }, 'xwa2_get_bill_complaint_url'),
555
+ paymentReminderCreate: input => www(WWW_GQL_IDS.PAYMENT_REMINDER_CREATE, { input }, 'xwa2_payment_reminder_create'),
556
+ paymentReminderGet: reminderId =>
557
+ www(WWW_GQL_IDS.PAYMENT_REMINDER_GET, { reminder_id: reminderId }, 'xwa2_payment_reminder_get'),
558
+ paymentReminderCancel: reminderId =>
559
+ www(WWW_GQL_IDS.PAYMENT_REMINDER_CANCEL, { reminder_id: reminderId }, 'xwa2_payment_reminder_cancel'),
560
+ paymentReminderStop: reminderId =>
561
+ www(WWW_GQL_IDS.PAYMENT_REMINDER_STOP, { reminder_id: reminderId }, 'xwa2_payment_reminder_stop'),
562
+ genShareRemittanceIntent: input =>
563
+ www(WWW_GQL_IDS.GEN_SHARE_REMITTANCE_TRANSACTION_INTENT, { input }, 'xwa2_gen_share_remittance_transaction_intent'),
564
+ getRemittanceTransactionDetails: txId =>
565
+ www(WWW_GQL_IDS.GET_REMITTANCE_TRANSACTION_DETAILS, { transaction_id: txId }, 'xwa2_get_remittance_transaction_details'),
566
+ saveRemittancePaymentMessageId: input =>
567
+ www(WWW_GQL_IDS.SAVE_REMITTANCE_PAYMENT_MESSAGE_ID, { input }, 'xwa2_save_remittance_payment_message_id'),
568
+ saveSenderPaymentMessagePreference: preference =>
569
+ www(WWW_GQL_IDS.SAVE_SENDER_PAYMENT_MESSAGE_PREFERENCE, { preference }, 'xwa2_save_sender_payment_message_preference'),
570
+ getEligibility: (feature = null) =>
571
+ www(WWW_GQL_IDS.GET_ELIGIBILITY, feature ? { feature } : {}, 'xwa2_get_eligibility'),
572
+ enrollAndGetIncentiveReferralId: input =>
573
+ www(WWW_GQL_IDS.ENROLL_AND_GET_INCENTIVE_REFERRAL_ID, { input }, 'xwa2_enroll_and_get_incentive_referral_id'),
574
+ getSubscriptionsAndFeatureFlags: () =>
575
+ www(WWW_GQL_IDS.GET_SUBSCRIPTIONS_AND_FEATURE_FLAGS, {}, 'xwa2_get_subscriptions_and_feature_flags'),
576
+
577
+ // ── Payments (UPI India) ──────────────────────────────────────────────
578
+ getUpiAccounts: () => www(WWW_GQL_IDS.GET_UPI_ACCOUNTS, {}, 'xwa2_get_upi_accounts'),
579
+ getUpiLiteDetails: () => www(WWW_GQL_IDS.GET_UPI_LITE_DETAILS, {}, 'xwa2_get_upi_lite_details'),
580
+ getUpiToken: upiAccountId => www(WWW_GQL_IDS.GET_UPI_TOKEN, { upi_account_id: upiAccountId }, 'xwa2_get_upi_token'),
581
+ getUpiPurposeLimitingKey: () =>
582
+ www(WWW_GQL_IDS.GET_UPI_PURPOSE_LIMITING_KEY, {}, 'xwa2_get_upi_purpose_limiting_key'),
583
+ upiCreateMandate: input => www(WWW_GQL_IDS.UPI_CREATE_MANDATE, { input }, 'xwa2_upi_create_mandate'),
584
+ upiAcceptMandate: mandateId =>
585
+ www(WWW_GQL_IDS.UPI_ACCEPT_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_accept_mandate'),
586
+ upiRejectMandate: mandateId =>
587
+ www(WWW_GQL_IDS.UPI_REJECT_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_reject_mandate'),
588
+ upiExecuteMandate: mandateId =>
589
+ www(WWW_GQL_IDS.UPI_EXECUTE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_execute_mandate'),
590
+ upiPauseMandate: mandateId =>
591
+ www(WWW_GQL_IDS.UPI_PAUSE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_pause_mandate'),
592
+ upiResumeMandate: mandateId =>
593
+ www(WWW_GQL_IDS.UPI_RESUME_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_resume_mandate'),
594
+ upiRevokeMandate: mandateId =>
595
+ www(WWW_GQL_IDS.UPI_REVOKE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_revoke_mandate'),
596
+ pmtaGetAiControls: () => www(WWW_GQL_IDS.PMTA_GET_AI_CONTROLS, {}, 'xwa2_pmta_get_ai_controls'),
597
+ pmtaSetAiControls: controls => www(WWW_GQL_IDS.PMTA_SET_AI_CONTROLS, { controls }, 'xwa2_pmta_set_ai_controls'),
598
+
599
+ // ── Wamo commerce (via www schema) ────────────────────────────────────
600
+ wamoSubQueryStatus: newsletterJid =>
601
+ www(WWW_GQL_IDS.WAMO_SUB_QUERY_STATUS, { newsletter_jid: newsletterJid }, 'xwa2_wamo_sub_query_status'),
602
+ wamoSubCancelSubscription: (newsletterJid, subscriptionId) =>
603
+ www(WWW_GQL_IDS.WAMO_SUB_CANCEL_SUBSCRIPTION, { newsletter_jid: newsletterJid, subscription_id: subscriptionId }, 'xwa2_wamo_sub_cancel_subscription'),
604
+ wamoSubOverrideStatus: (newsletterJid, status) =>
605
+ www(WWW_GQL_IDS.WAMO_SUB_OVERRIDE_STATUS, { newsletter_jid: newsletterJid, status }, 'xwa2_wamo_sub_override_status'),
606
+ wamoAfsSubscriptionInfo: newsletterJid =>
607
+ www(WWW_GQL_IDS.WAMO_AFS_SUBSCRIPTION_INFO, { newsletter_jid: newsletterJid }, 'xwa2_wamo_afs_subscription_info'),
608
+ wamoPromoIdQuery: newsletterJid =>
609
+ www(WWW_GQL_IDS.WAMO_PROMO_ID_QUERY, { newsletter_jid: newsletterJid }, 'xwa2_wamo_promo_id_query'),
610
+ wamoPromoIdSet: (newsletterJid, promoId) =>
611
+ www(WWW_GQL_IDS.WAMO_PROMO_ID_SET, { newsletter_jid: newsletterJid, promo_id: promoId }, 'xwa2_wamo_promo_id_set'),
612
+ wamoPromoIdDelete: newsletterJid =>
613
+ www(WWW_GQL_IDS.WAMO_PROMO_ID_DELETE, { newsletter_jid: newsletterJid }, 'xwa2_wamo_promo_id_delete'),
614
+
615
+ // ── User / account ────────────────────────────────────────────────────
616
+ facebookAccountName: () => www(WWW_GQL_IDS.FACEBOOK_ACCOUNT_NAME, {}, 'xwa2_facebook_account_name'),
617
+ instagramAccountName: () => www(WWW_GQL_IDS.INSTAGRAM_ACCOUNT_NAME, {}, 'xwa2_instagram_account_name'),
618
+ getSignupMetadata: () => www(WWW_GQL_IDS.GET_SIGNUP_METADATA, {}, 'xwa2_get_signup_metadata'),
619
+ registerInit: input => www(WWW_GQL_IDS.REGISTER_INIT, { input }, 'xwa2_register_init'),
620
+ registerAllAccounts: () => www(WWW_GQL_IDS.REGISTER_ALL_ACCOUNTS, {}, 'xwa2_register_all_accounts'),
621
+ checkDeviceRegistration: deviceId =>
622
+ www(WWW_GQL_IDS.CHECK_DEVICE_REGISTRATION, { device_id: deviceId }, 'xwa2_check_device_registration'),
623
+ canonicalEntQueryFeature: feature =>
624
+ www(WWW_GQL_IDS.CANONICAL_ENT_QUERY_FEATURE, { feature }, 'xwa2_canonical_ent_query_feature'),
625
+ canonicalEntSetupFeature: (feature, options = {}) =>
626
+ www(WWW_GQL_IDS.CANONICAL_ENT_SETUP_FEATURE, { feature,...options }, 'xwa2_canonical_ent_setup_feature'),
627
+ canonicalEntTeardownFeature: feature =>
628
+ www(WWW_GQL_IDS.CANONICAL_ENT_TEARDOWN_FEATURE, { feature }, 'xwa2_canonical_ent_teardown_feature'),
629
+ wwwCanonicalUserValid: token =>
630
+ www(WWW_GQL_IDS.WWW_CANONICAL_USER_VALID, { token }, 'xwa2_www_canonical_user_valid'),
631
+ waffleUserAgeCheck: () => www(WWW_GQL_IDS.WAFFLE_USER_AGE_CHECK, {}, 'xwa2_waffle_user_age_check'),
632
+ getAiPredictedAge: () => www(WWW_GQL_IDS.GET_AI_PREDICTED_AGE, {}, 'xwa2_get_ai_predicted_age'),
633
+
634
+ // ── Support / misc ────────────────────────────────────────────────────
635
+ submitBugReport: input => www(WWW_GQL_IDS.SUBMIT_BUG_REPORT, { input }, 'xwa2_submit_bug_report'),
636
+ supportContactForm: input => www(WWW_GQL_IDS.SUPPORT_CONTACT_FORM, { input }, 'xwa2_support_contact_form'),
637
+ createGroupSuspensionAppeal: (groupJid, reason) =>
638
+ www(WWW_GQL_IDS.CREATE_GROUP_SUSPENSION_APPEAL, { group_jid: groupJid, reason }, 'xwa2_create_group_suspension_appeal'),
639
+ createDogfoodingTask: input => www(WWW_GQL_IDS.CREATE_DOGFOODING_TASK, { input }, 'xwa2_create_dogfooding_task'),
640
+ hatchChannelLink: input => www(WWW_GQL_IDS.HATCH_CHANNEL_LINK, { input }, 'xwa2_hatch_channel_link'),
641
+ hatchChannelMetadata: channelId =>
642
+ www(WWW_GQL_IDS.HATCH_CHANNEL_METADATA, { channel_id: channelId }, 'xwa2_hatch_channel_metadata'),
643
+ oxygenChannelOptIn: channelId =>
644
+ www(WWW_GQL_IDS.OXYGEN_CHANNEL_OPT_IN, { channel_id: channelId }, 'xwa2_oxygen_channel_opt_in'),
645
+ oxygenChannelOptOut: channelId =>
646
+ www(WWW_GQL_IDS.OXYGEN_CHANNEL_OPT_OUT, { channel_id: channelId }, 'xwa2_oxygen_channel_opt_out'),
647
+ oxygenChannelStatus: channelId =>
648
+ www(WWW_GQL_IDS.OXYGEN_CHANNEL_STATUS, { channel_id: channelId }, 'xwa2_oxygen_channel_status'),
649
+ paslGetLoggerConfig: () => www(WWW_GQL_IDS.PASL_GET_LOGGER_CONFIG, {}, 'xwa2_pasl_get_logger_config'),
650
+ quickPromotionBatchFetch: input =>
651
+ www(WWW_GQL_IDS.QUICK_PROMOTION_BATCH_FETCH, { input }, 'xwa2_quick_promotion_batch_fetch'),
652
+ waQuickPromotionLog: events => www(WWW_GQL_IDS.WA_QUICK_PROMOTION_LOG, { events }, 'xwa2_wa_quick_promotion_log'),
653
+ waSupportMessageFeedback: input =>
654
+ www(WWW_GQL_IDS.WA_SUPPORT_MESSAGE_FEEDBACK, { input }, 'xwa2_wa_support_message_feedback'),
655
+ waGizmoPostMetadata: postId =>
656
+ www(WWW_GQL_IDS.WA_GIZMO_POST_METADATA, { post_id: postId }, 'xwa2_wa_gizmo_post_metadata'),
657
+ unifiedConversationStarters: chatJid =>
658
+ www(WWW_GQL_IDS.UNIFIED_CONVERSATION_STARTERS, { chat_jid: chatJid }, 'xwa2_unified_conversation_starters'),
659
+ getSubscribedTasksForThread: threadId =>
660
+ www(WWW_GQL_IDS.GET_SUBSCRIBED_TASKS_FOR_THREAD, { thread_id: threadId }, 'xwa2_get_subscribed_tasks_for_thread'),
661
+ editGenAiTask: (taskId, updates) =>
662
+ www(WWW_GQL_IDS.EDIT_GEN_AI_TASK, { task_id: taskId,...updates }, 'xwa2_edit_gen_ai_task'),
663
+ deleteGenAiTasks: taskIds =>
664
+ www(WWW_GQL_IDS.DELETE_GEN_AI_TASKS, { task_ids: taskIds }, 'xwa2_delete_gen_ai_tasks'),
665
+ deleteUserBillAccount: () => www(WWW_GQL_IDS.DELETE_USER_BILL_ACCOUNT, {}, 'xwa2_delete_user_bill_account'),
666
+ metaPoiTypeAhead: query => www(WWW_GQL_IDS.META_POI_TYPE_AHEAD, { query }, 'xwa2_meta_poi_type_ahead'),
667
+ metaConfigFetch: () => www(WWW_GQL_IDS.META_CONFIG_FETCH, {}, 'xwa2_meta_config_fetch'),
668
+
669
+ // ── Facebook schema ───────────────────────────────────────────────────
670
+ bizAlertsNotificationList: () =>
671
+ fb(FACEBOOK_GQL_IDS.BIZ_ALERTS_NOTIFICATION_LIST, {}, 'xwa2_biz_alerts_notification_list'),
672
+ bizAlertsUpdate: (alertId, read) =>
673
+ fb(FACEBOOK_GQL_IDS.BIZ_ALERTS_UPDATE, { alert_id: alertId, read }, 'xwa2_biz_alerts_update'),
674
+ ctwaAdsContextBiz: bizJid =>
675
+ fb(FACEBOOK_GQL_IDS.CTWA_ADS_CONTEXT_BIZ, { biz_jid: bizJid }, 'xwa2_ctwa_ads_context_biz'),
676
+ digitalContentIapPurchaseQuote: input =>
677
+ fb(FACEBOOK_GQL_IDS.DIGITAL_CONTENT_IAP_PURCHASE_QUOTE, { input }, 'xwa2_digital_content_iap_purchase_quote'),
678
+ getCompliance: () => fb(FACEBOOK_GQL_IDS.GET_COMPLIANCE, {}, 'xwa2_get_compliance'),
679
+ setCompliance: (complianceType, accepted) =>
680
+ fb(FACEBOOK_GQL_IDS.SET_COMPLIANCE, { compliance_type: complianceType, accepted }, 'xwa2_set_compliance'),
681
+ getCustomUrls: () => fb(FACEBOOK_GQL_IDS.GET_CUSTOM_URLS, {}, 'xwa2_get_custom_urls'),
682
+ getDcpProducts: (categoryId = null) =>
683
+ fb(FACEBOOK_GQL_IDS.GET_DCP_PRODUCTS, categoryId? { category_id: categoryId } : {}, 'xwa2_get_dcp_products'),
684
+ acDcCreateCommerceNonce: input =>
685
+ fb(FACEBOOK_GQL_IDS.ACDC_CREATE_COMMERCE_NONCE, { input }, 'xwa2_acdc_create_commerce_nonce'),
686
+ fbUsernameRecommendations: (source = null) =>
687
+ fb(FACEBOOK_GQL_IDS.USERNAME_RECOMMENDATIONS, source? { source } : {}, 'xwa2_username_recommendations'),
688
+
689
+ // ── Wamo platform schema (form-encoded, separate endpoint) ────────────
690
+ wamoUserBasic: () => wamo(WAMO_GQL_IDS.USER_BASIC, {}, 'xwa2_wamo_user_basic'),
691
+ wamoCreateUser: input => wamo(WAMO_GQL_IDS.CREATE_USER, { input }, 'xwa2_wamo_create_user'),
692
+ wamoDeleteUser: () => wamo(WAMO_GQL_IDS.DELETE_USER, {}, 'xwa2_wamo_delete_user'),
693
+ wamoLinkUser: input => wamo(WAMO_GQL_IDS.LINK_USER, { input }, 'xwa2_wamo_link_user'),
694
+ wamoHeartbeat: () => wamo(WAMO_GQL_IDS.HEARTBEAT, {}, 'xwa2_wamo_heartbeat'),
695
+ wamoHidePage: pageId => wamo(WAMO_GQL_IDS.HIDE_PAGE, { page_id: pageId }, 'xwa2_wamo_hide_page'),
696
+ wamoUnhidePage: pageId => wamo(WAMO_GQL_IDS.UNHIDE_PAGE, { page_id: pageId }, 'xwa2_wamo_unhide_page'),
697
+ wamoUnhidePageV2: pageId => wamo(WAMO_GQL_IDS.UNHIDE_PAGE_V2, { page_id: pageId }, 'xwa2_wamo_unhide_page_v2'),
698
+ wamoHidePromo: promoId => wamo(WAMO_GQL_IDS.HIDE_PROMO, { promo_id: promoId }, 'xwa2_wamo_hide_promo'),
699
+ wamoReportPromo: (promoId, reason) =>
700
+ wamo(WAMO_GQL_IDS.REPORT_PROMO, { promo_id: promoId, reason }, 'xwa2_wamo_report_promo'),
701
+ wamoStartViewerSession: pageId =>
702
+ wamo(WAMO_GQL_IDS.START_VIEWER_SESSION, { page_id: pageId }, 'xwa2_wamo_start_viewer_session'),
703
+ wamoBloksGetLayout: (layoutId, context = {}) =>
704
+ wamo(WAMO_GQL_IDS.BLOKS_GET_LAYOUT, { layout_id: layoutId,...context }, 'xwa2_wamo_bloks_get_layout'),
705
+ wamoDyiJobCreate: input => wamo(WAMO_GQL_IDS.DYI_JOB_CREATE, { input }, 'xwa2_wamo_dyi_job_create'),
706
+ wamoDyiJobDelete: jobId => wamo(WAMO_GQL_IDS.DYI_JOB_DELETE, { job_id: jobId }, 'xwa2_wamo_dyi_job_delete'),
707
+ wamoDyiJobStatus: jobId => wamo(WAMO_GQL_IDS.DYI_JOB_STATUS, { job_id: jobId }, 'xwa2_wamo_dyi_job_status'),
708
+
709
+ // ── ID dictionaries (for raw access) ─────────────────────────────────
710
+ WWW_GQL_IDS,
711
+ FACEBOOK_GQL_IDS,
712
+ WAMO_GQL_IDS,
713
+ CLIENT_PERSIST_GQL_IDS,
714
+ ENDPOINTS
715
+ }
716
+ }