Commit Graph

180 Commits

Author SHA1 Message Date
Cassio Santos 5c456e514e fix: cannot send message on new Whatsapp Business limited accounts (#2080)
* fix: cannot send message on new Whatsapp Business limited accounts

* chore: add woraround to resend the message on 475 errors

* fix: lint

* fix: add handler

* fix: lint

* Update src/Socket/messages-send.ts

---------

Co-authored-by: Rajeh Taher <rajeh@reforward.dev>
2025-11-19 15:18:19 +02:00
vini 40f128d88a feat(events): decrypt event responses (#2056) 2025-11-19 15:17:21 +02:00
Rajeh Taher abf5af0e72 history: improve history sync and support new payload 2025-11-07 00:16:15 +02:00
Rajeh Taher cc3cd17392 cleanup: remove string lid / jid refs and improve hosted support 2025-10-20 00:05:54 +03:00
Rajeh Taher 2e47d4b66b messages-send, signal: improve hosted device support + patch cache 2025-10-19 23:56:05 +03:00
Rajeh Taher d0feb240fa chore: lint 2025-10-16 13:26:58 +03:00
Rajeh Taher 38e0f2c0e6 Signal, messages-recv: Fix previous commit, fix log 2025-10-04 15:30:04 +03:00
Rajeh Taher 20693a59d0 lid, wip: Support LIDs in Baileys (#1747)
* lid-mapping: get missing lid from usync

* lid-mapping, jid-utils: change to isPnUser and store multiple mappings

* process-message: parse protocolMsg mapping, and store from new msgs

* types: lid-mapping event, addressing enum, alt, contact, group types

* validate, decode: use lid for identity, better logic

* lid: final commit

* linting

* linting

* linting

* linting

* misc: fix testing and also remove version json

* lint: IDE fucking up lint

* lid-mapping: fix build error on NPM

* message-retry: fix proto import
2025-09-08 10:03:28 +03:00
Paulo Victor Lund f83a1c2aff Add mutex-based transaction safety to Signal key store (re-reworked) (#1697)
* mutex reimplementation

* lint

* lint

* lint fix

* Add cleanup for expired sender key mutexes

Introduces a mechanism to periodically clean up unused sender key mutexes in addTransactionCapability, reducing memory usage by removing mutexes that have not been used for over an hour and are not locked. A timer is started when the first mutex is created, and cleanup runs every 30 minutes.

* Update auth-utils.ts

* Refactor Signal key transaction usage

Introduces a local variable for parsed Signal keys in libsignal.ts to avoid repeated type assertions and improve code clarity.

* Refactor transaction handling for key operations

Introduces per-entity mutexes and passes key identifiers to transaction calls for finer-grained concurrency control in Signal key storage and socket operations. Updates transaction signatures and usage across Signal, Socket, and Utils modules to improve atomicity and performance, especially for system and sync messages.

* Improve SignalKeyStore transaction handling

Refactored transaction logic in SignalKeyStore to add commit retries, cleanup of transaction state, and improved mutex management for sender keys. Enhanced validation and batching for pre-key deletions and updates, improving concurrency and reliability.

* Replace custom mutex cleanup with LRU cache

Switched from manual mutex cleanup logic to using the lru-cache package for managing mutexes in addTransactionCapability. This simplifies resource management and ensures expired mutexes are automatically purged. Added lru-cache as a dependency.

* Lint fix

* Update src/Signal/libsignal.ts

* Update libsignal.ts

---------

Co-authored-by: João Lucas <jlucaso@hotmail.com>
Co-authored-by: Rajeh Taher <rajeh@reforward.dev>
2025-09-07 20:22:47 +03:00
Rajeh Taher 538d3e4da7 move to create instead of fromObject 2025-09-07 14:29:45 +03:00
vini 50fc83b008 feat(business): change profile/cover photo and manage quick replies (#1724) 2025-09-07 14:08:26 +03:00
vini 084761dc31 feat: eventMessage sending / call link creation (#1677) 2025-09-07 14:08:18 +03:00
vini aba3ecf969 feat: add enable/disable link preview privacy (#1675) 2025-08-07 01:50:24 +03:00
João Lucas de Oliveira Lopes 812e53e4eb Refactor: Fix Event Buffer Deadlock with State Machine (#1633)
* feat: implement state machine for chat synchronization and buffer management

* test: Add Jest configuration and tests for connection deadlock handling

- Created a Jest configuration file to set up testing environment.
- Implemented utility functions for creating isolated authentication sessions and mocking WebSocket connections.
- Added a test case to ensure that the connection does not deadlock when history sync is disabled, verifying the correct handling of message events.

* feat: add GitHub Actions workflow for running tests

* chore: sort import lint

* fix: implement timeout handling for AwaitingInitialSync state in chat socket, maybe fix memory leak

* feat: enhance chat synchronization by refining AwaitingInitialSync handling and adding history sync checks
2025-08-07 01:15:41 +03:00
Rajeh Taher 8dc852ee89 proto: fix proto generation, tsc: fix node imports of compiled code 2025-07-19 23:16:35 +03:00
Rajeh Taher 29f0ac83f8 tsc: fix builds & fix type errors 2025-07-19 17:16:07 +03:00
Rajeh Taher 787aed88b8 project: Move to ESM Modules 2025-07-17 13:54:17 +03:00
vini 19124426b2 [feat]: add/edit/remove contacts (#1172)
* add/edit/remove contacts

* use proto type in contact action

---------

Co-authored-by: canove <cassio@economicros.com.br>
2025-07-09 22:01:20 +03:00
DevAstro a4b96ed37e [READY FOR MERGE] Add support for custom profile picture dimensions (#1563)
* Add support for custom profile picture dimensions

The updateProfilePicture and generateProfilePicture functions now accept an optional dimensions parameter, allowing custom width and height for profile pictures. This provides more flexibility for image resizing beyond the default 640x640 size.

* minor corrections

Replaces 'w' and 'h' with 'width' and 'height' in profile picture related functions for improved clarity and consistency.

* fix lint
2025-06-30 16:04:37 -03:00
Wender Teixeira 83a6956b44 fix disconnect error when using sendPresenceUpdate with LID (#1545)
* chore: change version web

* fix: enhance pairing response validation and adjust HMAC handling for hosted devices

* refactor: remove unused 'from' attribute in chatstate message

* feat: update chatstate message to conditionally set 'from' attribute based on server type
2025-06-24 17:51:46 -03:00
vini 8b6ea34b07 fix: Connection error when add @ at start of your name (#1536) 2025-06-21 12:37:36 -03:00
canove fa706d0b50 chore: format everything 2025-05-06 12:10:19 -03:00
Rajeh Taher c037f68c2d socket: include lid in onWhatsApp response 2025-04-09 20:17:53 +03:00
Rajeh Taher 98ecd2a653 usync, chat: get bot profile info and get bot list 2025-03-19 00:44:53 +02:00
Rajeh Taher b7a9f7bd67 chats: stop using getMessage to decrypt poll votes
The new expected behavior is to decrypt the new votes yourself like in the Example.ts file
2025-03-14 23:40:33 +02:00
Rajeh Taher 49eeb7556d socket,utils: fix imports 2025-03-01 18:26:20 +02:00
Bob 1d88166613 Feat: Block messages from unknown numbers (#1071)
* Update Chat.ts

* Update chats.ts

* lint

* lint

* lint
2025-03-01 18:20:22 +02:00
Jared Wray 588de6ce10 fix: migrating to @cacheable/node-cache as it is maintained (#1074) 2025-03-01 18:15:49 +02:00
Rajeh Taher f1f49ad2c8 Usync: Barebones Usync Protocol support (#960)
* feature(feature/usync-mex): initial commit

* chore: fix merge commit

* chore:lint
2024-12-22 23:38:41 +02:00
Rajeh Taher 18ac07df8e lint: 0 warnings left 2024-10-14 05:15:10 +03:00
Rajeh Taher 61a0ff3178 mobile: deprecation. 2024-10-14 03:56:32 +03:00
Rajeh Taher bf578c79e7 fix(master): Fixes prop hash reset due to missing property in the response 2024-10-07 21:26:32 +03:00
Rajeh Taher 47b2f6dd41 fix(master): Small fix to the profile picture endpoints 2024-09-28 14:26:54 +03:00
建辉 6ff945502d feat: add label feature (#955)
Co-authored-by: 刘建辉 <liujianhui@gongchang.com>
2024-09-22 14:48:17 +03:00
Rajeh Taher 70f0321381 fix(master): New profile update/removal endpoint (inspired by #1048) 2024-09-22 14:32:05 +03:00
arthur simas ffafc167fb fix: remove 'none' from updateGroupsAddPrivacy (#966)
* fix: remove 'none' from updateGroupsAddPrivacy

* fix(fix/remove-none-groupadd): linting

---------

Co-authored-by: Rajeh Taher <rajeh@reforward.dev>
2024-08-14 12:16:12 +03:00
Rajeh Taher 1f9cfb1cba PDO protocol (peer data operation): Get more history sync + better message retry mechanism (#919)
* feat(feature/pdo-sync): initial commit

* feat(feature/pdo-sync): Moved to conventional send functions, exported, patched some errors

* fix(feature/pdo-sync): Linting and more bugsquatting

* chore(feature/pdo-sync): linting done

* feat/fix(feat/pdo-sync): Newsletter decrypt + ack

* merge (#946)

* fix: profilePictureUrl (#901)

* Update module to latest version  (#926)

* Update package.json

Update the module to the latest

* Add files via upload

* Fix: Readme use upsert events (#908)

* Fix: getUSyncDevices (#862)

* Update messages-send.ts

* Update messages-send.ts

* Update messages-send.ts

* Fix lint

* Fix lint

* fix(master): update linting workflow to node 20 (current LTS)

---------

Co-authored-by: Akhlaqul Muhammad Fadwa <75623219+zennn08@users.noreply.github.com>
Co-authored-by: Rizz2Dev <muhamad.rizki27483@smp.belajar.id>
Co-authored-by: Oscar Guindzberg <oscar.guindzberg@gmail.com>
Co-authored-by: Bob <115008575+bobslavtriev@users.noreply.github.com>

* chore(feature/pdo-sync): final linting

* fix(feature/pdo-sync): make replies optional

* feat(feat/pdo-sync): add <unavailable> handle

* feat(feature/pdo-sync): Fixed the issues with peer messages and implemented some more logic

* fix(feature/pdo-sync): Make progress optional

* fix(feature/pdo-sync): Nullify and defeat Message absent from node if it is resolved immediately

* feat(feature/pdo-sync): Export message absent from node and export PDO request ID with it

---------

Co-authored-by: Akhlaqul Muhammad Fadwa <75623219+zennn08@users.noreply.github.com>
Co-authored-by: Rizz2Dev <muhamad.rizki27483@smp.belajar.id>
Co-authored-by: Oscar Guindzberg <oscar.guindzberg@gmail.com>
Co-authored-by: Bob <115008575+bobslavtriev@users.noreply.github.com>
2024-08-14 12:07:27 +03:00
Akhlaqul Muhammad Fadwa 5bdfc63105 fix: profilePictureUrl (#901) 2024-07-12 04:04:01 +03:00
Bob d396a03e65 Feat: Mute unknown calls (privacy) (#872)
* Update Chat.ts

* Update chats.ts

* export

* fix sort
2024-07-03 10:34:27 +03:00
Rajeh Taher 5ffa3a51b6 fix(master): linting and making functionality better 2024-05-18 12:56:44 +03:00
vini 51f18d82c2 fix shouldIgnoreJid not receiving app state keys (#792) 2024-05-18 12:52:36 +03:00
Rajeh Taher ce325d1182 fix(master): linting warnings 2024-05-10 16:33:59 +03:00
Rajeh Taher 88cf6f5234 fix(master): linting 2024-05-10 16:24:20 +03:00
Rajeh Taher 72407e3025 linting 2024-05-06 18:19:50 +03:00
Rajeh Taher fbbb511fb8 fix(master): error in init queries 2024-05-06 18:18:15 +03:00
azudin b93d1f5bd7 Update chats.ts 2023-12-08 00:13:17 +08:00
azudin 9ce6e7b4e6 Update chats.ts 2023-12-08 00:01:10 +08:00
azudin 41321dc34e Update chats.ts 2023-12-07 23:55:09 +08:00
azudin 6f81ce9527 Update chats.ts 2023-12-07 23:51:22 +08:00
azudin 92dec36781 Update chats.ts 2023-12-07 23:44:51 +08:00