@badzz88/baileys 8.5.4 → 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 (269) hide show
  1. package/README.md +2 -2
  2. package/WAProto/fix-imports.js +69 -79
  3. package/WAProto/index.d.ts +15305 -87935
  4. package/WAProto/index.js +41109 -194076
  5. package/engine-requirements.js +15 -8
  6. package/package.json +23 -19
  7. package/src/Defaults/index.js +186 -0
  8. package/src/Signal/Group/ciphertext-message.js +15 -0
  9. package/src/Signal/Group/group-session-builder.js +86 -0
  10. package/src/Signal/Group/group_cipher.js +82 -0
  11. package/src/Signal/Group/index.js +140 -0
  12. package/src/Signal/Group/keyhelper.js +77 -0
  13. package/src/Signal/Group/sender-chain-key.js +29 -0
  14. package/src/Signal/Group/sender-key-distribution-message.js +66 -0
  15. package/src/Signal/Group/sender-key-message.js +69 -0
  16. package/src/Signal/Group/sender-key-name.js +51 -0
  17. package/src/Signal/Group/sender-key-record.js +44 -0
  18. package/src/Signal/Group/sender-key-state.js +87 -0
  19. package/src/Signal/Group/sender-message-key.js +29 -0
  20. package/src/Signal/libsignal.js +455 -0
  21. package/src/Signal/lid-mapping.js +273 -0
  22. package/src/Socket/Client/index.js +31 -0
  23. package/src/Socket/Client/types.js +13 -0
  24. package/src/Socket/Client/websocket.js +61 -0
  25. package/src/Socket/aigroups.js +221 -0
  26. package/src/Socket/business.js +411 -0
  27. package/src/Socket/chats.js +1449 -0
  28. package/src/Socket/communities.js +463 -0
  29. package/src/Socket/graphql.js +523 -0
  30. package/src/Socket/groups.js +516 -0
  31. package/src/Socket/index.js +31 -0
  32. package/src/Socket/interactive-handler.js +527 -0
  33. package/src/Socket/interop.js +339 -0
  34. package/src/Socket/luxu.js +349 -0
  35. package/src/Socket/managed-account.js +98 -0
  36. package/src/Socket/messages-recv.js +2685 -0
  37. package/src/Socket/messages-send.js +2047 -0
  38. package/src/Socket/mex.js +57 -0
  39. package/src/Socket/newsletter.js +455 -0
  40. package/src/Socket/privacy.js +125 -0
  41. package/src/Socket/registration.js +236 -0
  42. package/src/Socket/socket.js +983 -0
  43. package/src/Socket/text-router.js +65 -0
  44. package/src/Socket/username.js +130 -0
  45. package/src/Store/index.js +33 -0
  46. package/src/Store/keyed-db.js +118 -0
  47. package/src/Store/make-cache-manager-store.js +84 -0
  48. package/src/Store/make-in-memory-store.js +551 -0
  49. package/src/Store/make-ordered-dictionary.js +81 -0
  50. package/src/Store/object-repository.js +26 -0
  51. package/src/Types/Auth.js +31 -0
  52. package/src/Types/Bussines.js +2 -0
  53. package/src/Types/Call.js +2 -0
  54. package/src/Types/Chat.js +4 -0
  55. package/src/Types/Contact.js +2 -0
  56. package/src/Types/Events.js +2 -0
  57. package/src/Types/GroupMetadata.js +2 -0
  58. package/src/Types/Label.js +26 -0
  59. package/src/Types/LabelAssociation.js +8 -0
  60. package/src/Types/Message.js +93 -0
  61. package/src/Types/Mex.js +112 -0
  62. package/src/Types/Newsletter.js +109 -0
  63. package/src/Types/Product.js +2 -0
  64. package/src/Types/Signal.js +2 -0
  65. package/src/Types/Socket.js +2 -0
  66. package/src/Types/State.js +62 -0
  67. package/src/Types/USync.js +2 -0
  68. package/src/Types/index.js +56 -0
  69. package/src/Utils/auth-utils.js +254 -0
  70. package/src/Utils/browser-utils.js +112 -0
  71. package/src/Utils/business.js +240 -0
  72. package/src/Utils/chat-utils.js +1230 -0
  73. package/src/Utils/command-loader.d.ts +27 -0
  74. package/src/Utils/command-loader.js +89 -0
  75. package/src/Utils/companion-reg-client-utils.js +40 -0
  76. package/src/Utils/consumer-application.js +105 -0
  77. package/src/Utils/crypto.js +118 -0
  78. package/src/Utils/curve25519-js.js +242 -0
  79. package/src/Utils/decode-wa-message.js +529 -0
  80. package/src/Utils/event-buffer.js +580 -0
  81. package/src/Utils/generics.js +483 -0
  82. package/src/Utils/group-history.js +44 -0
  83. package/src/Utils/history.js +232 -0
  84. package/src/Utils/identity-change-handler.js +52 -0
  85. package/src/Utils/index.js +58 -0
  86. package/src/Utils/jid-display-normalization.js +195 -0
  87. package/src/Utils/link-preview.js +135 -0
  88. package/src/Utils/logger.js +8 -0
  89. package/src/Utils/lt-hash.js +25 -0
  90. package/src/Utils/make-mutex.js +36 -0
  91. package/src/Utils/message-composer.js +471 -0
  92. package/src/Utils/message-retry-manager.js +217 -0
  93. package/src/Utils/messages-media.js +843 -0
  94. package/src/Utils/messages.js +2817 -0
  95. package/src/Utils/meta-ai-msmsg.js +222 -0
  96. package/src/Utils/native-bridge.js +68 -0
  97. package/src/Utils/noise-handler.js +169 -0
  98. package/src/Utils/offline-node-processor.js +34 -0
  99. package/src/Utils/pre-key-manager.js +90 -0
  100. package/src/Utils/process-message.js +950 -0
  101. package/src/Utils/reporting-utils.js +261 -0
  102. package/src/Utils/session-pool.d.ts +14 -0
  103. package/src/Utils/session-pool.js +70 -0
  104. package/src/Utils/signal.js +217 -0
  105. package/src/Utils/stanza-ack.js +30 -0
  106. package/src/Utils/sticker.d.ts +13 -0
  107. package/src/Utils/sticker.js +123 -0
  108. package/src/Utils/sync-action-utils.js +45 -0
  109. package/src/Utils/tc-token-utils.js +158 -0
  110. package/src/Utils/use-multi-file-auth-state.js +111 -0
  111. package/src/Utils/validate-connection.js +209 -0
  112. package/src/Utils/view-once-cache.d.ts +12 -0
  113. package/src/Utils/view-once-cache.js +63 -0
  114. package/src/Utils/voip-rekey.js +22 -0
  115. package/src/WABinary/constants.js +1304 -0
  116. package/src/WABinary/decode.js +342 -0
  117. package/src/WABinary/encode.js +225 -0
  118. package/src/WABinary/generic-utils.js +238 -0
  119. package/src/WABinary/index.js +34 -0
  120. package/src/WABinary/jid-utils.js +351 -0
  121. package/src/WABinary/types.js +2 -0
  122. package/src/WAM/BinaryInfo.js +13 -0
  123. package/src/WAM/constants.js +39484 -0
  124. package/src/WAM/encode.js +149 -0
  125. package/src/WAM/index.js +32 -0
  126. package/src/WAUSync/Protocols/USyncBotProfileProtocol.js +53 -0
  127. package/src/WAUSync/Protocols/USyncBusinessProtocol.js +44 -0
  128. package/src/WAUSync/Protocols/USyncContactProtocol.js +55 -0
  129. package/src/WAUSync/Protocols/USyncDeviceProtocol.js +55 -0
  130. package/src/WAUSync/Protocols/USyncDisappearingModeProtocol.js +31 -0
  131. package/src/WAUSync/Protocols/USyncFeatureProtocol.js +54 -0
  132. package/src/WAUSync/Protocols/USyncLIDProtocol.js +32 -0
  133. package/src/WAUSync/Protocols/USyncNewsletterProtocol.js +473 -0
  134. package/src/WAUSync/Protocols/USyncPictureProtocol.js +34 -0
  135. package/src/WAUSync/Protocols/USyncSidelistProtocol.js +29 -0
  136. package/src/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  137. package/src/WAUSync/Protocols/USyncTextStatusProtocol.js +38 -0
  138. package/src/WAUSync/Protocols/USyncUsernameProtocol.js +28 -0
  139. package/src/WAUSync/Protocols/index.js +40 -0
  140. package/src/WAUSync/USyncQuery.js +126 -0
  141. package/src/WAUSync/USyncUser.js +50 -0
  142. package/src/WAUSync/index.js +32 -0
  143. package/src/antiban.js +4152 -0
  144. package/{lib → src}/index.js +51 -49
  145. package/lib/Defaults/index.js +0 -195
  146. package/lib/Signal/Group/ciphertext-message.js +0 -15
  147. package/lib/Signal/Group/group-session-builder.js +0 -92
  148. package/lib/Signal/Group/group_cipher.js +0 -89
  149. package/lib/Signal/Group/index.js +0 -136
  150. package/lib/Signal/Group/keyhelper.js +0 -73
  151. package/lib/Signal/Group/sender-chain-key.js +0 -32
  152. package/lib/Signal/Group/sender-key-distribution-message.js +0 -66
  153. package/lib/Signal/Group/sender-key-message.js +0 -69
  154. package/lib/Signal/Group/sender-key-name.js +0 -50
  155. package/lib/Signal/Group/sender-key-record.js +0 -44
  156. package/lib/Signal/Group/sender-key-state.js +0 -97
  157. package/lib/Signal/Group/sender-message-key.js +0 -30
  158. package/lib/Signal/libsignal.js +0 -470
  159. package/lib/Signal/lid-mapping.js +0 -280
  160. package/lib/Socket/Client/index.js +0 -30
  161. package/lib/Socket/Client/types.js +0 -13
  162. package/lib/Socket/Client/websocket.js +0 -62
  163. package/lib/Socket/aigroups.js +0 -240
  164. package/lib/Socket/business.js +0 -414
  165. package/lib/Socket/chats.js +0 -2165
  166. package/lib/Socket/communities.js +0 -545
  167. package/lib/Socket/graphql.js +0 -863
  168. package/lib/Socket/groups.js +0 -685
  169. package/lib/Socket/index.js +0 -41
  170. package/lib/Socket/interactive-handler.js +0 -579
  171. package/lib/Socket/interop.js +0 -430
  172. package/lib/Socket/managed-account.js +0 -214
  173. package/lib/Socket/messages-recv.js +0 -3000
  174. package/lib/Socket/messages-send.js +0 -2155
  175. package/lib/Socket/mex.js +0 -47
  176. package/lib/Socket/newsletter.js +0 -814
  177. package/lib/Socket/privacy.js +0 -261
  178. package/lib/Socket/registration.js +0 -434
  179. package/lib/Socket/socket.js +0 -1074
  180. package/lib/Socket/username.js +0 -160
  181. package/lib/Store/index.js +0 -36
  182. package/lib/Store/make-cache-manager-store.js +0 -90
  183. package/lib/Store/make-in-memory-store.js +0 -488
  184. package/lib/Store/make-ordered-dictionary.js +0 -81
  185. package/lib/Store/object-repository.js +0 -29
  186. package/lib/Types/Auth.js +0 -38
  187. package/lib/Types/Bussines.js +0 -2
  188. package/lib/Types/Call.js +0 -2
  189. package/lib/Types/Chat.js +0 -4
  190. package/lib/Types/Contact.js +0 -2
  191. package/lib/Types/Events.js +0 -2
  192. package/lib/Types/GroupMetadata.js +0 -2
  193. package/lib/Types/Label.js +0 -27
  194. package/lib/Types/LabelAssociation.js +0 -9
  195. package/lib/Types/Message.js +0 -95
  196. package/lib/Types/Newsletter.js +0 -152
  197. package/lib/Types/Product.js +0 -2
  198. package/lib/Types/Signal.js +0 -2
  199. package/lib/Types/Socket.js +0 -2
  200. package/lib/Types/State.js +0 -70
  201. package/lib/Types/USync.js +0 -2
  202. package/lib/Types/index.js +0 -55
  203. package/lib/Utils/auth-utils.js +0 -301
  204. package/lib/Utils/browser-utils.js +0 -114
  205. package/lib/Utils/business.js +0 -243
  206. package/lib/Utils/chat-utils.js +0 -1272
  207. package/lib/Utils/consumer-application.js +0 -107
  208. package/lib/Utils/crypto.js +0 -125
  209. package/lib/Utils/decode-wa-message.js +0 -793
  210. package/lib/Utils/event-buffer.js +0 -583
  211. package/lib/Utils/generics.js +0 -617
  212. package/lib/Utils/group-history.js +0 -51
  213. package/lib/Utils/history.js +0 -244
  214. package/lib/Utils/identity-change-handler.js +0 -52
  215. package/lib/Utils/index.js +0 -53
  216. package/lib/Utils/jid-display-normalization.js +0 -218
  217. package/lib/Utils/link-preview.js +0 -138
  218. package/lib/Utils/logger.js +0 -9
  219. package/lib/Utils/lt-hash.js +0 -6
  220. package/lib/Utils/make-mutex.js +0 -36
  221. package/lib/Utils/message-composer.js +0 -479
  222. package/lib/Utils/message-inspect.js +0 -393
  223. package/lib/Utils/message-retry-manager.js +0 -205
  224. package/lib/Utils/messages-media.js +0 -925
  225. package/lib/Utils/messages.js +0 -2482
  226. package/lib/Utils/meta-ai-msmsg.js +0 -122
  227. package/lib/Utils/noise-handler.js +0 -194
  228. package/lib/Utils/offline-node-processor.js +0 -37
  229. package/lib/Utils/pre-key-manager.js +0 -97
  230. package/lib/Utils/process-message.js +0 -1139
  231. package/lib/Utils/reporting-utils.js +0 -262
  232. package/lib/Utils/signal.js +0 -189
  233. package/lib/Utils/stanza-ack.js +0 -67
  234. package/lib/Utils/sync-action-utils.js +0 -51
  235. package/lib/Utils/tc-token-utils.js +0 -156
  236. package/lib/Utils/use-multi-file-auth-state.js +0 -137
  237. package/lib/Utils/validate-connection.js +0 -259
  238. package/lib/Utils/voip-rekey.js +0 -22
  239. package/lib/WABinary/constants.js +0 -1304
  240. package/lib/WABinary/decode.js +0 -377
  241. package/lib/WABinary/encode.js +0 -58
  242. package/lib/WABinary/generic-utils.js +0 -150
  243. package/lib/WABinary/index.js +0 -33
  244. package/lib/WABinary/jid-utils.js +0 -374
  245. package/lib/WABinary/types.js +0 -2
  246. package/lib/WAM/BinaryInfo.js +0 -13
  247. package/lib/WAM/constants.js +0 -39486
  248. package/lib/WAM/encode.js +0 -142
  249. package/lib/WAM/index.js +0 -31
  250. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -55
  251. package/lib/WAUSync/Protocols/USyncBusinessProtocol.js +0 -100
  252. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -60
  253. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -65
  254. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -27
  255. package/lib/WAUSync/Protocols/USyncFeatureProtocol.js +0 -72
  256. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -31
  257. package/lib/WAUSync/Protocols/USyncNewsletterProtocol.js +0 -865
  258. package/lib/WAUSync/Protocols/USyncPictureProtocol.js +0 -32
  259. package/lib/WAUSync/Protocols/USyncSidelistProtocol.js +0 -29
  260. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -44
  261. package/lib/WAUSync/Protocols/USyncTextStatusProtocol.js +0 -38
  262. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +0 -28
  263. package/lib/WAUSync/Protocols/index.js +0 -40
  264. package/lib/WAUSync/USyncBackoff.js +0 -26
  265. package/lib/WAUSync/USyncQuery.js +0 -204
  266. package/lib/WAUSync/USyncUser.js +0 -58
  267. package/lib/WAUSync/index.js +0 -32
  268. package/lib/antiban.js +0 -4391
  269. /package/{lib → src}/Defaults/phonenumber-mcc.json +0 -0
package/lib/WAM/encode.js DELETED
@@ -1,142 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.encodeWAM = void 0
4
- const constants_1 = require('./constants')
5
- const getHeaderBitLength = key => (key < 256 ? 2 : 3)
6
- const encodeWAM = binaryInfo => {
7
- binaryInfo.buffer = []
8
- encodeWAMHeader(binaryInfo)
9
- encodeEvents(binaryInfo)
10
- const totalSize = binaryInfo.buffer.map(a => a.length).reduce((a, b) => a + b)
11
- const buffer = Buffer.alloc(totalSize)
12
- let offset = 0
13
- for (const buffer_ of binaryInfo.buffer) {
14
- buffer_.copy(buffer, offset)
15
- offset += buffer_.length
16
- }
17
- return buffer
18
- }
19
- exports.encodeWAM = encodeWAM
20
- function encodeWAMHeader(binaryInfo) {
21
- const headerBuffer = Buffer.alloc(8)
22
- headerBuffer.write('WAM', 0, 'utf8')
23
- headerBuffer.writeUInt8(binaryInfo.protocolVersion, 3)
24
- headerBuffer.writeUInt8(1, 4)
25
- headerBuffer.writeUInt16BE(binaryInfo.sequence, 5)
26
- headerBuffer.writeUInt8(0, 7)
27
- binaryInfo.buffer.push(headerBuffer)
28
- }
29
- function encodeGlobalAttributes(binaryInfo, globals) {
30
- for (const [key, _value] of Object.entries(globals)) {
31
- const id = constants_1.WEB_GLOBALS.find(a => a?.name === key).id
32
- let value = _value
33
- if (typeof value === 'boolean') {
34
- value = value ? 1 : 0
35
- }
36
- binaryInfo.buffer.push(serializeData(id, value, constants_1.FLAG_GLOBAL))
37
- }
38
- }
39
- function encodeEvents(binaryInfo) {
40
- for (const [name, { props, globals }] of binaryInfo.events.map(a => Object.entries(a)[0])) {
41
- encodeGlobalAttributes(binaryInfo, globals)
42
- const event = constants_1.WEB_EVENTS.find(a => a.name === name)
43
- const props_ = Object.entries(props)
44
- let extended = false
45
- for (const [, value] of props_) {
46
- extended || (extended = value !== null)
47
- }
48
- const eventFlag = extended ? constants_1.FLAG_EVENT : constants_1.FLAG_EVENT | constants_1.FLAG_EXTENDED
49
- binaryInfo.buffer.push(serializeData(event.id, -event.weight, eventFlag))
50
- for (let i = 0; i < props_.length; i++) {
51
- const [key, _value] = props_[i]
52
- const id = event.props[key]?.[0]
53
- extended = i < props_.length - 1
54
- let value = _value
55
- if (typeof value === 'boolean') {
56
- value = value ? 1 : 0
57
- }
58
- const fieldFlag = extended ? constants_1.FLAG_EVENT : constants_1.FLAG_FIELD | constants_1.FLAG_EXTENDED
59
- binaryInfo.buffer.push(serializeData(id, value, fieldFlag))
60
- }
61
- }
62
- }
63
- function serializeData(key, value, flag) {
64
- const bufferLength = getHeaderBitLength(key)
65
- let buffer
66
- let offset = 0
67
- if (value === null) {
68
- if (flag === constants_1.FLAG_GLOBAL) {
69
- buffer = Buffer.alloc(bufferLength)
70
- offset = serializeHeader(buffer, offset, key, flag)
71
- return buffer
72
- }
73
- } else if (typeof value === 'number' && Number.isInteger(value)) {
74
-
75
- if (value === 0 || value === 1) {
76
- buffer = Buffer.alloc(bufferLength)
77
- offset = serializeHeader(buffer, offset, key, flag | ((value + 1) << 4))
78
- return buffer
79
- } else if (-128 <= value && value < 128) {
80
- buffer = Buffer.alloc(bufferLength + 1)
81
- offset = serializeHeader(buffer, offset, key, flag | (3 << 4))
82
- buffer.writeInt8(value, offset)
83
- return buffer
84
- } else if (-32768 <= value && value < 32768) {
85
- buffer = Buffer.alloc(bufferLength + 2)
86
- offset = serializeHeader(buffer, offset, key, flag | (4 << 4))
87
- buffer.writeInt16LE(value, offset)
88
- return buffer
89
- } else if (-2147483648 <= value && value < 2147483648) {
90
- buffer = Buffer.alloc(bufferLength + 4)
91
- offset = serializeHeader(buffer, offset, key, flag | (5 << 4))
92
- buffer.writeInt32LE(value, offset)
93
- return buffer
94
- } else {
95
- buffer = Buffer.alloc(bufferLength + 8)
96
- offset = serializeHeader(buffer, offset, key, flag | (7 << 4))
97
- buffer.writeDoubleLE(value, offset)
98
- return buffer
99
- }
100
- } else if (typeof value === 'number') {
101
-
102
- buffer = Buffer.alloc(bufferLength + 8)
103
- offset = serializeHeader(buffer, offset, key, flag | (7 << 4))
104
- buffer.writeDoubleLE(value, offset)
105
- return buffer
106
- } else if (typeof value === 'string') {
107
-
108
- const utf8Bytes = Buffer.byteLength(value, 'utf8')
109
- if (utf8Bytes < 256) {
110
- buffer = Buffer.alloc(bufferLength + 1 + utf8Bytes)
111
- offset = serializeHeader(buffer, offset, key, flag | (8 << 4))
112
- buffer.writeUint8(utf8Bytes, offset++)
113
- } else if (utf8Bytes < 65536) {
114
- buffer = Buffer.alloc(bufferLength + 2 + utf8Bytes)
115
- offset = serializeHeader(buffer, offset, key, flag | (9 << 4))
116
- buffer.writeUInt16LE(utf8Bytes, offset)
117
- offset += 2
118
- } else {
119
- buffer = Buffer.alloc(bufferLength + 4 + utf8Bytes)
120
- offset = serializeHeader(buffer, offset, key, flag | (10 << 4))
121
- buffer.writeUInt32LE(utf8Bytes, offset)
122
- offset += 4
123
- }
124
- buffer.write(value, offset, 'utf8')
125
- return buffer
126
- }
127
- throw new Error(`WAM serializeData: unsupported value type ${typeof value} for key ${key}`)
128
- }
129
- function serializeHeader(buffer, offset, key, flag) {
130
- if (key < 256) {
131
- buffer.writeUInt8(flag, offset)
132
- offset += 1
133
- buffer.writeUInt8(key, offset)
134
- offset += 1
135
- } else {
136
- buffer.writeUInt8(flag | constants_1.FLAG_BYTE, offset)
137
- offset += 1
138
- buffer.writeUInt16LE(key, offset)
139
- offset += 2
140
- }
141
- return offset
142
- }
package/lib/WAM/index.js DELETED
@@ -1,31 +0,0 @@
1
- 'use strict'
2
- var __createBinding =
3
- (this && this.__createBinding) ||
4
- (Object.create
5
- ? function (o, m, k, k2) {
6
- if (k2 === undefined) k2 = k
7
- var desc = Object.getOwnPropertyDescriptor(m, k)
8
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = {
10
- enumerable: true,
11
- get: function () {
12
- return m[k]
13
- }
14
- }
15
- }
16
- Object.defineProperty(o, k2, desc)
17
- }
18
- : function (o, m, k, k2) {
19
- if (k2 === undefined) k2 = k
20
- o[k2] = m[k]
21
- })
22
- var __exportStar =
23
- (this && this.__exportStar) ||
24
- function (m, exports) {
25
- for (var p in m)
26
- if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p)
27
- }
28
- Object.defineProperty(exports, '__esModule', { value: true })
29
- __exportStar(require('./constants'), exports)
30
- __exportStar(require('./encode'), exports)
31
- __exportStar(require('./BinaryInfo'), exports)
@@ -1,55 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncBotProfileProtocol = void 0
4
- const WABinary_1 = require('../../WABinary')
5
- class USyncBotProfileProtocol {
6
- constructor() {
7
- this.name = 'bot'
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'bot',
12
- attrs: {},
13
- content: [{ tag: 'profile', attrs: { v: '1' } }]
14
- }
15
- }
16
- getUserElement(user) {
17
- return {
18
- tag: 'bot',
19
- attrs: {},
20
- content: [{ tag: 'profile', attrs: { persona_id: user.personaId } }]
21
- }
22
- }
23
- parser(node) {
24
- const botNode = (0, WABinary_1.getBinaryNodeChild)(node, 'bot')
25
- const profile = (0, WABinary_1.getBinaryNodeChild)(botNode, 'profile')
26
- const commandsNode = (0, WABinary_1.getBinaryNodeChild)(profile, 'commands')
27
- const promptsNode = (0, WABinary_1.getBinaryNodeChild)(profile, 'prompts')
28
- const commands = []
29
- const prompts = []
30
- for (const command of (0, WABinary_1.getBinaryNodeChildren)(commandsNode, 'command')) {
31
- commands.push({
32
- name: (0, WABinary_1.getBinaryNodeChildString)(command, 'name'),
33
- description: (0, WABinary_1.getBinaryNodeChildString)(command, 'description')
34
- })
35
- }
36
- for (const prompt of (0, WABinary_1.getBinaryNodeChildren)(promptsNode, 'prompt')) {
37
- prompts.push(
38
- `${(0, WABinary_1.getBinaryNodeChildString)(prompt, 'emoji')} ${(0, WABinary_1.getBinaryNodeChildString)(prompt, 'text')}`
39
- )
40
- }
41
- return {
42
- isDefault: !!(0, WABinary_1.getBinaryNodeChild)(profile, 'default'),
43
- jid: node.attrs.jid,
44
- name: (0, WABinary_1.getBinaryNodeChildString)(profile, 'name'),
45
- attributes: (0, WABinary_1.getBinaryNodeChildString)(profile, 'attributes'),
46
- description: (0, WABinary_1.getBinaryNodeChildString)(profile, 'description'),
47
- category: (0, WABinary_1.getBinaryNodeChildString)(profile, 'category'),
48
- personaId: profile.attrs['persona_id'],
49
- commandsDescription: (0, WABinary_1.getBinaryNodeChildString)(commandsNode, 'description'),
50
- commands,
51
- prompts
52
- }
53
- }
54
- }
55
- exports.USyncBotProfileProtocol = USyncBotProfileProtocol
@@ -1,100 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncBusinessProtocol = void 0
4
- const WABinary_1 = require('../../WABinary')
5
- class USyncBusinessProtocol {
6
- constructor(profileVersion = '2') {
7
- this.name = 'business'
8
- this.profileVersion = profileVersion
9
- }
10
- getQueryElement() {
11
- return {
12
- tag: 'business',
13
- attrs: {},
14
- content: [
15
- { tag: 'verified_name', attrs: {} },
16
- { tag: 'profile', attrs: { v: this.profileVersion } }
17
- ]
18
- }
19
- }
20
- getUserElement(user) {
21
- const children = []
22
- if (user.verifiedNameSerial) {
23
- children.push({ tag: 'verified_name', attrs: { serial: user.verifiedNameSerial } })
24
- }
25
- if (user.businessProfileTag) {
26
- children.push({ tag: 'profile', attrs: { tag: user.businessProfileTag } })
27
- }
28
- return children.length > 0 ? { tag: 'business', attrs: {}, content: children } : null
29
- }
30
- parser(node) {
31
- if (node.tag !== 'business') return null
32
- ;(0, WABinary_1.assertNodeErrorFree)(node)
33
- const verifiedNameNode = (0, WABinary_1.getBinaryNodeChild)(node, 'verified_name')
34
- const profileNode = (0, WABinary_1.getBinaryNodeChild)(node, 'profile')
35
-
36
-
37
- let businessHours = undefined
38
- if (profileNode) {
39
- const businessHoursNode = (0, WABinary_1.getBinaryNodeChild)(profileNode, 'business_hours')
40
- if (businessHoursNode) {
41
- const configs = (0, WABinary_1.getBinaryNodeChildren)(businessHoursNode, 'business_hours_config')
42
- businessHours = {
43
- timezone: businessHoursNode.attrs?.timezone ?? null,
44
- config: configs.map(({ attrs }) => ({
45
- dayOfWeek: attrs?.day_of_week ?? null,
46
- openTime: attrs?.open_time ?? null,
47
- closeTime: attrs?.close_time ?? null,
48
- mode: attrs?.mode ?? null
49
- }))
50
- }
51
- }
52
- }
53
-
54
-
55
- const addressNode = profileNode ? (0, WABinary_1.getBinaryNodeChild)(profileNode, 'address') : null
56
- const businessAddress = addressNode?.content
57
- ? Buffer.isBuffer(addressNode.content)
58
- ? addressNode.content.toString()
59
- : String(addressNode.content)
60
- : (profileNode?.attrs?.address ?? null)
61
-
62
-
63
- const catalogStatus = profileNode
64
- ? {
65
- exists: profileNode.attrs?.catalog_exists === 'true' || profileNode.attrs?.catalog_exists === true,
66
- sendAll: profileNode.attrs?.catalog_send_all === 'true' || profileNode.attrs?.catalog_send_all === true
67
- }
68
- : null
69
-
70
-
71
- const cartEnabled =
72
- profileNode?.attrs?.cart_enabled !== undefined
73
- ? profileNode.attrs.cart_enabled === 'true' || profileNode.attrs.cart_enabled === true
74
- : null
75
- const webCartEnabled =
76
- profileNode?.attrs?.web_cart_enabled !== undefined
77
- ? profileNode.attrs.web_cart_enabled === 'true' || profileNode.attrs.web_cart_enabled === true
78
- : null
79
- const webCartOnOff = profileNode?.attrs?.web_cart_on_off ?? null
80
-
81
-
82
- const commerceExperience = profileNode?.attrs?.commerce_experience ?? null
83
-
84
- return {
85
- verifiedName: verifiedNameNode?.content ?? null,
86
- verifiedLevel: verifiedNameNode?.attrs?.verified_level ?? null,
87
- verifiedNameLevel: verifiedNameNode?.attrs?.verified_level ?? null,
88
- profileTag: profileNode?.attrs?.tag ?? null,
89
- pnJid: node.attrs?.pn_jid ?? null,
90
- businessHours: businessHours ?? null,
91
- businessAddress,
92
- catalogStatus,
93
- cartEnabled,
94
- webCartEnabled,
95
- webCartOnOff,
96
- commerceExperience
97
- }
98
- }
99
- }
100
- exports.USyncBusinessProtocol = USyncBusinessProtocol
@@ -1,60 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncContactProtocol = void 0
4
- const WABinary_1 = require('../../WABinary')
5
- class USyncContactProtocol {
6
- constructor() {
7
- this.name = 'contact'
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'contact',
12
- attrs: {}
13
- }
14
- }
15
- getUserElement(user) {
16
- if (user.phone) {
17
- return {
18
- tag: 'contact',
19
- attrs: {},
20
- content: user.phone
21
- }
22
- }
23
- if (user.username) {
24
- return {
25
- tag: 'contact',
26
- attrs: {
27
- username: user.username,
28
- ...(user.usernameKey ? { pin: user.usernameKey } : {}),
29
- ...(user.lid ? { lid: user.lid } : {})
30
- }
31
- }
32
- }
33
- if (user.type) {
34
- return {
35
- tag: 'contact',
36
- attrs: {
37
- type: user.type
38
- }
39
- }
40
- }
41
- return {
42
- tag: 'contact',
43
- attrs: {}
44
- }
45
- }
46
- parser(node) {
47
- if (node.tag === 'contact') {
48
- ;(0, WABinary_1.assertNodeErrorFree)(node)
49
- const inWA = node?.attrs?.type === 'in'
50
- const restrictionType = node?.attrs?.stella_addressbook_restriction_type
51
- if (restrictionType !== undefined) {
52
-
53
- return { inWA, stellaAddressbookRestrictionType: restrictionType }
54
- }
55
- return inWA
56
- }
57
- return false
58
- }
59
- }
60
- exports.USyncContactProtocol = USyncContactProtocol
@@ -1,65 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncDeviceProtocol = void 0
4
- const WABinary_1 = require('../../WABinary')
5
- class USyncDeviceProtocol {
6
- constructor() {
7
- this.name = 'devices'
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'devices',
12
- attrs: {
13
- version: '2'
14
- }
15
- }
16
- }
17
- getUserElement(user) {
18
- const { deviceHash, ts, expectedTs } = user
19
- if (deviceHash == null && ts == null && expectedTs == null) {
20
- return null
21
- }
22
- const attrs = {}
23
- if (deviceHash != null) attrs.device_hash = deviceHash
24
- if (ts != null) attrs.ts = String(ts)
25
- if (expectedTs != null) attrs.expected_ts = String(expectedTs)
26
- return {
27
- tag: 'devices',
28
- attrs
29
- }
30
- }
31
- parser(node) {
32
- const deviceList = []
33
- let keyIndex = undefined
34
- if (node.tag === 'devices') {
35
- ;(0, WABinary_1.assertNodeErrorFree)(node)
36
- const deviceListNode = (0, WABinary_1.getBinaryNodeChild)(node, 'device-list')
37
- const keyIndexNode = (0, WABinary_1.getBinaryNodeChild)(node, 'key-index-list')
38
- if (Array.isArray(deviceListNode?.content)) {
39
- for (const { tag, attrs } of deviceListNode.content) {
40
- const id = +attrs.id
41
- const keyIndex = +attrs['key-index']
42
- if (tag === 'device') {
43
- deviceList.push({
44
- id,
45
- keyIndex,
46
- isHosted: !!(attrs['is_hosted'] && attrs['is_hosted'] === 'true')
47
- })
48
- }
49
- }
50
- }
51
- if (keyIndexNode?.tag === 'key-index-list') {
52
- keyIndex = {
53
- timestamp: +keyIndexNode.attrs['ts'],
54
- signedKeyIndex: keyIndexNode?.content,
55
- expectedTimestamp: keyIndexNode.attrs['expected_ts'] ? +keyIndexNode.attrs['expected_ts'] : undefined
56
- }
57
- }
58
- }
59
- return {
60
- deviceList,
61
- keyIndex
62
- }
63
- }
64
- }
65
- exports.USyncDeviceProtocol = USyncDeviceProtocol
@@ -1,27 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncDisappearingModeProtocol = void 0
4
- const WABinary_1 = require('../../WABinary')
5
- class USyncDisappearingModeProtocol {
6
- constructor() {
7
- this.name = 'disappearing_mode'
8
- }
9
- getQueryElement() {
10
- return {
11
- tag: 'disappearing_mode',
12
- attrs: {}
13
- }
14
- }
15
- getUserElement() {
16
- return null
17
- }
18
- parser(node) {
19
- if (node.tag === 'disappearing_mode') {
20
- ;(0, WABinary_1.assertNodeErrorFree)(node)
21
- const duration = +node?.attrs.duration
22
- const setAt = new Date(+(node?.attrs.t || 0) * 1000)
23
- return { duration, setAt }
24
- }
25
- }
26
- }
27
- exports.USyncDisappearingModeProtocol = USyncDisappearingModeProtocol
@@ -1,72 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncFeatureProtocol = exports.USYNC_FEATURES = void 0
4
- const WABinary_1 = require('../../WABinary')
5
-
6
-
7
- exports.USYNC_FEATURES = [
8
- 'document',
9
- 'encrypt',
10
- 'encrypt_blist',
11
- 'encrypt_contact',
12
- 'encrypt_group_gen2',
13
- 'encrypt_image',
14
- 'encrypt_location',
15
- 'encrypt_url',
16
- 'encrypt_v2',
17
- 'voip',
18
- 'voip_legacy',
19
- 'multi_agent',
20
- 'bot_eligible'
21
- ]
22
- class USyncFeatureProtocol {
23
-
24
- constructor(features) {
25
- this.name = 'feature'
26
- this.features = features && features.length ? features : exports.USYNC_FEATURES
27
- }
28
- getQueryElement() {
29
- return {
30
- tag: 'feature',
31
- attrs: {},
32
- content: this.features.map(feature => ({ tag: feature, attrs: {} }))
33
- }
34
- }
35
- getUserElement() {
36
- return null
37
- }
38
- parser(node) {
39
- if (node.tag !== 'feature') {
40
- return null
41
- }
42
- const errorNode = (0, WABinary_1.getBinaryNodeChild)(node, 'error')
43
- if (errorNode) {
44
- return {
45
- errorCode: errorNode.attrs?.code ? +errorNode.attrs.code : undefined,
46
- errorText: errorNode.attrs?.text
47
- }
48
- }
49
- const CAMEL_MAP = {
50
- encrypt_v2: 'encryptV2',
51
- voip_legacy: 'voipLegacy',
52
- multi_agent: 'multiAgent',
53
- bot_eligible: 'botEligible',
54
- encrypt_blist: 'encryptBlist',
55
- encrypt_contact: 'encryptContact',
56
- encrypt_group_gen2: 'encryptGroupGen2',
57
- encrypt_image: 'encryptImage',
58
- encrypt_location: 'encryptLocation',
59
- encrypt_url: 'encryptUrl'
60
- }
61
- const features = {}
62
- const children = Array.isArray(node.content) ? node.content : []
63
- for (const child of children) {
64
- if (child?.attrs && child.attrs.value !== undefined) {
65
- const key = CAMEL_MAP[child.tag] || child.tag
66
- features[key] = child.attrs.value
67
- }
68
- }
69
- return features
70
- }
71
- }
72
- exports.USyncFeatureProtocol = USyncFeatureProtocol
@@ -1,31 +0,0 @@
1
- 'use strict'
2
- Object.defineProperty(exports, '__esModule', { value: true })
3
- exports.USyncLIDProtocol = void 0
4
- class USyncLIDProtocol {
5
- constructor() {
6
- this.name = 'lid'
7
- }
8
- getQueryElement() {
9
- return {
10
- tag: 'lid',
11
- attrs: {}
12
- }
13
- }
14
- getUserElement(user) {
15
- if (user.lid) {
16
- return {
17
- tag: 'lid',
18
- attrs: { jid: user.lid }
19
- }
20
- } else {
21
- return null
22
- }
23
- }
24
- parser(node) {
25
- if (node.tag === 'lid') {
26
- return node.attrs.val
27
- }
28
- return null
29
- }
30
- }
31
- exports.USyncLIDProtocol = USyncLIDProtocol