Germain
516f52c5a4
Support to remotely toggle push notifications ( #2686 )
2022-09-22 08:37:54 +00:00
Šimon Brandner
fb565f301b
Remove support for unstable private read receipts ( #2624 )
2022-09-12 18:04:14 +02:00
Hugh Nimmo-Smith
a57c430b09
Implementation of MSC3824 to add action= param on SSO login ( #2398 )
...
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com >
2022-09-11 21:18:33 +00:00
Hugh Nimmo-Smith
583e48086b
Add login flow types from matrix-react-sdk ( #2633 )
...
Co-authored-by: Faye Duxovni <fayed@element.io >
2022-09-11 21:50:10 +01:00
Šimon Brandner
6316a6ae44
Add support for stable prefixes for MSC2285 ( #2524 )
...
Co-authored-by: Travis Ralston <travisr@matrix.org >
2022-08-05 17:33:49 +02:00
Šimon Brandner
7cb3b40493
Use stable prefixes for MSC3827 ( #2537 )
2022-07-27 20:10:39 +02:00
Šimon Brandner
5822730797
Implement MSC3827: Filtering of /publicRooms by room type ( #2469 )
2022-06-20 16:21:46 +02:00
Eric Eastwood
b64dbdce74
Timeline needs to refresh when we see a MSC2716 marker event ( #2299 )
...
Inform the client that historical messages were imported in the timeline and they should refresh the timeline in order to see the new events.
Companion `matrix-react-sdk` PR: https://github.com/matrix-org/matrix-react-sdk/pull/8354
The `marker` events are being used as state now because this way they can't be lost in a timeline gap. Regardless of when they were sent, we will still have the latest version of the state to compare against. Any time we see our latest state value change for marker events, prompt the user that the timeline needs to refresh.
> In a [sync meeting with @ara4n](https://docs.google.com/document/d/1KCEmpnGr4J-I8EeaVQ8QJZKBDu53ViI7V62y5BzfXr0/edit#bookmark=id.67nio1ka8znc ), we came up with the idea to make the `marker` events as state events. When the client sees that the `m.room.marker` state changed to a different event ID, it can throw away all of the timeline and re-fetch as needed.
>
> For homeservers where the [same problem](https://github.com/matrix-org/matrix-doc/pull/2716#discussion_r782499674 ) can happen, we probably don't want to throw away the whole timeline but it can go up the `unsigned.replaces_state` chain of the `m.room.marker` state events to get them all.
>
> In terms of state performance, there could be thousands of `marker` events in a room but it's no different than room members joining and leaving over and over like an IRC room.
>
> *-- https://github.com/matrix-org/matrix-spec-proposals/pull/2716#discussion_r782629097 *
### Why are we just setting `timlineNeedsRefresh` (and [prompting the user](https://github.com/matrix-org/matrix-react-sdk/pull/8354 )) instead of automatically refreshing the timeline for the user?
If we refreshed the timeline automatically, someone could cause your Element client to constantly refresh the timeline by just sending marker events over and over. Granted, you probably want to leave a room like this 🤷 . Perhaps also some sort of DOS vector since everyone will be refreshing and hitting the server at the exact same time.
In order to avoid the timeline maybe going blank during the refresh, we could re-fetch the new events first, then replace the timeline. But the points above still stand on why we shouldn't.
2022-06-01 16:31:20 -05:00
Johannes Marbach
f44510e65f
Add support for HTML renderings of room topics ( #2272 )
...
* Add support for HTML renderings of room topics
Based on extensible events as defined in [MSC1767]
Relates to: vector-im/element-web#5180
Signed-off-by: Johannes Marbach <johannesm@element.io >
[MSC1767]: https://github.com/matrix-org/matrix-spec-proposals/pull/1767
* Use correct MSC
* Add overloads for setRoomTopic
* Fix indentation
* Add more tests to pass the quality gate
Co-authored-by: Johannes Marbach <jm@Johanness-Mini.fritz.box >
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com >
2022-05-16 10:37:34 +01:00
Michael Telatynski
72013341db
More sonar tweaks and typing improvements ( #2366 )
...
* More sonar tweaks and typing improvements
* delint
* Write some tests
* Attempt to make TS happy
* Stash tests
* Add tests
* Add `istanbul ignore if` around logging special-case for test env
* Add test
* Comments
2022-05-13 18:08:36 +00:00
Michael Telatynski
4721aa1d24
Fix up more types & Sonar warnings ( #2363 )
...
* Fix up more types & Sonar warnings
* Fix test
* Add first test for callEventHandler
2022-05-12 10:12:39 +01:00
Michael Telatynski
706b4d6054
Improve typing ( #2352 )
...
* Fix typing of the store interface
* Fix typed s'more
* re-add check
* Be less dumb
* arg
* Fix types
2022-05-09 11:58:52 +01:00
Šimon Brandner
da69ca215b
Implement changes to MSC2285 (private read receipts) ( #2221 )
...
* Add `ReceiptType`
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Implement changes to MSC2285
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Improve tests
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Apply suggestions from review
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Update `getEventReadUpTo()` to handle private read receipts
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Write tests for `getEventReadUpTo()`
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Give `getReadReceiptForUserId()` a JSDOC
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Types!
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
* Try to use receipt `ts`s
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
2022-05-06 21:32:41 +02:00
Kerry
781fdf4fdc
Live location sharing - update beacon_info implementation to latest MSC ( #2281 )
...
* remove M_BEACON_INFO_VARIABLE
Signed-off-by: Kerry Archibald <kerrya@element.io >
* create beacon_info events with non-variable event type
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove isBeaconInfoEventType
Signed-off-by: Kerry Archibald <kerrya@element.io >
* refer to msc3673 instead of msc3489
Signed-off-by: Kerry Archibald <kerrya@element.io >
* remove event type suffix
Signed-off-by: Kerry Archibald <kerrya@element.io >
* update beacon identifier to use state key
Signed-off-by: Kerry Archibald <kerrya@element.io >
* fix beacon spec
Signed-off-by: Kerry Archibald <kerrya@element.io >
* fix room-state tests
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add beacon identifier
Signed-off-by: Kerry Archibald <kerrya@element.io >
* dont allow update to older beacon event
Signed-off-by: Kerry Archibald <kerrya@element.io >
* lint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* unnest beacon_info content
Signed-off-by: Kerry Archibald <kerrya@element.io >
* lint
Signed-off-by: Kerry Archibald <kerrya@element.io >
* check redaction event id
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-04-08 10:50:06 +02:00
Robin
b8321290f8
Add Element video room type ( #2273 )
2022-04-04 10:29:35 -04:00
Germain
6192325fe0
Thread list ordering by last reply ( #2253 )
2022-03-23 14:43:30 +00:00
Robin
65316ffb5c
Voice rooms prototype ( #2249 )
...
* Support call room type from MSC3417
Signed-off-by: Robin Townsend <robin@robin.town >
* Make it more clear that call room type is unstable
Signed-off-by: Robin Townsend <robin@robin.town >
2022-03-22 16:14:23 -06:00
Kerry
c2fdb4478d
Live location sharing - create m.beacon_info events ( #2238 )
...
* add content helpers
Signed-off-by: Kerry Archibald <kerrya@element.io >
* stubbed Beacon class
Signed-off-by: Kerry Archibald <kerrya@element.io >
* beacon test utils
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add beacon test utils
Signed-off-by: Kerry Archibald <kerrya@element.io >
* copyrights
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add beacons to room state
Signed-off-by: Kerry Archibald <kerrya@element.io >
* tidy comments
Signed-off-by: Kerry Archibald <kerrya@element.io >
* unit test RoomState.setBeacon
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-15 10:31:32 +01:00
Kerry
d064d82fcc
Beacon event types from MSC3489 ( #2230 )
...
* ASSET_NODE_TYPE -> M_ASSET
Signed-off-by: Kerry Archibald <kerrya@element.io >
* export const M_TIMESTAMP = new UnstableValue("m.ts", "org.matrix.msc3488.ts");
Signed-off-by: Kerry Archibald <kerrya@element.io >
* LOCATION_EVENT_TYPE -> M_LOCATION
Signed-off-by: Kerry Archibald <kerrya@element.io >
* extensible event types for location
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add locationevent parsing helpers
Signed-off-by: Kerry Archibald <kerrya@element.io >
* rename
Signed-off-by: Kerry Archibald <kerrya@element.io >
* comment
Signed-off-by: Kerry Archibald <kerrya@element.io >
* revert makelocationcontent signature
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add beacon event types
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add variable* to type and comment
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add content helper functions for beacon_info and beacon
Signed-off-by: Kerry Archibald <kerrya@element.io >
* copyright
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add m.beacon_info.live from msc3672
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-14 12:13:28 +00:00
Kerry
e16e7bc098
Location event helper functions ( #2229 )
...
* ASSET_NODE_TYPE -> M_ASSET
Signed-off-by: Kerry Archibald <kerrya@element.io >
* export const M_TIMESTAMP = new UnstableValue("m.ts", "org.matrix.msc3488.ts");
Signed-off-by: Kerry Archibald <kerrya@element.io >
* LOCATION_EVENT_TYPE -> M_LOCATION
Signed-off-by: Kerry Archibald <kerrya@element.io >
* extensible event types for location
Signed-off-by: Kerry Archibald <kerrya@element.io >
* add locationevent parsing helpers
Signed-off-by: Kerry Archibald <kerrya@element.io >
* rename
Signed-off-by: Kerry Archibald <kerrya@element.io >
* comment
Signed-off-by: Kerry Archibald <kerrya@element.io >
* revert makelocationcontent signature
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-10 18:40:13 +01:00
Kerry
6bc584ba8b
add LocationAssetType enum ( #2214 )
...
Signed-off-by: Kerry Archibald <kerrya@element.io >
2022-03-03 10:49:16 +01:00
Michael Telatynski
7d9800b817
Stop using development /spaces API in favour of v1 /hierarchy API ( #2204 )
2022-02-25 10:43:24 +00:00
Travis Ralston
e86d8861b9
Add functions to support refresh tokens ( #2178 )
...
* Add functions for refreshing access tokens
* Add function to change the client's access token in flight
* Appease the linter
* Use sensible code style
2022-02-15 20:07:36 +00:00
Germain
6b822ccd61
Improve thread partitioning for 2nd degree relations ( #2165 )
2022-02-10 15:09:46 +00:00
Germain
66b98844a2
Refactor thread model to be created from the root event ( #2142 )
2022-02-01 08:58:39 +00:00
Andy Balaam
a50a627300
Support m.asset in m.location event content ( #2109 )
2022-01-19 09:08:41 +00:00
Travis Ralston
0a8b825702
Move polls to events-sdk, and invent a RelatedRelations type ( #2102 )
...
* Move polls handling to events-sdk & invent a multi-relation handler
Polls are now fully handled by the events-sdk instead of by the js-sdk.
The multi-relation handler (RelatedRelations) is primarily meant to handle unstable & stable support in polls when it becomes stable.
* update events-sdk for polls
* Update events-sdk for polls bugfix
* Update events-sdk for maintenance
2022-01-17 10:06:42 -07:00
David Teller
96d1b30012
MSC3531: Hiding messages during moderation ( #2041 )
2022-01-12 11:27:33 +01:00
Michael Telatynski
3eaed30446
Iterate typing around sync, usage limits and errors ( #2077 )
2021-12-16 09:57:07 +00:00
Andy Balaam
72643026a3
Remove now-unused makePollContent from its old location ( #2078 )
2021-12-15 17:08:21 +00:00
Andy Balaam
d6980cb8fa
Provide a makeLocationContent to create a location content event ( #2076 )
2021-12-15 16:32:24 +00:00
Andy Balaam
dcd24fd516
Add consts for location and extensible events types ( #2074 )
2021-12-15 13:49:26 +00:00
Andy Balaam
75cc873d77
Copy the polls constants to matrix-js-sdk from matrix-react-sdk ( #2073 )
2021-12-15 12:15:38 +00:00
Michael Telatynski
6ac84a2465
Use v1 prefix for /hierarchy API, falling back to both previous variants ( #2022 )
2021-12-15 09:56:07 +00:00
Michael Telatynski
963c7690b6
Iterate typing to work towards noImplicitAny ( #2061 )
2021-12-14 14:32:35 +00:00
Michael Telatynski
169b6b5572
Filter out falsey opts in /relations API hits ( #2059 )
2021-12-13 15:38:03 +00:00
Germain
72bc13eb39
Allow to omit optional params for /relations calls ( #2053 )
2021-12-08 08:23:53 +00:00
Germain
aee698c285
Add KeyVerificationRequest msgType ( #2033 )
2021-11-22 17:08:24 +00:00
Michael Telatynski
b2d83c1f80
Iterate type definitions ( #2029 )
2021-11-19 17:35:09 +00:00
Germain Souquet
9ceeb2d220
Delete UnstableValue and use hardcoded value for m.thread
2021-10-14 17:09:00 +01:00
Germain Souquet
7b89862ed0
Make threads use 'm.thread' relation
2021-10-14 16:56:48 +01:00
Šimon Brandner
3c6eed0135
Add bound to IThreepid
...
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
2021-09-21 14:56:33 +02:00
Šimon Brandner
4e14d810c5
Add setCodecPreferences()
...
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
2021-09-15 17:44:16 +02:00
Germain
be04559a66
Merge pull request #1878 from SimonBrandner/task/i-hate-my-code
2021-09-10 16:16:51 +01:00
Michael Telatynski
666e471369
Convert OlmDevice to Typescript
2021-09-07 13:22:27 +01:00
Germain
37736184a0
Merge pull request #1876 from matrix-org/gsouquet/replies-fix-18717
...
Add reply events rendering hint
2021-09-02 08:37:11 +01:00
Šimon Brandner
9431a52abe
Move DesktopCapturerSource out of global.d.ts
...
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
2021-09-01 18:22:51 +02:00
Šimon Brandner
13c664ad34
Remove Element-specifc screen-sharing code out of the js-sdk
...
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com >
2021-09-01 18:22:45 +02:00
Michael Telatynski
9dce7bbb97
Improve typing around join rules
2021-09-01 15:54:04 +01:00
Germain Souquet
fa44300abc
Add reply events rendering hint
...
Adds an unstable hint for clients to know whether to render an event in the room timeline or in a thread
There are currently no MSC associated with that unstable "io.element.in_thread" property as I am only experimenting before settling on a specific approach
2021-09-01 12:12:01 +01:00