@heavstaltech/baileys 1.0.0

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 (181) hide show
  1. package/README.md +200 -0
  2. package/WAProto/index.d.ts +50383 -0
  3. package/WAProto/index.js +155693 -0
  4. package/WASignalGroup/GroupProtocol.js +1697 -0
  5. package/WASignalGroup/ciphertext_message.js +16 -0
  6. package/WASignalGroup/group_cipher.js +120 -0
  7. package/WASignalGroup/group_session_builder.js +46 -0
  8. package/WASignalGroup/index.js +5 -0
  9. package/WASignalGroup/keyhelper.js +21 -0
  10. package/WASignalGroup/protobufs.js +3 -0
  11. package/WASignalGroup/queue_job.js +69 -0
  12. package/WASignalGroup/sender_chain_key.js +50 -0
  13. package/WASignalGroup/sender_key_distribution_message.js +78 -0
  14. package/WASignalGroup/sender_key_message.js +92 -0
  15. package/WASignalGroup/sender_key_name.js +70 -0
  16. package/WASignalGroup/sender_key_record.js +56 -0
  17. package/WASignalGroup/sender_key_state.js +129 -0
  18. package/WASignalGroup/sender_message_key.js +39 -0
  19. package/lib/Defaults/baileys-version.json +3 -0
  20. package/lib/Defaults/index.d.ts +53 -0
  21. package/lib/Defaults/index.js +108 -0
  22. package/lib/Signal/libsignal.d.ts +3 -0
  23. package/lib/Signal/libsignal.js +152 -0
  24. package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
  25. package/lib/Socket/Client/abstract-socket-client.js +13 -0
  26. package/lib/Socket/Client/index.d.ts +3 -0
  27. package/lib/Socket/Client/index.js +19 -0
  28. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  29. package/lib/Socket/Client/mobile-socket-client.js +65 -0
  30. package/lib/Socket/Client/web-socket-client.d.ts +12 -0
  31. package/lib/Socket/Client/web-socket-client.js +62 -0
  32. package/lib/Socket/business.d.ts +170 -0
  33. package/lib/Socket/business.js +260 -0
  34. package/lib/Socket/chats.d.ts +81 -0
  35. package/lib/Socket/chats.js +950 -0
  36. package/lib/Socket/groups.d.ts +115 -0
  37. package/lib/Socket/groups.js +315 -0
  38. package/lib/Socket/index.d.ts +172 -0
  39. package/lib/Socket/index.js +10 -0
  40. package/lib/Socket/messages-recv.d.ts +158 -0
  41. package/lib/Socket/messages-recv.js +972 -0
  42. package/lib/Socket/messages-send.d.ts +155 -0
  43. package/lib/Socket/messages-send.js +1087 -0
  44. package/lib/Socket/newsletter.d.ts +132 -0
  45. package/lib/Socket/newsletter.js +236 -0
  46. package/lib/Socket/registration.d.ts +264 -0
  47. package/lib/Socket/registration.js +166 -0
  48. package/lib/Socket/socket.d.ts +44 -0
  49. package/lib/Socket/socket.js +643 -0
  50. package/lib/Socket/usync.d.ts +37 -0
  51. package/lib/Socket/usync.js +70 -0
  52. package/lib/Store/index.d.ts +3 -0
  53. package/lib/Store/index.js +10 -0
  54. package/lib/Store/make-cache-manager-store.d.ts +14 -0
  55. package/lib/Store/make-cache-manager-store.js +83 -0
  56. package/lib/Store/make-in-memory-store.d.ts +118 -0
  57. package/lib/Store/make-in-memory-store.js +431 -0
  58. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  59. package/lib/Store/make-ordered-dictionary.js +81 -0
  60. package/lib/Store/object-repository.d.ts +10 -0
  61. package/lib/Store/object-repository.js +27 -0
  62. package/lib/Types/Auth.d.ts +109 -0
  63. package/lib/Types/Auth.js +2 -0
  64. package/lib/Types/Call.d.ts +13 -0
  65. package/lib/Types/Call.js +2 -0
  66. package/lib/Types/Chat.d.ts +107 -0
  67. package/lib/Types/Chat.js +4 -0
  68. package/lib/Types/Contact.d.ts +19 -0
  69. package/lib/Types/Contact.js +2 -0
  70. package/lib/Types/Events.d.ts +172 -0
  71. package/lib/Types/Events.js +2 -0
  72. package/lib/Types/GroupMetadata.d.ts +56 -0
  73. package/lib/Types/GroupMetadata.js +2 -0
  74. package/lib/Types/Label.d.ts +46 -0
  75. package/lib/Types/Label.js +27 -0
  76. package/lib/Types/LabelAssociation.d.ts +29 -0
  77. package/lib/Types/LabelAssociation.js +9 -0
  78. package/lib/Types/Message.d.ts +433 -0
  79. package/lib/Types/Message.js +9 -0
  80. package/lib/Types/Newsletter.d.ts +92 -0
  81. package/lib/Types/Newsletter.js +32 -0
  82. package/lib/Types/Product.d.ts +78 -0
  83. package/lib/Types/Product.js +2 -0
  84. package/lib/Types/Signal.d.ts +57 -0
  85. package/lib/Types/Signal.js +2 -0
  86. package/lib/Types/Socket.d.ts +116 -0
  87. package/lib/Types/Socket.js +2 -0
  88. package/lib/Types/State.d.ts +27 -0
  89. package/lib/Types/State.js +2 -0
  90. package/lib/Types/USync.d.ts +25 -0
  91. package/lib/Types/USync.js +2 -0
  92. package/lib/Types/index.d.ts +66 -0
  93. package/lib/Types/index.js +42 -0
  94. package/lib/Utils/auth-utils.d.ts +18 -0
  95. package/lib/Utils/auth-utils.js +227 -0
  96. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  97. package/lib/Utils/baileys-event-stream.js +63 -0
  98. package/lib/Utils/business.d.ts +22 -0
  99. package/lib/Utils/business.js +234 -0
  100. package/lib/Utils/chat-utils.d.ts +70 -0
  101. package/lib/Utils/chat-utils.js +745 -0
  102. package/lib/Utils/crypto.d.ts +40 -0
  103. package/lib/Utils/crypto.js +199 -0
  104. package/lib/Utils/decode-wa-message.d.ts +36 -0
  105. package/lib/Utils/decode-wa-message.js +234 -0
  106. package/lib/Utils/event-buffer.d.ts +35 -0
  107. package/lib/Utils/event-buffer.js +517 -0
  108. package/lib/Utils/generics.d.ts +88 -0
  109. package/lib/Utils/generics.js +402 -0
  110. package/lib/Utils/history.d.ts +19 -0
  111. package/lib/Utils/history.js +94 -0
  112. package/lib/Utils/index.d.ts +17 -0
  113. package/lib/Utils/index.js +33 -0
  114. package/lib/Utils/link-preview.d.ts +21 -0
  115. package/lib/Utils/link-preview.js +93 -0
  116. package/lib/Utils/logger.d.ts +2 -0
  117. package/lib/Utils/logger.js +7 -0
  118. package/lib/Utils/lt-hash.d.ts +12 -0
  119. package/lib/Utils/lt-hash.js +51 -0
  120. package/lib/Utils/make-mutex.d.ts +7 -0
  121. package/lib/Utils/make-mutex.js +43 -0
  122. package/lib/Utils/messages-media.d.ts +113 -0
  123. package/lib/Utils/messages-media.js +721 -0
  124. package/lib/Utils/messages.d.ts +77 -0
  125. package/lib/Utils/messages.js +1221 -0
  126. package/lib/Utils/noise-handler.d.ts +20 -0
  127. package/lib/Utils/noise-handler.js +160 -0
  128. package/lib/Utils/process-message.d.ts +41 -0
  129. package/lib/Utils/process-message.js +373 -0
  130. package/lib/Utils/signal.d.ts +33 -0
  131. package/lib/Utils/signal.js +159 -0
  132. package/lib/Utils/use-multi-file-auth-state.d.ts +12 -0
  133. package/lib/Utils/use-multi-file-auth-state.js +295 -0
  134. package/lib/Utils/use-single-file-auth-state.d.ts +12 -0
  135. package/lib/Utils/use-single-file-auth-state.js +75 -0
  136. package/lib/Utils/validate-connection.d.ts +11 -0
  137. package/lib/Utils/validate-connection.js +205 -0
  138. package/lib/WABinary/constants.d.ts +27 -0
  139. package/lib/WABinary/constants.js +40 -0
  140. package/lib/WABinary/decode.d.ts +6 -0
  141. package/lib/WABinary/decode.js +264 -0
  142. package/lib/WABinary/encode.d.ts +2 -0
  143. package/lib/WABinary/encode.js +252 -0
  144. package/lib/WABinary/generic-utils.d.ts +14 -0
  145. package/lib/WABinary/generic-utils.js +110 -0
  146. package/lib/WABinary/index.d.ts +5 -0
  147. package/lib/WABinary/index.js +21 -0
  148. package/lib/WABinary/jid-utils.d.ts +31 -0
  149. package/lib/WABinary/jid-utils.js +62 -0
  150. package/lib/WABinary/types.d.ts +18 -0
  151. package/lib/WABinary/types.js +2 -0
  152. package/lib/WAM/BinaryInfo.d.ts +8 -0
  153. package/lib/WAM/BinaryInfo.js +13 -0
  154. package/lib/WAM/constants.d.ts +38 -0
  155. package/lib/WAM/constants.js +15350 -0
  156. package/lib/WAM/encode.d.ts +2 -0
  157. package/lib/WAM/encode.js +155 -0
  158. package/lib/WAM/index.d.ts +3 -0
  159. package/lib/WAM/index.js +19 -0
  160. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  161. package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
  162. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  163. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
  164. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  165. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
  166. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  167. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
  168. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +25 -0
  169. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +53 -0
  170. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +8 -0
  171. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +24 -0
  172. package/lib/WAUSync/Protocols/index.d.ts +4 -0
  173. package/lib/WAUSync/Protocols/index.js +20 -0
  174. package/lib/WAUSync/USyncQuery.d.ts +28 -0
  175. package/lib/WAUSync/USyncQuery.js +89 -0
  176. package/lib/WAUSync/USyncUser.d.ts +10 -0
  177. package/lib/WAUSync/USyncUser.js +26 -0
  178. package/lib/WAUSync/index.d.ts +3 -0
  179. package/lib/WAUSync/index.js +19 -0
  180. package/lib/index.js +31 -0
  181. package/package.json +103 -0
package/README.md ADDED
@@ -0,0 +1,200 @@
1
+ <div align='center'>HT-baileys</div>
2
+
3
+ <div align="center">
4
+ <img src="https://files.catbox.moe/vi3npg.png" alt="HT-baileys Banner" width="100%" />
5
+ <br/><br/>
6
+
7
+ <a href="https://heavstal-tech.vercel.app">
8
+ <img src="https://img.shields.io/badge/Maintainer-Heavstal_Tech-007acc?style=for-the-badge&logo=vercel&logoColor=white" alt="Heavstal Tech" />
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/@heavstaltech/baileys">
11
+ <img src="https://img.shields.io/badge/NPM-@heavstaltech/baileys-cb3837?style=for-the-badge&logo=npm&logoColor=white" alt="NPM" />
12
+ </a>
13
+ <a href="https://github.com/Promise818/HT-baileys">
14
+ <img src="https://img.shields.io/badge/Version-1.0.0-2ea44f?style=for-the-badge&logo=github&logoColor=white" alt="Version" />
15
+ </a>
16
+ <a href="https://github.com/Promise818/HT-baileys/blob/master/LICENSE">
17
+ <img src="https://img.shields.io/badge/License-MIT-fab005?style=for-the-badge" alt="License" />
18
+ </a>
19
+ </div>
20
+
21
+ ---
22
+
23
+ ## Introduction
24
+
25
+ **HT-baileys** is an extended fork of the WhatsApp Web API library, maintained by **Heavstal Tech**.
26
+
27
+ This library builds upon the stability of the original Baileys and the extended features of `baileys-pro`, offering a robust solution for enterprise-grade WhatsApp automation. It includes optimized headers for connection stability, support for custom pairing codes, and native implementation of WhatsApp Channels (Newsletters) and interactive messages.
28
+
29
+ ## Installation
30
+
31
+ ### Stable Release
32
+ ```bash
33
+ npm install @heavstaltech/baileys
34
+ ```
35
+
36
+ ### Edge Release
37
+ ```bash
38
+ npm install @heavstaltech/baileys@latest
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Usage
44
+
45
+ ### Basic Connection
46
+
47
+ The following example demonstrates how to initialize a socket connection using `HT-baileys`.
48
+
49
+ ```ts
50
+ import makeWASocket, {
51
+ useMultiFileAuthState,
52
+ DisconnectReason,
53
+ Browsers
54
+ } from '@heavstaltech/baileys'
55
+
56
+ async function connectToWhatsApp() {
57
+ const { state, saveCreds } = await useMultiFileAuthState('auth_info')
58
+
59
+ const sock = makeWASocket({
60
+ auth: state,
61
+ printQRInTerminal: false, // Set to true if using QR scanning
62
+ browser: Browsers.macOS("Desktop"),
63
+ syncFullHistory: true
64
+ })
65
+
66
+ sock.ev.on('connection.update', (update) => {
67
+ const { connection, lastDisconnect } = update
68
+
69
+ if(connection === 'close') {
70
+ const shouldReconnect = (lastDisconnect?.error as any)?.output?.statusCode !== DisconnectReason.loggedOut
71
+ console.log('Connection closed. Reconnecting:', shouldReconnect)
72
+
73
+ if(shouldReconnect) {
74
+ connectToWhatsApp()
75
+ }
76
+ } else if(connection === 'open') {
77
+ console.log('Connection opened successfully')
78
+ }
79
+ })
80
+
81
+ sock.ev.on('creds.update', saveCreds)
82
+ }
83
+
84
+ connectToWhatsApp()
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Features & Implementation
90
+
91
+ ### 1. Custom Pairing Code
92
+ HT-baileys supports the definition of custom alphanumeric pairing codes, allowing for branded connection flows.
93
+
94
+ ```ts
95
+ if (!sock.authState.creds.registered) {
96
+ // Ensure the number format is correct (Country Code + Number)
97
+ const phoneNumber = "2349000000000"
98
+ const customCode = "HEAVSTAL"
99
+
100
+ setTimeout(async () => {
101
+ const code = await sock.requestPairingCode(phoneNumber, customCode)
102
+ console.log(`Pairing Code: ${code}`)
103
+ }, 3000)
104
+ }
105
+ ```
106
+
107
+ ### 2. Newsletter Management
108
+ Provides a full suite of tools for managing WhatsApp Channels (Newsletters).
109
+
110
+ **Create a Channel**
111
+ ```ts
112
+ const channel = await sock.newsletterCreate("Heavstal Updates", "Official Channel Description")
113
+ console.log("Channel Created:", channel.id)
114
+ ```
115
+
116
+ **Update Channel Metadata**
117
+ ```ts
118
+ await sock.newsletterUpdateName(channel.id, "Heavstal Tech")
119
+ await sock.newsletterUpdateDescription(channel.id, "Official Updates")
120
+ ```
121
+
122
+ **Mute/Unmute**
123
+ ```ts
124
+ await sock.newsletterMute(channel.id)
125
+ await sock.newsletterUnmute(channel.id)
126
+ ```
127
+
128
+ ### 3. Interactive Messages (Buttons & Lists)
129
+ Native support for interactive message types, including single-select lists and call-to-action buttons.
130
+
131
+ ```ts
132
+ const interactiveMessage = {
133
+ body: { text: "Select an option below" },
134
+ footer: { text: "Heavstal Tech" },
135
+ header: { title: "Main Menu", hasMediaAttachment: false },
136
+ nativeFlowMessage: {
137
+ buttons: [
138
+ {
139
+ name: "single_select",
140
+ buttonParamsJson: JSON.stringify({
141
+ title: "Tap to open",
142
+ sections: [{
143
+ title: "Services",
144
+ rows: [
145
+ { header: "STATUS", title: "System Status", id: "status_check" },
146
+ { header: "SUPPORT", title: "Contact Support", id: "contact_support" }
147
+ ]
148
+ }]
149
+ })
150
+ }
151
+ ]
152
+ }
153
+ }
154
+
155
+ await sock.sendMessage(jid, {
156
+ viewOnceMessage: {
157
+ message: { interactiveMessage }
158
+ }
159
+ })
160
+ ```
161
+
162
+ ### 4. Album Messages
163
+ Allows sending multiple media assets (Images/Videos) grouped as a single album.
164
+
165
+ ```ts
166
+ const mediaContent = [
167
+ { image: { url: "https://example.com/image1.jpg" } },
168
+ { image: { url: "https://example.com/image2.jpg" } },
169
+ { video: { url: "https://example.com/video.mp4" } }
170
+ ]
171
+
172
+ await sock.sendMessage(jid, {
173
+ album: mediaContent,
174
+ caption: "Media Album"
175
+ })
176
+ ```
177
+
178
+ ### 5. AI Message Flag
179
+ Support for the `ai` property to mark messages generated by automated systems.
180
+
181
+ ```ts
182
+ await sock.sendMessage(jid, {
183
+ text: "Processed by AI",
184
+ ai: true
185
+ })
186
+ ```
187
+
188
+ ---
189
+
190
+ ## Disclaimer
191
+
192
+ **HT-baileys** is an independent project maintained by **Heavstal Tech**. It is not affiliated with, authorized, maintained, sponsored, or endorsed by WhatsApp Inc. or Meta Platforms, Inc.
193
+
194
+ This software is provided "as is", without warranty of any kind. Users are responsible for ensuring their usage complies with WhatsApp's Terms of Service. **Heavstal Tech** accepts no liability for account restrictions or bans resulting from the use of this library.
195
+
196
+ ---
197
+
198
+ <div align="center">
199
+ <sub>© 2025 Heavstal Tech. All rights reserved.</sub>
200
+ </div>