@fhynella/baileys 2.0.5 → 2.1.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 (204) hide show
  1. package/lib/Defaults/connection.js +51 -0
  2. package/lib/Defaults/constants.js +62 -0
  3. package/lib/Defaults/history.js +17 -0
  4. package/lib/Defaults/index.js +36 -142
  5. package/lib/Defaults/media.js +48 -0
  6. package/lib/Defaults/prefix.js +18 -0
  7. package/lib/Signal/Group/group-session-builder.js +10 -42
  8. package/lib/Signal/Group/group_cipher.js +9 -6
  9. package/lib/Signal/Group/index.js +39 -53
  10. package/lib/Signal/Group/keyhelper.js +8 -41
  11. package/lib/Signal/Group/sender-chain-key.js +4 -4
  12. package/lib/Signal/Group/sender-key-distribution-message.js +5 -5
  13. package/lib/Signal/Group/sender-key-message.js +12 -8
  14. package/lib/Signal/Group/sender-key-record.js +7 -7
  15. package/lib/Signal/Group/sender-key-state.js +4 -4
  16. package/lib/Signal/Group/sender-message-key.js +2 -2
  17. package/lib/Signal/libsignal.js +45 -69
  18. package/lib/Signal/lid-mapping.js +15 -11
  19. package/lib/Socket/Client/types.js +2 -2
  20. package/lib/Socket/Client/websocket.js +16 -14
  21. package/lib/Socket/business.js +41 -32
  22. package/lib/Socket/chats.js +123 -98
  23. package/lib/Socket/community.js +50 -40
  24. package/lib/Socket/groups.js +59 -47
  25. package/lib/Socket/index.js +4 -4
  26. package/lib/Socket/messages-recv.js +219 -172
  27. package/lib/Socket/messages-send.js +187 -211
  28. package/lib/Socket/newsletter.js +61 -47
  29. package/lib/Socket/socket.js +133 -90
  30. package/lib/Socket/usync.js +6 -6
  31. package/lib/Store/index.js +27 -11
  32. package/lib/Store/make-cache-manager-store.js +14 -15
  33. package/lib/Store/make-in-memory-store.js +28 -24
  34. package/lib/Types/LabelAssociation.js +2 -2
  35. package/lib/Types/Message.js +6 -6
  36. package/lib/Types/MexUpdates.js +5 -5
  37. package/lib/Types/State.js +4 -4
  38. package/lib/Types/index.js +28 -12
  39. package/lib/Utils/auth-utils.js +28 -26
  40. package/lib/Utils/baileys-event-stream.js +68 -69
  41. package/lib/Utils/business.js +63 -53
  42. package/lib/Utils/chat-utils.js +81 -71
  43. package/lib/Utils/crypto.js +25 -45
  44. package/lib/Utils/decode-wa-message.js +319 -311
  45. package/lib/Utils/event-buffer.js +21 -22
  46. package/lib/Utils/generics.js +52 -75
  47. package/lib/Utils/history.js +21 -21
  48. package/lib/Utils/index.js +27 -13
  49. package/lib/Utils/link-preview.js +7 -30
  50. package/lib/Utils/logger.js +5 -5
  51. package/lib/Utils/lt-hash.js +3 -3
  52. package/lib/Utils/message-retry-manager.js +4 -4
  53. package/lib/Utils/messages-media.js +104 -109
  54. package/lib/Utils/messages.js +203 -171
  55. package/lib/Utils/noise-handler.js +28 -19
  56. package/lib/Utils/process-message.js +111 -96
  57. package/lib/Utils/signal.js +36 -25
  58. package/lib/Utils/use-multi-file-auth-state.js +18 -22
  59. package/lib/Utils/validate-connection.js +52 -45
  60. package/lib/WABinary/decode.js +6 -32
  61. package/lib/WABinary/encode.js +3 -29
  62. package/lib/WABinary/generic-utils.js +4 -4
  63. package/lib/WABinary/index.js +27 -11
  64. package/lib/WAM/encode.js +16 -8
  65. package/lib/WAM/index.js +27 -11
  66. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +20 -16
  67. package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
  68. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +7 -4
  69. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +2 -2
  70. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -2
  71. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +2 -2
  72. package/lib/WAUSync/Protocols/index.js +27 -11
  73. package/lib/WAUSync/USyncQuery.js +17 -10
  74. package/lib/WAUSync/index.js +27 -11
  75. package/lib/index.js +60 -31
  76. package/package.json +15 -6
  77. package/WAProto/AICommon/AICommon.d.ts +0 -11702
  78. package/WAProto/Adv/Adv.d.ts +0 -643
  79. package/WAProto/BotMetadata/BotMetadata.d.ts +0 -5654
  80. package/WAProto/Cert/Cert.d.ts +0 -613
  81. package/WAProto/ChatLockSettings/ChatLockSettings.d.ts +0 -476
  82. package/WAProto/CompanionReg/CompanionReg.d.ts +0 -1361
  83. package/WAProto/DeviceCapabilities/DeviceCapabilities.d.ts +0 -577
  84. package/WAProto/E2E/E2E.d.ts +0 -41724
  85. package/WAProto/Ephemeral/Ephemeral.d.ts +0 -114
  86. package/WAProto/HistorySync/HistorySync.d.ts +0 -51700
  87. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.d.ts +0 -229
  88. package/WAProto/MdStorageChatRowOpaqueData/MdStorageChatRowOpaqueData.d.ts +0 -583
  89. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.d.ts +0 -42897
  90. package/WAProto/MmsRetry/MmsRetry.d.ts +0 -243
  91. package/WAProto/Protocol/Protocol.d.ts +0 -270
  92. package/WAProto/Reporting/Reporting.d.ts +0 -371
  93. package/WAProto/ServerSync/ServerSync.d.ts +0 -1285
  94. package/WAProto/SignalLocalStorageProtocol/SignalLocalStorageProtocol.d.ts +0 -1868
  95. package/WAProto/SignalWhisperTextProtocol/SignalWhisperTextProtocol.d.ts +0 -767
  96. package/WAProto/StatusAttributions/StatusAttributions.d.ts +0 -1027
  97. package/WAProto/SyncAction/SyncAction.d.ts +0 -11193
  98. package/WAProto/UserPassword/UserPassword.d.ts +0 -363
  99. package/WAProto/VnameCert/VnameCert.d.ts +0 -821
  100. package/WAProto/Wa6/Wa6.d.ts +0 -2128
  101. package/WAProto/Web/Web.d.ts +0 -46383
  102. package/WAProto/index.d.ts +0 -55
  103. package/lib/Defaults/index.d.ts +0 -77
  104. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  105. package/lib/Signal/Group/group-session-builder.d.ts +0 -17
  106. package/lib/Signal/Group/group_cipher.d.ts +0 -19
  107. package/lib/Signal/Group/index.d.ts +0 -11
  108. package/lib/Signal/Group/keyhelper.d.ts +0 -16
  109. package/lib/Signal/Group/sender-chain-key.d.ts +0 -14
  110. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -17
  111. package/lib/Signal/Group/sender-key-message.d.ts +0 -19
  112. package/lib/Signal/Group/sender-key-name.d.ts +0 -19
  113. package/lib/Signal/Group/sender-key-record.d.ts +0 -32
  114. package/lib/Signal/Group/sender-key-state.d.ts +0 -44
  115. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  116. package/lib/Signal/libsignal.d.ts +0 -8
  117. package/lib/Signal/lid-mapping.d.ts +0 -28
  118. package/lib/Socket/.nomedia +0 -0
  119. package/lib/Socket/Client/index.d.ts +0 -2
  120. package/lib/Socket/Client/types.d.ts +0 -16
  121. package/lib/Socket/Client/websocket.d.ts +0 -13
  122. package/lib/Socket/business.d.ts +0 -187
  123. package/lib/Socket/chats.d.ts +0 -97
  124. package/lib/Socket/community.d.ts +0 -129
  125. package/lib/Socket/groups.d.ts +0 -129
  126. package/lib/Socket/index.d.ts +0 -197
  127. package/lib/Socket/messages-recv.d.ts +0 -180
  128. package/lib/Socket/messages-send.d.ts +0 -169
  129. package/lib/Socket/messages-send.d.ts.bak +0 -165
  130. package/lib/Socket/messages-send.js.bak +0 -1812
  131. package/lib/Socket/newsletter.d.ts +0 -145
  132. package/lib/Socket/socket.d.ts +0 -45
  133. package/lib/Socket/usync.d.ts +0 -37
  134. package/lib/Store/index.d.ts +0 -4
  135. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  136. package/lib/Store/make-in-memory-store.d.ts +0 -123
  137. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  138. package/lib/Store/object-repository.d.ts +0 -10
  139. package/lib/Types/Auth.d.ts +0 -121
  140. package/lib/Types/Bussiness.d.ts +0 -28
  141. package/lib/Types/Call.d.ts +0 -14
  142. package/lib/Types/Chat.d.ts +0 -143
  143. package/lib/Types/Contact.d.ts +0 -23
  144. package/lib/Types/Events.d.ts +0 -226
  145. package/lib/Types/GroupMetadata.d.ts +0 -66
  146. package/lib/Types/Label.d.ts +0 -48
  147. package/lib/Types/LabelAssociation.d.ts +0 -35
  148. package/lib/Types/Message.d.ts +0 -484
  149. package/lib/Types/MexUpdates.d.ts +0 -9
  150. package/lib/Types/Newsletter.d.ts +0 -109
  151. package/lib/Types/Product.d.ts +0 -92
  152. package/lib/Types/Signal.d.ts +0 -98
  153. package/lib/Types/Socket.d.ts +0 -141
  154. package/lib/Types/State.d.ts +0 -41
  155. package/lib/Types/USync.d.ts +0 -26
  156. package/lib/Types/index.d.ts +0 -80
  157. package/lib/Utils/auth-utils.d.ts +0 -21
  158. package/lib/Utils/baileys-event-stream.d.ts +0 -18
  159. package/lib/Utils/business.d.ts +0 -29
  160. package/lib/Utils/chat-utils.d.ts +0 -82
  161. package/lib/Utils/crypto.d.ts +0 -56
  162. package/lib/Utils/decode-wa-message.d.ts +0 -53
  163. package/lib/Utils/event-buffer.d.ts +0 -39
  164. package/lib/Utils/generics.d.ts +0 -117
  165. package/lib/Utils/history.d.ts +0 -23
  166. package/lib/Utils/index.d.ts +0 -20
  167. package/lib/Utils/link-preview.d.ts +0 -23
  168. package/lib/Utils/logger.d.ts +0 -13
  169. package/lib/Utils/lt-hash.d.ts +0 -14
  170. package/lib/Utils/make-mutex.d.ts +0 -9
  171. package/lib/Utils/message-retry-manager.d.ts +0 -88
  172. package/lib/Utils/messages-media.d.ts +0 -135
  173. package/lib/Utils/messages.d.ts +0 -105
  174. package/lib/Utils/noise-handler.d.ts +0 -20
  175. package/lib/Utils/process-message.d.ts +0 -49
  176. package/lib/Utils/signal.d.ts +0 -42
  177. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  178. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  179. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  180. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  181. package/lib/Utils/use-single-file-auth-state.js +0 -80
  182. package/lib/Utils/validate-connection.d.ts +0 -13
  183. package/lib/WABinary/constants.d.ts +0 -30
  184. package/lib/WABinary/decode.d.ts +0 -9
  185. package/lib/WABinary/encode.d.ts +0 -3
  186. package/lib/WABinary/generic-utils.d.ts +0 -28
  187. package/lib/WABinary/index.d.ts +0 -5
  188. package/lib/WABinary/jid-utils.d.ts +0 -58
  189. package/lib/WABinary/types.d.ts +0 -22
  190. package/lib/WAM/BinaryInfo.d.ts +0 -16
  191. package/lib/WAM/constants.d.ts +0 -47
  192. package/lib/WAM/encode.d.ts +0 -3
  193. package/lib/WAM/index.d.ts +0 -3
  194. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  195. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
  196. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -26
  197. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -14
  198. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -10
  199. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -14
  200. package/lib/WAUSync/Protocols/index.d.ts +0 -6
  201. package/lib/WAUSync/USyncQuery.d.ts +0 -31
  202. package/lib/WAUSync/USyncUser.d.ts +0 -12
  203. package/lib/WAUSync/index.d.ts +0 -3
  204. package/lib/index.d.ts +0 -13
@@ -0,0 +1,51 @@
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const { Browsers } = require("../Utils")
6
+ const { default: logger } = require("../Utils/logger")
7
+ const { makeLibSignalRepository } = require("../Signal/libsignal")
8
+ const { version } = require("./baileys-version.json")
9
+
10
+ const DEFAULT_CONNECTION_CONFIG = {
11
+ version,
12
+ browser: Browsers.windows('Chrome'),
13
+ waWebSocketUrl: 'wss://web.whatsapp.com/ws/chat',
14
+ connectTimeoutMs: 20000,
15
+ keepAliveIntervalMs: 30000,
16
+ logger: logger.child({ class: 'baileys' }),
17
+ printQRInTerminal: false,
18
+ emitOwnEvents: true,
19
+ defaultQueryTimeoutMs: 60000,
20
+ customUploadHosts: [],
21
+ retryRequestDelayMs: 250,
22
+ maxMsgRetryCount: 5,
23
+ fireInitQueries: true,
24
+ auth: undefined,
25
+ markOnlineOnConnect: true,
26
+ syncFullHistory: false,
27
+ patchMessageBeforeSending: msg => msg,
28
+ shouldSyncHistoryMessage: () => true,
29
+ shouldIgnoreJid: () => false,
30
+ linkPreviewImageThumbnailWidth: 192,
31
+ transactionOpts: {
32
+ maxCommitRetries: 10,
33
+ delayBetweenTriesMs: 3000
34
+ },
35
+ generateHighQualityLinkPreview: false,
36
+ enableAutoSessionRecreation: true,
37
+ enableRecentMessageCache: true,
38
+ options: {},
39
+ appStateMacVerification: {
40
+ patch: false,
41
+ snapshot: false,
42
+ },
43
+ countryCode: 'EN',
44
+ getMessage: async () => undefined,
45
+ cachedGroupMetadata: async () => undefined,
46
+ makeSignalRepository: makeLibSignalRepository
47
+ }
48
+
49
+ module.exports = {
50
+ DEFAULT_CONNECTION_CONFIG
51
+ }
@@ -0,0 +1,62 @@
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const UNAUTHORIZED_CODES = [401, 403, 419]
6
+
7
+ const PHONENUMBER_MCC = require("./phonenumber-mcc.json")
8
+
9
+ const DEFAULT_ORIGIN = 'https://web.whatsapp.com'
10
+
11
+ const PHONE_CONNECTION_CB = 'CB:Pong'
12
+
13
+ const WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60
14
+
15
+ const NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0'
16
+
17
+ const DICT_VERSION = 3
18
+
19
+ const KEY_BUNDLE_TYPE = Buffer.from([5])
20
+
21
+ const NOISE_WA_HEADER = Buffer.from([87, 65, 6, DICT_VERSION]) // last is "DICT_VERSION"
22
+
23
+ /** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
24
+ const URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g
25
+
26
+ const MIN_PREKEY_COUNT = 5
27
+
28
+ const INITIAL_PREKEY_COUNT = 30
29
+
30
+ const UPLOAD_TIMEOUT = 30000 // 30 seconds
31
+
32
+ const MIN_UPLOAD_INTERVAL = 5000 // seconds minimum between uploads
33
+
34
+ const WA_CERT_DETAILS = {
35
+ SERIAL: 0
36
+ }
37
+
38
+ const DEFAULT_CACHE_TTLS = {
39
+ SIGNAL_STORE: 5 * 60,
40
+ MSG_RETRY: 60 * 60,
41
+ CALL_OFFER: 5 * 60,
42
+ USER_DEVICES: 5 * 60, // 5 minutes
43
+ }
44
+
45
+ module.exports = {
46
+ UNAUTHORIZED_CODES,
47
+ PHONENUMBER_MCC,
48
+ DEFAULT_ORIGIN,
49
+ PHONE_CONNECTION_CB,
50
+ WA_DEFAULT_EPHEMERAL,
51
+ NOISE_MODE,
52
+ DICT_VERSION,
53
+ KEY_BUNDLE_TYPE,
54
+ NOISE_WA_HEADER,
55
+ URL_REGEX,
56
+ MIN_PREKEY_COUNT,
57
+ MIN_UPLOAD_INTERVAL,
58
+ INITIAL_PREKEY_COUNT,
59
+ UPLOAD_TIMEOUT,
60
+ WA_CERT_DETAILS,
61
+ DEFAULT_CACHE_TTLS
62
+ }
@@ -0,0 +1,17 @@
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const { proto } = require("../../WAProto")
6
+
7
+ const PROCESSABLE_HISTORY_TYPES = [
8
+ proto.Message.HistorySyncType.INITIAL_BOOTSTRAP,
9
+ proto.Message.HistorySyncType.PUSH_NAME,
10
+ proto.Message.HistorySyncType.RECENT,
11
+ proto.Message.HistorySyncType.FULL,
12
+ proto.Message.HistorySyncType.ON_DEMAND
13
+ ]
14
+
15
+ module.exports = {
16
+ PROCESSABLE_HISTORY_TYPES
17
+ }
@@ -1,147 +1,41 @@
1
1
  "use strict"
2
2
 
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
3
+ const __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k
5
+
6
+ let desc = Object.getOwnPropertyDescriptor(m, k)
7
+
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
+
17
+ Object.defineProperty(o, k2, desc)
18
+
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k
21
+ o[k2] = m[k]
22
+ }
23
+ ))
24
+
25
+ const __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) {
27
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
28
+ __createBinding(exports, m, p)
29
+ }
30
+ }
5
31
  }
6
32
 
7
- Object.defineProperty(exports, "__esModule", { value: true })
33
+ Object.defineProperty(exports, "__esModule", {
34
+ value: true
35
+ })
8
36
 
9
- exports.DEFAULT_CACHE_TTLS = exports.UPLOAD_TIMEOUT = exports.MIN_UPLOAD_INTERVAL = exports.INITIAL_PREKEY_COUNT = exports.MIN_PREKEY_COUNT = exports.MEDIA_KEYS = exports.MEDIA_HKDF_KEY_MAPPING = exports.MEDIA_PATH_MAP = exports.DEFAULT_CONNECTION_CONFIG = exports.PROCESSABLE_HISTORY_TYPES = exports.WA_CERT_DETAILS = exports.URL_REGEX = exports.NOISE_WA_HEADER = exports.KEY_BUNDLE_TYPE = exports.DICT_VERSION = exports.NOISE_MODE = exports.WA_DEFAULT_EPHEMERAL = exports.PHONE_CONNECTION_CB = exports.DEF_TAG_PREFIX = exports.DEF_CALLBACK_PREFIX = exports.CALL_AUDIO_PREFIX = exports.CALL_VIDEO_PREFIX = exports.DEFAULT_ORIGIN = exports.UNAUTHORIZED_CODES = null
10
-
11
- const WAProto_1 = require("../../WAProto");
12
- const libsignal_1 = require("../Signal/libsignal");
13
- const Utils_1 = require("../Utils");
14
- const logger_1 = __importDefault(require("../Utils/logger"));
15
- const baileys_version_json_1 = require("./baileys-version.json");
16
- const phonenumber_mcc_json_1 = __importDefault(require("./phonenumber-mcc.json"))
17
-
18
- exports.UNAUTHORIZED_CODES = [401, 403, 419]
19
-
20
- exports.PHONENUMBER_MCC = phonenumber_mcc_json_1.default
21
-
22
- exports.DEFAULT_ORIGIN = 'https://web.whatsapp.com'
23
-
24
- exports.CALL_VIDEO_PREFIX = 'https://call.whatsapp.com/video/'
25
-
26
- exports.CALL_AUDIO_PREFIX = 'https://call.whatsapp.com/voice/'
27
-
28
- exports.DEF_CALLBACK_PREFIX = 'CB:'
29
-
30
- exports.DEF_TAG_PREFIX = 'TAG:'
31
-
32
- exports.PHONE_CONNECTION_CB = 'CB:Pong'
33
-
34
- exports.WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60
35
-
36
- exports.NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0'
37
-
38
- exports.DICT_VERSION = 3
39
-
40
- exports.KEY_BUNDLE_TYPE = Buffer.from([5])
41
-
42
- exports.NOISE_WA_HEADER = Buffer.from([87, 65, 6, exports.DICT_VERSION]) // last is "DICT_VERSION"
43
-
44
- /** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
45
- exports.URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g
46
-
47
- exports.WA_CERT_DETAILS = {
48
- SERIAL: 0,
49
- }
50
-
51
- exports.PROCESSABLE_HISTORY_TYPES = [
52
- WAProto_1.proto.Message.HistorySyncType.INITIAL_BOOTSTRAP,
53
- WAProto_1.proto.Message.HistorySyncType.PUSH_NAME,
54
- WAProto_1.proto.Message.HistorySyncType.RECENT,
55
- WAProto_1.proto.Message.HistorySyncType.FULL,
56
- WAProto_1.proto.Message.HistorySyncType.ON_DEMAND
57
- ]
58
-
59
- exports.DEFAULT_CONNECTION_CONFIG = {
60
- version: baileys_version_json_1.version,
61
- browser: Utils_1.Browsers.windows('Chrome'),
62
- waWebSocketUrl: 'wss://web.whatsapp.com/ws/chat',
63
- connectTimeoutMs: 20000,
64
- keepAliveIntervalMs: 30000,
65
- logger: logger_1.default.child({ class: 'baileys' }),
66
- printQRInTerminal: false,
67
- emitOwnEvents: true,
68
- defaultQueryTimeoutMs: 60000,
69
- customUploadHosts: [],
70
- retryRequestDelayMs: 250,
71
- maxMsgRetryCount: 5,
72
- fireInitQueries: true,
73
- auth: undefined,
74
- markOnlineOnConnect: true,
75
- syncFullHistory: false,
76
- patchMessageBeforeSending: msg => msg,
77
- shouldSyncHistoryMessage: () => true,
78
- shouldIgnoreJid: () => false,
79
- linkPreviewImageThumbnailWidth: 192,
80
- transactionOpts: { maxCommitRetries: 10, delayBetweenTriesMs: 3000 },
81
- generateHighQualityLinkPreview: false,
82
- enableAutoSessionRecreation: true,
83
- enableRecentMessageCache: true,
84
- options: {},
85
- appStateMacVerification: {
86
- patch: false,
87
- snapshot: false,
88
- },
89
- countryCode: 'EN',
90
- getMessage: async () => undefined,
91
- cachedGroupMetadata: async () => undefined,
92
- makeSignalRepository: libsignal_1.makeLibSignalRepository
93
- }
94
-
95
- exports.MEDIA_PATH_MAP = {
96
- image: '/mms/image',
97
- video: '/mms/video',
98
- document: '/mms/document',
99
- audio: '/mms/audio',
100
- sticker: '/mms/image',
101
- 'sticker-pack': '/mms/sticker',
102
- 'thumbnail-link': '/mms/image',
103
- 'product-catalog-image': '/product/image',
104
- 'md-app-state': '',
105
- 'md-msg-hist': '/mms/md-app-state',
106
- 'biz-cover-photo': '/pps/biz-cover-photo'
107
- }
108
-
109
- exports.MEDIA_HKDF_KEY_MAPPING = {
110
- 'audio': 'Audio',
111
- 'document': 'Document',
112
- 'gif': 'Video',
113
- 'image': 'Image',
114
- 'ppic': '',
115
- 'product': 'Image',
116
- 'ptt': 'Audio',
117
- 'video': 'Video',
118
- 'sticker': 'Image',
119
- 'sticker-pack': 'Sticker Pack',
120
- 'thumbnail-document': 'Document Thumbnail',
121
- 'thumbnail-image': 'Image Thumbnail',
122
- 'thumbnail-video': 'Video Thumbnail',
123
- 'thumbnail-link': 'Link Thumbnail',
124
- 'md-msg-hist': 'History',
125
- 'md-app-state': 'App State',
126
- 'product-catalog-image': '',
127
- 'payment-bg-image': 'Payment Background',
128
- 'ptv': 'Video',
129
- 'biz-cover-photo': 'Image'
130
- }
131
-
132
- exports.MEDIA_KEYS = Object.keys(exports.MEDIA_PATH_MAP)
133
-
134
- exports.MIN_PREKEY_COUNT = 5
135
-
136
- exports.INITIAL_PREKEY_COUNT = 30
137
-
138
- exports.UPLOAD_TIMEOUT = 30000 // 30 seconds
139
-
140
- exports.MIN_UPLOAD_INTERVAL = 5000 // seconds minimum between uploads
141
-
142
- exports.DEFAULT_CACHE_TTLS = {
143
- SIGNAL_STORE: 5 * 60,
144
- MSG_RETRY: 60 * 60,
145
- CALL_OFFER: 5 * 60,
146
- USER_DEVICES: 5 * 60, // 5 minutes
147
- }
37
+ __exportStar(require("./connection"), exports)
38
+ __exportStar(require("./constants"), exports)
39
+ __exportStar(require("./history"), exports)
40
+ __exportStar(require("./media"), exports)
41
+ __exportStar(require("./prefix"), exports)
@@ -0,0 +1,48 @@
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const MEDIA_PATH_MAP = {
6
+ image: '/mms/image',
7
+ video: '/mms/video',
8
+ document: '/mms/document',
9
+ audio: '/mms/audio',
10
+ sticker: '/mms/image',
11
+ 'sticker-pack': '/mms/sticker',
12
+ 'thumbnail-link': '/mms/image',
13
+ 'product-catalog-image': '/product/image',
14
+ 'md-app-state': '',
15
+ 'md-msg-hist': '/mms/md-app-state',
16
+ 'biz-cover-photo': '/pps/biz-cover-photo'
17
+ }
18
+
19
+ const MEDIA_HKDF_KEY_MAPPING = {
20
+ 'audio': 'Audio',
21
+ 'document': 'Document',
22
+ 'gif': 'Video',
23
+ 'image': 'Image',
24
+ 'ppic': '',
25
+ 'product': 'Image',
26
+ 'ptt': 'Audio',
27
+ 'video': 'Video',
28
+ 'sticker': 'Image',
29
+ 'sticker-pack': 'Sticker Pack',
30
+ 'thumbnail-document': 'Document Thumbnail',
31
+ 'thumbnail-image': 'Image Thumbnail',
32
+ 'thumbnail-video': 'Video Thumbnail',
33
+ 'thumbnail-link': 'Link Thumbnail',
34
+ 'md-msg-hist': 'History',
35
+ 'md-app-state': 'App State',
36
+ 'product-catalog-image': '',
37
+ 'payment-bg-image': 'Payment Background',
38
+ 'ptv': 'Video',
39
+ 'biz-cover-photo': 'Image'
40
+ }
41
+
42
+ const MEDIA_KEYS = Object.keys(MEDIA_PATH_MAP)
43
+
44
+ module.exports = {
45
+ MEDIA_KEYS,
46
+ MEDIA_PATH_MAP,
47
+ MEDIA_HKDF_KEY_MAPPING
48
+ }
@@ -0,0 +1,18 @@
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const DEF_TAG_PREFIX = 'TAG:'
6
+
7
+ const DEF_CALLBACK_PREFIX = 'CB:'
8
+
9
+ const CALL_VIDEO_PREFIX = 'https://call.whatsapp.com/video/'
10
+
11
+ const CALL_AUDIO_PREFIX = 'https://call.whatsapp.com/voice/'
12
+
13
+ module.exports = {
14
+ DEF_TAG_PREFIX,
15
+ DEF_CALLBACK_PREFIX,
16
+ CALL_VIDEO_PREFIX,
17
+ CALL_AUDIO_PREFIX
18
+ }
@@ -1,45 +1,13 @@
1
1
  "use strict"
2
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 () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = []
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
- return ar
27
- }
28
- return ownKeys(o)
29
- }
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod
32
- var result = {}
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
- __setModuleDefault(result, mod)
35
- return result
36
- }
37
- })()
38
-
39
3
  Object.defineProperty(exports, "__esModule", { value: true })
40
4
 
41
- const keyhelper = __importStar(require("./keyhelper"))
42
- const sender_key_distribution_message_1 = require("./sender-key-distribution-message")
5
+ const {
6
+ generateSenderKey,
7
+ generateSenderKeyId,
8
+ generateSenderSigningKey
9
+ } = require("./keyhelper")
10
+ const { SenderKeyDistributionMessage } = require("./sender-key-distribution-message")
43
11
 
44
12
  class GroupSessionBuilder {
45
13
  constructor(senderKeyStore) {
@@ -53,9 +21,9 @@ class GroupSessionBuilder {
53
21
  async create(senderKeyName) {
54
22
  const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName)
55
23
  if (senderKeyRecord.isEmpty()) {
56
- const keyId = keyhelper.generateSenderKeyId()
57
- const senderKey = keyhelper.generateSenderKey()
58
- const signingKey = keyhelper.generateSenderSigningKey()
24
+ const keyId = generateSenderKeyId()
25
+ const senderKey = generateSenderKey()
26
+ const signingKey = generateSenderSigningKey()
59
27
  senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey)
60
28
  await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord)
61
29
  }
@@ -63,7 +31,7 @@ class GroupSessionBuilder {
63
31
  if (!state) {
64
32
  throw new Error('No session state available')
65
33
  }
66
- return new sender_key_distribution_message_1.SenderKeyDistributionMessage(state.getKeyId(), state.getSenderChainKey().getIteration(), state.getSenderChainKey().getSeed(), state.getSigningKeyPublic())
34
+ return new SenderKeyDistributionMessage(state.getKeyId(), state.getSenderChainKey().getIteration(), state.getSenderChainKey().getSeed(), state.getSigningKeyPublic())
67
35
  }
68
36
  }
69
37
 
@@ -2,8 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", { value: true })
4
4
 
5
- const crypto_1 = require("@itsukichan/libsignal-node/src/crypto")
6
- const sender_key_message_1 = require("./sender-key-message")
5
+ const {
6
+ decrypt,
7
+ encrypt
8
+ } = require("@itsukichan/libsignal-node/src/crypto")
9
+ const { SenderKeyMessage } = require("./sender-key-message")
7
10
 
8
11
  class GroupCipher {
9
12
  constructor(senderKeyStore, senderKeyName) {
@@ -26,7 +29,7 @@ class GroupCipher {
26
29
  const iteration = senderKeyState.getSenderChainKey().getIteration()
27
30
  const senderKey = this.getSenderKey(senderKeyState, iteration === 0 ? 0 : iteration + 1)
28
31
  const ciphertext = await this.getCipherText(senderKey.getIv(), senderKey.getCipherKey(), paddedPlaintext)
29
- const senderKeyMessage = new sender_key_message_1.SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate())
32
+ const senderKeyMessage = new SenderKeyMessage(senderKeyState.getKeyId(), senderKey.getIteration(), ciphertext, senderKeyState.getSigningKeyPrivate())
30
33
 
31
34
  await this.senderKeyStore.storeSenderKey(this.senderKeyName, record)
32
35
 
@@ -39,7 +42,7 @@ class GroupCipher {
39
42
  throw new Error('No SenderKeyRecord found for decryption')
40
43
  }
41
44
 
42
- const senderKeyMessage = new sender_key_message_1.SenderKeyMessage(null, null, null, null, senderKeyMessageBytes)
45
+ const senderKeyMessage = new SenderKeyMessage(null, null, null, null, senderKeyMessageBytes)
43
46
  const senderKeyState = record.getSenderKeyState(senderKeyMessage.getKeyId())
44
47
 
45
48
  if (!senderKeyState) {
@@ -87,7 +90,7 @@ class GroupCipher {
87
90
  }
88
91
  async getPlainText(iv, key, ciphertext) {
89
92
  try {
90
- return crypto_1.decrypt(key, ciphertext, iv)
93
+ return decrypt(key, ciphertext, iv)
91
94
  }
92
95
  catch (e) {
93
96
  throw new Error('InvalidMessageException')
@@ -98,7 +101,7 @@ class GroupCipher {
98
101
  const ivBuffer = typeof iv === 'string' ? Buffer.from(iv, 'base64') : iv
99
102
  const keyBuffer = typeof key === 'string' ? Buffer.from(key, 'base64') : key
100
103
  const plaintextBuffer = typeof plaintext === 'string' ? Buffer.from(plaintext) : plaintext
101
- return crypto_1.encrypt(keyBuffer, plaintextBuffer, ivBuffer)
104
+ return encrypt(keyBuffer, plaintextBuffer, ivBuffer)
102
105
  }
103
106
  catch (e) {
104
107
  throw new Error('InvalidMessageException')
@@ -1,61 +1,47 @@
1
1
  "use strict"
2
2
 
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ const __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k
5
- var desc = Object.getOwnPropertyDescriptor(m, k)
5
+
6
+ let desc = Object.getOwnPropertyDescriptor(m, k)
7
+
6
8
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k] } }
9
+ desc = {
10
+ enumerable: true,
11
+ get: function() {
12
+ return m[k]
13
+ }
14
+ }
8
15
  }
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
16
 
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
- })
17
+ Object.defineProperty(o, k2, desc)
20
18
 
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = []
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
- return ar
27
- }
28
- return ownKeys(o)
29
- }
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod
32
- var result = {}
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
- __setModuleDefault(result, mod)
35
- return result
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k
21
+ o[k2] = m[k]
36
22
  }
37
- })()
38
-
39
- Object.defineProperty(exports, "__esModule", { value: true })
40
- exports.keyhelper = exports.CiphertextMessage = exports.SenderChainKey = exports.SenderMessageKey = exports.SenderKeyMessage = exports.SenderKeyState = exports.GroupCipher = exports.SenderKeyName = exports.SenderKeyRecord = exports.SenderKeyDistributionMessage = exports.GroupSessionBuilder = void 0
41
- var group_session_builder_1 = require("./group-session-builder")
42
- Object.defineProperty(exports, "GroupSessionBuilder", { enumerable: true, get: function () { return group_session_builder_1.GroupSessionBuilder } })
43
- var sender_key_distribution_message_1 = require("./sender-key-distribution-message")
44
- Object.defineProperty(exports, "SenderKeyDistributionMessage", { enumerable: true, get: function () { return sender_key_distribution_message_1.SenderKeyDistributionMessage } })
45
- var sender_key_record_1 = require("./sender-key-record")
46
- Object.defineProperty(exports, "SenderKeyRecord", { enumerable: true, get: function () { return sender_key_record_1.SenderKeyRecord } })
47
- var sender_key_name_1 = require("./sender-key-name")
48
- Object.defineProperty(exports, "SenderKeyName", { enumerable: true, get: function () { return sender_key_name_1.SenderKeyName } })
49
- var group_cipher_1 = require("./group_cipher")
50
- Object.defineProperty(exports, "GroupCipher", { enumerable: true, get: function () { return group_cipher_1.GroupCipher } })
51
- var sender_key_state_1 = require("./sender-key-state")
52
- Object.defineProperty(exports, "SenderKeyState", { enumerable: true, get: function () { return sender_key_state_1.SenderKeyState } })
53
- var sender_key_message_1 = require("./sender-key-message")
54
- Object.defineProperty(exports, "SenderKeyMessage", { enumerable: true, get: function () { return sender_key_message_1.SenderKeyMessage } })
55
- var sender_message_key_1 = require("./sender-message-key")
56
- Object.defineProperty(exports, "SenderMessageKey", { enumerable: true, get: function () { return sender_message_key_1.SenderMessageKey } })
57
- var sender_chain_key_1 = require("./sender-chain-key")
58
- Object.defineProperty(exports, "SenderChainKey", { enumerable: true, get: function () { return sender_chain_key_1.SenderChainKey } })
59
- var ciphertext_message_1 = require("./ciphertext-message")
60
- Object.defineProperty(exports, "CiphertextMessage", { enumerable: true, get: function () { return ciphertext_message_1.CiphertextMessage } })
61
- exports.keyhelper = __importStar(require("./keyhelper"))
23
+ ))
24
+
25
+ const __exportStar = (this && this.__exportStar) || function(m, exports) {
26
+ for (var p in m) {
27
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) {
28
+ __createBinding(exports, m, p)
29
+ }
30
+ }
31
+ }
32
+
33
+ Object.defineProperty(exports, "__esModule", {
34
+ value: true
35
+ })
36
+
37
+ __exportStar(require("./ciphertext-message"), exports)
38
+ __exportStar(require("./group-session-builder"), exports)
39
+ __exportStar(require("./group_cipher"), exports)
40
+ __exportStar(require("./keyhelper"), exports)
41
+ __exportStar(require("./sender-chain-key"), exports)
42
+ __exportStar(require("./sender-key-distribution-message"), exports)
43
+ __exportStar(require("./sender-key-message"), exports)
44
+ __exportStar(require("./sender-key-name"), exports)
45
+ __exportStar(require("./sender-key-record"), exports)
46
+ __exportStar(require("./sender-key-state"), exports)
47
+ __exportStar(require("./sender-message-key"), exports)
@@ -1,57 +1,24 @@
1
1
  "use strict"
2
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 () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = []
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k
26
- return ar
27
- }
28
- return ownKeys(o)
29
- }
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod
32
- var result = {}
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i])
34
- __setModuleDefault(result, mod)
35
- return result
36
- }
37
- })()
38
-
39
3
  Object.defineProperty(exports, "__esModule", { value: true })
40
4
 
41
- const nodeCrypto = __importStar(require("crypto"))
42
- const curve_1 = require("@itsukichan/libsignal-node/src/curve")
5
+ const {
6
+ randomInt,
7
+ randomBytes
8
+ } = require("crypto")
9
+ const { generateKeyPair } = require("@itsukichan/libsignal-node/src/curve")
43
10
 
44
11
  function generateSenderKey() {
45
- return nodeCrypto.randomBytes(32)
12
+ return randomBytes(32)
46
13
  }
47
14
 
48
15
  function generateSenderKeyId() {
49
- return nodeCrypto.randomInt(2147483647)
16
+ return randomInt(2147483647)
50
17
  }
51
18
 
52
19
  function generateSenderSigningKey(key) {
53
20
  if (!key) {
54
- key = curve_1.generateKeyPair()
21
+ key = generateKeyPair()
55
22
  }
56
23
  return {
57
24
  public: Buffer.from(key.pubKey),