* Allow the embedded client to work without UpdateState version
* Test that RoomWidgetClient can receive state without update_state
* add sliding sync test
* sliding sync receive test
* review
* add doc comment
---------
Co-authored-by: Timo <toger5@hotmail.de>
* Check for `unknown variant` on to-device sending and fallback to room event encryption.
* fix tests
* fix error js-sdk api type
* Change logger from debug to warn for unsupported to-device transport and improve error message comments
* also add case for not supported
This will be send by the driver in case we sent an encrypted to-device but do not have support of that.
---------
Co-authored-by: Robin <robin@robin.town>
* Remove redundant sendDelayedEventAction
We do already have the state `hasMemberEvent` that allows to distinguish the two cases. No need to create two dedicated actions.
* fix missing return
* Make membership manager an event emitter to inform about status updates.
- deprecate isJoined (replaced by isActivated)
- move Interface types to types.ts
* add tests for status updates.
* lint
* test "reschedules delayed leave event" in case the delayed event gets canceled
* review
* fix types
* prettier
* fix legacy membership manager
* remove deprecated jitter.
* use non deprecated config fields (keep deprecated fields as fallback)
* update tests to test non deprecated names
* make local NewMembershipManager variable names consistent with config
* make LegacyMembershipManger local variables consistent with config
* comments and rename `networkErrorLocalRetryMs` -> `networkErrorRetryMs`
* review
* Switch from defer to Promise.withResolvers
As supported by the outgoing LTS version (v22) which has 99% support of ES2024
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Deprecate defer instead of killing it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Knip
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate based on review
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate based on review
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate based on review
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Improve coverage
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
The condition was inverted here, but the tests were passing because
they didn't add enough expiry time for the token expiry to be over
the threshold.
Fix the condition and tests, add another test and generally add a
bunch of comments so hopefully this is less confusing for the next
person.
Fixes https://github.com/element-hq/element-web/issues/29858
(cherry picked from commit fea619d34c)
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
The condition was inverted here, but the tests were passing because
they didn't add enough expiry time for the token expiry to be over
the threshold.
Fix the condition and tests, add another test and generally add a
bunch of comments so hopefully this is less confusing for the next
person.
Fixes https://github.com/element-hq/element-web/issues/29858
* Refactor how token refreshing works to be more resilient
1. ensure we do use the new token if it is not explicitly inhibited by the caller
2. eagerly refresh token if we know it is expired
3. allow refreshing a token multiple times if e.g. on bad connection or the environment has been slept and sufficient time has passed since the last refresh attempt
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Add exponential backoff
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Ensure no timing effects on `authedRequest` method call
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---------
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
* Stabilise MSC3765
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* Remove unstable content and hardcode property name
---------
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
* use methodFactory extensions from the rootLogger in child loggers.
* use simple method factory copy AND `childLogger.setLevel(childLogger.getLevel());`
This is the important part that actually registers the new methods.
* add comments and find a way to make it clearer that the types are correct.
* review
* additionally fix MatrixRTCSessionManager being initialized before the extension is in place.
* Add comment to clarify order of log extensions and creating childs.
* review
* Set "loglevel" min version to guarantee access to `logger.rebuild`