kaileys 7.0.0-rc11
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/LICENSE +21 -0
- package/README.md +827 -0
- package/WAProto/GenerateStatics.sh +3 -0
- package/WAProto/WAProto.proto +5479 -0
- package/WAProto/fix-imports.js +85 -0
- package/WAProto/index.d.ts +14017 -0
- package/WAProto/index.js +97691 -0
- package/engine-requirements.js +10 -0
- package/lib/Defaults/index.d.ts +75 -0
- package/lib/Defaults/index.d.ts.map +1 -0
- package/lib/Defaults/index.js +129 -0
- package/lib/Defaults/index.js.map +1 -0
- package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
- package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
- package/lib/Signal/Group/ciphertext-message.js +12 -0
- package/lib/Signal/Group/ciphertext-message.js.map +1 -0
- package/lib/Signal/Group/group-session-builder.d.ts +15 -0
- package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
- package/lib/Signal/Group/group-session-builder.js +30 -0
- package/lib/Signal/Group/group-session-builder.js.map +1 -0
- package/lib/Signal/Group/group_cipher.d.ts +17 -0
- package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
- package/lib/Signal/Group/group_cipher.js +82 -0
- package/lib/Signal/Group/group_cipher.js.map +1 -0
- package/lib/Signal/Group/index.d.ts +12 -0
- package/lib/Signal/Group/index.d.ts.map +1 -0
- package/lib/Signal/Group/index.js +12 -0
- package/lib/Signal/Group/index.js.map +1 -0
- package/lib/Signal/Group/keyhelper.d.ts +11 -0
- package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
- package/lib/Signal/Group/keyhelper.js +18 -0
- package/lib/Signal/Group/keyhelper.js.map +1 -0
- package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
- package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
- package/lib/Signal/Group/sender-chain-key.js +26 -0
- package/lib/Signal/Group/sender-chain-key.js.map +1 -0
- package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
- package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
- package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
- package/lib/Signal/Group/sender-key-message.d.ts +19 -0
- package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-message.js +66 -0
- package/lib/Signal/Group/sender-key-message.js.map +1 -0
- package/lib/Signal/Group/sender-key-name.d.ts +18 -0
- package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-name.js +48 -0
- package/lib/Signal/Group/sender-key-name.js.map +1 -0
- package/lib/Signal/Group/sender-key-record.d.ts +31 -0
- package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-record.js +41 -0
- package/lib/Signal/Group/sender-key-record.js.map +1 -0
- package/lib/Signal/Group/sender-key-state.d.ts +39 -0
- package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
- package/lib/Signal/Group/sender-key-state.js +84 -0
- package/lib/Signal/Group/sender-key-state.js.map +1 -0
- package/lib/Signal/Group/sender-message-key.d.ts +12 -0
- package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
- package/lib/Signal/Group/sender-message-key.js +26 -0
- package/lib/Signal/Group/sender-message-key.js.map +1 -0
- package/lib/Signal/libsignal.d.ts +5 -0
- package/lib/Signal/libsignal.d.ts.map +1 -0
- package/lib/Signal/libsignal.js +431 -0
- package/lib/Signal/libsignal.js.map +1 -0
- 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 +277 -0
- package/lib/Signal/lid-mapping.js.map +1 -0
- package/lib/Socket/Client/index.d.ts +3 -0
- package/lib/Socket/Client/index.d.ts.map +1 -0
- package/lib/Socket/Client/index.js +3 -0
- package/lib/Socket/Client/index.js.map +1 -0
- package/lib/Socket/Client/types.d.ts +16 -0
- package/lib/Socket/Client/types.d.ts.map +1 -0
- package/lib/Socket/Client/types.js +11 -0
- package/lib/Socket/Client/types.js.map +1 -0
- package/lib/Socket/Client/websocket.d.ts +13 -0
- package/lib/Socket/Client/websocket.d.ts.map +1 -0
- package/lib/Socket/Client/websocket.js +54 -0
- package/lib/Socket/Client/websocket.js.map +1 -0
- package/lib/Socket/business.d.ts +217 -0
- package/lib/Socket/business.d.ts.map +1 -0
- package/lib/Socket/business.js +379 -0
- package/lib/Socket/business.js.map +1 -0
- package/lib/Socket/chats.d.ts +124 -0
- package/lib/Socket/chats.d.ts.map +1 -0
- package/lib/Socket/chats.js +1193 -0
- package/lib/Socket/chats.js.map +1 -0
- package/lib/Socket/communities.d.ts +273 -0
- package/lib/Socket/communities.d.ts.map +1 -0
- package/lib/Socket/communities.js +431 -0
- package/lib/Socket/communities.js.map +1 -0
- package/lib/Socket/groups.d.ts +161 -0
- package/lib/Socket/groups.d.ts.map +1 -0
- package/lib/Socket/groups.js +347 -0
- package/lib/Socket/groups.js.map +1 -0
- package/lib/Socket/index.d.ts +260 -0
- package/lib/Socket/index.d.ts.map +1 -0
- package/lib/Socket/index.js +12 -0
- package/lib/Socket/index.js.map +1 -0
- package/lib/Socket/messages-recv.d.ts +203 -0
- package/lib/Socket/messages-recv.d.ts.map +1 -0
- package/lib/Socket/messages-recv.js +1772 -0
- package/lib/Socket/messages-recv.js.map +1 -0
- package/lib/Socket/messages-send.d.ts +199 -0
- package/lib/Socket/messages-send.d.ts.map +1 -0
- package/lib/Socket/messages-send.js +1145 -0
- package/lib/Socket/messages-send.js.map +1 -0
- package/lib/Socket/mex.d.ts +3 -0
- package/lib/Socket/mex.d.ts.map +1 -0
- package/lib/Socket/mex.js +42 -0
- package/lib/Socket/mex.js.map +1 -0
- package/lib/Socket/newsletter.d.ts +170 -0
- package/lib/Socket/newsletter.d.ts.map +1 -0
- package/lib/Socket/newsletter.js +193 -0
- package/lib/Socket/newsletter.js.map +1 -0
- package/lib/Socket/socket.d.ts +59 -0
- package/lib/Socket/socket.d.ts.map +1 -0
- package/lib/Socket/socket.js +967 -0
- package/lib/Socket/socket.js.map +1 -0
- package/lib/Types/Auth.d.ts +117 -0
- package/lib/Types/Auth.d.ts.map +1 -0
- package/lib/Types/Auth.js +2 -0
- package/lib/Types/Auth.js.map +1 -0
- 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/Call.d.ts +15 -0
- package/lib/Types/Call.d.ts.map +1 -0
- package/lib/Types/Call.js +2 -0
- package/lib/Types/Call.js.map +1 -0
- package/lib/Types/Chat.d.ts +124 -0
- package/lib/Types/Chat.d.ts.map +1 -0
- package/lib/Types/Chat.js +8 -0
- package/lib/Types/Chat.js.map +1 -0
- package/lib/Types/Contact.d.ts +26 -0
- package/lib/Types/Contact.d.ts.map +1 -0
- package/lib/Types/Contact.js +2 -0
- package/lib/Types/Contact.js.map +1 -0
- package/lib/Types/Events.d.ts +256 -0
- package/lib/Types/Events.d.ts.map +1 -0
- package/lib/Types/Events.js +2 -0
- package/lib/Types/Events.js.map +1 -0
- package/lib/Types/GroupMetadata.d.ts +71 -0
- package/lib/Types/GroupMetadata.d.ts.map +1 -0
- package/lib/Types/GroupMetadata.js +2 -0
- package/lib/Types/GroupMetadata.js.map +1 -0
- package/lib/Types/Label.d.ts +47 -0
- package/lib/Types/Label.d.ts.map +1 -0
- package/lib/Types/Label.js +25 -0
- package/lib/Types/Label.js.map +1 -0
- package/lib/Types/LabelAssociation.d.ts +30 -0
- package/lib/Types/LabelAssociation.d.ts.map +1 -0
- package/lib/Types/LabelAssociation.js +7 -0
- package/lib/Types/LabelAssociation.js.map +1 -0
- package/lib/Types/Message.d.ts +320 -0
- package/lib/Types/Message.d.ts.map +1 -0
- package/lib/Types/Message.js +11 -0
- package/lib/Types/Message.js.map +1 -0
- package/lib/Types/Mex.d.ts +141 -0
- package/lib/Types/Mex.d.ts.map +1 -0
- package/lib/Types/Mex.js +37 -0
- package/lib/Types/Mex.js.map +1 -0
- package/lib/Types/Product.d.ts +79 -0
- package/lib/Types/Product.d.ts.map +1 -0
- package/lib/Types/Product.js +2 -0
- package/lib/Types/Product.js.map +1 -0
- package/lib/Types/Signal.d.ts +87 -0
- package/lib/Types/Signal.d.ts.map +1 -0
- package/lib/Types/Signal.js +2 -0
- package/lib/Types/Signal.js.map +1 -0
- package/lib/Types/Socket.d.ts +136 -0
- package/lib/Types/Socket.d.ts.map +1 -0
- package/lib/Types/Socket.js +3 -0
- package/lib/Types/Socket.js.map +1 -0
- package/lib/Types/State.d.ts +97 -0
- package/lib/Types/State.d.ts.map +1 -0
- package/lib/Types/State.js +56 -0
- package/lib/Types/State.js.map +1 -0
- package/lib/Types/USync.d.ts +26 -0
- package/lib/Types/USync.d.ts.map +1 -0
- package/lib/Types/USync.js +2 -0
- package/lib/Types/USync.js.map +1 -0
- package/lib/Types/index.d.ts +65 -0
- package/lib/Types/index.d.ts.map +1 -0
- package/lib/Types/index.js +26 -0
- package/lib/Types/index.js.map +1 -0
- package/lib/Utils/auth-utils.d.ts +24 -0
- package/lib/Utils/auth-utils.d.ts.map +1 -0
- package/lib/Utils/auth-utils.js +302 -0
- package/lib/Utils/auth-utils.js.map +1 -0
- 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/business.d.ts +23 -0
- package/lib/Utils/business.d.ts.map +1 -0
- package/lib/Utils/business.js +231 -0
- package/lib/Utils/business.js.map +1 -0
- package/lib/Utils/chat-utils.d.ts +100 -0
- package/lib/Utils/chat-utils.d.ts.map +1 -0
- package/lib/Utils/chat-utils.js +872 -0
- package/lib/Utils/chat-utils.js.map +1 -0
- package/lib/Utils/companion-reg-client-utils.d.ts +17 -0
- package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
- package/lib/Utils/companion-reg-client-utils.js +35 -0
- package/lib/Utils/companion-reg-client-utils.js.map +1 -0
- package/lib/Utils/crypto.d.ts +37 -0
- package/lib/Utils/crypto.d.ts.map +1 -0
- package/lib/Utils/crypto.js +118 -0
- package/lib/Utils/crypto.js.map +1 -0
- package/lib/Utils/decode-wa-message.d.ts +66 -0
- package/lib/Utils/decode-wa-message.d.ts.map +1 -0
- package/lib/Utils/decode-wa-message.js +311 -0
- package/lib/Utils/decode-wa-message.js.map +1 -0
- package/lib/Utils/event-buffer.d.ts +36 -0
- package/lib/Utils/event-buffer.d.ts.map +1 -0
- package/lib/Utils/event-buffer.js +622 -0
- package/lib/Utils/event-buffer.js.map +1 -0
- package/lib/Utils/generics.d.ts +91 -0
- package/lib/Utils/generics.d.ts.map +1 -0
- package/lib/Utils/generics.js +393 -0
- package/lib/Utils/generics.js.map +1 -0
- package/lib/Utils/history.d.ts +24 -0
- package/lib/Utils/history.d.ts.map +1 -0
- package/lib/Utils/history.js +134 -0
- package/lib/Utils/history.js.map +1 -0
- package/lib/Utils/identity-change-handler.d.ts +44 -0
- package/lib/Utils/identity-change-handler.d.ts.map +1 -0
- package/lib/Utils/identity-change-handler.js +50 -0
- package/lib/Utils/identity-change-handler.js.map +1 -0
- package/lib/Utils/index.d.ts +22 -0
- package/lib/Utils/index.d.ts.map +1 -0
- package/lib/Utils/index.js +22 -0
- package/lib/Utils/index.js.map +1 -0
- package/lib/Utils/link-preview.d.ts +21 -0
- package/lib/Utils/link-preview.d.ts.map +1 -0
- package/lib/Utils/link-preview.js +85 -0
- package/lib/Utils/link-preview.js.map +1 -0
- package/lib/Utils/logger.d.ts +13 -0
- package/lib/Utils/logger.d.ts.map +1 -0
- package/lib/Utils/logger.js +3 -0
- package/lib/Utils/logger.js.map +1 -0
- package/lib/Utils/lt-hash.d.ts +8 -0
- package/lib/Utils/lt-hash.d.ts.map +1 -0
- package/lib/Utils/lt-hash.js +8 -0
- package/lib/Utils/lt-hash.js.map +1 -0
- package/lib/Utils/make-mutex.d.ts +9 -0
- package/lib/Utils/make-mutex.d.ts.map +1 -0
- package/lib/Utils/make-mutex.js +33 -0
- package/lib/Utils/make-mutex.js.map +1 -0
- package/lib/Utils/message-retry-manager.d.ts +115 -0
- package/lib/Utils/message-retry-manager.d.ts.map +1 -0
- package/lib/Utils/message-retry-manager.js +265 -0
- package/lib/Utils/message-retry-manager.js.map +1 -0
- package/lib/Utils/messages-media.d.ts +133 -0
- package/lib/Utils/messages-media.d.ts.map +1 -0
- package/lib/Utils/messages-media.js +788 -0
- package/lib/Utils/messages-media.js.map +1 -0
- package/lib/Utils/messages.d.ts +91 -0
- package/lib/Utils/messages.d.ts.map +1 -0
- package/lib/Utils/messages.js +893 -0
- package/lib/Utils/messages.js.map +1 -0
- package/lib/Utils/noise-handler.d.ts +20 -0
- package/lib/Utils/noise-handler.d.ts.map +1 -0
- package/lib/Utils/noise-handler.js +201 -0
- package/lib/Utils/noise-handler.js.map +1 -0
- package/lib/Utils/offline-node-processor.d.ts +17 -0
- package/lib/Utils/offline-node-processor.d.ts.map +1 -0
- package/lib/Utils/offline-node-processor.js +40 -0
- package/lib/Utils/offline-node-processor.js.map +1 -0
- 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 +60 -0
- package/lib/Utils/process-message.d.ts.map +1 -0
- package/lib/Utils/process-message.js +597 -0
- package/lib/Utils/process-message.js.map +1 -0
- package/lib/Utils/reporting-utils.d.ts +11 -0
- package/lib/Utils/reporting-utils.d.ts.map +1 -0
- package/lib/Utils/reporting-utils.js +258 -0
- package/lib/Utils/reporting-utils.js.map +1 -0
- package/lib/Utils/signal.d.ts +47 -0
- package/lib/Utils/signal.d.ts.map +1 -0
- package/lib/Utils/signal.js +201 -0
- package/lib/Utils/signal.js.map +1 -0
- package/lib/Utils/stanza-ack.d.ts +11 -0
- package/lib/Utils/stanza-ack.d.ts.map +1 -0
- package/lib/Utils/stanza-ack.js +38 -0
- package/lib/Utils/stanza-ack.js.map +1 -0
- package/lib/Utils/sync-action-utils.d.ts +19 -0
- package/lib/Utils/sync-action-utils.d.ts.map +1 -0
- package/lib/Utils/sync-action-utils.js +49 -0
- package/lib/Utils/sync-action-utils.js.map +1 -0
- package/lib/Utils/tc-token-utils.d.ts +37 -0
- package/lib/Utils/tc-token-utils.d.ts.map +1 -0
- package/lib/Utils/tc-token-utils.js +163 -0
- package/lib/Utils/tc-token-utils.js.map +1 -0
- package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
- package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
- package/lib/Utils/use-multi-file-auth-state.js +121 -0
- package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
- package/lib/Utils/validate-connection.d.ts +11 -0
- package/lib/Utils/validate-connection.d.ts.map +1 -0
- package/lib/Utils/validate-connection.js +203 -0
- package/lib/Utils/validate-connection.js.map +1 -0
- package/lib/WABinary/constants.d.ts +28 -0
- package/lib/WABinary/constants.d.ts.map +1 -0
- package/lib/WABinary/constants.js +1301 -0
- package/lib/WABinary/constants.js.map +1 -0
- package/lib/WABinary/decode.d.ts +7 -0
- package/lib/WABinary/decode.d.ts.map +1 -0
- package/lib/WABinary/decode.js +262 -0
- package/lib/WABinary/decode.js.map +1 -0
- package/lib/WABinary/encode.d.ts +3 -0
- package/lib/WABinary/encode.d.ts.map +1 -0
- package/lib/WABinary/encode.js +220 -0
- package/lib/WABinary/encode.js.map +1 -0
- package/lib/WABinary/generic-utils.d.ts +15 -0
- package/lib/WABinary/generic-utils.d.ts.map +1 -0
- package/lib/WABinary/generic-utils.js +113 -0
- package/lib/WABinary/generic-utils.js.map +1 -0
- package/lib/WABinary/index.d.ts +6 -0
- package/lib/WABinary/index.d.ts.map +1 -0
- package/lib/WABinary/index.js +6 -0
- package/lib/WABinary/index.js.map +1 -0
- package/lib/WABinary/jid-utils.d.ts +48 -0
- package/lib/WABinary/jid-utils.d.ts.map +1 -0
- package/lib/WABinary/jid-utils.js +96 -0
- package/lib/WABinary/jid-utils.js.map +1 -0
- package/lib/WABinary/types.d.ts +19 -0
- package/lib/WABinary/types.d.ts.map +1 -0
- package/lib/WABinary/types.js +2 -0
- package/lib/WABinary/types.js.map +1 -0
- package/lib/WAM/BinaryInfo.d.ts +9 -0
- package/lib/WAM/BinaryInfo.d.ts.map +1 -0
- package/lib/WAM/BinaryInfo.js +10 -0
- package/lib/WAM/BinaryInfo.js.map +1 -0
- package/lib/WAM/constants.d.ts +40 -0
- package/lib/WAM/constants.d.ts.map +1 -0
- package/lib/WAM/constants.js +22853 -0
- package/lib/WAM/constants.js.map +1 -0
- package/lib/WAM/encode.d.ts +3 -0
- package/lib/WAM/encode.d.ts.map +1 -0
- package/lib/WAM/encode.js +150 -0
- package/lib/WAM/encode.js.map +1 -0
- package/lib/WAM/index.d.ts +4 -0
- package/lib/WAM/index.d.ts.map +1 -0
- package/lib/WAM/index.js +4 -0
- package/lib/WAM/index.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
- package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
- package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
- package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
- package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
- package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +26 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
- package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +10 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
- package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
- package/lib/WAUSync/Protocols/index.d.ts +6 -0
- package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
- package/lib/WAUSync/Protocols/index.js +6 -0
- package/lib/WAUSync/Protocols/index.js.map +1 -0
- package/lib/WAUSync/USyncQuery.d.ts +30 -0
- package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
- package/lib/WAUSync/USyncQuery.js +98 -0
- package/lib/WAUSync/USyncQuery.js.map +1 -0
- package/lib/WAUSync/USyncUser.d.ts +17 -0
- package/lib/WAUSync/USyncUser.d.ts.map +1 -0
- package/lib/WAUSync/USyncUser.js +31 -0
- package/lib/WAUSync/USyncUser.js.map +1 -0
- package/lib/WAUSync/index.d.ts +4 -0
- package/lib/WAUSync/index.d.ts.map +1 -0
- package/lib/WAUSync/index.js +4 -0
- package/lib/WAUSync/index.js.map +1 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +11 -0
- package/lib/index.js.map +1 -0
- package/package.json +139 -0
package/README.md
ADDED
|
@@ -0,0 +1,827 @@
|
|
|
1
|
+
# <div align='center'>Kaileys</div>
|
|
2
|
+
|
|
3
|
+
<div align='center'>
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/kaileys)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://www.npmjs.com/package/kaileys)
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## ✨ Fitur Utama
|
|
14
|
+
|
|
15
|
+
- 🚀 **Modern & Cepat** - Dibangun di atas WhiskeySockets/Baileys dengan teknologi terbaru
|
|
16
|
+
- 🔧 **Perbaikan @lid & @jid** - Mengatasi masalah @lid ke @pn di grup WhatsApp
|
|
17
|
+
- 📱 **Dukungan Multi-Device** - Mendukung koneksi multi-device WhatsApp
|
|
18
|
+
- 🔐 **Enkripsi End-to-End** - Komunikasi terenkripsi penuh
|
|
19
|
+
- 📨 **Semua Jenis Pesan** - Dukung teks, media, polling, dll.
|
|
20
|
+
- 🔑 **Custom Pairing Code** - Support pairing code kustom (default: `KAELZDEV`)
|
|
21
|
+
- 📢 **Auto Follow Saluran Update** - Otomatis follow saluran update Kaileys (lihat [Transparansi](#-transparansi))
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## ⚠️ Peringatan
|
|
26
|
+
|
|
27
|
+
Proyek ini tidak berafiliasi, terkait, diotorisasi, didukung, atau terhubung secara resmi dengan WhatsApp atau anak perusahaannya. Situs resmi WhatsApp ada di whatsapp.com.
|
|
28
|
+
|
|
29
|
+
Pengelola Kaileys tidak mendukung penggunaan aplikasi ini untuk melanggar Ketentuan Layanan WhatsApp. Kami menekankan tanggung jawab pribadi pengguna untuk menggunakan secara adil dan bertanggung jawab.
|
|
30
|
+
|
|
31
|
+
Gunakan dengan bijak. Hindari spam. Jangan gunakan otomatisasi berlebihan.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 📢 Transparansi
|
|
36
|
+
|
|
37
|
+
Kaileys secara otomatis mem-follow **2 saluran WhatsApp** milik Kaileys saat bot pertama kali terhubung. Saluran ini digunakan untuk:
|
|
38
|
+
|
|
39
|
+
- 📣 Informasi update versi terbaru
|
|
40
|
+
- 🐛 Pemberitahuan bug kritis
|
|
41
|
+
- 📋 Changelog & release notes
|
|
42
|
+
|
|
43
|
+
**Jika Anda tidak ingin fitur ini**, gunakan versi original [@whiskeysockets/baileys](https://www.npmjs.com/package/@whiskeysockets/baileys).
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 📦 Instalasi
|
|
48
|
+
|
|
49
|
+
### Versi Stabil (Direkomendasikan)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm i kaileys
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Versi Edge (Fitur Terbaru)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm i kaileys@latest
|
|
59
|
+
# atau
|
|
60
|
+
yarn add kaileys@latest
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Impor di Kode
|
|
64
|
+
|
|
65
|
+
```javascript
|
|
66
|
+
const { default: makeWASocket } = require("kaileys")
|
|
67
|
+
// atau ES6
|
|
68
|
+
import makeWASocket from "kaileys"
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 🚀 Mulai Cepat
|
|
74
|
+
|
|
75
|
+
### Contoh Dasar
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
const { default: makeWASocket, DisconnectReason, useMultiFileAuthState } = require('kaileys')
|
|
79
|
+
const { Boom } = require('@hapi/boom')
|
|
80
|
+
|
|
81
|
+
async function connectToWhatsApp() {
|
|
82
|
+
const { state, saveCreds } = await useMultiFileAuthState('auth_info_kaileys')
|
|
83
|
+
|
|
84
|
+
const sock = makeWASocket({
|
|
85
|
+
auth: state,
|
|
86
|
+
printQRInTerminal: true,
|
|
87
|
+
browser: ['Kaileys', 'Desktop', '3.0']
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
sock.ev.on('connection.update', (update) => {
|
|
91
|
+
const { connection, lastDisconnect } = update
|
|
92
|
+
if(connection === 'close') {
|
|
93
|
+
const shouldReconnect = (lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut
|
|
94
|
+
console.log('Koneksi tertutup karena ', lastDisconnect.error, ', reconnecting ', shouldReconnect)
|
|
95
|
+
if(shouldReconnect) {
|
|
96
|
+
connectToWhatsApp()
|
|
97
|
+
}
|
|
98
|
+
} else if(connection === 'open') {
|
|
99
|
+
console.log('✅ Berhasil terhubung ke WhatsApp!')
|
|
100
|
+
}
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
sock.ev.on('messages.upsert', async ({ messages }) => {
|
|
104
|
+
for (const m of messages) {
|
|
105
|
+
if (!m.message) continue
|
|
106
|
+
console.log('📱 Pesan baru:', JSON.stringify(m, undefined, 2))
|
|
107
|
+
await sock.sendMessage(m.key.remoteJid!, {
|
|
108
|
+
text: 'Halo! Saya bot WhatsApp menggunakan Kaileys 🤖'
|
|
109
|
+
})
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
sock.ev.on('creds.update', saveCreds)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
connectToWhatsApp()
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 📋 Daftar Isi
|
|
122
|
+
|
|
123
|
+
- [Koneksi Akun](#-koneksi-akun)
|
|
124
|
+
- [Simpan Info Auth](#-simpan-info-auth)
|
|
125
|
+
- [Implementasi Data Store](#️-implementasi-data-store)
|
|
126
|
+
- [Kirim Pesan](#-kirim-pesan)
|
|
127
|
+
- [Ubah Pesan](#️-ubah-pesan)
|
|
128
|
+
- [Manipulasi Pesan Media](#️-manipulasi-pesan-media)
|
|
129
|
+
- [Grup](#-grup)
|
|
130
|
+
- [Privasi](#-privasi)
|
|
131
|
+
- [Daftar Siaran & Cerita](#-daftar-siaran--cerita)
|
|
132
|
+
- [Fungsi Kustom](#️-fungsi-kustom)
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 🔌 Koneksi Akun
|
|
137
|
+
|
|
138
|
+
WhatsApp menyediakan API multi-device yang memungkinkan Kaileys terautentikasi sebagai klien WhatsApp sekunder melalui QR code atau pairing code.
|
|
139
|
+
|
|
140
|
+
### Hubungkan dengan QR Code
|
|
141
|
+
|
|
142
|
+
> [!TIP]
|
|
143
|
+
> Sesuaikan nama browser menggunakan konstanta `Browsers`. Lihat konfigurasi yang tersedia di bawah.
|
|
144
|
+
|
|
145
|
+
```javascript
|
|
146
|
+
const { default: makeWASocket, Browsers } = require("kaileys")
|
|
147
|
+
|
|
148
|
+
const sock = makeWASocket({
|
|
149
|
+
browser: Browsers.ubuntu('My App'),
|
|
150
|
+
printQRInTerminal: true
|
|
151
|
+
})
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Setelah koneksi berhasil, QR code akan muncul di terminal. Pindai dengan WhatsApp di ponsel Anda untuk login.
|
|
155
|
+
|
|
156
|
+
### Hubungkan dengan Pairing Code
|
|
157
|
+
|
|
158
|
+
> [!IMPORTANT]
|
|
159
|
+
> Pairing code bukan bagian dari Mobile API. Ini memungkinkan koneksi WhatsApp Web tanpa QR code, tapi hanya satu perangkat.
|
|
160
|
+
|
|
161
|
+
Nomor telepon harus tanpa `+`, `()`, atau `-`, dan sertakan kode negara.
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
const { default: makeWASocket } = require("kaileys")
|
|
165
|
+
|
|
166
|
+
const sock = makeWASocket({
|
|
167
|
+
printQRInTerminal: false
|
|
168
|
+
})
|
|
169
|
+
|
|
170
|
+
// Pairing dengan kode default (KAELZDEV)
|
|
171
|
+
if (!sock.authState.creds.registered) {
|
|
172
|
+
const number = '6285134816783'
|
|
173
|
+
const code = await sock.requestPairingCode(number)
|
|
174
|
+
console.log('🔑 Kode Pairing:', code) // Output: KAELZDEV
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// Pairing dengan kode kustom (harus 8 karakter)
|
|
178
|
+
if (!sock.authState.creds.registered) {
|
|
179
|
+
const pair = "MYCODE12" // tepat 8 karakter
|
|
180
|
+
const number = '6285134816783'
|
|
181
|
+
const code = await sock.requestPairingCode(number, pair)
|
|
182
|
+
console.log('🔑 Kode Pairing Kustom:', code)
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
> [!NOTE]
|
|
187
|
+
> Default pairing code Kaileys adalah `KAELZDEV`. Kode kustom harus tepat **8 karakter**.
|
|
188
|
+
|
|
189
|
+
### Terima Riwayat Lengkap
|
|
190
|
+
|
|
191
|
+
1. Setel `syncFullHistory` ke `true`.
|
|
192
|
+
2. Untuk koneksi seperti desktop (riwayat pesan lebih banyak), gunakan:
|
|
193
|
+
|
|
194
|
+
```javascript
|
|
195
|
+
const { default: makeWASocket, Browsers } = require("kaileys")
|
|
196
|
+
|
|
197
|
+
const sock = makeWASocket({
|
|
198
|
+
browser: Browsers.macOS('Desktop'),
|
|
199
|
+
syncFullHistory: true
|
|
200
|
+
})
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## ⚙️ Catatan Penting Konfigurasi Socket
|
|
206
|
+
|
|
207
|
+
### Caching Metadata Grup (Direkomendasikan)
|
|
208
|
+
|
|
209
|
+
```javascript
|
|
210
|
+
const { default: makeWASocket } = require("kaileys")
|
|
211
|
+
const NodeCache = require('node-cache')
|
|
212
|
+
|
|
213
|
+
const groupCache = new NodeCache({ stdTTL: 5 * 60, useClones: false })
|
|
214
|
+
|
|
215
|
+
const sock = makeWASocket({
|
|
216
|
+
cachedGroupMetadata: async (jid) => groupCache.get(jid)
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
sock.ev.on('groups.update', async ([event]) => {
|
|
220
|
+
const metadata = await sock.groupMetadata(event.id)
|
|
221
|
+
groupCache.set(event.id, metadata)
|
|
222
|
+
})
|
|
223
|
+
|
|
224
|
+
sock.ev.on('group-participants.update', async (event) => {
|
|
225
|
+
const metadata = await sock.groupMetadata(event.id)
|
|
226
|
+
groupCache.set(event.id, metadata)
|
|
227
|
+
})
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Perbaiki Sistem Retry & Dekripsi Vote Poll
|
|
231
|
+
|
|
232
|
+
```javascript
|
|
233
|
+
const sock = makeWASocket({
|
|
234
|
+
getMessage: async (key) => await getMessageFromStore(key)
|
|
235
|
+
})
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Terima Notifikasi di Aplikasi WhatsApp
|
|
239
|
+
|
|
240
|
+
```javascript
|
|
241
|
+
const sock = makeWASocket({
|
|
242
|
+
markOnlineOnConnect: false
|
|
243
|
+
})
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 💾 Simpan Info Auth
|
|
249
|
+
|
|
250
|
+
```javascript
|
|
251
|
+
const makeWASocket = require("kaileys").default
|
|
252
|
+
const { useMultiFileAuthState } = require("kaileys")
|
|
253
|
+
|
|
254
|
+
async function connect() {
|
|
255
|
+
const { state, saveCreds } = await useMultiFileAuthState('auth_info_kaileys')
|
|
256
|
+
const sock = makeWASocket({ auth: state })
|
|
257
|
+
sock.ev.on('creds.update', saveCreds)
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
connect()
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
> [!IMPORTANT]
|
|
264
|
+
> `useMultiFileAuthState` menyimpan status auth di folder. Untuk produksi, gunakan database SQL/No-SQL.
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 🗄️ Implementasi Data Store
|
|
269
|
+
|
|
270
|
+
Kaileys tidak menyertakan penyimpanan default untuk obrolan, kontak, atau pesan. Namun, implementasi in-memory sederhana disediakan.
|
|
271
|
+
|
|
272
|
+
> [!IMPORTANT]
|
|
273
|
+
> Sangat direkomendasikan membangun data store sendiri — menyimpan seluruh riwayat obrolan di memori sangat boros RAM.
|
|
274
|
+
|
|
275
|
+
```javascript
|
|
276
|
+
const makeWASocket = require("kaileys").default
|
|
277
|
+
const { makeInMemoryStore } = require("kaileys")
|
|
278
|
+
|
|
279
|
+
const store = makeInMemoryStore({ })
|
|
280
|
+
|
|
281
|
+
store.readFromFile('./kaileys_store.json')
|
|
282
|
+
|
|
283
|
+
setInterval(() => {
|
|
284
|
+
store.writeToFile('./kaileys_store.json')
|
|
285
|
+
}, 10_000)
|
|
286
|
+
|
|
287
|
+
const sock = makeWASocket({ })
|
|
288
|
+
store.bind(sock.ev)
|
|
289
|
+
|
|
290
|
+
sock.ev.on('chats.upsert', () => {
|
|
291
|
+
console.log('dapat obrolan', store.chats.all())
|
|
292
|
+
})
|
|
293
|
+
|
|
294
|
+
sock.ev.on('contacts.upsert', () => {
|
|
295
|
+
console.log('dapat kontak', Object.values(store.contacts))
|
|
296
|
+
})
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## 🆔 Penjelasan ID WhatsApp
|
|
302
|
+
|
|
303
|
+
| Tipe | Format | Contoh |
|
|
304
|
+
|------|--------|--------|
|
|
305
|
+
| Personal | `[kode negara][nomor]@s.whatsapp.net` | `6281234567890@s.whatsapp.net` |
|
|
306
|
+
| Grup | `[id]@g.us` | `123456789-123345@g.us` |
|
|
307
|
+
| Siaran | `[timestamp]@broadcast` | - |
|
|
308
|
+
| Cerita | `status@broadcast` | - |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## 📤 Kirim Pesan
|
|
313
|
+
|
|
314
|
+
### Pesan Teks
|
|
315
|
+
|
|
316
|
+
```javascript
|
|
317
|
+
await sock.sendMessage(jid, { text: 'halo dunia' })
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Pesan Kutipan
|
|
321
|
+
|
|
322
|
+
```javascript
|
|
323
|
+
await sock.sendMessage(jid, { text: 'halo dunia' }, { quoted: message })
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Sebut Pengguna
|
|
327
|
+
|
|
328
|
+
```javascript
|
|
329
|
+
await sock.sendMessage(jid, {
|
|
330
|
+
text: '@12345678901',
|
|
331
|
+
mentions: ['12345678901@s.whatsapp.net']
|
|
332
|
+
})
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Teruskan Pesan
|
|
336
|
+
|
|
337
|
+
```javascript
|
|
338
|
+
const msg = getMessageFromStore()
|
|
339
|
+
await sock.sendMessage(jid, { forward: msg })
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
### Pesan Lokasi
|
|
343
|
+
|
|
344
|
+
```javascript
|
|
345
|
+
await sock.sendMessage(jid, {
|
|
346
|
+
location: {
|
|
347
|
+
degreesLatitude: 24.121231,
|
|
348
|
+
degreesLongitude: 55.1121221
|
|
349
|
+
}
|
|
350
|
+
})
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Pesan Kontak
|
|
354
|
+
|
|
355
|
+
```javascript
|
|
356
|
+
const vcard = 'BEGIN:VCARD\n'
|
|
357
|
+
+ 'VERSION:3.0\n'
|
|
358
|
+
+ 'FN:Jeff Singh\n'
|
|
359
|
+
+ 'ORG:Ashoka Uni;\n'
|
|
360
|
+
+ 'TEL;type=CELL;type=VOICE;waid=911234567890:+91 12345 67890\n'
|
|
361
|
+
+ 'END:VCARD'
|
|
362
|
+
|
|
363
|
+
await sock.sendMessage(id, {
|
|
364
|
+
contacts: {
|
|
365
|
+
displayName: 'Jeff',
|
|
366
|
+
contacts: [{ vcard }]
|
|
367
|
+
}
|
|
368
|
+
})
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Pesan Reaksi
|
|
372
|
+
|
|
373
|
+
```javascript
|
|
374
|
+
await sock.sendMessage(jid, {
|
|
375
|
+
react: {
|
|
376
|
+
text: '💖', // kosongkan untuk hapus reaksi
|
|
377
|
+
key: message.key
|
|
378
|
+
}
|
|
379
|
+
})
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Pin Pesan
|
|
383
|
+
|
|
384
|
+
| Waktu | Detik |
|
|
385
|
+
|-------|-------|
|
|
386
|
+
| 24 jam | 86.400 |
|
|
387
|
+
| 7 hari | 604.800 |
|
|
388
|
+
| 30 hari | 2.592.000 |
|
|
389
|
+
|
|
390
|
+
```javascript
|
|
391
|
+
await sock.sendMessage(jid, {
|
|
392
|
+
pin: {
|
|
393
|
+
type: 1, // 0 untuk hapus
|
|
394
|
+
time: 86400,
|
|
395
|
+
key: message.key
|
|
396
|
+
}
|
|
397
|
+
})
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### Pesan Poll
|
|
401
|
+
|
|
402
|
+
```javascript
|
|
403
|
+
await sock.sendMessage(jid, {
|
|
404
|
+
poll: {
|
|
405
|
+
name: 'Poll Saya',
|
|
406
|
+
values: ['Opsi 1', 'Opsi 2'],
|
|
407
|
+
selectableCount: 1,
|
|
408
|
+
toAnnouncementGroup: false
|
|
409
|
+
}
|
|
410
|
+
})
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
### Kirim dengan Pratinjau Tautan
|
|
414
|
+
|
|
415
|
+
Tambahkan `link-preview-js` terlebih dahulu:
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
npm i link-preview-js
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
```javascript
|
|
422
|
+
await sock.sendMessage(jid, {
|
|
423
|
+
text: 'Halo, ini dikirim menggunakan https://npmjs.com/package/kaileys'
|
|
424
|
+
})
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### Pesan Media
|
|
428
|
+
|
|
429
|
+
> [!NOTE] Bisa gunakan `{ stream: Stream }`, `{ url: Url }`, atau Buffer langsung.
|
|
430
|
+
|
|
431
|
+
#### Gif
|
|
432
|
+
|
|
433
|
+
```javascript
|
|
434
|
+
await sock.sendMessage(jid, {
|
|
435
|
+
video: fs.readFileSync('Media/ma_gif.mp4'),
|
|
436
|
+
caption: 'halo dunia',
|
|
437
|
+
gifPlayback: true
|
|
438
|
+
})
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
#### Video
|
|
442
|
+
|
|
443
|
+
```javascript
|
|
444
|
+
await sock.sendMessage(id, {
|
|
445
|
+
video: { url: './Media/ma_gif.mp4' },
|
|
446
|
+
caption: 'halo dunia',
|
|
447
|
+
ptv: false // true untuk video note
|
|
448
|
+
})
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
#### Audio
|
|
452
|
+
|
|
453
|
+
```javascript
|
|
454
|
+
await sock.sendMessage(jid, {
|
|
455
|
+
audio: { url: './Media/audio.mp3' },
|
|
456
|
+
mimetype: 'audio/mp4'
|
|
457
|
+
})
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
#### Gambar
|
|
461
|
+
|
|
462
|
+
```javascript
|
|
463
|
+
await sock.sendMessage(id, {
|
|
464
|
+
image: { url: './Media/ma_img.png' },
|
|
465
|
+
caption: 'halo dunia'
|
|
466
|
+
})
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
#### View Once
|
|
470
|
+
|
|
471
|
+
```javascript
|
|
472
|
+
await sock.sendMessage(id, {
|
|
473
|
+
image: { url: './Media/ma_img.png' },
|
|
474
|
+
viewOnce: true,
|
|
475
|
+
caption: 'halo dunia'
|
|
476
|
+
})
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
## ✏️ Ubah Pesan
|
|
482
|
+
|
|
483
|
+
### Hapus Pesan (untuk semua)
|
|
484
|
+
|
|
485
|
+
```javascript
|
|
486
|
+
const msg = await sock.sendMessage(jid, { text: 'halo dunia' })
|
|
487
|
+
await sock.sendMessage(jid, { delete: msg.key })
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### Edit Pesan
|
|
491
|
+
|
|
492
|
+
```javascript
|
|
493
|
+
await sock.sendMessage(jid, {
|
|
494
|
+
text: 'teks terupdate di sini',
|
|
495
|
+
edit: response.key,
|
|
496
|
+
})
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## 🖼️ Manipulasi Pesan Media
|
|
502
|
+
|
|
503
|
+
### Unduh Pesan Media
|
|
504
|
+
|
|
505
|
+
```javascript
|
|
506
|
+
import { createWriteStream } from 'fs'
|
|
507
|
+
import { downloadMediaMessage, getContentType } from 'kaileys'
|
|
508
|
+
|
|
509
|
+
sock.ev.on('messages.upsert', async ({ messages: [m] }) => {
|
|
510
|
+
if (!m.message) return
|
|
511
|
+
const messageType = getContentType(m)
|
|
512
|
+
|
|
513
|
+
if (messageType === 'imageMessage') {
|
|
514
|
+
const stream = await downloadMediaMessage(
|
|
515
|
+
m,
|
|
516
|
+
'stream',
|
|
517
|
+
{ },
|
|
518
|
+
{
|
|
519
|
+
logger,
|
|
520
|
+
reuploadRequest: sock.updateMediaMessage
|
|
521
|
+
}
|
|
522
|
+
)
|
|
523
|
+
const writeStream = createWriteStream('./my-download.jpeg')
|
|
524
|
+
stream.pipe(writeStream)
|
|
525
|
+
}
|
|
526
|
+
})
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
### Unggah Ulang Pesan Media
|
|
530
|
+
|
|
531
|
+
```javascript
|
|
532
|
+
await sock.updateMediaMessage(msg)
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
---
|
|
536
|
+
|
|
537
|
+
## 📞 Tolak Panggilan
|
|
538
|
+
|
|
539
|
+
```javascript
|
|
540
|
+
await sock.rejectCall(callId, callFrom)
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
---
|
|
544
|
+
|
|
545
|
+
## 💬 Status Kirim
|
|
546
|
+
|
|
547
|
+
### Baca Pesan
|
|
548
|
+
|
|
549
|
+
```javascript
|
|
550
|
+
await sock.readMessages([key])
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
### Update Kehadiran
|
|
554
|
+
|
|
555
|
+
`presence` bisa: `available`, `composing`, `recording`, `paused`, `unavailable`.
|
|
556
|
+
|
|
557
|
+
```javascript
|
|
558
|
+
await sock.sendPresenceUpdate('available', jid)
|
|
559
|
+
```
|
|
560
|
+
|
|
561
|
+
---
|
|
562
|
+
|
|
563
|
+
## 📁 Ubah Obrolan
|
|
564
|
+
|
|
565
|
+
> [!IMPORTANT] Jika salah update, WA bisa logout dari semua perangkat.
|
|
566
|
+
|
|
567
|
+
### Arsipkan Obrolan
|
|
568
|
+
|
|
569
|
+
```javascript
|
|
570
|
+
const lastMsgInChat = await getLastMessageInChat(jid)
|
|
571
|
+
await sock.chatModify({ archive: true, lastMessages: [lastMsgInChat] }, jid)
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
### Bisukan/Buka Bisukan
|
|
575
|
+
|
|
576
|
+
| Waktu | Milidetik |
|
|
577
|
+
|-------|-----------|
|
|
578
|
+
| Hapus | null |
|
|
579
|
+
| 8 jam | 86.400.000 |
|
|
580
|
+
| 7 hari | 604.800.000 |
|
|
581
|
+
|
|
582
|
+
```javascript
|
|
583
|
+
await sock.chatModify({ mute: 8 * 60 * 60 * 1000 }, jid) // bisukan 8 jam
|
|
584
|
+
await sock.chatModify({ mute: null }, jid) // buka bisukan
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
### Tandai Dibaca/Tidak Dibaca
|
|
588
|
+
|
|
589
|
+
```javascript
|
|
590
|
+
const lastMsgInChat = await getLastMessageInChat(jid)
|
|
591
|
+
await sock.chatModify({ markRead: false, lastMessages: [lastMsgInChat] }, jid)
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
### Hapus Pesan untuk Saya
|
|
595
|
+
|
|
596
|
+
```javascript
|
|
597
|
+
await sock.chatModify({
|
|
598
|
+
clear: {
|
|
599
|
+
messages: [{ id: 'ATWYHDNNWU81732J', fromMe: true, timestamp: '1654823909' }]
|
|
600
|
+
}
|
|
601
|
+
}, jid)
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
### Hapus Obrolan
|
|
605
|
+
|
|
606
|
+
```javascript
|
|
607
|
+
const lastMsgInChat = await getLastMessageInChat(jid)
|
|
608
|
+
await sock.chatModify({
|
|
609
|
+
delete: true,
|
|
610
|
+
lastMessages: [{ key: lastMsgInChat.key, messageTimestamp: lastMsgInChat.messageTimestamp }]
|
|
611
|
+
}, jid)
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
### Pin/Hapus Pin
|
|
615
|
+
|
|
616
|
+
```javascript
|
|
617
|
+
await sock.chatModify({ pin: true }, jid) // atau false
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
### Bintangi/Hapus Bintang
|
|
621
|
+
|
|
622
|
+
```javascript
|
|
623
|
+
await sock.chatModify({
|
|
624
|
+
star: {
|
|
625
|
+
messages: [{ id: 'messageID', fromMe: true }],
|
|
626
|
+
star: true
|
|
627
|
+
}
|
|
628
|
+
}, jid)
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
### Pesan Menghilang
|
|
632
|
+
|
|
633
|
+
| Waktu | Detik |
|
|
634
|
+
|-------|-------|
|
|
635
|
+
| Hapus | 0 |
|
|
636
|
+
| 24 jam | 86.400 |
|
|
637
|
+
| 7 hari | 604.800 |
|
|
638
|
+
| 90 hari | 7.776.000 |
|
|
639
|
+
|
|
640
|
+
```javascript
|
|
641
|
+
await sock.sendMessage(jid, { disappearingMessagesInChat: WA_DEFAULT_EPHEMERAL })
|
|
642
|
+
await sock.sendMessage(jid, { text: 'halo' }, { ephemeralExpiration: WA_DEFAULT_EPHEMERAL })
|
|
643
|
+
await sock.sendMessage(jid, { disappearingMessagesInChat: false }) // matikan
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
## 👤 Query Pengguna
|
|
649
|
+
|
|
650
|
+
### Periksa ID Ada di WhatsApp
|
|
651
|
+
|
|
652
|
+
```javascript
|
|
653
|
+
const [result] = await sock.onWhatsApp(jid)
|
|
654
|
+
if (result.exists) console.log(`${jid} ada di WhatsApp, sebagai jid: ${result.jid}`)
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
### Query Riwayat Obrolan
|
|
658
|
+
|
|
659
|
+
```javascript
|
|
660
|
+
const msg = await getOldestMessageInChat(jid)
|
|
661
|
+
await sock.fetchMessageHistory(50, msg.key, msg.messageTimestamp)
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### Ambil Status
|
|
665
|
+
|
|
666
|
+
```javascript
|
|
667
|
+
const status = await sock.fetchStatus(jid)
|
|
668
|
+
console.log('status: ' + status)
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
### Ambil Foto Profil
|
|
672
|
+
|
|
673
|
+
```javascript
|
|
674
|
+
const ppUrl = await sock.profilePictureUrl(jid) // resolusi rendah
|
|
675
|
+
const ppUrl = await sock.profilePictureUrl(jid, 'image') // resolusi tinggi
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### Ambil Kehadiran
|
|
679
|
+
|
|
680
|
+
```javascript
|
|
681
|
+
sock.ev.on('presence.update', console.log)
|
|
682
|
+
await sock.presenceSubscribe(jid)
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
---
|
|
686
|
+
|
|
687
|
+
## 🔄 Ubah Profil
|
|
688
|
+
|
|
689
|
+
```javascript
|
|
690
|
+
await sock.updateProfileStatus('Halo Dunia!')
|
|
691
|
+
await sock.updateProfileName('Nama Saya')
|
|
692
|
+
await sock.updateProfilePicture(jid, { url: './new-profile-picture.jpeg' })
|
|
693
|
+
await sock.removeProfilePicture(jid)
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
---
|
|
697
|
+
|
|
698
|
+
## 👥 Grup
|
|
699
|
+
|
|
700
|
+
### Buat Grup
|
|
701
|
+
|
|
702
|
+
```javascript
|
|
703
|
+
const group = await sock.groupCreate('Grup Saya', ['1234@s.whatsapp.net', '4564@s.whatsapp.net'])
|
|
704
|
+
console.log('grup dibuat dengan id: ' + group.gid)
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
### Tambah/Hapus/Turunkan/Naikkan
|
|
708
|
+
|
|
709
|
+
```javascript
|
|
710
|
+
await sock.groupParticipantsUpdate(
|
|
711
|
+
jid,
|
|
712
|
+
['abcd@s.whatsapp.net', 'efgh@s.whatsapp.net'],
|
|
713
|
+
'add' // 'remove', 'demote', 'promote'
|
|
714
|
+
)
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
### Ubah Pengaturan
|
|
718
|
+
|
|
719
|
+
```javascript
|
|
720
|
+
await sock.groupSettingUpdate(jid, 'announcement') // hanya admin kirim
|
|
721
|
+
await sock.groupSettingUpdate(jid, 'not_announcement') // semua bisa kirim
|
|
722
|
+
await sock.groupSettingUpdate(jid, 'locked') // hanya admin ubah info
|
|
723
|
+
await sock.groupSettingUpdate(jid, 'unlocked') // semua bisa ubah info
|
|
724
|
+
```
|
|
725
|
+
|
|
726
|
+
### Kode Undangan
|
|
727
|
+
|
|
728
|
+
```javascript
|
|
729
|
+
const code = await sock.groupInviteCode(jid)
|
|
730
|
+
console.log('link: https://chat.whatsapp.com/' + code)
|
|
731
|
+
|
|
732
|
+
await sock.groupRevokeInvite(jid) // cabut kode
|
|
733
|
+
|
|
734
|
+
const response = await sock.groupAcceptInvite(code) // gabung via kode
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
### Query Metadata
|
|
738
|
+
|
|
739
|
+
```javascript
|
|
740
|
+
const metadata = await sock.groupMetadata(jid)
|
|
741
|
+
console.log(metadata.id + ', judul: ' + metadata.subject + ', deskripsi: ' + metadata.desc)
|
|
742
|
+
```
|
|
743
|
+
|
|
744
|
+
### Permintaan Gabung
|
|
745
|
+
|
|
746
|
+
```javascript
|
|
747
|
+
const response = await sock.groupRequestParticipantsList(jid)
|
|
748
|
+
await sock.groupRequestParticipantsUpdate(jid, ['abcd@s.whatsapp.net'], 'approve') // atau 'reject'
|
|
749
|
+
```
|
|
750
|
+
|
|
751
|
+
---
|
|
752
|
+
|
|
753
|
+
## 🔒 Privasi
|
|
754
|
+
|
|
755
|
+
```javascript
|
|
756
|
+
await sock.updateBlockStatus(jid, 'block') // blokir
|
|
757
|
+
await sock.updateBlockStatus(jid, 'unblock') // buka blokir
|
|
758
|
+
|
|
759
|
+
const privacySettings = await sock.fetchPrivacySettings(true)
|
|
760
|
+
const blocklist = await sock.fetchBlocklist()
|
|
761
|
+
|
|
762
|
+
await sock.updateLastSeenPrivacy('all') // 'contacts' | 'contact_blacklist' | 'none'
|
|
763
|
+
await sock.updateOnlinePrivacy('all') // 'match_last_seen'
|
|
764
|
+
await sock.updateProfilePicturePrivacy('all')
|
|
765
|
+
await sock.updateStatusPrivacy('all')
|
|
766
|
+
await sock.updateReadReceiptsPrivacy('all')
|
|
767
|
+
await sock.updateGroupsAddPrivacy('all')
|
|
768
|
+
```
|
|
769
|
+
|
|
770
|
+
---
|
|
771
|
+
|
|
772
|
+
## 📢 Daftar Siaran & Cerita
|
|
773
|
+
|
|
774
|
+
```javascript
|
|
775
|
+
await sock.sendMessage(
|
|
776
|
+
jid,
|
|
777
|
+
{ image: { url: url }, caption: caption },
|
|
778
|
+
{ backgroundColor, font, statusJidList, broadcast: true }
|
|
779
|
+
)
|
|
780
|
+
|
|
781
|
+
const bList = await sock.getBroadcastListInfo('1234@broadcast')
|
|
782
|
+
console.log(`nama: ${bList.name}, penerima: ${bList.recipients}`)
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
---
|
|
786
|
+
|
|
787
|
+
## 🛠️ Fungsi Kustom
|
|
788
|
+
|
|
789
|
+
### Aktifkan Level Debug
|
|
790
|
+
|
|
791
|
+
```javascript
|
|
792
|
+
const sock = makeWASocket({
|
|
793
|
+
logger: P({ level: 'debug' }),
|
|
794
|
+
})
|
|
795
|
+
```
|
|
796
|
+
|
|
797
|
+
### Daftarkan Callback WebSocket
|
|
798
|
+
|
|
799
|
+
```javascript
|
|
800
|
+
sock.ws.on('CB:edge_routing', (node) => { })
|
|
801
|
+
sock.ws.on('CB:edge_routing,id:abcd', (node) => { })
|
|
802
|
+
sock.ws.on('CB:edge_routing,id:abcd,routing_info', (node) => { })
|
|
803
|
+
```
|
|
804
|
+
|
|
805
|
+
---
|
|
806
|
+
|
|
807
|
+
## 💡 Tips & Praktik Terbaik
|
|
808
|
+
|
|
809
|
+
- **Gunakan Caching** — Cache metadata grup untuk performa lebih baik
|
|
810
|
+
- **Tangani Rekoneksi** — Implementasikan auto-reconnect untuk kestabilan
|
|
811
|
+
- **Kelola Store** — Gunakan database (MongoDB, PostgreSQL) untuk produksi
|
|
812
|
+
- **Penanganan Error** — Bungkus panggilan socket dengan try-catch
|
|
813
|
+
- **Batas Rate** — Hormati batas WhatsApp untuk hindari ban
|
|
814
|
+
- **Keamanan** — Jangan bagikan kredensial auth; gunakan variabel lingkungan
|
|
815
|
+
|
|
816
|
+
---
|
|
817
|
+
|
|
818
|
+
## 📄 Lisensi
|
|
819
|
+
|
|
820
|
+
Didistribusikan di bawah Lisensi MIT. Lihat [LICENSE](LICENSE) untuk info lebih lanjut.
|
|
821
|
+
|
|
822
|
+
---
|
|
823
|
+
|
|
824
|
+
<div align="center">
|
|
825
|
+
Fork dan dimodifikasi oleh Kaels.<br>
|
|
826
|
+
Kaileys - WhatsApp Web API Modern | Based on <a href="https://github.com/WhiskeySockets/Baileys">WhiskeySockets/Baileys</a>
|
|
827
|
+
</div>
|