matrix-js-sdk 42.0.0 → 42.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/lib/@types/PushRules.d.ts.map +1 -1
- package/lib/@types/PushRules.js +0 -5
- package/lib/@types/PushRules.js.map +1 -1
- package/lib/@types/auth.d.ts.map +1 -1
- package/lib/@types/auth.js +0 -5
- package/lib/@types/auth.js.map +1 -1
- package/lib/@types/crypto.d.ts.map +1 -1
- package/lib/@types/crypto.js.map +1 -1
- package/lib/@types/event.d.ts +3 -1
- package/lib/@types/event.d.ts.map +1 -1
- package/lib/@types/event.js +1 -0
- package/lib/@types/event.js.map +1 -1
- package/lib/@types/extensible_events.js.map +1 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +1 -1
- package/lib/@types/media.js.map +1 -1
- package/lib/@types/partials.d.ts.map +1 -1
- package/lib/@types/partials.js.map +1 -1
- package/lib/@types/requests.d.ts.map +1 -1
- package/lib/@types/requests.js +0 -5
- package/lib/@types/requests.js.map +1 -1
- package/lib/@types/search.d.ts.map +1 -1
- package/lib/@types/search.js +0 -3
- package/lib/@types/search.js.map +1 -1
- package/lib/@types/spaces.d.ts.map +1 -1
- package/lib/@types/spaces.js.map +1 -1
- package/lib/@types/synapse.d.ts.map +1 -1
- package/lib/@types/synapse.js.map +1 -1
- package/lib/@types/threepids.js.map +1 -1
- package/lib/ToDeviceMessageQueue.d.ts.map +1 -1
- package/lib/ToDeviceMessageQueue.js +0 -2
- package/lib/ToDeviceMessageQueue.js.map +1 -1
- package/lib/browser-index.d.ts.map +1 -1
- package/lib/browser-index.js +3 -1
- package/lib/browser-index.js.map +1 -1
- package/lib/client.d.ts +5 -8
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +5 -46
- package/lib/client.js.map +1 -1
- package/lib/common-crypto/key-passphrase.d.ts.map +1 -1
- package/lib/common-crypto/key-passphrase.js +0 -3
- package/lib/common-crypto/key-passphrase.js.map +1 -1
- package/lib/crypto/store/base.d.ts.map +1 -1
- package/lib/crypto/store/base.js +0 -9
- package/lib/crypto/store/base.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
- package/lib/crypto/store/localStorage-crypto-store.d.ts.map +1 -1
- package/lib/crypto/store/localStorage-crypto-store.js +0 -2
- package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
- package/lib/crypto-api/keybackup.d.ts +13 -6
- package/lib/crypto-api/keybackup.d.ts.map +1 -1
- package/lib/crypto-api/keybackup.js.map +1 -1
- package/lib/embedded.d.ts.map +1 -1
- package/lib/embedded.js +0 -5
- package/lib/embedded.js.map +1 -1
- package/lib/feature.d.ts.map +1 -1
- package/lib/feature.js +0 -3
- package/lib/feature.js.map +1 -1
- package/lib/filter-component.d.ts.map +1 -1
- package/lib/filter-component.js +2 -5
- package/lib/filter-component.js.map +1 -1
- package/lib/filter.d.ts.map +1 -1
- package/lib/filter.js +0 -4
- package/lib/filter.js.map +1 -1
- package/lib/http-api/interface.d.ts.map +1 -1
- package/lib/http-api/interface.js.map +1 -1
- package/lib/http-api/refresh.d.ts.map +1 -1
- package/lib/http-api/refresh.js +0 -3
- package/lib/http-api/refresh.js.map +1 -1
- package/lib/interactive-auth.d.ts.map +1 -1
- package/lib/interactive-auth.js +5 -6
- package/lib/interactive-auth.js.map +1 -1
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +0 -2
- package/lib/logger.js.map +1 -1
- package/lib/matrixrtc/CallMembership.d.ts +3 -3
- package/lib/matrixrtc/CallMembership.js +5 -5
- package/lib/matrixrtc/CallMembership.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts +18 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.js +56 -4
- package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +14 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +1 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js +20 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
- package/lib/matrixrtc/MembershipManager.d.ts.map +1 -1
- package/lib/matrixrtc/MembershipManager.js +9 -6
- package/lib/matrixrtc/MembershipManager.js.map +1 -1
- package/lib/matrixrtc/index.d.ts +1 -1
- package/lib/matrixrtc/index.d.ts.map +1 -1
- package/lib/matrixrtc/index.js +1 -1
- package/lib/matrixrtc/index.js.map +1 -1
- package/lib/matrixrtc/membershipData/rtc.d.ts +6 -3
- package/lib/matrixrtc/membershipData/rtc.d.ts.map +1 -1
- package/lib/matrixrtc/membershipData/rtc.js +7 -4
- package/lib/matrixrtc/membershipData/rtc.js.map +1 -1
- package/lib/matrixrtc/types.d.ts +19 -6
- package/lib/matrixrtc/types.d.ts.map +1 -1
- package/lib/matrixrtc/types.js +11 -1
- package/lib/matrixrtc/types.js.map +1 -1
- package/lib/models/event.d.ts.map +1 -1
- package/lib/models/event.js +0 -6
- package/lib/models/event.js.map +1 -1
- package/lib/models/room-state.d.ts.map +1 -1
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +6 -6
- package/lib/models/room.js.map +1 -1
- package/lib/models/thread.d.ts +2 -2
- package/lib/models/thread.d.ts.map +1 -1
- package/lib/models/thread.js.map +1 -1
- package/lib/realtime-callbacks.js +0 -1
- package/lib/realtime-callbacks.js.map +1 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +1 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +1 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -2
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
- package/lib/rust-crypto/backup.d.ts +21 -1
- package/lib/rust-crypto/backup.d.ts.map +1 -1
- package/lib/rust-crypto/backup.js +62 -21
- package/lib/rust-crypto/backup.js.map +1 -1
- package/lib/rust-crypto/device-converter.d.ts.map +1 -1
- package/lib/rust-crypto/device-converter.js +1 -0
- package/lib/rust-crypto/device-converter.js.map +1 -1
- package/lib/rust-crypto/index.d.ts +7 -0
- package/lib/rust-crypto/index.d.ts.map +1 -1
- package/lib/rust-crypto/index.js +3 -3
- package/lib/rust-crypto/index.js.map +1 -1
- package/lib/rust-crypto/libolm_migration.d.ts.map +1 -1
- package/lib/rust-crypto/libolm_migration.js +0 -2
- package/lib/rust-crypto/libolm_migration.js.map +1 -1
- package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
- package/lib/rust-crypto/rust-crypto.js +0 -3
- package/lib/rust-crypto/rust-crypto.js.map +1 -1
- package/lib/scheduler.d.ts.map +1 -1
- package/lib/scheduler.js +0 -3
- package/lib/scheduler.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +6 -0
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sliding-sync.d.ts.map +1 -1
- package/lib/sliding-sync.js +3 -0
- package/lib/sliding-sync.js.map +1 -1
- package/lib/store/indexeddb.d.ts.map +1 -1
- package/lib/store/indexeddb.js +0 -2
- package/lib/store/indexeddb.js.map +1 -1
- package/lib/store/memory.d.ts.map +1 -1
- package/lib/store/memory.js +7 -9
- package/lib/store/memory.js.map +1 -1
- package/lib/sync-accumulator.d.ts.map +1 -1
- package/lib/sync-accumulator.js +1 -5
- package/lib/sync-accumulator.js.map +1 -1
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +1 -1
- package/lib/sync.js.map +1 -1
- package/lib/timeline-window.d.ts.map +1 -1
- package/lib/timeline-window.js +0 -1
- package/lib/timeline-window.js.map +1 -1
- package/lib/utils/internal/deriveKeys.d.ts.map +1 -1
- package/lib/utils/internal/deriveKeys.js +0 -1
- package/lib/utils/internal/deriveKeys.js.map +1 -1
- package/lib/webrtc/callEventTypes.d.ts.map +1 -1
- package/lib/webrtc/callEventTypes.js +0 -5
- package/lib/webrtc/callEventTypes.js.map +1 -1
- package/package.json +5 -5
- package/src/@types/PushRules.ts +0 -5
- package/src/@types/auth.ts +0 -6
- package/src/@types/crypto.ts +2 -6
- package/src/@types/event.ts +3 -0
- package/src/@types/extensible_events.ts +4 -4
- package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -1
- package/src/@types/media.ts +1 -1
- package/src/@types/partials.ts +0 -2
- package/src/@types/requests.ts +0 -5
- package/src/@types/search.ts +0 -2
- package/src/@types/spaces.ts +0 -2
- package/src/@types/synapse.ts +0 -2
- package/src/@types/threepids.ts +2 -2
- package/src/ToDeviceMessageQueue.ts +0 -2
- package/src/browser-index.ts +3 -3
- package/src/client.ts +18 -61
- package/src/common-crypto/key-passphrase.ts +0 -1
- package/src/crypto/store/base.ts +1 -8
- package/src/crypto/store/indexeddb-crypto-store-backend.ts +1 -1
- package/src/crypto/store/localStorage-crypto-store.ts +0 -1
- package/src/crypto-api/keybackup.ts +14 -7
- package/src/embedded.ts +0 -5
- package/src/feature.ts +0 -3
- package/src/filter-component.ts +1 -2
- package/src/filter.ts +0 -3
- package/src/http-api/interface.ts +0 -1
- package/src/http-api/refresh.ts +0 -1
- package/src/interactive-auth.ts +4 -4
- package/src/logger.ts +0 -2
- package/src/matrixrtc/CallMembership.ts +5 -5
- package/src/matrixrtc/MatrixRTCSession.ts +70 -3
- package/src/matrixrtc/MatrixRTCSessionManager.ts +21 -2
- package/src/matrixrtc/MembershipManager.ts +8 -5
- package/src/matrixrtc/index.ts +1 -1
- package/src/matrixrtc/membershipData/rtc.ts +18 -7
- package/src/matrixrtc/types.ts +24 -7
- package/src/models/event.ts +0 -3
- package/src/models/room-state.ts +0 -3
- package/src/models/room.ts +6 -6
- package/src/models/thread.ts +2 -2
- package/src/realtime-callbacks.ts +0 -1
- package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -1
- package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -1
- package/src/rust-crypto/backup.ts +66 -28
- package/src/rust-crypto/device-converter.ts +1 -0
- package/src/rust-crypto/index.ts +11 -0
- package/src/rust-crypto/libolm_migration.ts +0 -2
- package/src/rust-crypto/rust-crypto.ts +0 -3
- package/src/scheduler.ts +0 -3
- package/src/sliding-sync-sdk.ts +3 -0
- package/src/sliding-sync.ts +2 -0
- package/src/store/indexeddb.ts +0 -2
- package/src/store/memory.ts +7 -9
- package/src/sync-accumulator.ts +1 -3
- package/src/sync.ts +1 -3
- package/src/timeline-window.ts +0 -1
- package/src/utils/internal/deriveKeys.ts +0 -1
- package/src/webrtc/callEventTypes.ts +0 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IContent } from "../../models/event.ts";
|
|
2
2
|
import type { RelationType } from "../../types.ts";
|
|
3
|
-
import { type
|
|
3
|
+
import { type RtcSlotApplicationContent, type Transport } from "../types.ts";
|
|
4
4
|
/**
|
|
5
5
|
* Represents the current form of MSC4143, which uses sticky events to store membership.
|
|
6
6
|
*/
|
|
@@ -15,8 +15,11 @@ export interface RtcMembershipData {
|
|
|
15
15
|
event_id: string;
|
|
16
16
|
rel_type: RelationType.Reference;
|
|
17
17
|
};
|
|
18
|
-
"application":
|
|
19
|
-
"
|
|
18
|
+
"application": RtcSlotApplicationContent;
|
|
19
|
+
"transports": {
|
|
20
|
+
published: Transport[];
|
|
21
|
+
can_subscribe: string[];
|
|
22
|
+
};
|
|
20
23
|
"versions": string[];
|
|
21
24
|
"msc4354_sticky_key"?: string;
|
|
22
25
|
"sticky_key"?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc.d.ts","sourceRoot":"","sources":["../../../src/matrixrtc/membershipData/rtc.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"rtc.d.ts","sourceRoot":"","sources":["../../../src/matrixrtc/membershipData/rtc.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;KACd,CAAC;IACF,cAAc,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC;KACpC,CAAC;IACF,aAAa,EAAE,yBAAyB,CAAC;IACzC,YAAY,EAAE;QACV,SAAS,EAAE,SAAS,EAAE,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,SAAU,QAAQ,UAAU,MAAM,KAAG,IAAI,IAAI,iBAuG/E,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM/G"}
|
|
@@ -76,17 +76,20 @@ export const checkRtcMembershipData = (data, sender) => {
|
|
|
76
76
|
if (data.application.type.includes("#")) errors.push(prefix + 'application.type must not include "#"');
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
if (data.
|
|
80
|
-
errors.push(prefix + "
|
|
79
|
+
if (typeof data.transports !== "object" || data.transports === null || !Array.isArray(data.transports.published)) {
|
|
80
|
+
errors.push(prefix + "transports.published must be an array");
|
|
81
81
|
} else {
|
|
82
82
|
// validate that each transport has at least a string 'type'
|
|
83
|
-
for (const t of data.
|
|
83
|
+
for (const t of data.transports.published) {
|
|
84
84
|
if (typeof t !== "object" || t === null || typeof t.type !== "string") {
|
|
85
|
-
errors.push(prefix + "
|
|
85
|
+
errors.push(prefix + "transports.published entries must be objects with a string type");
|
|
86
86
|
break;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
|
+
if (typeof data.transports !== "object" || data.transports === null || !Array.isArray(data.transports.can_subscribe) || !data.transports.can_subscribe.every(t => typeof t === "string")) {
|
|
91
|
+
errors.push(prefix + "transports.can_subscribe must be an array of strings");
|
|
92
|
+
}
|
|
90
93
|
if (data.versions === undefined || !Array.isArray(data.versions)) {
|
|
91
94
|
errors.push(prefix + "versions must be an array");
|
|
92
95
|
} else if (!data.versions.every(v => typeof v === "string")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtc.js","names":[],"sources":["../../../src/matrixrtc/membershipData/rtc.ts"],"sourcesContent":["/*\nCopyright 2026 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { MXID_PATTERN } from \"../../models/room-member.ts\";\nimport type { IContent } from \"../../models/event.ts\";\nimport type { RelationType } from \"../../types.ts\";\nimport { type RtcSlotEventContent, type Transport } from \"../types.ts\";\nimport { MatrixRTCMembershipParseError } from \"./common.ts\";\nimport { sha256 } from \"../../digest.ts\";\nimport { encodeUnpaddedBase64 } from \"../../base64.ts\";\nimport { slotIdToDescription } from \"../utils.ts\";\n\n/**\n * Represents the current form of MSC4143, which uses sticky events to store membership.\n */\nexport interface RtcMembershipData {\n \"slot_id\": string;\n \"member\": {\n user_id: string;\n device_id: string;\n id: string;\n };\n \"m.relates_to\"?: {\n event_id: string;\n rel_type: RelationType.Reference;\n };\n \"application\": RtcSlotEventContent[\"application\"];\n \"rtc_transports\": Transport[];\n \"versions\": string[];\n \"msc4354_sticky_key\"?: string;\n \"sticky_key\"?: string;\n}\n\n/**\n * Validates that `data` matches the format expected by MSC4143.\n * @param data The event content.\n * @param sender The sender of the event.\n * @returns true if `data` is valid RtcMembershipData\n * @throws {MatrixRTCMembershipParseError} if the content is not valid\n */\nexport const checkRtcMembershipData = (data: IContent, sender: string): data is RtcMembershipData => {\n const errors: string[] = [];\n const prefix = \" - \";\n const expectedSlotPrefix = `${data?.application?.type}#`;\n\n // required fields\n if (typeof data.slot_id !== \"string\") {\n errors.push(prefix + \"slot_id must be string\");\n } else if (!data.slot_id.startsWith(expectedSlotPrefix)) {\n errors.push(prefix + `slot_id must start with ${expectedSlotPrefix}`);\n } else {\n try {\n slotIdToDescription(data.slot_id);\n } catch (ex) {\n errors.push(prefix + `slot_id was badly formed${ex instanceof Error ? `: ${ex.message}` : \"\"}`);\n }\n }\n\n if (typeof data.member !== \"object\" || data.member === null) {\n errors.push(prefix + \"member must be an object\");\n } else {\n if (typeof data.member.user_id !== \"string\") {\n errors.push(prefix + \"member.user_id must be string\");\n } else if (!MXID_PATTERN.test(data.member.user_id)) {\n errors.push(prefix + \"member.user_id must be a valid mxid\");\n }\n // This is not what the spec enforces but there currently are no rules what power levels are required to\n // send a m.rtc.member event for a other user. So we add this check for simplicity and to avoid possible attacks until there\n // is a proper definition when this is allowed.\n else if (data.member.user_id !== sender) {\n errors.push(prefix + \"member.user_id must match the sender\");\n }\n if (typeof data.member.device_id !== \"string\") {\n errors.push(prefix + \"member.device_id must be string\");\n }\n if (typeof data.member.id !== \"string\") errors.push(prefix + \"member.id must be string\");\n }\n if (typeof data.application !== \"object\" || data.application === null) {\n errors.push(prefix + \"application must be an object\");\n } else {\n if (typeof data.application.type !== \"string\") {\n errors.push(prefix + \"application.type must be a string\");\n } else {\n if (data.application.type.includes(\"#\")) errors.push(prefix + 'application.type must not include \"#\"');\n }\n }\n if (data.rtc_transports === undefined || !Array.isArray(data.rtc_transports)) {\n errors.push(prefix + \"rtc_transports must be an array\");\n } else {\n // validate that each transport has at least a string 'type'\n for (const t of data.rtc_transports) {\n if (typeof t !== \"object\" || t === null || typeof (t as any).type !== \"string\") {\n errors.push(prefix + \"rtc_transports entries must be objects with a string type\");\n break;\n }\n }\n }\n if (data.versions === undefined || !Array.isArray(data.versions)) {\n errors.push(prefix + \"versions must be an array\");\n } else if (!data.versions.every((v) => typeof v === \"string\")) {\n errors.push(prefix + \"versions must be an array of strings\");\n }\n\n // optional fields\n if ((data.sticky_key ?? data.msc4354_sticky_key) === undefined) {\n errors.push(prefix + \"sticky_key or msc4354_sticky_key must be a defined\");\n }\n if (data.sticky_key !== undefined && typeof data.sticky_key !== \"string\") {\n errors.push(prefix + \"sticky_key must be a string\");\n }\n if (data.msc4354_sticky_key !== undefined && typeof data.msc4354_sticky_key !== \"string\") {\n errors.push(prefix + \"msc4354_sticky_key must be a string\");\n }\n if (\n data.sticky_key !== undefined &&\n data.msc4354_sticky_key !== undefined &&\n data.sticky_key !== data.msc4354_sticky_key\n ) {\n errors.push(prefix + \"sticky_key and msc4354_sticky_key must be equal if both are defined\");\n }\n if (data[\"m.relates_to\"] !== undefined) {\n const rel = data[\"m.relates_to\"] as RtcMembershipData[\"m.relates_to\"];\n if (typeof rel !== \"object\" || rel === null) {\n errors.push(prefix + \"m.relates_to must be an object if provided\");\n } else {\n if (typeof rel.event_id !== \"string\") errors.push(prefix + \"m.relates_to.event_id must be a string\");\n if (rel.rel_type !== \"m.reference\") errors.push(prefix + \"m.relates_to.rel_type must be m.reference\");\n }\n }\n\n if (errors.length) {\n throw new MatrixRTCMembershipParseError(\"RtcMembership\", errors);\n }\n\n return true;\n};\n\nexport async function computeRtcIdentityRaw(userId: string, deviceId: string, memberId: string): Promise<string> {\n // canonical JSON serialization (Matrix canonical JSON for arrays)\n const jsonStr = JSON.stringify([userId, deviceId, memberId]);\n const hashBuffer = await sha256(jsonStr);\n const hashedString = encodeUnpaddedBase64(hashBuffer);\n return hashedString;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"rtc.js","names":[],"sources":["../../../src/matrixrtc/membershipData/rtc.ts"],"sourcesContent":["/*\nCopyright 2026 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { MXID_PATTERN } from \"../../models/room-member.ts\";\nimport type { IContent } from \"../../models/event.ts\";\nimport type { RelationType } from \"../../types.ts\";\nimport { type RtcSlotApplicationContent, type Transport } from \"../types.ts\";\nimport { MatrixRTCMembershipParseError } from \"./common.ts\";\nimport { sha256 } from \"../../digest.ts\";\nimport { encodeUnpaddedBase64 } from \"../../base64.ts\";\nimport { slotIdToDescription } from \"../utils.ts\";\n\n/**\n * Represents the current form of MSC4143, which uses sticky events to store membership.\n */\nexport interface RtcMembershipData {\n \"slot_id\": string;\n \"member\": {\n user_id: string;\n device_id: string;\n id: string;\n };\n \"m.relates_to\"?: {\n event_id: string;\n rel_type: RelationType.Reference;\n };\n \"application\": RtcSlotApplicationContent;\n \"transports\": {\n published: Transport[];\n can_subscribe: string[];\n };\n \"versions\": string[];\n \"msc4354_sticky_key\"?: string;\n \"sticky_key\"?: string;\n}\n\n/**\n * Validates that `data` matches the format expected by MSC4143.\n * @param data The event content.\n * @param sender The sender of the event.\n * @returns true if `data` is valid RtcMembershipData\n * @throws {MatrixRTCMembershipParseError} if the content is not valid\n */\nexport const checkRtcMembershipData = (data: IContent, sender: string): data is RtcMembershipData => {\n const errors: string[] = [];\n const prefix = \" - \";\n const expectedSlotPrefix = `${data?.application?.type}#`;\n\n // required fields\n if (typeof data.slot_id !== \"string\") {\n errors.push(prefix + \"slot_id must be string\");\n } else if (!data.slot_id.startsWith(expectedSlotPrefix)) {\n errors.push(prefix + `slot_id must start with ${expectedSlotPrefix}`);\n } else {\n try {\n slotIdToDescription(data.slot_id);\n } catch (ex) {\n errors.push(prefix + `slot_id was badly formed${ex instanceof Error ? `: ${ex.message}` : \"\"}`);\n }\n }\n\n if (typeof data.member !== \"object\" || data.member === null) {\n errors.push(prefix + \"member must be an object\");\n } else {\n if (typeof data.member.user_id !== \"string\") {\n errors.push(prefix + \"member.user_id must be string\");\n } else if (!MXID_PATTERN.test(data.member.user_id)) {\n errors.push(prefix + \"member.user_id must be a valid mxid\");\n }\n // This is not what the spec enforces but there currently are no rules what power levels are required to\n // send a m.rtc.member event for a other user. So we add this check for simplicity and to avoid possible attacks until there\n // is a proper definition when this is allowed.\n else if (data.member.user_id !== sender) {\n errors.push(prefix + \"member.user_id must match the sender\");\n }\n if (typeof data.member.device_id !== \"string\") {\n errors.push(prefix + \"member.device_id must be string\");\n }\n if (typeof data.member.id !== \"string\") errors.push(prefix + \"member.id must be string\");\n }\n if (typeof data.application !== \"object\" || data.application === null) {\n errors.push(prefix + \"application must be an object\");\n } else {\n if (typeof data.application.type !== \"string\") {\n errors.push(prefix + \"application.type must be a string\");\n } else {\n if (data.application.type.includes(\"#\")) errors.push(prefix + 'application.type must not include \"#\"');\n }\n }\n if (typeof data.transports !== \"object\" || data.transports === null || !Array.isArray(data.transports.published)) {\n errors.push(prefix + \"transports.published must be an array\");\n } else {\n // validate that each transport has at least a string 'type'\n for (const t of data.transports.published) {\n if (typeof t !== \"object\" || t === null || typeof (t as any).type !== \"string\") {\n errors.push(prefix + \"transports.published entries must be objects with a string type\");\n break;\n }\n }\n }\n if (\n typeof data.transports !== \"object\" ||\n data.transports === null ||\n !Array.isArray(data.transports.can_subscribe) ||\n !data.transports.can_subscribe.every((t: unknown) => typeof t === \"string\")\n ) {\n errors.push(prefix + \"transports.can_subscribe must be an array of strings\");\n }\n if (data.versions === undefined || !Array.isArray(data.versions)) {\n errors.push(prefix + \"versions must be an array\");\n } else if (!data.versions.every((v) => typeof v === \"string\")) {\n errors.push(prefix + \"versions must be an array of strings\");\n }\n\n // optional fields\n if ((data.sticky_key ?? data.msc4354_sticky_key) === undefined) {\n errors.push(prefix + \"sticky_key or msc4354_sticky_key must be a defined\");\n }\n if (data.sticky_key !== undefined && typeof data.sticky_key !== \"string\") {\n errors.push(prefix + \"sticky_key must be a string\");\n }\n if (data.msc4354_sticky_key !== undefined && typeof data.msc4354_sticky_key !== \"string\") {\n errors.push(prefix + \"msc4354_sticky_key must be a string\");\n }\n if (\n data.sticky_key !== undefined &&\n data.msc4354_sticky_key !== undefined &&\n data.sticky_key !== data.msc4354_sticky_key\n ) {\n errors.push(prefix + \"sticky_key and msc4354_sticky_key must be equal if both are defined\");\n }\n if (data[\"m.relates_to\"] !== undefined) {\n const rel = data[\"m.relates_to\"] as RtcMembershipData[\"m.relates_to\"];\n if (typeof rel !== \"object\" || rel === null) {\n errors.push(prefix + \"m.relates_to must be an object if provided\");\n } else {\n if (typeof rel.event_id !== \"string\") errors.push(prefix + \"m.relates_to.event_id must be a string\");\n if (rel.rel_type !== \"m.reference\") errors.push(prefix + \"m.relates_to.rel_type must be m.reference\");\n }\n }\n\n if (errors.length) {\n throw new MatrixRTCMembershipParseError(\"RtcMembership\", errors);\n }\n\n return true;\n};\n\nexport async function computeRtcIdentityRaw(userId: string, deviceId: string, memberId: string): Promise<string> {\n // canonical JSON serialization (Matrix canonical JSON for arrays)\n const jsonStr = JSON.stringify([userId, deviceId, memberId]);\n const hashBuffer = await sha256(jsonStr);\n const hashedString = encodeUnpaddedBase64(hashBuffer);\n return hashedString;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/matrixrtc/types.d.ts
CHANGED
|
@@ -144,14 +144,27 @@ export interface Transport {
|
|
|
144
144
|
[key: string]: unknown;
|
|
145
145
|
}
|
|
146
146
|
/**
|
|
147
|
-
* Event content for
|
|
147
|
+
* Event content for `org.matrix.msc4143.rtc.slot` state events.
|
|
148
148
|
*/
|
|
149
149
|
export interface RtcSlotEventContent<T extends string = string> {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
150
|
+
status: "open" | "closed";
|
|
151
|
+
application?: RtcSlotApplicationContent<T>;
|
|
152
|
+
encryption?: RtcSlotEncryptionContent;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Content of the `application` object within `org.matrix.msc4143.rtc.slot` events.
|
|
156
|
+
*/
|
|
157
|
+
export interface RtcSlotApplicationContent<T extends string = string> {
|
|
158
|
+
type: T;
|
|
159
|
+
[key: string]: unknown;
|
|
160
|
+
}
|
|
161
|
+
export declare const RTC_SLOT_ENCRYPTION_PER_MEMBER = "org.matrix.msc4143.per_member";
|
|
162
|
+
/**
|
|
163
|
+
* Content of the `encryption` object within `org.matrix.msc4143.rtc.slot` events.
|
|
164
|
+
*/
|
|
165
|
+
export interface RtcSlotEncryptionContent {
|
|
166
|
+
type: typeof RTC_SLOT_ENCRYPTION_PER_MEMBER;
|
|
167
|
+
[key: string]: unknown;
|
|
155
168
|
}
|
|
156
169
|
/**
|
|
157
170
|
* The session description is used to identify a session. Used in the state event.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/matrixrtc/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/matrixrtc/types.ts"],"names":[],"mappings":"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"}
|
package/lib/matrixrtc/types.js
CHANGED
|
@@ -106,7 +106,17 @@ export const isMyMembership = (m, userId, deviceId) => m.sender === userId && m.
|
|
|
106
106
|
*/
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
|
-
* Event content for
|
|
109
|
+
* Event content for `org.matrix.msc4143.rtc.slot` state events.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Content of the `application` object within `org.matrix.msc4143.rtc.slot` events.
|
|
114
|
+
*/
|
|
115
|
+
|
|
116
|
+
export const RTC_SLOT_ENCRYPTION_PER_MEMBER = "org.matrix.msc4143.per_member";
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Content of the `encryption` object within `org.matrix.msc4143.rtc.slot` events.
|
|
110
120
|
*/
|
|
111
121
|
|
|
112
122
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/matrixrtc/types.ts"],"sourcesContent":["/*\nCopyright 2023-2026 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport type { IContent, IMentions } from \"../matrix.ts\";\nimport type { RelationEvent } from \"../types.ts\";\nimport type { CallMembership } from \"./CallMembership.ts\";\nimport { type CallMembershipIdentityParts } from \"./EncryptionManager.ts\";\n\nexport type EncryptionKeyMapKey = string;\n\nexport interface EncryptionKeyEntry {\n index: number;\n key: string;\n}\n\n/**\n * The mxID, deviceId and membership timestamp of a RTC session participant.\n */\nexport type ParticipantDeviceInfo = {\n userId: string;\n deviceId: string;\n membershipTs: number;\n};\n\n/**\n * A type representing the information needed to decrypt video streams.\n */\nexport type InboundEncryptionSession = {\n key: Uint8Array<ArrayBuffer>;\n membership: CallMembershipIdentityParts;\n keyIndex: number;\n creationTS: number;\n};\n\n/**\n * The information about the key used to encrypt video streams.\n */\nexport type OutboundEncryptionSession = {\n key: Uint8Array<ArrayBuffer>;\n creationTS: number;\n // The devices that this key is shared with.\n sharedWith: Array<ParticipantDeviceInfo>;\n // This is an index acting as the id of the key\n keyId: number;\n};\n\nexport interface EncryptionKeysEventContent {\n keys: EncryptionKeyEntry[];\n device_id: string;\n call_id: string;\n sent_ts?: number;\n}\n\n/**\n * THe content of a to-device event that contains encryption keys.\n */\nexport interface EncryptionKeysToDeviceEventContent {\n keys: { index: number; key: string };\n member: {\n id: string;\n // TODO Remove that it is claimed, need to get the sealed sender from decryption info\n // Or add some validation on it based on the encryption info\n claimed_device_id: string;\n };\n room_id: string;\n session: {\n application: string;\n call_id: string;\n scope: string;\n };\n // Why is this needed?\n sent_ts?: number;\n}\n/**\n * @deprecated Use `RTCNotificationType` instead.\n */\nexport type CallNotifyType = \"ring\" | \"notify\";\n/**\n * @deprecated Use `IRTCNotificationContent` instead.\n */\nexport interface ICallNotifyContent {\n \"application\": string;\n \"m.mentions\": IMentions;\n \"notify_type\": CallNotifyType;\n \"call_id\": string;\n}\n\nexport type RTCNotificationType = \"ring\" | \"notification\";\n\n/**\n * Represents the intention of the call from the perspective of the sending user.\n * May be any string, although `\"audio\"` and `\"video\"` are commonly accepted values.\n */\nexport type RTCCallIntent = \"audio\" | \"video\" | string;\n\n/**\n * This will check if the content has all the expected fields to be a valid IRTCNotificationContent.\n * It will also cap the lifetime to 90000ms (1.5 min) if a higher value is provided.\n * @param content\n * @throws if the content is invalid\n * @returns a parsed IRTCNotificationContent\n */\nexport function parseCallNotificationContent(content: IContent): IRTCNotificationContent {\n if (content[\"m.mentions\"] && typeof content[\"m.mentions\"] !== \"object\") {\n throw new Error(\"malformed m.mentions\");\n }\n if (typeof content[\"notification_type\"] !== \"string\") {\n throw new Error(\"Missing or invalid notification_type\");\n }\n if (typeof content[\"sender_ts\"] !== \"number\") {\n throw new Error(\"Missing or invalid sender_ts\");\n }\n if (typeof content[\"lifetime\"] !== \"number\") {\n throw new Error(\"Missing or invalid lifetime\");\n }\n\n if (content[\"relation\"] && content[\"relation\"][\"rel_type\"] !== \"m.reference\") {\n throw new Error(\"Invalid relation\");\n }\n if (content[\"m.call.intent\"] && typeof content[\"m.call.intent\"] !== \"string\") {\n throw new Error(\"Invalid m.call.intent\");\n }\n\n const cappedLifetime = content[\"lifetime\"] >= 90000 ? 90000 : content[\"lifetime\"];\n return { ...content, lifetime: cappedLifetime } as IRTCNotificationContent;\n}\n\n/**\n * Interface for `org.matrix.msc4075.rtc.notification` events.\n * Don't cast event content to this directly. Use `parseCallNotificationContent` instead to validate the content first.\n */\nexport interface IRTCNotificationContent extends RelationEvent {\n \"m.mentions\"?: IMentions;\n \"notification_type\": RTCNotificationType;\n /**\n * The initial intent of the calling user.\n */\n \"m.call.intent\"?: RTCCallIntent;\n \"sender_ts\": number;\n \"lifetime\": number;\n}\n\n/**\n * MSC4310 decline event content for `org.matrix.msc4310.rtc.decline`.\n * Sent as a standard m.reference relation to an `org.matrix.msc4075.rtc.notification` event.\n */\nexport interface IRTCDeclineContent extends RelationEvent {}\n\nexport enum Status {\n Disconnected = \"Disconnected\",\n Connecting = \"Connecting\",\n Connected = \"Connected\",\n Disconnecting = \"Disconnecting\",\n Unknown = \"Unknown\",\n}\n\n/**\n * A type collecting call encryption statistics for a session.\n */\nexport type Statistics = {\n counters: {\n /**\n * The number of times we have sent a room event containing encryption keys.\n */\n roomEventEncryptionKeysSent: number;\n /**\n * The number of times we have received a room event containing encryption keys.\n */\n roomEventEncryptionKeysReceived: number;\n };\n totals: {\n /**\n * The total age (in milliseconds) of all room events containing encryption keys that we have received.\n * We track the total age so that we can later calculate the average age of all keys received.\n */\n roomEventEncryptionKeysReceivedTotalAge: number;\n };\n};\n\nexport const isMyMembership = (m: CallMembership, userId: string, deviceId: string): boolean =>\n m.sender === userId && m.deviceId === deviceId;\n\n/**\n * A RTC transport is a JSON object that describes how to connect to a RTC member.\n */\nexport interface Transport {\n type: string;\n [key: string]: unknown;\n}\n\n/**\n * Event content for
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/matrixrtc/types.ts"],"sourcesContent":["/*\nCopyright 2023-2026 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\nimport type { IContent, IMentions } from \"../matrix.ts\";\nimport type { RelationEvent } from \"../types.ts\";\nimport type { CallMembership } from \"./CallMembership.ts\";\nimport { type CallMembershipIdentityParts } from \"./EncryptionManager.ts\";\n\nexport type EncryptionKeyMapKey = string;\n\nexport interface EncryptionKeyEntry {\n index: number;\n key: string;\n}\n\n/**\n * The mxID, deviceId and membership timestamp of a RTC session participant.\n */\nexport type ParticipantDeviceInfo = {\n userId: string;\n deviceId: string;\n membershipTs: number;\n};\n\n/**\n * A type representing the information needed to decrypt video streams.\n */\nexport type InboundEncryptionSession = {\n key: Uint8Array<ArrayBuffer>;\n membership: CallMembershipIdentityParts;\n keyIndex: number;\n creationTS: number;\n};\n\n/**\n * The information about the key used to encrypt video streams.\n */\nexport type OutboundEncryptionSession = {\n key: Uint8Array<ArrayBuffer>;\n creationTS: number;\n // The devices that this key is shared with.\n sharedWith: Array<ParticipantDeviceInfo>;\n // This is an index acting as the id of the key\n keyId: number;\n};\n\nexport interface EncryptionKeysEventContent {\n keys: EncryptionKeyEntry[];\n device_id: string;\n call_id: string;\n sent_ts?: number;\n}\n\n/**\n * THe content of a to-device event that contains encryption keys.\n */\nexport interface EncryptionKeysToDeviceEventContent {\n keys: { index: number; key: string };\n member: {\n id: string;\n // TODO Remove that it is claimed, need to get the sealed sender from decryption info\n // Or add some validation on it based on the encryption info\n claimed_device_id: string;\n };\n room_id: string;\n session: {\n application: string;\n call_id: string;\n scope: string;\n };\n // Why is this needed?\n sent_ts?: number;\n}\n/**\n * @deprecated Use `RTCNotificationType` instead.\n */\nexport type CallNotifyType = \"ring\" | \"notify\";\n/**\n * @deprecated Use `IRTCNotificationContent` instead.\n */\nexport interface ICallNotifyContent {\n \"application\": string;\n \"m.mentions\": IMentions;\n \"notify_type\": CallNotifyType;\n \"call_id\": string;\n}\n\nexport type RTCNotificationType = \"ring\" | \"notification\";\n\n/**\n * Represents the intention of the call from the perspective of the sending user.\n * May be any string, although `\"audio\"` and `\"video\"` are commonly accepted values.\n */\nexport type RTCCallIntent = \"audio\" | \"video\" | string;\n\n/**\n * This will check if the content has all the expected fields to be a valid IRTCNotificationContent.\n * It will also cap the lifetime to 90000ms (1.5 min) if a higher value is provided.\n * @param content\n * @throws if the content is invalid\n * @returns a parsed IRTCNotificationContent\n */\nexport function parseCallNotificationContent(content: IContent): IRTCNotificationContent {\n if (content[\"m.mentions\"] && typeof content[\"m.mentions\"] !== \"object\") {\n throw new Error(\"malformed m.mentions\");\n }\n if (typeof content[\"notification_type\"] !== \"string\") {\n throw new Error(\"Missing or invalid notification_type\");\n }\n if (typeof content[\"sender_ts\"] !== \"number\") {\n throw new Error(\"Missing or invalid sender_ts\");\n }\n if (typeof content[\"lifetime\"] !== \"number\") {\n throw new Error(\"Missing or invalid lifetime\");\n }\n\n if (content[\"relation\"] && content[\"relation\"][\"rel_type\"] !== \"m.reference\") {\n throw new Error(\"Invalid relation\");\n }\n if (content[\"m.call.intent\"] && typeof content[\"m.call.intent\"] !== \"string\") {\n throw new Error(\"Invalid m.call.intent\");\n }\n\n const cappedLifetime = content[\"lifetime\"] >= 90000 ? 90000 : content[\"lifetime\"];\n return { ...content, lifetime: cappedLifetime } as IRTCNotificationContent;\n}\n\n/**\n * Interface for `org.matrix.msc4075.rtc.notification` events.\n * Don't cast event content to this directly. Use `parseCallNotificationContent` instead to validate the content first.\n */\nexport interface IRTCNotificationContent extends RelationEvent {\n \"m.mentions\"?: IMentions;\n \"notification_type\": RTCNotificationType;\n /**\n * The initial intent of the calling user.\n */\n \"m.call.intent\"?: RTCCallIntent;\n \"sender_ts\": number;\n \"lifetime\": number;\n}\n\n/**\n * MSC4310 decline event content for `org.matrix.msc4310.rtc.decline`.\n * Sent as a standard m.reference relation to an `org.matrix.msc4075.rtc.notification` event.\n */\nexport interface IRTCDeclineContent extends RelationEvent {}\n\nexport enum Status {\n Disconnected = \"Disconnected\",\n Connecting = \"Connecting\",\n Connected = \"Connected\",\n Disconnecting = \"Disconnecting\",\n Unknown = \"Unknown\",\n}\n\n/**\n * A type collecting call encryption statistics for a session.\n */\nexport type Statistics = {\n counters: {\n /**\n * The number of times we have sent a room event containing encryption keys.\n */\n roomEventEncryptionKeysSent: number;\n /**\n * The number of times we have received a room event containing encryption keys.\n */\n roomEventEncryptionKeysReceived: number;\n };\n totals: {\n /**\n * The total age (in milliseconds) of all room events containing encryption keys that we have received.\n * We track the total age so that we can later calculate the average age of all keys received.\n */\n roomEventEncryptionKeysReceivedTotalAge: number;\n };\n};\n\nexport const isMyMembership = (m: CallMembership, userId: string, deviceId: string): boolean =>\n m.sender === userId && m.deviceId === deviceId;\n\n/**\n * A RTC transport is a JSON object that describes how to connect to a RTC member.\n */\nexport interface Transport {\n type: string;\n [key: string]: unknown;\n}\n\n/**\n * Event content for `org.matrix.msc4143.rtc.slot` state events.\n */\nexport interface RtcSlotEventContent<T extends string = string> {\n status: \"open\" | \"closed\";\n application?: RtcSlotApplicationContent<T>;\n encryption?: RtcSlotEncryptionContent;\n}\n\n/**\n * Content of the `application` object within `org.matrix.msc4143.rtc.slot` events.\n */\nexport interface RtcSlotApplicationContent<T extends string = string> {\n type: T;\n // Other application specific keys.\n [key: string]: unknown;\n}\n\nexport const RTC_SLOT_ENCRYPTION_PER_MEMBER = \"org.matrix.msc4143.per_member\";\n\n/**\n * Content of the `encryption` object within `org.matrix.msc4143.rtc.slot` events.\n */\nexport interface RtcSlotEncryptionContent {\n type: typeof RTC_SLOT_ENCRYPTION_PER_MEMBER;\n // Other encryption-mechanism specific keys.\n [key: string]: unknown;\n}\n\n/**\n * The session description is used to identify a session. Used in the state event.\n */\nexport interface SlotDescription {\n /**\n * The application type. e.g. \"m.call\".\n */\n application: string;\n /**\n * The application-specific slot ID. e.g. \"ROOM\".\n */\n id: string;\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaA;AACA;AACA;;AAOA;AACA;AACA;;AAQA;AACA;AACA;;AAiBA;AACA;AACA;;AAkBA;AACA;AACA;;AAEA;AACA;AACA;;AAUA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,4BAA4B,CAAC,OAAiB,EAA2B;EACrF,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;IACpE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;EAC3C;EACA,IAAI,OAAO,OAAO,CAAC,mBAAmB,CAAC,KAAK,QAAQ,EAAE;IAClD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;EAC3D;EACA,IAAI,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE;IAC1C,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;EACnD;EACA,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;IACzC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;EAClD;EAEA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,aAAa,EAAE;IAC1E,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC;EACvC;EACA,IAAI,OAAO,CAAC,eAAe,CAAC,IAAI,OAAO,OAAO,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;IAC1E,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;EAC5C;EAEA,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;EACjF,uCAAY,OAAO;IAAE,QAAQ,EAAE;EAAc;AACjD;;AAEA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;;AAGA,WAAY,MAAM,0BAAN,MAAM;EAAN,MAAM;EAAN,MAAM;EAAN,MAAM;EAAN,MAAM;EAAN,MAAM;EAAA,OAAN,MAAM;AAAA;;AAQlB;AACA;AACA;;AAqBA,OAAO,MAAM,cAAc,GAAG,CAAC,CAAiB,EAAE,MAAc,EAAE,QAAgB,KAC9E,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ;;AAElD;AACA;AACA;;AAMA;AACA;AACA;;AAOA;AACA;AACA;;AAOA,OAAO,MAAM,8BAA8B,GAAG,+BAA+B;;AAE7E;AACA;AACA;;AAOA;AACA;AACA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/models/event.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/models/event.ts"],"names":[],"mappings":"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"}
|
package/lib/models/event.js
CHANGED
|
@@ -32,15 +32,11 @@ import { EventTimeline } from "./event-timeline.js";
|
|
|
32
32
|
import { DecryptionFailureCode } from "../crypto-api/index.js";
|
|
33
33
|
export { EventStatus } from "./event-status.js";
|
|
34
34
|
|
|
35
|
-
/* eslint-disable camelcase */
|
|
36
|
-
|
|
37
35
|
/**
|
|
38
36
|
* When an event is a visibility change event, as per MSC3531,
|
|
39
37
|
* the visibility change implied by the event.
|
|
40
38
|
*/
|
|
41
39
|
|
|
42
|
-
/* eslint-enable camelcase */
|
|
43
|
-
|
|
44
40
|
/**
|
|
45
41
|
* Message hiding, as specified by https://github.com/matrix-org/matrix-doc/pull/3531.
|
|
46
42
|
*/
|
|
@@ -724,8 +720,6 @@ export class MatrixEvent extends TypedEventEmitter {
|
|
|
724
720
|
// it is set in attemptDecryption - and hence end up with a stuck
|
|
725
721
|
// `decryptionPromise`).
|
|
726
722
|
await Promise.resolve();
|
|
727
|
-
|
|
728
|
-
// eslint-disable-next-line no-constant-condition
|
|
729
723
|
while (true) {
|
|
730
724
|
this.retryDecryption = false;
|
|
731
725
|
let err = undefined;
|