Adapt to matrix-js-sdk removal of oldest_membership support

This commit is contained in:
Robin
2026-09-30 00:45:19 +02:00
parent f9b601504b
commit f287fb3800
6 changed files with 20 additions and 24 deletions
+1 -1
View File
@@ -103,7 +103,7 @@
"livekit-client": "^2.18.1", "livekit-client": "^2.18.1",
"lodash-es": "^4.17.21", "lodash-es": "^4.17.21",
"loglevel": "^1.9.1", "loglevel": "^1.9.1",
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#robin/remove-livekit-alias", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#robin/remove-oldest-membership",
"matrix-widget-api": "^1.18.0", "matrix-widget-api": "^1.18.0",
"node-stdlib-browser": "^1.3.1", "node-stdlib-browser": "^1.3.1",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
+13 -13
View File
@@ -191,8 +191,8 @@ importers:
specifier: ^1.9.1 specifier: ^1.9.1
version: 1.9.2 version: 1.9.2
matrix-js-sdk: matrix-js-sdk:
specifier: github:matrix-org/matrix-js-sdk#robin/remove-livekit-alias specifier: github:matrix-org/matrix-js-sdk#robin/remove-oldest-membership
version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c version: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece
matrix-widget-api: matrix-widget-api:
specifier: ^1.18.0 specifier: ^1.18.0
version: 1.19.0 version: 1.19.0
@@ -3659,8 +3659,8 @@ packages:
constants-browserify@1.0.0: constants-browserify@1.0.0:
resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
content-type@3.0.0: content-type@3.1.1:
resolution: {integrity: sha512-AIi5H6p0xk5uknXcN3/rmhP8jgp69OfSe/JuKiQAFprJ7UGw7mwj7m4XcmDzlrnJDG+cGpphAINGdU3g3g7kDw==} resolution: {integrity: sha512-GW4qUsfFo59d0HbUibDlWv5wPz+vAAcaTWbKIuKCf0JkC7wWkSyf8f13IpXn5JkeMlB2P8iTSSIjwXljorg2vA==}
engines: {node: '>=22'} engines: {node: '>=22'}
convert-source-map@2.0.0: convert-source-map@2.0.0:
@@ -4680,8 +4680,8 @@ packages:
matrix-events-sdk@0.0.1: matrix-events-sdk@0.0.1:
resolution: {integrity: sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==} resolution: {integrity: sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==}
matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c: matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece:
resolution: {gitHosted: true, integrity: sha512-lQeZIDw2OXZeRy0WvjMkT6ZfKWIpsuzCzU9MsfU4h/gTe6jdYRGjf6BRhg9/BOJ0S12lsvcEYslxzcB+usBILA==, tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c} resolution: {gitHosted: true, integrity: sha512-jHFmI2C29HJnzs/FIrqdmQD6ytyunyy627onhrxI+xxTGSfYrWhcTUFstNiCAaMt3fc0nNi9aVvLPD3IIglF2A==, tarball: https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece}
version: 42.3.0 version: 42.3.0
engines: {node: '>=22.0.0'} engines: {node: '>=22.0.0'}
@@ -4895,8 +4895,8 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'} engines: {node: '>=10'}
p-retry@8.0.0: p-retry@8.0.1:
resolution: {integrity: sha512-kFVqH1HxOHp8LupNsOys7bSV09VYTRLxarH/mokO4Rqhk6wGi70E0jh4VzvVGXfEVNggHoHLAMWsQqHyU1Ey9A==} resolution: {integrity: sha512-NAigyu8hfvJe7MsS18mnc4is0MZtau3QMdBklaJKK23oBQb6occO3UPM3vHmTckW8KhfyjMZaUOqdTFEYliHgg==}
engines: {node: '>=22'} engines: {node: '>=22'}
p-try@2.2.0: p-try@2.2.0:
@@ -9163,7 +9163,7 @@ snapshots:
constants-browserify@1.0.0: {} constants-browserify@1.0.0: {}
content-type@3.0.0: {} content-type@3.1.1: {}
convert-source-map@2.0.0: {} convert-source-map@2.0.0: {}
@@ -10249,17 +10249,17 @@ snapshots:
matrix-events-sdk@0.0.1: {} matrix-events-sdk@0.0.1: {}
matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/24eacbcef2efaa5f4a89857ed028047332d2a70c: matrix-js-sdk@https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6defa47adae28feb7e3906dde25089e0dce42ece:
dependencies: dependencies:
'@babel/runtime': 8.0.0 '@babel/runtime': 8.0.0
'@matrix-org/matrix-sdk-crypto-wasm': 18.9.0 '@matrix-org/matrix-sdk-crypto-wasm': 18.9.0
another-json: 0.2.0 another-json: 0.2.0
bs58: 6.0.0 bs58: 6.0.0
content-type: 3.0.0 content-type: 3.1.1
loglevel: 1.9.2 loglevel: 1.9.2
matrix-events-sdk: 0.0.1 matrix-events-sdk: 0.0.1
matrix-widget-api: 1.19.0 matrix-widget-api: 1.19.0
p-retry: 8.0.0 p-retry: 8.0.1
sdp-transform: 3.0.0 sdp-transform: 3.0.0
unhomoglyph: 1.0.6 unhomoglyph: 1.0.6
@@ -10584,7 +10584,7 @@ snapshots:
dependencies: dependencies:
p-limit: 3.1.0 p-limit: 3.1.0
p-retry@8.0.0: p-retry@8.0.1:
dependencies: dependencies:
is-network-error: 1.3.2 is-network-error: 1.3.2
@@ -156,8 +156,7 @@ describe("enterRTCSession", () => {
memberId: "@alice:example.org:DEVICE", memberId: "@alice:example.org:DEVICE",
userId: "@alice:example.org", userId: "@alice:example.org",
}, },
[], [transport],
transport,
expect.objectContaining({ manageMediaKeys: true }), expect.objectContaining({ manageMediaKeys: true }),
); );
}); });
@@ -177,7 +176,6 @@ describe("enterRTCSession", () => {
expect(mockedSession.joinRTCSession).toHaveBeenLastCalledWith( expect(mockedSession.joinRTCSession).toHaveBeenLastCalledWith(
expect.any(Object), expect.any(Object),
[],
expect.any(Object), expect.any(Object),
expect.objectContaining({ expect.objectContaining({
keyRotationParticipantLimit: 50, keyRotationParticipantLimit: 50,
@@ -189,7 +187,6 @@ describe("enterRTCSession", () => {
enterRTCSession(mockedSession, ownMemberMock, transport, options); enterRTCSession(mockedSession, ownMemberMock, transport, options);
expect(mockedSession.joinRTCSession).toHaveBeenLastCalledWith( expect(mockedSession.joinRTCSession).toHaveBeenLastCalledWith(
expect.anything(),
expect.anything(), expect.anything(),
expect.anything(), expect.anything(),
expect.objectContaining({ expect.objectContaining({
@@ -998,7 +998,7 @@ export function enterRTCSession(
// Multi-sfu does not need a preferred foci list. just the focus that is actually used. // Multi-sfu does not need a preferred foci list. just the focus that is actually used.
// TODO where/how do we track errors originating from the ongoing rtcSession? // TODO where/how do we track errors originating from the ongoing rtcSession?
rtcSession.joinRTCSession(ownMembershipIdentity, [], transport, { rtcSession.joinRTCSession(ownMembershipIdentity, [transport], {
notificationType, notificationType,
callIntent, callIntent,
manageMediaKeys: encryptMedia, manageMediaKeys: encryptMedia,
@@ -124,7 +124,7 @@ function createEpochedMemberships$(m$: Observable<CallMembership[]>): {
const membershipsWithTransport$ = memberships$.pipe( const membershipsWithTransport$ = memberships$.pipe(
mapEpoch((members) => { mapEpoch((members) => {
return members.map((m) => { return members.map((m) => {
const tr = m.getTransport(m); const tr = m.getTransport();
return { return {
membership: m, membership: m,
transport: transport:
@@ -150,7 +150,7 @@ test("should signal participant on a connection that is publishing", async () =>
); );
const connection = { const connection = {
transport: bobMembership.getTransport(bobMembership), transport: bobMembership.getTransport(),
} as unknown as Connection; } as unknown as Connection;
const dataWithPublisher = new ConnectionManagerData(); const dataWithPublisher = new ConnectionManagerData();
dataWithPublisher.add(connection, [ dataWithPublisher.add(connection, [
@@ -193,7 +193,7 @@ test("should signal participant on a connection that is not publishing", async (
); );
const connection = { const connection = {
transport: bobMembership.getTransport(bobMembership), transport: bobMembership.getTransport(),
} as unknown as Connection; } as unknown as Connection;
const dataWithPublisher = new ConnectionManagerData(); const dataWithPublisher = new ConnectionManagerData();
dataWithPublisher.add(connection, []); dataWithPublisher.add(connection, []);
+1 -2
View File
@@ -46,8 +46,7 @@ export const membershipsAndTransports$ = (
memberships$.pipe( memberships$.pipe(
mapEpoch((memberships) => { mapEpoch((memberships) => {
return memberships.map((membership) => { return memberships.map((membership) => {
const oldestMembership = memberships[0] ?? membership; const transport = membership.getTransport();
const transport = membership.getTransport(oldestMembership);
return { return {
membership, membership,
transport: isLivekitTransport(transport) ? transport : undefined, transport: isLivekitTransport(transport) ? transport : undefined,