@fer2809fl/baileys 7.0.1 → 7.0.4
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 +322 -578
- package/WAProto/WAProto.proto +916 -360
- package/WAProto/fix-imports.js +18 -22
- package/WAProto/index.d.ts +15471 -8638
- package/WAProto/index.js +80576 -45941
- package/lib/Defaults/index.d.ts +14 -18
- package/lib/Defaults/index.js +111 -115
- package/lib/Signal/libsignal.js +22 -31
- package/lib/Signal/lid-mapping.d.ts +0 -4
- package/lib/Signal/lid-mapping.js +0 -6
- package/lib/Socket/business.d.ts +8 -75
- package/lib/Socket/business.js +1 -0
- package/lib/Socket/chats.d.ts +0 -6
- package/lib/Socket/chats.js +3 -67
- package/lib/Socket/communities.d.ts +641 -336
- package/lib/Socket/communities.js +3 -6
- package/lib/Socket/dugong.d.ts +130 -0
- package/lib/Socket/dugong.js +772 -0
- package/lib/Socket/groups.d.ts +18 -23
- package/lib/Socket/groups.js +88 -168
- package/lib/Socket/index.d.ts +631 -322
- package/lib/Socket/index.js +12 -9
- package/lib/Socket/messages-recv.d.ts +52 -84
- package/lib/Socket/messages-recv.js +193 -677
- package/lib/Socket/messages-send.d.ts +643 -262
- package/lib/Socket/messages-send.js +1559 -1359
- package/lib/Socket/mex.d.ts +0 -1
- package/lib/Socket/mex.js +8 -22
- package/lib/Socket/native-buttons.js +231 -0
- package/lib/Socket/newsletter.d.ts +27 -42
- package/lib/Socket/newsletter.js +439 -402
- package/lib/Socket/socket.d.ts +2 -6
- package/lib/Socket/socket.js +47 -39
- package/lib/Types/Auth.d.ts +0 -1
- package/lib/Types/Bussines.d.ts +34 -22
- package/lib/Types/Call.d.ts +1 -1
- package/lib/Types/Chat.d.ts +0 -1
- package/lib/Types/Contact.d.ts +0 -2
- package/lib/Types/Events.d.ts +1 -20
- package/lib/Types/GroupMetadata.d.ts +1 -4
- package/lib/Types/Message.d.ts +348 -354
- package/lib/Types/Message.js +0 -4
- package/lib/Types/{Mex.d.ts → Newsletter.d.ts} +7 -17
- package/lib/Types/{Mex.js → Newsletter.js} +5 -3
- package/lib/Types/Signal.d.ts +1 -12
- package/lib/Types/Socket.d.ts +148 -135
- package/lib/Types/State.d.ts +0 -65
- package/lib/Types/State.js +0 -43
- package/lib/Types/index.d.ts +52 -52
- package/lib/Types/index.js +30 -23
- package/lib/Utils/auth-utils.d.ts +0 -5
- package/lib/Utils/auth-utils.js +0 -12
- package/lib/Utils/browser-utils.js +0 -1
- package/lib/Utils/crypto.d.ts +12 -12
- package/lib/Utils/decode-wa-message.d.ts +0 -18
- package/lib/Utils/decode-wa-message.js +0 -34
- package/lib/Utils/event-buffer.d.ts +0 -2
- package/lib/Utils/generics.d.ts +2 -3
- package/lib/Utils/generics.js +1 -10
- package/lib/Utils/history.d.ts +0 -2
- package/lib/Utils/history.js +9 -12
- package/lib/Utils/identity-change-handler.d.ts +0 -7
- package/lib/Utils/identity-change-handler.js +0 -1
- package/lib/Utils/index.d.ts +23 -30
- package/lib/Utils/index.js +3 -9
- package/lib/Utils/link-preview.js +2 -2
- package/lib/Utils/message-retry-manager.d.ts +0 -5
- package/lib/Utils/message-retry-manager.js +11 -11
- package/lib/Utils/messages-media.d.ts +13 -45
- package/lib/Utils/messages-media.js +98 -293
- package/lib/Utils/messages.d.ts +3 -16
- package/lib/Utils/messages.js +1123 -1219
- package/lib/Utils/noise-handler.d.ts +1 -1
- package/lib/Utils/process-message.js +1 -103
- package/lib/Utils/rich-messages.d.ts +277 -0
- package/lib/Utils/rich-messages.js +1144 -0
- package/lib/Utils/signal.d.ts +0 -13
- package/lib/Utils/signal.js +0 -42
- package/lib/Utils/sticker-pack.d.ts +10 -0
- package/lib/Utils/sticker-pack.js +111 -0
- package/lib/Utils/sync-action-utils.js +0 -1
- package/lib/Utils/tc-token-utils.d.ts +1 -26
- package/lib/Utils/tc-token-utils.js +5 -151
- package/lib/Utils/validate-connection.d.ts +0 -1
- package/lib/Utils/validate-connection.js +3 -13
- package/lib/WABinary/decode.d.ts +1 -1
- package/lib/WABinary/generic-utils.d.ts +3 -1
- package/lib/WABinary/generic-utils.js +78 -0
- package/lib/WABinary/jid-utils.d.ts +0 -11
- package/lib/WABinary/jid-utils.js +0 -33
- package/lib/WAM/encode.d.ts +1 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +3 -26
- package/lib/WAUSync/Protocols/index.d.ts +0 -1
- package/lib/WAUSync/USyncQuery.d.ts +0 -1
- package/lib/WAUSync/USyncQuery.js +1 -1
- package/lib/WAUSync/USyncUser.d.ts +0 -4
- package/lib/WAUSync/USyncUser.js +0 -8
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -4
- package/package.json +27 -31
- package/LICENSE +0 -21
- package/engine-requirements.js +0 -10
- package/lib/Defaults/index.d.ts.map +0 -1
- package/lib/Defaults/index.js.map +0 -1
- package/lib/Signal/Group/ciphertext-message.d.ts.map +0 -1
- package/lib/Signal/Group/ciphertext-message.js.map +0 -1
- package/lib/Signal/Group/group-session-builder.d.ts.map +0 -1
- package/lib/Signal/Group/group-session-builder.js.map +0 -1
- package/lib/Signal/Group/group_cipher.d.ts.map +0 -1
- package/lib/Signal/Group/group_cipher.js.map +0 -1
- package/lib/Signal/Group/index.d.ts.map +0 -1
- package/lib/Signal/Group/index.js.map +0 -1
- package/lib/Signal/Group/keyhelper.d.ts.map +0 -1
- package/lib/Signal/Group/keyhelper.js.map +0 -1
- package/lib/Signal/Group/sender-chain-key.d.ts.map +0 -1
- package/lib/Signal/Group/sender-chain-key.js.map +0 -1
- package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +0 -1
- package/lib/Signal/Group/sender-key-distribution-message.js.map +0 -1
- package/lib/Signal/Group/sender-key-message.d.ts.map +0 -1
- package/lib/Signal/Group/sender-key-message.js.map +0 -1
- package/lib/Signal/Group/sender-key-name.d.ts.map +0 -1
- package/lib/Signal/Group/sender-key-name.js.map +0 -1
- package/lib/Signal/Group/sender-key-record.d.ts.map +0 -1
- package/lib/Signal/Group/sender-key-record.js.map +0 -1
- package/lib/Signal/Group/sender-key-state.d.ts.map +0 -1
- package/lib/Signal/Group/sender-key-state.js.map +0 -1
- package/lib/Signal/Group/sender-message-key.d.ts.map +0 -1
- package/lib/Signal/Group/sender-message-key.js.map +0 -1
- package/lib/Signal/libsignal.d.ts.map +0 -1
- package/lib/Signal/libsignal.js.map +0 -1
- package/lib/Signal/lid-mapping.d.ts.map +0 -1
- package/lib/Signal/lid-mapping.js.map +0 -1
- package/lib/Socket/Client/index.d.ts.map +0 -1
- package/lib/Socket/Client/index.js.map +0 -1
- package/lib/Socket/Client/types.d.ts.map +0 -1
- package/lib/Socket/Client/types.js.map +0 -1
- package/lib/Socket/Client/websocket.d.ts.map +0 -1
- package/lib/Socket/Client/websocket.js.map +0 -1
- package/lib/Socket/business.d.ts.map +0 -1
- package/lib/Socket/business.js.map +0 -1
- package/lib/Socket/chats.d.ts.map +0 -1
- package/lib/Socket/chats.js.map +0 -1
- package/lib/Socket/communities.d.ts.map +0 -1
- package/lib/Socket/communities.js.map +0 -1
- package/lib/Socket/groups.d.ts.map +0 -1
- package/lib/Socket/groups.js.map +0 -1
- package/lib/Socket/index.d.ts.map +0 -1
- package/lib/Socket/index.js.map +0 -1
- package/lib/Socket/messages-recv.d.ts.map +0 -1
- package/lib/Socket/messages-recv.js.map +0 -1
- package/lib/Socket/messages-send.d.ts.map +0 -1
- package/lib/Socket/messages-send.js.map +0 -1
- package/lib/Socket/mex.d.ts.map +0 -1
- package/lib/Socket/mex.js.map +0 -1
- package/lib/Socket/newsletter.d.ts.map +0 -1
- package/lib/Socket/newsletter.js.map +0 -1
- package/lib/Socket/smgss.d.ts +0 -119
- package/lib/Socket/smgss.d.ts.map +0 -1
- package/lib/Socket/smgss.js +0 -453
- package/lib/Socket/smgss.js.map +0 -1
- package/lib/Socket/socket.d.ts.map +0 -1
- package/lib/Socket/socket.js.map +0 -1
- package/lib/Store/index.d.ts +0 -4
- package/lib/Store/index.d.ts.map +0 -1
- package/lib/Store/index.js +0 -4
- package/lib/Store/index.js.map +0 -1
- package/lib/Store/make-in-memory-store.d.ts +0 -132
- package/lib/Store/make-in-memory-store.d.ts.map +0 -1
- package/lib/Store/make-in-memory-store.js +0 -450
- package/lib/Store/make-in-memory-store.js.map +0 -1
- package/lib/Store/make-ordered-dictionary.d.ts +0 -14
- package/lib/Store/make-ordered-dictionary.d.ts.map +0 -1
- package/lib/Store/make-ordered-dictionary.js +0 -80
- package/lib/Store/make-ordered-dictionary.js.map +0 -1
- package/lib/Store/object-repository.d.ts +0 -13
- package/lib/Store/object-repository.d.ts.map +0 -1
- package/lib/Store/object-repository.js +0 -24
- package/lib/Store/object-repository.js.map +0 -1
- package/lib/Types/Auth.d.ts.map +0 -1
- package/lib/Types/Auth.js.map +0 -1
- package/lib/Types/Bussines.d.ts.map +0 -1
- package/lib/Types/Bussines.js.map +0 -1
- package/lib/Types/Call.d.ts.map +0 -1
- package/lib/Types/Call.js.map +0 -1
- package/lib/Types/Chat.d.ts.map +0 -1
- package/lib/Types/Chat.js.map +0 -1
- package/lib/Types/Contact.d.ts.map +0 -1
- package/lib/Types/Contact.js.map +0 -1
- package/lib/Types/Events.d.ts.map +0 -1
- package/lib/Types/Events.js.map +0 -1
- package/lib/Types/GroupMetadata.d.ts.map +0 -1
- package/lib/Types/GroupMetadata.js.map +0 -1
- package/lib/Types/Label.d.ts.map +0 -1
- package/lib/Types/Label.js.map +0 -1
- package/lib/Types/LabelAssociation.d.ts.map +0 -1
- package/lib/Types/LabelAssociation.js.map +0 -1
- package/lib/Types/Message.d.ts.map +0 -1
- package/lib/Types/Message.js.map +0 -1
- package/lib/Types/Mex.d.ts.map +0 -1
- package/lib/Types/Mex.js.map +0 -1
- package/lib/Types/Product.d.ts.map +0 -1
- package/lib/Types/Product.js.map +0 -1
- package/lib/Types/Signal.d.ts.map +0 -1
- package/lib/Types/Signal.js.map +0 -1
- package/lib/Types/Socket.d.ts.map +0 -1
- package/lib/Types/Socket.js.map +0 -1
- package/lib/Types/State.d.ts.map +0 -1
- package/lib/Types/State.js.map +0 -1
- package/lib/Types/USync.d.ts.map +0 -1
- package/lib/Types/USync.js.map +0 -1
- package/lib/Types/index.d.ts.map +0 -1
- package/lib/Types/index.js.map +0 -1
- package/lib/Utils/auth-utils.d.ts.map +0 -1
- package/lib/Utils/auth-utils.js.map +0 -1
- package/lib/Utils/browser-utils.d.ts.map +0 -1
- package/lib/Utils/browser-utils.js.map +0 -1
- package/lib/Utils/business.d.ts.map +0 -1
- package/lib/Utils/business.js.map +0 -1
- package/lib/Utils/button-handler.d.ts +0 -28
- package/lib/Utils/button-handler.d.ts.map +0 -1
- package/lib/Utils/button-handler.js +0 -140
- package/lib/Utils/button-handler.js.map +0 -1
- package/lib/Utils/chat-utils.d.ts.map +0 -1
- package/lib/Utils/chat-utils.js.map +0 -1
- package/lib/Utils/companion-reg-client-utils.d.ts.map +0 -1
- package/lib/Utils/companion-reg-client-utils.js.map +0 -1
- package/lib/Utils/crypto.d.ts.map +0 -1
- package/lib/Utils/crypto.js.map +0 -1
- package/lib/Utils/decode-wa-message.d.ts.map +0 -1
- package/lib/Utils/decode-wa-message.js.map +0 -1
- package/lib/Utils/event-buffer.d.ts.map +0 -1
- package/lib/Utils/event-buffer.js.map +0 -1
- package/lib/Utils/generics.d.ts.map +0 -1
- package/lib/Utils/generics.js.map +0 -1
- package/lib/Utils/history.d.ts.map +0 -1
- package/lib/Utils/history.js.map +0 -1
- package/lib/Utils/identity-change-handler.d.ts.map +0 -1
- package/lib/Utils/identity-change-handler.js.map +0 -1
- package/lib/Utils/index.d.ts.map +0 -1
- package/lib/Utils/index.js.map +0 -1
- package/lib/Utils/interactive.d.ts +0 -60
- package/lib/Utils/interactive.d.ts.map +0 -1
- package/lib/Utils/interactive.js +0 -224
- package/lib/Utils/interactive.js.map +0 -1
- package/lib/Utils/link-preview.d.ts.map +0 -1
- package/lib/Utils/link-preview.js.map +0 -1
- package/lib/Utils/logger.d.ts.map +0 -1
- package/lib/Utils/logger.js.map +0 -1
- package/lib/Utils/lt-hash.d.ts.map +0 -1
- package/lib/Utils/lt-hash.js.map +0 -1
- package/lib/Utils/make-mutex.d.ts.map +0 -1
- package/lib/Utils/make-mutex.js.map +0 -1
- package/lib/Utils/message-composer.d.ts +0 -93
- package/lib/Utils/message-composer.d.ts.map +0 -1
- package/lib/Utils/message-composer.js +0 -311
- package/lib/Utils/message-composer.js.map +0 -1
- package/lib/Utils/message-retry-manager.d.ts.map +0 -1
- package/lib/Utils/message-retry-manager.js.map +0 -1
- package/lib/Utils/messages-media.d.ts.map +0 -1
- package/lib/Utils/messages-media.js.map +0 -1
- package/lib/Utils/messages-newsletter.d.ts +0 -74
- package/lib/Utils/messages-newsletter.d.ts.map +0 -1
- package/lib/Utils/messages-newsletter.js +0 -128
- package/lib/Utils/messages-newsletter.js.map +0 -1
- package/lib/Utils/messages.d.ts.map +0 -1
- package/lib/Utils/messages.js.map +0 -1
- package/lib/Utils/noise-handler.d.ts.map +0 -1
- package/lib/Utils/noise-handler.js.map +0 -1
- package/lib/Utils/offline-node-processor.d.ts.map +0 -1
- package/lib/Utils/offline-node-processor.js.map +0 -1
- package/lib/Utils/pre-key-manager.d.ts.map +0 -1
- package/lib/Utils/pre-key-manager.js.map +0 -1
- package/lib/Utils/process-message.d.ts.map +0 -1
- package/lib/Utils/process-message.js.map +0 -1
- package/lib/Utils/reporting-utils.d.ts.map +0 -1
- package/lib/Utils/reporting-utils.js.map +0 -1
- package/lib/Utils/shortcake-crypto.d.ts +0 -36
- package/lib/Utils/shortcake-crypto.d.ts.map +0 -1
- package/lib/Utils/shortcake-crypto.js +0 -71
- package/lib/Utils/shortcake-crypto.js.map +0 -1
- package/lib/Utils/shortcake.d.ts +0 -36
- package/lib/Utils/shortcake.d.ts.map +0 -1
- package/lib/Utils/shortcake.js +0 -162
- package/lib/Utils/shortcake.js.map +0 -1
- package/lib/Utils/signal.d.ts.map +0 -1
- package/lib/Utils/signal.js.map +0 -1
- package/lib/Utils/stanza-ack.d.ts.map +0 -1
- package/lib/Utils/stanza-ack.js.map +0 -1
- package/lib/Utils/sync-action-utils.d.ts.map +0 -1
- package/lib/Utils/sync-action-utils.js.map +0 -1
- package/lib/Utils/tc-token-utils.d.ts.map +0 -1
- package/lib/Utils/tc-token-utils.js.map +0 -1
- package/lib/Utils/use-multi-file-auth-state.d.ts.map +0 -1
- package/lib/Utils/use-multi-file-auth-state.js.map +0 -1
- package/lib/Utils/use-single-file-auth-state.d.ts +0 -6
- package/lib/Utils/use-single-file-auth-state.d.ts.map +0 -1
- package/lib/Utils/use-single-file-auth-state.js +0 -111
- package/lib/Utils/use-single-file-auth-state.js.map +0 -1
- package/lib/Utils/use-sqlite-auth-state.d.ts +0 -14
- package/lib/Utils/use-sqlite-auth-state.d.ts.map +0 -1
- package/lib/Utils/use-sqlite-auth-state.js +0 -107
- package/lib/Utils/use-sqlite-auth-state.js.map +0 -1
- package/lib/Utils/validate-connection.d.ts.map +0 -1
- package/lib/Utils/validate-connection.js.map +0 -1
- package/lib/WABinary/constants.d.ts.map +0 -1
- package/lib/WABinary/constants.js.map +0 -1
- package/lib/WABinary/decode.d.ts.map +0 -1
- package/lib/WABinary/decode.js.map +0 -1
- package/lib/WABinary/encode.d.ts.map +0 -1
- package/lib/WABinary/encode.js.map +0 -1
- package/lib/WABinary/generic-utils.d.ts.map +0 -1
- package/lib/WABinary/generic-utils.js.map +0 -1
- package/lib/WABinary/index.d.ts.map +0 -1
- package/lib/WABinary/index.js.map +0 -1
- package/lib/WABinary/jid-utils.d.ts.map +0 -1
- package/lib/WABinary/jid-utils.js.map +0 -1
- package/lib/WABinary/types.d.ts.map +0 -1
- package/lib/WABinary/types.js.map +0 -1
- package/lib/WAM/BinaryInfo.d.ts.map +0 -1
- package/lib/WAM/BinaryInfo.js.map +0 -1
- package/lib/WAM/constants.d.ts.map +0 -1
- package/lib/WAM/constants.js.map +0 -1
- package/lib/WAM/encode.d.ts.map +0 -1
- package/lib/WAM/encode.js.map +0 -1
- package/lib/WAM/index.d.ts.map +0 -1
- package/lib/WAM/index.js.map +0 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +0 -1
- package/lib/WAUSync/Protocols/index.d.ts.map +0 -1
- package/lib/WAUSync/Protocols/index.js.map +0 -1
- package/lib/WAUSync/USyncQuery.d.ts.map +0 -1
- package/lib/WAUSync/USyncQuery.js.map +0 -1
- package/lib/WAUSync/USyncUser.d.ts.map +0 -1
- package/lib/WAUSync/USyncUser.js.map +0 -1
- package/lib/WAUSync/index.d.ts.map +0 -1
- package/lib/WAUSync/index.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
package/lib/Socket/socket.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Boom } from '@hapi/boom';
|
|
2
|
-
import
|
|
2
|
+
import type { SocketConfig } from '../Types/index.js';
|
|
3
3
|
import { type BinaryNode } from '../WABinary/index.js';
|
|
4
4
|
import { BinaryInfo } from '../WAM/BinaryInfo.js';
|
|
5
5
|
import { USyncQuery } from '../WAUSync/index.js';
|
|
@@ -19,7 +19,6 @@ export declare const makeSocket: (config: SocketConfig) => {
|
|
|
19
19
|
createBufferedFunction<A extends any[], T>(work: (...args: A) => Promise<T>): (...args: A) => Promise<T>;
|
|
20
20
|
flush(): boolean;
|
|
21
21
|
isBuffering(): boolean;
|
|
22
|
-
destroy(): void;
|
|
23
22
|
};
|
|
24
23
|
authState: {
|
|
25
24
|
creds: import("../Types/index.js").AuthenticationCreds;
|
|
@@ -35,9 +34,8 @@ export declare const makeSocket: (config: SocketConfig) => {
|
|
|
35
34
|
sendNode: (frame: BinaryNode) => Promise<void>;
|
|
36
35
|
logout: (msg?: string) => Promise<void>;
|
|
37
36
|
end: (error: Error | undefined) => Promise<void>;
|
|
38
|
-
registerSocketEndHandler: (handler: (error: Error | undefined) => void | Promise<void>) => void;
|
|
39
37
|
onUnexpectedError: (err: Error | Boom, msg: string) => void;
|
|
40
|
-
uploadPreKeys: (count?: number) => Promise<void>;
|
|
38
|
+
uploadPreKeys: (count?: number, retryCount?: number) => Promise<void>;
|
|
41
39
|
uploadPreKeysToServerIfRequired: () => Promise<void>;
|
|
42
40
|
digestKeyBundle: () => Promise<void>;
|
|
43
41
|
rotateSignedPreKey: () => Promise<void>;
|
|
@@ -53,7 +51,5 @@ export declare const makeSocket: (config: SocketConfig) => {
|
|
|
53
51
|
jid: string;
|
|
54
52
|
exists: boolean;
|
|
55
53
|
}[] | undefined>;
|
|
56
|
-
fetchAccountReachoutTimelock: () => Promise<ReachoutTimelockState>;
|
|
57
|
-
fetchNewChatMessageCap: () => Promise<NewChatMessageCapInfo>;
|
|
58
54
|
};
|
|
59
55
|
//# sourceMappingURL=socket.d.ts.map
|
package/lib/Socket/socket.js
CHANGED
|
@@ -3,7 +3,7 @@ import { randomBytes } from 'crypto';
|
|
|
3
3
|
import { URL } from 'url';
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
import { proto } from '../../WAProto/index.js';
|
|
6
|
-
import { DEF_CALLBACK_PREFIX, DEF_TAG_PREFIX, INITIAL_PREKEY_COUNT, MIN_PREKEY_COUNT, NOISE_WA_HEADER, PROCESSABLE_HISTORY_TYPES, TimeMs, UPLOAD_TIMEOUT } from '../Defaults/index.js';
|
|
6
|
+
import { DEF_CALLBACK_PREFIX, DEF_TAG_PREFIX, INITIAL_PREKEY_COUNT, MIN_PREKEY_COUNT, MIN_UPLOAD_INTERVAL, NOISE_WA_HEADER, PROCESSABLE_HISTORY_TYPES, TimeMs, UPLOAD_TIMEOUT } from '../Defaults/index.js';
|
|
7
7
|
import { QueryIds, ReachoutTimelockEnforcementType } from '../Types/index.js';
|
|
8
8
|
import { DisconnectReason, XWAPaths } from '../Types/index.js';
|
|
9
9
|
import { addTransactionCapability, aesEncryptCTR, bindWaitForConnectionUpdate, buildPairingQRData, bytesToCrockford, configureSuccessfulPairing, Curve, derivePairingCodeKey, generateLoginNode, generateMdTagPrefix, generateRegistrationNode, getCodeFromWSError, getCompanionPlatformId, getErrorCodeFromStreamError, getNextPreKeysNode, makeEventBuffer, makeNoiseHandler, promiseTimeout, signedKeyPair, xmppSignedPreKey } from '../Utils/index.js';
|
|
@@ -349,16 +349,25 @@ export const makeSocket = (config) => {
|
|
|
349
349
|
const countChild = getBinaryNodeChild(result, 'count');
|
|
350
350
|
return +countChild.attrs.value;
|
|
351
351
|
};
|
|
352
|
-
//
|
|
352
|
+
// Pre-key upload state management
|
|
353
353
|
let uploadPreKeysPromise = null;
|
|
354
|
+
let lastUploadTime = 0;
|
|
354
355
|
/** generates and uploads a set of pre-keys to the server */
|
|
355
|
-
const uploadPreKeys = async (count = MIN_PREKEY_COUNT) => {
|
|
356
|
+
const uploadPreKeys = async (count = MIN_PREKEY_COUNT, retryCount = 0) => {
|
|
357
|
+
// Check minimum interval (except for retries)
|
|
358
|
+
if (retryCount === 0) {
|
|
359
|
+
const timeSinceLastUpload = Date.now() - lastUploadTime;
|
|
360
|
+
if (timeSinceLastUpload < MIN_UPLOAD_INTERVAL) {
|
|
361
|
+
logger.debug(`Skipping upload, only ${timeSinceLastUpload}ms since last upload`);
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
// Prevent multiple concurrent uploads
|
|
356
366
|
if (uploadPreKeysPromise) {
|
|
357
367
|
logger.debug('Pre-key upload already in progress, waiting for completion');
|
|
358
368
|
await uploadPreKeysPromise;
|
|
359
|
-
return;
|
|
360
369
|
}
|
|
361
|
-
const uploadLogic = async (
|
|
370
|
+
const uploadLogic = async () => {
|
|
362
371
|
logger.info({ count, retryCount }, 'uploading pre-keys');
|
|
363
372
|
// Generate and save pre-keys atomically (prevents ID collisions on retry)
|
|
364
373
|
const node = await keys.transaction(async () => {
|
|
@@ -366,28 +375,29 @@ export const makeSocket = (config) => {
|
|
|
366
375
|
const { update, node } = await getNextPreKeysNode({ creds, keys }, count);
|
|
367
376
|
// Update credentials immediately to prevent duplicate IDs on retry
|
|
368
377
|
ev.emit('creds.update', update);
|
|
369
|
-
return node;
|
|
378
|
+
return node; // Only return node since update is already used
|
|
370
379
|
}, creds?.me?.id || 'upload-pre-keys');
|
|
371
380
|
// Upload to server (outside transaction, can fail without affecting local keys)
|
|
372
381
|
try {
|
|
373
382
|
await query(node);
|
|
374
383
|
logger.info({ count }, 'uploaded pre-keys successfully');
|
|
384
|
+
lastUploadTime = Date.now();
|
|
375
385
|
}
|
|
376
386
|
catch (uploadError) {
|
|
377
387
|
logger.error({ uploadError: uploadError.toString(), count }, 'Failed to upload pre-keys to server');
|
|
378
|
-
//
|
|
388
|
+
// Exponential backoff retry (max 3 retries)
|
|
379
389
|
if (retryCount < 3) {
|
|
380
390
|
const backoffDelay = Math.min(1000 * Math.pow(2, retryCount), 10000);
|
|
381
391
|
logger.info(`Retrying pre-key upload in ${backoffDelay}ms`);
|
|
382
392
|
await new Promise(resolve => setTimeout(resolve, backoffDelay));
|
|
383
|
-
return
|
|
393
|
+
return uploadPreKeys(count, retryCount + 1);
|
|
384
394
|
}
|
|
385
395
|
throw uploadError;
|
|
386
396
|
}
|
|
387
397
|
};
|
|
388
398
|
// Add timeout protection
|
|
389
399
|
uploadPreKeysPromise = Promise.race([
|
|
390
|
-
uploadLogic(
|
|
400
|
+
uploadLogic(),
|
|
391
401
|
new Promise((_, reject) => setTimeout(() => reject(new Boom('Pre-key upload timeout', { statusCode: 408 })), UPLOAD_TIMEOUT))
|
|
392
402
|
]);
|
|
393
403
|
try {
|
|
@@ -406,6 +416,32 @@ export const makeSocket = (config) => {
|
|
|
406
416
|
const exists = !!preKeys[currentPreKeyId.toString()];
|
|
407
417
|
return { exists, currentPreKeyId };
|
|
408
418
|
};
|
|
419
|
+
const registerSocketEndHandler = (handler) => {
|
|
420
|
+
socketEndHandlers.push(handler);
|
|
421
|
+
};
|
|
422
|
+
/**
|
|
423
|
+
* Fetches your account's standing when it comes to restrictions.
|
|
424
|
+
* @returns Returns the state of the restrictions.
|
|
425
|
+
*/
|
|
426
|
+
const fetchAccountReachoutTimelock = async () => {
|
|
427
|
+
const queryResult = await executeWMexQuery({}, QueryIds.REACHOUT_TIMELOCK, XWAPaths.xwa2_fetch_account_reachout_timelock, query, generateMessageTag);
|
|
428
|
+
const result = {
|
|
429
|
+
isActive: !!queryResult?.is_active,
|
|
430
|
+
timeEnforcementEnds: queryResult?.time_enforcement_ends && queryResult?.time_enforcement_ends !== '0'
|
|
431
|
+
? new Date(parseInt(queryResult.time_enforcement_ends, 10) * 1000)
|
|
432
|
+
: undefined,
|
|
433
|
+
enforcementType: queryResult?.enforcement_type ?? ReachoutTimelockEnforcementType.DEFAULT
|
|
434
|
+
};
|
|
435
|
+
ev.emit('connection.update', { reachoutTimeLock: result });
|
|
436
|
+
return result;
|
|
437
|
+
};
|
|
438
|
+
/**
|
|
439
|
+
* Fetches your account's new chat limits.
|
|
440
|
+
* @returns Returns the quota and the usage.
|
|
441
|
+
*/
|
|
442
|
+
const fetchNewChatMessageCap = async () => {
|
|
443
|
+
return executeWMexQuery({ input: { type: 'INDIVIDUAL_NEW_CHAT_MSG' } }, QueryIds.MESSAGE_CAPPING_INFO, XWAPaths.xwa2_message_capping_info, query, generateMessageTag);
|
|
444
|
+
};
|
|
409
445
|
const uploadPreKeysToServerIfRequired = async () => {
|
|
410
446
|
try {
|
|
411
447
|
let count = 0;
|
|
@@ -594,9 +630,7 @@ export const makeSocket = (config) => {
|
|
|
594
630
|
void end(new Boom(msg || 'Intentional Logout', { statusCode: DisconnectReason.loggedOut }));
|
|
595
631
|
};
|
|
596
632
|
const requestPairingCode = async (phoneNumber, customPairingCode) => {
|
|
597
|
-
|
|
598
|
-
// salvo que el llamador pase explícitamente su propio customPairingCode.
|
|
599
|
-
const pairingCode = customPairingCode ?? 'ASTABOTS';
|
|
633
|
+
const pairingCode = customPairingCode ?? bytesToCrockford(randomBytes(5));
|
|
600
634
|
if (customPairingCode && customPairingCode?.length !== 8) {
|
|
601
635
|
throw new Error('Custom pairing code must be exactly 8 chars');
|
|
602
636
|
}
|
|
@@ -898,32 +932,6 @@ export const makeSocket = (config) => {
|
|
|
898
932
|
logger.debug({ error }, 'failed to send unified_session telemetry');
|
|
899
933
|
}
|
|
900
934
|
};
|
|
901
|
-
const registerSocketEndHandler = (handler) => {
|
|
902
|
-
socketEndHandlers.push(handler);
|
|
903
|
-
};
|
|
904
|
-
/**
|
|
905
|
-
* Fetches your account's standing when it comes to restrictions.
|
|
906
|
-
* @returns Returns the state of the restrictions.
|
|
907
|
-
*/
|
|
908
|
-
const fetchAccountReachoutTimelock = async () => {
|
|
909
|
-
const queryResult = await executeWMexQuery({}, QueryIds.REACHOUT_TIMELOCK, XWAPaths.xwa2_fetch_account_reachout_timelock, query, generateMessageTag);
|
|
910
|
-
const result = {
|
|
911
|
-
isActive: !!queryResult?.is_active,
|
|
912
|
-
timeEnforcementEnds: queryResult?.time_enforcement_ends && queryResult?.time_enforcement_ends !== '0'
|
|
913
|
-
? new Date(parseInt(queryResult.time_enforcement_ends, 10) * 1000)
|
|
914
|
-
: undefined,
|
|
915
|
-
enforcementType: queryResult?.enforcement_type ?? ReachoutTimelockEnforcementType.DEFAULT
|
|
916
|
-
};
|
|
917
|
-
ev.emit('connection.update', { reachoutTimeLock: result });
|
|
918
|
-
return result;
|
|
919
|
-
};
|
|
920
|
-
/**
|
|
921
|
-
* Fetches your account's new chat limits.
|
|
922
|
-
* @returns Returns the quota and the usage.
|
|
923
|
-
*/
|
|
924
|
-
const fetchNewChatMessageCap = async () => {
|
|
925
|
-
return executeWMexQuery({ input: { type: 'INDIVIDUAL_NEW_CHAT_MSG' } }, QueryIds.MESSAGE_CAPPING_INFO, XWAPaths.xwa2_message_capping_info, query, generateMessageTag);
|
|
926
|
-
};
|
|
927
935
|
return {
|
|
928
936
|
type: 'md',
|
|
929
937
|
ws,
|
|
@@ -941,7 +949,6 @@ export const makeSocket = (config) => {
|
|
|
941
949
|
sendNode,
|
|
942
950
|
logout,
|
|
943
951
|
end,
|
|
944
|
-
registerSocketEndHandler,
|
|
945
952
|
onUnexpectedError,
|
|
946
953
|
uploadPreKeys,
|
|
947
954
|
uploadPreKeysToServerIfRequired,
|
|
@@ -955,6 +962,7 @@ export const makeSocket = (config) => {
|
|
|
955
962
|
waitForConnectionUpdate: bindWaitForConnectionUpdate(ev),
|
|
956
963
|
sendWAMBuffer,
|
|
957
964
|
executeUSyncQuery,
|
|
965
|
+
registerSocketEndHandler,
|
|
958
966
|
onWhatsApp,
|
|
959
967
|
fetchAccountReachoutTimelock,
|
|
960
968
|
fetchNewChatMessageCap
|
package/lib/Types/Auth.d.ts
CHANGED
package/lib/Types/Bussines.d.ts
CHANGED
|
@@ -1,25 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
days: HoursDay[];
|
|
1
|
+
export type DayOfWeekBussines =
|
|
2
|
+
| "sun"
|
|
3
|
+
| "mon"
|
|
4
|
+
| "tue"
|
|
5
|
+
| "wed"
|
|
6
|
+
| "thu"
|
|
7
|
+
| "fri"
|
|
8
|
+
| "sat";
|
|
9
|
+
export type HoursDay =
|
|
10
|
+
| {
|
|
11
|
+
day: DayOfWeekBussines;
|
|
12
|
+
mode: "specific_hours";
|
|
13
|
+
openTimeInMinutes: string;
|
|
14
|
+
closeTimeInMinutes: string;
|
|
15
|
+
}
|
|
16
|
+
| {
|
|
17
|
+
day: DayOfWeekBussines;
|
|
18
|
+
mode: "open_24h" | "appointment_only";
|
|
20
19
|
};
|
|
20
|
+
export type UpdateBussinesProfileProps = {
|
|
21
|
+
address?: string;
|
|
22
|
+
websites?: string[];
|
|
23
|
+
email?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
hours?: {
|
|
26
|
+
timezone: string;
|
|
27
|
+
days: HoursDay[];
|
|
28
|
+
};
|
|
21
29
|
};
|
|
22
|
-
export type
|
|
23
|
-
|
|
30
|
+
export type UpdateBusinessProfileProps = UpdateBussinesProfileProps;
|
|
31
|
+
export type QuickReplyAction = {
|
|
32
|
+
shortcut?: string;
|
|
33
|
+
message?: string;
|
|
34
|
+
deleted?: boolean;
|
|
35
|
+
timestamp?: string;
|
|
24
36
|
};
|
|
25
|
-
//# sourceMappingURL=Bussines.d.ts.map
|
|
37
|
+
//# sourceMappingURL=Bussines.d.ts.map
|
package/lib/Types/Call.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type WACallUpdateType = 'offer' | 'ringing' | '
|
|
1
|
+
export type WACallUpdateType = 'offer' | 'ringing' | 'timeout' | 'reject' | 'accept' | 'terminate';
|
|
2
2
|
export type WACallEvent = {
|
|
3
3
|
chatId: string;
|
|
4
4
|
from: string;
|
package/lib/Types/Chat.d.ts
CHANGED
package/lib/Types/Contact.d.ts
CHANGED
|
@@ -9,8 +9,6 @@ export interface Contact {
|
|
|
9
9
|
name?: string;
|
|
10
10
|
/** name of the contact, the contact has set on their own on WA */
|
|
11
11
|
notify?: string;
|
|
12
|
-
/** username associated with this contact, when provided by WA */
|
|
13
|
-
username?: string;
|
|
14
12
|
/** I have no idea */
|
|
15
13
|
verifiedName?: string;
|
|
16
14
|
/**
|
package/lib/Types/Events.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { GroupMetadata, GroupParticipant, ParticipantAction, RequestJoinAct
|
|
|
8
8
|
import type { Label } from './Label.js';
|
|
9
9
|
import type { LabelAssociation } from './LabelAssociation.js';
|
|
10
10
|
import type { MessageUpsertType, MessageUserReceiptUpdate, WAMessage, WAMessageKey, WAMessageUpdate } from './Message.js';
|
|
11
|
-
import type { ConnectionState
|
|
11
|
+
import type { ConnectionState } from './State.js';
|
|
12
12
|
export type BaileysEventMap = {
|
|
13
13
|
/** connection state has been updated -- WS closed, opened, connecting etc. */
|
|
14
14
|
'connection.update': Partial<ConnectionState>;
|
|
@@ -23,22 +23,8 @@ export type BaileysEventMap = {
|
|
|
23
23
|
isLatest?: boolean;
|
|
24
24
|
progress?: number | null;
|
|
25
25
|
syncType?: proto.HistorySync.HistorySyncType | null;
|
|
26
|
-
pastParticipants?: proto.IPastParticipants[] | null;
|
|
27
|
-
chunkOrder?: number | null;
|
|
28
26
|
peerDataRequestSessionId?: string | null;
|
|
29
27
|
};
|
|
30
|
-
/** signals history sync milestones (completion or stall) per sync type */
|
|
31
|
-
'messaging-history.status': {
|
|
32
|
-
/** which sync phase this status refers to */
|
|
33
|
-
syncType: proto.HistorySync.HistorySyncType;
|
|
34
|
-
/** the status of this sync phase */
|
|
35
|
-
status: 'complete' | 'paused';
|
|
36
|
-
/**
|
|
37
|
-
* progress === 100 was received from the server.
|
|
38
|
-
* when false, completion was inferred via timeout (no more chunks arriving).
|
|
39
|
-
*/
|
|
40
|
-
explicit: boolean;
|
|
41
|
-
};
|
|
42
28
|
/** upsert chats */
|
|
43
29
|
'chats.upsert': Chat[];
|
|
44
30
|
/** update the given chats */
|
|
@@ -93,7 +79,6 @@ export type BaileysEventMap = {
|
|
|
93
79
|
id: string;
|
|
94
80
|
author: string;
|
|
95
81
|
authorPn?: string;
|
|
96
|
-
authorUsername?: string;
|
|
97
82
|
participants: GroupParticipant[];
|
|
98
83
|
action: ParticipantAction;
|
|
99
84
|
};
|
|
@@ -101,7 +86,6 @@ export type BaileysEventMap = {
|
|
|
101
86
|
id: string;
|
|
102
87
|
author: string;
|
|
103
88
|
authorPn?: string;
|
|
104
|
-
authorUsername?: string;
|
|
105
89
|
participant: string;
|
|
106
90
|
participantPn?: string;
|
|
107
91
|
action: RequestJoinAction;
|
|
@@ -154,7 +138,6 @@ export type BaileysEventMap = {
|
|
|
154
138
|
id: string;
|
|
155
139
|
update: any;
|
|
156
140
|
};
|
|
157
|
-
'message-capping.update': NewChatMessageCapInfo;
|
|
158
141
|
/** Settings and actions sync events */
|
|
159
142
|
'chats.lock': {
|
|
160
143
|
id: string;
|
|
@@ -201,8 +184,6 @@ export type BufferedEventData = {
|
|
|
201
184
|
isLatest: boolean;
|
|
202
185
|
progress?: number | null;
|
|
203
186
|
syncType?: proto.HistorySync.HistorySyncType;
|
|
204
|
-
pastParticipants?: proto.IPastParticipants[];
|
|
205
|
-
chunkOrder?: number | null;
|
|
206
187
|
peerDataRequestSessionId?: string;
|
|
207
188
|
};
|
|
208
189
|
chatUpserts: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Contact } from './Contact.js';
|
|
2
2
|
import type { WAMessageAddressingMode } from './Message.js';
|
|
3
3
|
export type GroupParticipant = Contact & {
|
|
4
|
+
jid?: string;
|
|
4
5
|
isAdmin?: boolean;
|
|
5
6
|
isSuperAdmin?: boolean;
|
|
6
7
|
admin?: 'admin' | 'superadmin' | null;
|
|
@@ -15,20 +16,17 @@ export interface GroupMetadata {
|
|
|
15
16
|
addressingMode?: WAMessageAddressingMode;
|
|
16
17
|
owner: string | undefined;
|
|
17
18
|
ownerPn?: string | undefined;
|
|
18
|
-
ownerUsername?: string | undefined;
|
|
19
19
|
owner_country_code?: string | undefined;
|
|
20
20
|
subject: string;
|
|
21
21
|
/** group subject owner */
|
|
22
22
|
subjectOwner?: string;
|
|
23
23
|
subjectOwnerPn?: string;
|
|
24
|
-
subjectOwnerUsername?: string;
|
|
25
24
|
/** group subject modification date */
|
|
26
25
|
subjectTime?: number;
|
|
27
26
|
creation?: number;
|
|
28
27
|
desc?: string;
|
|
29
28
|
descOwner?: string;
|
|
30
29
|
descOwnerPn?: string;
|
|
31
|
-
descOwnerUsername?: string;
|
|
32
30
|
descId?: string;
|
|
33
31
|
descTime?: number;
|
|
34
32
|
/** if this group is part of a community, it returns the jid of the community to which it belongs */
|
|
@@ -53,7 +51,6 @@ export interface GroupMetadata {
|
|
|
53
51
|
/** the person who added you to group or changed some setting in group */
|
|
54
52
|
author?: string;
|
|
55
53
|
authorPn?: string;
|
|
56
|
-
authorUsername?: string;
|
|
57
54
|
}
|
|
58
55
|
export interface WAGroupCreateResponse {
|
|
59
56
|
status: number;
|