202 Commits

Author SHA1 Message Date
Kévin Commaille
fb273553b5 identifiers: Allow to set ruma_identifiers_storage cfg setting with env variable 2024-12-15 02:55:58 -05:00
Andy Balaam
5db68816a9 identifiers: Make KeyId::key_name take the string after the colon, not before 2024-11-08 13:14:20 -05:00
Kévin Commaille
0d1d549cf6 encryption: Use Signatures for the key types 2024-11-08 13:13:29 -05:00
Kévin Commaille
35da79a26e identifiers: Make DeviceKeyId a type alias of KeyId 2024-11-08 13:13:19 -05:00
Kévin Commaille
7f8f89eff7 identifiers: Differentiate signing keys from device keys
Use OwnedCrossSigningKeyId, OwnedDeviceSigningKeyId and
OwnedCrossSigningOrDeviceSigningKeyId instead of OwnedDeviceKeyId
to identify signing keys.
2024-11-08 13:13:15 -05:00
Kévin Commaille
09ff0b2819 identifiers: Differentiate one-time and fallback keys from device keys
Move the `DeviceKeyAlgorithm::SignedCurve25519` into the new
`OneTimeKeyAlgorithm` type.
Add `(Owned)OneTimeKeyId` and `(Owned)OneTimeKeyName` instead of using
`(Owned)DeviceKeyId`.
2024-11-08 13:02:19 -05:00
Kévin Commaille
263ddb6545 identifiers: Improve API of Signatures
Implement `Deref` and `DerefMut` to `BTreeMap`.
Implement `From`, `Extend` and `FromIterator` from a list of
`(entity, key_identifier, value)` tuples
Rename `Signatures::insert` to `Signatures::insert_signature`
to let `Signatures::insert` dereference to `BTreeMap::insert`.
2024-11-08 12:49:57 -05:00
Kévin Commaille
ae3897cad8 identifiers: Allow to validate KeyId with any key name type
Use new trait bounds for KeyId to only allow specific types.
Change the KeyId validation to be generic over the key name type.
Remove the KeyName type and replace it with the more specific
ServerSigningKeyVersion.
2024-11-08 12:49:53 -05:00
Kévin Commaille
56b400b832 api: Add MatrixVersion::V1_12 2024-10-19 14:59:02 -04:00
Charles Hall
0286bcfa2f api: allow constructing MatrixErrorBody::NotJson 2024-10-19 14:58:44 -04:00
Kévin Commaille
f73ba5556c api: Allow types implementing ToString and FromStr for header values
Contrary to what the previous docs said, types implementing Display did not work,
only string types worked.
2024-07-14 12:28:48 +02:00
Matthias Ahouansou
50a46cc5f6
api: implement (Partial)Eq for Metadata 2024-07-11 21:47:48 +02:00
Kévin Commaille
a17c0516d6 identifiers: Deprecate constructing Matrix URI for event with room alias
According to MSC4132 / Matrix 1.11
2024-06-22 11:10:44 +02:00
Kévin Commaille
968c52b117 api: Rename request macro attribute query_map to query_all
Remove its IntoIterator bound to allow to represent
the query fields as a single struct or enum.
2024-06-21 19:15:59 +02:00
Kévin Commaille
05c12bf3ba api: Clarify that access tokens using query parameter are deprecated
According to MSC4126 / Matrix 1.11
2024-06-21 18:21:45 +02:00
Kévin Commaille
2dcc83278a api: Add MatrixVersion::V1_11 2024-06-21 15:19:34 +02:00
Mikoto
629b06e1e4
thirdparty: Implement Borrow/Hash/Eq for ThirdPartyIdentifier 2024-06-18 23:35:19 +02:00
Kévin Commaille
64b3838113 thirdparty: Fix unstable-unspecified feature being non-additive 2024-06-18 13:41:47 +02:00
Damir Jelić
a12c38c532 common: Add a error variant for unexpected header values 2024-05-14 18:18:15 +02:00
Kévin Commaille
75455d3e0f
Release ruma-common 0.13.0 2024-05-09 12:14:59 +02:00
Kévin Commaille
10c7e59c57 client-api: Add helper methods to convert SystemTime from/to a HTTP date 2024-05-08 19:09:13 +02:00
Kévin Commaille
1689a50639 api: Add changelog entry for http major version bump 2024-04-30 17:03:04 +02:00
Kévin Commaille
21b644ac6a identifiers: Allow to clone MatrixToUri and MatrixUri 2024-04-21 14:25:10 +02:00
Benjamin Bouvier
ccc0a64ba3
events: allow deserialize a m.tag's order as an integer (#1767)
Some servers use an integer to represent e.g. `1` for the order, instead of the double representation (that would be `1.` or `1.0)`. This makes it possible to parse such values as integers too, since they're technically not double. Implementing `visit_u64` and `visit_i64` covers all the smaller sizes too, so I've implemented only that here.
2024-04-18 09:15:27 +00:00
Kévin Commaille
0e7c91d789 docs: Point links to v1.10 of the spec 2024-03-22 21:28:39 +01:00
Kévin Commaille
041d871781 api: Add MatrixVersion::V1_10 2024-03-22 21:28:39 +01:00
Damir Jelić
ccd3b81557
Use web-time to return a SystemTime that works under WASM
The `MilliSecondsSinceUnixEpoch::to_system_time()` method returns the
`SystemTime` type from the standard library.

The `std::time::SystemTime::elapsed()` method sadly panics under WASM.
Instead of returning the `SystemTime` from the standard library we're
now returning a drop-in replacement of this type coming from the web-time
crate.
2024-03-20 12:19:18 +01:00
Matthias Ahouansou
bbf81544f2 api: support for appservice-exclusive authentication 2024-03-13 22:06:58 +01:00
Kévin Commaille
f652cbb60f api: Add support for optional authentication 2024-03-07 12:30:28 +01:00
Kévin Commaille
00f8a6743b push: Allow to deserialize Ruleset with missing fields
According to the Matrix Specification, no field is required.
2023-12-26 17:28:43 +01:00
Kévin Commaille
56d8a59c1b push: Add accessor for the RuleKind of Predefined{*}RuleId 2023-12-05 10:56:36 +01:00
Kévin Commaille
ba75b09a45 push: Implement AsRef<str> for PredefinedRuleId 2023-12-05 10:56:36 +01:00
Kévin Commaille
90d3605b87 push: Make power levels optional in PushConditionRoomCtx 2023-12-03 13:03:06 +01:00
Kévin Commaille
4efca6fba5 docs: Point links to v1.9 of the spec 2023-11-30 14:42:14 +01:00
Kévin Commaille
ac2f725bcc api: Add support for Matrix 1.9 2023-11-30 14:42:14 +01:00
Kévin Commaille
b4133b7863 push: Stabilize support for MSC3958 2023-11-30 14:37:17 +01:00
Jonas Platte
5d7c1f5330
Release ruma-common 0.12.1 2023-11-16 10:43:15 +01:00
Kévin Commaille
9b07772d1a push: Allow to deserialize (New)ConditionalPushRule without conditions 2023-11-15 15:10:42 +01:00
Jonas Platte
7cee1787a2
Release ruma-common 0.12.0 2023-10-05 11:21:46 +02:00
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