@badzz88/baileys 8.5.5 → 8.5.6

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 (282) hide show
  1. package/README.md +2 -2
  2. package/WAProto/WAProto.proto +1256 -75
  3. package/WAProto/fix-imports.js +69 -79
  4. package/WAProto/index.d.ts +15254 -71491
  5. package/WAProto/index.js +19816 -126438
  6. package/engine-requirements.js +3 -4
  7. package/package.json +4 -4
  8. package/src/Defaults/index.js +186 -0
  9. package/src/Signal/Group/ciphertext-message.js +15 -0
  10. package/src/Signal/Group/group-session-builder.js +86 -0
  11. package/src/Signal/Group/group_cipher.js +82 -0
  12. package/src/Signal/Group/index.js +140 -0
  13. package/src/Signal/Group/keyhelper.js +77 -0
  14. package/src/Signal/Group/sender-chain-key.js +29 -0
  15. package/src/Signal/Group/sender-key-distribution-message.js +66 -0
  16. package/src/Signal/Group/sender-key-message.js +69 -0
  17. package/src/Signal/Group/sender-key-name.js +51 -0
  18. package/src/Signal/Group/sender-key-record.js +44 -0
  19. package/src/Signal/Group/sender-key-state.js +87 -0
  20. package/src/Signal/Group/sender-message-key.js +29 -0
  21. package/src/Signal/libsignal.js +455 -0
  22. package/src/Signal/lid-mapping.js +273 -0
  23. package/src/Socket/Client/index.js +31 -0
  24. package/src/Socket/Client/types.js +13 -0
  25. package/src/Socket/Client/websocket.js +61 -0
  26. package/src/Socket/aigroups.js +221 -0
  27. package/src/Socket/business.js +411 -0
  28. package/src/Socket/chats.js +1449 -0
  29. package/src/Socket/communities.js +463 -0
  30. package/src/Socket/graphql.js +523 -0
  31. package/src/Socket/groups.js +516 -0
  32. package/src/Socket/index.js +31 -0
  33. package/src/Socket/interactive-handler.js +527 -0
  34. package/src/Socket/interop.js +339 -0
  35. package/{lib → src}/Socket/luxu.js +82 -120
  36. package/src/Socket/managed-account.js +98 -0
  37. package/src/Socket/messages-recv.js +2685 -0
  38. package/src/Socket/messages-send.js +2047 -0
  39. package/src/Socket/mex.js +57 -0
  40. package/src/Socket/newsletter.js +455 -0
  41. package/src/Socket/privacy.js +125 -0
  42. package/src/Socket/registration.js +236 -0
  43. package/src/Socket/socket.js +983 -0
  44. package/src/Socket/text-router.js +65 -0
  45. package/src/Socket/username.js +130 -0
  46. package/src/Store/index.js +33 -0
  47. package/{lib → src}/Store/keyed-db.js +21 -11
  48. package/src/Store/make-cache-manager-store.js +84 -0
  49. package/src/Store/make-in-memory-store.js +551 -0
  50. package/src/Store/make-ordered-dictionary.js +81 -0
  51. package/src/Store/object-repository.js +26 -0
  52. package/src/Types/Auth.js +31 -0
  53. package/src/Types/Bussines.js +2 -0
  54. package/src/Types/Call.js +2 -0
  55. package/src/Types/Chat.js +4 -0
  56. package/src/Types/Contact.js +2 -0
  57. package/src/Types/Events.js +2 -0
  58. package/src/Types/GroupMetadata.js +2 -0
  59. package/src/Types/Label.js +26 -0
  60. package/src/Types/LabelAssociation.js +8 -0
  61. package/src/Types/Message.js +93 -0
  62. package/src/Types/Mex.js +112 -0
  63. package/src/Types/Newsletter.js +109 -0
  64. package/src/Types/Product.js +2 -0
  65. package/src/Types/Signal.js +2 -0
  66. package/src/Types/Socket.js +2 -0
  67. package/src/Types/State.js +62 -0
  68. package/src/Types/USync.js +2 -0
  69. package/src/Types/index.js +56 -0
  70. package/src/Utils/auth-utils.js +254 -0
  71. package/src/Utils/browser-utils.js +112 -0
  72. package/src/Utils/business.js +240 -0
  73. package/src/Utils/chat-utils.js +1230 -0
  74. package/src/Utils/command-loader.d.ts +27 -0
  75. package/src/Utils/command-loader.js +89 -0
  76. package/src/Utils/companion-reg-client-utils.js +40 -0
  77. package/src/Utils/consumer-application.js +105 -0
  78. package/src/Utils/crypto.js +118 -0
  79. package/src/Utils/curve25519-js.js +242 -0
  80. package/src/Utils/decode-wa-message.js +529 -0
  81. package/src/Utils/event-buffer.js +580 -0
  82. package/src/Utils/generics.js +483 -0
  83. package/src/Utils/group-history.js +44 -0
  84. package/src/Utils/history.js +232 -0
  85. package/src/Utils/identity-change-handler.js +52 -0
  86. package/src/Utils/index.js +58 -0
  87. package/src/Utils/jid-display-normalization.js +195 -0
  88. package/src/Utils/link-preview.js +135 -0
  89. package/src/Utils/logger.js +8 -0
  90. package/src/Utils/lt-hash.js +25 -0
  91. package/src/Utils/make-mutex.js +36 -0
  92. package/src/Utils/message-composer.js +471 -0
  93. package/src/Utils/message-retry-manager.js +217 -0
  94. package/src/Utils/messages-media.js +843 -0
  95. package/src/Utils/messages.js +2817 -0
  96. package/src/Utils/meta-ai-msmsg.js +222 -0
  97. package/src/Utils/native-bridge.js +68 -0
  98. package/src/Utils/noise-handler.js +169 -0
  99. package/src/Utils/offline-node-processor.js +34 -0
  100. package/src/Utils/pre-key-manager.js +90 -0
  101. package/src/Utils/process-message.js +950 -0
  102. package/src/Utils/reporting-utils.js +261 -0
  103. package/src/Utils/session-pool.d.ts +14 -0
  104. package/src/Utils/session-pool.js +70 -0
  105. package/src/Utils/signal.js +217 -0
  106. package/src/Utils/stanza-ack.js +30 -0
  107. package/src/Utils/sticker.d.ts +13 -0
  108. package/src/Utils/sticker.js +123 -0
  109. package/src/Utils/sync-action-utils.js +45 -0
  110. package/src/Utils/tc-token-utils.js +158 -0
  111. package/src/Utils/use-multi-file-auth-state.js +111 -0
  112. package/src/Utils/validate-connection.js +209 -0
  113. package/src/Utils/view-once-cache.d.ts +12 -0
  114. package/src/Utils/view-once-cache.js +63 -0
  115. package/src/Utils/voip-rekey.js +22 -0
  116. package/src/WABinary/constants.js +1304 -0
  117. package/src/WABinary/decode.js +342 -0
  118. package/{lib → src}/WABinary/encode.js +9 -12
  119. package/src/WABinary/generic-utils.js +238 -0
  120. package/src/WABinary/index.js +34 -0
  121. package/src/WABinary/jid-utils.js +351 -0
  122. package/src/WABinary/types.js +2 -0
  123. package/src/WAM/BinaryInfo.js +13 -0
  124. package/src/WAM/constants.js +39484 -0
  125. package/src/WAM/encode.js +149 -0
  126. package/src/WAM/index.js +32 -0
  127. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  128. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +44 -0
  129. package/src/WAUSync/Protocols/USyncContactProtocol.js +55 -0
  130. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +55 -0
  131. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +31 -0
  132. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +54 -0
  133. package/src/WAUSync/Protocols/USyncLIDProtocol.js +32 -0
  134. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +473 -0
  135. package/src/WAUSync/Protocols/USyncPictureProtocol.js +34 -0
  136. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +29 -0
  137. package/src/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  138. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  139. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +28 -0
  140. package/src/WAUSync/Protocols/index.js +40 -0
  141. package/src/WAUSync/USyncQuery.js +126 -0
  142. package/src/WAUSync/USyncUser.js +50 -0
  143. package/src/WAUSync/index.js +32 -0
  144. package/src/antiban.js +4152 -0
  145. package/{lib → src}/index.js +51 -49
  146. package/lib/Defaults/index.js +0 -187
  147. package/lib/Signal/Group/ciphertext-message.js +0 -15
  148. package/lib/Signal/Group/group-session-builder.js +0 -92
  149. package/lib/Signal/Group/group_cipher.js +0 -89
  150. package/lib/Signal/Group/index.js +0 -136
  151. package/lib/Signal/Group/keyhelper.js +0 -73
  152. package/lib/Signal/Group/sender-chain-key.js +0 -32
  153. package/lib/Signal/Group/sender-key-distribution-message.js +0 -66
  154. package/lib/Signal/Group/sender-key-message.js +0 -69
  155. package/lib/Signal/Group/sender-key-name.js +0 -50
  156. package/lib/Signal/Group/sender-key-record.js +0 -44
  157. package/lib/Signal/Group/sender-key-state.js +0 -97
  158. package/lib/Signal/Group/sender-message-key.js +0 -30
  159. package/lib/Signal/libsignal.js +0 -459
  160. package/lib/Signal/lid-mapping.js +0 -260
  161. package/lib/Socket/Client/index.js +0 -30
  162. package/lib/Socket/Client/types.js +0 -13
  163. package/lib/Socket/Client/websocket.js +0 -62
  164. package/lib/Socket/aigroups.js +0 -240
  165. package/lib/Socket/business.js +0 -422
  166. package/lib/Socket/chats.js +0 -1816
  167. package/lib/Socket/communities.js +0 -549
  168. package/lib/Socket/graphql.js +0 -656
  169. package/lib/Socket/groups.js +0 -764
  170. package/lib/Socket/index.js +0 -39
  171. package/lib/Socket/interactive-handler.js +0 -522
  172. package/lib/Socket/interop.js +0 -549
  173. package/lib/Socket/managed-account.js +0 -183
  174. package/lib/Socket/messages-recv.js +0 -2442
  175. package/lib/Socket/messages-send.js +0 -1853
  176. package/lib/Socket/mex.js +0 -60
  177. package/lib/Socket/newsletter.js +0 -818
  178. package/lib/Socket/privacy.js +0 -449
  179. package/lib/Socket/registration.js +0 -427
  180. package/lib/Socket/socket.js +0 -1092
  181. package/lib/Socket/text-router.js +0 -83
  182. package/lib/Socket/username.js +0 -243
  183. package/lib/Store/index.js +0 -36
  184. package/lib/Store/make-cache-manager-store.js +0 -90
  185. package/lib/Store/make-in-memory-store.js +0 -604
  186. package/lib/Store/make-ordered-dictionary.js +0 -81
  187. package/lib/Store/object-repository.js +0 -29
  188. package/lib/Types/Auth.js +0 -38
  189. package/lib/Types/Bussines.js +0 -2
  190. package/lib/Types/Call.js +0 -2
  191. package/lib/Types/Chat.js +0 -4
  192. package/lib/Types/Contact.js +0 -2
  193. package/lib/Types/Events.js +0 -2
  194. package/lib/Types/GroupMetadata.js +0 -2
  195. package/lib/Types/Label.js +0 -27
  196. package/lib/Types/LabelAssociation.js +0 -9
  197. package/lib/Types/Message.js +0 -95
  198. package/lib/Types/Mex.js +0 -112
  199. package/lib/Types/Newsletter.js +0 -121
  200. package/lib/Types/Product.js +0 -2
  201. package/lib/Types/Signal.js +0 -2
  202. package/lib/Types/Socket.js +0 -2
  203. package/lib/Types/State.js +0 -70
  204. package/lib/Types/USync.js +0 -2
  205. package/lib/Types/index.js +0 -55
  206. package/lib/Utils/auth-utils.js +0 -306
  207. package/lib/Utils/browser-utils.js +0 -114
  208. package/lib/Utils/business.js +0 -247
  209. package/lib/Utils/chat-utils.js +0 -1208
  210. package/lib/Utils/command-loader.d.ts +0 -31
  211. package/lib/Utils/command-loader.js +0 -100
  212. package/lib/Utils/companion-reg-client-utils.js +0 -42
  213. package/lib/Utils/consumer-application.js +0 -107
  214. package/lib/Utils/crypto.js +0 -155
  215. package/lib/Utils/curve25519-js.js +0 -275
  216. package/lib/Utils/decode-wa-message.js +0 -560
  217. package/lib/Utils/event-buffer.js +0 -607
  218. package/lib/Utils/generics.js +0 -563
  219. package/lib/Utils/group-history.js +0 -60
  220. package/lib/Utils/history.js +0 -244
  221. package/lib/Utils/identity-change-handler.js +0 -52
  222. package/lib/Utils/index.js +0 -57
  223. package/lib/Utils/jid-display-normalization.js +0 -218
  224. package/lib/Utils/link-preview.js +0 -143
  225. package/lib/Utils/logger.js +0 -9
  226. package/lib/Utils/lt-hash.js +0 -39
  227. package/lib/Utils/make-mutex.js +0 -36
  228. package/lib/Utils/message-composer.js +0 -479
  229. package/lib/Utils/message-inspect.js +0 -393
  230. package/lib/Utils/message-retry-manager.js +0 -270
  231. package/lib/Utils/messages-media.js +0 -896
  232. package/lib/Utils/messages.js +0 -2904
  233. package/lib/Utils/meta-ai-msmsg.js +0 -262
  234. package/lib/Utils/native-bridge.js +0 -82
  235. package/lib/Utils/noise-handler.js +0 -196
  236. package/lib/Utils/offline-node-processor.js +0 -42
  237. package/lib/Utils/pre-key-manager.js +0 -107
  238. package/lib/Utils/process-message.js +0 -1048
  239. package/lib/Utils/reporting-utils.js +0 -262
  240. package/lib/Utils/session-pool.d.ts +0 -16
  241. package/lib/Utils/session-pool.js +0 -94
  242. package/lib/Utils/signal.js +0 -224
  243. package/lib/Utils/stanza-ack.js +0 -40
  244. package/lib/Utils/sticker.d.ts +0 -17
  245. package/lib/Utils/sticker.js +0 -145
  246. package/lib/Utils/sync-action-utils.js +0 -54
  247. package/lib/Utils/tc-token-utils.js +0 -161
  248. package/lib/Utils/use-multi-file-auth-state.js +0 -121
  249. package/lib/Utils/validate-connection.js +0 -219
  250. package/lib/Utils/view-once-cache.d.ts +0 -9
  251. package/lib/Utils/view-once-cache.js +0 -79
  252. package/lib/Utils/voip-rekey.js +0 -22
  253. package/lib/WABinary/constants.js +0 -1304
  254. package/lib/WABinary/decode.js +0 -343
  255. package/lib/WABinary/generic-utils.js +0 -240
  256. package/lib/WABinary/index.js +0 -33
  257. package/lib/WABinary/jid-utils.js +0 -361
  258. package/lib/WABinary/types.js +0 -2
  259. package/lib/WAM/BinaryInfo.js +0 -13
  260. package/lib/WAM/constants.js +0 -39486
  261. package/lib/WAM/encode.js +0 -142
  262. package/lib/WAM/index.js +0 -31
  263. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -55
  264. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +0 -43
  265. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -54
  266. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -57
  267. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -30
  268. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +0 -59
  269. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -31
  270. package/lib/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -865
  271. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +0 -32
  272. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +0 -29
  273. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -39
  274. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
  275. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +0 -27
  276. package/lib/WAUSync/Protocols/index.js +0 -39
  277. package/lib/WAUSync/USyncBackoff.js +0 -26
  278. package/lib/WAUSync/USyncQuery.js +0 -133
  279. package/lib/WAUSync/USyncUser.js +0 -50
  280. package/lib/WAUSync/index.js +0 -31
  281. package/lib/antiban.js +0 -4637
  282. /package/{lib → src}/Defaults/phonenumber-mcc.json +0 -0
@@ -1,422 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.makeBusinessSocket = void 0
4
- const Utils_1 = require('../Utils')
5
- const business_1 = require('../Utils/business')
6
- const WABinary_1 = require('../WABinary')
7
- const generic_utils_1 = require('../WABinary/generic-utils')
8
- const messages_recv_1 = require('./messages-recv')
9
- const makeBusinessSocket = config => {
10
- const sock = (0, messages_recv_1.makeMessagesRecvSocket)(config)
11
- const { authState, query, waUploadToServer } = sock
12
- const updateBussinesProfile = async args => {
13
- const node = []
14
- const simpleFields = ['address', 'email', 'description']
15
- node.push(
16
- ...simpleFields
17
- .filter(key => args[key] !== undefined && args[key] !== null)
18
- .map(key => ({
19
- tag: key,
20
- attrs: {},
21
- content: args[key]
22
- }))
23
- )
24
- if (args.websites !== undefined) {
25
- node.push(
26
- ...args.websites.map(website => ({
27
- tag: 'website',
28
- attrs: {},
29
- content: website
30
- }))
31
- )
32
- }
33
- if (args.hours !== undefined) {
34
- node.push({
35
- tag: 'business_hours',
36
- attrs: { timezone: args.hours.timezone },
37
- content: args.hours.days.map(dayConfig => {
38
- const base = {
39
- tag: 'business_hours_config',
40
- attrs: {
41
- day_of_week: dayConfig.day,
42
- mode: dayConfig.mode
43
- }
44
- }
45
- if (dayConfig.mode === 'specific_hours') {
46
- return {
47
- ...base,
48
- attrs: {
49
- ...base.attrs,
50
- open_time: dayConfig.openTimeInMinutes,
51
- close_time: dayConfig.closeTimeInMinutes
52
- }
53
- }
54
- }
55
- return base
56
- })
57
- })
58
- }
59
- const result = await query({
60
- tag: 'iq',
61
- attrs: {
62
- to: WABinary_1.S_WHATSAPP_NET,
63
- type: 'set',
64
- xmlns: 'w:biz'
65
- },
66
- content: [
67
- {
68
- tag: 'business_profile',
69
- attrs: {
70
- v: '3',
71
- mutation_type: 'delta'
72
- },
73
- content: node
74
- }
75
- ]
76
- })
77
- return result
78
- }
79
- const updateCoverPhoto = async photo => {
80
- const { fileSha256, filePath } = await (0, Utils_1.getRawMediaUploadData)(photo, 'biz-cover-photo')
81
- const fileSha256B64 = fileSha256.toString('base64')
82
- const { meta_hmac, fbid, ts } = await waUploadToServer(filePath, {
83
- fileEncSha256B64: fileSha256B64,
84
- mediaType: 'biz-cover-photo'
85
- })
86
- await query({
87
- tag: 'iq',
88
- attrs: {
89
- to: WABinary_1.S_WHATSAPP_NET,
90
- type: 'set',
91
- xmlns: 'w:biz'
92
- },
93
- content: [
94
- {
95
- tag: 'business_profile',
96
- attrs: {
97
- v: '3',
98
- mutation_type: 'delta'
99
- },
100
- content: [
101
- {
102
- tag: 'cover_photo',
103
- attrs: { id: String(fbid), op: 'update', token: meta_hmac, ts: String(ts) }
104
- }
105
- ]
106
- }
107
- ]
108
- })
109
- return fbid
110
- }
111
- const removeCoverPhoto = async id => {
112
- return await query({
113
- tag: 'iq',
114
- attrs: {
115
- to: WABinary_1.S_WHATSAPP_NET,
116
- type: 'set',
117
- xmlns: 'w:biz'
118
- },
119
- content: [
120
- {
121
- tag: 'business_profile',
122
- attrs: {
123
- v: '3',
124
- mutation_type: 'delta'
125
- },
126
- content: [
127
- {
128
- tag: 'cover_photo',
129
- attrs: { op: 'delete', id }
130
- }
131
- ]
132
- }
133
- ]
134
- })
135
- }
136
- const getCatalog = async ({ jid, limit, cursor }) => {
137
- jid = jid || authState.creds.me?.id
138
- jid = (0, WABinary_1.jidNormalizedUser)(jid)
139
- const queryParamNodes = [
140
- {
141
- tag: 'limit',
142
- attrs: {},
143
- content: Buffer.from((limit || 10).toString())
144
- },
145
- {
146
- tag: 'width',
147
- attrs: {},
148
- content: Buffer.from('100')
149
- },
150
- {
151
- tag: 'height',
152
- attrs: {},
153
- content: Buffer.from('100')
154
- }
155
- ]
156
- if (cursor) {
157
- queryParamNodes.push({
158
- tag: 'after',
159
- attrs: {},
160
- content: cursor
161
- })
162
- }
163
- const result = await query({
164
- tag: 'iq',
165
- attrs: {
166
- to: WABinary_1.S_WHATSAPP_NET,
167
- type: 'get',
168
- xmlns: 'w:biz:catalog'
169
- },
170
- content: [
171
- {
172
- tag: 'product_catalog',
173
- attrs: {
174
- jid,
175
- allow_shop_source: 'true'
176
- },
177
- content: queryParamNodes
178
- }
179
- ]
180
- })
181
- return (0, business_1.parseCatalogNode)(result)
182
- }
183
- const getCollections = async (jid, limit = 51) => {
184
- jid = jid || authState.creds.me?.id
185
- jid = (0, WABinary_1.jidNormalizedUser)(jid)
186
- const result = await query({
187
- tag: 'iq',
188
- attrs: {
189
- to: WABinary_1.S_WHATSAPP_NET,
190
- type: 'get',
191
- xmlns: 'w:biz:catalog',
192
- smax_id: '35'
193
- },
194
- content: [
195
- {
196
- tag: 'collections',
197
- attrs: {
198
- biz_jid: jid
199
- },
200
- content: [
201
- {
202
- tag: 'collection_limit',
203
- attrs: {},
204
- content: Buffer.from(limit.toString())
205
- },
206
- {
207
- tag: 'item_limit',
208
- attrs: {},
209
- content: Buffer.from(limit.toString())
210
- },
211
- {
212
- tag: 'width',
213
- attrs: {},
214
- content: Buffer.from('100')
215
- },
216
- {
217
- tag: 'height',
218
- attrs: {},
219
- content: Buffer.from('100')
220
- }
221
- ]
222
- }
223
- ]
224
- })
225
- return (0, business_1.parseCollectionsNode)(result)
226
- }
227
- const getOrderDetails = async (orderId, tokenBase64) => {
228
- const result = await query({
229
- tag: 'iq',
230
- attrs: {
231
- to: WABinary_1.S_WHATSAPP_NET,
232
- type: 'get',
233
- xmlns: 'fb:thrift_iq',
234
- smax_id: '5'
235
- },
236
- content: [
237
- {
238
- tag: 'order',
239
- attrs: {
240
- op: 'get',
241
- id: orderId
242
- },
243
- content: [
244
- {
245
- tag: 'image_dimensions',
246
- attrs: {},
247
- content: [
248
- {
249
- tag: 'width',
250
- attrs: {},
251
- content: Buffer.from('100')
252
- },
253
- {
254
- tag: 'height',
255
- attrs: {},
256
- content: Buffer.from('100')
257
- }
258
- ]
259
- },
260
- {
261
- tag: 'token',
262
- attrs: {},
263
- content: Buffer.from(tokenBase64)
264
- }
265
- ]
266
- }
267
- ]
268
- })
269
- return (0, business_1.parseOrderDetailsNode)(result)
270
- }
271
- /**
272
- * Get linked Facebook/Instagram accounts (WhatsApp-as-a-page linking).
273
- * Ported from WhatsApp Web's WASmaxBizLinkingGetLinkedAccountsRPC.
274
- * @returns {Promise<{ pageInfo: object, linkState?: string, node: object } | undefined>}
275
- */
276
- const getLinkedAccounts = async () => {
277
- const result = await query({
278
- tag: 'iq',
279
- attrs: { to: WABinary_1.S_WHATSAPP_NET, type: 'get', xmlns: 'fb:thrift_iq', smax_id: '42' },
280
- content: [{ tag: 'linked_accounts', attrs: {} }]
281
- })
282
- const fbPage = (0, WABinary_1.getBinaryNodeChild)(result, 'fb_page')
283
- if (!fbPage) return undefined
284
- const button = (0, WABinary_1.getBinaryNodeChild)(fbPage, 'whatsapp_as_page_button')
285
- return { pageInfo: fbPage.attrs, linkState: button?.attrs?.state, node: fbPage }
286
- }
287
- /**
288
- * Get business eligibility for the given features (meta_verified / marketing_messages / genai).
289
- * Ported from WhatsApp Web's WASmaxBizMarketingMessageGetBusinessEligibilityRPC.
290
- * @param {{ metaVerified?: any, marketingMessages?: any, genai?: any }} [features]
291
- */
292
- const getBusinessEligibility = async (features = {}) => {
293
- const attrs = {}
294
- if (features.metaVerified !== undefined) attrs.meta_verified = String(features.metaVerified)
295
- if (features.marketingMessages !== undefined) attrs.marketing_messages = String(features.marketingMessages)
296
- if (features.genai !== undefined) attrs.genai = String(features.genai)
297
- const result = await query({
298
- tag: 'iq',
299
- attrs: { to: WABinary_1.S_WHATSAPP_NET, type: 'get', xmlns: 'w:biz', smax_id: '139' },
300
- content: [{ tag: 'features', attrs }]
301
- })
302
- const mv = (0, WABinary_1.getBinaryNodeChild)(result, 'meta_verified')
303
- return mv ? { status: mv.attrs?.status, ...mv.attrs } : undefined
304
- }
305
- const productUpdate = async (productId, update) => {
306
- update = await (0, business_1.uploadingNecessaryImagesOfProduct)(update, waUploadToServer)
307
- const editNode = (0, business_1.toProductNode)(productId, update)
308
- const result = await query({
309
- tag: 'iq',
310
- attrs: {
311
- to: WABinary_1.S_WHATSAPP_NET,
312
- type: 'set',
313
- xmlns: 'w:biz:catalog'
314
- },
315
- content: [
316
- {
317
- tag: 'product_catalog_edit',
318
- attrs: { v: '1' },
319
- content: [
320
- editNode,
321
- {
322
- tag: 'width',
323
- attrs: {},
324
- content: '100'
325
- },
326
- {
327
- tag: 'height',
328
- attrs: {},
329
- content: '100'
330
- }
331
- ]
332
- }
333
- ]
334
- })
335
- const productCatalogEditNode = (0, generic_utils_1.getBinaryNodeChild)(result, 'product_catalog_edit')
336
- const productNode = (0, generic_utils_1.getBinaryNodeChild)(productCatalogEditNode, 'product')
337
- return (0, business_1.parseProductNode)(productNode)
338
- }
339
- const productCreate = async create => {
340
- // ensure isHidden is defined
341
- create.isHidden = !!create.isHidden
342
- create = await (0, business_1.uploadingNecessaryImagesOfProduct)(create, waUploadToServer)
343
- const createNode = (0, business_1.toProductNode)(undefined, create)
344
- const result = await query({
345
- tag: 'iq',
346
- attrs: {
347
- to: WABinary_1.S_WHATSAPP_NET,
348
- type: 'set',
349
- xmlns: 'w:biz:catalog'
350
- },
351
- content: [
352
- {
353
- tag: 'product_catalog_add',
354
- attrs: { v: '1' },
355
- content: [
356
- createNode,
357
- {
358
- tag: 'width',
359
- attrs: {},
360
- content: '100'
361
- },
362
- {
363
- tag: 'height',
364
- attrs: {},
365
- content: '100'
366
- }
367
- ]
368
- }
369
- ]
370
- })
371
- const productCatalogAddNode = (0, generic_utils_1.getBinaryNodeChild)(result, 'product_catalog_add')
372
- const productNode = (0, generic_utils_1.getBinaryNodeChild)(productCatalogAddNode, 'product')
373
- return (0, business_1.parseProductNode)(productNode)
374
- }
375
- const productDelete = async productIds => {
376
- const result = await query({
377
- tag: 'iq',
378
- attrs: {
379
- to: WABinary_1.S_WHATSAPP_NET,
380
- type: 'set',
381
- xmlns: 'w:biz:catalog'
382
- },
383
- content: [
384
- {
385
- tag: 'product_catalog_delete',
386
- attrs: { v: '1' },
387
- content: productIds.map(id => ({
388
- tag: 'product',
389
- attrs: {},
390
- content: [
391
- {
392
- tag: 'id',
393
- attrs: {},
394
- content: Buffer.from(id)
395
- }
396
- ]
397
- }))
398
- }
399
- ]
400
- })
401
- const productCatalogDelNode = (0, generic_utils_1.getBinaryNodeChild)(result, 'product_catalog_delete')
402
- return {
403
- deleted: +(productCatalogDelNode?.attrs.deleted_count || 0)
404
- }
405
- }
406
- return {
407
- ...sock,
408
- logger: config.logger,
409
- getOrderDetails,
410
- getLinkedAccounts,
411
- getBusinessEligibility,
412
- getCatalog,
413
- getCollections,
414
- productCreate,
415
- productDelete,
416
- productUpdate,
417
- updateBussinesProfile,
418
- updateCoverPhoto,
419
- removeCoverPhoto
420
- }
421
- }
422
- exports.makeBusinessSocket = makeBusinessSocket