Commit graph whatsapp-web.js/src
Author SHA1 Message Date
BenyFilho
daaa04445f
Fix Send Animated Sticker (#3591)
* Fix Send Animated Sitckers

* Update Utils.js

* Add a condition to ignore channels

Add a condition to ignore channels and keep compatibility.

* chore: mark channels as done feature

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-06-10 09:14:21 +03:00
alechkos
d2fe324e5b
fix: GroupChat.setPicture (#3593)
* fix: find collection if not in cache

* style: use camelcase
2025-06-05 20:21:38 +03:00
alechkos
755cb6ce73
fix: window.WWebJS.getChatModel (#3587)
* fix: skip objects that don't have id

* fix: check for defined contact prop
2025-06-04 11:01:22 -03:00
NickWang
bbc089a625
fix: 🐛 quote message obj (#3586)
✅ Closes: #3585
2025-06-03 20:02:21 +03:00
tofers
0ffb66fdb1
feat: send Media HD (#3535)
* Changing the quality of media downloads

* return function result

* add option sendImageAsHd

* change example

* fix quotes

* chore: remove unused code

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-06-02 22:19:22 +03:00
CyrilLacroix
c142c3bf93
fix(vcard): parse vcard module (#1995)
* fix(vcard): parse vcard module

* fix(vcard): eslint

* refactor: merge internal modules into VCardUtils

* fix: use proper modules for parsing vcards

* feat: add usage example

* chore: eslint fix

* fix: send vcard with email

Co-authored-by: KH Soh <2169449+khsoh@users.noreply.github.com>

* feat: add additional context to usage example

* refactor: revert module rename

---------

Co-authored-by: Codeboss <131376628+codebossdev@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: KH Soh <2169449+khsoh@users.noreply.github.com>
2025-06-02 22:08:45 +03:00
Yusif Aliyev
94ce20b4a5
fix: change mentionedIds type from ChatId[] to string[] in Message (#3581)
* fix: change mentionedIds type from ChatId[] to string[] in Message interface

* fix: correct types for mentionedIds and groupMentions

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-06-02 21:05:18 +03:00
alechkos
f7d0456a49
hotfix: fix window.WWebJS.getChatModel (#3573) 2025-06-01 23:37:21 -03:00
alechkos
d0642b761c
feat: Channel (#2620)
* window.injectToFunction clarifications

* added createChannel method

* initial Channel class structure

* added getChannelById and getChannels methods

* added 4 methods to change channel metadata

* added deleteChannel method

* added subscribe to/unsubscribe from channel methods

* ecmaVersion updated to 2022

* added searchChannels method

* refactoring of: getChat, getChannel, getChatModel, getChannelModel

* removed Channel.canSend

* sendMessage updated to support channels [p1]

* createChannel: returns string if an error occupied

* added getSubscribers

* added mute/unmute methods

* searchChannels: minor update

* sendMessage updated to support channels [p2]

- added support to send image, sticker, gif and video

* [REFAC] refactored chat retrieving in getChatOrChannel

* [FEAT] added getChannelByInviteCode method

* [CHG] added check if channel creation enabled

* [FEAT] added sendChannelAdminInvitation method

* [WIP] preparations for sending polls [p1]

* [BUG] fixed some internal functions

* [BUG] fixed poll creation

* [COPY] renamed some internal functions

- window.WWebJS.getChatOrChannel renamed back to window.WWebJS.getChat
-window.WWebJS.getChatOrChannelModel renamed back to window.WWebJS.getChatModel

* fix: typo

* fix: send docs without caption

* fix: fixed some internal function

* fix: channel retrieving

* fix: fixed internal getChannelMetadata function

* fix: fixed channel admin can unsubscribe from channel

* feat: channel admin functionality

* feat: added fetchMessages method

Co-authored-by: tuke307 <58882912+tuke307@users.noreply.github.com>

* refactor: revert removing support for Buttons and Lists

Note: buttons and lists are deprecated

* refactor: revert parameter name from 'chatOrChannel' to 'chat'

* fix: support Node v12

* refactor: return 'undefined' in a case of falsy value

* refactor: use already created variable

* docs: fix 'countryCodes' property type

* fix: 'searchChannels' method fixed

* fix: add check in 'setReactionSetting' method

* sendNewsletterMessageJob requires a proper Msg Object in 2.24xx (#10)

Co-authored-by: Sven Neumann <s.neumann@websix.de>

* style: fix broken link in readme file

* fix: only directPath determines whether hasMedia or not

fixes #2952

* fix: get rid of unnecessary 'await'

* feat: add option to send polls in channels

* refactor: get channel instances with 'getChatById'

* chore: fix eslint

* fix: fatal error

* refactor: delete local models by default when unsubscribing

* fix: prevent TypeError if no channel models are returned

* fix: update 'searchChannels' function for WWeb > 2.3000.0

* fix: fix for 'getChannelByInviteCode' function

* fix: fix for 'sendChannelAdminInvite' function

* fix: update 'fetchMessages' for channels

* refactor: update 'setReactionSetting' function

* fix: update 'sendMessage' for channels

* feat: add 'transferChannelOwnership' function

* refactor: add 'deleteChannel' function to 'Client'

* style: fix project code style

* chore: eslint fix

* feat: add 'sendSeen' function

* fix: fix the function restoration after injection

* refactor: remove duplicate module

* fix: get isNewsletter properly

* fix: fix channels media - add mediaHandle

Co-authored-by: devlikepro <155617407+devlikepro@users.noreply.github.com>

---------

Co-authored-by: tuke307 <58882912+tuke307@users.noreply.github.com>
Co-authored-by: Sven <sven2neumann@gmail.com>
Co-authored-by: Sven Neumann <s.neumann@websix.de>
Co-authored-by: devlikepro <155617407+devlikepro@users.noreply.github.com>
2025-05-31 21:36:19 +03:00
alechkos
dd257b2039
feat: @­lid support (#3571)
* fix: convert lid to wid in window.WWebJS.getChatModel

* convert lid to wid in window.WWebJS.getContact
2025-05-31 21:24:44 +03:00
alechkos
91217f87ba
fix: Chat.isMuted (#2999)
* fix: isMuted returns true or false

* docs: add missing parts

* refactor: apply simplification

* fix: update chat instance after calling mute/unmute

* stylee: clarify and fix docs

* fix: fix convertation of Date to timestamp

* refactor: small code refactor
2025-05-30 16:41:31 +03:00
alechkos
d29eaf7def
feat: save contact to addressbook (#3533)
* feat: add respectfull modules

* feat: add saveOrEditAddressbookContact function

* feat: add deleteAddressbookContact function

* refactor: import necessary type for return value

* style: fix typo

* docs: add ocs

* style: fix typo
2025-05-30 16:39:32 +03:00
Shir Serlui
494a18ddb2
Support lid me user in message id (#3570)
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-05-30 16:38:48 +03:00
WavyCat
3836309f99
Fix the Location declaration (#3555)
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-05-30 16:28:40 +03:00
Kang
e62f15edf3
Able to forward with caption (#3463)
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2025-05-30 15:56:35 +03:00
alechkos
385e3cc59b
fix: chat instance retrieving in syncHistory (#3342) 2025-05-30 15:53:36 +03:00
alechkos
bad202d2bc
fix: fix 'delete' method for messages (#3301) 2025-05-30 15:51:41 +03:00
alechkos
0d040611e7
fix: remove serialization on already deserialized object (#3350) 2025-05-30 15:50:02 +03:00
Luiz Braga
c6b6fb149b
fix: puppeteer connection with browser url (#3518)
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-05-30 14:39:11 +03:00
alechkos
c67980d47d
fix: setDisplayName changes name only locally (#3302)
* fix: change internal function

* chore: eslint fix

* style: revert spca
2025-05-30 14:36:45 +03:00
alechkos
90b71cc6d3
fix: openChatWindowAt function (#3347)
* refactor: export the whole module, not a very single function

* fix: fix openChatWindowAt function
2025-05-30 14:32:53 +03:00
tofers
c0ba5e545b
feat: Setting background synchronization (#3331)
* Changing the background synchronization setting

* add  example

* return function

* style: add clarification note

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2025-05-30 11:06:08 +03:00
Gusfahmi Alghazali Caniago
cefc403791
fix: change resetState evaluate function (#3358)
Co-authored-by: gusfahmi <gus@entertrim.com>
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2025-05-30 10:33:47 +03:00
BenyFilho
007ee59cea
Update Utils.js to fix chat.isReadOnly (#3515)
Fixing chat.isReadOnly attribute

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-05-30 10:20:43 +03:00
BenyFilho
0ad998d68d
Fix groupChat addParticipants (#3543)
* Fix addParticipants

* fix Approve and Reject Membership Requests
2025-05-12 11:50:42 -03:00
tuyuribr
ad11b5bfee
Send message without quote if quoteFails (#3475)
* Send message without quote if quoteFails

New option to send a message without quote when quotedMessage fails

* Rest

* Changing to sendMessage level

* Update Utils.js

* Update Utils.js

* Update Utils.js

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2025-04-24 18:10:39 -03:00
alechkos
6d1655503f
fix: getCountryCode (#3292) 2025-03-27 09:58:51 +02:00
BenyFilho
441a3a6d6c
Fix Group getInviteCode (#3492)
* Update Store.js add new require to fix getInviteCode method

* Update GroupChat.js adjusting method getInviteCode
2025-03-26 06:56:32 +02:00
devlikeapro
f56d25f1c4
Add max retries for fs.promises.rm (#3351) 2024-12-23 19:33:08 +02:00
BenyFilho
301c9af8b7
Fix isGroup (#3380)
* Update Utils.js getChatModel because Meta chat object affected Group Chats

* Ajust to set isGroup as false as default
2024-11-22 18:55:13 -03:00
github-actions[bot]
058a799303
Update supported WhatsApp Web version to v2.3000.0 (#2616)
Co-authored-by: pedroslopez <pedroslopez@users.noreply.github.com>
2024-10-04 04:26:27 +00:00
tofers
5b0e139ad4
Get Stories (#3294)
* Get all broadcast

* fixed return msgs

* feat: add usage example

* Update src/structures/Broadcast.js

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-09-30 20:33:31 +03:00
alechkos
289b354285
fix: pass client reference correctly (#3296) 2024-09-30 20:31:46 +03:00
Lavyk Soares Nunes
4aef1ffea1
fix: openChatWindow (#3293)
* correção função openChatWindow

Alterando o "chat" para "chatId"

* fix: use defined variable

The bug found here: https://github.com/pedroslopez/whatsapp-web.js/pull/3291#discussion_r1776061417

Co-authored-by: StiflerPasha <40593009+StiflerPasha@users.noreply.github.com>

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: StiflerPasha <40593009+StiflerPasha@users.noreply.github.com>
2024-09-26 00:35:32 -03:00
alechkos
b4c576123a
fix: hotfix the 'openChatWindow' function (#3291)
Co-authored-by: Beny Filho <168232825+BenyFilho@users.noreply.github.com>
2024-09-25 14:33:04 -03:00
devlikeapro
e470c82237
Use idempotent exposeFunctionIfAbsent (no reinject flag) (#3233)
* Add exposeFunctionIfAbsent function

* use exposeFunctionIfAbsent function instead of original exposeFunction

* Remove "reinject" flag

* exposeFunctionIfAbsent - onQRChangedEvent

* exposeFunctionIfAbsent - onLogoutEvent
2024-09-25 18:31:35 +03:00
Bernardo Peña
796a0a2367
Update Client.js (#3286)
fix: resolved issue with 'onPollVoteEvent' binding after logout

- Fixed error: 'Failed to add page binding with name onPollVoteEvent: window["onPollVoteEvent"] already exists!'
- The error occurred after logging out and attempting to reconnect.
- Connection would get stuck in 'authenticated' state and never reach 'ready'.

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-09-23 17:14:41 +03:00
alechkos
5b0e0612de
fix: make function getContactDeviceCount work (#3284)
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2024-09-23 17:12:17 +03:00
Kang
0fa6ebb66d
Sync history conversation of the Chat (#3281)
* Sync historical message

* Add documentation

* Code simplify

* feat: add syncHistory method in Chat class

* docs: update docs

* chore: update examples

* fix: handle asynchronous function properly

* refactor: include await

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-09-20 11:29:08 +03:00
alechkos
01c45047d2
docs: generate docs for the latest release (#3279)
* docs: generate docs for the latest release

* docs: mark version v1.26.0

* docs: mark WWeb version v2.3000.1016590837
2024-09-18 23:51:12 +03:00
tuyuribr
d2597bba72
Count user connected devices (#3223)
* Update Store.js

* All

* Make Eslist god happy

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2024-09-18 10:33:23 +03:00
Alwin Lubbers
8fdf2b840e
fix: getMessageById false error with group chat message id (#3265)
Messages from Group Chats will have 4 elements in the `params` variable, instead of the 3 for private messages. That's because the `params` variable splits the string by `_`. Group chat messages will have 3 `_` characters instead of 2 for private chat messages.

This updates the check to account for group chat messages (which have 4 parameters instead of 3).

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2024-09-15 13:09:15 +03:00
Matheus Kuster
1591350144
chore: add typecheck to data.from and data.to when creating the inviteV4 (#3257)
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-09-15 12:30:21 +03:00
Shir Serlui
f203523b75
Allow access to the original error object (#3252)
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-09-15 01:46:09 +03:00
Alwin Lubbers
951ff7bfca
fix: sendMessage with quoted message id (#3260)
* fix: sendMessage with quoted message id

Now using `window.Store.Msg.getMessagesById` instead of `window.Store.Msg.get`

* refactor: apply message retrievement to all appropriate places

* chore: ignore ide's dirs

* fix: set proper variable

---------

Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-09-15 01:44:07 +03:00
Ayush Mourya
22af9df3d0
Handling client.logout() Exception gracefully with optional chaining (#2447)
* Added Optional Chaining to Avoid Breaking The Code

* Added Optional Chaining to Avoid Breaking Code

* Updated code to handle all node version

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: Shir Serlui <70711723+shirser121@users.noreply.github.com>
2024-09-14 20:43:21 +03:00
Rajeh Taher
13ce571c64
Farewell, Webpack! Re-injection, Pairing Code login, and 2.24x jumbofix (#2816)
* fix(webpack-exodus): Added the new patch

* fix(webpack-exodus): Fixed v2.3000.x and v2.24

* chore(webpack-exodus): eslint

* fix(webpack-exodus): Fixed Store

* fix(webpack-exodus): slight store fix

* chore(webpack-exodus): fix example so that I don't crash on every load

* chore: eslint fix

* fix(webpack-exodus): prevent confusion with build systems

* fix(webpack-exodus): Add proper groups module

* fix(webpack-exodus): Fix order queries

* fix(webpack-exodus): Bad export name

* feat(webpack-exodus): Re-injection, No more selectors, Pairing Code auth

* fix(webpack-exodus): Eslint and better login/logout handling

* fix(webpack-exodus): 2.24 compatibility

* revert testing options

* chore(webpack-exodus): ESLint

* chore(webpack-exodus): final eslint tweak (did not commit with last commit for some reason)

* style: fix broken link in readme file

* fix(webpack-exodus): Fix forwarding messages

* fix(webpack-exodus): finish forwarding function

* Making the ESLint god happy

* Fix window.Store.ProfilePic.profilePicFind is not a function error (#3001)

* Change window.Store.ProfilePic.profilePicFind to window.Store.ProfilePic.requestProfilePicFromServer

* Prevent breaking v2.2x

* refactor: make it more readable

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>

* Sanitize, improves and fixes

* make ESList god happy

* fix getInviteCode for group (#3007) (#3029)

* fix getInviteCode for group (#3007)

* move changes to proper getInviteCode method.

* style fix

* refactor: add try-catch in a case the user is not a group admin

* refactor: handle promise properly

---------

Co-authored-by: Sven Neumann <s.neumann@websix.de>
Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>

* fixes

* Update LocalWebCache.js

* fix delete on 2.3000 (#3048)

* fix delete on 2.3000

* fix compareWwebVersions

* fix: use proper comparison operator

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>

* Implement bot invoking capabilities (#3009)

* Implement bot invoking capabilities

* Update index.d.ts

* Eslint

* Webpack exodus fix message_reaction event (#3099)

* exposed WAWebAddonReactionTableMode

* capture reaction using WAWebAddonReactionTableMode

* move compareWwebVersions and check version before trying to expose new store

* message_reaction on example.js (#3102)

* handle message_reaction event on example.js

* log wweb version on ready

* fix reactions on pvt chats (#3104)

* New group function

* new group settings

* Update Client.js

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
Co-authored-by: tuyuribr <45042245+tuyuribr@users.noreply.github.com>
Co-authored-by: Seow Zhen Jun <56989187+seowzhenjun0126@users.noreply.github.com>
Co-authored-by: Sven <sven2neumann@gmail.com>
Co-authored-by: Sven Neumann <s.neumann@websix.de>
Co-authored-by: Jorge Rocha Gualtieri <jorge@jrg.com.br>
Co-authored-by: Mateus Mercer <accounts@matbm.net>
2024-07-23 22:19:22 -03:00
alechkos
01714fe599
feat: vote_update event (#2596)
* Merge branch 'add-polls' into polls-ext

* added listener to poll votes

* added isUnvote property

* added option for custom message secret

* usage example updated

* added logic for catching removed votes

* usage example updated

* fixed logic for poll vote events

* temp usage example

* No more `isCurrentState`

* messageSecret converted to array

Co-authored-by: tuyuribr <45042245+tuyuribr@users.noreply.github.com>

* docs updated

* we already have messageSecret in vote.parentMessage

* PollVote.selectedOptions changed to be similar to pollOptions

* docs fixed

* window.injectToFunction clarifications

* minor clarifications

* fix: typo

* style: fix broken link in readme file

---------

Co-authored-by: tuyuribr <45042245+tuyuribr@users.noreply.github.com>
2024-04-30 20:23:17 +03:00
Shir Serlui
8c810a8462
Fix: delete lines that remove data from this._data (#2958) 2024-04-29 10:59:20 +03:00
Gulg
b99d28c5c6
Add members settings (#2788)
* Update GroupChat.js

* Update index.d.ts

* style: clarify method doc

* refactor: add additional check

* fix: provide valid error name

---------

Co-authored-by: alechkos <93551621+alechkos@users.noreply.github.com>
2024-04-28 16:22:07 +03:00