@hansaka02/baileys 7.3.2 → 7.3.6

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 (210) hide show
  1. package/lib/Defaults/baileys-version.json +2 -2
  2. package/lib/Defaults/connection.js +51 -0
  3. package/lib/Defaults/constants.js +74 -0
  4. package/lib/Defaults/history.js +19 -0
  5. package/lib/Defaults/index.js +36 -142
  6. package/lib/Defaults/media.js +48 -0
  7. package/lib/Defaults/prefix.js +18 -0
  8. package/lib/Signal/Group/group-session-builder.js +10 -42
  9. package/lib/Signal/Group/group_cipher.js +9 -6
  10. package/lib/Signal/Group/index.js +39 -53
  11. package/lib/Signal/Group/keyhelper.js +8 -41
  12. package/lib/Signal/Group/sender-chain-key.js +5 -18
  13. package/lib/Signal/Group/sender-key-distribution-message.js +7 -7
  14. package/lib/Signal/Group/sender-key-message.js +12 -8
  15. package/lib/Signal/Group/sender-key-record.js +7 -16
  16. package/lib/Signal/Group/sender-key-state.js +15 -61
  17. package/lib/Signal/Group/sender-message-key.js +2 -2
  18. package/lib/Signal/libsignal.js +237 -177
  19. package/lib/Signal/lid-mapping.js +128 -71
  20. package/lib/Socket/Client/types.js +2 -2
  21. package/lib/Socket/Client/websocket.js +25 -16
  22. package/lib/Socket/business.js +46 -33
  23. package/lib/Socket/chats.js +286 -170
  24. package/lib/Socket/community.js +215 -77
  25. package/lib/Socket/groups.js +77 -61
  26. package/lib/Socket/index.js +4 -4
  27. package/lib/Socket/messages-recv.js +629 -457
  28. package/lib/Socket/messages-send.js +645 -656
  29. package/lib/Socket/mex.js +61 -0
  30. package/lib/Socket/newsletter.js +166 -245
  31. package/lib/Socket/socket.js +396 -170
  32. package/lib/Store/index.js +27 -11
  33. package/lib/Store/make-cache-manager-store.js +14 -15
  34. package/lib/Store/make-in-memory-store.js +28 -24
  35. package/lib/Types/LabelAssociation.js +2 -2
  36. package/lib/Types/Message.js +6 -6
  37. package/lib/Types/MexUpdates.js +5 -5
  38. package/lib/Types/Newsletter.js +32 -25
  39. package/lib/Types/State.js +4 -4
  40. package/lib/Types/index.js +28 -12
  41. package/lib/Utils/auth-utils.js +212 -375
  42. package/lib/Utils/baileys-event-stream.js +68 -69
  43. package/lib/Utils/browser-utils.js +43 -0
  44. package/lib/Utils/business.js +63 -53
  45. package/lib/Utils/chat-utils.js +241 -106
  46. package/lib/Utils/crypto.js +25 -45
  47. package/lib/Utils/decode-wa-message.js +361 -311
  48. package/lib/Utils/event-buffer.js +97 -42
  49. package/lib/Utils/generics.js +90 -207
  50. package/lib/Utils/history.js +29 -27
  51. package/lib/Utils/index.js +28 -14
  52. package/lib/Utils/link-preview.js +24 -62
  53. package/lib/Utils/logger.js +5 -5
  54. package/lib/Utils/lt-hash.js +29 -23
  55. package/lib/Utils/make-mutex.js +26 -28
  56. package/lib/Utils/message-retry-manager.js +55 -7
  57. package/lib/Utils/messages-media.js +434 -247
  58. package/lib/Utils/messages.js +963 -917
  59. package/lib/Utils/noise-handler.js +60 -20
  60. package/lib/Utils/pre-key-manager.js +126 -0
  61. package/lib/Utils/process-message.js +216 -141
  62. package/lib/Utils/signal.js +75 -37
  63. package/lib/Utils/use-multi-file-auth-state.js +18 -22
  64. package/lib/Utils/validate-connection.js +96 -66
  65. package/lib/WABinary/constants.js +1268 -1268
  66. package/lib/WABinary/decode.js +62 -34
  67. package/lib/WABinary/encode.js +57 -36
  68. package/lib/WABinary/generic-utils.js +4 -4
  69. package/lib/WABinary/index.js +27 -11
  70. package/lib/WABinary/jid-utils.js +58 -11
  71. package/lib/WAM/constants.js +19064 -11563
  72. package/lib/WAM/encode.js +71 -14
  73. package/lib/WAM/index.js +27 -11
  74. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.js +20 -16
  75. package/lib/WAUSync/Protocols/USyncContactProtocol.js +2 -2
  76. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +7 -4
  77. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +2 -2
  78. package/lib/WAUSync/Protocols/USyncLIDProtocol.js +0 -2
  79. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +2 -2
  80. package/lib/WAUSync/Protocols/index.js +27 -11
  81. package/lib/WAUSync/USyncQuery.js +51 -28
  82. package/lib/WAUSync/index.js +27 -11
  83. package/lib/index.js +60 -31
  84. package/package.json +12 -17
  85. package/WAProto/AICommon/AICommon.d.ts +0 -11702
  86. package/WAProto/Adv/Adv.d.ts +0 -643
  87. package/WAProto/BotMetadata/BotMetadata.d.ts +0 -5654
  88. package/WAProto/Cert/Cert.d.ts +0 -613
  89. package/WAProto/ChatLockSettings/ChatLockSettings.d.ts +0 -476
  90. package/WAProto/CompanionReg/CompanionReg.d.ts +0 -1361
  91. package/WAProto/DeviceCapabilities/DeviceCapabilities.d.ts +0 -577
  92. package/WAProto/E2E/E2E.d.ts +0 -41724
  93. package/WAProto/Ephemeral/Ephemeral.d.ts +0 -114
  94. package/WAProto/HistorySync/HistorySync.d.ts +0 -51700
  95. package/WAProto/LidMigrationSyncPayload/LidMigrationSyncPayload.d.ts +0 -229
  96. package/WAProto/MdStorageChatRowOpaqueData/MdStorageChatRowOpaqueData.d.ts +0 -583
  97. package/WAProto/MdStorageMsgRowOpaqueData/MdStorageMsgRowOpaqueData.d.ts +0 -42897
  98. package/WAProto/MmsRetry/MmsRetry.d.ts +0 -243
  99. package/WAProto/Protocol/Protocol.d.ts +0 -270
  100. package/WAProto/Reporting/Reporting.d.ts +0 -371
  101. package/WAProto/ServerSync/ServerSync.d.ts +0 -1285
  102. package/WAProto/SignalLocalStorageProtocol/SignalLocalStorageProtocol.d.ts +0 -1868
  103. package/WAProto/SignalWhisperTextProtocol/SignalWhisperTextProtocol.d.ts +0 -767
  104. package/WAProto/StatusAttributions/StatusAttributions.d.ts +0 -1027
  105. package/WAProto/SyncAction/SyncAction.d.ts +0 -11193
  106. package/WAProto/UserPassword/UserPassword.d.ts +0 -363
  107. package/WAProto/VnameCert/VnameCert.d.ts +0 -821
  108. package/WAProto/Wa6/Wa6.d.ts +0 -2128
  109. package/WAProto/Web/Web.d.ts +0 -46383
  110. package/WAProto/index.d.ts +0 -55
  111. package/lib/Defaults/index.d.ts +0 -77
  112. package/lib/Signal/Group/ciphertext-message.d.ts +0 -9
  113. package/lib/Signal/Group/group-session-builder.d.ts +0 -17
  114. package/lib/Signal/Group/group_cipher.d.ts +0 -19
  115. package/lib/Signal/Group/index.d.ts +0 -11
  116. package/lib/Signal/Group/keyhelper.d.ts +0 -16
  117. package/lib/Signal/Group/sender-chain-key.d.ts +0 -14
  118. package/lib/Signal/Group/sender-key-distribution-message.d.ts +0 -17
  119. package/lib/Signal/Group/sender-key-message.d.ts +0 -19
  120. package/lib/Signal/Group/sender-key-name.d.ts +0 -19
  121. package/lib/Signal/Group/sender-key-record.d.ts +0 -32
  122. package/lib/Signal/Group/sender-key-state.d.ts +0 -44
  123. package/lib/Signal/Group/sender-message-key.d.ts +0 -11
  124. package/lib/Signal/libsignal.d.ts +0 -8
  125. package/lib/Signal/lid-mapping.d.ts +0 -28
  126. package/lib/Socket/Client/index.d.ts +0 -2
  127. package/lib/Socket/Client/types.d.ts +0 -16
  128. package/lib/Socket/Client/websocket.d.ts +0 -13
  129. package/lib/Socket/business.d.ts +0 -187
  130. package/lib/Socket/chats.d.ts +0 -97
  131. package/lib/Socket/community.d.ts +0 -129
  132. package/lib/Socket/groups.d.ts +0 -129
  133. package/lib/Socket/index.d.ts +0 -191
  134. package/lib/Socket/messages-recv.d.ts +0 -174
  135. package/lib/Socket/messages-send.d.ts +0 -165
  136. package/lib/Socket/newsletter.d.ts +0 -145
  137. package/lib/Socket/socket.d.ts +0 -45
  138. package/lib/Socket/usync.d.ts +0 -37
  139. package/lib/Socket/usync.js +0 -83
  140. package/lib/Store/index.d.ts +0 -4
  141. package/lib/Store/make-cache-manager-store.d.ts +0 -14
  142. package/lib/Store/make-in-memory-store.d.ts +0 -123
  143. package/lib/Store/make-ordered-dictionary.d.ts +0 -12
  144. package/lib/Store/object-repository.d.ts +0 -10
  145. package/lib/Types/Auth.d.ts +0 -121
  146. package/lib/Types/Bussiness.d.ts +0 -28
  147. package/lib/Types/Call.d.ts +0 -14
  148. package/lib/Types/Chat.d.ts +0 -143
  149. package/lib/Types/Contact.d.ts +0 -23
  150. package/lib/Types/Events.d.ts +0 -226
  151. package/lib/Types/GroupMetadata.d.ts +0 -66
  152. package/lib/Types/Label.d.ts +0 -48
  153. package/lib/Types/LabelAssociation.d.ts +0 -35
  154. package/lib/Types/Message.d.ts +0 -484
  155. package/lib/Types/MexUpdates.d.ts +0 -9
  156. package/lib/Types/Newsletter.d.ts +0 -109
  157. package/lib/Types/Product.d.ts +0 -92
  158. package/lib/Types/Signal.d.ts +0 -98
  159. package/lib/Types/Socket.d.ts +0 -141
  160. package/lib/Types/State.d.ts +0 -41
  161. package/lib/Types/USync.d.ts +0 -26
  162. package/lib/Types/index.d.ts +0 -80
  163. package/lib/Utils/auth-utils.d.ts +0 -21
  164. package/lib/Utils/baileys-event-stream.d.ts +0 -18
  165. package/lib/Utils/business.d.ts +0 -29
  166. package/lib/Utils/chat-utils.d.ts +0 -82
  167. package/lib/Utils/crypto.d.ts +0 -56
  168. package/lib/Utils/decode-wa-message.d.ts +0 -53
  169. package/lib/Utils/event-buffer.d.ts +0 -39
  170. package/lib/Utils/generics.d.ts +0 -117
  171. package/lib/Utils/history.d.ts +0 -23
  172. package/lib/Utils/index.d.ts +0 -20
  173. package/lib/Utils/link-preview.d.ts +0 -23
  174. package/lib/Utils/logger.d.ts +0 -13
  175. package/lib/Utils/lt-hash.d.ts +0 -14
  176. package/lib/Utils/make-mutex.d.ts +0 -9
  177. package/lib/Utils/message-retry-manager.d.ts +0 -88
  178. package/lib/Utils/messages-media.d.ts +0 -135
  179. package/lib/Utils/messages.d.ts +0 -105
  180. package/lib/Utils/noise-handler.d.ts +0 -20
  181. package/lib/Utils/process-message.d.ts +0 -49
  182. package/lib/Utils/signal.d.ts +0 -42
  183. package/lib/Utils/use-mongo-file-auth-state.d.ts +0 -6
  184. package/lib/Utils/use-mongo-file-auth-state.js +0 -84
  185. package/lib/Utils/use-multi-file-auth-state.d.ts +0 -13
  186. package/lib/Utils/use-single-file-auth-state.d.ts +0 -13
  187. package/lib/Utils/use-single-file-auth-state.js +0 -80
  188. package/lib/Utils/validate-connection.d.ts +0 -13
  189. package/lib/WABinary/constants.d.ts +0 -30
  190. package/lib/WABinary/decode.d.ts +0 -9
  191. package/lib/WABinary/encode.d.ts +0 -3
  192. package/lib/WABinary/generic-utils.d.ts +0 -28
  193. package/lib/WABinary/index.d.ts +0 -5
  194. package/lib/WABinary/jid-utils.d.ts +0 -58
  195. package/lib/WABinary/types.d.ts +0 -22
  196. package/lib/WAM/BinaryInfo.d.ts +0 -16
  197. package/lib/WAM/constants.d.ts +0 -47
  198. package/lib/WAM/encode.d.ts +0 -3
  199. package/lib/WAM/index.d.ts +0 -3
  200. package/lib/WAUSync/Protocols/USyncBotProfileProtocol.d.ts +0 -28
  201. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +0 -10
  202. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +0 -26
  203. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +0 -14
  204. package/lib/WAUSync/Protocols/USyncLIDProtocol.d.ts +0 -10
  205. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +0 -14
  206. package/lib/WAUSync/Protocols/index.d.ts +0 -6
  207. package/lib/WAUSync/USyncQuery.d.ts +0 -31
  208. package/lib/WAUSync/USyncUser.d.ts +0 -12
  209. package/lib/WAUSync/index.d.ts +0 -3
  210. package/lib/index.d.ts +0 -13
@@ -1,83 +0,0 @@
1
- "use strict"
2
-
3
- Object.defineProperty(exports, "__esModule", { value: true })
4
-
5
- const boom_1 = require("@hapi/boom")
6
- const WABinary_1 = require("../WABinary")
7
- const socket_1 = require("./socket")
8
-
9
- const makeUSyncSocket = (config) => {
10
- const suki = socket_1.makeSocket(config)
11
- const { generateMessageTag, query, } = suki
12
-
13
- const executeUSyncQuery = async (usyncQuery) => {
14
- if (usyncQuery.protocols.length === 0) {
15
- throw new boom_1.Boom('USyncQuery must have at least one protocol')
16
- }
17
-
18
- // todo: validate users, throw WARNING on no valid users
19
- // variable below has only validated users
20
- const validUsers = usyncQuery.users
21
-
22
- const userNodes = validUsers.map((user) => {
23
- return {
24
- tag: 'user',
25
- attrs: {
26
- jid: !user.phone ? user.id : undefined,
27
- },
28
- content: usyncQuery.protocols
29
- .map((a) => a.getUserElement(user))
30
- .filter(a => a !== null)
31
- }
32
- })
33
-
34
- const listNode = {
35
- tag: 'list',
36
- attrs: {},
37
- content: userNodes
38
- }
39
-
40
- const queryNode = {
41
- tag: 'query',
42
- attrs: {},
43
- content: usyncQuery.protocols.map((a) => a.getQueryElement())
44
- }
45
-
46
- const iq = {
47
- tag: 'iq',
48
- attrs: {
49
- to: WABinary_1.S_WHATSAPP_NET,
50
- type: 'get',
51
- xmlns: 'usync',
52
- },
53
- content: [
54
- {
55
- tag: 'usync',
56
- attrs: {
57
- context: usyncQuery.context,
58
- mode: usyncQuery.mode,
59
- sid: generateMessageTag(),
60
- last: 'true',
61
- index: '0',
62
- },
63
- content: [
64
- queryNode,
65
- listNode
66
- ]
67
- }
68
- ],
69
- }
70
-
71
- const result = await query(iq)
72
-
73
- return usyncQuery.parseUSyncQueryResult(result)
74
- }
75
- return {
76
- ...suki,
77
- executeUSyncQuery
78
- }
79
- }
80
-
81
- module.exports = {
82
- makeUSyncSocket
83
- }
@@ -1,4 +0,0 @@
1
- export * from './make-cache-manager-store'
2
- export * from './make-in-memory-store'
3
- export * from './make-ordered-dictionary'
4
- export * from './object-repository'
@@ -1,14 +0,0 @@
1
- import { Store } from 'cache-manager'
2
- import { AuthenticationCreds } from '../Types'
3
-
4
- export declare const makeCacheManagerAuthState: (store: Store, sessionKey: string) => Promise<{
5
- clearState: () => Promise<void>
6
- saveCreds: () => Promise<void>
7
- state: {
8
- creds: AuthenticationCreds
9
- keys: {
10
- get: (type: string, ids: string[]) => Promise<{}>
11
- set: (data: any) => Promise<void>
12
- }
13
- }
14
- }>
@@ -1,123 +0,0 @@
1
- import type KeyedDB from '@adiwajshing/keyed-db'
2
- import type { Comparable } from '@adiwajshing/keyed-db/lib/Types'
3
- import type { Logger } from 'pino'
4
- import { proto } from '../../WAProto'
5
- import type makeMDSocket from '../Socket'
6
- import type { BaileysEventEmitter, Chat, ConnectionState, Contact, GroupMetadata, PresenceData, WAMessage, WAMessageCursor, WAMessageKey } from '../Types'
7
- import { Label } from '../Types/Label'
8
- import { LabelAssociation } from '../Types/LabelAssociation'
9
- import { ObjectRepository } from './object-repository'
10
-
11
- type WASocket = ReturnType<typeof makeMDSocket>
12
-
13
- export declare const waChatKey: (pin: boolean) => {
14
- key: (c: Chat) => string
15
- compare: (k1: string, k2: string) => number
16
- }
17
-
18
- export declare const waMessageID: (m: WAMessage) => string
19
-
20
- export declare const waLabelAssociationKey: Comparable<LabelAssociation, string>
21
-
22
- export type BaileysInMemoryStoreConfig = {
23
- chatKey?: Comparable<Chat, string>
24
- labelAssociationKey?: Comparable<LabelAssociation, string>
25
- logger?: Logger
26
- socket?: WASocket
27
- }
28
-
29
- export declare const makeInMemoryStore: (config: BaileysInMemoryStoreConfig) => {
30
- chats: KeyedDB<Chat, string>
31
- contacts: {
32
- [_: string]: Contact
33
- }
34
- messages: {
35
- [_: string]: {
36
- array: proto.IWebMessageInfo[]
37
- get: (id: string) => proto.IWebMessageInfo | undefined
38
- upsert: (item: proto.IWebMessageInfo, mode: "append" | "prepend") => void
39
- update: (item: proto.IWebMessageInfo) => boolean
40
- remove: (item: proto.IWebMessageInfo) => boolean
41
- updateAssign: (id: string, update: Partial<proto.IWebMessageInfo>) => boolean
42
- clear: () => void
43
- filter: (contain: (item: proto.IWebMessageInfo) => boolean) => void
44
- toJSON: () => proto.IWebMessageInfo[]
45
- fromJSON: (newItems: proto.IWebMessageInfo[]) => void
46
- }
47
- }
48
- groupMetadata: {
49
- [_: string]: GroupMetadata
50
- }
51
- state: ConnectionState
52
- presences: {
53
- [id: string]: {
54
- [participant: string]: PresenceData
55
- }
56
- }
57
- labels: ObjectRepository<Label>
58
- labelAssociations: KeyedDB<LabelAssociation, string>
59
- bind: (ev: BaileysEventEmitter) => void
60
- /** loads messages from the store, if not found -- uses the legacy connection */
61
- loadMessages: (jid: string, count: number, cursor: WAMessageCursor) => Promise<proto.IWebMessageInfo[]>
62
- /**
63
- * Get all available labels for profile
64
- *
65
- * Keep in mind that the list is formed from predefined tags and tags
66
- * that were "caught" during their editing.
67
- */
68
- getLabels: () => ObjectRepository<Label>
69
- /**
70
- * Get labels for chat
71
- *
72
- * @returns Label IDs
73
- **/
74
- getChatLabels: (chatId: string) => LabelAssociation[]
75
- /**
76
- * Get labels for message
77
- *
78
- * @returns Label IDs
79
- **/
80
- getMessageLabels: (messageId: string) => string[]
81
- loadMessage: (jid: string, id: string) => Promise<proto.IWebMessageInfo | undefined>
82
- mostRecentMessage: (jid: string) => Promise<proto.IWebMessageInfo>
83
- fetchImageUrl: (jid: string, suki: WASocket | undefined) => Promise<string | null | undefined>
84
- fetchGroupMetadata: (jid: string, suki: WASocket | undefined) => Promise<GroupMetadata>
85
- fetchMessageReceipts: ({ remoteJid, id }: WAMessageKey) => Promise<proto.IUserReceipt[] | null | undefined>
86
- toJSON: () => {
87
- chats: KeyedDB<Chat, string>
88
- contacts: {
89
- [_: string]: Contact
90
- }
91
- messages: {
92
- [_: string]: {
93
- array: proto.IWebMessageInfo[]
94
- get: (id: string) => proto.IWebMessageInfo | undefined
95
- upsert: (item: proto.IWebMessageInfo, mode: "append" | "prepend") => void
96
- update: (item: proto.IWebMessageInfo) => boolean
97
- remove: (item: proto.IWebMessageInfo) => boolean
98
- updateAssign: (id: string, update: Partial<proto.IWebMessageInfo>) => boolean
99
- clear: () => void
100
- filter: (contain: (item: proto.IWebMessageInfo) => boolean) => void
101
- toJSON: () => proto.IWebMessageInfo[]
102
- fromJSON: (newItems: proto.IWebMessageInfo[]) => void
103
- }
104
- }
105
- labels: ObjectRepository<Label>
106
- labelAssociations: KeyedDB<LabelAssociation, string>
107
- }
108
- fromJSON: (json: {
109
- chats: Chat[]
110
- contacts: {
111
- [id: string]: Contact
112
- }
113
- messages: {
114
- [id: string]: proto.IWebMessageInfo[]
115
- }
116
- labels: {
117
- [labelId: string]: Label
118
- }
119
- labelAssociations: LabelAssociation[]
120
- }) => void
121
- writeToFile: (path: string) => void
122
- readFromFile: (path: string) => void
123
- }
@@ -1,12 +0,0 @@
1
- export declare function makeOrderedDictionary<T>(idGetter: (item: T) => string): {
2
- array: T[]
3
- get: (id: string) => T | undefined
4
- upsert: (item: T, mode: 'append' | 'prepend') => void
5
- update: (item: T) => boolean
6
- remove: (item: T) => boolean
7
- updateAssign: (id: string, update: Partial<T>) => boolean
8
- clear: () => void
9
- filter: (contain: (item: T) => boolean) => void
10
- toJSON: () => T[]
11
- fromJSON: (newItems: T[]) => void
12
- }
@@ -1,10 +0,0 @@
1
- export declare class ObjectRepository<T extends object> {
2
- readonly entityMap: Map<string, T>
3
- constructor(entities?: Record<string, T>)
4
- findById(id: string): T | undefined
5
- findAll(): T[]
6
- upsertById(id: string, entity: T): Map<string, T>
7
- deleteById(id: string): boolean
8
- count(): number
9
- toJSON(): T[]
10
- }
@@ -1,121 +0,0 @@
1
- import type { proto } from '../../WAProto'
2
- import type { Contact } from './Contact'
3
- import type { MinimalMessage } from './Message'
4
-
5
- export type KeyPair = {
6
- public: Uint8Array
7
- private: Uint8Array
8
- }
9
-
10
- export type SignedKeyPair = {
11
- keyPair: KeyPair
12
- signature: Uint8Array
13
- keyId: number
14
- timestampS?: number
15
- }
16
-
17
- export type ProtocolAddress = {
18
- name: string
19
- deviceId: number
20
- }
21
-
22
- export type SignalIdentity = {
23
- identifier: ProtocolAddress
24
- identifierKey: Uint8Array
25
- }
26
-
27
- export type LTHashState = {
28
- version: number
29
- hash: Buffer
30
- indexValueMap: {
31
- [indexMacBase64: string]: {
32
- valueMac: Uint8Array | Buffer
33
- }
34
- }
35
- }
36
-
37
- export type SignalCreds = {
38
- readonly signedIdentityKey: KeyPair
39
- readonly signedPreKey: SignedKeyPair
40
- readonly registrationId: number
41
- }
42
-
43
- export type AccountSettings = {
44
- /** unarchive chats when a new message is received */
45
- unarchiveChats: boolean
46
- /** the default mode to start new conversations with */
47
- defaultDisappearingMode?: Pick<proto.IConversation, 'ephemeralExpiration' | 'ephemeralSettingTimestamp'>
48
- }
49
-
50
- export type AuthenticationCreds = SignalCreds & {
51
- readonly noiseKey: KeyPair
52
- readonly pairingEphemeralKeyPair: KeyPair
53
- advSecretKey: string
54
- me?: Contact
55
- account?: proto.IADVSignedDeviceIdentity
56
- signalIdentities?: SignalIdentity[]
57
- myAppStateKeyId?: string
58
- firstUnuploadedPreKeyId: number
59
- nextPreKeyId: number
60
- lastAccountSyncTimestamp?: number
61
- platform?: string
62
- processedHistoryMessages: MinimalMessage[]
63
- /** number of times history & app state has been synced */
64
- accountSyncCounter: number
65
- accountSettings: AccountSettings
66
- registered: boolean
67
- pairingCode: string | undefined
68
- lastPropHash: string | undefined
69
- routingInfo: Buffer | undefined
70
- }
71
-
72
- export type SignalDataTypeMap = {
73
- 'pre-key': KeyPair
74
- 'session': Uint8Array
75
- 'sender-key': Uint8Array
76
- 'sender-key-memory': {
77
- [jid: string]: boolean
78
- }
79
- 'app-state-sync-key': proto.Message.IAppStateSyncKeyData
80
- 'app-state-sync-version': LTHashState
81
- 'lid-mapping': string
82
- }
83
-
84
- export type SignalDataSet = {
85
- [T in keyof SignalDataTypeMap]?: {
86
- [id: string]: SignalDataTypeMap[T] | null
87
- }
88
- }
89
-
90
- type Awaitable<T> = T | Promise<T>
91
-
92
- export type SignalKeyStore = {
93
- get<T extends keyof SignalDataTypeMap>(type: T, ids: string[]): Awaitable<{
94
- [id: string]: SignalDataTypeMap[T]
95
- }>
96
- set(data: SignalDataSet): Awaitable<void>
97
- /** clear all the data in the store */
98
- clear?(): Awaitable<void>
99
- }
100
-
101
- export type SignalKeyStoreWithTransaction = SignalKeyStore & {
102
- isInTransaction: () => boolean
103
- transaction<T>(exec: () => Promise<T>, key: string): Promise<T>
104
- }
105
-
106
- export type TransactionCapabilityOptions = {
107
- maxCommitRetries: number
108
- delayBetweenTriesMs: number
109
- }
110
-
111
- export type SignalAuthState = {
112
- creds: SignalCreds
113
- keys: SignalKeyStore | SignalKeyStoreWithTransaction
114
- }
115
-
116
- export type AuthenticationState = {
117
- creds: AuthenticationCreds
118
- keys: SignalKeyStore
119
- }
120
-
121
- export {}
@@ -1,28 +0,0 @@
1
- import type { proto } from '../../WAProto'
2
-
3
- export type DayOfWeekBussines = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
4
-
5
- export type HoursDay = {
6
- day: DayOfWeekBussines
7
- mode: 'specific_hours'
8
- openTimeInMinutes: string
9
- closeTimeInMinutes: string
10
- } | {
11
- day: DayOfWeekBussines;
12
- mode: 'open_24h' | 'appointment_only'
13
- }
14
-
15
- export type UpdateBussinesProfileProps = {
16
- address?: string;
17
- websites?: string[]
18
- email?: string;
19
- description?: string
20
- hours?: {
21
- timezone: string
22
- days: HoursDay[]
23
- }
24
- }
25
-
26
- export type QuickReplyAction = proto.SyncActionValue.IQuickReplyAction & {
27
- timestamp?: string
28
- }
@@ -1,14 +0,0 @@
1
- export type WACallUpdateType = 'offer' | 'ringing' | 'timeout' | 'reject' | 'accept' | 'terminate'
2
-
3
- export type WACallEvent = {
4
- chatId: string
5
- from: string
6
- isGroup?: boolean
7
- groupJid?: string
8
- id: string
9
- date: Date
10
- isVideo?: boolean
11
- status: WACallUpdateType
12
- offline: boolean
13
- latencyMs?: number
14
- }
@@ -1,143 +0,0 @@
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
-
11
- /** privacy settings in WhatsApp Web */
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
-
36
- export interface PresenceData {
37
- lastKnownPresence: WAPresence
38
- lastSeen?: number
39
- }
40
-
41
- export type ChatMutation = {
42
- syncAction: proto.ISyncActionData
43
- index: string[]
44
- }
45
-
46
- export type WAPatchCreate = {
47
- syncAction: proto.ISyncActionValue
48
- index: string[]
49
- type: WAPatchName
50
- apiVersion: number
51
- operation: proto.SyncdMutation.SyncdOperation
52
- }
53
-
54
- export type Chat = proto.IConversation & {
55
- /** unix timestamp of when the last message was received in the chat */
56
- lastMessageRecvTimestamp?: number
57
- }
58
-
59
- export type ChatUpdate = Partial<Chat & {
60
- /**
61
- * if specified in the update,
62
- * the EV buffer will check if the condition gets fulfilled before applying the update
63
- * Right now, used to determine when to release an app state sync event
64
- *
65
- * @returns true, if the update should be applied
66
- * false if it can be discarded
67
- * undefined if the condition is not yet fulfilled
68
- * */
69
- conditional: (bufferedData: BufferedEventData) => boolean | undefined
70
- /** last update time */
71
- timestamp?: number
72
- }>
73
-
74
- /**
75
- * the last messages in a chat, sorted reverse-chronologically. That is, the latest message should be first in the chat
76
- * for MD modifications, the last message in the array (i.e. the earlist message) must be the last message recv in the chat
77
- * */
78
- export type LastMessageList = MinimalMessage[] | proto.SyncActionValue.ISyncActionMessageRange
79
-
80
- export type ChatModification = {
81
- archive: boolean
82
- lastMessages: LastMessageList
83
- } | {
84
- contact: ContactAction | null
85
- } | {
86
- pushNameSetting: string
87
- } | {
88
- pin: boolean
89
- } | {
90
- /** mute for duration, or provide timestamp of mute to remove*/
91
- mute: number | null
92
- } | {
93
- clear: boolean
94
- } | {
95
- deleteForMe: {
96
- deleteMedia: boolean
97
- key: WAMessageKey
98
- timestamp: number
99
- }
100
- } | {
101
- star: {
102
- messages: {
103
- id: string
104
- fromMe?: boolean
105
- }[]
106
- star: boolean
107
- }
108
- } | {
109
- markRead: boolean
110
- lastMessages: LastMessageList
111
- } | {
112
- delete: true
113
- lastMessages: LastMessageList
114
- } | {
115
- contact: proto.SyncActionValue.IContactAction | null
116
- } | {
117
- disableLinkPreviews: proto.SyncActionValue.IPrivacySettingDisableLinkPreviewsAction
118
- } | {
119
- addLabel: LabelActionBody
120
- } | {
121
- addChatLabel: ChatLabelAssociationActionBody
122
- } | {
123
- removeChatLabel: ChatLabelAssociationActionBody
124
- } | {
125
- addMessageLabel: MessageLabelAssociationActionBody
126
- } | {
127
- removeMessageLabel: MessageLabelAssociationActionBody
128
- } | {
129
- quickReply: QuickReplyAction
130
- }
131
-
132
- export type InitialReceivedChatsState = {
133
- [jid: string]: {
134
- /** the last message received from the other party */
135
- lastMsgRecvTimestamp?: number
136
- /** the absolute last message in the chat */
137
- lastMsgTimestamp: number
138
- }
139
- }
140
-
141
- export type InitialAppStateSyncOptions = {
142
- accountSettings: AccountSettings
143
- }
@@ -1,23 +0,0 @@
1
- export interface Contact {
2
- /** ID either in lid or jid format (preferred) **/
3
- id: string
4
- /** ID in LID format (@lid) **/
5
- lid?: string
6
- /** ID in PN format (@s.whatsapp.net) **/
7
- phoneNumber?: string
8
- /** name of the contact, you have saved on your WA */
9
- name?: string
10
- /** name of the contact, the contact has set on their own on WA */
11
- notify?: string
12
- /** I have no idea */
13
- verifiedName?: string
14
- /**
15
- * Url of the profile picture of the contact
16
- *
17
- * 'changed' => if the profile picture has changed
18
- * null => if the profile picture has not been set (default profile picture)
19
- * any other string => url of the profile picture
20
- */
21
- imgUrl?: string | null
22
- status?: string
23
- }