gifted-baileys 1.5.0 → 1.5.5

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 (222) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1429 -684
  3. package/package.json +11 -26
  4. package/src/Defaults/baileys-version.json +3 -0
  5. package/{lib → src}/Defaults/index.js +16 -8
  6. package/src/Defaults/index.ts +131 -0
  7. package/src/Defaults/phonenumber-mcc.json +223 -0
  8. package/src/Signal/libsignal.js +180 -0
  9. package/src/Signal/libsignal.ts +141 -0
  10. package/src/Socket/Client/abstract-socket-client.ts +19 -0
  11. package/src/Socket/Client/index.ts +3 -0
  12. package/src/Socket/Client/mobile-socket-client.js +78 -0
  13. package/src/Socket/Client/mobile-socket-client.ts +66 -0
  14. package/src/Socket/Client/web-socket-client.js +75 -0
  15. package/src/Socket/Client/web-socket-client.ts +57 -0
  16. package/{lib → src}/Socket/business.js +33 -27
  17. package/src/Socket/business.ts +281 -0
  18. package/{lib → src}/Socket/chats.js +197 -178
  19. package/src/Socket/chats.ts +1030 -0
  20. package/{lib → src}/Socket/groups.js +69 -79
  21. package/src/Socket/groups.ts +356 -0
  22. package/{lib → src}/Socket/index.js +1 -4
  23. package/src/Socket/index.ts +13 -0
  24. package/{lib → src}/Socket/messages-recv.js +160 -108
  25. package/src/Socket/messages-recv.ts +985 -0
  26. package/{lib → src}/Socket/messages-send.js +183 -100
  27. package/src/Socket/messages-send.ts +871 -0
  28. package/src/Socket/newsletter.js +227 -0
  29. package/src/Socket/newsletter.ts +282 -0
  30. package/{lib → src}/Socket/registration.js +55 -63
  31. package/src/Socket/registration.ts +250 -0
  32. package/{lib → src}/Socket/socket.js +107 -66
  33. package/src/Socket/socket.ts +777 -0
  34. package/src/Store/index.ts +3 -0
  35. package/{lib → src}/Store/make-cache-manager-store.js +34 -25
  36. package/src/Store/make-cache-manager-store.ts +100 -0
  37. package/{lib → src}/Store/make-in-memory-store.js +51 -61
  38. package/src/Store/make-in-memory-store.ts +475 -0
  39. package/src/Store/make-ordered-dictionary.ts +86 -0
  40. package/{lib → src}/Store/object-repository.js +1 -1
  41. package/src/Store/object-repository.ts +32 -0
  42. package/src/Tests/test.app-state-sync.js +204 -0
  43. package/src/Tests/test.app-state-sync.ts +207 -0
  44. package/src/Tests/test.event-buffer.js +270 -0
  45. package/src/Tests/test.event-buffer.ts +319 -0
  46. package/src/Tests/test.key-store.js +76 -0
  47. package/src/Tests/test.key-store.ts +92 -0
  48. package/src/Tests/test.libsignal.js +141 -0
  49. package/src/Tests/test.libsignal.ts +186 -0
  50. package/src/Tests/test.media-download.js +93 -0
  51. package/src/Tests/test.media-download.ts +76 -0
  52. package/src/Tests/test.messages.js +33 -0
  53. package/src/Tests/test.messages.ts +37 -0
  54. package/src/Tests/utils.js +34 -0
  55. package/src/Tests/utils.ts +36 -0
  56. package/src/Types/Auth.ts +113 -0
  57. package/src/Types/Call.ts +15 -0
  58. package/src/Types/Chat.ts +106 -0
  59. package/{lib/Types/Contact.d.ts → src/Types/Contact.ts} +9 -8
  60. package/src/Types/Events.ts +93 -0
  61. package/src/Types/GroupMetadata.ts +53 -0
  62. package/{lib → src}/Types/Label.js +1 -1
  63. package/src/Types/Label.ts +36 -0
  64. package/{lib → src}/Types/LabelAssociation.js +1 -1
  65. package/{lib/Types/LabelAssociation.d.ts → src/Types/LabelAssociation.ts} +22 -16
  66. package/src/Types/Message.ts +288 -0
  67. package/src/Types/Newsletter.js +32 -0
  68. package/src/Types/Newsletter.ts +98 -0
  69. package/src/Types/Product.ts +85 -0
  70. package/src/Types/Signal.ts +68 -0
  71. package/{lib/Types/Socket.d.ts → src/Types/Socket.ts} +68 -56
  72. package/src/Types/State.ts +29 -0
  73. package/{lib → src}/Types/index.js +2 -1
  74. package/src/Types/index.ts +59 -0
  75. package/{lib → src}/Utils/auth-utils.js +95 -76
  76. package/src/Utils/auth-utils.ts +222 -0
  77. package/src/Utils/baileys-event-stream.js +92 -0
  78. package/src/Utils/baileys-event-stream.ts +66 -0
  79. package/{lib → src}/Utils/business.js +45 -17
  80. package/src/Utils/business.ts +275 -0
  81. package/{lib → src}/Utils/chat-utils.js +74 -46
  82. package/src/Utils/chat-utils.ts +860 -0
  83. package/{lib → src}/Utils/crypto.js +31 -21
  84. package/src/Utils/crypto.ts +131 -0
  85. package/src/Utils/decode-wa-message.js +211 -0
  86. package/src/Utils/decode-wa-message.ts +228 -0
  87. package/{lib → src}/Utils/event-buffer.js +13 -4
  88. package/src/Utils/event-buffer.ts +613 -0
  89. package/{lib → src}/Utils/generics.js +98 -45
  90. package/src/Utils/generics.ts +434 -0
  91. package/{lib → src}/Utils/history.js +39 -10
  92. package/src/Utils/history.ts +112 -0
  93. package/src/Utils/index.ts +17 -0
  94. package/{lib → src}/Utils/link-preview.js +54 -17
  95. package/src/Utils/link-preview.ts +122 -0
  96. package/src/Utils/logger.ts +3 -0
  97. package/src/Utils/lt-hash.ts +61 -0
  98. package/{lib → src}/Utils/make-mutex.js +13 -4
  99. package/src/Utils/make-mutex.ts +44 -0
  100. package/{lib → src}/Utils/messages-media.js +296 -192
  101. package/src/Utils/messages-media.ts +847 -0
  102. package/{lib → src}/Utils/messages.js +124 -113
  103. package/src/Utils/messages.ts +956 -0
  104. package/{lib → src}/Utils/noise-handler.js +16 -3
  105. package/src/Utils/noise-handler.ts +197 -0
  106. package/{lib → src}/Utils/process-message.js +33 -29
  107. package/src/Utils/process-message.ts +414 -0
  108. package/{lib → src}/Utils/signal.js +23 -14
  109. package/src/Utils/signal.ts +177 -0
  110. package/{lib → src}/Utils/use-multi-file-auth-state.js +28 -19
  111. package/src/Utils/use-multi-file-auth-state.ts +90 -0
  112. package/{lib → src}/Utils/validate-connection.js +25 -42
  113. package/src/Utils/validate-connection.ts +238 -0
  114. package/src/WABinary/constants.ts +42 -0
  115. package/{lib → src}/WABinary/decode.js +17 -7
  116. package/src/WABinary/decode.ts +265 -0
  117. package/{lib → src}/WABinary/encode.js +17 -7
  118. package/src/WABinary/encode.ts +236 -0
  119. package/{lib → src}/WABinary/generic-utils.js +2 -2
  120. package/src/WABinary/generic-utils.ts +121 -0
  121. package/src/WABinary/index.ts +5 -0
  122. package/{lib → src}/WABinary/jid-utils.js +4 -1
  123. package/src/WABinary/jid-utils.ts +68 -0
  124. package/src/WABinary/types.ts +17 -0
  125. package/src/WAM/BinaryInfo.js +13 -0
  126. package/src/WAM/BinaryInfo.ts +12 -0
  127. package/src/WAM/constants.js +15350 -0
  128. package/src/WAM/constants.ts +15382 -0
  129. package/src/WAM/encode.js +155 -0
  130. package/src/WAM/encode.ts +174 -0
  131. package/src/WAM/index.js +19 -0
  132. package/src/WAM/index.ts +3 -0
  133. package/src/gifted +1 -0
  134. package/{lib → src}/index.js +1 -0
  135. package/src/index.ts +13 -0
  136. package/lib/Defaults/baileys-version.json +0 -3
  137. package/lib/Defaults/index.d.ts +0 -284
  138. package/lib/Defaults/phonenumber-mcc.json +0 -223
  139. package/lib/Signal/libsignal.d.ts +0 -3
  140. package/lib/Signal/libsignal.js +0 -152
  141. package/lib/Socket/Client/abstract-socket-client.d.ts +0 -17
  142. package/lib/Socket/Client/index.d.ts +0 -3
  143. package/lib/Socket/Client/mobile-socket-client.d.ts +0 -13
  144. package/lib/Socket/Client/mobile-socket-client.js +0 -65
  145. package/lib/Socket/Client/web-socket-client.d.ts +0 -12
  146. package/lib/Socket/Client/web-socket-client.js +0 -62
  147. package/lib/Socket/business.d.ts +0 -135
  148. package/lib/Socket/chats.d.ts +0 -79
  149. package/lib/Socket/groups.d.ts +0 -113
  150. package/lib/Socket/index.d.ts +0 -137
  151. package/lib/Socket/messages-recv.d.ts +0 -124
  152. package/lib/Socket/messages-send.d.ts +0 -119
  153. package/lib/Socket/registration.d.ts +0 -232
  154. package/lib/Socket/socket.d.ts +0 -42
  155. package/lib/Store/index.d.ts +0 -3
  156. package/lib/Store/make-cache-manager-store.d.ts +0 -13
  157. package/lib/Store/make-in-memory-store.d.ts +0 -117
  158. package/lib/Store/make-ordered-dictionary.d.ts +0 -13
  159. package/lib/Store/object-repository.d.ts +0 -10
  160. package/lib/Types/Auth.d.ts +0 -108
  161. package/lib/Types/Call.d.ts +0 -13
  162. package/lib/Types/Chat.d.ts +0 -102
  163. package/lib/Types/Events.d.ts +0 -157
  164. package/lib/Types/GroupMetadata.d.ts +0 -52
  165. package/lib/Types/Label.d.ts +0 -35
  166. package/lib/Types/Message.d.ts +0 -261
  167. package/lib/Types/Product.d.ts +0 -78
  168. package/lib/Types/Signal.d.ts +0 -57
  169. package/lib/Types/State.d.ts +0 -27
  170. package/lib/Types/index.d.ts +0 -56
  171. package/lib/Utils/auth-utils.d.ts +0 -18
  172. package/lib/Utils/baileys-event-stream.d.ts +0 -16
  173. package/lib/Utils/baileys-event-stream.js +0 -63
  174. package/lib/Utils/business.d.ts +0 -22
  175. package/lib/Utils/chat-utils.d.ts +0 -71
  176. package/lib/Utils/crypto.d.ts +0 -41
  177. package/lib/Utils/decode-wa-message.d.ts +0 -19
  178. package/lib/Utils/decode-wa-message.js +0 -174
  179. package/lib/Utils/event-buffer.d.ts +0 -35
  180. package/lib/Utils/generics.d.ts +0 -94
  181. package/lib/Utils/history.d.ts +0 -15
  182. package/lib/Utils/index.d.ts +0 -17
  183. package/lib/Utils/link-preview.d.ts +0 -21
  184. package/lib/Utils/logger.d.ts +0 -4
  185. package/lib/Utils/lt-hash.d.ts +0 -12
  186. package/lib/Utils/make-mutex.d.ts +0 -7
  187. package/lib/Utils/messages-media.d.ts +0 -107
  188. package/lib/Utils/messages.d.ts +0 -76
  189. package/lib/Utils/noise-handler.d.ts +0 -20
  190. package/lib/Utils/process-message.d.ts +0 -41
  191. package/lib/Utils/signal.d.ts +0 -32
  192. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -12
  193. package/lib/Utils/validate-connection.d.ts +0 -11
  194. package/lib/WABinary/constants.d.ts +0 -27
  195. package/lib/WABinary/decode.d.ts +0 -7
  196. package/lib/WABinary/encode.d.ts +0 -3
  197. package/lib/WABinary/generic-utils.d.ts +0 -15
  198. package/lib/WABinary/index.d.ts +0 -5
  199. package/lib/WABinary/jid-utils.d.ts +0 -29
  200. package/lib/WABinary/types.d.ts +0 -18
  201. package/lib/index.d.ts +0 -10
  202. /package/{lib → src}/Socket/Client/abstract-socket-client.js +0 -0
  203. /package/{lib → src}/Socket/Client/index.js +0 -0
  204. /package/{lib → src}/Store/index.js +0 -0
  205. /package/{lib → src}/Store/make-ordered-dictionary.js +0 -0
  206. /package/{lib → src}/Types/Auth.js +0 -0
  207. /package/{lib → src}/Types/Call.js +0 -0
  208. /package/{lib → src}/Types/Chat.js +0 -0
  209. /package/{lib → src}/Types/Contact.js +0 -0
  210. /package/{lib → src}/Types/Events.js +0 -0
  211. /package/{lib → src}/Types/GroupMetadata.js +0 -0
  212. /package/{lib → src}/Types/Message.js +0 -0
  213. /package/{lib → src}/Types/Product.js +0 -0
  214. /package/{lib → src}/Types/Signal.js +0 -0
  215. /package/{lib → src}/Types/Socket.js +0 -0
  216. /package/{lib → src}/Types/State.js +0 -0
  217. /package/{lib → src}/Utils/index.js +0 -0
  218. /package/{lib → src}/Utils/logger.js +0 -0
  219. /package/{lib → src}/Utils/lt-hash.js +0 -0
  220. /package/{lib → src}/WABinary/constants.js +0 -0
  221. /package/{lib → src}/WABinary/index.js +0 -0
  222. /package/{lib → src}/WABinary/types.js +0 -0
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryIds = exports.XWAPaths = exports.MexOperations = void 0;
4
+ var MexOperations;
5
+ (function (MexOperations) {
6
+ MexOperations["PROMOTE"] = "NotificationNewsletterAdminPromote";
7
+ MexOperations["DEMOTE"] = "NotificationNewsletterAdminDemote";
8
+ MexOperations["UPDATE"] = "NotificationNewsletterUpdate";
9
+ })(MexOperations || (exports.MexOperations = MexOperations = {}));
10
+ var XWAPaths;
11
+ (function (XWAPaths) {
12
+ XWAPaths["PROMOTE"] = "xwa2_notify_newsletter_admin_promote";
13
+ XWAPaths["DEMOTE"] = "xwa2_notify_newsletter_admin_demote";
14
+ XWAPaths["ADMIN_COUNT"] = "xwa2_newsletter_admin";
15
+ XWAPaths["CREATE"] = "xwa2_newsletter_create";
16
+ XWAPaths["NEWSLETTER"] = "xwa2_newsletter";
17
+ XWAPaths["METADATA_UPDATE"] = "xwa2_notify_newsletter_on_metadata_update";
18
+ })(XWAPaths || (exports.XWAPaths = XWAPaths = {}));
19
+ var QueryIds;
20
+ (function (QueryIds) {
21
+ QueryIds["JOB_MUTATION"] = "7150902998257522";
22
+ QueryIds["METADATA"] = "6620195908089573";
23
+ QueryIds["UNFOLLOW"] = "7238632346214362";
24
+ QueryIds["FOLLOW"] = "7871414976211147";
25
+ QueryIds["UNMUTE"] = "7337137176362961";
26
+ QueryIds["MUTE"] = "25151904754424642";
27
+ QueryIds["CREATE"] = "6996806640408138";
28
+ QueryIds["ADMIN_COUNT"] = "7130823597031706";
29
+ QueryIds["CHANGE_OWNER"] = "7341777602580933";
30
+ QueryIds["DELETE"] = "8316537688363079";
31
+ QueryIds["DEMOTE"] = "6551828931592903";
32
+ })(QueryIds || (exports.QueryIds = QueryIds = {}));
@@ -0,0 +1,98 @@
1
+ import { proto } from '../../WAProto'
2
+
3
+ export type NewsletterReactionMode = 'ALL' | 'BASIC' | 'NONE'
4
+
5
+ export type NewsletterState = 'ACTIVE' | 'GEOSUSPENDED' | 'SUSPENDED'
6
+
7
+ export type NewsletterVerification = 'VERIFIED' | 'UNVERIFIED'
8
+
9
+ export type NewsletterMute = 'ON' | 'OFF' | 'UNDEFINED'
10
+
11
+ export type NewsletterViewRole = 'ADMIN' | 'GUEST' | 'OWNER' | 'SUBSCRIBER'
12
+
13
+ export type NewsletterViewerMetadata = {
14
+ mute: NewsletterMute
15
+ view_role: NewsletterViewRole
16
+ }
17
+
18
+ export type NewsletterMetadata = {
19
+ /**jid of newsletter */
20
+ id: string
21
+ /**state of newsletter */
22
+ state: NewsletterState
23
+ /**creation timestamp of newsletter */
24
+ creation_time: number
25
+ /**name of newsletter */
26
+ name: string
27
+ /**timestamp of last name modification of newsletter */
28
+ nameTime: number
29
+ /**description of newsletter */
30
+ description: string
31
+ /**timestamp of last description modification of newsletter */
32
+ descriptionTime: number
33
+ /**invite code of newsletter */
34
+ invite: string
35
+ /**i dont know */
36
+ handle: null
37
+ /**direct path of picture */
38
+ picture: string | null
39
+ /**direct path of picture preview (lower quality) */
40
+ preview: string | null
41
+ /**reaction mode of newsletter */
42
+ reaction_codes?: NewsletterReactionMode
43
+ /**subscribers count of newsletter */
44
+ subscribers: number
45
+ /**verification state of newsletter */
46
+ verification: NewsletterVerification
47
+ /**viewer metadata */
48
+ viewer_metadata: NewsletterViewerMetadata
49
+ }
50
+
51
+ export type SubscriberAction = 'promote' | 'demote'
52
+
53
+ export type ReactionModeUpdate = {reaction_codes: {blocked_codes: null, enabled_ts_sec: null, value: NewsletterReactionMode}}
54
+
55
+ /**only exists reaction mode update */
56
+ export type NewsletterSettingsUpdate = ReactionModeUpdate
57
+
58
+ export type NewsletterReaction = {count: number, code: string}
59
+
60
+ export type NewsletterFetchedUpdate = {
61
+ /**id of message in newsletter, starts from 100 */
62
+ server_id: string
63
+ /**count of views in this message */
64
+ views?: number
65
+ /**reactions in this message */
66
+ reactions: NewsletterReaction[]
67
+ /**the message, if you requested only updates, you will not receive message */
68
+ message?: proto.IWebMessageInfo
69
+ }
70
+
71
+ export enum MexOperations {
72
+ PROMOTE = 'NotificationNewsletterAdminPromote',
73
+ DEMOTE = 'NotificationNewsletterAdminDemote',
74
+ UPDATE = 'NotificationNewsletterUpdate'
75
+ }
76
+
77
+ export enum XWAPaths {
78
+ PROMOTE = 'xwa2_notify_newsletter_admin_promote',
79
+ DEMOTE = 'xwa2_notify_newsletter_admin_demote',
80
+ ADMIN_COUNT = 'xwa2_newsletter_admin',
81
+ CREATE = 'xwa2_newsletter_create',
82
+ NEWSLETTER = 'xwa2_newsletter',
83
+ METADATA_UPDATE = 'xwa2_notify_newsletter_on_metadata_update'
84
+ }
85
+
86
+ export enum QueryIds {
87
+ JOB_MUTATION = '7150902998257522',
88
+ METADATA = '6620195908089573',
89
+ UNFOLLOW = '7238632346214362',
90
+ FOLLOW = '7871414976211147',
91
+ UNMUTE = '7337137176362961',
92
+ MUTE = '25151904754424642',
93
+ CREATE = '6996806640408138',
94
+ ADMIN_COUNT = '7130823597031706',
95
+ CHANGE_OWNER = '7341777602580933',
96
+ DELETE = '8316537688363079',
97
+ DEMOTE = '6551828931592903'
98
+ }
@@ -0,0 +1,85 @@
1
+ import { WAMediaUpload } from './Message'
2
+
3
+ export type CatalogResult = {
4
+ data: {
5
+ paging: { cursors: { before: string, after: string } }
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ data: any[]
8
+ }
9
+ }
10
+
11
+ export type ProductCreateResult = {
12
+ data: { product: {} }
13
+ }
14
+
15
+ export type CatalogStatus = {
16
+ status: string
17
+ canAppeal: boolean
18
+ }
19
+
20
+ export type CatalogCollection = {
21
+ id: string
22
+ name: string
23
+ products: Product[]
24
+
25
+ status: CatalogStatus
26
+ }
27
+
28
+ export type ProductAvailability = 'in stock'
29
+
30
+ export type ProductBase = {
31
+ name: string
32
+ retailerId?: string
33
+ url?: string
34
+ description: string
35
+ price: number
36
+ currency: string
37
+ isHidden?: boolean
38
+ }
39
+
40
+ export type ProductCreate = ProductBase & {
41
+ /** ISO country code for product origin. Set to undefined for no country */
42
+ originCountryCode: string | undefined
43
+ /** images of the product */
44
+ images: WAMediaUpload[]
45
+ }
46
+
47
+ export type ProductUpdate = Omit<ProductCreate, 'originCountryCode'>
48
+
49
+ export type Product = ProductBase & {
50
+ id: string
51
+ imageUrls: { [_: string]: string }
52
+ reviewStatus: { [_: string]: string }
53
+ availability: ProductAvailability
54
+ }
55
+
56
+ export type OrderPrice = {
57
+ currency: string
58
+ total: number
59
+ }
60
+
61
+ export type OrderProduct = {
62
+ id: string
63
+ imageUrl: string
64
+ name: string
65
+ quantity: number
66
+
67
+ currency: string
68
+ price: number
69
+ }
70
+
71
+ export type OrderDetails = {
72
+ price: OrderPrice
73
+ products: OrderProduct[]
74
+ }
75
+
76
+ export type CatalogCursor = string
77
+
78
+ export type GetCatalogOptions = {
79
+ /** cursor to start from */
80
+ cursor?: CatalogCursor
81
+ /** number of products to fetch */
82
+ limit?: number
83
+
84
+ jid?: string
85
+ }
@@ -0,0 +1,68 @@
1
+ import { proto } from '../../WAProto'
2
+
3
+ type DecryptGroupSignalOpts = {
4
+ group: string
5
+ authorJid: string
6
+ msg: Uint8Array
7
+ }
8
+
9
+ type ProcessSenderKeyDistributionMessageOpts = {
10
+ item: proto.Message.ISenderKeyDistributionMessage
11
+ authorJid: string
12
+ }
13
+
14
+ type DecryptSignalProtoOpts = {
15
+ jid: string
16
+ type: 'pkmsg' | 'msg'
17
+ ciphertext: Uint8Array
18
+ }
19
+
20
+ type EncryptMessageOpts = {
21
+ jid: string
22
+ data: Uint8Array
23
+ }
24
+
25
+ type EncryptGroupMessageOpts = {
26
+ group: string
27
+ data: Uint8Array
28
+ meId: string
29
+ }
30
+
31
+ type PreKey = {
32
+ keyId: number
33
+ publicKey: Uint8Array
34
+ }
35
+
36
+ type SignedPreKey = PreKey & {
37
+ signature: Uint8Array
38
+ }
39
+
40
+ type E2ESession = {
41
+ registrationId: number
42
+ identityKey: Uint8Array
43
+ signedPreKey: SignedPreKey
44
+ preKey: PreKey
45
+ }
46
+
47
+ type E2ESessionOpts = {
48
+ jid: string
49
+ session: E2ESession
50
+ }
51
+
52
+ export type SignalRepository = {
53
+ decryptGroupMessage(opts: DecryptGroupSignalOpts): Promise<Uint8Array>
54
+ processSenderKeyDistributionMessage(
55
+ opts: ProcessSenderKeyDistributionMessageOpts
56
+ ): Promise<void>
57
+ decryptMessage(opts: DecryptSignalProtoOpts): Promise<Uint8Array>
58
+ encryptMessage(opts: EncryptMessageOpts): Promise<{
59
+ type: 'pkmsg' | 'msg'
60
+ ciphertext: Uint8Array
61
+ }>
62
+ encryptGroupMessage(opts: EncryptGroupMessageOpts): Promise<{
63
+ senderKeyDistributionMessage: Uint8Array
64
+ ciphertext: Uint8Array
65
+ }>
66
+ injectE2ESession(opts: E2ESessionOpts): Promise<void>
67
+ jidToSignalProtocolAddress(jid: string): string
68
+ }
@@ -1,111 +1,123 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
3
- import { AxiosRequestConfig } from 'axios';
4
- import type { Agent } from 'https';
5
- import type { Logger } from 'pino';
6
- import type { URL } from 'url';
7
- import { proto } from '../../WAProto';
8
- import { AuthenticationState, SignalAuthState, TransactionCapabilityOptions } from './Auth';
9
- import { MediaConnInfo } from './Message';
10
- import { SignalRepository } from './Signal';
11
- export type WAVersion = [number, number, number];
12
- export type WABrowserDescription = [string, string, string];
1
+
2
+ import { AxiosRequestConfig } from 'axios'
3
+ import type { Agent } from 'https'
4
+ import type { Logger } from 'pino'
5
+ import type { URL } from 'url'
6
+ import { proto } from '../../WAProto'
7
+ import { AuthenticationState, SignalAuthState, TransactionCapabilityOptions } from './Auth'
8
+ import { MediaConnInfo } from './Message'
9
+ import { SignalRepository } from './Signal'
10
+
11
+ export type WAVersion = [number, number, number]
12
+ export type WABrowserDescription = [string, string, string]
13
+
13
14
  export type CacheStore = {
14
15
  /** get a cached key and change the stats */
15
- get<T>(key: string): T | undefined;
16
+ get<T>(key: string): T | undefined
16
17
  /** set a key in the cache */
17
- set<T>(key: string, value: T): void;
18
+ set<T>(key: string, value: T): void
18
19
  /** delete a key from the cache */
19
- del(key: string): void;
20
+ del(key: string): void
20
21
  /** flush all data */
21
- flushAll(): void;
22
- };
22
+ flushAll(): void
23
+ }
24
+
23
25
  export type SocketConfig = {
24
26
  /** the WS url to connect to WA */
25
- waWebSocketUrl: string | URL;
27
+ waWebSocketUrl: string | URL
26
28
  /** Fails the connection if the socket times out in this interval */
27
- connectTimeoutMs: number;
29
+ connectTimeoutMs: number
28
30
  /** Default timeout for queries, undefined for no timeout */
29
- defaultQueryTimeoutMs: number | undefined;
31
+ defaultQueryTimeoutMs: number | undefined
30
32
  /** ping-pong interval for WS connection */
31
- keepAliveIntervalMs: number;
32
- /** should baileys use the mobile api instead of the multi device api */
33
- mobile?: boolean;
33
+ keepAliveIntervalMs: number
34
+ /** should baileys use the mobile api instead of the multi device api */
35
+ mobile?: boolean
34
36
  /** proxy agent */
35
- agent?: Agent;
37
+ agent?: Agent
36
38
  /** pino logger */
37
- logger: Logger;
39
+ logger: Logger
38
40
  /** version to connect with */
39
- version: WAVersion;
41
+ version: WAVersion
40
42
  /** override browser config */
41
- browser: WABrowserDescription;
43
+ browser: WABrowserDescription
42
44
  /** agent used for fetch requests -- uploading/downloading media */
43
- fetchAgent?: Agent;
45
+ fetchAgent?: Agent
44
46
  /** should the QR be printed in the terminal */
45
- printQRInTerminal: boolean;
47
+ printQRInTerminal: boolean
46
48
  /** should events be emitted for actions done by this socket connection */
47
- emitOwnEvents: boolean;
49
+ emitOwnEvents: boolean
48
50
  /** custom upload hosts to upload media to */
49
- customUploadHosts: MediaConnInfo['hosts'];
51
+ customUploadHosts: MediaConnInfo['hosts']
50
52
  /** time to wait between sending new retry requests */
51
- retryRequestDelayMs: number;
53
+ retryRequestDelayMs: number
52
54
  /** max retry count */
53
- maxMsgRetryCount: number;
55
+ maxMsgRetryCount: number
54
56
  /** time to wait for the generation of the next QR in ms */
55
- qrTimeout?: number;
57
+ qrTimeout?: number
56
58
  /** provide an auth state object to maintain the auth state */
57
- auth: AuthenticationState;
59
+ auth: AuthenticationState
58
60
  /** manage history processing with this control; by default will sync up everything */
59
- shouldSyncHistoryMessage: (msg: proto.Message.IHistorySyncNotification) => boolean;
61
+ shouldSyncHistoryMessage: (msg: proto.Message.IHistorySyncNotification) => boolean
60
62
  /** transaction capability options for SignalKeyStore */
61
- transactionOpts: TransactionCapabilityOptions;
63
+ transactionOpts: TransactionCapabilityOptions
62
64
  /** marks the client as online whenever the socket successfully connects */
63
- markOnlineOnConnect: boolean;
65
+ markOnlineOnConnect: boolean
66
+
64
67
  /** provide a cache to store media, so does not have to be re-uploaded */
65
- mediaCache?: CacheStore;
68
+ mediaCache?: CacheStore
66
69
  /**
67
70
  * map to store the retry counts for failed messages;
68
71
  * used to determine whether to retry a message or not */
69
- msgRetryCounterCache?: CacheStore;
72
+ msgRetryCounterCache?: CacheStore
70
73
  /** provide a cache to store a user's device list */
71
- userDevicesCache?: CacheStore;
74
+ userDevicesCache?: CacheStore
72
75
  /** cache to store call offers */
73
- callOfferCache?: CacheStore;
76
+ callOfferCache?: CacheStore
74
77
  /** width for link preview images */
75
- linkPreviewImageThumbnailWidth: number;
78
+ linkPreviewImageThumbnailWidth: number
76
79
  /** Should Baileys ask the phone for full history, will be received async */
77
- syncFullHistory: boolean;
80
+ syncFullHistory: boolean
78
81
  /** Should baileys fire init queries automatically, default true */
79
- fireInitQueries: boolean;
82
+ fireInitQueries: boolean
80
83
  /**
81
84
  * generate a high quality link preview,
82
85
  * entails uploading the jpegThumbnail to WA
83
86
  * */
84
- generateHighQualityLinkPreview: boolean;
87
+ generateHighQualityLinkPreview: boolean
88
+
85
89
  /**
86
90
  * Returns if a jid should be ignored,
87
91
  * no event for that jid will be triggered.
88
92
  * Messages from that jid will also not be decrypted
89
93
  * */
90
- shouldIgnoreJid: (jid: string) => boolean | undefined;
94
+ shouldIgnoreJid: (jid: string) => boolean | undefined
95
+
91
96
  /**
92
97
  * Optionally patch the message before sending out
93
98
  * */
94
- patchMessageBeforeSending: (msg: proto.IMessage, recipientJids: string[]) => Promise<proto.IMessage> | proto.IMessage;
99
+ patchMessageBeforeSending: (
100
+ msg: proto.IMessage,
101
+ recipientJids: string[],
102
+ ) => Promise<proto.IMessage> | proto.IMessage
103
+
95
104
  /** verify app state MACs */
96
105
  appStateMacVerification: {
97
- patch: boolean;
98
- snapshot: boolean;
99
- };
106
+ patch: boolean
107
+ snapshot: boolean
108
+ }
109
+
100
110
  /** options for axios */
101
- options: AxiosRequestConfig<{}>;
111
+ options: AxiosRequestConfig<{}>
102
112
  /**
103
113
  * fetch a message from your store
104
114
  * implement this so that messages failed to send
105
115
  * (solves the "this message can take a while" issue) can be retried
106
116
  * */
107
- getMessage: (key: proto.IMessageKey) => Promise<proto.IMessage | undefined>;
108
- makeSignalRepository: (auth: SignalAuthState) => SignalRepository;
117
+ getMessage: (key: proto.IMessageKey) => Promise<proto.IMessage | undefined>
118
+
119
+ makeSignalRepository: (auth: SignalAuthState) => SignalRepository
120
+
109
121
  /** Socket passthrough */
110
- socket?: any;
111
- };
122
+ socket?: any
123
+ }
@@ -0,0 +1,29 @@
1
+ import { Contact } from './Contact'
2
+
3
+ export type WAConnectionState = 'open' | 'connecting' | 'close'
4
+
5
+ export type ConnectionState = {
6
+ /** connection is now open, connecting or closed */
7
+ connection: WAConnectionState
8
+ /** the error that caused the connection to close */
9
+ lastDisconnect?: {
10
+ error: Error | undefined
11
+ date: Date
12
+ }
13
+ /** is this a new login */
14
+ isNewLogin?: boolean
15
+ /** the current QR code */
16
+ qr?: string
17
+ /** has the device received all pending notifications while it was offline */
18
+ receivedPendingNotifications?: boolean
19
+ /** legacy connection options */
20
+ legacy?: {
21
+ phoneConnected: boolean
22
+ user?: Contact
23
+ }
24
+ /**
25
+ * if the client is shown as an active, online client.
26
+ * If this is false, the primary phone and other devices will receive notifs
27
+ * */
28
+ isOnline?: boolean
29
+ }
@@ -21,6 +21,7 @@ __exportStar(require("./Chat"), exports);
21
21
  __exportStar(require("./Contact"), exports);
22
22
  __exportStar(require("./State"), exports);
23
23
  __exportStar(require("./Message"), exports);
24
+ __exportStar(require("./Newsletter"), exports);
24
25
  __exportStar(require("./Socket"), exports);
25
26
  __exportStar(require("./Events"), exports);
26
27
  __exportStar(require("./Product"), exports);
@@ -38,4 +39,4 @@ var DisconnectReason;
38
39
  DisconnectReason[DisconnectReason["multideviceMismatch"] = 411] = "multideviceMismatch";
39
40
  DisconnectReason[DisconnectReason["forbidden"] = 403] = "forbidden";
40
41
  DisconnectReason[DisconnectReason["unavailableService"] = 503] = "unavailableService";
41
- })(DisconnectReason = exports.DisconnectReason || (exports.DisconnectReason = {}));
42
+ })(DisconnectReason || (exports.DisconnectReason = DisconnectReason = {}));
@@ -0,0 +1,59 @@
1
+ export * from './Auth'
2
+ export * from './GroupMetadata'
3
+ export * from './Chat'
4
+ export * from './Contact'
5
+ export * from './State'
6
+ export * from './Message'
7
+ export * from './Newsletter'
8
+ export * from './Socket'
9
+ export * from './Events'
10
+ export * from './Product'
11
+ export * from './Call'
12
+ export * from './Signal'
13
+
14
+ import { AuthenticationState } from './Auth'
15
+ import { SocketConfig } from './Socket'
16
+
17
+ export type UserFacingSocketConfig = Partial<SocketConfig> & { auth: AuthenticationState }
18
+
19
+ export enum DisconnectReason {
20
+ connectionClosed = 428,
21
+ connectionLost = 408,
22
+ connectionReplaced = 440,
23
+ timedOut = 408,
24
+ loggedOut = 401,
25
+ badSession = 500,
26
+ restartRequired = 515,
27
+ multideviceMismatch = 411,
28
+ forbidden = 403,
29
+ unavailableService = 503
30
+ }
31
+
32
+ export type WAInitResponse = {
33
+ ref: string
34
+ ttl: number
35
+ status: 200
36
+ }
37
+
38
+ export type WABusinessHoursConfig = {
39
+ day_of_week: string
40
+ mode: string
41
+ open_time?: number
42
+ close_time?: number
43
+ }
44
+
45
+ export type WABusinessProfile = {
46
+ description: string
47
+ email: string | undefined
48
+ business_hours: {
49
+ timezone?: string
50
+ config?: WABusinessHoursConfig[]
51
+ business_config?: WABusinessHoursConfig[]
52
+ }
53
+ website: string[]
54
+ category?: string
55
+ wid?: string
56
+ address?: string
57
+ }
58
+
59
+ export type CurveKeyPair = { private: Uint8Array, public: Uint8Array }