gifted-baileys 1.5.5 → 1.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -1642
- package/WAProto/WAProto.proto +969 -88
- package/WAProto/index.d.ts +13199 -1260
- package/WAProto/index.js +124901 -74525
- package/lib/Defaults/baileys-version.json +3 -0
- package/lib/Defaults/index.d.ts +284 -0
- package/{src → lib}/Defaults/index.js +7 -14
- package/lib/Signal/libsignal.d.ts +3 -0
- package/lib/Signal/libsignal.js +161 -0
- package/lib/Socket/Client/abstract-socket-client.d.ts +15 -0
- package/lib/Socket/Client/index.d.ts +2 -0
- package/{src → lib}/Socket/Client/index.js +2 -3
- package/lib/Socket/Client/mobile-socket-client.d.ts +12 -0
- package/lib/Socket/Client/mobile-socket-client.js +65 -0
- package/lib/Socket/Client/types.d.ts +17 -0
- package/lib/Socket/Client/types.js +13 -0
- package/lib/Socket/Client/websocket.d.ts +12 -0
- package/lib/Socket/Client/websocket.js +62 -0
- package/lib/Socket/business.d.ts +170 -0
- package/{src → lib}/Socket/business.js +28 -33
- package/lib/Socket/chats.d.ts +81 -0
- package/{src → lib}/Socket/chats.js +174 -176
- package/lib/Socket/groups.d.ts +115 -0
- package/{src → lib}/Socket/groups.js +80 -68
- package/lib/Socket/index.d.ts +172 -0
- package/{src → lib}/Socket/index.js +4 -1
- package/lib/Socket/messages-recv.d.ts +158 -0
- package/{src → lib}/Socket/messages-recv.js +378 -211
- package/lib/Socket/messages-send.d.ts +155 -0
- package/{src → lib}/Socket/messages-send.js +452 -177
- package/lib/Socket/newsletter.d.ts +132 -0
- package/{src → lib}/Socket/newsletter.js +107 -98
- package/lib/Socket/registration.d.ts +264 -0
- package/{src → lib}/Socket/registration.js +56 -48
- package/lib/Socket/socket.d.ts +44 -0
- package/{src → lib}/Socket/socket.js +77 -77
- package/lib/Socket/usync.d.ts +37 -0
- package/lib/Socket/usync.js +70 -0
- package/lib/Store/index.d.ts +3 -0
- package/lib/Store/make-cache-manager-store.d.ts +14 -0
- package/{src → lib}/Store/make-cache-manager-store.js +25 -34
- package/lib/Store/make-in-memory-store.d.ts +118 -0
- package/{src → lib}/Store/make-in-memory-store.js +36 -32
- package/lib/Store/make-ordered-dictionary.d.ts +13 -0
- package/lib/Store/object-repository.d.ts +10 -0
- package/{src → lib}/Store/object-repository.js +1 -1
- package/lib/Types/Auth.d.ts +109 -0
- package/lib/Types/Call.d.ts +13 -0
- package/lib/Types/Chat.d.ts +107 -0
- package/{src/Types/Contact.ts → lib/Types/Contact.d.ts} +8 -9
- package/lib/Types/Events.d.ts +172 -0
- package/lib/Types/GroupMetadata.d.ts +56 -0
- package/lib/Types/Label.d.ts +46 -0
- package/{src/Types/LabelAssociation.ts → lib/Types/LabelAssociation.d.ts} +16 -22
- package/lib/Types/Message.d.ts +433 -0
- package/lib/Types/Newsletter.d.ts +92 -0
- package/lib/Types/Product.d.ts +78 -0
- package/lib/Types/Signal.d.ts +57 -0
- package/{src/Types/Socket.ts → lib/Types/Socket.d.ts} +61 -68
- package/lib/Types/State.d.ts +27 -0
- package/lib/Types/USync.d.ts +25 -0
- package/lib/Types/index.d.ts +66 -0
- package/lib/Utils/auth-utils.d.ts +18 -0
- package/{src → lib}/Utils/auth-utils.js +73 -90
- package/lib/Utils/baileys-event-stream.d.ts +16 -0
- package/lib/Utils/baileys-event-stream.js +63 -0
- package/lib/Utils/business.d.ts +22 -0
- package/{src → lib}/Utils/business.js +15 -43
- package/lib/Utils/chat-utils.d.ts +70 -0
- package/{src → lib}/Utils/chat-utils.js +87 -94
- package/lib/Utils/crypto.d.ts +40 -0
- package/{src → lib}/Utils/crypto.js +4 -2
- package/lib/Utils/decode-wa-message.d.ts +36 -0
- package/lib/Utils/decode-wa-message.js +226 -0
- package/lib/Utils/event-buffer.d.ts +35 -0
- package/{src → lib}/Utils/event-buffer.js +4 -13
- package/lib/Utils/generics.d.ts +88 -0
- package/{src → lib}/Utils/generics.js +67 -86
- package/lib/Utils/history.d.ts +19 -0
- package/{src → lib}/Utils/history.js +13 -39
- package/lib/Utils/index.d.ts +17 -0
- package/lib/Utils/link-preview.d.ts +21 -0
- package/{src → lib}/Utils/link-preview.js +17 -54
- package/lib/Utils/logger.d.ts +2 -0
- package/lib/Utils/lt-hash.d.ts +12 -0
- package/lib/Utils/make-mutex.d.ts +7 -0
- package/{src → lib}/Utils/make-mutex.js +4 -13
- package/lib/Utils/messages-media.d.ts +113 -0
- package/{src → lib}/Utils/messages-media.js +193 -255
- package/lib/Utils/messages.d.ts +77 -0
- package/{src → lib}/Utils/messages.js +588 -118
- package/lib/Utils/noise-handler.d.ts +20 -0
- package/lib/Utils/process-message.d.ts +41 -0
- package/{src → lib}/Utils/process-message.js +27 -30
- package/lib/Utils/signal.d.ts +33 -0
- package/{src → lib}/Utils/signal.js +25 -42
- package/lib/Utils/use-multi-file-auth-state.d.ts +12 -0
- package/{src → lib}/Utils/use-multi-file-auth-state.js +27 -28
- package/lib/Utils/validate-connection.d.ts +11 -0
- package/{src → lib}/Utils/validate-connection.js +40 -9
- package/lib/WABinary/constants.d.ts +27 -0
- package/lib/WABinary/decode.d.ts +6 -0
- package/lib/WABinary/encode.d.ts +2 -0
- package/{src → lib}/WABinary/encode.js +16 -10
- package/lib/WABinary/generic-utils.d.ts +14 -0
- package/lib/WABinary/index.d.ts +5 -0
- package/lib/WABinary/jid-utils.d.ts +31 -0
- package/lib/WABinary/types.d.ts +18 -0
- package/lib/WABinary/types.js +2 -0
- package/lib/WAM/BinaryInfo.d.ts +8 -0
- package/lib/WAM/constants.d.ts +38 -0
- package/lib/WAM/encode.d.ts +2 -0
- package/lib/WAM/index.d.ts +3 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +32 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +57 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +30 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +42 -0
- package/lib/WAUSync/Protocols/index.d.ts +4 -0
- package/lib/WAUSync/Protocols/index.js +20 -0
- package/lib/WAUSync/USyncQuery.d.ts +26 -0
- package/lib/WAUSync/USyncQuery.js +79 -0
- package/lib/WAUSync/USyncUser.d.ts +10 -0
- package/lib/WAUSync/USyncUser.js +22 -0
- package/lib/WAUSync/index.d.ts +3 -0
- package/lib/WAUSync/index.js +19 -0
- package/{src → lib}/index.js +1 -0
- package/package.json +26 -8
- package/LICENSE +0 -21
- package/src/Defaults/baileys-version.json +0 -3
- package/src/Defaults/index.ts +0 -131
- package/src/Signal/libsignal.js +0 -180
- package/src/Signal/libsignal.ts +0 -141
- package/src/Socket/Client/abstract-socket-client.ts +0 -19
- package/src/Socket/Client/index.ts +0 -3
- package/src/Socket/Client/mobile-socket-client.js +0 -78
- package/src/Socket/Client/mobile-socket-client.ts +0 -66
- package/src/Socket/Client/web-socket-client.js +0 -75
- package/src/Socket/Client/web-socket-client.ts +0 -57
- package/src/Socket/business.ts +0 -281
- package/src/Socket/chats.ts +0 -1030
- package/src/Socket/groups.ts +0 -356
- package/src/Socket/index.ts +0 -13
- package/src/Socket/messages-recv.ts +0 -985
- package/src/Socket/messages-send.ts +0 -871
- package/src/Socket/newsletter.ts +0 -282
- package/src/Socket/registration.ts +0 -250
- package/src/Socket/socket.ts +0 -777
- package/src/Store/index.ts +0 -3
- package/src/Store/make-cache-manager-store.ts +0 -100
- package/src/Store/make-in-memory-store.ts +0 -475
- package/src/Store/make-ordered-dictionary.ts +0 -86
- package/src/Store/object-repository.ts +0 -32
- package/src/Tests/test.app-state-sync.js +0 -204
- package/src/Tests/test.app-state-sync.ts +0 -207
- package/src/Tests/test.event-buffer.js +0 -270
- package/src/Tests/test.event-buffer.ts +0 -319
- package/src/Tests/test.key-store.js +0 -76
- package/src/Tests/test.key-store.ts +0 -92
- package/src/Tests/test.libsignal.js +0 -141
- package/src/Tests/test.libsignal.ts +0 -186
- package/src/Tests/test.media-download.js +0 -93
- package/src/Tests/test.media-download.ts +0 -76
- package/src/Tests/test.messages.js +0 -33
- package/src/Tests/test.messages.ts +0 -37
- package/src/Tests/utils.js +0 -34
- package/src/Tests/utils.ts +0 -36
- package/src/Types/Auth.ts +0 -113
- package/src/Types/Call.ts +0 -15
- package/src/Types/Chat.ts +0 -106
- package/src/Types/Events.ts +0 -93
- package/src/Types/GroupMetadata.ts +0 -53
- package/src/Types/Label.ts +0 -36
- package/src/Types/Message.ts +0 -288
- package/src/Types/Newsletter.ts +0 -98
- package/src/Types/Product.ts +0 -85
- package/src/Types/Signal.ts +0 -68
- package/src/Types/State.ts +0 -29
- package/src/Types/index.ts +0 -59
- package/src/Utils/auth-utils.ts +0 -222
- package/src/Utils/baileys-event-stream.js +0 -92
- package/src/Utils/baileys-event-stream.ts +0 -66
- package/src/Utils/business.ts +0 -275
- package/src/Utils/chat-utils.ts +0 -860
- package/src/Utils/crypto.ts +0 -131
- package/src/Utils/decode-wa-message.js +0 -211
- package/src/Utils/decode-wa-message.ts +0 -228
- package/src/Utils/event-buffer.ts +0 -613
- package/src/Utils/generics.ts +0 -434
- package/src/Utils/history.ts +0 -112
- package/src/Utils/index.ts +0 -17
- package/src/Utils/link-preview.ts +0 -122
- package/src/Utils/logger.ts +0 -3
- package/src/Utils/lt-hash.ts +0 -61
- package/src/Utils/make-mutex.ts +0 -44
- package/src/Utils/messages-media.ts +0 -847
- package/src/Utils/messages.ts +0 -956
- package/src/Utils/noise-handler.ts +0 -197
- package/src/Utils/process-message.ts +0 -414
- package/src/Utils/signal.ts +0 -177
- package/src/Utils/use-multi-file-auth-state.ts +0 -90
- package/src/Utils/validate-connection.ts +0 -238
- package/src/WABinary/constants.ts +0 -42
- package/src/WABinary/decode.ts +0 -265
- package/src/WABinary/encode.ts +0 -236
- package/src/WABinary/generic-utils.ts +0 -121
- package/src/WABinary/index.ts +0 -5
- package/src/WABinary/jid-utils.ts +0 -68
- package/src/WABinary/types.ts +0 -17
- package/src/WAM/BinaryInfo.ts +0 -12
- package/src/WAM/constants.ts +0 -15382
- package/src/WAM/encode.ts +0 -174
- package/src/WAM/index.ts +0 -3
- package/src/gifted +0 -1
- package/src/index.ts +0 -13
- /package/{src → lib}/Defaults/phonenumber-mcc.json +0 -0
- /package/{src → lib}/Socket/Client/abstract-socket-client.js +0 -0
- /package/{src → lib}/Store/index.js +0 -0
- /package/{src → lib}/Store/make-ordered-dictionary.js +0 -0
- /package/{src → lib}/Types/Auth.js +0 -0
- /package/{src → lib}/Types/Call.js +0 -0
- /package/{src → lib}/Types/Chat.js +0 -0
- /package/{src → lib}/Types/Contact.js +0 -0
- /package/{src → lib}/Types/Events.js +0 -0
- /package/{src → lib}/Types/GroupMetadata.js +0 -0
- /package/{src → lib}/Types/Label.js +0 -0
- /package/{src → lib}/Types/LabelAssociation.js +0 -0
- /package/{src → lib}/Types/Message.js +0 -0
- /package/{src → lib}/Types/Newsletter.js +0 -0
- /package/{src → lib}/Types/Product.js +0 -0
- /package/{src → lib}/Types/Signal.js +0 -0
- /package/{src → lib}/Types/Socket.js +0 -0
- /package/{src → lib}/Types/State.js +0 -0
- /package/{src/WABinary/types.js → lib/Types/USync.js} +0 -0
- /package/{src → lib}/Types/index.js +0 -0
- /package/{src → lib}/Utils/index.js +0 -0
- /package/{src → lib}/Utils/logger.js +0 -0
- /package/{src → lib}/Utils/lt-hash.js +0 -0
- /package/{src → lib}/Utils/noise-handler.js +0 -0
- /package/{src → lib}/WABinary/constants.js +0 -0
- /package/{src → lib}/WABinary/decode.js +0 -0
- /package/{src → lib}/WABinary/generic-utils.js +0 -0
- /package/{src → lib}/WABinary/index.js +0 -0
- /package/{src → lib}/WABinary/jid-utils.js +0 -0
- /package/{src → lib}/WAM/BinaryInfo.js +0 -0
- /package/{src → lib}/WAM/constants.js +0 -0
- /package/{src → lib}/WAM/encode.js +0 -0
- /package/{src → lib}/WAM/index.js +0 -0
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
import { makeLibSignalRepository } from '../Signal/libsignal'
|
|
2
|
-
import { SignalAuthState, SignalDataTypeMap } from '../Types'
|
|
3
|
-
import { Curve, generateRegistrationId, generateSignalPubKey, signedKeyPair } from '../Utils'
|
|
4
|
-
|
|
5
|
-
describe('Signal Tests', () => {
|
|
6
|
-
|
|
7
|
-
it('should correctly encrypt/decrypt 1 message', async() => {
|
|
8
|
-
const user1 = makeUser()
|
|
9
|
-
const user2 = makeUser()
|
|
10
|
-
|
|
11
|
-
const msg = Buffer.from('hello there!')
|
|
12
|
-
|
|
13
|
-
await prepareForSendingMessage(user1, user2)
|
|
14
|
-
|
|
15
|
-
const result = await user1.repository.encryptMessage(
|
|
16
|
-
{ jid: user2.jid, data: msg }
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
const dec = await user2.repository.decryptMessage(
|
|
20
|
-
{ jid: user1.jid, ...result }
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
expect(dec).toEqual(msg)
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
it('should correctly override a session', async() => {
|
|
27
|
-
const user1 = makeUser()
|
|
28
|
-
const user2 = makeUser()
|
|
29
|
-
|
|
30
|
-
const msg = Buffer.from('hello there!')
|
|
31
|
-
|
|
32
|
-
for(let preKeyId = 2; preKeyId <= 3;preKeyId++) {
|
|
33
|
-
await prepareForSendingMessage(user1, user2, preKeyId)
|
|
34
|
-
|
|
35
|
-
const result = await user1.repository.encryptMessage(
|
|
36
|
-
{ jid: user2.jid, data: msg }
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
const dec = await user2.repository.decryptMessage(
|
|
40
|
-
{ jid: user1.jid, ...result }
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
expect(dec).toEqual(msg)
|
|
44
|
-
}
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
it('should correctly encrypt/decrypt multiple messages', async() => {
|
|
48
|
-
const user1 = makeUser()
|
|
49
|
-
const user2 = makeUser()
|
|
50
|
-
|
|
51
|
-
const msg = Buffer.from('hello there!')
|
|
52
|
-
|
|
53
|
-
await prepareForSendingMessage(user1, user2)
|
|
54
|
-
|
|
55
|
-
for(let i = 0;i < 10;i++) {
|
|
56
|
-
const result = await user1.repository.encryptMessage(
|
|
57
|
-
{ jid: user2.jid, data: msg }
|
|
58
|
-
)
|
|
59
|
-
|
|
60
|
-
const dec = await user2.repository.decryptMessage(
|
|
61
|
-
{ jid: user1.jid, ...result }
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
expect(dec).toEqual(msg)
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
it('should encrypt/decrypt messages from group', async() => {
|
|
69
|
-
const groupId = '123456@g.us'
|
|
70
|
-
const participants = [...Array(5)].map(makeUser)
|
|
71
|
-
|
|
72
|
-
const msg = Buffer.from('hello there!')
|
|
73
|
-
|
|
74
|
-
const sender = participants[0]
|
|
75
|
-
const enc = await sender.repository.encryptGroupMessage(
|
|
76
|
-
{
|
|
77
|
-
group: groupId,
|
|
78
|
-
meId: sender.jid,
|
|
79
|
-
data: msg
|
|
80
|
-
}
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
for(const participant of participants) {
|
|
84
|
-
if(participant === sender) {
|
|
85
|
-
continue
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
await participant.repository.processSenderKeyDistributionMessage(
|
|
89
|
-
{
|
|
90
|
-
item: {
|
|
91
|
-
groupId,
|
|
92
|
-
axolotlSenderKeyDistributionMessage: enc.senderKeyDistributionMessage
|
|
93
|
-
},
|
|
94
|
-
authorJid: sender.jid
|
|
95
|
-
}
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
const dec = await participant.repository.decryptGroupMessage(
|
|
99
|
-
{
|
|
100
|
-
group: groupId,
|
|
101
|
-
authorJid: sender.jid,
|
|
102
|
-
msg: enc.ciphertext
|
|
103
|
-
}
|
|
104
|
-
)
|
|
105
|
-
expect(dec).toEqual(msg)
|
|
106
|
-
}
|
|
107
|
-
})
|
|
108
|
-
})
|
|
109
|
-
|
|
110
|
-
type User = ReturnType<typeof makeUser>
|
|
111
|
-
|
|
112
|
-
function makeUser() {
|
|
113
|
-
const store = makeTestAuthState()
|
|
114
|
-
const jid = `${Math.random().toString().replace('.', '')}@s.whatsapp.net`
|
|
115
|
-
const repository = makeLibSignalRepository(store)
|
|
116
|
-
return { store, jid, repository }
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
async function prepareForSendingMessage(
|
|
120
|
-
sender: User,
|
|
121
|
-
receiver: User,
|
|
122
|
-
preKeyId = 2
|
|
123
|
-
) {
|
|
124
|
-
const preKey = Curve.generateKeyPair()
|
|
125
|
-
await sender.repository.injectE2ESession(
|
|
126
|
-
{
|
|
127
|
-
jid: receiver.jid,
|
|
128
|
-
session: {
|
|
129
|
-
registrationId: receiver.store.creds.registrationId,
|
|
130
|
-
identityKey: generateSignalPubKey(receiver.store.creds.signedIdentityKey.public),
|
|
131
|
-
signedPreKey: {
|
|
132
|
-
keyId: receiver.store.creds.signedPreKey.keyId,
|
|
133
|
-
publicKey: generateSignalPubKey(receiver.store.creds.signedPreKey.keyPair.public),
|
|
134
|
-
signature: receiver.store.creds.signedPreKey.signature,
|
|
135
|
-
},
|
|
136
|
-
preKey: {
|
|
137
|
-
keyId: preKeyId,
|
|
138
|
-
publicKey: generateSignalPubKey(preKey.public),
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
await receiver.store.keys.set({
|
|
145
|
-
'pre-key': {
|
|
146
|
-
[preKeyId]: preKey
|
|
147
|
-
}
|
|
148
|
-
})
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
function makeTestAuthState(): SignalAuthState {
|
|
152
|
-
const identityKey = Curve.generateKeyPair()
|
|
153
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
154
|
-
const store: { [_: string]: any } = {}
|
|
155
|
-
return {
|
|
156
|
-
creds: {
|
|
157
|
-
signedIdentityKey: identityKey,
|
|
158
|
-
registrationId: generateRegistrationId(),
|
|
159
|
-
signedPreKey: signedKeyPair(identityKey, 1),
|
|
160
|
-
},
|
|
161
|
-
keys: {
|
|
162
|
-
get(type, ids) {
|
|
163
|
-
const data: { [_: string]: SignalDataTypeMap[typeof type] } = { }
|
|
164
|
-
for(const id of ids) {
|
|
165
|
-
const item = store[getUniqueId(type, id)]
|
|
166
|
-
if(typeof item !== 'undefined') {
|
|
167
|
-
data[id] = item
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
return data
|
|
172
|
-
},
|
|
173
|
-
set(data) {
|
|
174
|
-
for(const type in data) {
|
|
175
|
-
for(const id in data[type]) {
|
|
176
|
-
store[getUniqueId(type, id)] = data[type][id]
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
function getUniqueId(type: string, id: string) {
|
|
184
|
-
return `${type}.${id}`
|
|
185
|
-
}
|
|
186
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
-
var m = o[Symbol.asyncIterator], i;
|
|
14
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
-
};
|
|
18
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
-
const fs_1 = require("fs");
|
|
20
|
-
const WAProto_1 = require("../../WAProto");
|
|
21
|
-
const Utils_1 = require("../Utils");
|
|
22
|
-
jest.setTimeout(20000);
|
|
23
|
-
const TEST_VECTORS = [
|
|
24
|
-
{
|
|
25
|
-
type: 'image',
|
|
26
|
-
message: WAProto_1.proto.Message.ImageMessage.decode(Buffer.from('Ck1odHRwczovL21tZy53aGF0c2FwcC5uZXQvZC9mL0FwaHR4WG9fWXZZcDZlUVNSa0tjOHE5d2ozVUpleWdoY3poM3ExX3I0ektnLmVuYxIKaW1hZ2UvanBlZyIgKTuVFyxDc6mTm4GXPlO3Z911Wd8RBeTrPLSWAEdqW8MomcUBQiB7wH5a4nXMKyLOT0A2nFgnnM/DUH8YjQf8QtkCIekaSkogTB+BXKCWDFrmNzozY0DCPn0L4VKd7yG1ZbZwbgRhzVc=', 'base64')),
|
|
27
|
-
plaintext: (0, fs_1.readFileSync)('./Media/cat.jpeg')
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
type: 'image',
|
|
31
|
-
message: WAProto_1.proto.Message.ImageMessage.decode(Buffer.from('Ck1odHRwczovL21tZy53aGF0c2FwcC5uZXQvZC9mL0Ftb2tnWkphNWF6QWZxa3dVRzc0eUNUdTlGeWpjMmd5akpqcXNmMUFpZEU5LmVuYxIKaW1hZ2UvanBlZyIg8IS5TQzdzcuvcR7F8HMhWnXmlsV+GOo9JE1/t2k+o9Yoz6o6QiA7kDk8j5KOEQC0kDFE1qW7lBBDYhm5z06N3SirfUj3CUog/CjYF8e670D5wUJwWv2B2mKzDEo8IJLStDv76YmtPfs=', 'base64')),
|
|
32
|
-
plaintext: (0, fs_1.readFileSync)('./Media/icon.png')
|
|
33
|
-
},
|
|
34
|
-
];
|
|
35
|
-
describe('Media Download Tests', () => {
|
|
36
|
-
it('should download a full encrypted media correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
37
|
-
var _a, e_1, _b, _c;
|
|
38
|
-
for (const { type, message, plaintext } of TEST_VECTORS) {
|
|
39
|
-
const readPipe = yield (0, Utils_1.downloadContentFromMessage)(message, type);
|
|
40
|
-
let buffer = Buffer.alloc(0);
|
|
41
|
-
try {
|
|
42
|
-
for (var _d = true, readPipe_1 = (e_1 = void 0, __asyncValues(readPipe)), readPipe_1_1; readPipe_1_1 = yield readPipe_1.next(), _a = readPipe_1_1.done, !_a; _d = true) {
|
|
43
|
-
_c = readPipe_1_1.value;
|
|
44
|
-
_d = false;
|
|
45
|
-
const read = _c;
|
|
46
|
-
buffer = Buffer.concat([buffer, read]);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
50
|
-
finally {
|
|
51
|
-
try {
|
|
52
|
-
if (!_d && !_a && (_b = readPipe_1.return)) yield _b.call(readPipe_1);
|
|
53
|
-
}
|
|
54
|
-
finally { if (e_1) throw e_1.error; }
|
|
55
|
-
}
|
|
56
|
-
expect(buffer).toEqual(plaintext);
|
|
57
|
-
}
|
|
58
|
-
}));
|
|
59
|
-
it('should download an encrypted media correctly piece', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
-
var _a, e_2, _b, _c;
|
|
61
|
-
for (const { type, message, plaintext } of TEST_VECTORS) {
|
|
62
|
-
// check all edge cases
|
|
63
|
-
const ranges = [
|
|
64
|
-
{ startByte: 51, endByte: plaintext.length - 100 }, // random numbers
|
|
65
|
-
{ startByte: 1024, endByte: 2038 }, // larger random multiples of 16
|
|
66
|
-
{ startByte: 1, endByte: plaintext.length - 1 } // borders
|
|
67
|
-
];
|
|
68
|
-
for (const range of ranges) {
|
|
69
|
-
const readPipe = yield (0, Utils_1.downloadContentFromMessage)(message, type, range);
|
|
70
|
-
let buffer = Buffer.alloc(0);
|
|
71
|
-
try {
|
|
72
|
-
for (var _d = true, readPipe_2 = (e_2 = void 0, __asyncValues(readPipe)), readPipe_2_1; readPipe_2_1 = yield readPipe_2.next(), _a = readPipe_2_1.done, !_a; _d = true) {
|
|
73
|
-
_c = readPipe_2_1.value;
|
|
74
|
-
_d = false;
|
|
75
|
-
const read = _c;
|
|
76
|
-
buffer = Buffer.concat([buffer, read]);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
80
|
-
finally {
|
|
81
|
-
try {
|
|
82
|
-
if (!_d && !_a && (_b = readPipe_2.return)) yield _b.call(readPipe_2);
|
|
83
|
-
}
|
|
84
|
-
finally { if (e_2) throw e_2.error; }
|
|
85
|
-
}
|
|
86
|
-
const hex = buffer.toString('hex');
|
|
87
|
-
const expectedHex = plaintext.slice(range.startByte || 0, range.endByte || undefined).toString('hex');
|
|
88
|
-
expect(hex).toBe(expectedHex);
|
|
89
|
-
console.log('success on ', range);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}));
|
|
93
|
-
});
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'fs'
|
|
2
|
-
import { proto } from '../../WAProto'
|
|
3
|
-
import { DownloadableMessage, MediaType } from '../Types'
|
|
4
|
-
import { downloadContentFromMessage } from '../Utils'
|
|
5
|
-
|
|
6
|
-
jest.setTimeout(20_000)
|
|
7
|
-
|
|
8
|
-
type TestVector = {
|
|
9
|
-
type: MediaType
|
|
10
|
-
message: DownloadableMessage
|
|
11
|
-
plaintext: Buffer
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const TEST_VECTORS: TestVector[] = [
|
|
15
|
-
{
|
|
16
|
-
type: 'image',
|
|
17
|
-
message: proto.Message.ImageMessage.decode(
|
|
18
|
-
Buffer.from(
|
|
19
|
-
'Ck1odHRwczovL21tZy53aGF0c2FwcC5uZXQvZC9mL0FwaHR4WG9fWXZZcDZlUVNSa0tjOHE5d2ozVUpleWdoY3poM3ExX3I0ektnLmVuYxIKaW1hZ2UvanBlZyIgKTuVFyxDc6mTm4GXPlO3Z911Wd8RBeTrPLSWAEdqW8MomcUBQiB7wH5a4nXMKyLOT0A2nFgnnM/DUH8YjQf8QtkCIekaSkogTB+BXKCWDFrmNzozY0DCPn0L4VKd7yG1ZbZwbgRhzVc=',
|
|
20
|
-
'base64'
|
|
21
|
-
)
|
|
22
|
-
),
|
|
23
|
-
plaintext: readFileSync('./Media/cat.jpeg')
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
type: 'image',
|
|
27
|
-
message: proto.Message.ImageMessage.decode(
|
|
28
|
-
Buffer.from(
|
|
29
|
-
'Ck1odHRwczovL21tZy53aGF0c2FwcC5uZXQvZC9mL0Ftb2tnWkphNWF6QWZxa3dVRzc0eUNUdTlGeWpjMmd5akpqcXNmMUFpZEU5LmVuYxIKaW1hZ2UvanBlZyIg8IS5TQzdzcuvcR7F8HMhWnXmlsV+GOo9JE1/t2k+o9Yoz6o6QiA7kDk8j5KOEQC0kDFE1qW7lBBDYhm5z06N3SirfUj3CUog/CjYF8e670D5wUJwWv2B2mKzDEo8IJLStDv76YmtPfs=',
|
|
30
|
-
'base64'
|
|
31
|
-
)
|
|
32
|
-
),
|
|
33
|
-
plaintext: readFileSync('./Media/icon.png')
|
|
34
|
-
},
|
|
35
|
-
]
|
|
36
|
-
|
|
37
|
-
describe('Media Download Tests', () => {
|
|
38
|
-
|
|
39
|
-
it('should download a full encrypted media correctly', async() => {
|
|
40
|
-
for(const { type, message, plaintext } of TEST_VECTORS) {
|
|
41
|
-
const readPipe = await downloadContentFromMessage(message, type)
|
|
42
|
-
|
|
43
|
-
let buffer = Buffer.alloc(0)
|
|
44
|
-
for await (const read of readPipe) {
|
|
45
|
-
buffer = Buffer.concat([ buffer, read ])
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
expect(buffer).toEqual(plaintext)
|
|
49
|
-
}
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
it('should download an encrypted media correctly piece', async() => {
|
|
53
|
-
for(const { type, message, plaintext } of TEST_VECTORS) {
|
|
54
|
-
// check all edge cases
|
|
55
|
-
const ranges = [
|
|
56
|
-
{ startByte: 51, endByte: plaintext.length - 100 }, // random numbers
|
|
57
|
-
{ startByte: 1024, endByte: 2038 }, // larger random multiples of 16
|
|
58
|
-
{ startByte: 1, endByte: plaintext.length - 1 } // borders
|
|
59
|
-
]
|
|
60
|
-
for(const range of ranges) {
|
|
61
|
-
const readPipe = await downloadContentFromMessage(message, type, range)
|
|
62
|
-
|
|
63
|
-
let buffer = Buffer.alloc(0)
|
|
64
|
-
for await (const read of readPipe) {
|
|
65
|
-
buffer = Buffer.concat([ buffer, read ])
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
const hex = buffer.toString('hex')
|
|
69
|
-
const expectedHex = plaintext.slice(range.startByte || 0, range.endByte || undefined).toString('hex')
|
|
70
|
-
expect(hex).toBe(expectedHex)
|
|
71
|
-
|
|
72
|
-
console.log('success on ', range)
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
})
|
|
76
|
-
})
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const Utils_1 = require("../Utils");
|
|
4
|
-
describe('Messages Tests', () => {
|
|
5
|
-
it('should correctly unwrap messages', () => {
|
|
6
|
-
const CONTENT = { imageMessage: {} };
|
|
7
|
-
expectRightContent(CONTENT);
|
|
8
|
-
expectRightContent({
|
|
9
|
-
ephemeralMessage: { message: CONTENT }
|
|
10
|
-
});
|
|
11
|
-
expectRightContent({
|
|
12
|
-
viewOnceMessage: {
|
|
13
|
-
message: {
|
|
14
|
-
ephemeralMessage: { message: CONTENT }
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
expectRightContent({
|
|
19
|
-
viewOnceMessage: {
|
|
20
|
-
message: {
|
|
21
|
-
viewOnceMessageV2: {
|
|
22
|
-
message: {
|
|
23
|
-
ephemeralMessage: { message: CONTENT }
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
function expectRightContent(content) {
|
|
30
|
-
expect((0, Utils_1.normalizeMessageContent)(content)).toHaveProperty('imageMessage');
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
});
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { WAMessageContent } from '../Types'
|
|
2
|
-
import { normalizeMessageContent } from '../Utils'
|
|
3
|
-
|
|
4
|
-
describe('Messages Tests', () => {
|
|
5
|
-
|
|
6
|
-
it('should correctly unwrap messages', () => {
|
|
7
|
-
const CONTENT = { imageMessage: { } }
|
|
8
|
-
expectRightContent(CONTENT)
|
|
9
|
-
expectRightContent({
|
|
10
|
-
ephemeralMessage: { message: CONTENT }
|
|
11
|
-
})
|
|
12
|
-
expectRightContent({
|
|
13
|
-
viewOnceMessage: {
|
|
14
|
-
message: {
|
|
15
|
-
ephemeralMessage: { message: CONTENT }
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
})
|
|
19
|
-
expectRightContent({
|
|
20
|
-
viewOnceMessage: {
|
|
21
|
-
message: {
|
|
22
|
-
viewOnceMessageV2: {
|
|
23
|
-
message: {
|
|
24
|
-
ephemeralMessage: { message: CONTENT }
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
})
|
|
30
|
-
|
|
31
|
-
function expectRightContent(content: WAMessageContent) {
|
|
32
|
-
expect(
|
|
33
|
-
normalizeMessageContent(content)
|
|
34
|
-
).toHaveProperty('imageMessage')
|
|
35
|
-
}
|
|
36
|
-
})
|
|
37
|
-
})
|
package/src/Tests/utils.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.randomJid = randomJid;
|
|
4
|
-
exports.makeMockSignalKeyStore = makeMockSignalKeyStore;
|
|
5
|
-
const WABinary_1 = require("../WABinary");
|
|
6
|
-
function randomJid() {
|
|
7
|
-
return (0, WABinary_1.jidEncode)(Math.floor(Math.random() * 1000000), Math.random() < 0.5 ? 's.whatsapp.net' : 'g.us');
|
|
8
|
-
}
|
|
9
|
-
function makeMockSignalKeyStore() {
|
|
10
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
-
const store = {};
|
|
12
|
-
return {
|
|
13
|
-
get(type, ids) {
|
|
14
|
-
const data = {};
|
|
15
|
-
for (const id of ids) {
|
|
16
|
-
const item = store[getUniqueId(type, id)];
|
|
17
|
-
if (typeof item !== 'undefined') {
|
|
18
|
-
data[id] = item;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return data;
|
|
22
|
-
},
|
|
23
|
-
set(data) {
|
|
24
|
-
for (const type in data) {
|
|
25
|
-
for (const id in data[type]) {
|
|
26
|
-
store[getUniqueId(type, id)] = data[type][id];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
function getUniqueId(type, id) {
|
|
32
|
-
return `${type}.${id}`;
|
|
33
|
-
}
|
|
34
|
-
}
|
package/src/Tests/utils.ts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { SignalDataTypeMap, SignalKeyStore } from '../Types'
|
|
2
|
-
import { jidEncode } from '../WABinary'
|
|
3
|
-
|
|
4
|
-
export function randomJid() {
|
|
5
|
-
return jidEncode(Math.floor(Math.random() * 1000000), Math.random() < 0.5 ? 's.whatsapp.net' : 'g.us')
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export function makeMockSignalKeyStore(): SignalKeyStore {
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
-
const store: { [_: string]: any } = {}
|
|
11
|
-
|
|
12
|
-
return {
|
|
13
|
-
get(type, ids) {
|
|
14
|
-
const data: { [_: string]: SignalDataTypeMap[typeof type] } = { }
|
|
15
|
-
for(const id of ids) {
|
|
16
|
-
const item = store[getUniqueId(type, id)]
|
|
17
|
-
if(typeof item !== 'undefined') {
|
|
18
|
-
data[id] = item
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return data
|
|
23
|
-
},
|
|
24
|
-
set(data) {
|
|
25
|
-
for(const type in data) {
|
|
26
|
-
for(const id in data[type]) {
|
|
27
|
-
store[getUniqueId(type, id)] = data[type][id]
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
function getUniqueId(type: string, id: string) {
|
|
34
|
-
return `${type}.${id}`
|
|
35
|
-
}
|
|
36
|
-
}
|
package/src/Types/Auth.ts
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import type { proto } from '../../WAProto'
|
|
2
|
-
import { RegistrationOptions } from '../Socket/registration'
|
|
3
|
-
import type { Contact } from './Contact'
|
|
4
|
-
import type { MinimalMessage } from './Message'
|
|
5
|
-
|
|
6
|
-
export type KeyPair = { public: Uint8Array, private: Uint8Array }
|
|
7
|
-
export type SignedKeyPair = {
|
|
8
|
-
keyPair: KeyPair
|
|
9
|
-
signature: Uint8Array
|
|
10
|
-
keyId: number
|
|
11
|
-
timestampS?: number
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export type ProtocolAddress = {
|
|
15
|
-
name: string // jid
|
|
16
|
-
deviceId: number
|
|
17
|
-
}
|
|
18
|
-
export type SignalIdentity = {
|
|
19
|
-
identifier: ProtocolAddress
|
|
20
|
-
identifierKey: Uint8Array
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type LTHashState = {
|
|
24
|
-
version: number
|
|
25
|
-
hash: Buffer
|
|
26
|
-
indexValueMap: {
|
|
27
|
-
[indexMacBase64: string]: { valueMac: Uint8Array | Buffer }
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type SignalCreds = {
|
|
32
|
-
readonly signedIdentityKey: KeyPair
|
|
33
|
-
readonly signedPreKey: SignedKeyPair
|
|
34
|
-
readonly registrationId: number
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export type AccountSettings = {
|
|
38
|
-
/** unarchive chats when a new message is received */
|
|
39
|
-
unarchiveChats: boolean
|
|
40
|
-
/** the default mode to start new conversations with */
|
|
41
|
-
defaultDisappearingMode?: Pick<proto.IConversation, 'ephemeralExpiration' | 'ephemeralSettingTimestamp'>
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export type AuthenticationCreds = SignalCreds & {
|
|
45
|
-
readonly noiseKey: KeyPair
|
|
46
|
-
readonly pairingEphemeralKeyPair: KeyPair
|
|
47
|
-
advSecretKey: string
|
|
48
|
-
|
|
49
|
-
me?: Contact
|
|
50
|
-
account?: proto.IADVSignedDeviceIdentity
|
|
51
|
-
signalIdentities?: SignalIdentity[]
|
|
52
|
-
myAppStateKeyId?: string
|
|
53
|
-
firstUnuploadedPreKeyId: number
|
|
54
|
-
nextPreKeyId: number
|
|
55
|
-
|
|
56
|
-
lastAccountSyncTimestamp?: number
|
|
57
|
-
platform?: string
|
|
58
|
-
|
|
59
|
-
processedHistoryMessages: MinimalMessage[]
|
|
60
|
-
/** number of times history & app state has been synced */
|
|
61
|
-
accountSyncCounter: number
|
|
62
|
-
accountSettings: AccountSettings
|
|
63
|
-
// mobile creds
|
|
64
|
-
deviceId: string
|
|
65
|
-
phoneId: string
|
|
66
|
-
identityId: Buffer
|
|
67
|
-
registered: boolean
|
|
68
|
-
backupToken: Buffer
|
|
69
|
-
registration: RegistrationOptions
|
|
70
|
-
pairingCode: string | undefined
|
|
71
|
-
lastPropHash: string | undefined
|
|
72
|
-
routingInfo: Buffer | undefined
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export type SignalDataTypeMap = {
|
|
76
|
-
'pre-key': KeyPair
|
|
77
|
-
'session': Uint8Array
|
|
78
|
-
'sender-key': Uint8Array
|
|
79
|
-
'sender-key-memory': { [jid: string]: boolean }
|
|
80
|
-
'app-state-sync-key': proto.Message.IAppStateSyncKeyData
|
|
81
|
-
'app-state-sync-version': LTHashState
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export type SignalDataSet = { [T in keyof SignalDataTypeMap]?: { [id: string]: SignalDataTypeMap[T] | null } }
|
|
85
|
-
|
|
86
|
-
type Awaitable<T> = T | Promise<T>
|
|
87
|
-
|
|
88
|
-
export type SignalKeyStore = {
|
|
89
|
-
get<T extends keyof SignalDataTypeMap>(type: T, ids: string[]): Awaitable<{ [id: string]: SignalDataTypeMap[T] }>
|
|
90
|
-
set(data: SignalDataSet): Awaitable<void>
|
|
91
|
-
/** clear all the data in the store */
|
|
92
|
-
clear?(): Awaitable<void>
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export type SignalKeyStoreWithTransaction = SignalKeyStore & {
|
|
96
|
-
isInTransaction: () => boolean
|
|
97
|
-
transaction<T>(exec: () => Promise<T>): Promise<T>
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export type TransactionCapabilityOptions = {
|
|
101
|
-
maxCommitRetries: number
|
|
102
|
-
delayBetweenTriesMs: number
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export type SignalAuthState = {
|
|
106
|
-
creds: SignalCreds
|
|
107
|
-
keys: SignalKeyStore | SignalKeyStoreWithTransaction
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export type AuthenticationState = {
|
|
111
|
-
creds: AuthenticationCreds
|
|
112
|
-
keys: SignalKeyStore
|
|
113
|
-
}
|
package/src/Types/Call.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export type WACallUpdateType = 'offer' | 'ringing' | 'timeout' | 'reject' | 'accept'
|
|
3
|
-
|
|
4
|
-
export type WACallEvent = {
|
|
5
|
-
chatId: string
|
|
6
|
-
from: string
|
|
7
|
-
isGroup?: boolean
|
|
8
|
-
groupJid?: string
|
|
9
|
-
id: string
|
|
10
|
-
date: Date
|
|
11
|
-
isVideo?: boolean
|
|
12
|
-
status: WACallUpdateType
|
|
13
|
-
offline: boolean
|
|
14
|
-
latencyMs?: number
|
|
15
|
-
}
|