* Expose the StatusChanged event through the RTCSession
Signed-off-by: Timo K <toger5@hotmail.de>
* add membershipManagerStatus public get field
Signed-off-by: Timo K <toger5@hotmail.de>
* add probably left as a getter
Signed-off-by: Timo K <toger5@hotmail.de>
* add tests for coverage
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Add probablyLeft emission to the MatrixRTCSession
Signed-off-by: Timo K <toger5@hotmail.de>
* add docstring
Signed-off-by: Timo K <toger5@hotmail.de>
* Review: add additional test + fix pending promises issue.
Signed-off-by: Timo K <toger5@hotmail.de>
* review: `Pick` only a subset of membership manager events
Signed-off-by: Timo K <toger5@hotmail.de>
* reveiw: update probablyLeft logic to be more straight forward
Signed-off-by: Timo K <toger5@hotmail.de>
* fix test
Signed-off-by: Timo K <toger5@hotmail.de>
* make test not wait for 5s
Signed-off-by: Timo K <toger5@hotmail.de>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* fix linter (rebase)
Signed-off-by: Timo K <toger5@hotmail.de>
* fix import
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Introduce sessionDescription
Signed-off-by: Timo K <toger5@hotmail.de>
* Make sessionDescription part of a MatrixRTCSession
Signed-off-by: Timo K <toger5@hotmail.de>
* Make session manager only menage session for one sessionDescription
Signed-off-by: Timo K <toger5@hotmail.de>
* make membership manager aware about session (application + id)
Before this was just hardcoded to a call session
Signed-off-by: Timo K <toger5@hotmail.de>
* update tests
Signed-off-by: Timo K <toger5@hotmail.de>
* fix doc comments
Signed-off-by: Timo K <toger5@hotmail.de>
* Make fields private, improve comments, improve whitespace, don't use deprecated fields
Signed-off-by: Timo K <toger5@hotmail.de>
* add test for other application end event
Signed-off-by: Timo K <toger5@hotmail.de>
* rename call -> session
Signed-off-by: Timo K <toger5@hotmail.de>
* fix tests
Signed-off-by: Timo K <toger5@hotmail.de>
* remove id check since its already part of `deepCompare(membership.sessionDescription, sessionDescription)`
Signed-off-by: Timo K <toger5@hotmail.de>
* remove scope related tests. The id should be the only thing that scopes sessions. everything else is application (session type) specific
Signed-off-by: Timo K <toger5@hotmail.de>
* review
Signed-off-by: Timo K <toger5@hotmail.de>
* add test for custom sessionDescription
Signed-off-by: Timo K <toger5@hotmail.de>
* callMembershipsForRoom to default to call
Signed-off-by: Timo K <toger5@hotmail.de>
* roomSessionForRoom backwards compatible (And deprecate the call specific method)
Signed-off-by: Timo K <toger5@hotmail.de>
---------
Signed-off-by: Timo K <toger5@hotmail.de>
* Support for creator power level
Adds support for infinite power level specified by [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
* Update unit test
* Hardcode versions
as room versions strings aren't ordered
* Add test for v12 rooms
* Use more compact syntax
* Fix doc
* Fix additionalCreators from PR edit
* Split out hydra room version check
* Move power level logic into room state
Which already has knowledge of the room create event
* Add docs
* Fix unused bits
* Fix docs
* Fix lying docstring
* Reverse logic for hydra semantics
Assume unknown room versions do use hydra
* Use backticks
* Switch back to hardcoding just the two hydra versions
---------
(cherry picked from commit e119bf9040)
Co-authored-by: David Baker <dbkr@users.noreply.github.com>
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Support for creator power level
Adds support for infinite power level specified by [MSC4289](https://github.com/matrix-org/matrix-spec-proposals/pull/4289).
* Update unit test
* Hardcode versions
as room versions strings aren't ordered
* Add test for v12 rooms
* Use more compact syntax
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
* Fix doc
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
* Fix additionalCreators from PR edit
* Split out hydra room version check
* Move power level logic into room state
Which already has knowledge of the room create event
* Add docs
* Fix unused bits
* Fix docs
* Fix lying docstring
* Reverse logic for hydra semantics
Assume unknown room versions do use hydra
* Use backticks
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* Switch back to hardcoding just the two hydra versions
---------
Co-authored-by: R Midhun Suresh <hi@midhun.dev>
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
* tests: Cross-signing keys support in `E2EKeyReceiver`
Have `E2EKeyReceiver` collect uploaded cross-signing keys, so that they can be
returned by `E2EKeyResponder`.
* tests: Signature upload support in `E2EKeyReceiver`
Have `E2EKeyReceiver` collect uploaded device signatures, so that they can be
returned by `E2EKeyResponder`.
* tests: Implement `E2EOTKClaimResponder` class
A new test helper, which intercepts `/keys/claim`, allowing clients under test
to claim OTKs uploaded by other devices.
* Expose experimental settings for encrypted history sharing
Add options to `MatrixClient.invite` and `MatrixClient.joinRoom` to share and
accept encrypted history on invite, per MSC4268.
* Clarify pre-join-membership logic
* Improve tests
* Update spec/integ/crypto/cross-signing.spec.ts
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
---------
Co-authored-by: Hubert Chathi <hubertc@matrix.org>
* test: add a flushPromises
this seems to be needed because `initRustCrypto` now ends up doing slightly
less awaiting
* Support new `ShieldStateCode.MismatchedSender`
* Update to matrix-sdk-crypto-wasm 15.1.0
* Add `waitFor` and use it instead of `flushPromises`
* minor lints and fixes
* another lint fix
* Factor out `BaseRequestOpts`
... to make it easier to find the docs from methods that use it.
* fetch api: add support for downloading raw response
I need to make an authenticated request to the media repo, and expect to get a
binary file back. AFAICT there is no easy way to do that right now.
* Clarify doc strings
* Various fixes
Currently, this is looking for a `json` property on `IHttpOpts`. There is no
such property, so that part of the declaration is completely redundant, and we
may as well remove it.
I looked into making it check `IRequestOpts`, which *does* have a `json`
property, but couldn't make it work.
Also add some docs, while we're there.
* add custom local timout + add delay to 0 for normal local timeout.
* consider retry limits for new custom error
* mock the AbortError so we can reuse `actionUpdateFromErrors`
* update comment
* RTCEncryptionManager: Joiner key rotation grace period
* Test to clarify useKeyDelay and keyRotationGracePeriodMs interference
* make test more configurable
* rename delayRolloutTimeMillis to useKeyDelay same as config option
* rename skipRotationGracePeriod to keyRotationGracePeriodMs
* clarify that oldMemberships is not used by RTCEncryptionManager
* improve doc
* cleanup test
* more comment in test
* comment additions
* cleanup runOnlyPendingTimers
---------
Co-authored-by: Timo <toger5@hotmail.de>
* Make it easier to mock call memberships for specific user IDs
* Allow sending notification events when starting a call
* rename notify -> notification
* replace `joining` concept with `ownMembership`
* introduce new `m.rtc.notification` event alongside `m.call.notify`
* send new notification event alongside the deprecated one
* Test for new notification event type
* update relation string to match msc
* review
* fix doc errors
* fix tests + format
* remove anything decline related
---------
Co-authored-by: Timo <toger5@hotmail.de>