@unwanted/matrix-sdk-mini 34.12.0 → 36.0.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/git-revision.txt +1 -1
- package/lib/@types/event.d.ts +25 -19
- package/lib/@types/event.d.ts.map +1 -1
- package/lib/@types/event.js +5 -0
- package/lib/@types/event.js.map +1 -1
- package/lib/@types/global.d.js +0 -2
- package/lib/@types/global.d.js.map +1 -1
- package/lib/autodiscovery.d.ts +1 -1
- package/lib/autodiscovery.d.ts.map +1 -1
- package/lib/autodiscovery.js.map +1 -1
- package/lib/base64.d.ts +3 -6
- package/lib/base64.d.ts.map +1 -1
- package/lib/base64.js +43 -36
- package/lib/base64.js.map +1 -1
- package/lib/browser-index.d.ts.map +1 -1
- package/lib/browser-index.js +0 -11
- package/lib/browser-index.js.map +1 -1
- package/lib/client.d.ts +45 -1306
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +406 -2963
- package/lib/client.js.map +1 -1
- package/lib/digest.d.ts +2 -2
- package/lib/digest.d.ts.map +1 -1
- package/lib/digest.js +2 -2
- package/lib/digest.js.map +1 -1
- package/lib/embedded.d.ts +2 -23
- package/lib/embedded.d.ts.map +1 -1
- package/lib/embedded.js +82 -209
- package/lib/embedded.js.map +1 -1
- package/lib/event-mapper.d.ts.map +1 -1
- package/lib/event-mapper.js +0 -4
- package/lib/event-mapper.js.map +1 -1
- package/lib/feature.d.ts.map +1 -1
- package/lib/feature.js +2 -1
- package/lib/feature.js.map +1 -1
- package/lib/http-api/errors.d.ts +3 -3
- package/lib/http-api/errors.js +3 -3
- package/lib/http-api/errors.js.map +1 -1
- package/lib/http-api/utils.js +2 -2
- package/lib/http-api/utils.js.map +1 -1
- package/lib/matrix.d.ts +0 -25
- package/lib/matrix.d.ts.map +1 -1
- package/lib/matrix.js +1 -30
- package/lib/matrix.js.map +1 -1
- package/lib/models/MSC3089Branch.d.ts.map +1 -1
- package/lib/models/MSC3089Branch.js +0 -3
- package/lib/models/MSC3089Branch.js.map +1 -1
- package/lib/models/event-timeline-set.d.ts +6 -10
- package/lib/models/event-timeline-set.d.ts.map +1 -1
- package/lib/models/event-timeline-set.js +28 -36
- package/lib/models/event-timeline-set.js.map +1 -1
- package/lib/models/event-timeline.d.ts +7 -2
- package/lib/models/event-timeline.d.ts.map +1 -1
- package/lib/models/event-timeline.js +9 -30
- package/lib/models/event-timeline.js.map +1 -1
- package/lib/models/event.d.ts +12 -96
- package/lib/models/event.d.ts.map +1 -1
- package/lib/models/event.js +59 -286
- package/lib/models/event.js.map +1 -1
- package/lib/models/invites-ignorer-types.d.ts +27 -0
- package/lib/models/invites-ignorer-types.d.ts.map +1 -0
- package/lib/models/invites-ignorer-types.js +36 -0
- package/lib/models/invites-ignorer-types.js.map +1 -0
- package/lib/models/invites-ignorer.d.ts +2 -26
- package/lib/models/invites-ignorer.d.ts.map +1 -1
- package/lib/models/invites-ignorer.js +2 -27
- package/lib/models/invites-ignorer.js.map +1 -1
- package/lib/models/poll.d.ts.map +1 -1
- package/lib/models/poll.js +1 -5
- package/lib/models/poll.js.map +1 -1
- package/lib/models/relations-container.d.ts.map +1 -1
- package/lib/models/relations-container.js +1 -7
- package/lib/models/relations-container.js.map +1 -1
- package/lib/models/relations.d.ts +0 -1
- package/lib/models/relations.d.ts.map +1 -1
- package/lib/models/relations.js +0 -8
- package/lib/models/relations.js.map +1 -1
- package/lib/models/room-member.d.ts +6 -1
- package/lib/models/room-member.d.ts.map +1 -1
- package/lib/models/room-member.js +7 -1
- package/lib/models/room-member.js.map +1 -1
- package/lib/models/room-state.d.ts +2 -13
- package/lib/models/room-state.d.ts.map +1 -1
- package/lib/models/room-state.js +12 -56
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room.d.ts +8 -21
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +128 -163
- package/lib/models/room.js.map +1 -1
- package/lib/models/thread.d.ts.map +1 -1
- package/lib/models/thread.js +5 -4
- package/lib/models/thread.js.map +1 -1
- package/lib/oidc/authorize.d.ts +2 -2
- package/lib/oidc/authorize.d.ts.map +1 -1
- package/lib/oidc/authorize.js +5 -5
- package/lib/oidc/authorize.js.map +1 -1
- package/lib/oidc/discovery.d.ts +8 -0
- package/lib/oidc/discovery.d.ts.map +1 -1
- package/lib/oidc/discovery.js +22 -11
- package/lib/oidc/discovery.js.map +1 -1
- package/lib/oidc/index.d.ts +3 -4
- package/lib/oidc/index.d.ts.map +1 -1
- package/lib/oidc/index.js.map +1 -1
- package/lib/oidc/register.js +3 -3
- package/lib/oidc/register.js.map +1 -1
- package/lib/oidc/tokenRefresher.d.ts.map +1 -1
- package/lib/oidc/tokenRefresher.js +6 -5
- package/lib/oidc/tokenRefresher.js.map +1 -1
- package/lib/oidc/validate.d.ts +9 -23
- package/lib/oidc/validate.d.ts.map +1 -1
- package/lib/oidc/validate.js +13 -28
- package/lib/oidc/validate.js.map +1 -1
- package/lib/randomstring.d.ts +30 -3
- package/lib/randomstring.d.ts.map +1 -1
- package/lib/randomstring.js +68 -16
- package/lib/randomstring.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts +3 -4
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +55 -102
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sliding-sync.js +9 -6
- package/lib/sliding-sync.js.map +1 -1
- package/lib/store/indexeddb-local-backend.js +4 -2
- package/lib/store/indexeddb-local-backend.js.map +1 -1
- package/lib/store/indexeddb.d.ts +1 -1
- package/lib/store/indexeddb.d.ts.map +1 -1
- package/lib/store/indexeddb.js.map +1 -1
- package/lib/sync-accumulator.d.ts +6 -4
- package/lib/sync-accumulator.d.ts.map +1 -1
- package/lib/sync-accumulator.js +23 -12
- package/lib/sync-accumulator.js.map +1 -1
- package/lib/sync.d.ts +10 -13
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +94 -115
- package/lib/sync.js.map +1 -1
- package/lib/testing.d.ts +13 -44
- package/lib/testing.d.ts.map +1 -1
- package/lib/testing.js +36 -99
- package/lib/testing.js.map +1 -1
- package/lib/types.d.ts +0 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +14 -15
- package/src/@types/event.ts +19 -36
- package/src/@types/global.d.ts +21 -4
- package/src/autodiscovery.ts +1 -1
- package/src/base64.ts +38 -40
- package/src/browser-index.ts +0 -11
- package/src/client.ts +175 -3136
- package/src/digest.ts +3 -3
- package/src/embedded.ts +43 -149
- package/src/event-mapper.ts +0 -4
- package/src/feature.ts +1 -0
- package/src/http-api/errors.ts +3 -3
- package/src/http-api/utils.ts +2 -2
- package/src/matrix.ts +0 -41
- package/src/models/MSC3089Branch.ts +0 -3
- package/src/models/event-timeline-set.ts +17 -38
- package/src/models/event-timeline.ts +11 -26
- package/src/models/event.ts +54 -295
- package/src/models/invites-ignorer-types.ts +48 -0
- package/src/models/invites-ignorer.ts +7 -42
- package/src/models/poll.ts +0 -6
- package/src/models/relations-container.ts +1 -8
- package/src/models/relations.ts +0 -8
- package/src/models/room-member.ts +16 -1
- package/src/models/room-state.ts +4 -37
- package/src/models/room.ts +34 -69
- package/src/models/thread.ts +4 -3
- package/src/oidc/authorize.ts +7 -7
- package/src/oidc/discovery.ts +16 -10
- package/src/oidc/index.ts +3 -4
- package/src/oidc/register.ts +3 -3
- package/src/oidc/tokenRefresher.ts +3 -2
- package/src/oidc/validate.ts +40 -63
- package/src/randomstring.ts +65 -19
- package/src/sliding-sync-sdk.ts +10 -83
- package/src/sliding-sync.ts +6 -6
- package/src/store/indexeddb-local-backend.ts +2 -2
- package/src/store/indexeddb.ts +1 -1
- package/src/sync-accumulator.ts +33 -16
- package/src/sync.ts +112 -143
- package/src/testing.ts +36 -103
- package/src/types.ts +0 -1
- package/CHANGELOG.md +0 -5910
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
- package/lib/@types/crypto.d.ts +0 -47
- package/lib/@types/crypto.d.ts.map +0 -1
- package/lib/@types/crypto.js +0 -1
- package/lib/@types/crypto.js.map +0 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
- package/lib/common-crypto/CryptoBackend.d.ts +0 -240
- package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
- package/lib/common-crypto/CryptoBackend.js +0 -73
- package/lib/common-crypto/CryptoBackend.js.map +0 -1
- package/lib/common-crypto/key-passphrase.d.ts +0 -14
- package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
- package/lib/common-crypto/key-passphrase.js +0 -33
- package/lib/common-crypto/key-passphrase.js.map +0 -1
- package/lib/crypto/CrossSigning.d.ts +0 -184
- package/lib/crypto/CrossSigning.d.ts.map +0 -1
- package/lib/crypto/CrossSigning.js +0 -718
- package/lib/crypto/CrossSigning.js.map +0 -1
- package/lib/crypto/DeviceList.d.ts +0 -216
- package/lib/crypto/DeviceList.d.ts.map +0 -1
- package/lib/crypto/DeviceList.js +0 -892
- package/lib/crypto/DeviceList.js.map +0 -1
- package/lib/crypto/EncryptionSetup.d.ts +0 -152
- package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
- package/lib/crypto/EncryptionSetup.js +0 -356
- package/lib/crypto/EncryptionSetup.js.map +0 -1
- package/lib/crypto/OlmDevice.d.ts +0 -457
- package/lib/crypto/OlmDevice.d.ts.map +0 -1
- package/lib/crypto/OlmDevice.js +0 -1241
- package/lib/crypto/OlmDevice.js.map +0 -1
- package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
- package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
- package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
- package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
- package/lib/crypto/RoomList.d.ts +0 -26
- package/lib/crypto/RoomList.d.ts.map +0 -1
- package/lib/crypto/RoomList.js +0 -71
- package/lib/crypto/RoomList.js.map +0 -1
- package/lib/crypto/SecretSharing.d.ts +0 -24
- package/lib/crypto/SecretSharing.d.ts.map +0 -1
- package/lib/crypto/SecretSharing.js +0 -194
- package/lib/crypto/SecretSharing.js.map +0 -1
- package/lib/crypto/SecretStorage.d.ts +0 -55
- package/lib/crypto/SecretStorage.d.ts.map +0 -1
- package/lib/crypto/SecretStorage.js +0 -118
- package/lib/crypto/SecretStorage.js.map +0 -1
- package/lib/crypto/aes.d.ts +0 -6
- package/lib/crypto/aes.d.ts.map +0 -1
- package/lib/crypto/aes.js +0 -24
- package/lib/crypto/aes.js.map +0 -1
- package/lib/crypto/algorithms/base.d.ts +0 -156
- package/lib/crypto/algorithms/base.d.ts.map +0 -1
- package/lib/crypto/algorithms/base.js +0 -187
- package/lib/crypto/algorithms/base.js.map +0 -1
- package/lib/crypto/algorithms/index.d.ts +0 -4
- package/lib/crypto/algorithms/index.d.ts.map +0 -1
- package/lib/crypto/algorithms/index.js +0 -20
- package/lib/crypto/algorithms/index.js.map +0 -1
- package/lib/crypto/algorithms/megolm.d.ts +0 -385
- package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
- package/lib/crypto/algorithms/megolm.js +0 -1822
- package/lib/crypto/algorithms/megolm.js.map +0 -1
- package/lib/crypto/algorithms/olm.d.ts +0 -5
- package/lib/crypto/algorithms/olm.d.ts.map +0 -1
- package/lib/crypto/algorithms/olm.js +0 -299
- package/lib/crypto/algorithms/olm.js.map +0 -1
- package/lib/crypto/api.d.ts +0 -32
- package/lib/crypto/api.d.ts.map +0 -1
- package/lib/crypto/api.js +0 -22
- package/lib/crypto/api.js.map +0 -1
- package/lib/crypto/backup.d.ts +0 -227
- package/lib/crypto/backup.d.ts.map +0 -1
- package/lib/crypto/backup.js +0 -824
- package/lib/crypto/backup.js.map +0 -1
- package/lib/crypto/crypto.d.ts +0 -3
- package/lib/crypto/crypto.d.ts.map +0 -1
- package/lib/crypto/crypto.js +0 -19
- package/lib/crypto/crypto.js.map +0 -1
- package/lib/crypto/dehydration.d.ts +0 -34
- package/lib/crypto/dehydration.d.ts.map +0 -1
- package/lib/crypto/dehydration.js +0 -252
- package/lib/crypto/dehydration.js.map +0 -1
- package/lib/crypto/device-converter.d.ts +0 -9
- package/lib/crypto/device-converter.d.ts.map +0 -1
- package/lib/crypto/device-converter.js +0 -42
- package/lib/crypto/device-converter.js.map +0 -1
- package/lib/crypto/deviceinfo.d.ts +0 -99
- package/lib/crypto/deviceinfo.d.ts.map +0 -1
- package/lib/crypto/deviceinfo.js +0 -148
- package/lib/crypto/deviceinfo.js.map +0 -1
- package/lib/crypto/index.d.ts +0 -1210
- package/lib/crypto/index.d.ts.map +0 -1
- package/lib/crypto/index.js +0 -4101
- package/lib/crypto/index.js.map +0 -1
- package/lib/crypto/key_passphrase.d.ts +0 -14
- package/lib/crypto/key_passphrase.d.ts.map +0 -1
- package/lib/crypto/key_passphrase.js +0 -44
- package/lib/crypto/key_passphrase.js.map +0 -1
- package/lib/crypto/keybackup.d.ts +0 -18
- package/lib/crypto/keybackup.d.ts.map +0 -1
- package/lib/crypto/keybackup.js +0 -1
- package/lib/crypto/keybackup.js.map +0 -1
- package/lib/crypto/olmlib.d.ts +0 -129
- package/lib/crypto/olmlib.d.ts.map +0 -1
- package/lib/crypto/olmlib.js +0 -492
- package/lib/crypto/olmlib.js.map +0 -1
- package/lib/crypto/recoverykey.d.ts +0 -2
- package/lib/crypto/recoverykey.d.ts.map +0 -1
- package/lib/crypto/recoverykey.js +0 -19
- package/lib/crypto/recoverykey.js.map +0 -1
- package/lib/crypto/store/base.d.ts +0 -252
- package/lib/crypto/store/base.d.ts.map +0 -1
- package/lib/crypto/store/base.js +0 -64
- package/lib/crypto/store/base.js.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
- package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
- package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
- package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
- package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/localStorage-crypto-store.js +0 -531
- package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
- package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
- package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/memory-crypto-store.js +0 -622
- package/lib/crypto/store/memory-crypto-store.js.map +0 -1
- package/lib/crypto/verification/Base.d.ts +0 -105
- package/lib/crypto/verification/Base.d.ts.map +0 -1
- package/lib/crypto/verification/Base.js +0 -372
- package/lib/crypto/verification/Base.js.map +0 -1
- package/lib/crypto/verification/Error.d.ts +0 -35
- package/lib/crypto/verification/Error.d.ts.map +0 -1
- package/lib/crypto/verification/Error.js +0 -86
- package/lib/crypto/verification/Error.js.map +0 -1
- package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
- package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
- package/lib/crypto/verification/IllegalMethod.js +0 -43
- package/lib/crypto/verification/IllegalMethod.js.map +0 -1
- package/lib/crypto/verification/QRCode.d.ts +0 -51
- package/lib/crypto/verification/QRCode.d.ts.map +0 -1
- package/lib/crypto/verification/QRCode.js +0 -277
- package/lib/crypto/verification/QRCode.js.map +0 -1
- package/lib/crypto/verification/SAS.d.ts +0 -27
- package/lib/crypto/verification/SAS.d.ts.map +0 -1
- package/lib/crypto/verification/SAS.js +0 -485
- package/lib/crypto/verification/SAS.js.map +0 -1
- package/lib/crypto/verification/SASDecimal.d.ts +0 -8
- package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
- package/lib/crypto/verification/SASDecimal.js +0 -34
- package/lib/crypto/verification/SASDecimal.js.map +0 -1
- package/lib/crypto/verification/request/Channel.d.ts +0 -18
- package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
- package/lib/crypto/verification/request/Channel.js +0 -1
- package/lib/crypto/verification/request/Channel.js.map +0 -1
- package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
- package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
- package/lib/crypto/verification/request/InRoomChannel.js +0 -351
- package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
- package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
- package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
- package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
- package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
- package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
- package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
- package/lib/crypto/verification/request/VerificationRequest.js +0 -937
- package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
- package/lib/crypto-api/CryptoEvent.d.ts +0 -69
- package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
- package/lib/crypto-api/CryptoEvent.js +0 -33
- package/lib/crypto-api/CryptoEvent.js.map +0 -1
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
- package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
- package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
- package/lib/crypto-api/index.d.ts +0 -978
- package/lib/crypto-api/index.d.ts.map +0 -1
- package/lib/crypto-api/index.js +0 -304
- package/lib/crypto-api/index.js.map +0 -1
- package/lib/crypto-api/key-passphrase.d.ts +0 -11
- package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
- package/lib/crypto-api/key-passphrase.js +0 -51
- package/lib/crypto-api/key-passphrase.js.map +0 -1
- package/lib/crypto-api/keybackup.d.ts +0 -88
- package/lib/crypto-api/keybackup.d.ts.map +0 -1
- package/lib/crypto-api/keybackup.js +0 -1
- package/lib/crypto-api/keybackup.js.map +0 -1
- package/lib/crypto-api/recovery-key.d.ts +0 -11
- package/lib/crypto-api/recovery-key.d.ts.map +0 -1
- package/lib/crypto-api/recovery-key.js +0 -65
- package/lib/crypto-api/recovery-key.js.map +0 -1
- package/lib/crypto-api/verification.d.ts +0 -344
- package/lib/crypto-api/verification.d.ts.map +0 -1
- package/lib/crypto-api/verification.js +0 -91
- package/lib/crypto-api/verification.js.map +0 -1
- package/lib/matrixrtc/CallMembership.d.ts +0 -66
- package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
- package/lib/matrixrtc/CallMembership.js +0 -197
- package/lib/matrixrtc/CallMembership.js.map +0 -1
- package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
- package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
- package/lib/matrixrtc/LivekitFocus.js +0 -20
- package/lib/matrixrtc/LivekitFocus.js.map +0 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
- package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
- package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
- package/lib/matrixrtc/focus.d.ts +0 -10
- package/lib/matrixrtc/focus.d.ts.map +0 -1
- package/lib/matrixrtc/focus.js +0 -1
- package/lib/matrixrtc/focus.js.map +0 -1
- package/lib/matrixrtc/index.d.ts +0 -7
- package/lib/matrixrtc/index.d.ts.map +0 -1
- package/lib/matrixrtc/index.js +0 -21
- package/lib/matrixrtc/index.js.map +0 -1
- package/lib/matrixrtc/types.d.ts +0 -19
- package/lib/matrixrtc/types.d.ts.map +0 -1
- package/lib/matrixrtc/types.js +0 -1
- package/lib/matrixrtc/types.js.map +0 -1
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
- package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
- package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
- package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
- package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousChannel.js +0 -1
- package/lib/rendezvous/RendezvousChannel.js.map +0 -1
- package/lib/rendezvous/RendezvousCode.d.ts +0 -9
- package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousCode.js +0 -1
- package/lib/rendezvous/RendezvousCode.js.map +0 -1
- package/lib/rendezvous/RendezvousError.d.ts +0 -6
- package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousError.js +0 -23
- package/lib/rendezvous/RendezvousError.js.map +0 -1
- package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
- package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousFailureReason.js +0 -38
- package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
- package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
- package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousIntent.js +0 -22
- package/lib/rendezvous/RendezvousIntent.js.map +0 -1
- package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
- package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousTransport.js +0 -1
- package/lib/rendezvous/RendezvousTransport.js.map +0 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
- package/lib/rendezvous/channels/index.d.ts +0 -2
- package/lib/rendezvous/channels/index.d.ts.map +0 -1
- package/lib/rendezvous/channels/index.js +0 -18
- package/lib/rendezvous/channels/index.js.map +0 -1
- package/lib/rendezvous/index.d.ts +0 -10
- package/lib/rendezvous/index.d.ts.map +0 -1
- package/lib/rendezvous/index.js +0 -23
- package/lib/rendezvous/index.js.map +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
- package/lib/rendezvous/transports/index.d.ts +0 -2
- package/lib/rendezvous/transports/index.d.ts.map +0 -1
- package/lib/rendezvous/transports/index.js +0 -18
- package/lib/rendezvous/transports/index.js.map +0 -1
- package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
- package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
- package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
- package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
- package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
- package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
- package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
- package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
- package/lib/rust-crypto/KeyClaimManager.js +0 -82
- package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
- package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
- package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
- package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
- package/lib/rust-crypto/RoomEncryptor.js +0 -299
- package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
- package/lib/rust-crypto/backup.d.ts +0 -254
- package/lib/rust-crypto/backup.d.ts.map +0 -1
- package/lib/rust-crypto/backup.js +0 -837
- package/lib/rust-crypto/backup.js.map +0 -1
- package/lib/rust-crypto/constants.d.ts +0 -3
- package/lib/rust-crypto/constants.d.ts.map +0 -1
- package/lib/rust-crypto/constants.js +0 -19
- package/lib/rust-crypto/constants.js.map +0 -1
- package/lib/rust-crypto/device-converter.d.ts +0 -28
- package/lib/rust-crypto/device-converter.d.ts.map +0 -1
- package/lib/rust-crypto/device-converter.js +0 -123
- package/lib/rust-crypto/device-converter.js.map +0 -1
- package/lib/rust-crypto/index.d.ts +0 -61
- package/lib/rust-crypto/index.d.ts.map +0 -1
- package/lib/rust-crypto/index.js +0 -152
- package/lib/rust-crypto/index.js.map +0 -1
- package/lib/rust-crypto/libolm_migration.d.ts +0 -81
- package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
- package/lib/rust-crypto/libolm_migration.js +0 -459
- package/lib/rust-crypto/libolm_migration.js.map +0 -1
- package/lib/rust-crypto/rust-crypto.d.ts +0 -556
- package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
- package/lib/rust-crypto/rust-crypto.js +0 -2016
- package/lib/rust-crypto/rust-crypto.js.map +0 -1
- package/lib/rust-crypto/secret-storage.d.ts +0 -22
- package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
- package/lib/rust-crypto/secret-storage.js +0 -63
- package/lib/rust-crypto/secret-storage.js.map +0 -1
- package/lib/rust-crypto/verification.d.ts +0 -319
- package/lib/rust-crypto/verification.d.ts.map +0 -1
- package/lib/rust-crypto/verification.js +0 -816
- package/lib/rust-crypto/verification.js.map +0 -1
- package/lib/secret-storage.d.ts +0 -370
- package/lib/secret-storage.d.ts.map +0 -1
- package/lib/secret-storage.js +0 -466
- package/lib/secret-storage.js.map +0 -1
- package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
- package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
- package/lib/utils/decryptAESSecretStorageItem.js +0 -50
- package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
- package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
- package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
- package/lib/utils/encryptAESSecretStorageItem.js +0 -68
- package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
- package/lib/utils/internal/deriveKeys.d.ts +0 -10
- package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
- package/lib/utils/internal/deriveKeys.js +0 -60
- package/lib/utils/internal/deriveKeys.js.map +0 -1
- package/lib/webrtc/audioContext.d.ts +0 -15
- package/lib/webrtc/audioContext.d.ts.map +0 -1
- package/lib/webrtc/audioContext.js +0 -46
- package/lib/webrtc/audioContext.js.map +0 -1
- package/lib/webrtc/call.d.ts +0 -560
- package/lib/webrtc/call.d.ts.map +0 -1
- package/lib/webrtc/call.js +0 -2541
- package/lib/webrtc/call.js.map +0 -1
- package/lib/webrtc/callEventHandler.d.ts +0 -37
- package/lib/webrtc/callEventHandler.d.ts.map +0 -1
- package/lib/webrtc/callEventHandler.js +0 -344
- package/lib/webrtc/callEventHandler.js.map +0 -1
- package/lib/webrtc/callEventTypes.d.ts +0 -73
- package/lib/webrtc/callEventTypes.d.ts.map +0 -1
- package/lib/webrtc/callEventTypes.js +0 -13
- package/lib/webrtc/callEventTypes.js.map +0 -1
- package/lib/webrtc/callFeed.d.ts +0 -128
- package/lib/webrtc/callFeed.d.ts.map +0 -1
- package/lib/webrtc/callFeed.js +0 -289
- package/lib/webrtc/callFeed.js.map +0 -1
- package/lib/webrtc/groupCall.d.ts +0 -323
- package/lib/webrtc/groupCall.d.ts.map +0 -1
- package/lib/webrtc/groupCall.js +0 -1337
- package/lib/webrtc/groupCall.js.map +0 -1
- package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
- package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
- package/lib/webrtc/groupCallEventHandler.js +0 -178
- package/lib/webrtc/groupCallEventHandler.js.map +0 -1
- package/lib/webrtc/mediaHandler.d.ts +0 -89
- package/lib/webrtc/mediaHandler.d.ts.map +0 -1
- package/lib/webrtc/mediaHandler.js +0 -437
- package/lib/webrtc/mediaHandler.js.map +0 -1
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
- package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
- package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
- package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
- package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
- package/lib/webrtc/stats/connectionStats.d.ts +0 -28
- package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStats.js +0 -26
- package/lib/webrtc/stats/connectionStats.js.map +0 -1
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
- package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
- package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
- package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
- package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
- package/lib/webrtc/stats/groupCallStats.js +0 -78
- package/lib/webrtc/stats/groupCallStats.js.map +0 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
- package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
- package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
- package/lib/webrtc/stats/statsReport.d.ts +0 -99
- package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
- package/lib/webrtc/stats/statsReport.js +0 -32
- package/lib/webrtc/stats/statsReport.js.map +0 -1
- package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
- package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
- package/lib/webrtc/stats/statsReportEmitter.js +0 -33
- package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
- package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
- package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
- package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
- package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/transportStats.d.ts +0 -11
- package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
- package/lib/webrtc/stats/transportStats.js +0 -1
- package/lib/webrtc/stats/transportStats.js.map +0 -1
- package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
- package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
- package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
- package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
- package/lib/webrtc/stats/valueFormatter.js +0 -25
- package/lib/webrtc/stats/valueFormatter.js.map +0 -1
- package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
- package/src/@types/crypto.ts +0 -73
- package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
- package/src/common-crypto/CryptoBackend.ts +0 -302
- package/src/common-crypto/README.md +0 -4
- package/src/common-crypto/key-passphrase.ts +0 -43
- package/src/crypto/CrossSigning.ts +0 -773
- package/src/crypto/DeviceList.ts +0 -989
- package/src/crypto/EncryptionSetup.ts +0 -351
- package/src/crypto/OlmDevice.ts +0 -1500
- package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
- package/src/crypto/RoomList.ts +0 -70
- package/src/crypto/SecretSharing.ts +0 -240
- package/src/crypto/SecretStorage.ts +0 -136
- package/src/crypto/aes.ts +0 -23
- package/src/crypto/algorithms/base.ts +0 -236
- package/src/crypto/algorithms/index.ts +0 -20
- package/src/crypto/algorithms/megolm.ts +0 -2216
- package/src/crypto/algorithms/olm.ts +0 -381
- package/src/crypto/api.ts +0 -70
- package/src/crypto/backup.ts +0 -922
- package/src/crypto/crypto.ts +0 -18
- package/src/crypto/dehydration.ts +0 -272
- package/src/crypto/device-converter.ts +0 -45
- package/src/crypto/deviceinfo.ts +0 -158
- package/src/crypto/index.ts +0 -4418
- package/src/crypto/key_passphrase.ts +0 -42
- package/src/crypto/keybackup.ts +0 -47
- package/src/crypto/olmlib.ts +0 -539
- package/src/crypto/recoverykey.ts +0 -18
- package/src/crypto/store/base.ts +0 -348
- package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
- package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
- package/src/crypto/store/localStorage-crypto-store.ts +0 -579
- package/src/crypto/store/memory-crypto-store.ts +0 -680
- package/src/crypto/verification/Base.ts +0 -409
- package/src/crypto/verification/Error.ts +0 -76
- package/src/crypto/verification/IllegalMethod.ts +0 -50
- package/src/crypto/verification/QRCode.ts +0 -310
- package/src/crypto/verification/SAS.ts +0 -494
- package/src/crypto/verification/SASDecimal.ts +0 -37
- package/src/crypto/verification/request/Channel.ts +0 -34
- package/src/crypto/verification/request/InRoomChannel.ts +0 -371
- package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
- package/src/crypto/verification/request/VerificationRequest.ts +0 -976
- package/src/crypto-api/CryptoEvent.ts +0 -93
- package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
- package/src/crypto-api/index.ts +0 -1175
- package/src/crypto-api/key-passphrase.ts +0 -58
- package/src/crypto-api/keybackup.ts +0 -115
- package/src/crypto-api/recovery-key.ts +0 -69
- package/src/crypto-api/verification.ts +0 -408
- package/src/matrixrtc/CallMembership.ts +0 -247
- package/src/matrixrtc/LivekitFocus.ts +0 -39
- package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
- package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
- package/src/matrixrtc/focus.ts +0 -25
- package/src/matrixrtc/index.ts +0 -22
- package/src/matrixrtc/types.ts +0 -36
- package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
- package/src/rendezvous/RendezvousChannel.ts +0 -48
- package/src/rendezvous/RendezvousCode.ts +0 -25
- package/src/rendezvous/RendezvousError.ts +0 -26
- package/src/rendezvous/RendezvousFailureReason.ts +0 -49
- package/src/rendezvous/RendezvousIntent.ts +0 -20
- package/src/rendezvous/RendezvousTransport.ts +0 -58
- package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
- package/src/rendezvous/channels/index.ts +0 -17
- package/src/rendezvous/index.ts +0 -25
- package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
- package/src/rendezvous/transports/index.ts +0 -17
- package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
- package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
- package/src/rust-crypto/KeyClaimManager.ts +0 -86
- package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
- package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
- package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
- package/src/rust-crypto/RoomEncryptor.ts +0 -352
- package/src/rust-crypto/backup.ts +0 -881
- package/src/rust-crypto/constants.ts +0 -18
- package/src/rust-crypto/device-converter.ts +0 -128
- package/src/rust-crypto/index.ts +0 -237
- package/src/rust-crypto/libolm_migration.ts +0 -530
- package/src/rust-crypto/rust-crypto.ts +0 -2205
- package/src/rust-crypto/secret-storage.ts +0 -60
- package/src/rust-crypto/verification.ts +0 -830
- package/src/secret-storage.ts +0 -693
- package/src/utils/decryptAESSecretStorageItem.ts +0 -54
- package/src/utils/encryptAESSecretStorageItem.ts +0 -73
- package/src/utils/internal/deriveKeys.ts +0 -63
- package/src/webrtc/audioContext.ts +0 -44
- package/src/webrtc/call.ts +0 -3074
- package/src/webrtc/callEventHandler.ts +0 -425
- package/src/webrtc/callEventTypes.ts +0 -93
- package/src/webrtc/callFeed.ts +0 -364
- package/src/webrtc/groupCall.ts +0 -1735
- package/src/webrtc/groupCallEventHandler.ts +0 -234
- package/src/webrtc/mediaHandler.ts +0 -484
- package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
- package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
- package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
- package/src/webrtc/stats/connectionStats.ts +0 -47
- package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
- package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
- package/src/webrtc/stats/groupCallStats.ts +0 -93
- package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
- package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
- package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
- package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
- package/src/webrtc/stats/statsReport.ts +0 -133
- package/src/webrtc/stats/statsReportEmitter.ts +0 -49
- package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
- package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
- package/src/webrtc/stats/transportStats.ts +0 -26
- package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
- package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -1,680 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
|
3
|
-
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
you may not use this file except in compliance with the License.
|
6
|
-
You may obtain a copy of the License at
|
7
|
-
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
See the License for the specific language governing permissions and
|
14
|
-
limitations under the License.
|
15
|
-
*/
|
16
|
-
|
17
|
-
import { logger } from "../../logger.ts";
|
18
|
-
import { deepCompare, promiseTry, safeSet } from "../../utils.ts";
|
19
|
-
import {
|
20
|
-
CryptoStore,
|
21
|
-
IDeviceData,
|
22
|
-
IProblem,
|
23
|
-
ISession,
|
24
|
-
SessionExtended,
|
25
|
-
ISessionInfo,
|
26
|
-
IWithheld,
|
27
|
-
MigrationState,
|
28
|
-
Mode,
|
29
|
-
OutgoingRoomKeyRequest,
|
30
|
-
ParkedSharedHistory,
|
31
|
-
SecretStorePrivateKeys,
|
32
|
-
SESSION_BATCH_SIZE,
|
33
|
-
} from "./base.ts";
|
34
|
-
import { IRoomKeyRequestBody } from "../index.ts";
|
35
|
-
import { IOlmDevice } from "../algorithms/megolm.ts";
|
36
|
-
import { IRoomEncryption } from "../RoomList.ts";
|
37
|
-
import { InboundGroupSessionData } from "../OlmDevice.ts";
|
38
|
-
import { CrossSigningKeyInfo } from "../../crypto-api/index.ts";
|
39
|
-
|
40
|
-
function encodeSessionKey(senderCurve25519Key: string, sessionId: string): string {
|
41
|
-
return encodeURIComponent(senderCurve25519Key) + "/" + encodeURIComponent(sessionId);
|
42
|
-
}
|
43
|
-
|
44
|
-
function decodeSessionKey(key: string): { senderKey: string; sessionId: string } {
|
45
|
-
const keyParts = key.split("/");
|
46
|
-
const senderKey = decodeURIComponent(keyParts[0]);
|
47
|
-
const sessionId = decodeURIComponent(keyParts[1]);
|
48
|
-
return { senderKey, sessionId };
|
49
|
-
}
|
50
|
-
|
51
|
-
/**
|
52
|
-
* Internal module. in-memory storage for e2e.
|
53
|
-
*/
|
54
|
-
|
55
|
-
export class MemoryCryptoStore implements CryptoStore {
|
56
|
-
private migrationState: MigrationState = MigrationState.NOT_STARTED;
|
57
|
-
private outgoingRoomKeyRequests: OutgoingRoomKeyRequest[] = [];
|
58
|
-
private account: string | null = null;
|
59
|
-
private crossSigningKeys: Record<string, CrossSigningKeyInfo> | null = null;
|
60
|
-
private privateKeys: Partial<SecretStorePrivateKeys> = {};
|
61
|
-
|
62
|
-
private sessions: { [deviceKey: string]: { [sessionId: string]: ISessionInfo } } = {};
|
63
|
-
private sessionProblems: { [deviceKey: string]: IProblem[] } = {};
|
64
|
-
private notifiedErrorDevices: { [userId: string]: { [deviceId: string]: boolean } } = {};
|
65
|
-
private inboundGroupSessions: { [sessionKey: string]: InboundGroupSessionData } = {};
|
66
|
-
private inboundGroupSessionsWithheld: Record<string, IWithheld> = {};
|
67
|
-
// Opaque device data object
|
68
|
-
private deviceData: IDeviceData | null = null;
|
69
|
-
private rooms: { [roomId: string]: IRoomEncryption } = {};
|
70
|
-
private sessionsNeedingBackup: { [sessionKey: string]: boolean } = {};
|
71
|
-
private sharedHistoryInboundGroupSessions: { [roomId: string]: [senderKey: string, sessionId: string][] } = {};
|
72
|
-
private parkedSharedHistory = new Map<string, ParkedSharedHistory[]>(); // keyed by room ID
|
73
|
-
|
74
|
-
/**
|
75
|
-
* Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
|
76
|
-
*
|
77
|
-
* Implementation of {@link CryptoStore.containsData}.
|
78
|
-
*
|
79
|
-
* @internal
|
80
|
-
*/
|
81
|
-
public async containsData(): Promise<boolean> {
|
82
|
-
// If it contains anything, it should contain an account.
|
83
|
-
return this.account !== null;
|
84
|
-
}
|
85
|
-
|
86
|
-
/**
|
87
|
-
* Ensure the database exists and is up-to-date.
|
88
|
-
*
|
89
|
-
* This must be called before the store can be used.
|
90
|
-
*
|
91
|
-
* @returns resolves to the store.
|
92
|
-
*/
|
93
|
-
public async startup(): Promise<CryptoStore> {
|
94
|
-
// No startup work to do for the memory store.
|
95
|
-
return this;
|
96
|
-
}
|
97
|
-
|
98
|
-
/**
|
99
|
-
* Delete all data from this store.
|
100
|
-
*
|
101
|
-
* @returns Promise which resolves when the store has been cleared.
|
102
|
-
*/
|
103
|
-
public deleteAllData(): Promise<void> {
|
104
|
-
return Promise.resolve();
|
105
|
-
}
|
106
|
-
|
107
|
-
/**
|
108
|
-
* Get data on how much of the libolm to Rust Crypto migration has been done.
|
109
|
-
*
|
110
|
-
* Implementation of {@link CryptoStore.getMigrationState}.
|
111
|
-
*
|
112
|
-
* @internal
|
113
|
-
*/
|
114
|
-
public async getMigrationState(): Promise<MigrationState> {
|
115
|
-
return this.migrationState;
|
116
|
-
}
|
117
|
-
|
118
|
-
/**
|
119
|
-
* Set data on how much of the libolm to Rust Crypto migration has been done.
|
120
|
-
*
|
121
|
-
* Implementation of {@link CryptoStore.setMigrationState}.
|
122
|
-
*
|
123
|
-
* @internal
|
124
|
-
*/
|
125
|
-
public async setMigrationState(migrationState: MigrationState): Promise<void> {
|
126
|
-
this.migrationState = migrationState;
|
127
|
-
}
|
128
|
-
|
129
|
-
/**
|
130
|
-
* Look for an existing outgoing room key request, and if none is found,
|
131
|
-
* add a new one
|
132
|
-
*
|
133
|
-
*
|
134
|
-
* @returns resolves to
|
135
|
-
* {@link OutgoingRoomKeyRequest}: either the
|
136
|
-
* same instance as passed in, or the existing one.
|
137
|
-
*/
|
138
|
-
public getOrAddOutgoingRoomKeyRequest(request: OutgoingRoomKeyRequest): Promise<OutgoingRoomKeyRequest> {
|
139
|
-
const requestBody = request.requestBody;
|
140
|
-
|
141
|
-
return promiseTry(() => {
|
142
|
-
// first see if we already have an entry for this request.
|
143
|
-
const existing = this._getOutgoingRoomKeyRequest(requestBody);
|
144
|
-
|
145
|
-
if (existing) {
|
146
|
-
// this entry matches the request - return it.
|
147
|
-
logger.log(
|
148
|
-
`already have key request outstanding for ` +
|
149
|
-
`${requestBody.room_id} / ${requestBody.session_id}: ` +
|
150
|
-
`not sending another`,
|
151
|
-
);
|
152
|
-
return existing;
|
153
|
-
}
|
154
|
-
|
155
|
-
// we got to the end of the list without finding a match
|
156
|
-
// - add the new request.
|
157
|
-
logger.log(`enqueueing key request for ${requestBody.room_id} / ` + requestBody.session_id);
|
158
|
-
this.outgoingRoomKeyRequests.push(request);
|
159
|
-
return request;
|
160
|
-
});
|
161
|
-
}
|
162
|
-
|
163
|
-
/**
|
164
|
-
* Look for an existing room key request
|
165
|
-
*
|
166
|
-
* @param requestBody - existing request to look for
|
167
|
-
*
|
168
|
-
* @returns resolves to the matching
|
169
|
-
* {@link OutgoingRoomKeyRequest}, or null if
|
170
|
-
* not found
|
171
|
-
*/
|
172
|
-
public getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): Promise<OutgoingRoomKeyRequest | null> {
|
173
|
-
return Promise.resolve(this._getOutgoingRoomKeyRequest(requestBody));
|
174
|
-
}
|
175
|
-
|
176
|
-
/**
|
177
|
-
* Looks for existing room key request, and returns the result synchronously.
|
178
|
-
*
|
179
|
-
* @internal
|
180
|
-
*
|
181
|
-
* @param requestBody - existing request to look for
|
182
|
-
*
|
183
|
-
* @returns
|
184
|
-
* the matching request, or null if not found
|
185
|
-
*/
|
186
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
187
|
-
private _getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): OutgoingRoomKeyRequest | null {
|
188
|
-
for (const existing of this.outgoingRoomKeyRequests) {
|
189
|
-
if (deepCompare(existing.requestBody, requestBody)) {
|
190
|
-
return existing;
|
191
|
-
}
|
192
|
-
}
|
193
|
-
return null;
|
194
|
-
}
|
195
|
-
|
196
|
-
/**
|
197
|
-
* Look for room key requests by state
|
198
|
-
*
|
199
|
-
* @param wantedStates - list of acceptable states
|
200
|
-
*
|
201
|
-
* @returns resolves to the a
|
202
|
-
* {@link OutgoingRoomKeyRequest}, or null if
|
203
|
-
* there are no pending requests in those states
|
204
|
-
*/
|
205
|
-
public getOutgoingRoomKeyRequestByState(wantedStates: number[]): Promise<OutgoingRoomKeyRequest | null> {
|
206
|
-
for (const req of this.outgoingRoomKeyRequests) {
|
207
|
-
for (const state of wantedStates) {
|
208
|
-
if (req.state === state) {
|
209
|
-
return Promise.resolve(req);
|
210
|
-
}
|
211
|
-
}
|
212
|
-
}
|
213
|
-
return Promise.resolve(null);
|
214
|
-
}
|
215
|
-
|
216
|
-
/**
|
217
|
-
*
|
218
|
-
* @returns All OutgoingRoomKeyRequests in state
|
219
|
-
*/
|
220
|
-
public getAllOutgoingRoomKeyRequestsByState(wantedState: number): Promise<OutgoingRoomKeyRequest[]> {
|
221
|
-
return Promise.resolve(this.outgoingRoomKeyRequests.filter((r) => r.state == wantedState));
|
222
|
-
}
|
223
|
-
|
224
|
-
public getOutgoingRoomKeyRequestsByTarget(
|
225
|
-
userId: string,
|
226
|
-
deviceId: string,
|
227
|
-
wantedStates: number[],
|
228
|
-
): Promise<OutgoingRoomKeyRequest[]> {
|
229
|
-
const results: OutgoingRoomKeyRequest[] = [];
|
230
|
-
|
231
|
-
for (const req of this.outgoingRoomKeyRequests) {
|
232
|
-
for (const state of wantedStates) {
|
233
|
-
if (
|
234
|
-
req.state === state &&
|
235
|
-
req.recipients.some((recipient) => recipient.userId === userId && recipient.deviceId === deviceId)
|
236
|
-
) {
|
237
|
-
results.push(req);
|
238
|
-
}
|
239
|
-
}
|
240
|
-
}
|
241
|
-
return Promise.resolve(results);
|
242
|
-
}
|
243
|
-
|
244
|
-
/**
|
245
|
-
* Look for an existing room key request by id and state, and update it if
|
246
|
-
* found
|
247
|
-
*
|
248
|
-
* @param requestId - ID of request to update
|
249
|
-
* @param expectedState - state we expect to find the request in
|
250
|
-
* @param updates - name/value map of updates to apply
|
251
|
-
*
|
252
|
-
* @returns resolves to
|
253
|
-
* {@link OutgoingRoomKeyRequest}
|
254
|
-
* updated request, or null if no matching row was found
|
255
|
-
*/
|
256
|
-
public updateOutgoingRoomKeyRequest(
|
257
|
-
requestId: string,
|
258
|
-
expectedState: number,
|
259
|
-
updates: Partial<OutgoingRoomKeyRequest>,
|
260
|
-
): Promise<OutgoingRoomKeyRequest | null> {
|
261
|
-
for (const req of this.outgoingRoomKeyRequests) {
|
262
|
-
if (req.requestId !== requestId) {
|
263
|
-
continue;
|
264
|
-
}
|
265
|
-
|
266
|
-
if (req.state !== expectedState) {
|
267
|
-
logger.warn(
|
268
|
-
`Cannot update room key request from ${expectedState} ` +
|
269
|
-
`as it was already updated to ${req.state}`,
|
270
|
-
);
|
271
|
-
return Promise.resolve(null);
|
272
|
-
}
|
273
|
-
Object.assign(req, updates);
|
274
|
-
return Promise.resolve(req);
|
275
|
-
}
|
276
|
-
|
277
|
-
return Promise.resolve(null);
|
278
|
-
}
|
279
|
-
|
280
|
-
/**
|
281
|
-
* Look for an existing room key request by id and state, and delete it if
|
282
|
-
* found
|
283
|
-
*
|
284
|
-
* @param requestId - ID of request to update
|
285
|
-
* @param expectedState - state we expect to find the request in
|
286
|
-
*
|
287
|
-
* @returns resolves once the operation is completed
|
288
|
-
*/
|
289
|
-
public deleteOutgoingRoomKeyRequest(
|
290
|
-
requestId: string,
|
291
|
-
expectedState: number,
|
292
|
-
): Promise<OutgoingRoomKeyRequest | null> {
|
293
|
-
for (let i = 0; i < this.outgoingRoomKeyRequests.length; i++) {
|
294
|
-
const req = this.outgoingRoomKeyRequests[i];
|
295
|
-
|
296
|
-
if (req.requestId !== requestId) {
|
297
|
-
continue;
|
298
|
-
}
|
299
|
-
|
300
|
-
if (req.state != expectedState) {
|
301
|
-
logger.warn(`Cannot delete room key request in state ${req.state} ` + `(expected ${expectedState})`);
|
302
|
-
return Promise.resolve(null);
|
303
|
-
}
|
304
|
-
|
305
|
-
this.outgoingRoomKeyRequests.splice(i, 1);
|
306
|
-
return Promise.resolve(req);
|
307
|
-
}
|
308
|
-
|
309
|
-
return Promise.resolve(null);
|
310
|
-
}
|
311
|
-
|
312
|
-
// Olm Account
|
313
|
-
|
314
|
-
public getAccount(txn: unknown, func: (accountPickle: string | null) => void): void {
|
315
|
-
func(this.account);
|
316
|
-
}
|
317
|
-
|
318
|
-
public storeAccount(txn: unknown, accountPickle: string): void {
|
319
|
-
this.account = accountPickle;
|
320
|
-
}
|
321
|
-
|
322
|
-
public getCrossSigningKeys(txn: unknown, func: (keys: Record<string, CrossSigningKeyInfo> | null) => void): void {
|
323
|
-
func(this.crossSigningKeys);
|
324
|
-
}
|
325
|
-
|
326
|
-
public getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(
|
327
|
-
txn: unknown,
|
328
|
-
func: (key: SecretStorePrivateKeys[K] | null) => void,
|
329
|
-
type: K,
|
330
|
-
): void {
|
331
|
-
const result = this.privateKeys[type] as SecretStorePrivateKeys[K] | undefined;
|
332
|
-
func(result || null);
|
333
|
-
}
|
334
|
-
|
335
|
-
public storeCrossSigningKeys(txn: unknown, keys: Record<string, CrossSigningKeyInfo>): void {
|
336
|
-
this.crossSigningKeys = keys;
|
337
|
-
}
|
338
|
-
|
339
|
-
public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(
|
340
|
-
txn: unknown,
|
341
|
-
type: K,
|
342
|
-
key: SecretStorePrivateKeys[K],
|
343
|
-
): void {
|
344
|
-
this.privateKeys[type] = key;
|
345
|
-
}
|
346
|
-
|
347
|
-
// Olm Sessions
|
348
|
-
|
349
|
-
public countEndToEndSessions(txn: unknown, func: (count: number) => void): void {
|
350
|
-
let count = 0;
|
351
|
-
for (const deviceSessions of Object.values(this.sessions)) {
|
352
|
-
count += Object.keys(deviceSessions).length;
|
353
|
-
}
|
354
|
-
func(count);
|
355
|
-
}
|
356
|
-
|
357
|
-
public getEndToEndSession(
|
358
|
-
deviceKey: string,
|
359
|
-
sessionId: string,
|
360
|
-
txn: unknown,
|
361
|
-
func: (session: ISessionInfo) => void,
|
362
|
-
): void {
|
363
|
-
const deviceSessions = this.sessions[deviceKey] || {};
|
364
|
-
func(deviceSessions[sessionId] || null);
|
365
|
-
}
|
366
|
-
|
367
|
-
public getEndToEndSessions(
|
368
|
-
deviceKey: string,
|
369
|
-
txn: unknown,
|
370
|
-
func: (sessions: { [sessionId: string]: ISessionInfo }) => void,
|
371
|
-
): void {
|
372
|
-
func(this.sessions[deviceKey] || {});
|
373
|
-
}
|
374
|
-
|
375
|
-
public getAllEndToEndSessions(txn: unknown, func: (session: ISessionInfo) => void): void {
|
376
|
-
Object.entries(this.sessions).forEach(([deviceKey, deviceSessions]) => {
|
377
|
-
Object.entries(deviceSessions).forEach(([sessionId, session]) => {
|
378
|
-
func({
|
379
|
-
...session,
|
380
|
-
deviceKey,
|
381
|
-
sessionId,
|
382
|
-
});
|
383
|
-
});
|
384
|
-
});
|
385
|
-
}
|
386
|
-
|
387
|
-
public storeEndToEndSession(deviceKey: string, sessionId: string, sessionInfo: ISessionInfo, txn: unknown): void {
|
388
|
-
let deviceSessions = this.sessions[deviceKey];
|
389
|
-
if (deviceSessions === undefined) {
|
390
|
-
deviceSessions = {};
|
391
|
-
this.sessions[deviceKey] = deviceSessions;
|
392
|
-
}
|
393
|
-
safeSet(deviceSessions, sessionId, sessionInfo);
|
394
|
-
}
|
395
|
-
|
396
|
-
public async storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void> {
|
397
|
-
const problems = (this.sessionProblems[deviceKey] = this.sessionProblems[deviceKey] || []);
|
398
|
-
problems.push({ type, fixed, time: Date.now() });
|
399
|
-
problems.sort((a, b) => {
|
400
|
-
return a.time - b.time;
|
401
|
-
});
|
402
|
-
}
|
403
|
-
|
404
|
-
public async getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null> {
|
405
|
-
const problems = this.sessionProblems[deviceKey] || [];
|
406
|
-
if (!problems.length) {
|
407
|
-
return null;
|
408
|
-
}
|
409
|
-
const lastProblem = problems[problems.length - 1];
|
410
|
-
for (const problem of problems) {
|
411
|
-
if (problem.time > timestamp) {
|
412
|
-
return Object.assign({}, problem, { fixed: lastProblem.fixed });
|
413
|
-
}
|
414
|
-
}
|
415
|
-
if (lastProblem.fixed) {
|
416
|
-
return null;
|
417
|
-
} else {
|
418
|
-
return lastProblem;
|
419
|
-
}
|
420
|
-
}
|
421
|
-
|
422
|
-
public async filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]> {
|
423
|
-
const notifiedErrorDevices = this.notifiedErrorDevices;
|
424
|
-
const ret: IOlmDevice[] = [];
|
425
|
-
|
426
|
-
for (const device of devices) {
|
427
|
-
const { userId, deviceInfo } = device;
|
428
|
-
if (userId in notifiedErrorDevices) {
|
429
|
-
if (!(deviceInfo.deviceId in notifiedErrorDevices[userId])) {
|
430
|
-
ret.push(device);
|
431
|
-
safeSet(notifiedErrorDevices[userId], deviceInfo.deviceId, true);
|
432
|
-
}
|
433
|
-
} else {
|
434
|
-
ret.push(device);
|
435
|
-
safeSet(notifiedErrorDevices, userId, { [deviceInfo.deviceId]: true });
|
436
|
-
}
|
437
|
-
}
|
438
|
-
|
439
|
-
return ret;
|
440
|
-
}
|
441
|
-
|
442
|
-
/**
|
443
|
-
* Fetch a batch of Olm sessions from the database.
|
444
|
-
*
|
445
|
-
* Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
|
446
|
-
*
|
447
|
-
* @internal
|
448
|
-
*/
|
449
|
-
public async getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]> {
|
450
|
-
const result: ISessionInfo[] = [];
|
451
|
-
for (const deviceSessions of Object.values(this.sessions)) {
|
452
|
-
for (const session of Object.values(deviceSessions)) {
|
453
|
-
result.push(session);
|
454
|
-
if (result.length >= SESSION_BATCH_SIZE) {
|
455
|
-
return result;
|
456
|
-
}
|
457
|
-
}
|
458
|
-
}
|
459
|
-
|
460
|
-
if (result.length === 0) {
|
461
|
-
// No sessions left.
|
462
|
-
return null;
|
463
|
-
}
|
464
|
-
|
465
|
-
// There are fewer sessions than the batch size; return the final batch of sessions.
|
466
|
-
return result;
|
467
|
-
}
|
468
|
-
|
469
|
-
/**
|
470
|
-
* Delete a batch of Olm sessions from the database.
|
471
|
-
*
|
472
|
-
* Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
|
473
|
-
*
|
474
|
-
* @internal
|
475
|
-
*/
|
476
|
-
public async deleteEndToEndSessionsBatch(sessions: { deviceKey: string; sessionId: string }[]): Promise<void> {
|
477
|
-
for (const { deviceKey, sessionId } of sessions) {
|
478
|
-
const deviceSessions = this.sessions[deviceKey] || {};
|
479
|
-
delete deviceSessions[sessionId];
|
480
|
-
if (Object.keys(deviceSessions).length === 0) {
|
481
|
-
// No more sessions for this device.
|
482
|
-
delete this.sessions[deviceKey];
|
483
|
-
}
|
484
|
-
}
|
485
|
-
}
|
486
|
-
|
487
|
-
// Inbound Group Sessions
|
488
|
-
|
489
|
-
public getEndToEndInboundGroupSession(
|
490
|
-
senderCurve25519Key: string,
|
491
|
-
sessionId: string,
|
492
|
-
txn: unknown,
|
493
|
-
func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void,
|
494
|
-
): void {
|
495
|
-
const k = encodeSessionKey(senderCurve25519Key, sessionId);
|
496
|
-
func(this.inboundGroupSessions[k] || null, this.inboundGroupSessionsWithheld[k] || null);
|
497
|
-
}
|
498
|
-
|
499
|
-
public getAllEndToEndInboundGroupSessions(txn: unknown, func: (session: ISession | null) => void): void {
|
500
|
-
for (const key of Object.keys(this.inboundGroupSessions)) {
|
501
|
-
func({
|
502
|
-
...decodeSessionKey(key),
|
503
|
-
sessionData: this.inboundGroupSessions[key],
|
504
|
-
});
|
505
|
-
}
|
506
|
-
func(null);
|
507
|
-
}
|
508
|
-
|
509
|
-
public addEndToEndInboundGroupSession(
|
510
|
-
senderCurve25519Key: string,
|
511
|
-
sessionId: string,
|
512
|
-
sessionData: InboundGroupSessionData,
|
513
|
-
txn: unknown,
|
514
|
-
): void {
|
515
|
-
const k = encodeSessionKey(senderCurve25519Key, sessionId);
|
516
|
-
if (this.inboundGroupSessions[k] === undefined) {
|
517
|
-
this.inboundGroupSessions[k] = sessionData;
|
518
|
-
}
|
519
|
-
}
|
520
|
-
|
521
|
-
public storeEndToEndInboundGroupSession(
|
522
|
-
senderCurve25519Key: string,
|
523
|
-
sessionId: string,
|
524
|
-
sessionData: InboundGroupSessionData,
|
525
|
-
txn: unknown,
|
526
|
-
): void {
|
527
|
-
const k = encodeSessionKey(senderCurve25519Key, sessionId);
|
528
|
-
this.inboundGroupSessions[k] = sessionData;
|
529
|
-
}
|
530
|
-
|
531
|
-
public storeEndToEndInboundGroupSessionWithheld(
|
532
|
-
senderCurve25519Key: string,
|
533
|
-
sessionId: string,
|
534
|
-
sessionData: IWithheld,
|
535
|
-
txn: unknown,
|
536
|
-
): void {
|
537
|
-
const k = encodeSessionKey(senderCurve25519Key, sessionId);
|
538
|
-
this.inboundGroupSessionsWithheld[k] = sessionData;
|
539
|
-
}
|
540
|
-
|
541
|
-
/**
|
542
|
-
* Count the number of Megolm sessions in the database.
|
543
|
-
*
|
544
|
-
* Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
|
545
|
-
*
|
546
|
-
* @internal
|
547
|
-
*/
|
548
|
-
public async countEndToEndInboundGroupSessions(): Promise<number> {
|
549
|
-
return Object.keys(this.inboundGroupSessions).length;
|
550
|
-
}
|
551
|
-
|
552
|
-
/**
|
553
|
-
* Fetch a batch of Megolm sessions from the database.
|
554
|
-
*
|
555
|
-
* Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
|
556
|
-
*
|
557
|
-
* @internal
|
558
|
-
*/
|
559
|
-
public async getEndToEndInboundGroupSessionsBatch(): Promise<null | SessionExtended[]> {
|
560
|
-
const result: SessionExtended[] = [];
|
561
|
-
for (const [key, session] of Object.entries(this.inboundGroupSessions)) {
|
562
|
-
result.push({
|
563
|
-
...decodeSessionKey(key),
|
564
|
-
sessionData: session,
|
565
|
-
needsBackup: key in this.sessionsNeedingBackup,
|
566
|
-
});
|
567
|
-
if (result.length >= SESSION_BATCH_SIZE) {
|
568
|
-
return result;
|
569
|
-
}
|
570
|
-
}
|
571
|
-
|
572
|
-
if (result.length === 0) {
|
573
|
-
// No sessions left.
|
574
|
-
return null;
|
575
|
-
}
|
576
|
-
|
577
|
-
// There are fewer sessions than the batch size; return the final batch of sessions.
|
578
|
-
return result;
|
579
|
-
}
|
580
|
-
|
581
|
-
/**
|
582
|
-
* Delete a batch of Megolm sessions from the database.
|
583
|
-
*
|
584
|
-
* Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
|
585
|
-
*
|
586
|
-
* @internal
|
587
|
-
*/
|
588
|
-
public async deleteEndToEndInboundGroupSessionsBatch(
|
589
|
-
sessions: { senderKey: string; sessionId: string }[],
|
590
|
-
): Promise<void> {
|
591
|
-
for (const { senderKey, sessionId } of sessions) {
|
592
|
-
const k = encodeSessionKey(senderKey, sessionId);
|
593
|
-
delete this.inboundGroupSessions[k];
|
594
|
-
}
|
595
|
-
}
|
596
|
-
|
597
|
-
// Device Data
|
598
|
-
|
599
|
-
public getEndToEndDeviceData(txn: unknown, func: (deviceData: IDeviceData | null) => void): void {
|
600
|
-
func(this.deviceData);
|
601
|
-
}
|
602
|
-
|
603
|
-
public storeEndToEndDeviceData(deviceData: IDeviceData, txn: unknown): void {
|
604
|
-
this.deviceData = deviceData;
|
605
|
-
}
|
606
|
-
|
607
|
-
// E2E rooms
|
608
|
-
|
609
|
-
public storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: unknown): void {
|
610
|
-
this.rooms[roomId] = roomInfo;
|
611
|
-
}
|
612
|
-
|
613
|
-
public getEndToEndRooms(txn: unknown, func: (rooms: Record<string, IRoomEncryption>) => void): void {
|
614
|
-
func(this.rooms);
|
615
|
-
}
|
616
|
-
|
617
|
-
public getSessionsNeedingBackup(limit: number): Promise<ISession[]> {
|
618
|
-
const sessions: ISession[] = [];
|
619
|
-
for (const session in this.sessionsNeedingBackup) {
|
620
|
-
if (this.inboundGroupSessions[session]) {
|
621
|
-
sessions.push({
|
622
|
-
...decodeSessionKey(session),
|
623
|
-
sessionData: this.inboundGroupSessions[session],
|
624
|
-
});
|
625
|
-
if (limit && session.length >= limit) {
|
626
|
-
break;
|
627
|
-
}
|
628
|
-
}
|
629
|
-
}
|
630
|
-
return Promise.resolve(sessions);
|
631
|
-
}
|
632
|
-
|
633
|
-
public countSessionsNeedingBackup(): Promise<number> {
|
634
|
-
return Promise.resolve(Object.keys(this.sessionsNeedingBackup).length);
|
635
|
-
}
|
636
|
-
|
637
|
-
public unmarkSessionsNeedingBackup(sessions: ISession[]): Promise<void> {
|
638
|
-
for (const session of sessions) {
|
639
|
-
const sessionKey = encodeSessionKey(session.senderKey, session.sessionId);
|
640
|
-
delete this.sessionsNeedingBackup[sessionKey];
|
641
|
-
}
|
642
|
-
return Promise.resolve();
|
643
|
-
}
|
644
|
-
|
645
|
-
public markSessionsNeedingBackup(sessions: ISession[]): Promise<void> {
|
646
|
-
for (const session of sessions) {
|
647
|
-
const sessionKey = encodeSessionKey(session.senderKey, session.sessionId);
|
648
|
-
this.sessionsNeedingBackup[sessionKey] = true;
|
649
|
-
}
|
650
|
-
return Promise.resolve();
|
651
|
-
}
|
652
|
-
|
653
|
-
public addSharedHistoryInboundGroupSession(roomId: string, senderKey: string, sessionId: string): void {
|
654
|
-
const sessions = this.sharedHistoryInboundGroupSessions[roomId] || [];
|
655
|
-
sessions.push([senderKey, sessionId]);
|
656
|
-
this.sharedHistoryInboundGroupSessions[roomId] = sessions;
|
657
|
-
}
|
658
|
-
|
659
|
-
public getSharedHistoryInboundGroupSessions(roomId: string): Promise<[senderKey: string, sessionId: string][]> {
|
660
|
-
return Promise.resolve(this.sharedHistoryInboundGroupSessions[roomId] || []);
|
661
|
-
}
|
662
|
-
|
663
|
-
public addParkedSharedHistory(roomId: string, parkedData: ParkedSharedHistory): void {
|
664
|
-
const parked = this.parkedSharedHistory.get(roomId) ?? [];
|
665
|
-
parked.push(parkedData);
|
666
|
-
this.parkedSharedHistory.set(roomId, parked);
|
667
|
-
}
|
668
|
-
|
669
|
-
public takeParkedSharedHistory(roomId: string): Promise<ParkedSharedHistory[]> {
|
670
|
-
const parked = this.parkedSharedHistory.get(roomId) ?? [];
|
671
|
-
this.parkedSharedHistory.delete(roomId);
|
672
|
-
return Promise.resolve(parked);
|
673
|
-
}
|
674
|
-
|
675
|
-
// Session key backups
|
676
|
-
|
677
|
-
public doTxn<T>(mode: Mode, stores: Iterable<string>, func: (txn?: unknown) => T): Promise<T> {
|
678
|
-
return Promise.resolve(func(null));
|
679
|
-
}
|
680
|
-
}
|