@badzz88/baileys 8.5.6 → 8.5.7

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 (279) hide show
  1. package/README.md +2 -2
  2. package/WAProto/WAProto.proto +75 -1256
  3. package/WAProto/fix-imports.js +79 -69
  4. package/WAProto/index.d.ts +71491 -15254
  5. package/WAProto/index.js +126432 -19810
  6. package/engine-requirements.js +4 -3
  7. package/lib/Defaults/index.js +187 -0
  8. package/lib/Signal/Group/ciphertext-message.js +15 -0
  9. package/lib/Signal/Group/group-session-builder.js +92 -0
  10. package/lib/Signal/Group/group_cipher.js +89 -0
  11. package/lib/Signal/Group/index.js +136 -0
  12. package/lib/Signal/Group/keyhelper.js +73 -0
  13. package/lib/Signal/Group/sender-chain-key.js +32 -0
  14. package/lib/Signal/Group/sender-key-distribution-message.js +66 -0
  15. package/lib/Signal/Group/sender-key-message.js +69 -0
  16. package/lib/Signal/Group/sender-key-name.js +50 -0
  17. package/lib/Signal/Group/sender-key-record.js +44 -0
  18. package/lib/Signal/Group/sender-key-state.js +97 -0
  19. package/lib/Signal/Group/sender-message-key.js +30 -0
  20. package/lib/Signal/libsignal.js +459 -0
  21. package/lib/Signal/lid-mapping.js +260 -0
  22. package/lib/Socket/Client/index.js +30 -0
  23. package/lib/Socket/Client/types.js +13 -0
  24. package/lib/Socket/Client/websocket.js +62 -0
  25. package/lib/Socket/aigroups.js +240 -0
  26. package/lib/Socket/business.js +422 -0
  27. package/lib/Socket/chats.js +1816 -0
  28. package/lib/Socket/communities.js +549 -0
  29. package/lib/Socket/graphql.js +656 -0
  30. package/lib/Socket/groups.js +764 -0
  31. package/lib/Socket/index.js +39 -0
  32. package/lib/Socket/interactive-handler.js +522 -0
  33. package/lib/Socket/interop.js +549 -0
  34. package/{src → lib}/Socket/luxu.js +120 -82
  35. package/lib/Socket/managed-account.js +183 -0
  36. package/lib/Socket/messages-recv.js +2442 -0
  37. package/lib/Socket/messages-send.js +1853 -0
  38. package/lib/Socket/mex.js +60 -0
  39. package/lib/Socket/newsletter.js +818 -0
  40. package/lib/Socket/privacy.js +449 -0
  41. package/lib/Socket/registration.js +427 -0
  42. package/lib/Socket/socket.js +1092 -0
  43. package/lib/Socket/text-router.js +83 -0
  44. package/lib/Socket/username.js +243 -0
  45. package/lib/Store/index.js +36 -0
  46. package/{src → lib}/Store/keyed-db.js +11 -21
  47. package/lib/Store/make-cache-manager-store.js +90 -0
  48. package/lib/Store/make-in-memory-store.js +604 -0
  49. package/lib/Store/make-ordered-dictionary.js +81 -0
  50. package/lib/Store/object-repository.js +29 -0
  51. package/lib/Types/Auth.js +38 -0
  52. package/lib/Types/Bussines.js +2 -0
  53. package/lib/Types/Call.js +2 -0
  54. package/lib/Types/Chat.js +4 -0
  55. package/lib/Types/Contact.js +2 -0
  56. package/lib/Types/Events.js +2 -0
  57. package/lib/Types/GroupMetadata.js +2 -0
  58. package/lib/Types/Label.js +27 -0
  59. package/lib/Types/LabelAssociation.js +9 -0
  60. package/lib/Types/Message.js +95 -0
  61. package/lib/Types/Mex.js +112 -0
  62. package/lib/Types/Newsletter.js +121 -0
  63. package/lib/Types/Product.js +2 -0
  64. package/lib/Types/Signal.js +2 -0
  65. package/lib/Types/Socket.js +2 -0
  66. package/lib/Types/State.js +70 -0
  67. package/lib/Types/USync.js +2 -0
  68. package/lib/Types/index.js +55 -0
  69. package/lib/Utils/auth-utils.js +306 -0
  70. package/lib/Utils/browser-utils.js +114 -0
  71. package/lib/Utils/business.js +247 -0
  72. package/lib/Utils/chat-utils.js +1208 -0
  73. package/lib/Utils/command-loader.d.ts +31 -0
  74. package/lib/Utils/command-loader.js +100 -0
  75. package/lib/Utils/companion-reg-client-utils.js +42 -0
  76. package/lib/Utils/consumer-application.js +107 -0
  77. package/lib/Utils/crypto.js +155 -0
  78. package/lib/Utils/curve25519-js.js +275 -0
  79. package/lib/Utils/decode-wa-message.js +560 -0
  80. package/lib/Utils/event-buffer.js +607 -0
  81. package/lib/Utils/generics.js +563 -0
  82. package/lib/Utils/group-history.js +60 -0
  83. package/lib/Utils/history.js +244 -0
  84. package/lib/Utils/identity-change-handler.js +52 -0
  85. package/lib/Utils/index.js +57 -0
  86. package/lib/Utils/jid-display-normalization.js +218 -0
  87. package/lib/Utils/link-preview.js +143 -0
  88. package/lib/Utils/logger.js +9 -0
  89. package/lib/Utils/lt-hash.js +39 -0
  90. package/lib/Utils/make-mutex.js +36 -0
  91. package/lib/Utils/message-composer.js +479 -0
  92. package/lib/Utils/message-retry-manager.js +270 -0
  93. package/lib/Utils/messages-media.js +896 -0
  94. package/lib/Utils/messages.js +2904 -0
  95. package/lib/Utils/meta-ai-msmsg.js +262 -0
  96. package/lib/Utils/native-bridge.js +82 -0
  97. package/lib/Utils/noise-handler.js +196 -0
  98. package/lib/Utils/offline-node-processor.js +42 -0
  99. package/lib/Utils/pre-key-manager.js +107 -0
  100. package/lib/Utils/process-message.js +1048 -0
  101. package/lib/Utils/reporting-utils.js +262 -0
  102. package/lib/Utils/session-pool.d.ts +16 -0
  103. package/lib/Utils/session-pool.js +94 -0
  104. package/lib/Utils/signal.js +224 -0
  105. package/lib/Utils/stanza-ack.js +40 -0
  106. package/lib/Utils/sticker.d.ts +17 -0
  107. package/lib/Utils/sticker.js +145 -0
  108. package/lib/Utils/sync-action-utils.js +54 -0
  109. package/lib/Utils/tc-token-utils.js +161 -0
  110. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  111. package/lib/Utils/validate-connection.js +219 -0
  112. package/lib/Utils/view-once-cache.d.ts +9 -0
  113. package/lib/Utils/view-once-cache.js +79 -0
  114. package/lib/Utils/voip-rekey.js +22 -0
  115. package/lib/WABinary/constants.js +1304 -0
  116. package/lib/WABinary/decode.js +343 -0
  117. package/{src → lib}/WABinary/encode.js +12 -9
  118. package/lib/WABinary/generic-utils.js +240 -0
  119. package/lib/WABinary/index.js +33 -0
  120. package/lib/WABinary/jid-utils.js +361 -0
  121. package/lib/WABinary/types.js +2 -0
  122. package/lib/WAM/BinaryInfo.js +13 -0
  123. package/lib/WAM/constants.js +39486 -0
  124. package/lib/WAM/encode.js +142 -0
  125. package/lib/WAM/index.js +31 -0
  126. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +55 -0
  127. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +43 -0
  128. package/lib/WAUSync/Protocols/USyncContactProtocol.js +54 -0
  129. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  130. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  131. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +59 -0
  132. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +31 -0
  133. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +32 -0
  134. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +29 -0
  135. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +39 -0
  136. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  137. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +27 -0
  138. package/lib/WAUSync/Protocols/index.js +39 -0
  139. package/lib/WAUSync/USyncQuery.js +133 -0
  140. package/lib/WAUSync/USyncUser.js +50 -0
  141. package/lib/WAUSync/index.js +31 -0
  142. package/lib/antiban.js +4637 -0
  143. package/{src → lib}/index.js +49 -51
  144. package/package.json +4 -4
  145. package/src/Defaults/index.js +0 -186
  146. package/src/Signal/Group/ciphertext-message.js +0 -15
  147. package/src/Signal/Group/group-session-builder.js +0 -86
  148. package/src/Signal/Group/group_cipher.js +0 -82
  149. package/src/Signal/Group/index.js +0 -140
  150. package/src/Signal/Group/keyhelper.js +0 -77
  151. package/src/Signal/Group/sender-chain-key.js +0 -29
  152. package/src/Signal/Group/sender-key-distribution-message.js +0 -66
  153. package/src/Signal/Group/sender-key-message.js +0 -69
  154. package/src/Signal/Group/sender-key-name.js +0 -51
  155. package/src/Signal/Group/sender-key-record.js +0 -44
  156. package/src/Signal/Group/sender-key-state.js +0 -87
  157. package/src/Signal/Group/sender-message-key.js +0 -29
  158. package/src/Signal/libsignal.js +0 -455
  159. package/src/Signal/lid-mapping.js +0 -273
  160. package/src/Socket/Client/index.js +0 -31
  161. package/src/Socket/Client/types.js +0 -13
  162. package/src/Socket/Client/websocket.js +0 -61
  163. package/src/Socket/aigroups.js +0 -221
  164. package/src/Socket/business.js +0 -411
  165. package/src/Socket/chats.js +0 -1449
  166. package/src/Socket/communities.js +0 -463
  167. package/src/Socket/graphql.js +0 -523
  168. package/src/Socket/groups.js +0 -516
  169. package/src/Socket/index.js +0 -31
  170. package/src/Socket/interactive-handler.js +0 -527
  171. package/src/Socket/interop.js +0 -339
  172. package/src/Socket/managed-account.js +0 -98
  173. package/src/Socket/messages-recv.js +0 -2685
  174. package/src/Socket/messages-send.js +0 -2047
  175. package/src/Socket/mex.js +0 -57
  176. package/src/Socket/newsletter.js +0 -455
  177. package/src/Socket/privacy.js +0 -125
  178. package/src/Socket/registration.js +0 -236
  179. package/src/Socket/socket.js +0 -983
  180. package/src/Socket/text-router.js +0 -65
  181. package/src/Socket/username.js +0 -130
  182. package/src/Store/index.js +0 -33
  183. package/src/Store/make-cache-manager-store.js +0 -84
  184. package/src/Store/make-in-memory-store.js +0 -551
  185. package/src/Store/make-ordered-dictionary.js +0 -81
  186. package/src/Store/object-repository.js +0 -26
  187. package/src/Types/Auth.js +0 -31
  188. package/src/Types/Bussines.js +0 -2
  189. package/src/Types/Call.js +0 -2
  190. package/src/Types/Chat.js +0 -4
  191. package/src/Types/Contact.js +0 -2
  192. package/src/Types/Events.js +0 -2
  193. package/src/Types/GroupMetadata.js +0 -2
  194. package/src/Types/Label.js +0 -26
  195. package/src/Types/LabelAssociation.js +0 -8
  196. package/src/Types/Message.js +0 -93
  197. package/src/Types/Mex.js +0 -112
  198. package/src/Types/Newsletter.js +0 -109
  199. package/src/Types/Product.js +0 -2
  200. package/src/Types/Signal.js +0 -2
  201. package/src/Types/Socket.js +0 -2
  202. package/src/Types/State.js +0 -62
  203. package/src/Types/USync.js +0 -2
  204. package/src/Types/index.js +0 -56
  205. package/src/Utils/auth-utils.js +0 -254
  206. package/src/Utils/browser-utils.js +0 -112
  207. package/src/Utils/business.js +0 -240
  208. package/src/Utils/chat-utils.js +0 -1230
  209. package/src/Utils/command-loader.d.ts +0 -27
  210. package/src/Utils/command-loader.js +0 -89
  211. package/src/Utils/companion-reg-client-utils.js +0 -40
  212. package/src/Utils/consumer-application.js +0 -105
  213. package/src/Utils/crypto.js +0 -118
  214. package/src/Utils/curve25519-js.js +0 -242
  215. package/src/Utils/decode-wa-message.js +0 -529
  216. package/src/Utils/event-buffer.js +0 -580
  217. package/src/Utils/generics.js +0 -483
  218. package/src/Utils/group-history.js +0 -44
  219. package/src/Utils/history.js +0 -232
  220. package/src/Utils/identity-change-handler.js +0 -52
  221. package/src/Utils/index.js +0 -58
  222. package/src/Utils/jid-display-normalization.js +0 -195
  223. package/src/Utils/link-preview.js +0 -135
  224. package/src/Utils/logger.js +0 -8
  225. package/src/Utils/lt-hash.js +0 -25
  226. package/src/Utils/make-mutex.js +0 -36
  227. package/src/Utils/message-composer.js +0 -471
  228. package/src/Utils/message-retry-manager.js +0 -217
  229. package/src/Utils/messages-media.js +0 -843
  230. package/src/Utils/messages.js +0 -2817
  231. package/src/Utils/meta-ai-msmsg.js +0 -222
  232. package/src/Utils/native-bridge.js +0 -68
  233. package/src/Utils/noise-handler.js +0 -169
  234. package/src/Utils/offline-node-processor.js +0 -34
  235. package/src/Utils/pre-key-manager.js +0 -90
  236. package/src/Utils/process-message.js +0 -950
  237. package/src/Utils/reporting-utils.js +0 -261
  238. package/src/Utils/session-pool.d.ts +0 -14
  239. package/src/Utils/session-pool.js +0 -70
  240. package/src/Utils/signal.js +0 -217
  241. package/src/Utils/stanza-ack.js +0 -30
  242. package/src/Utils/sticker.d.ts +0 -13
  243. package/src/Utils/sticker.js +0 -123
  244. package/src/Utils/sync-action-utils.js +0 -45
  245. package/src/Utils/tc-token-utils.js +0 -158
  246. package/src/Utils/use-multi-file-auth-state.js +0 -111
  247. package/src/Utils/validate-connection.js +0 -209
  248. package/src/Utils/view-once-cache.d.ts +0 -12
  249. package/src/Utils/view-once-cache.js +0 -63
  250. package/src/Utils/voip-rekey.js +0 -22
  251. package/src/WABinary/constants.js +0 -1304
  252. package/src/WABinary/decode.js +0 -342
  253. package/src/WABinary/generic-utils.js +0 -238
  254. package/src/WABinary/index.js +0 -34
  255. package/src/WABinary/jid-utils.js +0 -351
  256. package/src/WABinary/types.js +0 -2
  257. package/src/WAM/BinaryInfo.js +0 -13
  258. package/src/WAM/constants.js +0 -39484
  259. package/src/WAM/encode.js +0 -149
  260. package/src/WAM/index.js +0 -32
  261. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -53
  262. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +0 -44
  263. package/src/WAUSync/Protocols/USyncContactProtocol.js +0 -55
  264. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +0 -55
  265. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -31
  266. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +0 -54
  267. package/src/WAUSync/Protocols/USyncLIDProtocol.js +0 -32
  268. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -473
  269. package/src/WAUSync/Protocols/USyncPictureProtocol.js +0 -34
  270. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +0 -29
  271. package/src/WAUSync/Protocols/USyncStatusProtocol.js +0 -42
  272. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
  273. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +0 -28
  274. package/src/WAUSync/Protocols/index.js +0 -40
  275. package/src/WAUSync/USyncQuery.js +0 -126
  276. package/src/WAUSync/USyncUser.js +0 -50
  277. package/src/WAUSync/index.js +0 -32
  278. package/src/antiban.js +0 -4152
  279. /package/{src → lib}/Defaults/phonenumber-mcc.json +0 -0
@@ -1,47 +1,42 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import * as Utils from '../Utils/index.js';
3
- import crypto from 'crypto';
1
+ import { proto } from '../../WAProto/index.js'
2
+ import * as Utils from '../Utils/index.js'
3
+ import crypto from 'crypto'
4
+
4
5
  export default class imup {
5
6
  constructor(utils, waUploadToServer, relayMessageFn) {
6
- this.utils = utils;
7
- this.relayMessage = relayMessageFn;
8
- this.waUploadToServer = waUploadToServer;
7
+ this.utils = utils
8
+ this.relayMessage = relayMessageFn
9
+ this.waUploadToServer = waUploadToServer
9
10
  }
11
+
10
12
  detectType(content) {
11
- if (content.requestPaymentMessage)
12
- return 'PAYMENT';
13
- if (content.productMessage)
14
- return 'PRODUCT';
15
- if (content.albumMessage)
16
- return 'ALBUM';
17
- if (content.eventMessage)
18
- return 'EVENT';
19
- if (content.pollResultMessage)
20
- return 'POLL_RESULT';
21
- if (content.orderMessage)
22
- return 'ORDER';
23
- if (content.groupStatus)
24
- return 'GROUP_STATUS';
25
- if (content.groupLabel)
26
- return 'GROUP_LABEL';
27
- return null;
13
+ if (content.requestPaymentMessage) return 'PAYMENT'
14
+ if (content.productMessage) return 'PRODUCT'
15
+ if (content.albumMessage) return 'ALBUM'
16
+ if (content.eventMessage) return 'EVENT'
17
+ if (content.pollResultMessage) return 'POLL_RESULT'
18
+ if (content.orderMessage) return 'ORDER'
19
+ if (content.groupStatus) return 'GROUP_STATUS'
20
+ if (content.groupLabel) return 'GROUP_LABEL'
21
+ return null
28
22
  }
23
+
29
24
  async handlePayment(content, quoted) {
30
- const data = content.requestPaymentMessage;
31
- let notes = {};
25
+ const data = content.requestPaymentMessage
26
+ let notes = {}
27
+
32
28
  if (data.sticker?.stickerMessage) {
33
29
  notes = {
34
30
  stickerMessage: {
35
- ...data.sticker.stickerMessage,
31
+ ...data.sticker.stickerMessage,
36
32
  contextInfo: {
37
33
  stanzaId: quoted?.key?.id,
38
34
  participant: quoted?.key?.participant || content.sender,
39
35
  quotedMessage: quoted?.message
40
36
  }
41
37
  }
42
- };
43
- }
44
- else if (data.note) {
38
+ }
39
+ } else if (data.note) {
45
40
  notes = {
46
41
  extendedTextMessage: {
47
42
  text: data.note,
@@ -51,8 +46,9 @@ export default class imup {
51
46
  quotedMessage: quoted?.message
52
47
  }
53
48
  }
54
- };
49
+ }
55
50
  }
51
+
56
52
  return {
57
53
  requestPaymentMessage: proto.Message.RequestPaymentMessage.fromObject({
58
54
  expiryTimestamp: data.expiry || 0,
@@ -60,24 +56,45 @@ export default class imup {
60
56
  currencyCodeIso4217: data.currency || "IDR",
61
57
  requestFrom: data.from || "0@s.whatsapp.net",
62
58
  noteMessage: notes,
63
- background: data.background ?? {
59
+ background: data.background?? {
64
60
  id: "DEFAULT",
65
61
  placeholderArgb: 0xFFF0F0F0
66
62
  }
67
63
  })
68
- };
64
+ }
69
65
  }
66
+
70
67
  async handleProduct(content, jid, quoted) {
71
- const { title, description, thumbnail, productId, retailerId, url, body = "", footer = "", buttons = [], priceAmount1000 = null, currencyCode = "IDR" } = content.productMessage;
72
- let productImage;
68
+ const {
69
+ title,
70
+ description,
71
+ thumbnail,
72
+ productId,
73
+ retailerId,
74
+ url,
75
+ body = "",
76
+ footer = "",
77
+ buttons = [],
78
+ priceAmount1000 = null,
79
+ currencyCode = "IDR"
80
+ } = content.productMessage
81
+
82
+ let productImage
83
+
73
84
  if (Buffer.isBuffer(thumbnail)) {
74
- const { imageMessage } = await this.utils.generateWAMessageContent({ image: thumbnail }, { upload: this.waUploadToServer });
75
- productImage = imageMessage;
76
- }
77
- else if (typeof thumbnail === 'object' && thumbnail.url) {
78
- const { imageMessage } = await this.utils.generateWAMessageContent({ image: { url: thumbnail.url } }, { upload: this.waUploadToServer });
79
- productImage = imageMessage;
85
+ const { imageMessage } = await this.utils.generateWAMessageContent(
86
+ { image: thumbnail },
87
+ { upload: this.waUploadToServer }
88
+ )
89
+ productImage = imageMessage
90
+ } else if (typeof thumbnail === 'object' && thumbnail.url) {
91
+ const { imageMessage } = await this.utils.generateWAMessageContent(
92
+ { image: { url: thumbnail.url } },
93
+ { upload: this.waUploadToServer }
94
+ )
95
+ productImage = imageMessage
80
96
  }
97
+
81
98
  return {
82
99
  viewOnceMessage: {
83
100
  message: {
@@ -106,10 +123,11 @@ export default class imup {
106
123
  }
107
124
  }
108
125
  }
109
- };
126
+ }
110
127
  }
128
+
111
129
  async handleAlbum(content, jid, quoted) {
112
- const array = content.albumMessage;
130
+ const array = content.albumMessage
113
131
  const album = await this.utils.generateWAMessageFromContent(jid, {
114
132
  messageContextInfo: {
115
133
  messageSecret: crypto.randomBytes(32),
@@ -122,14 +140,17 @@ export default class imup {
122
140
  userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
123
141
  quoted,
124
142
  upload: this.waUploadToServer
125
- });
143
+ })
144
+
126
145
  await this.relayMessage(jid, album.message, {
127
146
  messageId: album.key.id,
128
- });
147
+ })
148
+
129
149
  for (let content of array) {
130
150
  const img = await this.utils.generateWAMessage(jid, content, {
131
151
  upload: this.waUploadToServer,
132
- });
152
+ })
153
+
133
154
  img.message.messageContextInfo = {
134
155
  messageSecret: crypto.randomBytes(32),
135
156
  messageAssociation: {
@@ -150,7 +171,8 @@ export default class imup {
150
171
  dataSharingContext: {
151
172
  showMmDisclosure: true,
152
173
  },
153
- };
174
+ }
175
+
154
176
  img.message.forwardedNewsletterMessageInfo = {
155
177
  newsletterJid: "0@newsletter",
156
178
  serverMessageId: 1,
@@ -161,7 +183,8 @@ export default class imup {
161
183
  contentType: "UPDATE_CARD",
162
184
  priority: "high",
163
185
  status: "sent",
164
- };
186
+ }
187
+
165
188
  img.message.disappearingMode = {
166
189
  initiator: 3,
167
190
  trigger: 4,
@@ -175,7 +198,8 @@ export default class imup {
175
198
  initiatedByApp: true,
176
199
  initiatedByBot: true,
177
200
  initiatedByMe: true,
178
- };
201
+ }
202
+
179
203
  await this.relayMessage(jid, img.message, {
180
204
  messageId: img.key.id,
181
205
  quoted: {
@@ -187,12 +211,14 @@ export default class imup {
187
211
  },
188
212
  message: album.message,
189
213
  },
190
- });
214
+ })
191
215
  }
192
- return album;
216
+ return album
193
217
  }
218
+
194
219
  async handleEvent(content, jid, quoted) {
195
- const eventData = content.eventMessage;
220
+ const eventData = content.eventMessage
221
+
196
222
  const msg = await this.utils.generateWAMessageFromContent(jid, {
197
223
  viewOnceMessage: {
198
224
  message: {
@@ -227,27 +253,29 @@ export default class imup {
227
253
  name: "Location"
228
254
  },
229
255
  joinLink: eventData.joinLink || '',
230
- startTime: typeof eventData.startTime === 'string' ? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
231
- endTime: typeof eventData.endTime === 'string' ? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
232
- extraGuestsAllowed: eventData.extraGuestsAllowed !== false
256
+ startTime: typeof eventData.startTime === 'string'? parseInt(eventData.startTime) : eventData.startTime || Date.now(),
257
+ endTime: typeof eventData.endTime === 'string'? parseInt(eventData.endTime) : eventData.endTime || Date.now() + 3600000,
258
+ extraGuestsAllowed: eventData.extraGuestsAllowed!== false
233
259
  }
234
260
  }
235
261
  }
236
- }, { quoted });
262
+ }, { quoted })
263
+
237
264
  await this.relayMessage(jid, msg.message, {
238
265
  messageId: msg.key.id
239
- });
240
- return msg;
266
+ })
267
+ return msg
241
268
  }
269
+
242
270
  async handlePollResult(content, jid, quoted) {
243
- const pollData = content.pollResultMessage;
271
+ const pollData = content.pollResultMessage
244
272
  const msg = await this.utils.generateWAMessageFromContent(jid, {
245
273
  pollResultSnapshotMessage: {
246
274
  name: pollData.name,
247
275
  pollVotes: pollData.pollVotes.map(vote => ({
248
276
  optionName: vote.optionName,
249
277
  optionVoteCount: typeof vote.optionVoteCount === 'number'
250
- ? vote.optionVoteCount.toString()
278
+ ? vote.optionVoteCount.toString()
251
279
  : vote.optionVoteCount
252
280
  })),
253
281
  contextInfo: {
@@ -264,14 +292,18 @@ export default class imup {
264
292
  }, {
265
293
  userJid: this.utils.generateMessageID().split('@')[0] + '@s.whatsapp.net',
266
294
  quoted
267
- });
295
+ })
296
+
268
297
  await this.relayMessage(jid, msg.message, {
269
298
  messageId: msg.key.id
270
- });
271
- return msg;
299
+ })
300
+
301
+ return msg
272
302
  }
303
+
273
304
  async handleOrderMessage(content, jid, quoted) {
274
- const orderData = content.orderMessage;
305
+ const orderData = content.orderMessage
306
+
275
307
  const Haha = await this.utils.generateWAMessageFromContent(jid, {
276
308
  orderMessage: {
277
309
  orderId: "7EPPELI25022008",
@@ -287,44 +319,49 @@ export default class imup {
287
319
  totalCurrencyCode: orderData.totalCurrencyCode || "IDR",
288
320
  messageVersion: 2
289
321
  }
290
- }, { quoted: quoted });
291
- await this.relayMessage(jid, Haha.message, {});
292
- return Haha;
322
+ }, { quoted: quoted })
323
+
324
+ await this.relayMessage(jid, Haha.message, {})
325
+ return Haha
293
326
  }
327
+
294
328
  async handleGroupStory(content, jid, quoted) {
295
- const storyData = content.groupStatus;
296
- let messageContent;
329
+ const storyData = content.groupStatus
330
+ let messageContent
331
+
297
332
  if (storyData.message) {
298
- messageContent = storyData;
299
- }
300
- else {
333
+ messageContent = storyData
334
+ } else {
301
335
  if (typeof this.utils?.generateWAMessageContent === "function") {
302
336
  messageContent = await this.utils.generateWAMessageContent(storyData, {
303
337
  upload: this.waUploadToServer
304
- });
305
- }
306
- else {
338
+ })
339
+ } else {
307
340
  messageContent = await Utils.generateWAMessageContent(storyData, {
308
341
  upload: this.waUploadToServer
309
- });
342
+ })
310
343
  }
311
344
  }
345
+
312
346
  let msg = {
313
347
  message: {
314
348
  groupStatusMessageV2: {
315
349
  message: messageContent.message || messageContent
316
350
  }
317
351
  }
318
- };
352
+ }
353
+
319
354
  return await this.relayMessage(jid, msg.message, {
320
355
  messageId: this.utils.generateMessageID()
321
- });
356
+ })
322
357
  }
358
+
323
359
  async handleGbLabel(content, jid) {
324
- const x = content.groupLabel;
360
+ const x = content.groupLabel
325
361
  if (!jid.endsWith('@g.us')) {
326
- throw new Error('group required!');
362
+ throw new Error('group required!')
327
363
  }
364
+
328
365
  const msg = this.utils.generateWAMessageFromContent(jid, {
329
366
  protocolMessage: {
330
367
  type: "GROUP_MEMBER_LABEL_CHANGE",
@@ -332,7 +369,8 @@ export default class imup {
332
369
  label: x.labelText.slice(0, 30)
333
370
  }
334
371
  }
335
- }, {});
372
+ }, {})
373
+
336
374
  await this.relayMessage(jid, msg.message, {
337
375
  additionalNodes: [
338
376
  {
@@ -344,6 +382,6 @@ export default class imup {
344
382
  content: undefined
345
383
  }
346
384
  ]
347
- });
385
+ })
348
386
  }
349
- }
387
+ }
@@ -0,0 +1,183 @@
1
+ 'use strict'
2
+ Object.defineProperty(exports, '__esModule', { value: true })
3
+ exports.makeManagedAccountSocket = void 0
4
+
5
+ const { executeWMexQuery } = require('./mex')
6
+
7
+ const MANAGED_ACCOUNT_MEX_IDS = {
8
+ // Managed accounts (parental/family)
9
+ QUERY: '27232244463035264', // ManagedAccountQuery
10
+ INITIATE_LINKING: '26671873552498548', // ManagedAccountInitiateLinkingQuery
11
+ VALIDATE_LINKING: '35449808311284430', // ManagedAccountValidateLinkingQuery
12
+ ACCEPT_LINKING: '26708926155457676', // ManagedAccountAcceptLinkingMutation
13
+ COMPLETE_LINKING: '26866501363013204', // ManagedAccountCompleteLinkingMutation
14
+ REVOKE_LINKING: '27435058196100676', // ManagedAccountRevokeLinkingMutation
15
+ SYNC_ACTIVITIES: '26594352680227840', // ManagedAccountSyncActivities
16
+ UPDATE_PIN: '27653949584193080', // ManagedAccountUpdatePinMutation
17
+ GET_SPONSOR_AGE_VERIFICATION: '26433623289634520', // ManagedAccountGetSponsorAgeVerificationInfoQuery
18
+ // Payments passkey
19
+ PAYMENTS_PASSKEY_HAS_CREDENTIAL: '26328228500182424', // PaymentsPasskeyHasCredential
20
+ PAYMENTS_PASSKEY_ENROLL_CHALLENGE: '25233109079721000', // PaymentsPasskeyEnrollChallengeMutation
21
+ PAYMENTS_PASSKEY_ENROLL_VERIFY: '26563835863283056', // PaymentsPasskeyEnrollVerifyMutation
22
+ PAYMENTS_PASSKEY_REGISTER_FINISH: '26658791263822236', // PaymentsPasskeyRegisterFinishMutation
23
+ PAYMENTS_PASSKEY_AUTH_CHALLENGE: '26425370627105628', // PaymentsPasskeyAuthChallengeMutation
24
+ PAYMENTS_PASSKEY_TOGGLE_ON: '25841989828834576', // PaymentsPasskeyToggleOnMutation
25
+ PAYMENTS_PASSKEY_TOGGLE_OFF: '26267673096201390', // PaymentsPasskeyToggleOffMutation
26
+ PAYMENTS_PASSKEY_TOGGLE_CHALLENGE: '26133062322993190', // PaymentsPasskeyToggleChallengeMutation
27
+ PAYMENTS_PASSKEY_TOGGLE_CLEANUP: '26492078607084840', // PaymentsPasskeyToggleCleanupMutation
28
+ PAYMENTS_PASSKEY_CLEANUP: '26538338805859092', // PaymentsPasskeyCleanupMutation
29
+ PAYMENTS_IS_RECOVERABLE: '26524118810513490', // PaymentsIsAccountRecoverable
30
+ // UPI onboarding (India payments)
31
+ UPI_SEND_OTP: '25829794080022468', // UpiOnboardingSendOtpMutation
32
+ UPI_VERIFY_OTP: '34104109149204668', // UpiOnboardingVerifyOtpQuery
33
+ // IPLS (Identity-Preserving Linked Spaces)
34
+ IPLS_HANDSHAKE_INIT: '25523747957257184', // IplsClientHandshakeInitRequest
35
+ IPLS_CLIENT_HELLO: '25376330595367716', // IplsClientHelloPayload
36
+ IPLSD_CLIENT_HELLO_V2: '26561780580105680', // IplsdClientHelloV2
37
+ IPLSD_CLIENT_INIT_V2: '26547193874915344' // IplsdClientInitV2
38
+ }
39
+
40
+ const makeManagedAccountSocket = sock => {
41
+ const { query, generateMessageTag } = sock
42
+
43
+ const mexQuery = (variables, queryId, dataPath) =>
44
+ executeWMexQuery(variables, queryId, dataPath, query, generateMessageTag)
45
+
46
+ // ── Managed Accounts ─────────────────────────────────────────────────────
47
+
48
+ const managedAccountQuery = jid =>
49
+ mexQuery({ jid }, MANAGED_ACCOUNT_MEX_IDS.QUERY, 'xwa2_managed_account')
50
+
51
+ const managedAccountInitiateLinking = phoneNumber =>
52
+ mexQuery({ phone_number: phoneNumber }, MANAGED_ACCOUNT_MEX_IDS.INITIATE_LINKING, 'xwa2_managed_account_initiate_linking')
53
+
54
+ const managedAccountValidateLinking = (linkingToken, sponsorJid) =>
55
+ mexQuery(
56
+ { linking_token: linkingToken, sponsor_jid: sponsorJid },
57
+ MANAGED_ACCOUNT_MEX_IDS.VALIDATE_LINKING,
58
+ 'xwa2_managed_account_validate_linking'
59
+ )
60
+
61
+ const managedAccountAcceptLinking = linkingToken =>
62
+ mexQuery({ linking_token: linkingToken }, MANAGED_ACCOUNT_MEX_IDS.ACCEPT_LINKING, 'xwa2_managed_account_accept_linking')
63
+
64
+ const managedAccountCompleteLinking = linkingToken =>
65
+ mexQuery({ linking_token: linkingToken }, MANAGED_ACCOUNT_MEX_IDS.COMPLETE_LINKING, 'xwa2_managed_account_complete_linking')
66
+
67
+ const managedAccountRevokeLinking = sponsoredJid =>
68
+ mexQuery({ sponsored_jid: sponsoredJid }, MANAGED_ACCOUNT_MEX_IDS.REVOKE_LINKING, 'xwa2_managed_account_revoke_linking')
69
+
70
+ const managedAccountSyncActivities = (jid, lastSyncTime = null) => {
71
+ const variables = { jid }
72
+ if (lastSyncTime != null) variables.last_sync_time = lastSyncTime
73
+ return mexQuery(variables, MANAGED_ACCOUNT_MEX_IDS.SYNC_ACTIVITIES, 'xwa2_managed_account_sync_activities')
74
+ }
75
+
76
+ const managedAccountUpdatePin = (oldPin, newPin) =>
77
+ mexQuery({ input: { old_pin: oldPin, new_pin: newPin } }, MANAGED_ACCOUNT_MEX_IDS.UPDATE_PIN, 'xwa2_managed_account_update_pin')
78
+
79
+ const managedAccountGetSponsorAgeVerification = sponsorJid =>
80
+ mexQuery({ sponsor_jid: sponsorJid }, MANAGED_ACCOUNT_MEX_IDS.GET_SPONSOR_AGE_VERIFICATION, 'xwa2_managed_account_sponsor_age_verification')
81
+
82
+ // ── Payments Passkey ─────────────────────────────────────────────────────
83
+
84
+ const paymentsPasskeyHasCredential = () =>
85
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_HAS_CREDENTIAL, 'xwa2_payments_passkey_has_credential')
86
+
87
+ const paymentsPasskeyEnrollChallenge = () =>
88
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_ENROLL_CHALLENGE, 'xwa2_payments_passkey_enroll_challenge')
89
+
90
+ const paymentsPasskeyEnrollVerify = (credentialId, attestationObject, clientDataJson) =>
91
+ mexQuery(
92
+ { credential_id: credentialId, attestation_object: attestationObject, client_data_json: clientDataJson },
93
+ MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_ENROLL_VERIFY,
94
+ 'xwa2_payments_passkey_enroll_verify'
95
+ )
96
+
97
+ const paymentsPasskeyRegisterFinish = (credentialId, attestationObject, clientDataJson) =>
98
+ mexQuery(
99
+ { credential_id: credentialId, attestation_object: attestationObject, client_data_json: clientDataJson },
100
+ MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_REGISTER_FINISH,
101
+ 'xwa2_payments_passkey_register_finish'
102
+ )
103
+
104
+ const paymentsPasskeyAuthChallenge = credentialId =>
105
+ mexQuery({ credential_id: credentialId }, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_AUTH_CHALLENGE, 'xwa2_payments_passkey_auth_challenge')
106
+
107
+ const paymentsPasskeyToggleOn = () =>
108
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_TOGGLE_ON, 'xwa2_payments_passkey_toggle_on')
109
+
110
+ const paymentsPasskeyToggleOff = () =>
111
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_TOGGLE_OFF, 'xwa2_payments_passkey_toggle_off')
112
+
113
+ const paymentsPasskeyToggleChallenge = credentialId =>
114
+ mexQuery({ credential_id: credentialId }, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_TOGGLE_CHALLENGE, 'xwa2_payments_passkey_toggle_challenge')
115
+
116
+ const paymentsPasskeyToggleCleanup = () =>
117
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_TOGGLE_CLEANUP, 'xwa2_payments_passkey_toggle_cleanup')
118
+
119
+ const paymentsPasskeyCleanup = () =>
120
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_PASSKEY_CLEANUP, 'xwa2_payments_passkey_cleanup')
121
+
122
+ const paymentsIsAccountRecoverable = () =>
123
+ mexQuery({}, MANAGED_ACCOUNT_MEX_IDS.PAYMENTS_IS_RECOVERABLE, 'xwa2_payments_is_account_recoverable')
124
+
125
+ // ── UPI onboarding ───────────────────────────────────────────────────────
126
+
127
+ const upiSendOtp = phoneNumber =>
128
+ mexQuery({ phone_number: phoneNumber }, MANAGED_ACCOUNT_MEX_IDS.UPI_SEND_OTP, 'xwa2_upi_send_otp')
129
+
130
+ const upiVerifyOtp = (phoneNumber, otp) =>
131
+ mexQuery({ phone_number: phoneNumber, otp }, MANAGED_ACCOUNT_MEX_IDS.UPI_VERIFY_OTP, 'xwa2_upi_verify_otp')
132
+
133
+ // ── IPLS (Identity-Preserving Linked Spaces) ─────────────────────────────
134
+
135
+ const iplsHandshakeInit = payload =>
136
+ mexQuery({ payload }, MANAGED_ACCOUNT_MEX_IDS.IPLS_HANDSHAKE_INIT, 'xwa2_ipls_handshake_init')
137
+
138
+ const iplsClientHello = payload =>
139
+ mexQuery({ payload }, MANAGED_ACCOUNT_MEX_IDS.IPLS_CLIENT_HELLO, 'xwa2_ipls_client_hello')
140
+
141
+ const iplsdClientHelloV2 = payload =>
142
+ mexQuery({ payload }, MANAGED_ACCOUNT_MEX_IDS.IPLSD_CLIENT_HELLO_V2, 'xwa2_iplsd_client_hello_v2')
143
+
144
+ const iplsdClientInitV2 = payload =>
145
+ mexQuery({ payload }, MANAGED_ACCOUNT_MEX_IDS.IPLSD_CLIENT_INIT_V2, 'xwa2_iplsd_client_init_v2')
146
+
147
+ return {
148
+ ...sock,
149
+ // Managed accounts
150
+ managedAccountQuery,
151
+ managedAccountInitiateLinking,
152
+ managedAccountValidateLinking,
153
+ managedAccountAcceptLinking,
154
+ managedAccountCompleteLinking,
155
+ managedAccountRevokeLinking,
156
+ managedAccountSyncActivities,
157
+ managedAccountUpdatePin,
158
+ managedAccountGetSponsorAgeVerification,
159
+ // Payments passkey
160
+ paymentsPasskeyHasCredential,
161
+ paymentsPasskeyEnrollChallenge,
162
+ paymentsPasskeyEnrollVerify,
163
+ paymentsPasskeyRegisterFinish,
164
+ paymentsPasskeyAuthChallenge,
165
+ paymentsPasskeyToggleOn,
166
+ paymentsPasskeyToggleOff,
167
+ paymentsPasskeyToggleChallenge,
168
+ paymentsPasskeyToggleCleanup,
169
+ paymentsPasskeyCleanup,
170
+ paymentsIsAccountRecoverable,
171
+ // UPI
172
+ upiSendOtp,
173
+ upiVerifyOtp,
174
+ // IPLS
175
+ iplsHandshakeInit,
176
+ iplsClientHello,
177
+ iplsdClientHelloV2,
178
+ iplsdClientInitV2,
179
+ MANAGED_ACCOUNT_MEX_IDS
180
+ }
181
+ }
182
+
183
+ exports.makeManagedAccountSocket = makeManagedAccountSocket