@badzz88/baileys 8.5.4 → 8.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +1 -1
  2. package/WAProto/WAProto.proto +75 -1256
  3. package/WAProto/index.d.ts +19729 -36122
  4. package/WAProto/index.js +132193 -178538
  5. package/engine-requirements.js +15 -7
  6. package/lib/Defaults/index.js +14 -22
  7. package/lib/Signal/Group/group_cipher.js +5 -5
  8. package/lib/Signal/Group/keyhelper.js +4 -4
  9. package/lib/Signal/Group/sender-chain-key.js +2 -2
  10. package/lib/Signal/Group/sender-key-distribution-message.js +1 -1
  11. package/lib/Signal/Group/sender-key-message.js +3 -3
  12. package/lib/Signal/Group/sender-key-record.js +1 -1
  13. package/lib/Signal/Group/sender-message-key.js +5 -5
  14. package/lib/Signal/libsignal.js +28 -39
  15. package/lib/Signal/lid-mapping.js +8 -28
  16. package/lib/Socket/aigroups.js +5 -5
  17. package/lib/Socket/business.js +11 -3
  18. package/lib/Socket/chats.js +319 -668
  19. package/lib/Socket/communities.js +89 -85
  20. package/lib/Socket/graphql.js +228 -435
  21. package/lib/Socket/groups.js +211 -132
  22. package/lib/Socket/index.js +7 -9
  23. package/lib/Socket/interactive-handler.js +60 -117
  24. package/lib/Socket/interop.js +175 -56
  25. package/lib/Socket/luxu.js +387 -0
  26. package/lib/Socket/managed-account.js +48 -79
  27. package/lib/Socket/messages-recv.js +340 -898
  28. package/lib/Socket/messages-send.js +160 -462
  29. package/lib/Socket/mex.js +53 -40
  30. package/lib/Socket/newsletter.js +295 -291
  31. package/lib/Socket/privacy.js +265 -77
  32. package/lib/Socket/registration.js +157 -164
  33. package/lib/Socket/socket.js +199 -181
  34. package/lib/Socket/text-router.js +83 -0
  35. package/lib/Socket/username.js +227 -144
  36. package/lib/Store/keyed-db.js +108 -0
  37. package/lib/Store/make-cache-manager-store.js +2 -2
  38. package/lib/Store/make-in-memory-store.js +141 -25
  39. package/lib/Types/Auth.js +3 -3
  40. package/lib/Types/Label.js +1 -1
  41. package/lib/Types/LabelAssociation.js +1 -1
  42. package/lib/Types/Mex.js +112 -0
  43. package/lib/Types/Newsletter.js +65 -96
  44. package/lib/Types/State.js +4 -4
  45. package/lib/Types/index.js +1 -1
  46. package/lib/Utils/auth-utils.js +57 -52
  47. package/lib/Utils/browser-utils.js +1 -1
  48. package/lib/Utils/business.js +6 -2
  49. package/lib/Utils/chat-utils.js +38 -102
  50. package/lib/Utils/command-loader.d.ts +31 -0
  51. package/lib/Utils/command-loader.js +100 -0
  52. package/lib/Utils/companion-reg-client-utils.js +42 -0
  53. package/lib/Utils/crypto.js +84 -54
  54. package/lib/Utils/curve25519-js.js +275 -0
  55. package/lib/Utils/decode-wa-message.js +83 -316
  56. package/lib/Utils/event-buffer.js +61 -37
  57. package/lib/Utils/generics.js +103 -157
  58. package/lib/Utils/group-history.js +12 -3
  59. package/lib/Utils/history.js +15 -15
  60. package/lib/Utils/index.js +5 -1
  61. package/lib/Utils/link-preview.js +8 -3
  62. package/lib/Utils/lt-hash.js +35 -2
  63. package/lib/Utils/make-mutex.js +1 -1
  64. package/lib/Utils/message-retry-manager.js +92 -27
  65. package/lib/Utils/messages-media.js +130 -159
  66. package/lib/Utils/messages.js +566 -144
  67. package/lib/Utils/meta-ai-msmsg.js +202 -62
  68. package/lib/Utils/native-bridge.js +82 -0
  69. package/lib/Utils/noise-handler.js +21 -19
  70. package/lib/Utils/offline-node-processor.js +8 -3
  71. package/lib/Utils/pre-key-manager.js +23 -13
  72. package/lib/Utils/process-message.js +106 -197
  73. package/lib/Utils/reporting-utils.js +2 -2
  74. package/lib/Utils/session-pool.d.ts +16 -0
  75. package/lib/Utils/session-pool.js +94 -0
  76. package/lib/Utils/signal.js +63 -28
  77. package/lib/Utils/stanza-ack.js +12 -39
  78. package/lib/Utils/sticker.d.ts +17 -0
  79. package/lib/Utils/sticker.js +145 -0
  80. package/lib/Utils/sync-action-utils.js +7 -4
  81. package/lib/Utils/tc-token-utils.js +25 -20
  82. package/lib/Utils/use-multi-file-auth-state.js +14 -30
  83. package/lib/Utils/validate-connection.js +19 -59
  84. package/lib/Utils/view-once-cache.d.ts +9 -0
  85. package/lib/Utils/view-once-cache.js +79 -0
  86. package/lib/WABinary/decode.js +16 -50
  87. package/lib/WABinary/encode.js +224 -54
  88. package/lib/WABinary/generic-utils.js +97 -7
  89. package/lib/WABinary/jid-utils.js +14 -27
  90. package/lib/WAM/encode.js +7 -7
  91. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +1 -58
  92. package/lib/WAUSync/Protocols/USyncContactProtocol.js +1 -7
  93. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +5 -13
  94. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +4 -1
  95. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +7 -20
  96. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +1 -1
  97. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +2 -2
  98. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +2 -7
  99. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +1 -1
  100. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +1 -2
  101. package/lib/WAUSync/Protocols/index.js +0 -1
  102. package/lib/WAUSync/USyncQuery.js +6 -77
  103. package/lib/WAUSync/USyncUser.js +8 -16
  104. package/lib/WAUSync/index.js +0 -1
  105. package/lib/antiban.js +854 -608
  106. package/lib/index.js +1 -1
  107. package/package.json +20 -16
@@ -1,30 +1,32 @@
1
1
  'use strict'
2
2
  Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.makeGraphQLSocket =
4
- exports.executeWWWGraphQL =
5
- exports.executeWamoGraphQL =
6
- exports.executeFacebookGraphQL =
7
- void 0
3
+ exports.makeGraphQLSocket = exports.executeWWWGraphQL = exports.executeWamoGraphQL = exports.executeFacebookGraphQL = void 0
8
4
 
9
5
  const boom_1 = require('@hapi/boom')
10
6
 
11
-
7
+ // Endpoints confirmed from APX.java and WamoGraphQLExecutor.java
12
8
  const ENDPOINTS = {
13
9
  WWW: 'https://graph.whatsapp.com/graphql',
14
10
  ACS: 'https://acs.whatsapp.com/graphql',
15
-
16
-
17
-
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.
18
14
  WAMO_PATH: '/api/wamo/graphql/'
19
15
  }
20
16
 
21
-
22
-
23
-
17
+ // Default fallback token — only valid as a no-op / anonymous placeholder.
18
+ // Real sessions must supply a token obtained via wwwGetNonce + wwwExchangeNonce.
19
+ // Confirmed from APX.java: "WA|1015890928915437|3201f239340c1c8ec6262a6dad04200e"
24
20
  const WAMO_APP_ID = '1015890928915437'
25
21
  const WWW_DEFAULT_TOKEN = `WA|${WAMO_APP_ID}|3201f239340c1c8ec6262a6dad04200e`
26
22
 
27
-
23
+ /**
24
+ * Parse a GraphQL JSON response and extract the data at the given path.
25
+ * 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
+ */
28
30
  const parseGraphQLResponse = (json, dataPath) => {
29
31
  if (json.errors?.length) {
30
32
  const msgs = json.errors.map(e => e.message || 'Unknown error').join(', ')
@@ -32,21 +34,28 @@ const parseGraphQLResponse = (json, dataPath) => {
32
34
  throw new boom_1.Boom(`GraphQL error: ${msgs}`, { statusCode: code, data: json.errors[0] })
33
35
  }
34
36
  const response = dataPath ? json?.data?.[dataPath] : json?.data
35
- if (response === undefined) {
37
+ if (typeof response === 'undefined') {
36
38
  throw new boom_1.Boom('Unexpected GraphQL response structure', { statusCode: 400, data: json })
37
39
  }
38
40
  return response
39
41
  }
40
42
 
41
-
42
- const executeWWWGraphQL = async (
43
- docId,
44
- variables,
45
- accessToken,
46
- dataPath = null,
47
- lang = 'en',
48
- endpoint = ENDPOINTS.WWW
49
- ) => {
43
+ /**
44
+ * 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
+ */
58
+ const executeWWWGraphQL = async (docId, variables, accessToken, dataPath = null, lang = 'en', endpoint = ENDPOINTS.WWW) => {
50
59
  const token = accessToken || WWW_DEFAULT_TOKEN
51
60
  const body = JSON.stringify({ access_token: token, doc_id: String(docId), variables, lang })
52
61
  const res = await fetch(endpoint, {
@@ -63,13 +72,39 @@ const executeWWWGraphQL = async (
63
72
 
64
73
  exports.executeWWWGraphQL = executeWWWGraphQL
65
74
 
66
-
75
+ /**
76
+ * 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
+ */
67
89
  const executeFacebookGraphQL = (docId, variables, accessToken, dataPath = null, lang = 'en') =>
68
90
  executeWWWGraphQL(docId, variables, accessToken, dataPath, lang, ENDPOINTS.ACS)
69
91
 
70
92
  exports.executeFacebookGraphQL = executeFacebookGraphQL
71
93
 
72
-
94
+ /**
95
+ * 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
+ */
73
108
  const executeWamoGraphQL = async (docId, variables, wamoAuth = {}, dataPath = null, wamoHost = 'wamo.whatsapp.net') => {
74
109
  const { accessToken = WWW_DEFAULT_TOKEN, credential = '', userId = '' } = wamoAuth
75
110
  const params = new URLSearchParams({
@@ -95,42 +130,42 @@ const executeWamoGraphQL = async (docId, variables, wamoAuth = {}, dataPath = nu
95
130
 
96
131
  exports.executeWamoGraphQL = executeWamoGraphQL
97
132
 
98
-
133
+ // ── Wamo schema IDs (whatsapp-android-wamo_client_persist_ids.json) ──────────
99
134
  const WAMO_GQL_IDS = {
100
- BLOKS_GET_LAYOUT: '35761428053502960',
101
- CREATE_USER: '26643102025382056',
102
- DELETE_USER: '26847597944871230',
103
- DYI_JOB_CREATE: '35432158949761170',
104
- DYI_JOB_DELETE: '35418212507825480',
105
- DYI_JOB_STATUS: '26233222629644330',
106
- HEARTBEAT: '26147852544878404',
107
- HIDE_PAGE: '26762670266664464',
108
- HIDE_PROMO: '26672924455626300',
109
- LINK_USER: '26986545907702584',
110
- REPORT_PROMO: '26170110515981668',
111
- START_VIEWER_SESSION: '25895257976843090',
112
- UNHIDE_PAGE: '26357347627241176',
113
- UNHIDE_PAGE_V2: '26343585518664600',
114
- USER_BASIC: '26217108451265492'
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
115
150
  }
116
151
 
117
-
152
+ // ── Facebook schema IDs (whatsapp-android-facebook-schema_client_persist_ids.json) ──
118
153
  const FACEBOOK_GQL_IDS = {
119
- ACDC_CREATE_COMMERCE_NONCE: '24264828513176160',
120
- BIZ_ALERTS_NOTIFICATION_LIST: '25131061249916280',
121
- BIZ_ALERTS_UPDATE: '31887288120915504',
122
- CTWA_ADS_CONTEXT_BIZ: '26795336300063576',
123
- DIGITAL_CONTENT_IAP_PURCHASE_QUOTE: '24407486212227380',
124
- GET_COMPLIANCE: '25758882000383880',
125
- GET_CUSTOM_URLS: '24381430531538260',
126
- GET_DCP_PRODUCTS: '24562080436794784',
127
- SET_COMPLIANCE: '25904531552477560',
128
- USERNAME_RECOMMENDATIONS: '24622018447392760'
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
129
164
  }
130
165
 
131
-
166
+ // ── WWW schema IDs (whatsapp-android-www_client_persist_ids.json) ─────────────
132
167
  const WWW_GQL_IDS = {
133
-
168
+ // Meta AI
134
169
  AI_IMAGINE_EDIT_VIDEO_STYLES: '27077837108487436',
135
170
  AI_STUDIO_MEMORY_DELETE_ALL: '30717961127818650',
136
171
  AI_STUDIO_MEMORY_DELETE: '9705428856224794',
@@ -157,7 +192,7 @@ const WWW_GQL_IDS = {
157
192
  META_AI_COMMAND_GET: '26391941983796720',
158
193
  META_CONFIG_FETCH: '26061411083512356',
159
194
  META_POI_TYPE_AHEAD: '24998731673114764',
160
-
195
+ // Imagine / GenAI
161
196
  IMAGINE_CANVAS_CONTENT: '25210964258554530',
162
197
  IMAGINE_EDIT: '26387089294279400',
163
198
  IMAGINE_EDIT_VIDEO: '34646600944984156',
@@ -174,12 +209,12 @@ const WWW_GQL_IDS = {
174
209
  IMMERSIVE_CREATION_COMPLETE: '25751460157775136',
175
210
  IMMERSIVE_CREATION_CONFIG: '32047877418194044',
176
211
  GEN_AI_IMAGINE_3P_FOR_INTENTS: '26873302172253410',
177
-
212
+ // Avatar
178
213
  AVATAR_USER_RECOVERY: '24876192928715390',
179
214
  LOAD_AVATAR_POSES: '25262916630008930',
180
215
  SAVE_AVATAR_POSE: '24194307116878704',
181
216
  SELECTED_OR_DEFAULT_POSE: '24956844700642720',
182
-
217
+ // Events
183
218
  ADD_EVENT_INVITATIONS: '26095825686706664',
184
219
  CREATE_EVENT: '27259582783645464',
185
220
  DELETE_EVENT: '24671535952543812',
@@ -193,7 +228,7 @@ const WWW_GQL_IDS = {
193
228
  ROTATE_EVENT_INVITE_LINK: '27134834146102810',
194
229
  UPDATE_EVENT: '35415093074772810',
195
230
  UPDATE_EVENT_RSVP: '25954023907630800',
196
-
231
+ // Payments (Brazil PIX)
197
232
  BR_AUTHORIZE_BIOMETRIC_PAYMENT: '26860182267017040',
198
233
  BR_COMPLETE_ENROLLMENT_REGISTRATION: '34346544594993864',
199
234
  BR_GET_AUTH_OPTIONS: '26954282557514064',
@@ -221,7 +256,7 @@ const WWW_GQL_IDS = {
221
256
  PAY_WITH_PIX_PRECHECK: '25489011890740690',
222
257
  SAVE_REMITTANCE_PAYMENT_MESSAGE_ID: '26662893096684910',
223
258
  SAVE_SENDER_PAYMENT_MESSAGE_PREFERENCE: '35084492951197548',
224
-
259
+ // Payments (UPI India)
225
260
  GET_UPI_ACCOUNTS: '25691302307224710',
226
261
  GET_UPI_LITE_DETAILS: '25808397275476136',
227
262
  GET_UPI_PURPOSE_LIMITING_KEY: '25956012240759790',
@@ -234,10 +269,10 @@ const WWW_GQL_IDS = {
234
269
  UPI_RESUME_MANDATE: '26691956223780310',
235
270
  UPI_REVOKE_MANDATE: '25917438317930590',
236
271
  ENROLL_AND_GET_INCENTIVE_REFERRAL_ID: '26794756530116496',
237
-
272
+ // Payments (PMTA)
238
273
  PMTA_GET_AI_CONTROLS: '35629699809954692',
239
274
  PMTA_SET_AI_CONTROLS: '35241761128770990',
240
-
275
+ // Wamo (commerce, via www schema)
241
276
  WAMO_AFS_SUBSCRIPTION_INFO: '26173991525527520',
242
277
  WAMO_PROMO_ID_DELETE: '35985621974354824',
243
278
  WAMO_PROMO_ID_QUERY: '35176707691976468',
@@ -245,7 +280,7 @@ const WWW_GQL_IDS = {
245
280
  WAMO_SUB_CANCEL_SUBSCRIPTION: '24229142763394572',
246
281
  WAMO_SUB_OVERRIDE_STATUS: '24524888373876350',
247
282
  WAMO_SUB_QUERY_STATUS: '25015488928115160',
248
-
283
+ // Business / Catalog
249
284
  BRAND_IDS_GET_PHONE_NUMBERS: '33159498536982770',
250
285
  BUSINESS_INTERACTION_PILLS: '26641674408836110',
251
286
  GET_BUSINESS_PROFILE_WEBSITE_SHIM_URL: '32216187747994820',
@@ -254,7 +289,7 @@ const WWW_GQL_IDS = {
254
289
  WA_WEB_BIZ_QUERY_ORDER_JOB: '26400495852915744',
255
290
  WHATSAPP_CATALOG_REPORT_PRODUCT: '31943750621890740',
256
291
  EXTERNAL_CTX_AUTHORISE_WA_CHAT: '31162432756736010',
257
-
292
+ // User / account
258
293
  FACEBOOK_ACCOUNT_NAME: '25250471057951830',
259
294
  INSTAGRAM_ACCOUNT_NAME: '25214758521544980',
260
295
  GET_SIGNUP_METADATA: '26051411631187570',
@@ -267,7 +302,7 @@ const WWW_GQL_IDS = {
267
302
  CANONICAL_ENT_TEARDOWN_FEATURE: '30858669277110520',
268
303
  WWW_CANONICAL_USER_VALID: '25129145013440740',
269
304
  WAFFLE_USER_AGE_CHECK: '26764575806469450',
270
-
305
+ // Support / misc
271
306
  BOT_PROACTIVE_MSG_CONTROL_STATUS: '24651002484600324',
272
307
  BOT_PROACTIVE_MSG_CONTROL_UPDATE: '24122315620764244',
273
308
  BOT_PROFILES_SYNC: '25828046330205656',
@@ -295,7 +330,7 @@ const WWW_GQL_IDS = {
295
330
  FETCH_META_AI_MODES: '26061411083512356'
296
331
  }
297
332
 
298
-
333
+ // ── client-persist IDs (whatsapp-android_client-persist.json) ─────────────────
299
334
  const CLIENT_PERSIST_GQL_IDS = {
300
335
  ADD_MEMU_PROFILE_PHOTOS: '24668200096214476',
301
336
  CREATE_MEMU_PROFILE: '26069800429275530',
@@ -363,7 +398,13 @@ const makeGraphQLSocket = sock => {
363
398
  if (host) _wamoHost = host
364
399
  }
365
400
 
366
-
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
+ */
367
408
  const acquireAccessToken = () => {
368
409
  if (_accessToken) return Promise.resolve(_accessToken)
369
410
  if (_tokenPromise) return _tokenPromise
@@ -395,339 +436,198 @@ const makeGraphQLSocket = sock => {
395
436
  return {
396
437
  ...sock,
397
438
 
398
-
439
+ // ── Token management ──────────────────────────────────────────────────
399
440
  setAccessToken,
400
441
  setWamoAuth,
401
442
  acquireAccessToken,
402
443
 
403
-
444
+ // ── Raw GraphQL executors ─────────────────────────────────────────────
404
445
  executeWWWGraphQL,
405
446
  executeFacebookGraphQL,
406
447
  executeWamoGraphQL,
407
448
 
408
-
449
+ // ── Meta AI ───────────────────────────────────────────────────────────
409
450
  aiStudioMemoryQuery: () => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_QUERY, {}, 'xwa2_ai_studio_wa_memory_query'),
410
451
  aiStudioMemoryDelete: id => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE, { id }, 'xwa2_ai_studio_wa_memory_delete'),
411
- aiStudioMemoryDeleteAll: () =>
412
- www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE_ALL, {}, 'xwa2_ai_studio_wa_memory_delete_all'),
452
+ aiStudioMemoryDeleteAll: () => www(WWW_GQL_IDS.AI_STUDIO_MEMORY_DELETE_ALL, {}, 'xwa2_ai_studio_wa_memory_delete_all'),
413
453
  metaAiMemoryQuery: () => www(WWW_GQL_IDS.META_AI_MEMORY_QUERY, {}, 'xwa2_meta_ai_memory'),
414
454
  metaAiUnifiedMemoryQuery: () => www(WWW_GQL_IDS.META_AI_UNIFIED_MEMORY_QUERY, {}, 'xwa2_meta_ai_unified_memory'),
415
455
  metaAiMemoryDelete: id => www(WWW_GQL_IDS.META_AI_MEMORY_DELETE, { id }, 'xwa2_meta_ai_memory_delete'),
416
456
  metaAiMemoryDeleteAll: () => www(WWW_GQL_IDS.META_AI_MEMORY_DELETE_ALL, {}, 'xwa2_meta_ai_memory_delete_all'),
417
- metaAiMemoryOptOutStatus: () =>
418
- www(WWW_GQL_IDS.META_AI_MEMORY_OPT_OUT_STATUS, {}, 'xwa2_meta_ai_wa_memory_opt_out_status'),
419
- metaAiMemoryOptOutUpdate: optOut =>
420
- www(WWW_GQL_IDS.META_AI_MEMORY_OPT_OUT_UPDATE, { opt_out: optOut }, 'xwa2_meta_ai_wa_memory_opt_out_update'),
421
- metaAiCommandGet: (chatJid, command) =>
422
- www(WWW_GQL_IDS.META_AI_COMMAND_GET, { chat_jid: chatJid, command }, 'xwa2_meta_ai_command_get'),
423
- metaAiVoiceOptionsFetch: () =>
424
- www(WWW_GQL_IDS.META_AI_VOICE_OPTIONS_FETCH, {}, 'xwa2_meta_ai_voice_wa_options_fetch'),
425
- metaAiVoiceOptionsWithDefaultFetch: () =>
426
- www(WWW_GQL_IDS.META_AI_VOICE_OPTIONS_WITH_DEFAULT_FETCH, {}, 'xwa2_meta_ai_voice_wa_options_with_default_fetch'),
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'),
427
462
  aiSubscriptionState: () => www(WWW_GQL_IDS.AI_SUBSCRIPTION_STATE, {}, 'xwa2_ai_subscription_state'),
428
463
  aiSubscriptionUsageData: () => www(WWW_GQL_IDS.AI_SUBSCRIPTION_USAGE_DATA, {}, 'xwa2_ai_subscription_usage_data'),
429
464
 
430
-
465
+ // ── Imagine / GenAI (www) ─────────────────────────────────────────────
431
466
  imagineEdit: (imageId, prompt) => www(WWW_GQL_IDS.IMAGINE_EDIT, { image_id: imageId, prompt }, 'xwa2_imagine_edit'),
432
- imagineEditVideo: (videoId, styleId) =>
433
- www(WWW_GQL_IDS.IMAGINE_EDIT_VIDEO, { video_id: videoId, style_id: styleId }, 'xwa2_imagine_edit_video'),
434
- imagineExpand: (imageId, direction) =>
435
- www(WWW_GQL_IDS.IMAGINE_EXPAND, { image_id: imageId, direction }, 'xwa2_imagine_expand'),
436
- imagineGenerateAnimate: (imageId, options = {}) =>
437
- www(WWW_GQL_IDS.IMAGINE_GENERATE_ANIMATE, { image_id: imageId, ...options }, 'xwa2_imagine_generate_animate'),
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'),
438
470
  imagineIntents: prompt => www(WWW_GQL_IDS.IMAGINE_INTENTS, { prompt }, 'xwa2_imagine_intents'),
439
- imagineCanvasContent: canvasId =>
440
- www(WWW_GQL_IDS.IMAGINE_CANVAS_CONTENT, { canvas_id: canvasId }, 'xwa2_imagine_canvas_content'),
441
- imagineSpotlight: (prompt, options = {}) =>
442
- www(WWW_GQL_IDS.IMAGINE_SPOTLIGHT, { prompt, ...options }, 'xwa2_imagine_spotlight'),
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'),
443
473
  imagineVideoStatus: jobId => www(WWW_GQL_IDS.IMAGINE_VIDEO_STATUS, { job_id: jobId }, 'xwa2_imagine_video_status'),
444
- imagineReport: (imageId, reason) =>
445
- www(WWW_GQL_IDS.IMAGINE_REPORT, { image_id: imageId, reason }, 'xwa2_imagine_report'),
474
+ imagineReport: (imageId, reason) => www(WWW_GQL_IDS.IMAGINE_REPORT, { image_id: imageId, reason }, 'xwa2_imagine_report'),
446
475
  imagineMeIsOnboarded: () => www(WWW_GQL_IDS.IMAGINE_ME_IS_ONBOARDED, {}, 'xwa2_imagine_me_is_onboarded'),
447
476
  imagineMeOnboarding: input => www(WWW_GQL_IDS.IMAGINE_ME_ONBOARDING, { input }, 'xwa2_imagine_me_onboarding'),
448
- imagineMeOnboardingWithValidation: input =>
449
- www(WWW_GQL_IDS.IMAGINE_ME_ONBOARDING_WITH_VALIDATION, { input }, 'xwa2_imagine_me_onboarding_with_validation'),
450
- imagineMeDeleteOnboarding: () =>
451
- www(WWW_GQL_IDS.IMAGINE_ME_DELETE_ONBOARDING, {}, 'xwa2_imagine_me_delete_onboarding'),
452
- imagineEditVideoStyles: () =>
453
- www(WWW_GQL_IDS.AI_IMAGINE_EDIT_VIDEO_STYLES, {}, 'xwa2_ai_imagine_edit_video_styles'),
454
-
455
-
456
- aiCreationFetchCreatedBot: botId =>
457
- www(WWW_GQL_IDS.AI_CREATION_FETCH_CREATED_BOT, { bot_id: botId }, 'xwa2_ai_creation_fetch_created_bot'),
458
- aiCreationUpdatePersona: (botId, updates) =>
459
- www(WWW_GQL_IDS.AI_CREATION_UPDATE_PERSONA, { bot_id: botId, ...updates }, 'xwa2_ai_creation_update_persona'),
460
- aiCreationDeletePersona: botId =>
461
- www(WWW_GQL_IDS.AI_CREATION_DELETE_PERSONA, { bot_id: botId }, 'xwa2_ai_creation_delete_persona'),
462
- aiCreationUploadImage: imageData =>
463
- www(WWW_GQL_IDS.AI_CREATION_UPLOAD_IMAGE, { image_data: imageData }, 'xwa2_ai_creation_upload_image'),
464
- aiCreationCheckCreatedByMe: botId =>
465
- www(WWW_GQL_IDS.AI_CREATION_CHECK_CREATED_BY_ME, { bot_id: botId }, 'xwa2_ai_creation_check_created_by_me'),
466
- aiCreationFetchVoiceSample: voiceId =>
467
- www(WWW_GQL_IDS.AI_CREATION_FETCH_VOICE_SAMPLE, { voice_id: voiceId }, 'xwa2_ai_creation_fetch_voice_sample'),
468
- aiHomeFetchUserCreatedPersonas: () =>
469
- www(WWW_GQL_IDS.AI_HOME_FETCH_USER_CREATED_PERSONAS, {}, 'xwa2_ai_home_fetch_user_created_personas'),
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'),
470
489
  aiHomeSearch: query => www(WWW_GQL_IDS.AI_HOME_SEARCH, { query }, 'xwa2_ai_home_search'),
471
- aiCharacterUpdateHideStatus: (botId, hidden) =>
472
- www(
473
- WWW_GQL_IDS.AI_CHARACTER_UPDATE_HIDE_STATUS,
474
- { bot_id: botId, hidden },
475
- 'xwa2_ai_character_update_hide_status'
476
- ),
477
- botProactiveMessageControlStatus: botId =>
478
- www(WWW_GQL_IDS.BOT_PROACTIVE_MSG_CONTROL_STATUS, { bot_id: botId }, 'xwa2_bot_proactive_message_control_status'),
479
- botProactiveMessageControlUpdate: (botId, enabled) =>
480
- www(
481
- WWW_GQL_IDS.BOT_PROACTIVE_MSG_CONTROL_UPDATE,
482
- { bot_id: botId, enabled },
483
- 'xwa2_bot_proactive_message_control_update'
484
- ),
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'),
485
493
  botProfilesSync: () => www(WWW_GQL_IDS.BOT_PROFILES_SYNC, {}, 'xwa2_bot_profiles_sync'),
486
494
 
487
-
495
+ // ── Avatar ────────────────────────────────────────────────────────────
488
496
  avatarUserRecovery: () => www(WWW_GQL_IDS.AVATAR_USER_RECOVERY, {}, 'xwa2_avatar_user_recovery'),
489
497
  loadAvatarPoses: () => www(WWW_GQL_IDS.LOAD_AVATAR_POSES, {}, 'xwa2_load_avatar_poses'),
490
- saveAvatarPose: (poseId, options = {}) =>
491
- www(WWW_GQL_IDS.SAVE_AVATAR_POSE, { pose_id: poseId, ...options }, 'xwa2_save_avatar_pose'),
498
+ saveAvatarPose: (poseId, options = {}) => www(WWW_GQL_IDS.SAVE_AVATAR_POSE, { pose_id: poseId, ...options }, 'xwa2_save_avatar_pose'),
492
499
  selectedOrDefaultPose: () => www(WWW_GQL_IDS.SELECTED_OR_DEFAULT_POSE, {}, 'xwa2_selected_or_default_pose'),
493
500
 
494
-
501
+ // ── Events ────────────────────────────────────────────────────────────
495
502
  createEvent: input => www(WWW_GQL_IDS.CREATE_EVENT, { input }, 'xwa2_create_event'),
496
503
  getEvent: eventId => www(WWW_GQL_IDS.GET_EVENT, { event_id: eventId }, 'xwa2_get_event'),
497
- updateEvent: (eventId, updates) =>
498
- www(WWW_GQL_IDS.UPDATE_EVENT, { event_id: eventId, ...updates }, 'xwa2_update_event'),
504
+ updateEvent: (eventId, updates) => www(WWW_GQL_IDS.UPDATE_EVENT, { event_id: eventId, ...updates }, 'xwa2_update_event'),
499
505
  deleteEvent: eventId => www(WWW_GQL_IDS.DELETE_EVENT, { event_id: eventId }, 'xwa2_delete_event'),
500
506
  listEvents: (options = {}) => www(WWW_GQL_IDS.LIST_EVENTS, options, 'xwa2_list_events'),
501
- updateEventRsvp: (eventId, rsvp) =>
502
- www(WWW_GQL_IDS.UPDATE_EVENT_RSVP, { event_id: eventId, rsvp }, 'xwa2_update_event_rsvp'),
503
- addEventInvitations: (eventId, jids) =>
504
- www(WWW_GQL_IDS.ADD_EVENT_INVITATIONS, { event_id: eventId, jids }, 'xwa2_add_event_invitations'),
505
- removeEventInvitations: (eventId, jids) =>
506
- www(WWW_GQL_IDS.REMOVE_EVENT_INVITATIONS, { event_id: eventId, jids }, 'xwa2_remove_event_invitations'),
507
- removeSelfEventInvitation: eventId =>
508
- www(WWW_GQL_IDS.REMOVE_SELF_EVENT_INVITATION, { event_id: eventId }, 'xwa2_remove_self_event_invitation'),
509
- getOrCreateEventInviteLink: eventId =>
510
- www(WWW_GQL_IDS.GET_OR_CREATE_EVENT_INVITE_LINK, { event_id: eventId }, 'xwa2_get_or_create_event_invite_link'),
511
- rotateEventInviteLink: eventId =>
512
- www(WWW_GQL_IDS.ROTATE_EVENT_INVITE_LINK, { event_id: eventId }, 'xwa2_rotate_event_invite_link'),
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
513
  getEventLinkPreview: url => www(WWW_GQL_IDS.GET_EVENT_LINK_PREVIEW, { url }, 'xwa2_get_event_link_preview'),
514
514
  listPresetCoverImages: () => www(WWW_GQL_IDS.LIST_PRESET_COVER_IMAGES, {}, 'xwa2_list_preset_cover_images'),
515
515
 
516
-
517
- getBusinessProfileWebsiteShimUrl: bizJid =>
518
- www(
519
- WWW_GQL_IDS.GET_BUSINESS_PROFILE_WEBSITE_SHIM_URL,
520
- { biz_jid: bizJid },
521
- 'xwa2_get_business_profile_website_shim_url'
522
- ),
523
- waWebBizCreateOrderJob: input =>
524
- www(WWW_GQL_IDS.WA_WEB_BIZ_CREATE_ORDER_JOB, { input }, 'xwa2_wa_web_biz_create_order_job'),
525
- waWebBizGraphqlRefreshCart: cartId =>
526
- www(WWW_GQL_IDS.WA_WEB_BIZ_GRAPHQL_REFRESH_CART, { cart_id: cartId }, 'xwa2_wa_web_biz_graphql_refresh_cart'),
527
- waWebBizQueryOrderJob: jobId =>
528
- www(WWW_GQL_IDS.WA_WEB_BIZ_QUERY_ORDER_JOB, { job_id: jobId }, 'xwa2_wa_web_biz_query_order_job'),
529
- whatsappCatalogReportProduct: (productId, reason) =>
530
- www(
531
- WWW_GQL_IDS.WHATSAPP_CATALOG_REPORT_PRODUCT,
532
- { product_id: productId, reason },
533
- 'xwa2_whatsapp_catalog_report_product'
534
- ),
535
- brandIdsGetPhoneNumbers: brandId =>
536
- www(WWW_GQL_IDS.BRAND_IDS_GET_PHONE_NUMBERS, { brand_id: brandId }, 'xwa2_brand_ids_get_phone_numbers'),
537
- businessInteractionPills: bizJid =>
538
- www(WWW_GQL_IDS.BUSINESS_INTERACTION_PILLS, { biz_jid: bizJid }, 'xwa2_business_interaction_pills'),
539
- externalCtxAuthoriseWAChat: input =>
540
- www(WWW_GQL_IDS.EXTERNAL_CTX_AUTHORISE_WA_CHAT, { input }, 'xwa2_external_ctx_authorise_wa_chat'),
541
-
542
-
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) ─────────────────────────────────────────────
543
527
  brGetAuthOptions: () => www(WWW_GQL_IDS.BR_GET_AUTH_OPTIONS, {}, 'xwa2_br_get_auth_options'),
544
528
  brSaveCpf: cpf => www(WWW_GQL_IDS.BR_SAVE_CPF, { cpf }, 'xwa2_br_save_cpf'),
545
529
  brCreateEnrollment: options => www(WWW_GQL_IDS.CREATE_ENROLLMENT, options, 'xwa2_create_enrollment'),
546
- brCompleteEnrollmentRegistration: input =>
547
- www(WWW_GQL_IDS.BR_COMPLETE_ENROLLMENT_REGISTRATION, { input }, 'xwa2_br_complete_enrollment_registration'),
548
- brGetEnrollmentOptions: () =>
549
- www(WWW_GQL_IDS.GET_ENROLLMENT_REGISTRATION_OPTIONS, {}, 'xwa2_get_enrollment_registration_options'),
550
- brAuthorizePayment: input =>
551
- www(WWW_GQL_IDS.BR_AUTHORIZE_BIOMETRIC_PAYMENT, { input }, 'xwa2_br_authorize_biometric_payment'),
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'),
552
533
  getPixBankList: () => www(WWW_GQL_IDS.GET_PIX_BANK_LIST, {}, 'xwa2_get_pix_bank_list'),
553
- getMerchantPixInfo: merchantId =>
554
- www(WWW_GQL_IDS.GET_MERCHANT_PIX_INFO, { merchant_id: merchantId }, 'xwa2_get_merchant_pix_info'),
555
- completePixTransaction: input =>
556
- www(WWW_GQL_IDS.COMPLETE_PIX_TRANSACTION, { input }, 'xwa2_complete_pix_transaction'),
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'),
557
536
  payWithPixPrecheck: input => www(WWW_GQL_IDS.PAY_WITH_PIX_PRECHECK, { input }, 'xwa2_pay_with_pix_precheck'),
558
537
  paymentHealthChecks: () => www(WWW_GQL_IDS.PAYMENT_HEALTH_CHECKS, {}, 'xwa2_payment_health_checks'),
559
538
  getPaymentKey: () => www(WWW_GQL_IDS.GET_PAYMENT_KEY, {}, 'xwa2_get_payment_key'),
560
539
  genCreatePaymentKey: input => www(WWW_GQL_IDS.GEN_CREATE_PAYMENT_KEY, { input }, 'xwa2_gen_create_payment_key'),
561
540
  genUpdatePaymentKey: input => www(WWW_GQL_IDS.GEN_UPDATE_PAYMENT_KEY, { input }, 'xwa2_gen_update_payment_key'),
562
- genDeletePaymentKey: keyId =>
563
- www(WWW_GQL_IDS.GEN_DELETE_PAYMENT_KEY, { key_id: keyId }, 'xwa2_gen_delete_payment_key'),
541
+ genDeletePaymentKey: keyId => www(WWW_GQL_IDS.GEN_DELETE_PAYMENT_KEY, { key_id: keyId }, 'xwa2_gen_delete_payment_key'),
564
542
  getBillerPlans: billerId => www(WWW_GQL_IDS.GET_BILLER_PLANS, { biller_id: billerId }, 'xwa2_get_biller_plans'),
565
543
  getBillReceipt: billId => www(WWW_GQL_IDS.GET_BILL_RECEIPT, { bill_id: billId }, 'xwa2_get_bill_receipt'),
566
- getBillComplaintUrl: billId =>
567
- www(WWW_GQL_IDS.GET_BILL_COMPLAINT_URL, { bill_id: billId }, 'xwa2_get_bill_complaint_url'),
544
+ getBillComplaintUrl: billId => www(WWW_GQL_IDS.GET_BILL_COMPLAINT_URL, { bill_id: billId }, 'xwa2_get_bill_complaint_url'),
568
545
  paymentReminderCreate: input => www(WWW_GQL_IDS.PAYMENT_REMINDER_CREATE, { input }, 'xwa2_payment_reminder_create'),
569
- paymentReminderGet: reminderId =>
570
- www(WWW_GQL_IDS.PAYMENT_REMINDER_GET, { reminder_id: reminderId }, 'xwa2_payment_reminder_get'),
571
- paymentReminderCancel: reminderId =>
572
- www(WWW_GQL_IDS.PAYMENT_REMINDER_CANCEL, { reminder_id: reminderId }, 'xwa2_payment_reminder_cancel'),
573
- paymentReminderStop: reminderId =>
574
- www(WWW_GQL_IDS.PAYMENT_REMINDER_STOP, { reminder_id: reminderId }, 'xwa2_payment_reminder_stop'),
575
- genShareRemittanceIntent: input =>
576
- www(
577
- WWW_GQL_IDS.GEN_SHARE_REMITTANCE_TRANSACTION_INTENT,
578
- { input },
579
- 'xwa2_gen_share_remittance_transaction_intent'
580
- ),
581
- getRemittanceTransactionDetails: txId =>
582
- www(
583
- WWW_GQL_IDS.GET_REMITTANCE_TRANSACTION_DETAILS,
584
- { transaction_id: txId },
585
- 'xwa2_get_remittance_transaction_details'
586
- ),
587
- saveRemittancePaymentMessageId: input =>
588
- www(WWW_GQL_IDS.SAVE_REMITTANCE_PAYMENT_MESSAGE_ID, { input }, 'xwa2_save_remittance_payment_message_id'),
589
- saveSenderPaymentMessagePreference: preference =>
590
- www(
591
- WWW_GQL_IDS.SAVE_SENDER_PAYMENT_MESSAGE_PREFERENCE,
592
- { preference },
593
- 'xwa2_save_sender_payment_message_preference'
594
- ),
595
- getEligibility: (feature = null) =>
596
- www(WWW_GQL_IDS.GET_ELIGIBILITY, feature ? { feature } : {}, 'xwa2_get_eligibility'),
597
- enrollAndGetIncentiveReferralId: input =>
598
- www(WWW_GQL_IDS.ENROLL_AND_GET_INCENTIVE_REFERRAL_ID, { input }, 'xwa2_enroll_and_get_incentive_referral_id'),
599
- getSubscriptionsAndFeatureFlags: () =>
600
- www(WWW_GQL_IDS.GET_SUBSCRIPTIONS_AND_FEATURE_FLAGS, {}, 'xwa2_get_subscriptions_and_feature_flags'),
601
-
602
-
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) ──────────────────────────────────────────────
603
558
  getUpiAccounts: () => www(WWW_GQL_IDS.GET_UPI_ACCOUNTS, {}, 'xwa2_get_upi_accounts'),
604
559
  getUpiLiteDetails: () => www(WWW_GQL_IDS.GET_UPI_LITE_DETAILS, {}, 'xwa2_get_upi_lite_details'),
605
560
  getUpiToken: upiAccountId => www(WWW_GQL_IDS.GET_UPI_TOKEN, { upi_account_id: upiAccountId }, 'xwa2_get_upi_token'),
606
- getUpiPurposeLimitingKey: () =>
607
- www(WWW_GQL_IDS.GET_UPI_PURPOSE_LIMITING_KEY, {}, 'xwa2_get_upi_purpose_limiting_key'),
561
+ getUpiPurposeLimitingKey: () => www(WWW_GQL_IDS.GET_UPI_PURPOSE_LIMITING_KEY, {}, 'xwa2_get_upi_purpose_limiting_key'),
608
562
  upiCreateMandate: input => www(WWW_GQL_IDS.UPI_CREATE_MANDATE, { input }, 'xwa2_upi_create_mandate'),
609
- upiAcceptMandate: mandateId =>
610
- www(WWW_GQL_IDS.UPI_ACCEPT_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_accept_mandate'),
611
- upiRejectMandate: mandateId =>
612
- www(WWW_GQL_IDS.UPI_REJECT_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_reject_mandate'),
613
- upiExecuteMandate: mandateId =>
614
- www(WWW_GQL_IDS.UPI_EXECUTE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_execute_mandate'),
615
- upiPauseMandate: mandateId =>
616
- www(WWW_GQL_IDS.UPI_PAUSE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_pause_mandate'),
617
- upiResumeMandate: mandateId =>
618
- www(WWW_GQL_IDS.UPI_RESUME_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_resume_mandate'),
619
- upiRevokeMandate: mandateId =>
620
- www(WWW_GQL_IDS.UPI_REVOKE_MANDATE, { mandate_id: mandateId }, 'xwa2_upi_revoke_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'),
621
569
  pmtaGetAiControls: () => www(WWW_GQL_IDS.PMTA_GET_AI_CONTROLS, {}, 'xwa2_pmta_get_ai_controls'),
622
570
  pmtaSetAiControls: controls => www(WWW_GQL_IDS.PMTA_SET_AI_CONTROLS, { controls }, 'xwa2_pmta_set_ai_controls'),
623
571
 
624
-
625
- wamoSubQueryStatus: newsletterJid =>
626
- www(WWW_GQL_IDS.WAMO_SUB_QUERY_STATUS, { newsletter_jid: newsletterJid }, 'xwa2_wamo_sub_query_status'),
627
- wamoSubCancelSubscription: (newsletterJid, subscriptionId) =>
628
- www(
629
- WWW_GQL_IDS.WAMO_SUB_CANCEL_SUBSCRIPTION,
630
- { newsletter_jid: newsletterJid, subscription_id: subscriptionId },
631
- 'xwa2_wamo_sub_cancel_subscription'
632
- ),
633
- wamoSubOverrideStatus: (newsletterJid, status) =>
634
- www(
635
- WWW_GQL_IDS.WAMO_SUB_OVERRIDE_STATUS,
636
- { newsletter_jid: newsletterJid, status },
637
- 'xwa2_wamo_sub_override_status'
638
- ),
639
- wamoAfsSubscriptionInfo: newsletterJid =>
640
- www(WWW_GQL_IDS.WAMO_AFS_SUBSCRIPTION_INFO, { newsletter_jid: newsletterJid }, 'xwa2_wamo_afs_subscription_info'),
641
- wamoPromoIdQuery: newsletterJid =>
642
- www(WWW_GQL_IDS.WAMO_PROMO_ID_QUERY, { newsletter_jid: newsletterJid }, 'xwa2_wamo_promo_id_query'),
643
- wamoPromoIdSet: (newsletterJid, promoId) =>
644
- www(
645
- WWW_GQL_IDS.WAMO_PROMO_ID_SET,
646
- { newsletter_jid: newsletterJid, promo_id: promoId },
647
- 'xwa2_wamo_promo_id_set'
648
- ),
649
- wamoPromoIdDelete: newsletterJid =>
650
- www(WWW_GQL_IDS.WAMO_PROMO_ID_DELETE, { newsletter_jid: newsletterJid }, 'xwa2_wamo_promo_id_delete'),
651
-
652
-
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 ────────────────────────────────────────────────────
653
582
  facebookAccountName: () => www(WWW_GQL_IDS.FACEBOOK_ACCOUNT_NAME, {}, 'xwa2_facebook_account_name'),
654
583
  instagramAccountName: () => www(WWW_GQL_IDS.INSTAGRAM_ACCOUNT_NAME, {}, 'xwa2_instagram_account_name'),
655
584
  getSignupMetadata: () => www(WWW_GQL_IDS.GET_SIGNUP_METADATA, {}, 'xwa2_get_signup_metadata'),
656
585
  registerInit: input => www(WWW_GQL_IDS.REGISTER_INIT, { input }, 'xwa2_register_init'),
657
586
  registerAllAccounts: () => www(WWW_GQL_IDS.REGISTER_ALL_ACCOUNTS, {}, 'xwa2_register_all_accounts'),
658
- checkDeviceRegistration: deviceId =>
659
- www(WWW_GQL_IDS.CHECK_DEVICE_REGISTRATION, { device_id: deviceId }, 'xwa2_check_device_registration'),
660
- canonicalEntQueryFeature: feature =>
661
- www(WWW_GQL_IDS.CANONICAL_ENT_QUERY_FEATURE, { feature }, 'xwa2_canonical_ent_query_feature'),
662
- canonicalEntSetupFeature: (feature, options = {}) =>
663
- www(WWW_GQL_IDS.CANONICAL_ENT_SETUP_FEATURE, { feature, ...options }, 'xwa2_canonical_ent_setup_feature'),
664
- canonicalEntTeardownFeature: feature =>
665
- www(WWW_GQL_IDS.CANONICAL_ENT_TEARDOWN_FEATURE, { feature }, 'xwa2_canonical_ent_teardown_feature'),
666
- wwwCanonicalUserValid: token =>
667
- www(WWW_GQL_IDS.WWW_CANONICAL_USER_VALID, { token }, 'xwa2_www_canonical_user_valid'),
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'),
668
592
  waffleUserAgeCheck: () => www(WWW_GQL_IDS.WAFFLE_USER_AGE_CHECK, {}, 'xwa2_waffle_user_age_check'),
669
593
  getAiPredictedAge: () => www(WWW_GQL_IDS.GET_AI_PREDICTED_AGE, {}, 'xwa2_get_ai_predicted_age'),
670
594
 
671
-
595
+ // ── Support / misc ────────────────────────────────────────────────────
672
596
  submitBugReport: input => www(WWW_GQL_IDS.SUBMIT_BUG_REPORT, { input }, 'xwa2_submit_bug_report'),
673
597
  supportContactForm: input => www(WWW_GQL_IDS.SUPPORT_CONTACT_FORM, { input }, 'xwa2_support_contact_form'),
674
- createGroupSuspensionAppeal: (groupJid, reason) =>
675
- www(
676
- WWW_GQL_IDS.CREATE_GROUP_SUSPENSION_APPEAL,
677
- { group_jid: groupJid, reason },
678
- 'xwa2_create_group_suspension_appeal'
679
- ),
598
+ createGroupSuspensionAppeal: (groupJid, reason) => www(WWW_GQL_IDS.CREATE_GROUP_SUSPENSION_APPEAL, { group_jid: groupJid, reason }, 'xwa2_create_group_suspension_appeal'),
680
599
  createDogfoodingTask: input => www(WWW_GQL_IDS.CREATE_DOGFOODING_TASK, { input }, 'xwa2_create_dogfooding_task'),
681
600
  hatchChannelLink: input => www(WWW_GQL_IDS.HATCH_CHANNEL_LINK, { input }, 'xwa2_hatch_channel_link'),
682
- hatchChannelMetadata: channelId =>
683
- www(WWW_GQL_IDS.HATCH_CHANNEL_METADATA, { channel_id: channelId }, 'xwa2_hatch_channel_metadata'),
684
- oxygenChannelOptIn: channelId =>
685
- www(WWW_GQL_IDS.OXYGEN_CHANNEL_OPT_IN, { channel_id: channelId }, 'xwa2_oxygen_channel_opt_in'),
686
- oxygenChannelOptOut: channelId =>
687
- www(WWW_GQL_IDS.OXYGEN_CHANNEL_OPT_OUT, { channel_id: channelId }, 'xwa2_oxygen_channel_opt_out'),
688
- oxygenChannelStatus: channelId =>
689
- www(WWW_GQL_IDS.OXYGEN_CHANNEL_STATUS, { channel_id: channelId }, 'xwa2_oxygen_channel_status'),
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'),
690
605
  paslGetLoggerConfig: () => www(WWW_GQL_IDS.PASL_GET_LOGGER_CONFIG, {}, 'xwa2_pasl_get_logger_config'),
691
- quickPromotionBatchFetch: input =>
692
- www(WWW_GQL_IDS.QUICK_PROMOTION_BATCH_FETCH, { input }, 'xwa2_quick_promotion_batch_fetch'),
606
+ quickPromotionBatchFetch: input => www(WWW_GQL_IDS.QUICK_PROMOTION_BATCH_FETCH, { input }, 'xwa2_quick_promotion_batch_fetch'),
693
607
  waQuickPromotionLog: events => www(WWW_GQL_IDS.WA_QUICK_PROMOTION_LOG, { events }, 'xwa2_wa_quick_promotion_log'),
694
- waSupportMessageFeedback: input =>
695
- www(WWW_GQL_IDS.WA_SUPPORT_MESSAGE_FEEDBACK, { input }, 'xwa2_wa_support_message_feedback'),
696
- waGizmoPostMetadata: postId =>
697
- www(WWW_GQL_IDS.WA_GIZMO_POST_METADATA, { post_id: postId }, 'xwa2_wa_gizmo_post_metadata'),
698
- unifiedConversationStarters: chatJid =>
699
- www(WWW_GQL_IDS.UNIFIED_CONVERSATION_STARTERS, { chat_jid: chatJid }, 'xwa2_unified_conversation_starters'),
700
- getSubscribedTasksForThread: threadId =>
701
- www(WWW_GQL_IDS.GET_SUBSCRIBED_TASKS_FOR_THREAD, { thread_id: threadId }, 'xwa2_get_subscribed_tasks_for_thread'),
702
- editGenAiTask: (taskId, updates) =>
703
- www(WWW_GQL_IDS.EDIT_GEN_AI_TASK, { task_id: taskId, ...updates }, 'xwa2_edit_gen_ai_task'),
704
- deleteGenAiTasks: taskIds =>
705
- www(WWW_GQL_IDS.DELETE_GEN_AI_TASKS, { task_ids: taskIds }, 'xwa2_delete_gen_ai_tasks'),
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'),
706
614
  deleteUserBillAccount: () => www(WWW_GQL_IDS.DELETE_USER_BILL_ACCOUNT, {}, 'xwa2_delete_user_bill_account'),
707
615
  metaPoiTypeAhead: query => www(WWW_GQL_IDS.META_POI_TYPE_AHEAD, { query }, 'xwa2_meta_poi_type_ahead'),
708
616
  metaConfigFetch: () => www(WWW_GQL_IDS.META_CONFIG_FETCH, {}, 'xwa2_meta_config_fetch'),
709
617
 
710
-
711
- bizAlertsNotificationList: () =>
712
- fb(FACEBOOK_GQL_IDS.BIZ_ALERTS_NOTIFICATION_LIST, {}, 'xwa2_biz_alerts_notification_list'),
713
- bizAlertsUpdate: (alertId, read) =>
714
- fb(FACEBOOK_GQL_IDS.BIZ_ALERTS_UPDATE, { alert_id: alertId, read }, 'xwa2_biz_alerts_update'),
715
- ctwaAdsContextBiz: bizJid =>
716
- fb(FACEBOOK_GQL_IDS.CTWA_ADS_CONTEXT_BIZ, { biz_jid: bizJid }, 'xwa2_ctwa_ads_context_biz'),
717
- digitalContentIapPurchaseQuote: input =>
718
- fb(FACEBOOK_GQL_IDS.DIGITAL_CONTENT_IAP_PURCHASE_QUOTE, { input }, 'xwa2_digital_content_iap_purchase_quote'),
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'),
719
623
  getCompliance: () => fb(FACEBOOK_GQL_IDS.GET_COMPLIANCE, {}, 'xwa2_get_compliance'),
720
- setCompliance: (complianceType, accepted) =>
721
- fb(FACEBOOK_GQL_IDS.SET_COMPLIANCE, { compliance_type: complianceType, accepted }, 'xwa2_set_compliance'),
624
+ setCompliance: (complianceType, accepted) => fb(FACEBOOK_GQL_IDS.SET_COMPLIANCE, { compliance_type: complianceType, accepted }, 'xwa2_set_compliance'),
722
625
  getCustomUrls: () => fb(FACEBOOK_GQL_IDS.GET_CUSTOM_URLS, {}, 'xwa2_get_custom_urls'),
723
- getDcpProducts: (categoryId = null) =>
724
- fb(FACEBOOK_GQL_IDS.GET_DCP_PRODUCTS, categoryId ? { category_id: categoryId } : {}, 'xwa2_get_dcp_products'),
725
- acDcCreateCommerceNonce: input =>
726
- fb(FACEBOOK_GQL_IDS.ACDC_CREATE_COMMERCE_NONCE, { input }, 'xwa2_acdc_create_commerce_nonce'),
727
- fbUsernameRecommendations: (source = null) =>
728
- fb(FACEBOOK_GQL_IDS.USERNAME_RECOMMENDATIONS, source ? { source } : {}, 'xwa2_username_recommendations'),
729
-
730
-
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) ────────────
731
631
  wamoUserBasic: () => wamo(WAMO_GQL_IDS.USER_BASIC, {}, 'xwa2_wamo_user_basic'),
732
632
  wamoCreateUser: input => wamo(WAMO_GQL_IDS.CREATE_USER, { input }, 'xwa2_wamo_create_user'),
733
633
  wamoDeleteUser: () => wamo(WAMO_GQL_IDS.DELETE_USER, {}, 'xwa2_wamo_delete_user'),
@@ -737,121 +637,14 @@ const makeGraphQLSocket = sock => {
737
637
  wamoUnhidePage: pageId => wamo(WAMO_GQL_IDS.UNHIDE_PAGE, { page_id: pageId }, 'xwa2_wamo_unhide_page'),
738
638
  wamoUnhidePageV2: pageId => wamo(WAMO_GQL_IDS.UNHIDE_PAGE_V2, { page_id: pageId }, 'xwa2_wamo_unhide_page_v2'),
739
639
  wamoHidePromo: promoId => wamo(WAMO_GQL_IDS.HIDE_PROMO, { promo_id: promoId }, 'xwa2_wamo_hide_promo'),
740
- wamoReportPromo: (promoId, reason) =>
741
- wamo(WAMO_GQL_IDS.REPORT_PROMO, { promo_id: promoId, reason }, 'xwa2_wamo_report_promo'),
742
- wamoStartViewerSession: pageId =>
743
- wamo(WAMO_GQL_IDS.START_VIEWER_SESSION, { page_id: pageId }, 'xwa2_wamo_start_viewer_session'),
744
- wamoBloksGetLayout: (layoutId, context = {}) =>
745
- wamo(WAMO_GQL_IDS.BLOKS_GET_LAYOUT, { layout_id: layoutId, ...context }, 'xwa2_wamo_bloks_get_layout'),
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'),
746
643
  wamoDyiJobCreate: input => wamo(WAMO_GQL_IDS.DYI_JOB_CREATE, { input }, 'xwa2_wamo_dyi_job_create'),
747
644
  wamoDyiJobDelete: jobId => wamo(WAMO_GQL_IDS.DYI_JOB_DELETE, { job_id: jobId }, 'xwa2_wamo_dyi_job_delete'),
748
645
  wamoDyiJobStatus: jobId => wamo(WAMO_GQL_IDS.DYI_JOB_STATUS, { job_id: jobId }, 'xwa2_wamo_dyi_job_status'),
749
646
 
750
-
751
- metaAiFeedback: (messageId, rating, input = {}) =>
752
- www(CLIENT_PERSIST_GQL_IDS.META_AI_FEEDBACK, { message_id: messageId, rating, ...input }, null),
753
- metaAiStopGeneration: requestId =>
754
- www(CLIENT_PERSIST_GQL_IDS.META_AI_STOP_GENERATION, { request_id: requestId }, null),
755
- metaAiModesQuery: () => www(CLIENT_PERSIST_GQL_IDS.META_AI_MODES_QUERY, {}, null),
756
- fetchMetaAiModes: () => www(CLIENT_PERSIST_GQL_IDS.FETCH_META_AI_MODES, {}, null),
757
- metaAiRichPlaceDetails: placeId =>
758
- www(CLIENT_PERSIST_GQL_IDS.META_AI_RICH_PLACE_DETAILS, { place_id: placeId }, null),
759
- metaAiSideBySideSurveyResponse: input =>
760
- www(CLIENT_PERSIST_GQL_IDS.META_AI_SIDE_BY_SIDE_SURVEY_RESPONSE, { input }, null),
761
- metaAiBizAgentVoiceAttachments: (agentId, attachments) =>
762
- www(CLIENT_PERSIST_GQL_IDS.META_AI_BIZ_AGENT_VOICE_ATTACHMENTS, { agent_id: agentId, attachments }, null),
763
- metaAiCustomizationGenAiSetMode: (chatJid, mode) =>
764
- www(CLIENT_PERSIST_GQL_IDS.META_AI_CUSTOMIZATION_GEN_AI_SET_MODE, { chat_jid: chatJid, mode }, null),
765
- metaAiIntentCardNuxEligibilityReset: () =>
766
- www(CLIENT_PERSIST_GQL_IDS.META_AI_INTENT_CARD_NUX_ELIGIBILITY_RESET, {}, null),
767
- metaAiIntentCardNuxImpression: input =>
768
- www(CLIENT_PERSIST_GQL_IDS.META_AI_INTENT_CARD_NUX_IMPRESSION, { input }, null),
769
- metaAiIntentCardNuxImpressionQuery: () =>
770
- www(CLIENT_PERSIST_GQL_IDS.META_AI_INTENT_CARD_NUX_IMPRESSION_QUERY, {}, null),
771
-
772
-
773
- maiUnifiedUser: () => www(CLIENT_PERSIST_GQL_IDS.MAI_UNIFIED_USER, {}, null),
774
- maiUnifiedUserQuery: () => www(CLIENT_PERSIST_GQL_IDS.MAI_UNIFIED_USER_QUERY, {}, null),
775
- maiUnifiedUserReset: () => www(CLIENT_PERSIST_GQL_IDS.MAI_UNIFIED_USER_RESET, {}, null),
776
-
777
-
778
- memuProfileQuery: () => www(CLIENT_PERSIST_GQL_IDS.MEMU_PROFILE_QUERY, {}, null),
779
- memuUpdateProfile: input => www(CLIENT_PERSIST_GQL_IDS.MEMU_UPDATE_PROFILE, { input }, null),
780
- memuPreviewPhoto: input => www(CLIENT_PERSIST_GQL_IDS.MEMU_PREVIEW_PHOTO, { input }, null),
781
- updateMemuSelfie: input => www(CLIENT_PERSIST_GQL_IDS.UPDATE_MEMU_SELFIE, { input }, null),
782
- addMemuProfilePhotos: photos => www(CLIENT_PERSIST_GQL_IDS.ADD_MEMU_PROFILE_PHOTOS, { photos }, null),
783
- createMemuProfile: input => www(CLIENT_PERSIST_GQL_IDS.CREATE_MEMU_PROFILE, { input }, null),
784
- fbMemuPermissionQuery: () => www(CLIENT_PERSIST_GQL_IDS.FB_MEMU_PERMISSION_QUERY, {}, null),
785
- getMemuStickerById: stickerId =>
786
- www(CLIENT_PERSIST_GQL_IDS.GET_MEMU_STICKER_BY_ID, { sticker_id: stickerId }, null),
787
- genAiVerifyMemuPhotos: photos => www(CLIENT_PERSIST_GQL_IDS.GEN_AI_VERIFY_MEMU_PHOTOS, { photos }, null),
788
- genAiMeMenuUpdateVoice: (voiceId, options = {}) =>
789
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_MEMU_UPDATE_VOICE, { voice_id: voiceId, ...options }, null),
790
- genAiSocialEntityDetails: entityId =>
791
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_SOCIAL_ENTITY_DETAILS, { entity_id: entityId }, null),
792
-
793
-
794
- genAiImagineGenerate: (prompt, options = {}) =>
795
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_GENERATE, { prompt, ...options }, null),
796
- genAiImagineGenerateFlash: (prompt, options = {}) =>
797
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_GENERATE_FLASH, { prompt, ...options }, null),
798
- genAiImagineGenerateStreaming: (prompt, options = {}) =>
799
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_GENERATE_STREAMING, { prompt, ...options }, null),
800
- genAiImagineGenerateFromImage: (imageId, prompt, options = {}) =>
801
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_GENERATE_FROM_IMAGE, { image_id: imageId, prompt, ...options }, null),
802
- genAiImagineRegenerate: (imageId, options = {}) =>
803
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_REGENERATE, { image_id: imageId, ...options }, null),
804
- genAiImagineEdit: (imageId, prompt, options = {}) =>
805
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_EDIT, { image_id: imageId, prompt, ...options }, null),
806
- genAiImagineCanvasApi: (canvasId, input = {}) =>
807
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_CANVAS_API, { canvas_id: canvasId, ...input }, null),
808
- genAiImagineInspirationCanvasApi: input =>
809
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_INSPIRATION_CANVAS_API, { input }, null),
810
- genAiImagineSuggestions: context => www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_SUGGESTIONS, { context }, null),
811
- genAiImagineDownloadMedia: mediaId =>
812
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_DOWNLOAD_MEDIA, { media_id: mediaId }, null),
813
- genAiImagineSendMediaToChat: (chatJid, mediaId) =>
814
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_SEND_MEDIA_TO_CHAT, { chat_jid: chatJid, media_id: mediaId }, null),
815
- genAiImagineBulkSendMediaToChat: (chatJids, mediaId) =>
816
- www(
817
- CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_BULK_SEND_MEDIA_TO_CHAT,
818
- { chat_jids: chatJids, media_id: mediaId },
819
- null
820
- ),
821
- genAiImagineHasMemuProfile: () => www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_HAS_MEMU_PROFILE, {}, null),
822
- genAiImagineUpdateMemuProfilePermission: permission =>
823
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_UPDATE_MEMU_PROFILE_PERMISSION, { permission }, null),
824
- genAiImaginePromptSummarization: prompt =>
825
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_PROMPT_SUMMARIZATION, { prompt }, null),
826
- genAiImagineRestyleSections: (imageId, sections) =>
827
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_IMAGINE_RESTYLE_SECTIONS, { image_id: imageId, sections }, null),
828
- genAiImagineBulkFor3pIntents: input => www(WWW_GQL_IDS.GEN_AI_IMAGINE_3P_FOR_INTENTS, { input }, null),
829
- dropInImagineGenerate: (prompt, options = {}) =>
830
- www(CLIENT_PERSIST_GQL_IDS.DROP_IN_IMAGINE_GENERATE, { prompt, ...options }, null),
831
-
832
-
833
- genAiEditAnimate: (imageId, options = {}) =>
834
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_EDIT_ANIMATE, { image_id: imageId, ...options }, null),
835
- genAiEditBackdropSuggestions: imageId =>
836
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_EDIT_BACKDROP_SUGGESTIONS, { image_id: imageId }, null),
837
- genAiEditImageBackdrop: (imageId, backdropId, options = {}) =>
838
- www(
839
- CLIENT_PERSIST_GQL_IDS.GEN_AI_EDIT_IMAGE_BACKDROP,
840
- { image_id: imageId, backdrop_id: backdropId, ...options },
841
- null
842
- ),
843
- genAiEditSuggestions: imageId => www(CLIENT_PERSIST_GQL_IDS.GEN_AI_EDIT_SUGGESTIONS, { image_id: imageId }, null),
844
- genAiEditUploadAuthenticImage: imageData =>
845
- www(CLIENT_PERSIST_GQL_IDS.GEN_AI_EDIT_UPLOAD_AUTHENTIC_IMAGE, { image_data: imageData }, null),
846
-
847
-
848
- immersiveCreationComplete: input => www(WWW_GQL_IDS.IMMERSIVE_CREATION_COMPLETE, { input }, null),
849
- immersiveCreationConfig: () => www(WWW_GQL_IDS.IMMERSIVE_CREATION_CONFIG, {}, null),
850
-
851
-
852
- simpleEcho: input => www(CLIENT_PERSIST_GQL_IDS.SIMPLE_ECHO, { input }, null),
853
-
854
-
647
+ // ── ID dictionaries (for raw access) ─────────────────────────────────
855
648
  WWW_GQL_IDS,
856
649
  FACEBOOK_GQL_IDS,
857
650
  WAMO_GQL_IDS,