@neelegirl/baileys 1.5.3 → 1.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +16 -195
  2. package/index.js +38 -0
  3. package/package.json +16 -96
  4. package/LICENSE +0 -21
  5. package/WAProto/WAProto.proto +0 -5308
  6. package/WAProto/index.d.ts +0 -61295
  7. package/WAProto/index.js +0 -189754
  8. package/lib/Defaults/baileys-version.json +0 -3
  9. package/lib/Defaults/index.d.ts +0 -78
  10. package/lib/Defaults/index.js +0 -149
  11. package/lib/Defaults/phonenumber-mcc.json +0 -223
  12. package/lib/Signal/WASignalGroup/GroupProtocol.js +0 -1909
  13. package/lib/Signal/WASignalGroup/ciphertext-message.d.ts +0 -9
  14. package/lib/Signal/WASignalGroup/ciphertext-message.js +0 -19
  15. package/lib/Signal/WASignalGroup/ciphertext_message.js +0 -16
  16. package/lib/Signal/WASignalGroup/generate-proto.sh +0 -1
  17. package/lib/Signal/WASignalGroup/group-session-builder.d.ts +0 -17
  18. package/lib/Signal/WASignalGroup/group-session-builder.js +0 -72
  19. package/lib/Signal/WASignalGroup/group.proto +0 -42
  20. package/lib/Signal/WASignalGroup/group_cipher.d.ts +0 -19
  21. package/lib/Signal/WASignalGroup/group_cipher.js +0 -111
  22. package/lib/Signal/WASignalGroup/group_session_builder.js +0 -46
  23. package/lib/Signal/WASignalGroup/index.d.ts +0 -11
  24. package/lib/Signal/WASignalGroup/index.js +0 -61
  25. package/lib/Signal/WASignalGroup/keyhelper.d.ts +0 -16
  26. package/lib/Signal/WASignalGroup/keyhelper.js +0 -66
  27. package/lib/Signal/WASignalGroup/protobufs.js +0 -3
  28. package/lib/Signal/WASignalGroup/queue_job.js +0 -69
  29. package/lib/Signal/WASignalGroup/readme.md +0 -6
  30. package/lib/Signal/WASignalGroup/sender-chain-key.d.ts +0 -14
  31. package/lib/Signal/WASignalGroup/sender-chain-key.js +0 -47
  32. package/lib/Signal/WASignalGroup/sender-key-distribution-message.d.ts +0 -17
  33. package/lib/Signal/WASignalGroup/sender-key-distribution-message.js +0 -71
  34. package/lib/Signal/WASignalGroup/sender-key-message.d.ts +0 -19
  35. package/lib/Signal/WASignalGroup/sender-key-message.js +0 -73
  36. package/lib/Signal/WASignalGroup/sender-key-name.d.ts +0 -19
  37. package/lib/Signal/WASignalGroup/sender-key-name.js +0 -59
  38. package/lib/Signal/WASignalGroup/sender-key-record.d.ts +0 -32
  39. package/lib/Signal/WASignalGroup/sender-key-record.js +0 -58
  40. package/lib/Signal/WASignalGroup/sender-key-state.d.ts +0 -44
  41. package/lib/Signal/WASignalGroup/sender-key-state.js +0 -147
  42. package/lib/Signal/WASignalGroup/sender-message-key.d.ts +0 -11
  43. package/lib/Signal/WASignalGroup/sender-message-key.js +0 -33
  44. package/lib/Signal/WASignalGroup/sender_chain_key.js +0 -50
  45. package/lib/Signal/WASignalGroup/sender_key_distribution_message.js +0 -78
  46. package/lib/Signal/WASignalGroup/sender_key_message.js +0 -92
  47. package/lib/Signal/WASignalGroup/sender_key_name.js +0 -70
  48. package/lib/Signal/WASignalGroup/sender_key_record.js +0 -56
  49. package/lib/Signal/WASignalGroup/sender_key_state.js +0 -129
  50. package/lib/Signal/WASignalGroup/sender_message_key.js +0 -39
  51. package/lib/Signal/libsignal.d.ts +0 -8
  52. package/lib/Signal/libsignal.js +0 -391
  53. package/lib/Signal/lid-mapping.d.ts +0 -28
  54. package/lib/Signal/lid-mapping.js +0 -184
  55. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -15
  56. package/lib/Socket/Client/abstract-socket-client.js +0 -13
  57. package/lib/Socket/Client/index.d.ts +0 -2
  58. package/lib/Socket/Client/index.js +0 -22
  59. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -12
  60. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  61. package/lib/Socket/Client/types.d.ts +0 -16
  62. package/lib/Socket/Client/types.js +0 -18
  63. package/lib/Socket/Client/websocket.d.ts +0 -13
  64. package/lib/Socket/Client/websocket.js +0 -62
  65. package/lib/Socket/business.d.ts +0 -187
  66. package/lib/Socket/business.js +0 -415
  67. package/lib/Socket/chats.d.ts +0 -97
  68. package/lib/Socket/chats.js +0 -1118
  69. package/lib/Socket/communities.d.ts +0 -223
  70. package/lib/Socket/communities.js +0 -433
  71. package/lib/Socket/groups.d.ts +0 -129
  72. package/lib/Socket/groups.js +0 -360
  73. package/lib/Socket/index.d.ts +0 -191
  74. package/lib/Socket/index.js +0 -24
  75. package/lib/Socket/messages-recv.d.ts +0 -174
  76. package/lib/Socket/messages-recv.js +0 -1506
  77. package/lib/Socket/messages-send.d.ts +0 -165
  78. package/lib/Socket/messages-send.js +0 -1785
  79. package/lib/Socket/mex.d.ts +0 -2
  80. package/lib/Socket/mex.js +0 -47
  81. package/lib/Socket/newsletter.d.ts +0 -145
  82. package/lib/Socket/newsletter.js +0 -295
  83. package/lib/Socket/socket.d.ts +0 -45
  84. package/lib/Socket/socket.js +0 -934
  85. package/lib/Socket/usync.d.ts +0 -37
  86. package/lib/Socket/usync.js +0 -83
  87. package/lib/Store/index.d.ts +0 -4
  88. package/lib/Store/index.js +0 -24
  89. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  90. package/lib/Store/make-cache-manager-store.js +0 -90
  91. package/lib/Store/make-in-memory-store.d.ts +0 -123
  92. package/lib/Store/make-in-memory-store.js +0 -429
  93. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  94. package/lib/Store/make-ordered-dictionary.js +0 -86
  95. package/lib/Store/object-repository.d.ts +0 -10
  96. package/lib/Store/object-repository.js +0 -31
  97. package/lib/Types/Auth.d.ts +0 -121
  98. package/lib/Types/Auth.js +0 -3
  99. package/lib/Types/Bussines.js +0 -3
  100. package/lib/Types/Bussiness.d.ts +0 -28
  101. package/lib/Types/Call.d.ts +0 -14
  102. package/lib/Types/Call.js +0 -3
  103. package/lib/Types/Chat.d.ts +0 -143
  104. package/lib/Types/Chat.js +0 -9
  105. package/lib/Types/Contact.d.ts +0 -23
  106. package/lib/Types/Contact.js +0 -3
  107. package/lib/Types/Events.d.ts +0 -226
  108. package/lib/Types/Events.js +0 -3
  109. package/lib/Types/GroupMetadata.d.ts +0 -66
  110. package/lib/Types/GroupMetadata.js +0 -3
  111. package/lib/Types/Label.d.ts +0 -48
  112. package/lib/Types/Label.js +0 -31
  113. package/lib/Types/LabelAssociation.d.ts +0 -35
  114. package/lib/Types/LabelAssociation.js +0 -13
  115. package/lib/Types/Message.d.ts +0 -484
  116. package/lib/Types/Message.js +0 -19
  117. package/lib/Types/MexUpdates.d.ts +0 -9
  118. package/lib/Types/MexUpdates.js +0 -18
  119. package/lib/Types/Newsletter.d.ts +0 -109
  120. package/lib/Types/Newsletter.js +0 -40
  121. package/lib/Types/Product.d.ts +0 -92
  122. package/lib/Types/Product.js +0 -3
  123. package/lib/Types/Signal.d.ts +0 -98
  124. package/lib/Types/Signal.js +0 -3
  125. package/lib/Types/Socket.d.ts +0 -141
  126. package/lib/Types/Socket.js +0 -3
  127. package/lib/Types/State.d.ts +0 -41
  128. package/lib/Types/State.js +0 -14
  129. package/lib/Types/USync.d.ts +0 -26
  130. package/lib/Types/USync.js +0 -3
  131. package/lib/Types/index.d.ts +0 -80
  132. package/lib/Types/index.js +0 -50
  133. package/lib/Utils/auth-utils.d.ts +0 -21
  134. package/lib/Utils/auth-utils.js +0 -528
  135. package/lib/Utils/baileys-event-stream.d.ts +0 -18
  136. package/lib/Utils/baileys-event-stream.js +0 -70
  137. package/lib/Utils/business.d.ts +0 -29
  138. package/lib/Utils/business.js +0 -255
  139. package/lib/Utils/chat-utils.d.ts +0 -82
  140. package/lib/Utils/chat-utils.js +0 -809
  141. package/lib/Utils/crypto.d.ts +0 -56
  142. package/lib/Utils/crypto.js +0 -189
  143. package/lib/Utils/decode-wa-message.d.ts +0 -53
  144. package/lib/Utils/decode-wa-message.js +0 -323
  145. package/lib/Utils/event-buffer.d.ts +0 -39
  146. package/lib/Utils/event-buffer.js +0 -595
  147. package/lib/Utils/generics.d.ts +0 -131
  148. package/lib/Utils/generics.js +0 -630
  149. package/lib/Utils/history.d.ts +0 -23
  150. package/lib/Utils/history.js +0 -104
  151. package/lib/Utils/index.d.ts +0 -20
  152. package/lib/Utils/index.js +0 -40
  153. package/lib/Utils/link-preview.d.ts +0 -23
  154. package/lib/Utils/link-preview.js +0 -120
  155. package/lib/Utils/logger.d.ts +0 -13
  156. package/lib/Utils/logger.js +0 -7
  157. package/lib/Utils/lt-hash.d.ts +0 -14
  158. package/lib/Utils/lt-hash.js +0 -58
  159. package/lib/Utils/make-mutex.d.ts +0 -9
  160. package/lib/Utils/make-mutex.js +0 -49
  161. package/lib/Utils/message-retry-manager.d.ts +0 -88
  162. package/lib/Utils/message-retry-manager.js +0 -160
  163. package/lib/Utils/messages-media.d.ts +0 -135
  164. package/lib/Utils/messages-media.js +0 -869
  165. package/lib/Utils/messages.d.ts +0 -105
  166. package/lib/Utils/messages.js +0 -1745
  167. package/lib/Utils/noise-handler.d.ts +0 -21
  168. package/lib/Utils/noise-handler.js +0 -165
  169. package/lib/Utils/process-message.d.ts +0 -49
  170. package/lib/Utils/process-message.js +0 -427
  171. package/lib/Utils/signal.d.ts +0 -42
  172. package/lib/Utils/signal.js +0 -166
  173. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  174. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  175. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -18
  176. package/lib/Utils/use-multi-file-auth-state.js +0 -238
  177. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  178. package/lib/Utils/use-single-file-auth-state.js +0 -80
  179. package/lib/Utils/validate-connection.d.ts +0 -13
  180. package/lib/Utils/validate-connection.js +0 -220
  181. package/lib/WABinary/constants.d.ts +0 -30
  182. package/lib/WABinary/constants.js +0 -1316
  183. package/lib/WABinary/decode.d.ts +0 -9
  184. package/lib/WABinary/decode.js +0 -288
  185. package/lib/WABinary/encode.d.ts +0 -3
  186. package/lib/WABinary/encode.js +0 -265
  187. package/lib/WABinary/generic-utils.d.ts +0 -28
  188. package/lib/WABinary/generic-utils.js +0 -142
  189. package/lib/WABinary/index.d.ts +0 -5
  190. package/lib/WABinary/index.js +0 -25
  191. package/lib/WABinary/jid-utils.d.ts +0 -58
  192. package/lib/WABinary/jid-utils.js +0 -104
  193. package/lib/WABinary/types.d.ts +0 -22
  194. package/lib/WABinary/types.js +0 -3
  195. package/lib/WAM/BinaryInfo.d.ts +0 -16
  196. package/lib/WAM/BinaryInfo.js +0 -17
  197. package/lib/WAM/constants.d.ts +0 -47
  198. package/lib/WAM/constants.js +0 -15371
  199. package/lib/WAM/encode.d.ts +0 -3
  200. package/lib/WAM/encode.js +0 -164
  201. package/lib/WAM/index.d.ts +0 -3
  202. package/lib/WAM/index.js +0 -23
  203. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  204. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +0 -69
  205. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
  206. package/lib/WAUSync/Protocols/USyncContactProtocol.js +0 -36
  207. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -26
  208. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +0 -62
  209. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -14
  210. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +0 -35
  211. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -10
  212. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -38
  213. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -14
  214. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +0 -46
  215. package/lib/WAUSync/Protocols/index.d.ts +0 -6
  216. package/lib/WAUSync/Protocols/index.js +0 -26
  217. package/lib/WAUSync/USyncQuery.d.ts +0 -31
  218. package/lib/WAUSync/USyncQuery.js +0 -92
  219. package/lib/WAUSync/USyncUser.d.ts +0 -12
  220. package/lib/WAUSync/USyncUser.js +0 -30
  221. package/lib/WAUSync/index.d.ts +0 -3
  222. package/lib/WAUSync/index.js +0 -23
  223. package/lib/index.d.ts +0 -13
  224. package/lib/index.js +0 -33
@@ -1,104 +0,0 @@
1
- "use strict"
2
-
3
- Object.defineProperty(exports, "__esModule", { value: true })
4
-
5
- const util_1 = require("util")
6
- const zlib_1 = require("zlib")
7
- const WAProto_1 = require("../../WAProto")
8
- const Types_1 = require("../Types")
9
- const WABinary_1 = require("../WABinary")
10
- const generics_1 = require("./generics")
11
- const messages_1 = require("./messages")
12
- const messages_media_1 = require("./messages-media")
13
- const inflatePromise = util_1.promisify(zlib_1.inflate)
14
-
15
- const downloadHistory = async (msg, options) => {
16
- const stream = await messages_media_1.downloadContentFromMessage(msg, 'md-msg-hist', { options })
17
- const bufferArray = []
18
- for await (const chunk of stream) {
19
- bufferArray.push(chunk)
20
- }
21
- let buffer = Buffer.concat(bufferArray)
22
- // decompress buffer
23
- buffer = await inflatePromise(buffer)
24
- const syncData = WAProto_1.proto.HistorySync.decode(buffer)
25
- return syncData
26
- }
27
-
28
- const processHistoryMessage = (item) => {
29
- const messages = []
30
- const contacts = []
31
- const chats = []
32
- switch (item.syncType) {
33
- case WAProto_1.proto.HistorySync.HistorySyncType.INITIAL_BOOTSTRAP:
34
- case WAProto_1.proto.HistorySync.HistorySyncType.RECENT:
35
- case WAProto_1.proto.HistorySync.HistorySyncType.FULL:
36
- case WAProto_1.proto.HistorySync.HistorySyncType.ON_DEMAND:
37
- for (const chat of item.conversations) {
38
- contacts.push({
39
- id: chat.id,
40
- name: chat.name || undefined,
41
- lid: chat.lidJid || undefined,
42
- phoneNumber: chat.pnJid || undefined
43
- })
44
- const msgs = chat.messages || []
45
- delete chat.messages
46
- for (const item of msgs) {
47
- const message = item.message
48
- messages.push(message)
49
- if (!chat.messages?.length) {
50
- // keep only the most recent message in the chat array
51
- chat.messages = [{ message }]
52
- }
53
- if (!message.key.fromMe && !chat.lastMessageRecvTimestamp) {
54
- chat.lastMessageRecvTimestamp = generics_1.toNumber(message.messageTimestamp)
55
- }
56
- if (message.messageStubType === Types_1.WAMessageStubType.BIZ_PRIVACY_MODE_TO_BSP
57
- || message.messageStubType === Types_1.WAMessageStubType.BIZ_PRIVACY_MODE_TO_FB
58
- && message.messageStubParameters?.[0]) {
59
- contacts.push({
60
- id: message.key.participant || message.key.remoteJid,
61
- verifiedName: message.messageStubParameters?.[0]
62
- })
63
- }
64
- }
65
- chats.push({ ...chat })
66
- }
67
- break
68
- case WAProto_1.proto.HistorySync.HistorySyncType.PUSH_NAME:
69
- for (const c of item.pushnames) {
70
- contacts.push({
71
- id: c.id,
72
- name: c.name || undefined,
73
- lid: c.lidJid || undefined,
74
- jid: WABinary_1.isJidUser(c.id) ? c.id : undefined
75
- })
76
- }
77
- break
78
- }
79
- return {
80
- chats,
81
- contacts,
82
- messages,
83
- syncType: item.syncType,
84
- progress: item.progress
85
- }
86
- }
87
-
88
- const downloadAndProcessHistorySyncNotification = async (msg, options) => {
89
- const historyMsg = await downloadHistory(msg, options)
90
- return processHistoryMessage(historyMsg)
91
- }
92
-
93
- const getHistoryMsg = (message) => {
94
- const normalizedContent = !!message ? messages_1.normalizeMessageContent(message) : undefined
95
- const anyHistoryMsg = normalizedContent?.protocolMessage?.historySyncNotification
96
- return anyHistoryMsg
97
- }
98
-
99
- module.exports = {
100
- downloadHistory,
101
- processHistoryMessage,
102
- downloadAndProcessHistorySyncNotification,
103
- getHistoryMsg
104
- }
@@ -1,20 +0,0 @@
1
- export * from '@neelegirl/baileys/lib/Utils/generics'
2
- export * from '@neelegirl/baileys/lib/Utils/decode-wa-message'
3
- export * from '@neelegirl/baileys/lib/Utils/messages'
4
- export * from '@neelegirl/baileys/lib/Utils/messages-media'
5
- export * from '@neelegirl/baileys/lib/Utils/message-retry-manager'
6
- export * from '@neelegirl/baileys/lib/Utils/validate-connection'
7
- export * from '@neelegirl/baileys/lib/Utils/crypto'
8
- export * from '@neelegirl/baileys/lib/Utils/signal'
9
- export * from '@neelegirl/baileys/lib/Utils/noise-handler'
10
- export * from '@neelegirl/baileys/lib/Utils/history'
11
- export * from '@neelegirl/baileys/lib/Utils/chat-utils'
12
- export * from '@neelegirl/baileys/lib/Utils/lt-hash'
13
- export * from '@neelegirl/baileys/lib/Utils/auth-utils'
14
- export * from '@neelegirl/baileys/lib/Utils/baileys-event-stream'
15
- export * from '@neelegirl/baileys/lib/Utils/use-mongo-file-auth-state'
16
- export * from '@neelegirl/baileys/lib/Utils/use-single-file-auth-state'
17
- export * from '@neelegirl/baileys/lib/Utils/use-multi-file-auth-state'
18
- export * from '@neelegirl/baileys/lib/Utils/link-preview'
19
- export * from '@neelegirl/baileys/lib/Utils/event-buffer'
20
- export * from '@neelegirl/baileys/lib/Utils/process-message'
@@ -1,40 +0,0 @@
1
- "use strict"
2
-
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
8
- }
9
- Object.defineProperty(o, k2, desc)
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k
12
- o[k2] = m[k]
13
- }))
14
-
15
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p)
17
- }
18
-
19
- Object.defineProperty(exports, "__esModule", { value: true })
20
-
21
- __exportStar(require("./generics"), exports)
22
- __exportStar(require("./decode-wa-message"), exports)
23
- __exportStar(require("./messages"), exports)
24
- __exportStar(require("./messages-media"), exports)
25
- __exportStar(require("./message-retry-manager"), exports)
26
- __exportStar(require("./validate-connection"), exports)
27
- __exportStar(require("./crypto"), exports)
28
- __exportStar(require("./signal"), exports)
29
- __exportStar(require("./noise-handler"), exports)
30
- __exportStar(require("./history"), exports)
31
- __exportStar(require("./chat-utils"), exports)
32
- __exportStar(require("./lt-hash"), exports)
33
- __exportStar(require("./auth-utils"), exports)
34
- __exportStar(require("./baileys-event-stream"), exports)
35
- __exportStar(require("./use-mongo-file-auth-state"), exports)
36
- __exportStar(require("./use-single-file-auth-state"), exports)
37
- __exportStar(require("./use-multi-file-auth-state"), exports)
38
- __exportStar(require("./link-preview"), exports)
39
- __exportStar(require("./event-buffer"), exports)
40
- __exportStar(require("./process-message"), exports)
@@ -1,23 +0,0 @@
1
- import { AxiosRequestConfig } from 'axios'
2
- import { WAMediaUploadFunction, WAUrlInfo } from '@neelegirl/baileys/lib/Types'
3
- import { ILogger } from '@neelegirl/baileys/lib/Utils/logger'
4
-
5
- export type URLGenerationOptions = {
6
- thumbnailWidth: number
7
- fetchOpts: {
8
- /** Timeout in ms */
9
- timeout: number
10
- proxyUrl?: string
11
- headers?: AxiosRequestConfig<{}>['headers']
12
- }
13
- uploadImage?: WAMediaUploadFunction
14
- logger?: ILogger
15
- }
16
-
17
- /**
18
- * Given a piece of text, checks for any URL present, generates link preview for the same and returns it
19
- * Return undefined if the fetch failed or no URL was found
20
- * @param text first matched URL in text
21
- * @returns the URL info required to generate link preview
22
- */
23
- export declare const getUrlInfo: (text: string, opts?: URLGenerationOptions) => Promise<WAUrlInfo | undefined>
@@ -1,120 +0,0 @@
1
- "use strict"
2
-
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
8
- }
9
- Object.defineProperty(o, k2, desc)
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k
12
- o[k2] = m[k]
13
- }))
14
-
15
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
16
- Object.defineProperty(o, "default", { enumerable: true, value: v })
17
- }) : function(o, v) {
18
- o["default"] = v
19
- })
20
-
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod
23
- var result = {}
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k)
25
- __setModuleDefault(result, mod)
26
- return result
27
- }
28
-
29
- Object.defineProperty(exports, "__esModule", { value: true })
30
-
31
- const messages_1 = require("./messages")
32
- const messages_media_1 = require("./messages-media")
33
- const THUMBNAIL_WIDTH_PX = 192
34
-
35
- /** Fetches an image and generates a thumbnail for it */
36
- const getCompressedJpegThumbnail = async (url, { thumbnailWidth, fetchOpts }) => {
37
- const stream = await messages_media_1.getHttpStream(url, fetchOpts)
38
- const result = await messages_media_1.extractImageThumb(stream, thumbnailWidth)
39
- return result
40
- }
41
-
42
- /**
43
- * Given a piece of text, checks for any URL present, generates link preview for the same and returns it
44
- * Return undefined if the fetch failed or no URL was found
45
- * @param text first matched URL in text
46
- * @returns the URL info required to generate link preview
47
- */
48
- const getUrlInfo = async (text, opts = { thumbnailWidth: THUMBNAIL_WIDTH_PX, fetchOpts: { timeout: 3000 }}) => {
49
- try {
50
- const retries = 0
51
- const maxRetry = 5
52
- const { getLinkPreview } = await Promise.resolve().then(() => __importStar(require('link-preview-js')))
53
- let previewLink = text
54
- if (!text.startsWith('https://') && !text.startsWith('http://')) {
55
- previewLink = 'https://' + previewLink
56
- }
57
- const info = await getLinkPreview(previewLink, {
58
- ...opts.fetchOpts,
59
- followRedirects: 'follow',
60
- handleRedirects: (baseURL, forwardedURL) => {
61
- const urlObj = new URL(baseURL)
62
- const forwardedURLObj = new URL(forwardedURL)
63
- if (retries >= maxRetry) {
64
- return false
65
- }
66
- if (forwardedURLObj.hostname === urlObj.hostname
67
- || forwardedURLObj.hostname === 'www.' + urlObj.hostname
68
- || 'www.' + forwardedURLObj.hostname === urlObj.hostname) {
69
- retries + 1
70
- return true
71
- }
72
- else {
73
- return false
74
- }
75
- },
76
- headers: opts.fetchOpts
77
- })
78
- if (info && 'title' in info && info.title) {
79
- const [image] = info.images
80
- const urlInfo = {
81
- 'canonical-url': info.url,
82
- 'matched-text': text,
83
- title: info.title,
84
- description: info.description,
85
- originalThumbnailUrl: image
86
- }
87
- if (opts.uploadImage) {
88
- const { imageMessage } = await messages_1.prepareWAMessageMedia({ image: { url: image } }, {
89
- upload: opts.uploadImage,
90
- mediaTypeOverride: 'thumbnail-link',
91
- options: opts.fetchOpts
92
- })
93
- urlInfo.jpegThumbnail = imageMessage?.jpegThumbnail
94
- ? Buffer.from(imageMessage.jpegThumbnail)
95
- : undefined
96
- urlInfo.highQualityThumbnail = imageMessage || undefined
97
- }
98
- else {
99
- try {
100
- urlInfo.jpegThumbnail = image
101
- ? (await getCompressedJpegThumbnail(image, opts)).buffer
102
- : undefined
103
- }
104
- catch (error) {
105
- opts.logger?.debug({ err: error.stack, url: previewLink }, 'error in generating thumbnail')
106
- }
107
- }
108
- return urlInfo
109
- }
110
- }
111
- catch (error) {
112
- if (!error.message.includes('receive a valid')) {
113
- throw error
114
- }
115
- }
116
- }
117
-
118
- module.exports = {
119
- getUrlInfo
120
- }
@@ -1,13 +0,0 @@
1
- export interface ILogger {
2
- level: string
3
- child(obj: Record<string, unknown>): ILogger
4
- trace(obj: unknown, msg?: string): any
5
- debug(obj: unknown, msg?: string): any
6
- info(obj: unknown, msg?: string): any
7
- warn(obj: unknown, msg?: string): any
8
- error(obj: unknown, msg?: string): any
9
- }
10
-
11
- declare const _default: import("pino").Logger<never, boolean>
12
-
13
- export default _default
@@ -1,7 +0,0 @@
1
- "use strict"
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod }
4
- }
5
- Object.defineProperty(exports, "__esModule", { value: true })
6
- const pino_1 = __importDefault(require("pino"))
7
- exports.default = pino_1.default({ timestamp: () => `,"time":"${new Date().toJSON()}"` })
@@ -1,14 +0,0 @@
1
- declare class d {
2
- salt: string
3
- constructor(e: string)
4
- add(e: any, t: any): any
5
- subtract(e: any, t: any): any
6
- subtractThenAdd(e: any, t: any, r: any): any
7
- _addSingle(e: any, t: any): Promise<ArrayBuffer>
8
- _subtractSingle(e: any, t: any): Promise<ArrayBuffer>
9
- performPointwiseWithOverflow(e: any, t: any, r: any): ArrayBuffer
10
- }
11
-
12
- export declare const LT_HASH_ANTI_TAMPERING: d
13
-
14
- export {}
@@ -1,58 +0,0 @@
1
- "use strict"
2
-
3
- Object.defineProperty(exports, "__esModule", { value: true })
4
-
5
- const crypto_1 = require("./crypto")
6
-
7
- /**
8
- * LT Hash is a summation based hash algorithm that maintains the integrity of a piece of data
9
- * over a series of mutations. You can add/remove mutations and it'll return a hash equal to
10
- * if the same series of mutations was made sequentially.
11
- */
12
- const o = 128
13
- class d {
14
- constructor(e) {
15
- this.salt = e
16
- }
17
- add(e, t) {
18
- var r = this
19
- for (const item of t) {
20
- e = r._addSingle(e, item)
21
- }
22
- return e
23
- }
24
- subtract(e, t) {
25
- var r = this
26
- for (const item of t) {
27
- e = r._subtractSingle(e, item)
28
- }
29
- return e
30
- }
31
- subtractThenAdd(e, t, r) {
32
- var n = this
33
- return n.add(n.subtract(e, r), t)
34
- }
35
- async _addSingle(e, t) {
36
- var r = this
37
- const n = new Uint8Array(await crypto_1.hkdf(Buffer.from(t), o, { info: r.salt })).buffer
38
- return r.performPointwiseWithOverflow(await e, n, ((e, t) => e + t))
39
- }
40
- async _subtractSingle(e, t) {
41
- var r = this
42
- const n = new Uint8Array(await crypto_1.hkdf(Buffer.from(t), o, { info: r.salt })).buffer
43
- return r.performPointwiseWithOverflow(await e, n, ((e, t) => e - t))
44
- }
45
- performPointwiseWithOverflow(e, t, r) {
46
- const n = new DataView(e), i = new DataView(t), a = new ArrayBuffer(n.byteLength), s = new DataView(a)
47
- for (let e = 0; e < n.byteLength; e += 2) {
48
- s.setUint16(e, r(n.getUint16(e, !0), i.getUint16(e, !0)), !0)
49
- }
50
- return a
51
- }
52
- }
53
-
54
- const LT_HASH_ANTI_TAMPERING = new d('WhatsApp Patch Integrity')
55
-
56
- module.exports = {
57
- LT_HASH_ANTI_TAMPERING
58
- }
@@ -1,9 +0,0 @@
1
- export declare const makeMutex: () => {
2
- mutex<T>(code: () => T | Promise<T>): Promise<T>
3
- }
4
-
5
- export type Mutex = ReturnType<typeof makeMutex>
6
-
7
- export declare const makeKeyedMutex: () => {
8
- mutex<T>(key: string, task: () => T | Promise<T>): Promise<T>
9
- }
@@ -1,49 +0,0 @@
1
- "use strict"
2
-
3
- Object.defineProperty(exports, "__esModule", { value: true })
4
-
5
- const makeMutex = () => {
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- let task = Promise.resolve()
8
- let taskTimeout
9
- return {
10
- mutex(code) {
11
- task = (async () => {
12
- // wait for the previous task to complete
13
- // if there is an error, we swallow so as to not block the queue
14
- try {
15
- await task
16
- }
17
- catch (_a) { }
18
- try {
19
- // execute the current task
20
- const result = await code()
21
- return result
22
- }
23
- finally {
24
- clearTimeout(taskTimeout)
25
- }
26
- })()
27
- // we replace the existing task, appending the new piece of execution to it
28
- // so the next task will have to wait for this one to finish
29
- return task
30
- },
31
- }
32
- }
33
-
34
- const makeKeyedMutex = () => {
35
- const map = {}
36
- return {
37
- mutex(key, task) {
38
- if (!map[key]) {
39
- map[key] = makeMutex()
40
- }
41
- return map[key].mutex(task)
42
- }
43
- }
44
- }
45
-
46
- module.exports = {
47
- makeMutex,
48
- makeKeyedMutex
49
- }
@@ -1,88 +0,0 @@
1
- import { proto } from '@neelegirl/baileys/WAProto'
2
- import { ILogger } from '@neelegirl/baileys/lib/Utils/logger'
3
-
4
- export interface RecentMessageKey {
5
- to: string
6
- id: string
7
- }
8
-
9
- export interface RecentMessage {
10
- message: proto.IMessage
11
- timestamp: number
12
- }
13
-
14
- export interface SessionRecreateHistory {
15
- [jid: string]: number
16
- }
17
-
18
- export interface RetryCounter {
19
- [messageId: string]: number
20
- }
21
-
22
- export interface PendingPhoneRequest {
23
- [messageId: string]: NodeJS.Timeout
24
- }
25
-
26
- export interface RetryStatistics {
27
- totalRetries: number
28
- successfulRetries: number
29
- failedRetries: number
30
- mediaRetries: number
31
- sessionRecreations: number
32
- phoneRequests: number
33
- }
34
-
35
- export declare class MessageRetryManager {
36
- private logger
37
- private recentMessagesMap
38
- private sessionRecreateHistory
39
- private retryCounters
40
- private pendingPhoneRequests
41
- private readonly maxMsgRetryCount
42
- private statistics
43
- constructor(logger: ILogger, maxMsgRetryCount: number)
44
- /**
45
- * Add a recent message to the cache for retry handling
46
- */
47
- addRecentMessage(to: string, id: string, message: proto.IMessage): void
48
- /**
49
- * Get a recent message from the cache
50
- */
51
- getRecentMessage(to: string, id: string): RecentMessage | undefined
52
- /**
53
- * Check if a session should be recreated based on retry count and history
54
- */
55
- shouldRecreateSession(jid: string, retryCount: number, hasSession: boolean): {
56
- reason: string
57
- recreate: boolean
58
- }
59
- /**
60
- * Increment retry counter for a message
61
- */
62
- incrementRetryCount(messageId: string): number
63
- /**
64
- * Get retry count for a message
65
- */
66
- getRetryCount(messageId: string): number
67
- /**
68
- * Check if message has exceeded maximum retry attempts
69
- */
70
- hasExceededMaxRetries(messageId: string): boolean
71
- /**
72
- * Mark retry as successful
73
- */
74
- markRetrySuccess(messageId: string): void
75
- /**
76
- * Mark retry as failed
77
- */
78
- markRetryFailed(messageId: string): void
79
- /**
80
- * Schedule a phone request with delay
81
- */
82
- schedulePhoneRequest(messageId: string, callback: () => void, delay?: number): void
83
- /**
84
- * Cancel pending phone request
85
- */
86
- cancelPendingPhoneRequest(messageId: string): void
87
- private keyToString
88
- }