@pontalabs/baileys 1.0.6 → 1.0.8

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 +43 -87
  185. package/engine-requirements.js +0 -10
@@ -1,124 +1,143 @@
1
- import type { proto } from '../../WAProto/index.js';
2
- import type { AccountSettings } from './Auth.js';
3
- import type { QuickReplyAction } from './Bussines.js';
4
- import type { BufferedEventData } from './Events.js';
5
- import type { LabelActionBody } from './Label.js';
6
- import type { ChatLabelAssociationActionBody } from './LabelAssociation.js';
7
- import type { MessageLabelAssociationActionBody } from './LabelAssociation.js';
8
- import type { MinimalMessage, WAMessageKey } from './Message.js';
1
+ import type { proto } from '../../WAProto'
2
+ import type { AccountSettings } from './Auth'
3
+ import type { QuickReplyAction } from './Bussines'
4
+ import type { ContactAction } from './Contact'
5
+ import type { BufferedEventData } from './Events'
6
+ import type { LabelActionBody } from './Label'
7
+ import type { ChatLabelAssociationActionBody } from './LabelAssociation'
8
+ import type { MessageLabelAssociationActionBody } from './LabelAssociation'
9
+ import type { MinimalMessage, WAMessageKey } from './Message'
10
+
9
11
  /** privacy settings in WhatsApp Web */
10
- export type WAPrivacyValue = 'all' | 'contacts' | 'contact_blacklist' | 'none';
11
- export type WAPrivacyOnlineValue = 'all' | 'match_last_seen';
12
- export type WAPrivacyGroupAddValue = 'all' | 'contacts' | 'contact_blacklist';
13
- export type WAReadReceiptsValue = 'all' | 'none';
14
- export type WAPrivacyCallValue = 'all' | 'known';
15
- export type WAPrivacyMessagesValue = 'all' | 'contacts';
16
- /** set of statuses visible to other people; see updatePresence() in WhatsAppWeb.Send */
17
- export type WAPresence = 'unavailable' | 'available' | 'composing' | 'recording' | 'paused';
18
- export declare const ALL_WA_PATCH_NAMES: readonly ["critical_block", "critical_unblock_low", "regular_high", "regular_low", "regular"];
19
- export type WAPatchName = (typeof ALL_WA_PATCH_NAMES)[number];
12
+ export type WAPrivacyValue = 'all' | 'contacts' | 'contact_blacklist' | 'none'
13
+
14
+ export type WAPrivacyOnlineValue = 'all' | 'match_last_seen'
15
+
16
+ export type WAPrivacyGroupAddValue = 'all' | 'contacts' | 'contact_blacklist'
17
+
18
+ export type WAReadReceiptsValue = 'all' | 'none'
19
+
20
+ export type WAPrivacyCallValue = 'all' | 'known'
21
+
22
+ export type WAPrivacyMessagesValue = 'all' | 'contacts'
23
+
24
+ /** set of statuses visible to other people see updatePresence() in WhatsAppWeb.Send */
25
+ export type WAPresence = 'unavailable' | 'available' | 'composing' | 'recording' | 'paused'
26
+
27
+ export declare const ALL_WA_PATCH_NAMES: readonly ["critical_block", "critical_unblock_low", "regular_high", "regular_low", "regular"]
28
+
29
+ export type WAPatchName = typeof ALL_WA_PATCH_NAMES[number]
30
+
31
+ export type BotListInfo = {
32
+ jid: string
33
+ personaId: string
34
+ }
35
+
20
36
  export interface PresenceData {
21
- lastKnownPresence: WAPresence;
22
- lastSeen?: number;
23
- groupOnlineCount?: number;
37
+ lastKnownPresence: WAPresence
38
+ lastSeen?: number
24
39
  }
25
- export type BotListInfo = {
26
- jid: string;
27
- personaId: string;
28
- };
40
+
29
41
  export type ChatMutation = {
30
- syncAction: proto.ISyncActionData;
31
- index: string[];
32
- };
42
+ syncAction: proto.ISyncActionData
43
+ index: string[]
44
+ }
45
+
33
46
  export type WAPatchCreate = {
34
- syncAction: proto.ISyncActionValue;
35
- index: string[];
36
- type: WAPatchName;
37
- apiVersion: number;
38
- operation: proto.SyncdMutation.SyncdOperation;
39
- };
47
+ syncAction: proto.ISyncActionValue
48
+ index: string[]
49
+ type: WAPatchName
50
+ apiVersion: number
51
+ operation: proto.SyncdMutation.SyncdOperation
52
+ }
53
+
40
54
  export type Chat = proto.IConversation & {
41
55
  /** unix timestamp of when the last message was received in the chat */
42
- lastMessageRecvTimestamp?: number;
43
- };
56
+ lastMessageRecvTimestamp?: number
57
+ }
58
+
44
59
  export type ChatUpdate = Partial<Chat & {
45
60
  /**
46
61
  * if specified in the update,
47
62
  * the EV buffer will check if the condition gets fulfilled before applying the update
48
63
  * Right now, used to determine when to release an app state sync event
49
64
  *
50
- * @returns true, if the update should be applied;
51
- * false if it can be discarded;
65
+ * @returns true, if the update should be applied
66
+ * false if it can be discarded
52
67
  * undefined if the condition is not yet fulfilled
53
68
  * */
54
- conditional: (bufferedData: BufferedEventData) => boolean | undefined;
69
+ conditional: (bufferedData: BufferedEventData) => boolean | undefined
55
70
  /** last update time */
56
- timestamp?: number;
57
- }>;
71
+ timestamp?: number
72
+ }>
73
+
58
74
  /**
59
75
  * the last messages in a chat, sorted reverse-chronologically. That is, the latest message should be first in the chat
60
76
  * for MD modifications, the last message in the array (i.e. the earlist message) must be the last message recv in the chat
61
77
  * */
62
- export type LastMessageList = MinimalMessage[] | proto.SyncActionValue.ISyncActionMessageRange;
78
+ export type LastMessageList = MinimalMessage[] | proto.SyncActionValue.ISyncActionMessageRange
79
+
63
80
  export type ChatModification = {
64
- archive: boolean;
65
- lastMessages: LastMessageList;
81
+ archive: boolean
82
+ lastMessages: LastMessageList
83
+ } | {
84
+ contact: ContactAction | null
66
85
  } | {
67
- pushNameSetting: string;
86
+ pushNameSetting: string
68
87
  } | {
69
- pin: boolean;
88
+ pin: boolean
70
89
  } | {
71
90
  /** mute for duration, or provide timestamp of mute to remove*/
72
- mute: number | null;
91
+ mute: number | null
73
92
  } | {
74
- clear: boolean;
75
- lastMessages: LastMessageList;
93
+ clear: boolean
76
94
  } | {
77
95
  deleteForMe: {
78
- deleteMedia: boolean;
79
- key: WAMessageKey;
80
- timestamp: number;
81
- };
96
+ deleteMedia: boolean
97
+ key: WAMessageKey
98
+ timestamp: number
99
+ }
82
100
  } | {
83
101
  star: {
84
102
  messages: {
85
- id: string;
86
- fromMe?: boolean;
87
- }[];
88
- star: boolean;
89
- };
103
+ id: string
104
+ fromMe?: boolean
105
+ }[]
106
+ star: boolean
107
+ }
90
108
  } | {
91
- markRead: boolean;
92
- lastMessages: LastMessageList;
109
+ markRead: boolean
110
+ lastMessages: LastMessageList
93
111
  } | {
94
- delete: true;
95
- lastMessages: LastMessageList;
112
+ delete: true
113
+ lastMessages: LastMessageList
96
114
  } | {
97
- contact: proto.SyncActionValue.IContactAction | null;
115
+ contact: proto.SyncActionValue.IContactAction | null
98
116
  } | {
99
- disableLinkPreviews: proto.SyncActionValue.IPrivacySettingDisableLinkPreviewsAction;
117
+ disableLinkPreviews: proto.SyncActionValue.IPrivacySettingDisableLinkPreviewsAction
100
118
  } | {
101
- addLabel: LabelActionBody;
119
+ addLabel: LabelActionBody
102
120
  } | {
103
- addChatLabel: ChatLabelAssociationActionBody;
121
+ addChatLabel: ChatLabelAssociationActionBody
104
122
  } | {
105
- removeChatLabel: ChatLabelAssociationActionBody;
123
+ removeChatLabel: ChatLabelAssociationActionBody
106
124
  } | {
107
- addMessageLabel: MessageLabelAssociationActionBody;
125
+ addMessageLabel: MessageLabelAssociationActionBody
108
126
  } | {
109
- removeMessageLabel: MessageLabelAssociationActionBody;
127
+ removeMessageLabel: MessageLabelAssociationActionBody
110
128
  } | {
111
- quickReply: QuickReplyAction;
112
- };
129
+ quickReply: QuickReplyAction
130
+ }
131
+
113
132
  export type InitialReceivedChatsState = {
114
133
  [jid: string]: {
115
134
  /** the last message received from the other party */
116
- lastMsgRecvTimestamp?: number;
135
+ lastMsgRecvTimestamp?: number
117
136
  /** the absolute last message in the chat */
118
- lastMsgTimestamp: number;
119
- };
120
- };
137
+ lastMsgTimestamp: number
138
+ }
139
+ }
140
+
121
141
  export type InitialAppStateSyncOptions = {
122
- accountSettings: AccountSettings;
123
- };
124
- //# sourceMappingURL=Chat.d.ts.map
142
+ accountSettings: AccountSettings
143
+ }
package/lib/Types/Chat.js CHANGED
@@ -1,8 +1,9 @@
1
- export const ALL_WA_PATCH_NAMES = [
2
- 'critical_block',
3
- 'critical_unblock_low',
4
- 'regular_high',
5
- 'regular_low',
6
- 'regular'
7
- ];
8
- //# sourceMappingURL=Chat.js.map
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })
4
+
5
+ const ALL_WA_PATCH_NAMES = ['critical_block', 'critical_unblock_low', 'regular_high', 'regular_low', 'regular']
6
+
7
+ module.exports = {
8
+ ALL_WA_PATCH_NAMES
9
+ }
@@ -1,18 +1,16 @@
1
1
  export interface Contact {
2
2
  /** ID either in lid or jid format (preferred) **/
3
- id: string;
3
+ id: string
4
4
  /** ID in LID format (@lid) **/
5
- lid?: string;
5
+ lid?: string
6
6
  /** ID in PN format (@s.whatsapp.net) **/
7
- phoneNumber?: string;
7
+ phoneNumber?: string
8
8
  /** name of the contact, you have saved on your WA */
9
- name?: string;
9
+ name?: string
10
10
  /** name of the contact, the contact has set on their own on WA */
11
- notify?: string;
12
- /** username associated with this contact, when provided by WA */
13
- username?: string;
11
+ notify?: string
14
12
  /** I have no idea */
15
- verifiedName?: string;
13
+ verifiedName?: string
16
14
  /**
17
15
  * Url of the profile picture of the contact
18
16
  *
@@ -20,7 +18,6 @@ export interface Contact {
20
18
  * null => if the profile picture has not been set (default profile picture)
21
19
  * any other string => url of the profile picture
22
20
  */
23
- imgUrl?: string | null;
24
- status?: string;
25
- }
26
- //# sourceMappingURL=Contact.d.ts.map
21
+ imgUrl?: string | null
22
+ status?: string
23
+ }
@@ -1,2 +1,3 @@
1
- export {};
2
- //# sourceMappingURL=Contact.js.map
1
+ "use strict"
2
+
3
+ Object.defineProperty(exports, "__esModule", { value: true })