@d0v3riz/baileys 6.7.25 → 7.0.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -50
- package/WAProto/GenerateStatics.sh +2 -2
- package/WAProto/WAProto.proto +1339 -493
- package/WAProto/fix-imports.js +1 -1
- package/WAProto/index.d.ts +4585 -44041
- package/WAProto/index.js +80831 -148208
- package/lib/Defaults/index.d.ts +13 -3
- package/lib/Defaults/index.d.ts.map +1 -1
- package/lib/Defaults/index.js +27 -13
- package/lib/Defaults/index.js.map +1 -1
- package/lib/Signal/Group/group_cipher.d.ts +1 -2
- package/lib/Signal/Group/group_cipher.d.ts.map +1 -1
- package/lib/Signal/Group/group_cipher.js +29 -41
- package/lib/Signal/Group/group_cipher.js.map +1 -1
- package/lib/Signal/Group/keyhelper.d.ts.map +1 -1
- package/lib/Signal/Group/keyhelper.js +0 -1
- package/lib/Signal/Group/keyhelper.js.map +1 -1
- package/lib/Signal/Group/sender-chain-key.d.ts +1 -1
- package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -1
- package/lib/Signal/Group/sender-chain-key.js +1 -7
- package/lib/Signal/Group/sender-chain-key.js.map +1 -1
- package/lib/Signal/Group/sender-key-distribution-message.js +2 -2
- package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -1
- package/lib/Signal/Group/sender-key-message.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-message.js +0 -1
- package/lib/Signal/Group/sender-key-message.js.map +1 -1
- package/lib/Signal/Group/sender-key-record.d.ts +1 -1
- package/lib/Signal/Group/sender-key-record.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-record.js +2 -11
- package/lib/Signal/Group/sender-key-record.js.map +1 -1
- package/lib/Signal/Group/sender-key-state.d.ts +4 -4
- package/lib/Signal/Group/sender-key-state.d.ts.map +1 -1
- package/lib/Signal/Group/sender-key-state.js +21 -33
- package/lib/Signal/Group/sender-key-state.js.map +1 -1
- package/lib/Signal/Group/sender-message-key.d.ts.map +1 -1
- package/lib/Signal/Group/sender-message-key.js +0 -1
- package/lib/Signal/Group/sender-message-key.js.map +1 -1
- package/lib/Signal/libsignal.d.ts +4 -3
- package/lib/Signal/libsignal.d.ts.map +1 -1
- package/lib/Signal/libsignal.js +243 -42
- package/lib/Signal/libsignal.js.map +1 -1
- package/lib/Signal/lid-mapping.d.ts +23 -0
- package/lib/Signal/lid-mapping.d.ts.map +1 -0
- package/lib/Signal/lid-mapping.js +171 -0
- package/lib/Signal/lid-mapping.js.map +1 -0
- package/lib/Socket/Client/types.d.ts +2 -2
- package/lib/Socket/Client/types.d.ts.map +1 -1
- package/lib/Socket/Client/websocket.d.ts +2 -2
- package/lib/Socket/Client/websocket.d.ts.map +1 -1
- package/lib/Socket/Client/websocket.js +2 -2
- package/lib/Socket/Client/websocket.js.map +1 -1
- package/lib/Socket/business.d.ts +31 -17
- package/lib/Socket/business.d.ts.map +1 -1
- package/lib/Socket/business.js +122 -1
- package/lib/Socket/business.js.map +1 -1
- package/lib/Socket/chats.d.ts +17 -9
- package/lib/Socket/chats.d.ts.map +1 -1
- package/lib/Socket/chats.js +54 -23
- package/lib/Socket/chats.js.map +1 -1
- package/lib/Socket/communities.d.ts +41 -14
- package/lib/Socket/communities.d.ts.map +1 -1
- package/lib/Socket/communities.js +83 -3
- package/lib/Socket/communities.js.map +1 -1
- package/lib/Socket/groups.d.ts +16 -9
- package/lib/Socket/groups.d.ts.map +1 -1
- package/lib/Socket/groups.js +14 -11
- package/lib/Socket/groups.js.map +1 -1
- package/lib/Socket/index.d.ts +41 -14
- package/lib/Socket/index.d.ts.map +1 -1
- package/lib/Socket/index.js +1 -0
- package/lib/Socket/index.js.map +1 -1
- package/lib/Socket/messages-recv.d.ts +26 -16
- package/lib/Socket/messages-recv.d.ts.map +1 -1
- package/lib/Socket/messages-recv.js +512 -311
- package/lib/Socket/messages-recv.js.map +1 -1
- package/lib/Socket/messages-send.d.ts +27 -16
- package/lib/Socket/messages-send.d.ts.map +1 -1
- package/lib/Socket/messages-send.js +394 -133
- package/lib/Socket/messages-send.js.map +1 -1
- package/lib/Socket/newsletter.d.ts +18 -12
- package/lib/Socket/newsletter.d.ts.map +1 -1
- package/lib/Socket/newsletter.js +3 -1
- package/lib/Socket/newsletter.js.map +1 -1
- package/lib/Socket/socket.d.ts +13 -3
- package/lib/Socket/socket.d.ts.map +1 -1
- package/lib/Socket/socket.js +353 -78
- package/lib/Socket/socket.js.map +1 -1
- package/lib/Types/Auth.d.ts +12 -1
- package/lib/Types/Auth.d.ts.map +1 -1
- package/lib/Types/Bussines.d.ts +25 -0
- package/lib/Types/Bussines.d.ts.map +1 -0
- package/lib/Types/Bussines.js +2 -0
- package/lib/Types/Bussines.js.map +1 -0
- package/lib/Types/Chat.d.ts +5 -0
- package/lib/Types/Chat.d.ts.map +1 -1
- package/lib/Types/Chat.js.map +1 -1
- package/lib/Types/Contact.d.ts +4 -4
- package/lib/Types/Contact.d.ts.map +1 -1
- package/lib/Types/Events.d.ts +8 -5
- package/lib/Types/Events.d.ts.map +1 -1
- package/lib/Types/GroupMetadata.d.ts +7 -4
- package/lib/Types/GroupMetadata.d.ts.map +1 -1
- package/lib/Types/Message.d.ts +38 -12
- package/lib/Types/Message.d.ts.map +1 -1
- package/lib/Types/Message.js +5 -1
- package/lib/Types/Message.js.map +1 -1
- package/lib/Types/Signal.d.ts +18 -0
- package/lib/Types/Signal.d.ts.map +1 -1
- package/lib/Types/Socket.d.ts +24 -13
- package/lib/Types/Socket.d.ts.map +1 -1
- package/lib/Types/Socket.js.map +1 -1
- package/lib/Utils/auth-utils.d.ts +2 -2
- package/lib/Utils/auth-utils.d.ts.map +1 -1
- package/lib/Utils/auth-utils.js +178 -111
- package/lib/Utils/auth-utils.js.map +1 -1
- package/lib/Utils/browser-utils.d.ts +4 -0
- package/lib/Utils/browser-utils.d.ts.map +1 -0
- package/lib/Utils/browser-utils.js +28 -0
- package/lib/Utils/browser-utils.js.map +1 -0
- package/lib/Utils/chat-utils.d.ts +6 -7
- package/lib/Utils/chat-utils.d.ts.map +1 -1
- package/lib/Utils/chat-utils.js +19 -2
- package/lib/Utils/chat-utils.js.map +1 -1
- package/lib/Utils/crypto.d.ts +6 -6
- package/lib/Utils/crypto.d.ts.map +1 -1
- package/lib/Utils/crypto.js +16 -12
- package/lib/Utils/crypto.js.map +1 -1
- package/lib/Utils/decode-wa-message.d.ts +14 -2
- package/lib/Utils/decode-wa-message.d.ts.map +1 -1
- package/lib/Utils/decode-wa-message.js +104 -15
- package/lib/Utils/decode-wa-message.js.map +1 -1
- package/lib/Utils/event-buffer.d.ts +0 -1
- package/lib/Utils/event-buffer.d.ts.map +1 -1
- package/lib/Utils/event-buffer.js +65 -20
- package/lib/Utils/event-buffer.js.map +1 -1
- package/lib/Utils/generics.d.ts +5 -7
- package/lib/Utils/generics.d.ts.map +1 -1
- package/lib/Utils/generics.js +59 -51
- package/lib/Utils/generics.js.map +1 -1
- package/lib/Utils/history.d.ts +8 -9
- package/lib/Utils/history.d.ts.map +1 -1
- package/lib/Utils/history.js +8 -3
- package/lib/Utils/history.js.map +1 -1
- package/lib/Utils/index.d.ts +2 -1
- package/lib/Utils/index.d.ts.map +1 -1
- package/lib/Utils/index.js +2 -1
- package/lib/Utils/index.js.map +1 -1
- package/lib/Utils/link-preview.d.ts +1 -2
- package/lib/Utils/link-preview.d.ts.map +1 -1
- package/lib/Utils/link-preview.js +1 -1
- package/lib/Utils/link-preview.js.map +1 -1
- package/lib/Utils/message-retry-manager.d.ts +82 -0
- package/lib/Utils/message-retry-manager.d.ts.map +1 -0
- package/lib/Utils/message-retry-manager.js +172 -0
- package/lib/Utils/message-retry-manager.js.map +1 -0
- package/lib/Utils/messages-media.d.ts +14 -12
- package/lib/Utils/messages-media.d.ts.map +1 -1
- package/lib/Utils/messages-media.js +48 -24
- package/lib/Utils/messages-media.js.map +1 -1
- package/lib/Utils/messages.d.ts +17 -4
- package/lib/Utils/messages.d.ts.map +1 -1
- package/lib/Utils/messages.js +85 -21
- package/lib/Utils/messages.js.map +1 -1
- package/lib/Utils/noise-handler.js +2 -1
- package/lib/Utils/noise-handler.js.map +1 -1
- package/lib/Utils/pre-key-manager.d.ts +28 -0
- package/lib/Utils/pre-key-manager.d.ts.map +1 -0
- package/lib/Utils/pre-key-manager.js +106 -0
- package/lib/Utils/pre-key-manager.js.map +1 -0
- package/lib/Utils/process-message.d.ts +26 -8
- package/lib/Utils/process-message.d.ts.map +1 -1
- package/lib/Utils/process-message.js +141 -24
- package/lib/Utils/process-message.js.map +1 -1
- package/lib/Utils/signal.d.ts +4 -4
- package/lib/Utils/signal.d.ts.map +1 -1
- package/lib/Utils/signal.js +21 -12
- package/lib/Utils/signal.js.map +1 -1
- package/lib/Utils/validate-connection.d.ts.map +1 -1
- package/lib/Utils/validate-connection.js +50 -14
- package/lib/Utils/validate-connection.js.map +1 -1
- package/lib/WABinary/decode.d.ts.map +1 -1
- package/lib/WABinary/decode.js +12 -2
- package/lib/WABinary/decode.js.map +1 -1
- package/lib/WABinary/generic-utils.js +1 -1
- package/lib/WABinary/generic-utils.js.map +1 -1
- package/lib/WABinary/jid-utils.d.ts +18 -6
- package/lib/WABinary/jid-utils.d.ts.map +1 -1
- package/lib/WABinary/jid-utils.js +52 -8
- package/lib/WABinary/jid-utils.js.map +1 -1
- package/lib/WAM/constants.d.ts +1 -1
- package/lib/WAM/constants.d.ts.map +1 -1
- package/lib/WAM/constants.js +18516 -10904
- package/lib/WAM/constants.js.map +1 -1
- package/lib/WAM/encode.d.ts.map +1 -1
- package/lib/WAM/encode.js +0 -1
- package/lib/WAM/encode.js.map +1 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +2 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +10 -2
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -1
- package/lib/WAUSync/USyncQuery.d.ts +1 -1
- package/lib/WAUSync/USyncQuery.d.ts.map +1 -1
- package/lib/WAUSync/USyncQuery.js +23 -20
- package/lib/WAUSync/USyncQuery.js.map +1 -1
- package/package.json +16 -11
- package/lib/Defaults/baileys-version.json +0 -3
- package/lib/Signal/Group/queue-job.d.ts +0 -2
- package/lib/Signal/Group/queue-job.d.ts.map +0 -1
- package/lib/Signal/Group/queue-job.js +0 -54
- package/lib/Signal/Group/queue-job.js.map +0 -1
- package/lib/Socket/usync.d.ts +0 -37
- package/lib/Socket/usync.d.ts.map +0 -1
- package/lib/Socket/usync.js +0 -63
- package/lib/Socket/usync.js.map +0 -1
- package/lib/Utils/baileys-event-stream.d.ts +0 -17
- package/lib/Utils/baileys-event-stream.d.ts.map +0 -1
- package/lib/Utils/baileys-event-stream.js +0 -56
- package/lib/Utils/baileys-event-stream.js.map +0 -1
package/lib/Types/Message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/Types/Message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/Types/Message.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAM9C,kCAAkC;AAClC,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,CAAA;AA0B3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAA;AAC9D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAA;AAQ1D,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IAClC,oCAAS,CAAA;IACT,sCAAW,CAAA;AACZ,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
|
package/lib/Types/Signal.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { proto } from '../../WAProto/index.js';
|
|
2
|
+
import type { LIDMappingStore } from '../Signal/lid-mapping.js';
|
|
2
3
|
type DecryptGroupSignalOpts = {
|
|
3
4
|
group: string;
|
|
4
5
|
authorJid: string;
|
|
@@ -52,7 +53,24 @@ export type SignalRepository = {
|
|
|
52
53
|
ciphertext: Uint8Array;
|
|
53
54
|
}>;
|
|
54
55
|
injectE2ESession(opts: E2ESessionOpts): Promise<void>;
|
|
56
|
+
validateSession(jid: string): Promise<{
|
|
57
|
+
exists: boolean;
|
|
58
|
+
reason?: string;
|
|
59
|
+
}>;
|
|
55
60
|
jidToSignalProtocolAddress(jid: string): string;
|
|
61
|
+
migrateSession(fromJid: string, toJid: string): Promise<{
|
|
62
|
+
migrated: number;
|
|
63
|
+
skipped: number;
|
|
64
|
+
total: number;
|
|
65
|
+
}>;
|
|
66
|
+
validateSession(jid: string): Promise<{
|
|
67
|
+
exists: boolean;
|
|
68
|
+
reason?: string;
|
|
69
|
+
}>;
|
|
70
|
+
deleteSession(jids: string[]): Promise<void>;
|
|
56
71
|
};
|
|
72
|
+
export interface SignalRepositoryWithLIDStore extends SignalRepository {
|
|
73
|
+
lidMapping: LIDMappingStore;
|
|
74
|
+
}
|
|
57
75
|
export {};
|
|
58
76
|
//# sourceMappingURL=Signal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signal.d.ts","sourceRoot":"","sources":["../../src/Types/Signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"Signal.d.ts","sourceRoot":"","sources":["../../src/Types/Signal.ts"],"names":[],"mappings":"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"}
|
package/lib/Types/Socket.d.ts
CHANGED
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
import type { AxiosRequestConfig } from 'axios';
|
|
2
1
|
import type { Agent } from 'https';
|
|
3
2
|
import type { URL } from 'url';
|
|
4
3
|
import { proto } from '../../WAProto/index.js';
|
|
5
4
|
import type { ILogger } from '../Utils/logger.js';
|
|
6
|
-
import type { AuthenticationState, SignalAuthState, TransactionCapabilityOptions } from './Auth.js';
|
|
5
|
+
import type { AuthenticationState, LIDMapping, SignalAuthState, TransactionCapabilityOptions } from './Auth.js';
|
|
7
6
|
import type { GroupMetadata } from './GroupMetadata.js';
|
|
8
|
-
import { type MediaConnInfo } from './Message.js';
|
|
9
|
-
import type {
|
|
7
|
+
import { type MediaConnInfo, type WAMessageKey } from './Message.js';
|
|
8
|
+
import type { SignalRepositoryWithLIDStore } from './Signal.js';
|
|
10
9
|
export type WAVersion = [number, number, number];
|
|
11
10
|
export type WABrowserDescription = [string, string, string];
|
|
12
11
|
export type CacheStore = {
|
|
13
12
|
/** get a cached key and change the stats */
|
|
14
|
-
get<T>(key: string): T | undefined;
|
|
13
|
+
get<T>(key: string): Promise<T> | T | undefined;
|
|
15
14
|
/** set a key in the cache */
|
|
16
|
-
set<T>(key: string, value: T): void;
|
|
15
|
+
set<T>(key: string, value: T): Promise<void> | void | number | boolean;
|
|
17
16
|
/** delete a key from the cache */
|
|
18
|
-
del(key: string): void;
|
|
17
|
+
del(key: string): void | Promise<void> | number | boolean;
|
|
19
18
|
/** flush all data */
|
|
20
|
-
flushAll(): void
|
|
19
|
+
flushAll(): void | Promise<void>;
|
|
20
|
+
};
|
|
21
|
+
export type PossiblyExtendedCacheStore = CacheStore & {
|
|
22
|
+
mget?: <T>(keys: string[]) => Promise<Record<string, T | undefined>>;
|
|
23
|
+
mset?: <T>(entries: {
|
|
24
|
+
key: string;
|
|
25
|
+
value: T;
|
|
26
|
+
}[]) => Promise<void> | void | number | boolean;
|
|
27
|
+
mdel?: (keys: string[]) => void | Promise<void> | number | boolean;
|
|
21
28
|
};
|
|
22
29
|
export type PatchedMessageWithRecipientJID = proto.IMessage & {
|
|
23
30
|
recipientJid?: string;
|
|
@@ -76,7 +83,7 @@ export type SocketConfig = {
|
|
|
76
83
|
* used to determine whether to retry a message or not */
|
|
77
84
|
msgRetryCounterCache?: CacheStore;
|
|
78
85
|
/** provide a cache to store a user's device list */
|
|
79
|
-
userDevicesCache?:
|
|
86
|
+
userDevicesCache?: PossiblyExtendedCacheStore;
|
|
80
87
|
/** cache to store call offers */
|
|
81
88
|
callOfferCache?: CacheStore;
|
|
82
89
|
/** cache to track placeholder resends */
|
|
@@ -92,6 +99,10 @@ export type SocketConfig = {
|
|
|
92
99
|
* entails uploading the jpegThumbnail to WA
|
|
93
100
|
* */
|
|
94
101
|
generateHighQualityLinkPreview: boolean;
|
|
102
|
+
/** Enable automatic session recreation for failed messages */
|
|
103
|
+
enableAutoSessionRecreation: boolean;
|
|
104
|
+
/** Enable recent message caching for retry handling */
|
|
105
|
+
enableRecentMessageCache: boolean;
|
|
95
106
|
/**
|
|
96
107
|
* Returns if a jid should be ignored,
|
|
97
108
|
* no event for that jid will be triggered.
|
|
@@ -107,16 +118,16 @@ export type SocketConfig = {
|
|
|
107
118
|
patch: boolean;
|
|
108
119
|
snapshot: boolean;
|
|
109
120
|
};
|
|
110
|
-
/** options for
|
|
111
|
-
options:
|
|
121
|
+
/** options for HTTP fetch requests */
|
|
122
|
+
options: RequestInit;
|
|
112
123
|
/**
|
|
113
124
|
* fetch a message from your store
|
|
114
125
|
* implement this so that messages failed to send
|
|
115
126
|
* (solves the "this message can take a while" issue) can be retried
|
|
116
127
|
* */
|
|
117
|
-
getMessage: (key:
|
|
128
|
+
getMessage: (key: WAMessageKey) => Promise<proto.IMessage | undefined>;
|
|
118
129
|
/** cached group metadata, use to prevent redundant requests to WA & speed up msg sending */
|
|
119
130
|
cachedGroupMetadata: (jid: string) => Promise<GroupMetadata | undefined>;
|
|
120
|
-
makeSignalRepository: (auth: SignalAuthState) =>
|
|
131
|
+
makeSignalRepository: (auth: SignalAuthState, logger: ILogger, pnToLIDFunc?: (jids: string[]) => Promise<LIDMapping[] | undefined>) => SignalRepositoryWithLIDStore;
|
|
121
132
|
};
|
|
122
133
|
//# sourceMappingURL=Socket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Socket.d.ts","sourceRoot":"","sources":["../../src/Types/Socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Socket.d.ts","sourceRoot":"","sources":["../../src/Types/Socket.ts"],"names":[],"mappings":"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"}
|
package/lib/Types/Socket.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Socket.js","sourceRoot":"","sources":["../../src/Types/Socket.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Socket.js","sourceRoot":"","sources":["../../src/Types/Socket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAI9C,OAAO,EAAyC,MAAM,WAAW,CAAA"}
|
|
@@ -8,8 +8,8 @@ import type { ILogger } from './logger.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function makeCacheableSignalKeyStore(store: SignalKeyStore, logger?: ILogger, _cache?: CacheStore): SignalKeyStore;
|
|
10
10
|
/**
|
|
11
|
-
* Adds DB
|
|
12
|
-
*
|
|
11
|
+
* Adds DB-like transaction capability to the SignalKeyStore
|
|
12
|
+
* Uses AsyncLocalStorage for automatic context management
|
|
13
13
|
* @param state the key store to apply this capability to
|
|
14
14
|
* @param logger logger to log events
|
|
15
15
|
* @returns SignalKeyStore with transaction capability
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,mBAAmB,EACnB,UAAU,EAGV,cAAc,EACd,6BAA6B,EAC7B,4BAA4B,EAC5B,MAAM,UAAU,CAAA;AAGjB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAYvC;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,cAAc,EACrB,MAAM,CAAC,EAAE,OAAO,EAChB,MAAM,CAAC,EAAE,UAAU,GACjB,cAAc,CAiEhB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACpC,OAAO,cAAc,EACrB,QAAQ,OAAO,EACf,2CAA2C,4BAA4B,KACrE,6BA6LF,CAAA;AAED,eAAO,MAAM,aAAa,QAAO,mBAsBhC,CAAA"}
|
package/lib/Utils/auth-utils.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import NodeCache from '@cacheable/node-cache';
|
|
2
|
+
import { AsyncLocalStorage } from 'async_hooks';
|
|
3
|
+
import { Mutex } from 'async-mutex';
|
|
2
4
|
import { randomBytes } from 'crypto';
|
|
5
|
+
import PQueue from 'p-queue';
|
|
3
6
|
import { DEFAULT_CACHE_TTLS } from '../Defaults/index.js';
|
|
4
7
|
import { Curve, signedKeyPair } from './crypto.js';
|
|
5
8
|
import { delay, generateRegistrationId } from './generics.js';
|
|
9
|
+
import { PreKeyManager } from './pre-key-manager.js';
|
|
6
10
|
/**
|
|
7
11
|
* Adds caching capability to a SignalKeyStore
|
|
8
12
|
* @param store the store to add caching to
|
|
@@ -16,154 +20,216 @@ export function makeCacheableSignalKeyStore(store, logger, _cache) {
|
|
|
16
20
|
useClones: false,
|
|
17
21
|
deleteOnExpire: true
|
|
18
22
|
});
|
|
23
|
+
// Mutex for protecting cache operations
|
|
24
|
+
const cacheMutex = new Mutex();
|
|
19
25
|
function getUniqueId(type, id) {
|
|
20
26
|
return `${type}.${id}`;
|
|
21
27
|
}
|
|
22
28
|
return {
|
|
23
29
|
async get(type, ids) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
idsToFetch.push(id);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (idsToFetch.length) {
|
|
36
|
-
logger?.trace({ items: idsToFetch.length }, 'loading from store');
|
|
37
|
-
const fetched = await store.get(type, idsToFetch);
|
|
38
|
-
for (const id of idsToFetch) {
|
|
39
|
-
const item = fetched[id];
|
|
40
|
-
if (item) {
|
|
30
|
+
return cacheMutex.runExclusive(async () => {
|
|
31
|
+
const data = {};
|
|
32
|
+
const idsToFetch = [];
|
|
33
|
+
for (const id of ids) {
|
|
34
|
+
const item = (await cache.get(getUniqueId(type, id)));
|
|
35
|
+
if (typeof item !== 'undefined') {
|
|
41
36
|
data[id] = item;
|
|
42
|
-
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
idsToFetch.push(id);
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
if (idsToFetch.length) {
|
|
43
|
+
logger?.trace({ items: idsToFetch.length }, 'loading from store');
|
|
44
|
+
const fetched = await store.get(type, idsToFetch);
|
|
45
|
+
for (const id of idsToFetch) {
|
|
46
|
+
const item = fetched[id];
|
|
47
|
+
if (item) {
|
|
48
|
+
data[id] = item;
|
|
49
|
+
await cache.set(getUniqueId(type, id), item);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return data;
|
|
54
|
+
});
|
|
47
55
|
},
|
|
48
56
|
async set(data) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
for (const
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
return cacheMutex.runExclusive(async () => {
|
|
58
|
+
let keys = 0;
|
|
59
|
+
for (const type in data) {
|
|
60
|
+
for (const id in data[type]) {
|
|
61
|
+
await cache.set(getUniqueId(type, id), data[type][id]);
|
|
62
|
+
keys += 1;
|
|
63
|
+
}
|
|
54
64
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
logger?.trace({ keys }, 'updated cache');
|
|
66
|
+
await store.set(data);
|
|
67
|
+
});
|
|
58
68
|
},
|
|
59
69
|
async clear() {
|
|
60
|
-
cache.flushAll();
|
|
70
|
+
await cache.flushAll();
|
|
61
71
|
await store.clear?.();
|
|
62
72
|
}
|
|
63
73
|
};
|
|
64
74
|
}
|
|
65
75
|
/**
|
|
66
|
-
* Adds DB
|
|
67
|
-
*
|
|
76
|
+
* Adds DB-like transaction capability to the SignalKeyStore
|
|
77
|
+
* Uses AsyncLocalStorage for automatic context management
|
|
68
78
|
* @param state the key store to apply this capability to
|
|
69
79
|
* @param logger logger to log events
|
|
70
80
|
* @returns SignalKeyStore with transaction capability
|
|
71
81
|
*/
|
|
72
82
|
export const addTransactionCapability = (state, logger, { maxCommitRetries, delayBetweenTriesMs }) => {
|
|
73
|
-
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
const txStorage = new AsyncLocalStorage();
|
|
84
|
+
// Queues for concurrency control
|
|
85
|
+
const keyQueues = new Map();
|
|
86
|
+
const txMutexes = new Map();
|
|
87
|
+
// Pre-key manager for specialized operations
|
|
88
|
+
const preKeyManager = new PreKeyManager(state, logger);
|
|
89
|
+
/**
|
|
90
|
+
* Get or create a queue for a specific key type
|
|
91
|
+
*/
|
|
92
|
+
function getQueue(key) {
|
|
93
|
+
if (!keyQueues.has(key)) {
|
|
94
|
+
keyQueues.set(key, new PQueue({ concurrency: 1 }));
|
|
95
|
+
}
|
|
96
|
+
return keyQueues.get(key);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get or create a transaction mutex
|
|
100
|
+
*/
|
|
101
|
+
function getTxMutex(key) {
|
|
102
|
+
if (!txMutexes.has(key)) {
|
|
103
|
+
txMutexes.set(key, new Mutex());
|
|
104
|
+
}
|
|
105
|
+
return txMutexes.get(key);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Check if currently in a transaction
|
|
109
|
+
*/
|
|
110
|
+
function isInTransaction() {
|
|
111
|
+
return !!txStorage.getStore();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Commit transaction with retries
|
|
115
|
+
*/
|
|
116
|
+
async function commitWithRetry(mutations) {
|
|
117
|
+
if (Object.keys(mutations).length === 0) {
|
|
118
|
+
logger.trace('no mutations in transaction');
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
logger.trace('committing transaction');
|
|
122
|
+
for (let attempt = 0; attempt < maxCommitRetries; attempt++) {
|
|
123
|
+
try {
|
|
124
|
+
await state.set(mutations);
|
|
125
|
+
logger.trace({ mutationCount: Object.keys(mutations).length }, 'committed transaction');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
const retriesLeft = maxCommitRetries - attempt - 1;
|
|
130
|
+
logger.warn(`failed to commit mutations, retries left=${retriesLeft}`);
|
|
131
|
+
if (retriesLeft === 0) {
|
|
132
|
+
throw error;
|
|
90
133
|
}
|
|
91
|
-
|
|
92
|
-
const value = transactionCache[type]?.[id];
|
|
93
|
-
if (value) {
|
|
94
|
-
dict[id] = value;
|
|
95
|
-
}
|
|
96
|
-
return dict;
|
|
97
|
-
}, {});
|
|
134
|
+
await delay(delayBetweenTriesMs);
|
|
98
135
|
}
|
|
99
|
-
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
get: async (type, ids) => {
|
|
140
|
+
const ctx = txStorage.getStore();
|
|
141
|
+
if (!ctx) {
|
|
142
|
+
// No transaction - direct read without exclusive lock for concurrency
|
|
100
143
|
return state.get(type, ids);
|
|
101
144
|
}
|
|
145
|
+
// In transaction - check cache first
|
|
146
|
+
const cached = ctx.cache[type] || {};
|
|
147
|
+
const missing = ids.filter(id => !(id in cached));
|
|
148
|
+
if (missing.length > 0) {
|
|
149
|
+
ctx.dbQueries++;
|
|
150
|
+
logger.trace({ type, count: missing.length }, 'fetching missing keys in transaction');
|
|
151
|
+
const fetched = await getTxMutex(type).runExclusive(() => state.get(type, missing));
|
|
152
|
+
// Update cache
|
|
153
|
+
ctx.cache[type] = ctx.cache[type] || {};
|
|
154
|
+
Object.assign(ctx.cache[type], fetched);
|
|
155
|
+
}
|
|
156
|
+
// Return requested ids from cache
|
|
157
|
+
const result = {};
|
|
158
|
+
for (const id of ids) {
|
|
159
|
+
const value = ctx.cache[type]?.[id];
|
|
160
|
+
if (value !== undefined && value !== null) {
|
|
161
|
+
result[id] = value;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
return result;
|
|
102
165
|
},
|
|
103
|
-
set: data => {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
166
|
+
set: async (data) => {
|
|
167
|
+
const ctx = txStorage.getStore();
|
|
168
|
+
if (!ctx) {
|
|
169
|
+
// No transaction - direct write with queue protection
|
|
170
|
+
const types = Object.keys(data);
|
|
171
|
+
// Process pre-keys with validation
|
|
172
|
+
for (const type_ of types) {
|
|
173
|
+
const type = type_;
|
|
174
|
+
if (type === 'pre-key') {
|
|
175
|
+
await preKeyManager.validateDeletions(data, type);
|
|
176
|
+
}
|
|
112
177
|
}
|
|
178
|
+
// Write all data in parallel
|
|
179
|
+
await Promise.all(types.map(type => getQueue(type).add(async () => {
|
|
180
|
+
const typeData = { [type]: data[type] };
|
|
181
|
+
await state.set(typeData);
|
|
182
|
+
})));
|
|
183
|
+
return;
|
|
113
184
|
}
|
|
114
|
-
|
|
115
|
-
|
|
185
|
+
// In transaction - update cache and mutations
|
|
186
|
+
logger.trace({ types: Object.keys(data) }, 'caching in transaction');
|
|
187
|
+
for (const key_ in data) {
|
|
188
|
+
const key = key_;
|
|
189
|
+
// Ensure structures exist
|
|
190
|
+
ctx.cache[key] = ctx.cache[key] || {};
|
|
191
|
+
ctx.mutations[key] = ctx.mutations[key] || {};
|
|
192
|
+
// Special handling for pre-keys
|
|
193
|
+
if (key === 'pre-key') {
|
|
194
|
+
await preKeyManager.processOperations(data, key, ctx.cache, ctx.mutations, true);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
// Normal key types
|
|
198
|
+
Object.assign(ctx.cache[key], data[key]);
|
|
199
|
+
Object.assign(ctx.mutations[key], data[key]);
|
|
200
|
+
}
|
|
116
201
|
}
|
|
117
202
|
},
|
|
118
203
|
isInTransaction,
|
|
119
|
-
async
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if (
|
|
123
|
-
logger.trace('
|
|
204
|
+
transaction: async (work, key) => {
|
|
205
|
+
const existing = txStorage.getStore();
|
|
206
|
+
// Nested transaction - reuse existing context
|
|
207
|
+
if (existing) {
|
|
208
|
+
logger.trace('reusing existing transaction context');
|
|
209
|
+
return work();
|
|
124
210
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
logger.trace({ dbQueriesInTransaction }, 'committed transaction');
|
|
140
|
-
break;
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
logger.warn(`failed to commit ${Object.keys(mutations).length} mutations, tries left=${tries}`);
|
|
144
|
-
await delay(delayBetweenTriesMs);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
logger.trace('no mutations in transaction');
|
|
150
|
-
}
|
|
211
|
+
// New transaction - acquire mutex and create context
|
|
212
|
+
return getTxMutex(key).runExclusive(async () => {
|
|
213
|
+
const ctx = {
|
|
214
|
+
cache: {},
|
|
215
|
+
mutations: {},
|
|
216
|
+
dbQueries: 0
|
|
217
|
+
};
|
|
218
|
+
logger.trace('entering transaction');
|
|
219
|
+
try {
|
|
220
|
+
const result = await txStorage.run(ctx, work);
|
|
221
|
+
// Commit mutations
|
|
222
|
+
await commitWithRetry(ctx.mutations);
|
|
223
|
+
logger.trace({ dbQueries: ctx.dbQueries }, 'transaction completed');
|
|
224
|
+
return result;
|
|
151
225
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (transactionsInProgress === 0) {
|
|
156
|
-
transactionCache = {};
|
|
157
|
-
mutations = {};
|
|
158
|
-
dbQueriesInTransaction = 0;
|
|
226
|
+
catch (error) {
|
|
227
|
+
logger.error({ error }, 'transaction failed, rolling back');
|
|
228
|
+
throw error;
|
|
159
229
|
}
|
|
160
|
-
}
|
|
161
|
-
return result;
|
|
230
|
+
});
|
|
162
231
|
}
|
|
163
232
|
};
|
|
164
|
-
function isInTransaction() {
|
|
165
|
-
return transactionsInProgress > 0;
|
|
166
|
-
}
|
|
167
233
|
};
|
|
168
234
|
export const initAuthCreds = () => {
|
|
169
235
|
const identityKey = Curve.generateKeyPair();
|
|
@@ -184,7 +250,8 @@ export const initAuthCreds = () => {
|
|
|
184
250
|
registered: false,
|
|
185
251
|
pairingCode: undefined,
|
|
186
252
|
lastPropHash: undefined,
|
|
187
|
-
routingInfo: undefined
|
|
253
|
+
routingInfo: undefined,
|
|
254
|
+
additionalData: undefined
|
|
188
255
|
};
|
|
189
256
|
};
|
|
190
257
|
//# sourceMappingURL=auth-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAUhD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"auth-utils.js","sourceRoot":"","sources":["../../src/Utils/auth-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-utils.d.ts","sourceRoot":"","sources":["../../src/Utils/browser-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAgB3C,eAAO,MAAM,QAAQ,EAAE,WAOtB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,WAG5C,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { platform, release } from 'os';
|
|
2
|
+
import { proto } from '../../WAProto/index.js';
|
|
3
|
+
const PLATFORM_MAP = {
|
|
4
|
+
aix: 'AIX',
|
|
5
|
+
darwin: 'Mac OS',
|
|
6
|
+
win32: 'Windows',
|
|
7
|
+
android: 'Android',
|
|
8
|
+
freebsd: 'FreeBSD',
|
|
9
|
+
openbsd: 'OpenBSD',
|
|
10
|
+
sunos: 'Solaris',
|
|
11
|
+
linux: undefined,
|
|
12
|
+
haiku: undefined,
|
|
13
|
+
cygwin: undefined,
|
|
14
|
+
netbsd: undefined
|
|
15
|
+
};
|
|
16
|
+
export const Browsers = {
|
|
17
|
+
ubuntu: browser => ['Ubuntu', browser, '22.04.4'],
|
|
18
|
+
macOS: browser => ['Mac OS', browser, '14.4.1'],
|
|
19
|
+
baileys: browser => ['Baileys', browser, '6.5.0'],
|
|
20
|
+
windows: browser => ['Windows', browser, '10.0.22631'],
|
|
21
|
+
/** The appropriate browser based on your OS & release */
|
|
22
|
+
appropriate: browser => [PLATFORM_MAP[platform()] || 'Ubuntu', browser, release()]
|
|
23
|
+
};
|
|
24
|
+
export const getPlatformId = (browser) => {
|
|
25
|
+
const platformType = proto.DeviceProps.PlatformType[browser.toUpperCase()];
|
|
26
|
+
return platformType ? platformType.toString() : '1'; //chrome
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=browser-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-utils.js","sourceRoot":"","sources":["../../src/Utils/browser-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAG9C,MAAM,YAAY,GAAG;IACpB,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;CACjB,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACpC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IACjD,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;IACtD,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;CAClF,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAS,CAAC,CAAA;IACjF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA,CAAC,QAAQ;AAC7D,CAAC,CAAA"}
|