163 Commits

Author SHA1 Message Date
Jonas Platte
984cbda962
identifiers: Don't require room IDs to contain a server name
Room IDs being splittable into localpart and servername does not have
much inherent value and there are proposals like MSC4051¹ that propose
changing the format. Relaxing the rules makes Ruma forwards-compatible
with those proposals. The server_name accessor is kept because it is
used by at least one downstream, but is updated to return an `Option`.

¹ https://github.com/matrix-org/matrix-spec-proposals/pull/4051
2023-09-28 16:43:16 +02:00
Damir Jelić
1b6240286f
common: Allow padding when decoding the Base64 type from a string 2023-09-20 10:28:57 +00:00
Kévin Commaille
31ae99cf52 Add support for suppress edits push rule
According to MSC3958
2023-09-15 13:33:07 +02:00
Kévin Commaille
e11d30934b events: Move changelog entries from ruma-common to ruma-events 2023-09-15 12:54:48 +02:00
Kévin Commaille
9d0f23c8a7 canonical-json: Apply redaction rules of MSC3821 2023-08-29 09:23:44 +02:00
Jonas Platte
31331f3165
Bring back ruma-events
Co-authored-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-08-28 10:23:54 +02:00
Kévin Commaille
24ce9d5e09 events: Move sanitize HTML features to new ruma-html crate 2023-08-24 14:00:07 +02:00
Kévin Commaille
c8bbcecdc8 docs: Update changelogs for Matrix 1.8 2023-08-24 12:16:29 +02:00
Ivan Enderlin
ea41901211
events: Transform Markdown soft line breaks into hard line breaks
This patch transforms Markdown soft line breaks into hard line breaks
when rendering to HTML.

The [CommonMark specification about soft line
breaks](https://spec.commonmark.org/0.30/#soft-line-breaks) specifies:

> A renderer may also provide an option to render soft line breaks as
> hard line breaks.

Refering to https://github.com/vector-im/element-x-ios/issues/1418, some
people are expecting to get soft line breaks rendered at hard ones.

This patch updates the Markdown test to include this conversion of soft
to hard line breaks. It includes a list and a code block, to ensure
not _all_ soft breaks are transformed into hard breaks; only the ones
we expect.
2023-08-24 11:12:37 +02:00
Kévin Commaille
b2b4c81645 events: Allow to add mentions automatically when generating reply 2023-08-22 12:07:54 +02:00
Kévin Commaille
6fcd813201 events: Preserve signed in third_party_invite in RedactedRoomMemberEventContent
According to MSC3821
2023-08-16 14:55:42 +02:00
Kévin Commaille
1701d9a803 events: Make creator field of RoomCreateEventContent optional and RedactedRoomreateEventContent a typedef
According to MSC2175
2023-08-14 15:33:39 +02:00
Kévin Commaille
7a5d9b6e8b events: Add support for redacts key into content of RoomRedactionEvent
According to MSC2174
2023-08-11 15:30:13 +02:00
Kévin Commaille
f8ac66ca25 events: Add support for intentional mentions
According to MSC3952
2023-07-10 13:12:17 +02:00
Benjamin Bouvier
2c8ece6bf2
events: Parse TagInfo::order as a f64 or a stringified f64 2023-07-06 14:34:43 +02:00
Kévin Commaille
e017e65277 events: Improve compatibility of generated and stripped plain reply fallback 2023-06-23 12:32:24 +02:00
Kévin Commaille
07ea09548f events: Stabilize VoIP signalling improvements 2023-06-06 10:44:48 +02:00
Kévin Commaille
b1680bd398 push: Link to the spec for dot-separated path definition 2023-05-30 16:38:55 +02:00
Kévin Commaille
766fba75f9 push: Add support for intentional mentions push rules
According to MSC3952
2023-05-26 14:39:58 +02:00
Kévin Commaille
3f28f2a6f1 events: Use a string for SessionDescription's type
A clarification in MSC2746 / Matrix 1.7 explains that the `type` field
should not be validated but passed as-is to the WebRTC API.
It
    also avoids an unnecessary conversion between the WebRTC API
and the Ruma type.
2023-05-26 11:45:50 +02:00
Kévin Commaille
2d697fcc95 events: Stabilize annotations and reactions 2023-05-26 09:26:30 +02:00
Kévin Commaille
0bec1ad507 push: Stabilize event_property_contains 2023-05-26 09:26:09 +02:00
Kévin Commaille
b8668f863b push: Stabilize event_property_is 2023-05-26 09:26:09 +02:00
Kévin Commaille
dc68190adc api: Add initial support for Matrix 1.7 2023-05-25 19:28:33 +02:00
Kévin Commaille
6a77b4c9e4 push: Remove the DontNotify and Coalesce variants of push::Action
According to MSC3987.
2023-05-04 13:44:54 +02:00
Kévin Commaille
b50037affc events: Implement sanitize on MessageType 2023-04-27 19:19:37 +02:00
Jonas Platte
1224dd3810
events: Add more convenient power level action checks to RoomPowerLevels 2023-04-27 12:20:11 +02:00
Jonas Platte
1229fa4461
events: Add FullStateEventContent::redact 2023-04-11 16:16:32 +02:00
Kévin Commaille
2ccc0323f6 push: Add support for event_property_contains push condition
According to MSC3966
2023-04-11 16:12:05 +02:00
Kévin Commaille
2e7b67bb23 push: Add support for event_property_is push condition
According to MSC3758
2023-04-11 16:12:05 +02:00
Kévin Commaille
33fa1b48ed push: Collect a bigger subset of JSON values in FlattenedJson 2023-04-11 16:12:05 +02:00
Kévin Commaille
ef374ea6b0 push: Escape dots and backslashes in field name for event_match condition
According to MSC3873
2023-04-11 11:18:20 +02:00
Kévin Commaille
8eea3e0549 push: Enable by default .m.rule.tombstone push rule
As defined in the spec.
2023-03-14 12:01:40 +01:00
Kévin Commaille
0596e46045 events: Add method to construct RoomEncryptionEventContent with the recommended defaults 2023-03-10 11:13:37 +01:00
Jonas Platte
4eb5033dd0
events: Add utility functions for InitialStateEvent 2023-03-09 18:58:56 +01:00
Jonas Platte
5aa0f29935
identifiers: Add AsRef<[u8]> impls for ID types 2023-03-07 11:06:34 +01:00
Kévin Commaille
ba296ec466 push: Add method to remove a user-defined push rule from a Ruleset 2023-03-02 11:30:48 +01:00
Kévin Commaille
a78d2a7dcf push: Add method to update server-default push rules 2023-03-02 11:30:48 +01:00
Jonas Platte
c2d8b4f4b9
events: Update changelog 2023-02-22 14:41:02 +01:00
Kévin Commaille
f17f288a3f
Release ruma-common 0.11.3 2023-02-15 12:44:42 +01:00
Kévin Commaille
4323fe8b3f events: Deprecate MessageAuthenticationCode::HkdfHmacSha256
According to MSC3783 / Matrix 1.6
2023-02-14 22:19:47 +01:00
Kévin Commaille
798c25e32a events: Move MessageAuthenticationCode::HkdfHmacSha256V2 out of unstable-msc3783 2023-02-14 22:19:47 +01:00
Kévin Commaille
9d8784ee9a push: Move .m.rule.roomnotif push rule before .m.rule.tombstone
According to a spec clarification in Matrix 1.6
2023-02-14 22:05:13 +01:00
Kévin Commaille
4f8bcf3ee1 common: Add MatrixVersion::V1_6 2023-02-14 18:44:04 +01:00
Jonas Platte
94c01077c5
Release ruma-common 0.11.2 2023-02-07 21:04:39 +01:00
Jonas Platte
3013ca0dc1
identifiers: Don't accept colons in user-id localparts, even in compat 2023-02-07 20:56:22 +01:00
Jonas Platte
9c65a7dcae
events: Use input visibility for generated types in EventContent derive 2023-02-07 20:55:53 +01:00
Kévin Commaille
ad86f4603a events: Derive Hash for ReceiptType and ReceiptThread
Since uniqueness of receipts is determined per type and per thread
it's common to use them as keys of a map.
2023-02-06 19:11:06 +01:00
Jonas Platte
093c231792
Release ruma-common 0.11.1 2023-02-02 13:02:45 +01:00
Jonas Platte
9bbe06aa3f
Release ruma-common 0.11.0 2023-02-01 13:26:09 +01:00