@pontalabs/baileys 1.0.6 → 1.0.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 (185) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +839 -267
  3. package/WAProto/GenerateStatics.sh +4 -3
  4. package/WAProto/WAProto.proto +511 -1215
  5. package/WAProto/index.d.ts +55 -14017
  6. package/WAProto/index.js +29 -97689
  7. package/lib/Defaults/index.d.ts +74 -72
  8. package/lib/Defaults/index.js +108 -94
  9. package/lib/Signal/Group/ciphertext-message.d.ts +7 -8
  10. package/lib/Signal/Group/ciphertext-message.js +16 -9
  11. package/lib/Signal/Group/group-session-builder.d.ts +13 -11
  12. package/lib/Signal/Group/group-session-builder.js +61 -19
  13. package/lib/Signal/Group/group_cipher.d.ts +16 -14
  14. package/lib/Signal/Group/group_cipher.js +70 -41
  15. package/lib/Signal/Group/index.d.ts +11 -12
  16. package/lib/Signal/Group/index.js +61 -12
  17. package/lib/Signal/Group/keyhelper.d.ts +14 -9
  18. package/lib/Signal/Group/keyhelper.js +58 -10
  19. package/lib/Signal/Group/sender-chain-key.d.ts +13 -13
  20. package/lib/Signal/Group/sender-chain-key.js +34 -13
  21. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -16
  22. package/lib/Signal/Group/sender-key-distribution-message.js +36 -28
  23. package/lib/Signal/Group/sender-key-message.d.ts +18 -18
  24. package/lib/Signal/Group/sender-key-message.js +45 -38
  25. package/lib/Signal/Group/sender-key-name.d.ts +15 -14
  26. package/lib/Signal/Group/sender-key-name.js +31 -20
  27. package/lib/Signal/Group/sender-key-record.d.ts +25 -24
  28. package/lib/Signal/Group/sender-key-record.js +35 -18
  29. package/lib/Signal/Group/sender-key-state.d.ts +34 -29
  30. package/lib/Signal/Group/sender-key-state.js +100 -37
  31. package/lib/Signal/Group/sender-message-key.d.ts +10 -11
  32. package/lib/Signal/Group/sender-message-key.js +22 -15
  33. package/lib/Signal/libsignal.d.ts +8 -5
  34. package/lib/Signal/libsignal.js +142 -288
  35. package/lib/Signal/lid-mapping.d.ts +28 -23
  36. package/lib/Signal/lid-mapping.js +184 -277
  37. package/lib/Socket/Client/index.d.ts +2 -3
  38. package/lib/Socket/Client/index.js +22 -3
  39. package/lib/Socket/Client/types.d.ts +15 -15
  40. package/lib/Socket/Client/types.js +15 -8
  41. package/lib/Socket/Client/websocket.d.ts +12 -12
  42. package/lib/Socket/Client/websocket.js +37 -29
  43. package/lib/Socket/business.d.ts +178 -208
  44. package/lib/Socket/business.js +127 -91
  45. package/lib/Socket/chats.d.ts +93 -120
  46. package/lib/Socket/chats.js +652 -727
  47. package/lib/Socket/community.js +10 -2
  48. package/lib/Socket/groups.d.ts +111 -143
  49. package/lib/Socket/groups.js +186 -165
  50. package/lib/Socket/index.d.ts +183 -252
  51. package/lib/Socket/index.js +18 -38
  52. package/lib/Socket/messages-recv.d.ts +167 -196
  53. package/lib/Socket/messages-recv.js +1567 -1443
  54. package/lib/Socket/messages-send.d.ts +158 -192
  55. package/lib/Socket/messages-send.js +1208 -1102
  56. package/lib/Socket/newsletter.d.ts +138 -163
  57. package/lib/Socket/newsletter.js +249 -153
  58. package/lib/Socket/socket.d.ts +36 -50
  59. package/lib/Socket/socket.js +820 -749
  60. package/lib/Store/index.d.ts +4 -4
  61. package/lib/Store/index.js +24 -4
  62. package/lib/Store/make-in-memory-store.d.ts +104 -44
  63. package/lib/Store/make-in-memory-store.js +213 -199
  64. package/lib/Store/make-ordered-dictionary.d.ts +12 -13
  65. package/lib/Store/make-ordered-dictionary.js +45 -38
  66. package/lib/Store/object-repository.d.ts +10 -11
  67. package/lib/Store/object-repository.js +16 -9
  68. package/lib/Types/Auth.d.ts +97 -93
  69. package/lib/Types/Auth.js +3 -2
  70. package/lib/Types/Bussines.js +3 -2
  71. package/lib/Types/Call.d.ts +13 -14
  72. package/lib/Types/Call.js +3 -2
  73. package/lib/Types/Chat.d.ts +97 -78
  74. package/lib/Types/Chat.js +9 -8
  75. package/lib/Types/Contact.d.ts +9 -12
  76. package/lib/Types/Contact.js +3 -2
  77. package/lib/Types/Events.d.ts +176 -206
  78. package/lib/Types/Events.js +3 -2
  79. package/lib/Types/GroupMetadata.d.ts +48 -53
  80. package/lib/Types/GroupMetadata.js +3 -2
  81. package/lib/Types/Label.d.ts +14 -13
  82. package/lib/Types/Label.js +30 -24
  83. package/lib/Types/LabelAssociation.d.ts +20 -15
  84. package/lib/Types/LabelAssociation.js +12 -6
  85. package/lib/Types/Message.d.ts +412 -248
  86. package/lib/Types/Message.js +19 -17
  87. package/lib/Types/Product.d.ts +71 -58
  88. package/lib/Types/Product.js +3 -2
  89. package/lib/Types/Signal.d.ts +82 -71
  90. package/lib/Types/Signal.js +3 -2
  91. package/lib/Types/Socket.d.ts +81 -76
  92. package/lib/Types/Socket.js +3 -3
  93. package/lib/Types/State.d.ts +19 -75
  94. package/lib/Types/State.js +14 -56
  95. package/lib/Types/USync.d.ts +8 -8
  96. package/lib/Types/USync.js +3 -2
  97. package/lib/Types/index.d.ts +62 -47
  98. package/lib/Types/index.js +50 -26
  99. package/lib/Utils/auth-utils.d.ts +10 -13
  100. package/lib/Utils/auth-utils.js +472 -213
  101. package/lib/Utils/business.d.ts +20 -14
  102. package/lib/Utils/business.js +134 -110
  103. package/lib/Utils/chat-utils.d.ts +70 -88
  104. package/lib/Utils/chat-utils.js +403 -466
  105. package/lib/Utils/crypto.d.ts +46 -27
  106. package/lib/Utils/crypto.js +188 -117
  107. package/lib/Utils/decode-wa-message.d.ts +45 -58
  108. package/lib/Utils/decode-wa-message.js +311 -212
  109. package/lib/Utils/event-buffer.d.ts +17 -14
  110. package/lib/Utils/event-buffer.js +296 -321
  111. package/lib/Utils/generics.d.ts +92 -66
  112. package/lib/Utils/generics.js +436 -270
  113. package/lib/Utils/history.d.ts +23 -24
  114. package/lib/Utils/history.js +76 -106
  115. package/lib/Utils/index.d.ts +21 -24
  116. package/lib/Utils/index.js +41 -24
  117. package/lib/Utils/link-preview.d.ts +14 -12
  118. package/lib/Utils/link-preview.js +75 -40
  119. package/lib/Utils/logger.d.ts +11 -10
  120. package/lib/Utils/logger.js +7 -3
  121. package/lib/Utils/lt-hash.d.ts +14 -8
  122. package/lib/Utils/lt-hash.js +53 -3
  123. package/lib/Utils/make-mutex.d.ts +7 -7
  124. package/lib/Utils/make-mutex.js +44 -28
  125. package/lib/Utils/message-retry-manager.d.ts +88 -115
  126. package/lib/Utils/message-retry-manager.js +160 -265
  127. package/lib/Utils/messages-media.d.ts +107 -105
  128. package/lib/Utils/messages-media.js +619 -548
  129. package/lib/Utils/messages.d.ts +66 -52
  130. package/lib/Utils/messages.js +1558 -1730
  131. package/lib/Utils/noise-handler.d.ts +18 -18
  132. package/lib/Utils/noise-handler.js +130 -176
  133. package/lib/Utils/process-message.d.ts +32 -43
  134. package/lib/Utils/process-message.js +282 -484
  135. package/lib/Utils/rich-message-utils.js +724 -1220
  136. package/lib/Utils/signal.d.ts +32 -37
  137. package/lib/Utils/signal.js +105 -140
  138. package/lib/Utils/use-multi-file-auth-state.d.ts +5 -5
  139. package/lib/Utils/use-multi-file-auth-state.js +120 -70
  140. package/lib/Utils/use-single-file-auth-state.d.ts +13 -11
  141. package/lib/Utils/use-single-file-auth-state.js +66 -92
  142. package/lib/Utils/validate-connection.d.ts +13 -11
  143. package/lib/Utils/validate-connection.js +113 -128
  144. package/lib/WABinary/constants.d.ts +27 -25
  145. package/lib/WABinary/constants.js +1292 -1451
  146. package/lib/WABinary/decode.d.ts +9 -7
  147. package/lib/WABinary/decode.js +189 -163
  148. package/lib/WABinary/encode.d.ts +3 -3
  149. package/lib/WABinary/encode.js +155 -110
  150. package/lib/WABinary/generic-utils.d.ts +27 -14
  151. package/lib/WABinary/generic-utils.js +105 -177
  152. package/lib/WABinary/index.d.ts +5 -6
  153. package/lib/WABinary/index.js +25 -6
  154. package/lib/WABinary/jid-utils.d.ts +54 -41
  155. package/lib/WABinary/jid-utils.js +152 -83
  156. package/lib/WABinary/types.d.ts +13 -10
  157. package/lib/WABinary/types.js +3 -2
  158. package/lib/WAM/BinaryInfo.d.ts +15 -8
  159. package/lib/WAM/BinaryInfo.js +14 -7
  160. package/lib/WAM/constants.d.ts +37 -30
  161. package/lib/WAM/constants.js +11983 -19465
  162. package/lib/WAM/encode.d.ts +3 -3
  163. package/lib/WAM/encode.js +109 -95
  164. package/lib/WAM/index.d.ts +3 -4
  165. package/lib/WAM/index.js +23 -4
  166. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -9
  167. package/lib/WAUSync/Protocols/USyncContactProtocol.js +21 -37
  168. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -19
  169. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +26 -18
  170. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -11
  171. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +20 -12
  172. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -11
  173. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +24 -16
  174. package/lib/WAUSync/Protocols/index.d.ts +6 -6
  175. package/lib/WAUSync/Protocols/index.js +26 -6
  176. package/lib/WAUSync/USyncQuery.d.ts +28 -27
  177. package/lib/WAUSync/USyncQuery.js +62 -68
  178. package/lib/WAUSync/USyncUser.d.ts +10 -15
  179. package/lib/WAUSync/USyncUser.js +19 -20
  180. package/lib/WAUSync/index.d.ts +3 -4
  181. package/lib/WAUSync/index.js +23 -4
  182. package/lib/index.d.ts +12 -11
  183. package/lib/index.js +39 -12
  184. package/package.json +42 -86
  185. package/engine-requirements.js +0 -10
@@ -1,75 +1,77 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import type { SocketConfig } from '../Types/index.js';
3
- export declare const UNAUTHORIZED_CODES: number[];
4
- export declare const DEFAULT_ORIGIN = "https://web.whatsapp.com";
5
- export declare const CALL_VIDEO_PREFIX = "https://call.whatsapp.com/video/";
6
- export declare const CALL_AUDIO_PREFIX = "https://call.whatsapp.com/voice/";
7
- export declare const DEF_CALLBACK_PREFIX = "CB:";
8
- export declare const DEF_TAG_PREFIX = "TAG:";
9
- export declare const PHONE_CONNECTION_CB = "CB:Pong";
10
- export declare const WA_ADV_ACCOUNT_SIG_PREFIX: Buffer<ArrayBuffer>;
11
- export declare const WA_ADV_DEVICE_SIG_PREFIX: Buffer<ArrayBuffer>;
12
- export declare const WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX: Buffer<ArrayBuffer>;
13
- export declare const WA_ADV_HOSTED_DEVICE_SIG_PREFIX: Buffer<ArrayBuffer>;
14
- export declare const WA_DEFAULT_EPHEMERAL: number;
15
- /** Status messages older than 24 hours are considered expired */
16
- export declare const STATUS_EXPIRY_SECONDS: number;
17
- /** WA Web enforces a 14-day maximum age for placeholder resend requests */
18
- export declare const PLACEHOLDER_MAX_AGE_SECONDS: number;
19
- export declare const NOISE_MODE = "Noise_XX_25519_AESGCM_SHA256\0\0\0\0";
20
- export declare const DICT_VERSION = 3;
21
- export declare const KEY_BUNDLE_TYPE: Buffer<ArrayBuffer>;
22
- export declare const NOISE_WA_HEADER: Buffer<ArrayBuffer>;
23
- /** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
24
- export declare const URL_REGEX: RegExp;
1
+ import { proto } from '../../WAProto'
2
+ import type { MediaType, SocketConfig } from '../Types'
3
+
4
+ export declare const UNAUTHORIZED_CODES: number[]
5
+
6
+ export declare const PHONENUMBER_MCC: Record<string, number>
7
+
8
+ export declare const DEFAULT_ORIGIN: "https://web.whatsapp.com"
9
+
10
+ export declare const DEF_CALLBACK_PREFIX: "CB:"
11
+
12
+ export declare const DEF_TAG_PREFIX: "TAG:"
13
+
14
+ export declare const PHONE_CONNECTION_CB: "CB:Pong"
15
+
16
+ export declare const WA_DEFAULT_EPHEMERAL: number
17
+
18
+ export declare const NOISE_MODE: "Noise_XX_25519_AESGCM_SHA256\0\0\0\0"
19
+
20
+ export declare const DICT_VERSION: 3
21
+
22
+ export declare const KEY_BUNDLE_TYPE: Buffer
23
+
24
+ export declare const NOISE_WA_HEADER: Buffer
25
+
26
+ export declare const URL_REGEX: RegExp
27
+
25
28
  export declare const WA_CERT_DETAILS: {
26
- SERIAL: number;
27
- ISSUER: string;
28
- PUBLIC_KEY: Buffer<ArrayBuffer>;
29
- };
30
- export declare const PROCESSABLE_HISTORY_TYPES: proto.HistorySync.HistorySyncType[];
31
- export declare const DEFAULT_CACHE_TTLS: {
32
- SIGNAL_STORE: number;
33
- MSG_RETRY: number;
34
- CALL_OFFER: number;
35
- USER_DEVICES: number;
36
- };
37
- export declare const DEFAULT_CONNECTION_CONFIG: SocketConfig;
29
+ SERIAL: number
30
+ }
31
+
32
+ export declare const PROCESSABLE_HISTORY_TYPES: proto.Message.HistorySyncNotification.HistorySyncType[]
33
+
34
+ export declare const DEFAULT_CONNECTION_CONFIG: SocketConfig
35
+
38
36
  export declare const MEDIA_PATH_MAP: {
39
- [T in MediaType]?: string;
40
- };
37
+ [T in MediaType]?: string
38
+ }
39
+
41
40
  export declare const MEDIA_HKDF_KEY_MAPPING: {
42
- audio: string;
43
- document: string;
44
- gif: string;
45
- image: string;
46
- ppic: string;
47
- product: string;
48
- ptt: string;
49
- sticker: string;
50
- video: string;
51
- 'thumbnail-document': string;
52
- 'thumbnail-image': string;
53
- 'thumbnail-video': string;
54
- 'thumbnail-link': string;
55
- 'md-msg-hist': string;
56
- 'md-app-state': string;
57
- 'product-catalog-image': string;
58
- 'payment-bg-image': string;
59
- ptv: string;
60
- 'biz-cover-photo': string;
61
- };
62
- export type MediaType = keyof typeof MEDIA_HKDF_KEY_MAPPING;
63
- export declare const MEDIA_KEYS: MediaType[];
64
- /** 120s timeout for history sync stall detection, same as WA Web's handleChunkProgress / restartPausedTimer (g = 120) */
65
- export declare const HISTORY_SYNC_PAUSED_TIMEOUT_MS = 120000;
66
- export declare const MIN_PREKEY_COUNT = 5;
67
- export declare const INITIAL_PREKEY_COUNT = 812;
68
- export declare const UPLOAD_TIMEOUT = 30000;
69
- export declare const TimeMs: {
70
- Minute: number;
71
- Hour: number;
72
- Day: number;
73
- Week: number;
74
- };
75
- //# sourceMappingURL=index.d.ts.map
41
+ 'audio': string
42
+ 'document': string
43
+ 'gif': string
44
+ 'image': string
45
+ 'ppic': string
46
+ 'product': string
47
+ 'ptt': string
48
+ 'sticker': string
49
+ 'video': string
50
+ 'thumbnail-document': string
51
+ 'thumbnail-image': string
52
+ 'thumbnail-video': string
53
+ 'thumbnail-link': string
54
+ 'md-msg-hist': string
55
+ 'md-app-state': string
56
+ 'product-catalog-image': string
57
+ 'payment-bg-image': string
58
+ 'ptv': string
59
+ 'biz-cover-photo': string
60
+ }
61
+
62
+ export declare const MEDIA_KEYS: (keyof typeof MEDIA_HKDF_KEY_MAPPING)[]
63
+
64
+ export declare const MIN_PREKEY_COUNT: 5
65
+
66
+ export declare const INITIAL_PREKEY_COUNT: 30
67
+
68
+ export declare const UPLOAD_TIMEOUT: 30000
69
+
70
+ export declare const MIN_UPLOAD_INTERVAL: 5000
71
+
72
+ export declare const DEFAULT_CACHE_TTLS: {
73
+ SIGNAL_STORE: number
74
+ MSG_RETRY: number
75
+ CALL_OFFER: number
76
+ USER_DEVICES: number
77
+ }
@@ -1,61 +1,73 @@
1
- import { proto } from '../../WAProto/index.js';
2
- import { makeLibSignalRepository } from '../Signal/libsignal.js';
3
- import { Browsers } from '../Utils/browser-utils.js';
4
- import logger from '../Utils/logger.js';
5
- const version = [2, 3000, 1035194821];
6
- export const DONATE_URL = 'https://saweria.co/pontalabs';
7
- export const LIBRARY_NAME = 'pontalabs/baileys';
8
- export const BIZ_BOT_SUPPORT_PAYLOAD = '{"version":1,"is_ai_message":true,"should_upload_client_logs":false,"should_show_system_message":false,"ticket_id":"7004947587700716","citation_items":[],"ticket_locale":"us"}';
9
- export const LEXER_REGEX = /(\/\/.*|\/\*[\s\S]*?\*\/|#.*)|("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|`[\s\S]*?`)|(\b[a-zA-Z_]\w*\b)(?=\s*\()|(\b[a-zA-Z_]\w*\b)|(\b\d+(?:\.\d+)?\b)|(\s+|[^\w\s]+)/g;
10
- export const UNAUTHORIZED_CODES = [401, 403, 419];
11
- export const DEFAULT_ORIGIN = 'https://web.whatsapp.com';
12
- export const CALL_VIDEO_PREFIX = 'https://call.whatsapp.com/video/';
13
- export const CALL_AUDIO_PREFIX = 'https://call.whatsapp.com/voice/';
14
- export const DEF_CALLBACK_PREFIX = 'CB:';
15
- export const DEF_TAG_PREFIX = 'TAG:';
16
- export const PHONE_CONNECTION_CB = 'CB:Pong';
17
- export const WA_ADV_ACCOUNT_SIG_PREFIX = Buffer.from([6, 0]);
18
- export const WA_ADV_DEVICE_SIG_PREFIX = Buffer.from([6, 1]);
19
- export const WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX = Buffer.from([6, 5]);
20
- export const WA_ADV_HOSTED_DEVICE_SIG_PREFIX = Buffer.from([6, 6]);
21
- export const WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60;
22
- /** Status messages older than 24 hours are considered expired */
23
- export const STATUS_EXPIRY_SECONDS = 24 * 60 * 60;
24
- /** WA Web enforces a 14-day maximum age for placeholder resend requests */
25
- export const PLACEHOLDER_MAX_AGE_SECONDS = 14 * 24 * 60 * 60;
26
- export const NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0';
27
- export const DICT_VERSION = 3;
28
- export const KEY_BUNDLE_TYPE = Buffer.from([5]);
29
- export const NOISE_WA_HEADER = Buffer.from([87, 65, 6, DICT_VERSION]); // last is "DICT_VERSION"
1
+ "use strict"
2
+
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ }
6
+
7
+ Object.defineProperty(exports, "__esModule", { value: true })
8
+
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.STATUS_EXPIRY_SECONDS = 24 * 60 * 60
37
+
38
+ exports.PLACEHOLDER_MAX_AGE_SECONDS = 14 * 24 * 60 * 60
39
+
40
+ exports.NOISE_MODE = 'Noise_XX_25519_AESGCM_SHA256\0\0\0\0'
41
+
42
+ exports.DICT_VERSION = 3
43
+
44
+ exports.KEY_BUNDLE_TYPE = Buffer.from([5])
45
+
46
+ exports.NOISE_WA_HEADER = Buffer.from([87, 65, 6, exports.DICT_VERSION]) // last is "DICT_VERSION"
47
+
30
48
  /** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
31
- export const URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g;
32
- export const WA_CERT_DETAILS = {
49
+ exports.URL_REGEX = /https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g
50
+
51
+ exports.WA_CERT_DETAILS = {
33
52
  SERIAL: 0,
34
- ISSUER: 'WhatsAppLongTerm1',
35
- PUBLIC_KEY: Buffer.from('142375574d0a587166aae71ebe516437c4a28b73e3695c6ce1f7f9545da8ee6b', 'hex')
36
- };
37
- export const PROCESSABLE_HISTORY_TYPES = [
38
- proto.HistorySync.HistorySyncType.INITIAL_BOOTSTRAP,
39
- proto.HistorySync.HistorySyncType.PUSH_NAME,
40
- proto.HistorySync.HistorySyncType.RECENT,
41
- proto.HistorySync.HistorySyncType.FULL,
42
- proto.HistorySync.HistorySyncType.ON_DEMAND,
43
- proto.HistorySync.HistorySyncType.NON_BLOCKING_DATA,
44
- proto.HistorySync.HistorySyncType.INITIAL_STATUS_V3
45
- ];
46
- export const DEFAULT_CACHE_TTLS = {
47
- SIGNAL_STORE: 5 * 60, // 5 minutes
48
- MSG_RETRY: 60 * 60, // 1 hour
49
- CALL_OFFER: 5 * 60, // 5 minutes
50
- USER_DEVICES: 5 * 60 // 5 minutes
51
- };
52
- export const DEFAULT_CONNECTION_CONFIG = {
53
- version: version,
54
- browser: Browsers.macOS('Chrome'),
53
+ }
54
+
55
+ exports.PROCESSABLE_HISTORY_TYPES = [
56
+ WAProto_1.proto.Message.HistorySyncType.INITIAL_BOOTSTRAP,
57
+ WAProto_1.proto.Message.HistorySyncType.PUSH_NAME,
58
+ WAProto_1.proto.Message.HistorySyncType.RECENT,
59
+ WAProto_1.proto.Message.HistorySyncType.FULL,
60
+ WAProto_1.proto.Message.HistorySyncType.ON_DEMAND
61
+ ]
62
+
63
+ exports.DEFAULT_CONNECTION_CONFIG = {
64
+ version: baileys_version_json_1.version,
65
+ browser: Utils_1.Browsers.windows('Chrome'),
55
66
  waWebSocketUrl: 'wss://web.whatsapp.com/ws/chat',
56
67
  connectTimeoutMs: 20000,
57
68
  keepAliveIntervalMs: 30000,
58
- logger: logger.child({ class: 'baileys' }),
69
+ logger: logger_1.default.child({ class: 'baileys' }),
70
+ printQRInTerminal: false,
59
71
  emitOwnEvents: true,
60
72
  defaultQueryTimeoutMs: 60000,
61
73
  customUploadHosts: [],
@@ -64,53 +76,51 @@ export const DEFAULT_CONNECTION_CONFIG = {
64
76
  fireInitQueries: true,
65
77
  auth: undefined,
66
78
  markOnlineOnConnect: true,
67
- syncFullHistory: true,
79
+ syncFullHistory: false,
68
80
  patchMessageBeforeSending: msg => msg,
69
- shouldSyncHistoryMessage: ({ syncType }) => {
70
- return syncType !== proto.HistorySync.HistorySyncType.FULL;
71
- },
81
+ shouldSyncHistoryMessage: () => true,
72
82
  shouldIgnoreJid: () => false,
73
83
  linkPreviewImageThumbnailWidth: 192,
74
84
  transactionOpts: { maxCommitRetries: 10, delayBetweenTriesMs: 3000 },
75
85
  generateHighQualityLinkPreview: false,
76
- enableAutoSessionRecreation: true,
77
- enableRecentMessageCache: true,
86
+ enableAutoSessionRecreation: true,
87
+ enableRecentMessageCache: false,
78
88
  options: {},
79
89
  appStateMacVerification: {
80
90
  patch: false,
81
- snapshot: false
91
+ snapshot: false,
82
92
  },
83
- countryCode: 'US',
93
+ countryCode: 'EN',
84
94
  getMessage: async () => undefined,
85
95
  cachedGroupMetadata: async () => undefined,
86
- makeSignalRepository: makeLibSignalRepository
87
- };
88
- export const MEDIA_PATH_MAP = {
96
+ makeSignalRepository: libsignal_1.makeLibSignalRepository
97
+ }
98
+
99
+ exports.MEDIA_PATH_MAP = {
89
100
  image: '/mms/image',
90
101
  video: '/mms/video',
91
102
  document: '/mms/document',
92
103
  audio: '/mms/audio',
93
104
  sticker: '/mms/image',
94
- 'sticker-pack': '/mms/sticker-pack',
95
- 'thumbnail-sticker-pack': '/mms/thumbnail-sticker-pack',
105
+ 'sticker-pack': '/mms/sticker',
96
106
  'thumbnail-link': '/mms/image',
97
107
  'product-catalog-image': '/product/image',
98
108
  'md-app-state': '',
99
109
  'md-msg-hist': '/mms/md-app-state',
100
110
  'biz-cover-photo': '/pps/biz-cover-photo'
101
- };
102
- export const MEDIA_HKDF_KEY_MAPPING = {
103
- audio: 'Audio',
104
- document: 'Document',
105
- gif: 'Video',
106
- image: 'Image',
107
- ppic: '',
108
- product: 'Image',
109
- ptt: 'Audio',
110
- 'sticker-pack': 'Sticker Pack',
111
- 'thumbnail-sticker-pack': 'Sticker Pack Thumbnail',
112
- sticker: 'Image',
113
- video: 'Video',
111
+ }
112
+
113
+ exports.MEDIA_HKDF_KEY_MAPPING = {
114
+ 'audio': 'Audio',
115
+ 'document': 'Document',
116
+ 'gif': 'Video',
117
+ 'image': 'Image',
118
+ 'ppic': '',
119
+ 'product': 'Image',
120
+ 'ptt': 'Audio',
121
+ 'video': 'Video',
122
+ 'sticker': 'Image',
123
+ 'sticker-pack': 'Sticker Pack',
114
124
  'thumbnail-document': 'Document Thumbnail',
115
125
  'thumbnail-image': 'Image Thumbnail',
116
126
  'thumbnail-video': 'Video Thumbnail',
@@ -119,19 +129,23 @@ export const MEDIA_HKDF_KEY_MAPPING = {
119
129
  'md-app-state': 'App State',
120
130
  'product-catalog-image': '',
121
131
  'payment-bg-image': 'Payment Background',
122
- ptv: 'Video',
132
+ 'ptv': 'Video',
123
133
  'biz-cover-photo': 'Image'
124
- };
125
- export const MEDIA_KEYS = Object.keys(MEDIA_PATH_MAP);
126
- /** 120s timeout for history sync stall detection, same as WA Web's handleChunkProgress / restartPausedTimer (g = 120) */
127
- export const HISTORY_SYNC_PAUSED_TIMEOUT_MS = 120000;
128
- export const MIN_PREKEY_COUNT = 5;
129
- export const INITIAL_PREKEY_COUNT = 812;
130
- export const UPLOAD_TIMEOUT = 30000; // 30 seconds
131
- export const TimeMs = {
132
- Minute: 60 * 1000,
133
- Hour: 60 * 60 * 1000,
134
- Day: 24 * 60 * 60 * 1000,
135
- Week: 7 * 24 * 60 * 60 * 1000
136
- };
137
- //# sourceMappingURL=index.js.map
134
+ }
135
+
136
+ exports.MEDIA_KEYS = Object.keys(exports.MEDIA_PATH_MAP)
137
+
138
+ exports.MIN_PREKEY_COUNT = 5
139
+
140
+ exports.INITIAL_PREKEY_COUNT = 30
141
+
142
+ exports.UPLOAD_TIMEOUT = 30000 // 30 seconds
143
+
144
+ exports.MIN_UPLOAD_INTERVAL = 5000 // seconds minimum between uploads
145
+
146
+ exports.DEFAULT_CACHE_TTLS = {
147
+ SIGNAL_STORE: 5 * 60,
148
+ MSG_RETRY: 60 * 60,
149
+ CALL_OFFER: 5 * 60,
150
+ USER_DEVICES: 5 * 60, // 5 minutes
151
+ }
@@ -1,10 +1,9 @@
1
1
  export declare class CiphertextMessage {
2
- readonly UNSUPPORTED_VERSION: number;
3
- readonly CURRENT_VERSION: number;
4
- readonly WHISPER_TYPE: number;
5
- readonly PREKEY_TYPE: number;
6
- readonly SENDERKEY_TYPE: number;
7
- readonly SENDERKEY_DISTRIBUTION_TYPE: number;
8
- readonly ENCRYPTED_MESSAGE_OVERHEAD: number;
2
+ readonly UNSUPPORTED_VERSION: number
3
+ readonly CURRENT_VERSION: number
4
+ readonly WHISPER_TYPE: number
5
+ readonly PREKEY_TYPE: number
6
+ readonly SENDERKEY_TYPE: number
7
+ readonly SENDERKEY_DISTRIBUTION_TYPE: number
8
+ readonly ENCRYPTED_MESSAGE_OVERHEAD: number
9
9
  }
10
- //# sourceMappingURL=ciphertext-message.d.ts.map
@@ -1,12 +1,19 @@
1
- export class CiphertextMessage {
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ class CiphertextMessage {
2
6
  constructor() {
3
- this.UNSUPPORTED_VERSION = 1;
4
- this.CURRENT_VERSION = 3;
5
- this.WHISPER_TYPE = 2;
6
- this.PREKEY_TYPE = 3;
7
- this.SENDERKEY_TYPE = 4;
8
- this.SENDERKEY_DISTRIBUTION_TYPE = 5;
9
- this.ENCRYPTED_MESSAGE_OVERHEAD = 53;
7
+ this.UNSUPPORTED_VERSION = 1
8
+ this.CURRENT_VERSION = 3
9
+ this.WHISPER_TYPE = 2
10
+ this.PREKEY_TYPE = 3
11
+ this.SENDERKEY_TYPE = 4
12
+ this.SENDERKEY_DISTRIBUTION_TYPE = 5
13
+ this.ENCRYPTED_MESSAGE_OVERHEAD = 53
10
14
  }
11
15
  }
12
- //# sourceMappingURL=ciphertext-message.js.map
16
+
17
+ module.exports = {
18
+ CiphertextMessage
19
+ }
@@ -1,15 +1,17 @@
1
- import { SenderKeyDistributionMessage } from './sender-key-distribution-message.js';
2
- import { SenderKeyName } from './sender-key-name.js';
3
- import { SenderKeyRecord } from './sender-key-record.js';
1
+ import { SenderKeyDistributionMessage } from './sender-key-distribution-message'
2
+ import { SenderKeyName } from './sender-key-name'
3
+ import { SenderKeyRecord } from './sender-key-record'
4
+
4
5
  interface SenderKeyStore {
5
- loadSenderKey(senderKeyName: SenderKeyName): Promise<SenderKeyRecord>;
6
- storeSenderKey(senderKeyName: SenderKeyName, record: SenderKeyRecord): Promise<void>;
6
+ loadSenderKey(senderKeyName: SenderKeyName): Promise<SenderKeyRecord>
7
+ storeSenderKey(senderKeyName: SenderKeyName, record: SenderKeyRecord): Promise<void>
7
8
  }
9
+
8
10
  export declare class GroupSessionBuilder {
9
- private readonly senderKeyStore;
10
- constructor(senderKeyStore: SenderKeyStore);
11
- process(senderKeyName: SenderKeyName, senderKeyDistributionMessage: SenderKeyDistributionMessage): Promise<void>;
12
- create(senderKeyName: SenderKeyName): Promise<SenderKeyDistributionMessage>;
11
+ private readonly senderKeyStore
12
+ constructor(senderKeyStore: SenderKeyStore)
13
+ process(senderKeyName: SenderKeyName, senderKeyDistributionMessage: SenderKeyDistributionMessage): Promise<void>
14
+ create(senderKeyName: SenderKeyName): Promise<SenderKeyDistributionMessage>
13
15
  }
14
- export {};
15
- //# sourceMappingURL=group-session-builder.d.ts.map
16
+
17
+ export {}
@@ -1,30 +1,72 @@
1
- import * as keyhelper from './keyhelper.js';
2
- import { SenderKeyDistributionMessage } from './sender-key-distribution-message.js';
3
- import { SenderKeyName } from './sender-key-name.js';
4
- import { SenderKeyRecord } from './sender-key-record.js';
5
- export class GroupSessionBuilder {
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 () {
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
+ Object.defineProperty(exports, "__esModule", { value: true })
40
+
41
+ const keyhelper = __importStar(require("./keyhelper"))
42
+ const sender_key_distribution_message_1 = require("./sender-key-distribution-message")
43
+
44
+ class GroupSessionBuilder {
6
45
  constructor(senderKeyStore) {
7
- this.senderKeyStore = senderKeyStore;
46
+ this.senderKeyStore = senderKeyStore
8
47
  }
9
48
  async process(senderKeyName, senderKeyDistributionMessage) {
10
- const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);
11
- senderKeyRecord.addSenderKeyState(senderKeyDistributionMessage.getId(), senderKeyDistributionMessage.getIteration(), senderKeyDistributionMessage.getChainKey(), senderKeyDistributionMessage.getSignatureKey());
12
- await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
49
+ const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName)
50
+ senderKeyRecord.addSenderKeyState(senderKeyDistributionMessage.getId(), senderKeyDistributionMessage.getIteration(), senderKeyDistributionMessage.getChainKey(), senderKeyDistributionMessage.getSignatureKey())
51
+ await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord)
13
52
  }
14
53
  async create(senderKeyName) {
15
- const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName);
54
+ const senderKeyRecord = await this.senderKeyStore.loadSenderKey(senderKeyName)
16
55
  if (senderKeyRecord.isEmpty()) {
17
- const keyId = keyhelper.generateSenderKeyId();
18
- const senderKey = keyhelper.generateSenderKey();
19
- const signingKey = keyhelper.generateSenderSigningKey();
20
- senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey);
21
- await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord);
56
+ const keyId = keyhelper.generateSenderKeyId()
57
+ const senderKey = keyhelper.generateSenderKey()
58
+ const signingKey = keyhelper.generateSenderSigningKey()
59
+ senderKeyRecord.setSenderKeyState(keyId, 0, senderKey, signingKey)
60
+ await this.senderKeyStore.storeSenderKey(senderKeyName, senderKeyRecord)
22
61
  }
23
- const state = senderKeyRecord.getSenderKeyState();
62
+ const state = senderKeyRecord.getSenderKeyState()
24
63
  if (!state) {
25
- throw new Error('No session state available');
64
+ throw new Error('No session state available')
26
65
  }
27
- return new SenderKeyDistributionMessage(state.getKeyId(), state.getSenderChainKey().getIteration(), state.getSenderChainKey().getSeed(), state.getSigningKeyPublic());
66
+ return new sender_key_distribution_message_1.SenderKeyDistributionMessage(state.getKeyId(), state.getSenderChainKey().getIteration(), state.getSenderChainKey().getSeed(), state.getSigningKeyPublic())
28
67
  }
29
68
  }
30
- //# sourceMappingURL=group-session-builder.js.map
69
+
70
+ module.exports = {
71
+ GroupSessionBuilder
72
+ }
@@ -1,17 +1,19 @@
1
- import { SenderKeyName } from './sender-key-name.js';
2
- import { SenderKeyRecord } from './sender-key-record.js';
1
+ import { SenderKeyName } from './sender-key-name'
2
+ import { SenderKeyRecord } from './sender-key-record'
3
+
3
4
  export interface SenderKeyStore {
4
- loadSenderKey(senderKeyName: SenderKeyName): Promise<SenderKeyRecord>;
5
- storeSenderKey(senderKeyName: SenderKeyName, record: SenderKeyRecord): Promise<void>;
5
+ loadSenderKey(senderKeyName: SenderKeyName): Promise<SenderKeyRecord>
6
+ storeSenderKey(senderKeyName: SenderKeyName, record: SenderKeyRecord): Promise<void>
6
7
  }
8
+
7
9
  export declare class GroupCipher {
8
- private readonly senderKeyStore;
9
- private readonly senderKeyName;
10
- constructor(senderKeyStore: SenderKeyStore, senderKeyName: SenderKeyName);
11
- encrypt(paddedPlaintext: Uint8Array): Promise<Uint8Array>;
12
- decrypt(senderKeyMessageBytes: Uint8Array): Promise<Uint8Array>;
13
- private getSenderKey;
14
- private getPlainText;
15
- private getCipherText;
16
- }
17
- //# sourceMappingURL=group_cipher.d.ts.map
10
+ private readonly senderKeyStore
11
+ private readonly senderKeyName
12
+ constructor(senderKeyStore: SenderKeyStore, senderKeyName: SenderKeyName)
13
+ private queueJob
14
+ encrypt(paddedPlaintext: Uint8Array | string): Promise<Uint8Array>
15
+ decrypt(senderKeyMessageBytes: Uint8Array): Promise<Uint8Array>
16
+ private getSenderKey
17
+ private getPlainText
18
+ private getCipherText
19
+ }