@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,133 +1,135 @@
1
- import { Boom } from '@hapi/boom';
2
- import type { Agent } from 'https';
3
- import { Readable, Transform } from 'stream';
4
- import { URL } from 'url';
5
- import { proto } from '../../WAProto/index.js';
6
- import { type MediaType } from '../Defaults/index.js';
7
- import type { DownloadableMessage, MediaConnInfo, MediaDecryptionKeyInfo, SocketConfig, WAMediaUpload, WAMediaUploadFunction, WAMessageContent, WAMessageKey } from '../Types/index.js';
8
- import { type BinaryNode } from '../WABinary/index.js';
9
- import type { ILogger } from './logger.js';
10
- export declare const hkdfInfoKey: (type: MediaType) => string;
1
+ import { Boom } from '@hapi/boom'
2
+ import { AxiosRequestConfig } from 'axios'
3
+ import { Readable, Transform } from 'stream'
4
+ import { URL } from 'url'
5
+ import { proto } from '../../WAProto'
6
+ import { DownloadableMessage, MediaConnInfo, MediaDecryptionKeyInfo, MediaType, SocketConfig, WAMediaUpload, WAMediaUploadFunction, WAMessageContent } from '../Types'
7
+ import { BinaryNode } from '../WABinary'
8
+ import { ILogger } from './logger'
9
+
10
+ export declare const hkdfInfoKey: (type: MediaType) => string
11
+
11
12
  export declare const getRawMediaUploadData: (media: WAMediaUpload, mediaType: MediaType, logger?: ILogger) => Promise<{
12
- filePath: string;
13
- fileSha256: Buffer<ArrayBufferLike>;
14
- fileLength: number;
15
- }>;
13
+ filePath: string
14
+ fileSha256: Buffer<ArrayBufferLike>
15
+ fileLength: number
16
+ }>
17
+
16
18
  /** generates all the keys required to encrypt/decrypt & sign a media message */
17
- export declare function getMediaKeys(buffer: Uint8Array | string | null | undefined, mediaType: MediaType): Promise<MediaDecryptionKeyInfo>;
19
+ export declare function getMediaKeys(buffer: Uint8Array | string | null | undefined, mediaType: MediaType): MediaDecryptionKeyInfo
20
+
18
21
  export declare const extractImageThumb: (bufferOrFilePath: Readable | Buffer | string, width?: number) => Promise<{
19
- buffer: any;
22
+ buffer: Buffer
20
23
  original: {
21
- width: any;
22
- height: any;
23
- };
24
- }>;
25
- export declare const encodeBase64EncodedStringForUpload: (b64: string) => string;
26
- export declare const generateProfilePicture: (mediaUpload: WAMediaUpload, dimensions?: {
27
- width: number;
28
- height: number;
29
- }) => Promise<{
30
- img: Buffer<ArrayBufferLike>;
31
- }>;
24
+ width: number | undefined
25
+ height: number | undefined
26
+ }
27
+ }>
28
+
29
+ export declare const encodeBase64EncodedStringForUpload: (b64: string) => string
30
+
31
+ export declare const generateProfilePicture: (mediaUpload: WAMediaUpload) => Promise<{
32
+ img: Buffer
33
+ }>
34
+
32
35
  /** gets the SHA256 of the given media message */
33
- export declare const mediaMessageSHA256B64: (message: WAMessageContent) => string | null | undefined;
34
- export declare function getAudioDuration(buffer: Buffer | string | Readable): Promise<number | undefined>;
36
+ export declare const mediaMessageSHA256B64: (message: WAMessageContent) => string | null | undefined
37
+
38
+ export declare function getAudioDuration(buffer: Buffer | string | Readable): Promise<number | undefined>
39
+
35
40
  /**
36
41
  referenced from and modifying https://github.com/wppconnect-team/wa-js/blob/main/src/chat/functions/prepareAudioWaveform.ts
37
42
  */
38
- export declare function getAudioWaveform(buffer: Buffer | string | Readable, logger?: ILogger): Promise<Uint8Array<ArrayBuffer> | undefined>;
39
- export declare const toReadable: (buffer: Buffer) => Readable;
40
- export declare const toBuffer: (stream: Readable) => Promise<Buffer<ArrayBuffer>>;
41
- export declare const getStream: (item: WAMediaUpload, opts?: RequestInit & {
42
- maxContentLength?: number;
43
- }) => Promise<{
44
- readonly stream: Readable;
45
- readonly type: "buffer";
43
+ export declare function getAudioWaveform(buffer: Buffer | string | Readable, logger?: ILogger): Promise<Uint8Array | undefined>
44
+
45
+ export declare const toReadable: (buffer: Buffer) => Readable
46
+
47
+ export declare const toBuffer: (stream: Readable) => Promise<Buffer>
48
+
49
+ export declare const getStream: (item: WAMediaUpload, opts?: AxiosRequestConfig) => Promise<{
50
+ readonly stream: Readable
51
+ readonly type: "buffer"
46
52
  } | {
47
- readonly stream: Readable;
48
- readonly type: "readable";
53
+ readonly stream: Readable
54
+ readonly type: "readable"
49
55
  } | {
50
- readonly stream: Readable;
51
- readonly type: "remote";
56
+ readonly stream: Readable
57
+ readonly type: "remote"
52
58
  } | {
53
- readonly stream: import("fs").ReadStream;
54
- readonly type: "file";
55
- }>;
59
+ readonly stream: import("fs").ReadStream
60
+ readonly type: "file"
61
+ }>
62
+
56
63
  /** generates a thumbnail for a given media, if required */
57
64
  export declare function generateThumbnail(file: string, mediaType: 'video' | 'image', options: {
58
- logger?: ILogger;
65
+ logger?: Logger
59
66
  }): Promise<{
60
- thumbnail: string | undefined;
67
+ thumbnail: string | undefined
61
68
  originalImageDimensions: {
62
- width: number;
63
- height: number;
64
- } | undefined;
65
- }>;
66
- export declare const getHttpStream: (url: string | URL, options?: RequestInit & {
67
- isStream?: true;
68
- }) => Promise<Readable>;
69
+ width: number
70
+ height: number
71
+ } | undefined
72
+ }>
73
+
74
+ export declare const getHttpStream: (url: string | URL, options?: AxiosRequestConfig & {
75
+ isStream?: true
76
+ }) => Promise<Readable>
77
+
69
78
  type EncryptedStreamOptions = {
70
- saveOriginalFileIfRequired?: boolean;
71
- logger?: ILogger;
72
- opts?: RequestInit;
73
- };
79
+ saveOriginalFileIfRequired?: boolean
80
+ logger?: Logger
81
+ opts?: AxiosRequestConfig
82
+ }
83
+
74
84
  export declare const encryptedStream: (media: WAMediaUpload, mediaType: MediaType, { logger, saveOriginalFileIfRequired, opts }?: EncryptedStreamOptions) => Promise<{
75
- mediaKey: Buffer<ArrayBufferLike>;
76
- originalFilePath: string | undefined;
77
- encFilePath: string;
78
- mac: Buffer<ArrayBuffer>;
79
- fileEncSha256: Buffer<ArrayBufferLike>;
80
- fileSha256: Buffer<ArrayBufferLike>;
81
- fileLength: number;
82
- }>;
83
- export declare const DEF_MEDIA_HOST = "mmg.whatsapp.net";
85
+ mediaKey: Buffer
86
+ encWriteStream: Readable
87
+ bodyPath: string | undefined
88
+ mac: Buffer
89
+ fileEncSha256: Buffer
90
+ fileSha256: Buffer
91
+ fileLength: number
92
+ didSaveToTmpPath: boolean
93
+ }>
94
+
84
95
  export type MediaDownloadOptions = {
85
- startByte?: number;
86
- endByte?: number;
87
- options?: RequestInit;
88
- /** Optional media host override; falls back to DEF_MEDIA_HOST when not provided. */
89
- host?: string;
90
- };
91
- export declare const getUrlFromDirectPath: (directPath: string, host?: string) => string;
92
- export declare const downloadContentFromMessage: ({ mediaKey, directPath, url }: DownloadableMessage, type: MediaType, opts?: MediaDownloadOptions) => Promise<Transform>;
96
+ startByte?: number
97
+ endByte?: number
98
+ options?: AxiosRequestConfig<{}>
99
+ }
100
+
101
+ export declare const getUrlFromDirectPath: (directPath: string) => string
102
+
103
+ export declare const downloadContentFromMessage: ({ mediaKey, directPath, url }: DownloadableMessage, type: MediaType, opts?: MediaDownloadOptions) => Promise<Transform>
104
+
93
105
  /**
94
106
  * Decrypts and downloads an AES256-CBC encrypted file given the keys.
95
107
  * Assumes the SHA256 of the plaintext is appended to the end of the ciphertext
96
108
  * */
97
- export declare const downloadEncryptedContent: (downloadUrl: string, { cipherKey, iv }: MediaDecryptionKeyInfo, { startByte, endByte, options }?: MediaDownloadOptions) => Promise<Transform>;
98
- export declare function extensionForMediaMessage(message: WAMessageContent): string;
99
- type MediaUploadResult = {
100
- url?: string;
101
- direct_path?: string;
102
- meta_hmac?: string;
103
- ts?: number;
104
- fbid?: number;
105
- };
106
- export type UploadParams = {
107
- url: string;
108
- filePath: string;
109
- headers: Record<string, string>;
110
- timeoutMs?: number;
111
- agent?: Agent;
112
- };
113
- export declare const uploadWithNodeHttp: ({ url, filePath, headers, timeoutMs, agent }: UploadParams, redirectCount?: number) => Promise<MediaUploadResult | undefined>;
114
- export declare const getWAUploadToServer: ({ customUploadHosts, fetchAgent, logger, options }: SocketConfig, refreshMediaConn: (force: boolean) => Promise<MediaConnInfo>) => WAMediaUploadFunction;
109
+ export declare const downloadEncryptedContent: (downloadUrl: string, { cipherKey, iv }: MediaDecryptionKeyInfo, { startByte, endByte, options }?: MediaDownloadOptions) => Promise<Transform>
110
+
111
+ export declare function extensionForMediaMessage(message: WAMessageContent): string
112
+
113
+ export declare const getWAUploadToServer: ({ customUploadHosts, fetchAgent, logger, options }: SocketConfig, refreshMediaConn: (force: boolean) => Promise<MediaConnInfo>) => WAMediaUploadFunction
115
114
  /**
116
115
  * Generate a binary node that will request the phone to re-upload the media & return the newly uploaded URL
117
116
  */
118
- export declare const encryptMediaRetryRequest: (key: WAMessageKey, mediaKey: Buffer | Uint8Array, meId: string) => BinaryNode;
117
+ export declare const encryptMediaRetryRequest: (key: proto.IMessageKey, mediaKey: Buffer | Uint8Array, meId: string) => BinaryNode
118
+
119
119
  export declare const decodeMediaRetryNode: (node: BinaryNode) => {
120
- key: WAMessageKey;
120
+ key: proto.IMessageKey
121
121
  media?: {
122
- ciphertext: Uint8Array;
123
- iv: Uint8Array;
124
- };
125
- error?: Boom;
126
- };
122
+ ciphertext: Uint8Array
123
+ iv: Uint8Array
124
+ } | undefined
125
+ error?: Boom<any> | undefined
126
+ }
127
+
127
128
  export declare const decryptMediaRetryData: ({ ciphertext, iv }: {
128
- ciphertext: Uint8Array;
129
- iv: Uint8Array;
130
- }, mediaKey: Uint8Array, msgId: string) => proto.MediaRetryNotification;
131
- export declare const getStatusCodeForMediaRetry: (code: number) => 200 | 412 | 404 | 418;
132
- export {};
133
- //# sourceMappingURL=messages-media.d.ts.map
129
+ ciphertext: Uint8Array
130
+ iv: Uint8Array
131
+ }, mediaKey: Uint8Array, msgId: string) => Promise<proto.MediaRetryNotification>
132
+
133
+ export declare const getStatusCodeForMediaRetry: (code: number) => any
134
+
135
+ export {}