@violetix/baileys 0.0.0-stage → 0.3.18

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