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:
heaven 2026-05-09 13:00:45 +03:00
parent 3ea01a9c3f
commit c6eba1e935
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 ## Key Libraries
- **React 18.2** + React Router DOM 6 - **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 - **folds 2.6** — UI component library
- **jotai 2.6** — State management - **jotai 2.6** — State management
- **vanilla-extract** — Type-safe CSS (compile-time → no runtime theme switching without reload) - **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", "jotai": "2.6.0",
"linkify-react": "4.3.2", "linkify-react": "4.3.2",
"linkifyjs": "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", "matrix-widget-api": "1.17.0",
"millify": "6.1.0", "millify": "6.1.0",
"pdfjs-dist": "4.2.67", "pdfjs-dist": "4.2.67",
@ -2856,9 +2856,9 @@
} }
}, },
"node_modules/@matrix-org/matrix-sdk-crypto-wasm": { "node_modules/@matrix-org/matrix-sdk-crypto-wasm": {
"version": "17.1.0", "version": "18.2.0",
"resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-17.1.0.tgz", "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-18.2.0.tgz",
"integrity": "sha512-yKPqBvKlHSqkt/UJh+Z+zLKQP8bd19OxokXYXh3VkKbW0+C44nPHsidSwd3SH+RxT+Ck2PDRwVcVXEnUft+/2g==", "integrity": "sha512-puyZefvq6sHfqlmkri8umhA44724H2JL0YtX8wlvhGuNl8awX/Q1tZyW2Iekm9ZJP7BtuOqlNdg9oQd6iaGbNw==",
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
"node": ">= 18" "node": ">= 18"
@ -10647,13 +10647,13 @@
"license": "Apache-2.0" "license": "Apache-2.0"
}, },
"node_modules/matrix-js-sdk": { "node_modules/matrix-js-sdk": {
"version": "40.2.0", "version": "41.4.0",
"resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-40.2.0.tgz", "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-41.4.0.tgz",
"integrity": "sha512-wqb1Oq34WB9r0njxw8XiNsm8DIvYeGfCn3wrVrDwj8HMoTI0TvLSY1sQ+x6J2Eg27abfVwInxLKyxLp+dROFXQ==", "integrity": "sha512-xlYXXb91T89rELlnZCRfrDd4Gpkv+F0owvsaSZ8709jR1upf/zVMpOK8d3jpvW9KFkrCkoSwTRE+zqmLqzYfhA==",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@babel/runtime": "^7.12.5", "@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", "another-json": "^0.2.0",
"bs58": "^6.0.0", "bs58": "^6.0.0",
"content-type": "^1.0.4", "content-type": "^1.0.4",
@ -10662,7 +10662,7 @@
"matrix-events-sdk": "0.0.1", "matrix-events-sdk": "0.0.1",
"matrix-widget-api": "^1.16.1", "matrix-widget-api": "^1.16.1",
"oidc-client-ts": "^3.0.1", "oidc-client-ts": "^3.0.1",
"p-retry": "7", "p-retry": "8",
"sdp-transform": "^3.0.0", "sdp-transform": "^3.0.0",
"unhomoglyph": "^1.0.6", "unhomoglyph": "^1.0.6",
"uuid": "13" "uuid": "13"
@ -11336,15 +11336,15 @@
} }
}, },
"node_modules/p-retry": { "node_modules/p-retry": {
"version": "7.1.1", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/p-retry/-/p-retry-7.1.1.tgz", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-8.0.0.tgz",
"integrity": "sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==", "integrity": "sha512-kFVqH1HxOHp8LupNsOys7bSV09VYTRLxarH/mokO4Rqhk6wGi70E0jh4VzvVGXfEVNggHoHLAMWsQqHyU1Ey9A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"is-network-error": "^1.1.0" "is-network-error": "^1.3.0"
}, },
"engines": { "engines": {
"node": ">=20" "node": ">=22"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"

View file

@ -84,7 +84,7 @@
"jotai": "2.6.0", "jotai": "2.6.0",
"linkify-react": "4.3.2", "linkify-react": "4.3.2",
"linkifyjs": "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", "matrix-widget-api": "1.17.0",
"millify": "6.1.0", "millify": "6.1.0",
"pdfjs-dist": "4.2.67", "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 React, { useState } from 'react';
import { Avatar, Box, Icon, Icons, Text } from 'folds'; import { Avatar, Box, Icon, Icons, Text } from 'folds';
import { useMatrixClient } from '../../hooks/useMatrixClient'; import { useMatrixClient } from '../../hooks/useMatrixClient';
@ -43,7 +43,7 @@ export function CallMemberCard({ member }: CallMemberCardProps) {
return ( return (
<SequenceCard <SequenceCard
as="button" as="button"
key={member.membershipID} key={member.memberId}
className={css.CallMemberCard} className={css.CallMemberCard}
variant="SurfaceVariant" variant="SurfaceVariant"
radii="500" radii="500"
@ -92,7 +92,7 @@ export function CallMemberRenderer({
return ( return (
<> <>
{truncatedMembers.map((member) => ( {truncatedMembers.map((member) => (
<CallMemberCard key={member.membershipID} member={member} /> <CallMemberCard key={member.memberId} member={member} />
))} ))}
{members.length > max && ( {members.length > max && (
<SequenceCard <SequenceCard

View file

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

View file

@ -27,7 +27,7 @@ import { HTMLReactParserOptions } from 'html-react-parser';
import classNames from 'classnames'; import classNames from 'classnames';
import { ReactEditor } from 'slate-react'; import { ReactEditor } from 'slate-react';
import { Editor } from 'slate'; 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 to from 'await-to-js';
import { useAtomValue, useSetAtom } from 'jotai'; import { useAtomValue, useSetAtom } from 'jotai';
import { import {

View file

@ -29,7 +29,7 @@ import {
} from 'matrix-js-sdk'; } from 'matrix-js-sdk';
import { IRTCNotificationContent } from 'matrix-js-sdk/lib/matrixrtc/types'; import { IRTCNotificationContent } from 'matrix-js-sdk/lib/matrixrtc/types';
import { MatrixRTCSessionManagerEvents } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager'; 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 { MatrixRTCSessionEvent } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSession';
import { useMatrixClient } from './useMatrixClient'; import { useMatrixClient } from './useMatrixClient';
import { mDirectAtom } from '../state/mDirectList'; import { mDirectAtom } from '../state/mDirectList';

View file

@ -96,6 +96,19 @@ export function getCallCapabilities(
EventType.RoomRedaction, EventType.RoomRedaction,
'io.element.call.reaction', 'io.element.call.reaction',
'org.matrix.msc4310.rtc.decline', '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) => { ].forEach((type) => {
capabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Send, type).raw); capabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Send, type).raw);
capabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Receive, type).raw); capabilities.add(WidgetEventCapability.forRoomEvent(EventDirection.Receive, type).raw);