chore(deps): bump matrix-js-sdk 40.2.0 → 41.4.0 with SessionMembershipData barrel and EC sticky-event capability extension

This commit is contained in:
v.lagerev 2026-05-09 13:00:45 +03:00
parent 0f6f3015f6
commit 0a93ad5a9f
8 changed files with 35 additions and 22 deletions

View file

@ -209,7 +209,7 @@ i18next + `react-i18next`. Translations in `public/locales/{en,ru}/*.json`, orga
## Key Libraries
- **React 18.2** + React Router DOM 6
- **matrix-js-sdk 38.2** — Matrix protocol
- **matrix-js-sdk 41.4** — Matrix protocol (exact pin, see `docs/plans/matrix_js_sdk_upgrade.md` for the M0..M4 bump trail)
- **folds 2.6** — UI component library
- **jotai 2.6** — State management
- **vanilla-extract** — Type-safe CSS (compile-time → no runtime theme switching without reload)

28
package-lock.json generated
View file

@ -52,7 +52,7 @@
"jotai": "2.6.0",
"linkify-react": "4.3.2",
"linkifyjs": "4.3.2",
"matrix-js-sdk": "40.2.0",
"matrix-js-sdk": "41.4.0",
"matrix-widget-api": "1.17.0",
"millify": "6.1.0",
"pdfjs-dist": "4.2.67",
@ -2856,9 +2856,9 @@
}
},
"node_modules/@matrix-org/matrix-sdk-crypto-wasm": {
"version": "17.1.0",
"resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-17.1.0.tgz",
"integrity": "sha512-yKPqBvKlHSqkt/UJh+Z+zLKQP8bd19OxokXYXh3VkKbW0+C44nPHsidSwd3SH+RxT+Ck2PDRwVcVXEnUft+/2g==",
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-18.2.0.tgz",
"integrity": "sha512-puyZefvq6sHfqlmkri8umhA44724H2JL0YtX8wlvhGuNl8awX/Q1tZyW2Iekm9ZJP7BtuOqlNdg9oQd6iaGbNw==",
"license": "Apache-2.0",
"engines": {
"node": ">= 18"
@ -10647,13 +10647,13 @@
"license": "Apache-2.0"
},
"node_modules/matrix-js-sdk": {
"version": "40.2.0",
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-40.2.0.tgz",
"integrity": "sha512-wqb1Oq34WB9r0njxw8XiNsm8DIvYeGfCn3wrVrDwj8HMoTI0TvLSY1sQ+x6J2Eg27abfVwInxLKyxLp+dROFXQ==",
"version": "41.4.0",
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-41.4.0.tgz",
"integrity": "sha512-xlYXXb91T89rELlnZCRfrDd4Gpkv+F0owvsaSZ8709jR1upf/zVMpOK8d3jpvW9KFkrCkoSwTRE+zqmLqzYfhA==",
"license": "Apache-2.0",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@matrix-org/matrix-sdk-crypto-wasm": "^17.0.0",
"@matrix-org/matrix-sdk-crypto-wasm": "^18.1.0",
"another-json": "^0.2.0",
"bs58": "^6.0.0",
"content-type": "^1.0.4",
@ -10662,7 +10662,7 @@
"matrix-events-sdk": "0.0.1",
"matrix-widget-api": "^1.16.1",
"oidc-client-ts": "^3.0.1",
"p-retry": "7",
"p-retry": "8",
"sdp-transform": "^3.0.0",
"unhomoglyph": "^1.0.6",
"uuid": "13"
@ -11336,15 +11336,15 @@
}
},
"node_modules/p-retry": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/p-retry/-/p-retry-7.1.1.tgz",
"integrity": "sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==",
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.0.tgz",
"integrity": "sha512-kFVqH1HxOHp8LupNsOys7bSV09VYTRLxarH/mokO4Rqhk6wGi70E0jh4VzvVGXfEVNggHoHLAMWsQqHyU1Ey9A==",
"license": "MIT",
"dependencies": {
"is-network-error": "^1.1.0"
"is-network-error": "^1.3.0"
},
"engines": {
"node": ">=20"
"node": ">=22"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"

View file

@ -84,7 +84,7 @@
"jotai": "2.6.0",
"linkify-react": "4.3.2",
"linkifyjs": "4.3.2",
"matrix-js-sdk": "40.2.0",
"matrix-js-sdk": "41.4.0",
"matrix-widget-api": "1.17.0",
"millify": "6.1.0",
"pdfjs-dist": "4.2.67",

View file

@ -1,4 +1,4 @@
import { CallMembership, SessionMembershipData } from 'matrix-js-sdk/lib/matrixrtc/CallMembership';
import { CallMembership, SessionMembershipData } from 'matrix-js-sdk/lib/matrixrtc';
import React, { useState } from 'react';
import { Avatar, Box, Icon, Icons, Text } from 'folds';
import { useMatrixClient } from '../../hooks/useMatrixClient';
@ -43,7 +43,7 @@ export function CallMemberCard({ member }: CallMemberCardProps) {
return (
<SequenceCard
as="button"
key={member.membershipID}
key={member.memberId}
className={css.CallMemberCard}
variant="SurfaceVariant"
radii="500"
@ -92,7 +92,7 @@ export function CallMemberRenderer({
return (
<>
{truncatedMembers.map((member) => (
<CallMemberCard key={member.membershipID} member={member} />
<CallMemberCard key={member.memberId} member={member} />
))}
{members.length > max && (
<SequenceCard

View file

@ -60,7 +60,7 @@ export function DeveloperTools({ requestClose }: DeveloperToolsProps) {
const submitAccountData: AccountDataSubmitCallback = useCallback(
async (type, content) => {
await mx.setRoomAccountData(room.roomId, type, content);
await mx.setRoomAccountData(room.roomId, type as never, content as never);
},
[mx, room.roomId]
);

View file

@ -27,7 +27,7 @@ import { HTMLReactParserOptions } from 'html-react-parser';
import classNames from 'classnames';
import { ReactEditor } from 'slate-react';
import { Editor } from 'slate';
import { SessionMembershipData } from 'matrix-js-sdk/lib/matrixrtc/CallMembership';
import { SessionMembershipData } from 'matrix-js-sdk/lib/matrixrtc';
import to from 'await-to-js';
import { useAtomValue, useSetAtom } from 'jotai';
import {

View file

@ -29,7 +29,7 @@ import {
} from 'matrix-js-sdk';
import { IRTCNotificationContent } from 'matrix-js-sdk/lib/matrixrtc/types';
import { MatrixRTCSessionManagerEvents } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager';
import { CallMembership, SessionMembershipData } from 'matrix-js-sdk/lib/matrixrtc/CallMembership';
import { CallMembership, SessionMembershipData } from 'matrix-js-sdk/lib/matrixrtc';
import { MatrixRTCSessionEvent } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSession';
import { useMatrixClient } from './useMatrixClient';
import { mDirectAtom } from '../state/mDirectList';

View file

@ -96,6 +96,19 @@ export function getCallCapabilities(
EventType.RoomRedaction,
'io.element.call.reaction',
'org.matrix.msc4310.rtc.decline',
// MSC4310 — final stable name added alongside the unstable prefix to ease
// future SDK transition (Element Web bundle already requests both).
'm.rtc.decline',
// MSC4143 / MSC4354 sticky-event RTC membership. Sticky events go through
// the room-event path (`_unstable_sendStickyEvent` / `_unstable_getStickyEvents`),
// not state events — so capability here is `forRoomEvent`, not `forStateEvent`.
// Vojo's homeserver currently advertises `org.matrix.msc4354: false` and EC
// bundle uses legacy `m.call.member` state events, so today this path is
// not exercised; allowlist matches the Element Web pattern for forward-compat
// when either bundle or server flips. Both unstable (`org.matrix.msc4143.rtc.member`)
// and stable (`m.rtc.member`) names registered for the same reason.
'org.matrix.msc4143.rtc.member',
'm.rtc.member',
].forEach((type) => {
capabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Send, type).raw);
capabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Receive, type).raw);