@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,306 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2024 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 * as RustSdkCryptoJs from "@matrix-org/matrix-sdk-crypto-wasm";
|
18
|
-
|
19
|
-
import { OutgoingRequestProcessor } from "./OutgoingRequestProcessor.ts";
|
20
|
-
import { encodeUri } from "../utils.ts";
|
21
|
-
import { IHttpOpts, MatrixError, MatrixHttpApi, Method } from "../http-api/index.ts";
|
22
|
-
import { IToDeviceEvent } from "../sync-accumulator.ts";
|
23
|
-
import { ServerSideSecretStorage } from "../secret-storage.ts";
|
24
|
-
import { decodeBase64, encodeUnpaddedBase64 } from "../base64.ts";
|
25
|
-
import { Logger } from "../logger.ts";
|
26
|
-
|
27
|
-
/**
|
28
|
-
* The response body of `GET /_matrix/client/unstable/org.matrix.msc3814.v1/dehydrated_device`.
|
29
|
-
*/
|
30
|
-
interface DehydratedDeviceResp {
|
31
|
-
device_id: string;
|
32
|
-
device_data: {
|
33
|
-
algorithm: string;
|
34
|
-
};
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* The response body of `POST /_matrix/client/unstable/org.matrix.msc3814.v1/dehydrated_device/events`.
|
38
|
-
*/
|
39
|
-
interface DehydratedDeviceEventsResp {
|
40
|
-
events: IToDeviceEvent[];
|
41
|
-
next_batch: string;
|
42
|
-
}
|
43
|
-
|
44
|
-
/**
|
45
|
-
* The unstable URL prefix for dehydrated device endpoints
|
46
|
-
*/
|
47
|
-
export const UnstablePrefix = "/_matrix/client/unstable/org.matrix.msc3814.v1";
|
48
|
-
/**
|
49
|
-
* The name used for the dehydration key in Secret Storage
|
50
|
-
*/
|
51
|
-
const SECRET_STORAGE_NAME = "org.matrix.msc3814";
|
52
|
-
|
53
|
-
/**
|
54
|
-
* The interval between creating dehydrated devices. (one week)
|
55
|
-
*/
|
56
|
-
const DEHYDRATION_INTERVAL = 7 * 24 * 60 * 60 * 1000;
|
57
|
-
|
58
|
-
/**
|
59
|
-
* Manages dehydrated devices
|
60
|
-
*
|
61
|
-
* We have one of these per `RustCrypto`. It's responsible for
|
62
|
-
*
|
63
|
-
* * determining server support for dehydrated devices
|
64
|
-
* * creating new dehydrated devices when requested, including periodically
|
65
|
-
* replacing the dehydrated device with a new one
|
66
|
-
* * rehydrating a device when requested, and when present
|
67
|
-
*
|
68
|
-
* @internal
|
69
|
-
*/
|
70
|
-
export class DehydratedDeviceManager {
|
71
|
-
/** the secret key used for dehydrating and rehydrating */
|
72
|
-
private key?: Uint8Array;
|
73
|
-
/** the ID of the interval for periodically replacing the dehydrated device */
|
74
|
-
private intervalId?: ReturnType<typeof setInterval>;
|
75
|
-
|
76
|
-
public constructor(
|
77
|
-
private readonly logger: Logger,
|
78
|
-
private readonly olmMachine: RustSdkCryptoJs.OlmMachine,
|
79
|
-
private readonly http: MatrixHttpApi<IHttpOpts & { onlyData: true }>,
|
80
|
-
private readonly outgoingRequestProcessor: OutgoingRequestProcessor,
|
81
|
-
private readonly secretStorage: ServerSideSecretStorage,
|
82
|
-
) {}
|
83
|
-
|
84
|
-
/**
|
85
|
-
* Return whether the server supports dehydrated devices.
|
86
|
-
*/
|
87
|
-
public async isSupported(): Promise<boolean> {
|
88
|
-
// call the endpoint to get a dehydrated device. If it returns an
|
89
|
-
// M_UNRECOGNIZED error, then dehydration is unsupported. If it returns
|
90
|
-
// a successful response, or an M_NOT_FOUND, then dehydration is supported.
|
91
|
-
// Any other exceptions are passed through.
|
92
|
-
try {
|
93
|
-
await this.http.authedRequest<DehydratedDeviceResp>(
|
94
|
-
Method.Get,
|
95
|
-
"/dehydrated_device",
|
96
|
-
undefined,
|
97
|
-
undefined,
|
98
|
-
{
|
99
|
-
prefix: UnstablePrefix,
|
100
|
-
},
|
101
|
-
);
|
102
|
-
} catch (error) {
|
103
|
-
const err = error as MatrixError;
|
104
|
-
if (err.errcode === "M_UNRECOGNIZED") {
|
105
|
-
return false;
|
106
|
-
} else if (err.errcode === "M_NOT_FOUND") {
|
107
|
-
return true;
|
108
|
-
}
|
109
|
-
throw error;
|
110
|
-
}
|
111
|
-
return true;
|
112
|
-
}
|
113
|
-
|
114
|
-
/**
|
115
|
-
* Start using device dehydration.
|
116
|
-
*
|
117
|
-
* - Rehydrates a dehydrated device, if one is available.
|
118
|
-
* - Creates a new dehydration key, if necessary, and stores it in Secret
|
119
|
-
* Storage.
|
120
|
-
* - If `createNewKey` is set to true, always creates a new key.
|
121
|
-
* - If a dehydration key is not available, creates a new one.
|
122
|
-
* - Creates a new dehydrated device, and schedules periodically creating
|
123
|
-
* new dehydrated devices.
|
124
|
-
*
|
125
|
-
* @param createNewKey - whether to force creation of a new dehydration key.
|
126
|
-
* This can be used, for example, if Secret Storage is being reset.
|
127
|
-
*/
|
128
|
-
public async start(createNewKey?: boolean): Promise<void> {
|
129
|
-
this.stop();
|
130
|
-
try {
|
131
|
-
await this.rehydrateDeviceIfAvailable();
|
132
|
-
} catch (e) {
|
133
|
-
// If rehydration fails, there isn't much we can do about it. Log
|
134
|
-
// the error, and create a new device.
|
135
|
-
this.logger.info("dehydration: Error rehydrating device:", e);
|
136
|
-
}
|
137
|
-
if (createNewKey) {
|
138
|
-
await this.resetKey();
|
139
|
-
}
|
140
|
-
await this.scheduleDeviceDehydration();
|
141
|
-
}
|
142
|
-
|
143
|
-
/**
|
144
|
-
* Return whether the dehydration key is stored in Secret Storage.
|
145
|
-
*/
|
146
|
-
public async isKeyStored(): Promise<boolean> {
|
147
|
-
return Boolean(await this.secretStorage.isStored(SECRET_STORAGE_NAME));
|
148
|
-
}
|
149
|
-
|
150
|
-
/**
|
151
|
-
* Reset the dehydration key.
|
152
|
-
*
|
153
|
-
* Creates a new key and stores it in secret storage.
|
154
|
-
*/
|
155
|
-
public async resetKey(): Promise<void> {
|
156
|
-
const key = new Uint8Array(32);
|
157
|
-
globalThis.crypto.getRandomValues(key);
|
158
|
-
await this.secretStorage.store(SECRET_STORAGE_NAME, encodeUnpaddedBase64(key));
|
159
|
-
this.key = key;
|
160
|
-
}
|
161
|
-
|
162
|
-
/**
|
163
|
-
* Get and cache the encryption key from secret storage.
|
164
|
-
*
|
165
|
-
* If `create` is `true`, creates a new key if no existing key is present.
|
166
|
-
*
|
167
|
-
* @returns the key, if available, or `null` if no key is available
|
168
|
-
*/
|
169
|
-
private async getKey(create: boolean): Promise<Uint8Array | null> {
|
170
|
-
if (this.key === undefined) {
|
171
|
-
const keyB64 = await this.secretStorage.get(SECRET_STORAGE_NAME);
|
172
|
-
if (keyB64 === undefined) {
|
173
|
-
if (!create) {
|
174
|
-
return null;
|
175
|
-
}
|
176
|
-
await this.resetKey();
|
177
|
-
} else {
|
178
|
-
this.key = decodeBase64(keyB64);
|
179
|
-
}
|
180
|
-
}
|
181
|
-
return this.key!;
|
182
|
-
}
|
183
|
-
|
184
|
-
/**
|
185
|
-
* Rehydrate the dehydrated device stored on the server.
|
186
|
-
*
|
187
|
-
* Checks if there is a dehydrated device on the server. If so, rehydrates
|
188
|
-
* the device and processes the to-device events.
|
189
|
-
*
|
190
|
-
* Returns whether or not a dehydrated device was found.
|
191
|
-
*/
|
192
|
-
public async rehydrateDeviceIfAvailable(): Promise<boolean> {
|
193
|
-
const key = await this.getKey(false);
|
194
|
-
if (!key) {
|
195
|
-
return false;
|
196
|
-
}
|
197
|
-
|
198
|
-
let dehydratedDeviceResp;
|
199
|
-
try {
|
200
|
-
dehydratedDeviceResp = await this.http.authedRequest<DehydratedDeviceResp>(
|
201
|
-
Method.Get,
|
202
|
-
"/dehydrated_device",
|
203
|
-
undefined,
|
204
|
-
undefined,
|
205
|
-
{
|
206
|
-
prefix: UnstablePrefix,
|
207
|
-
},
|
208
|
-
);
|
209
|
-
} catch (error) {
|
210
|
-
const err = error as MatrixError;
|
211
|
-
// We ignore M_NOT_FOUND (there is no dehydrated device, so nothing
|
212
|
-
// us to do) and M_UNRECOGNIZED (the server does not understand the
|
213
|
-
// endpoint). We pass through any other errors.
|
214
|
-
if (err.errcode === "M_NOT_FOUND" || err.errcode === "M_UNRECOGNIZED") {
|
215
|
-
this.logger.info("dehydration: No dehydrated device");
|
216
|
-
return false;
|
217
|
-
}
|
218
|
-
throw err;
|
219
|
-
}
|
220
|
-
|
221
|
-
this.logger.info("dehydration: dehydrated device found");
|
222
|
-
|
223
|
-
const rehydratedDevice = await this.olmMachine
|
224
|
-
.dehydratedDevices()
|
225
|
-
.rehydrate(
|
226
|
-
key,
|
227
|
-
new RustSdkCryptoJs.DeviceId(dehydratedDeviceResp.device_id),
|
228
|
-
JSON.stringify(dehydratedDeviceResp.device_data),
|
229
|
-
);
|
230
|
-
|
231
|
-
this.logger.info("dehydration: device rehydrated");
|
232
|
-
|
233
|
-
let nextBatch: string | undefined = undefined;
|
234
|
-
let toDeviceCount = 0;
|
235
|
-
let roomKeyCount = 0;
|
236
|
-
const path = encodeUri("/dehydrated_device/$device_id/events", {
|
237
|
-
$device_id: dehydratedDeviceResp.device_id,
|
238
|
-
});
|
239
|
-
// eslint-disable-next-line no-constant-condition
|
240
|
-
while (true) {
|
241
|
-
const eventResp: DehydratedDeviceEventsResp = await this.http.authedRequest<DehydratedDeviceEventsResp>(
|
242
|
-
Method.Post,
|
243
|
-
path,
|
244
|
-
undefined,
|
245
|
-
nextBatch ? { next_batch: nextBatch } : {},
|
246
|
-
{
|
247
|
-
prefix: UnstablePrefix,
|
248
|
-
},
|
249
|
-
);
|
250
|
-
|
251
|
-
if (eventResp.events.length === 0) {
|
252
|
-
break;
|
253
|
-
}
|
254
|
-
toDeviceCount += eventResp.events.length;
|
255
|
-
nextBatch = eventResp.next_batch;
|
256
|
-
const roomKeyInfos = await rehydratedDevice.receiveEvents(JSON.stringify(eventResp.events));
|
257
|
-
roomKeyCount += roomKeyInfos.length;
|
258
|
-
}
|
259
|
-
this.logger.info(`dehydration: received ${roomKeyCount} room keys from ${toDeviceCount} to-device events`);
|
260
|
-
|
261
|
-
return true;
|
262
|
-
}
|
263
|
-
|
264
|
-
/**
|
265
|
-
* Creates and uploads a new dehydrated device.
|
266
|
-
*
|
267
|
-
* Creates and stores a new key in secret storage if none is available.
|
268
|
-
*/
|
269
|
-
public async createAndUploadDehydratedDevice(): Promise<void> {
|
270
|
-
const key = (await this.getKey(true))!;
|
271
|
-
|
272
|
-
const dehydratedDevice = await this.olmMachine.dehydratedDevices().create();
|
273
|
-
const request = await dehydratedDevice.keysForUpload("Dehydrated device", key);
|
274
|
-
|
275
|
-
await this.outgoingRequestProcessor.makeOutgoingRequest(request);
|
276
|
-
|
277
|
-
this.logger.info("dehydration: uploaded device");
|
278
|
-
}
|
279
|
-
|
280
|
-
/**
|
281
|
-
* Schedule periodic creation of dehydrated devices.
|
282
|
-
*/
|
283
|
-
public async scheduleDeviceDehydration(): Promise<void> {
|
284
|
-
// cancel any previously-scheduled tasks
|
285
|
-
this.stop();
|
286
|
-
|
287
|
-
await this.createAndUploadDehydratedDevice();
|
288
|
-
this.intervalId = setInterval(() => {
|
289
|
-
this.createAndUploadDehydratedDevice().catch((error) => {
|
290
|
-
this.logger.error("Error creating dehydrated device:", error);
|
291
|
-
});
|
292
|
-
}, DEHYDRATION_INTERVAL);
|
293
|
-
}
|
294
|
-
|
295
|
-
/**
|
296
|
-
* Stop the dehydrated device manager.
|
297
|
-
*
|
298
|
-
* Cancels any scheduled dehydration tasks.
|
299
|
-
*/
|
300
|
-
public stop(): void {
|
301
|
-
if (this.intervalId) {
|
302
|
-
clearInterval(this.intervalId);
|
303
|
-
this.intervalId = undefined;
|
304
|
-
}
|
305
|
-
}
|
306
|
-
}
|
@@ -1,86 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2023 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 { OlmMachine, UserId } from "@matrix-org/matrix-sdk-crypto-wasm";
|
18
|
-
|
19
|
-
import { OutgoingRequestProcessor } from "./OutgoingRequestProcessor.ts";
|
20
|
-
import { LogSpan } from "../logger.ts";
|
21
|
-
|
22
|
-
/**
|
23
|
-
* KeyClaimManager: linearises calls to OlmMachine.getMissingSessions to avoid races
|
24
|
-
*
|
25
|
-
* We have one of these per `RustCrypto` (and hence per `MatrixClient`).
|
26
|
-
*
|
27
|
-
* @internal
|
28
|
-
*/
|
29
|
-
export class KeyClaimManager {
|
30
|
-
private currentClaimPromise: Promise<void>;
|
31
|
-
private stopped = false;
|
32
|
-
|
33
|
-
public constructor(
|
34
|
-
private readonly olmMachine: OlmMachine,
|
35
|
-
private readonly outgoingRequestProcessor: OutgoingRequestProcessor,
|
36
|
-
) {
|
37
|
-
this.currentClaimPromise = Promise.resolve();
|
38
|
-
}
|
39
|
-
|
40
|
-
/**
|
41
|
-
* Tell the KeyClaimManager to immediately stop processing requests.
|
42
|
-
*
|
43
|
-
* Any further calls, and any still in the queue, will fail with an error.
|
44
|
-
*/
|
45
|
-
public stop(): void {
|
46
|
-
this.stopped = true;
|
47
|
-
}
|
48
|
-
|
49
|
-
/**
|
50
|
-
* Given a list of users, attempt to ensure that we have Olm Sessions active with each of their devices
|
51
|
-
*
|
52
|
-
* If we don't have an active olm session, we will claim a one-time key and start one.
|
53
|
-
* @param logger - logger to use
|
54
|
-
* @param userList - list of userIDs to claim
|
55
|
-
*/
|
56
|
-
public ensureSessionsForUsers(logger: LogSpan, userList: Array<UserId>): Promise<void> {
|
57
|
-
// The Rust-SDK requires that we only have one getMissingSessions process in flight at once. This little dance
|
58
|
-
// ensures that, by only having one call to ensureSessionsForUsersInner active at once (and making them
|
59
|
-
// queue up in order).
|
60
|
-
const prom = this.currentClaimPromise
|
61
|
-
.catch(() => {
|
62
|
-
// any errors in the previous claim will have been reported already, so there is nothing to do here.
|
63
|
-
// we just throw away the error and start anew.
|
64
|
-
})
|
65
|
-
.then(() => this.ensureSessionsForUsersInner(logger, userList));
|
66
|
-
this.currentClaimPromise = prom;
|
67
|
-
return prom;
|
68
|
-
}
|
69
|
-
|
70
|
-
private async ensureSessionsForUsersInner(logger: LogSpan, userList: Array<UserId>): Promise<void> {
|
71
|
-
// bail out quickly if we've been stopped.
|
72
|
-
if (this.stopped) {
|
73
|
-
throw new Error(`Cannot ensure Olm sessions: shutting down`);
|
74
|
-
}
|
75
|
-
logger.info("Checking for missing Olm sessions");
|
76
|
-
// By passing the userId array to rust we transfer ownership of the items to rust, causing
|
77
|
-
// them to be invalidated on the JS side as soon as the method is called.
|
78
|
-
// As we haven't created the `userList` let's clone the users, to not break the caller from re-using it.
|
79
|
-
const claimRequest = await this.olmMachine.getMissingSessions(userList.map((u) => u.clone()));
|
80
|
-
if (claimRequest) {
|
81
|
-
logger.info("Making /keys/claim request");
|
82
|
-
await this.outgoingRequestProcessor.makeOutgoingRequest(claimRequest);
|
83
|
-
}
|
84
|
-
logger.info("Olm sessions prepared");
|
85
|
-
}
|
86
|
-
}
|
@@ -1,236 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright 2023 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 {
|
18
|
-
KeysBackupRequest,
|
19
|
-
KeysClaimRequest,
|
20
|
-
KeysQueryRequest,
|
21
|
-
KeysUploadRequest,
|
22
|
-
OlmMachine,
|
23
|
-
PutDehydratedDeviceRequest,
|
24
|
-
RoomMessageRequest,
|
25
|
-
SignatureUploadRequest,
|
26
|
-
ToDeviceRequest,
|
27
|
-
UploadSigningKeysRequest,
|
28
|
-
} from "@matrix-org/matrix-sdk-crypto-wasm";
|
29
|
-
|
30
|
-
import { logger } from "../logger.ts";
|
31
|
-
import { calculateRetryBackoff, IHttpOpts, MatrixHttpApi, Method } from "../http-api/index.ts";
|
32
|
-
import { logDuration, QueryDict, sleep } from "../utils.ts";
|
33
|
-
import { AuthDict, UIAuthCallback } from "../interactive-auth.ts";
|
34
|
-
import { UIAResponse } from "../@types/uia.ts";
|
35
|
-
import { ToDeviceMessageId } from "../@types/event.ts";
|
36
|
-
import { UnstablePrefix as DehydrationUnstablePrefix } from "./DehydratedDeviceManager.ts";
|
37
|
-
|
38
|
-
/**
|
39
|
-
* Common interface for all the request types returned by `OlmMachine.outgoingRequests`.
|
40
|
-
*
|
41
|
-
* @internal
|
42
|
-
*/
|
43
|
-
export interface OutgoingRequest {
|
44
|
-
readonly id: string | undefined;
|
45
|
-
readonly type: number;
|
46
|
-
}
|
47
|
-
|
48
|
-
/**
|
49
|
-
* OutgoingRequestManager: turns `OutgoingRequest`s from the rust sdk into HTTP requests
|
50
|
-
*
|
51
|
-
* We have one of these per `RustCrypto` (and hence per `MatrixClient`), not that it does anything terribly complicated.
|
52
|
-
* It's responsible for:
|
53
|
-
*
|
54
|
-
* * holding the reference to the `MatrixHttpApi`
|
55
|
-
* * turning `OutgoingRequest`s from the rust backend into HTTP requests, and sending them
|
56
|
-
* * sending the results of such requests back to the rust backend.
|
57
|
-
*
|
58
|
-
* @internal
|
59
|
-
*/
|
60
|
-
export class OutgoingRequestProcessor {
|
61
|
-
public constructor(
|
62
|
-
private readonly olmMachine: OlmMachine,
|
63
|
-
private readonly http: MatrixHttpApi<IHttpOpts & { onlyData: true }>,
|
64
|
-
) {}
|
65
|
-
|
66
|
-
public async makeOutgoingRequest<T>(
|
67
|
-
msg: OutgoingRequest | UploadSigningKeysRequest | PutDehydratedDeviceRequest,
|
68
|
-
uiaCallback?: UIAuthCallback<T>,
|
69
|
-
): Promise<void> {
|
70
|
-
let resp: string;
|
71
|
-
|
72
|
-
/* refer https://docs.rs/matrix-sdk-crypto/0.6.0/matrix_sdk_crypto/requests/enum.OutgoingRequests.html
|
73
|
-
* for the complete list of request types
|
74
|
-
*/
|
75
|
-
if (msg instanceof KeysUploadRequest) {
|
76
|
-
resp = await this.requestWithRetry(Method.Post, "/_matrix/client/v3/keys/upload", {}, msg.body);
|
77
|
-
} else if (msg instanceof KeysQueryRequest) {
|
78
|
-
resp = await this.requestWithRetry(Method.Post, "/_matrix/client/v3/keys/query", {}, msg.body);
|
79
|
-
} else if (msg instanceof KeysClaimRequest) {
|
80
|
-
resp = await this.requestWithRetry(Method.Post, "/_matrix/client/v3/keys/claim", {}, msg.body);
|
81
|
-
} else if (msg instanceof SignatureUploadRequest) {
|
82
|
-
resp = await this.requestWithRetry(Method.Post, "/_matrix/client/v3/keys/signatures/upload", {}, msg.body);
|
83
|
-
} else if (msg instanceof KeysBackupRequest) {
|
84
|
-
resp = await this.requestWithRetry(
|
85
|
-
Method.Put,
|
86
|
-
"/_matrix/client/v3/room_keys/keys",
|
87
|
-
{ version: msg.version },
|
88
|
-
msg.body,
|
89
|
-
);
|
90
|
-
} else if (msg instanceof ToDeviceRequest) {
|
91
|
-
resp = await this.sendToDeviceRequest(msg);
|
92
|
-
} else if (msg instanceof RoomMessageRequest) {
|
93
|
-
const path =
|
94
|
-
`/_matrix/client/v3/rooms/${encodeURIComponent(msg.room_id)}/send/` +
|
95
|
-
`${encodeURIComponent(msg.event_type)}/${encodeURIComponent(msg.txn_id)}`;
|
96
|
-
resp = await this.requestWithRetry(Method.Put, path, {}, msg.body);
|
97
|
-
} else if (msg instanceof UploadSigningKeysRequest) {
|
98
|
-
await this.makeRequestWithUIA(
|
99
|
-
Method.Post,
|
100
|
-
"/_matrix/client/v3/keys/device_signing/upload",
|
101
|
-
{},
|
102
|
-
msg.body,
|
103
|
-
uiaCallback,
|
104
|
-
);
|
105
|
-
// SigningKeysUploadRequest does not implement OutgoingRequest and does not need to be marked as sent.
|
106
|
-
return;
|
107
|
-
} else if (msg instanceof PutDehydratedDeviceRequest) {
|
108
|
-
const path = DehydrationUnstablePrefix + "/dehydrated_device";
|
109
|
-
await this.rawJsonRequest(Method.Put, path, {}, msg.body);
|
110
|
-
// PutDehydratedDeviceRequest does not implement OutgoingRequest and does not need to be marked as sent.
|
111
|
-
return;
|
112
|
-
} else {
|
113
|
-
logger.warn("Unsupported outgoing message", Object.getPrototypeOf(msg));
|
114
|
-
resp = "";
|
115
|
-
}
|
116
|
-
|
117
|
-
if (msg.id) {
|
118
|
-
try {
|
119
|
-
await logDuration(logger, `Mark Request as sent ${msg.type}`, async () => {
|
120
|
-
await this.olmMachine.markRequestAsSent(msg.id!, msg.type, resp);
|
121
|
-
});
|
122
|
-
} catch (e) {
|
123
|
-
// Ignore errors which are caused by the olmMachine having been freed. The exact error message depends
|
124
|
-
// on whether we are using a release or develop build of rust-sdk-crypto-wasm.
|
125
|
-
if (
|
126
|
-
e instanceof Error &&
|
127
|
-
(e.message === "Attempt to use a moved value" || e.message === "null pointer passed to rust")
|
128
|
-
) {
|
129
|
-
logger.log(`Ignoring error '${e.message}': client is likely shutting down`);
|
130
|
-
} else {
|
131
|
-
throw e;
|
132
|
-
}
|
133
|
-
}
|
134
|
-
} else {
|
135
|
-
logger.trace(`Outgoing request type:${msg.type} does not have an ID`);
|
136
|
-
}
|
137
|
-
}
|
138
|
-
|
139
|
-
/**
|
140
|
-
* Send the HTTP request for a `ToDeviceRequest`
|
141
|
-
*
|
142
|
-
* @param request - request to send
|
143
|
-
* @returns JSON-serialized body of the response, if successful
|
144
|
-
*/
|
145
|
-
private async sendToDeviceRequest(request: ToDeviceRequest): Promise<string> {
|
146
|
-
// a bit of extra logging, to help trace to-device messages through the system
|
147
|
-
const parsedBody: { messages: Record<string, Record<string, Record<string, any>>> } = JSON.parse(request.body);
|
148
|
-
|
149
|
-
const messageList = [];
|
150
|
-
for (const [userId, perUserMessages] of Object.entries(parsedBody.messages)) {
|
151
|
-
for (const [deviceId, message] of Object.entries(perUserMessages)) {
|
152
|
-
messageList.push(`${userId}/${deviceId} (msgid ${message[ToDeviceMessageId]})`);
|
153
|
-
}
|
154
|
-
}
|
155
|
-
|
156
|
-
logger.info(
|
157
|
-
`Sending batch of to-device messages. type=${request.event_type} txnid=${request.txn_id}`,
|
158
|
-
messageList,
|
159
|
-
);
|
160
|
-
|
161
|
-
const path =
|
162
|
-
`/_matrix/client/v3/sendToDevice/${encodeURIComponent(request.event_type)}/` +
|
163
|
-
encodeURIComponent(request.txn_id);
|
164
|
-
return await this.requestWithRetry(Method.Put, path, {}, request.body);
|
165
|
-
}
|
166
|
-
|
167
|
-
private async makeRequestWithUIA<T>(
|
168
|
-
method: Method,
|
169
|
-
path: string,
|
170
|
-
queryParams: QueryDict,
|
171
|
-
body: string,
|
172
|
-
uiaCallback: UIAuthCallback<T> | undefined,
|
173
|
-
): Promise<string> {
|
174
|
-
if (!uiaCallback) {
|
175
|
-
return await this.requestWithRetry(method, path, queryParams, body);
|
176
|
-
}
|
177
|
-
|
178
|
-
const parsedBody = JSON.parse(body);
|
179
|
-
const makeRequest = async (auth: AuthDict | null): Promise<UIAResponse<T>> => {
|
180
|
-
const newBody: Record<string, any> = {
|
181
|
-
...parsedBody,
|
182
|
-
};
|
183
|
-
if (auth !== null) {
|
184
|
-
newBody.auth = auth;
|
185
|
-
}
|
186
|
-
const resp = await this.requestWithRetry(method, path, queryParams, JSON.stringify(newBody));
|
187
|
-
return JSON.parse(resp) as T;
|
188
|
-
};
|
189
|
-
|
190
|
-
const resp = await uiaCallback(makeRequest);
|
191
|
-
return JSON.stringify(resp);
|
192
|
-
}
|
193
|
-
|
194
|
-
private async requestWithRetry(
|
195
|
-
method: Method,
|
196
|
-
path: string,
|
197
|
-
queryParams: QueryDict,
|
198
|
-
body: string,
|
199
|
-
): Promise<string> {
|
200
|
-
let currentRetryCount = 0;
|
201
|
-
|
202
|
-
// eslint-disable-next-line no-constant-condition
|
203
|
-
while (true) {
|
204
|
-
try {
|
205
|
-
return await this.rawJsonRequest(method, path, queryParams, body);
|
206
|
-
} catch (e) {
|
207
|
-
currentRetryCount++;
|
208
|
-
const backoff = calculateRetryBackoff(e, currentRetryCount, true);
|
209
|
-
if (backoff < 0) {
|
210
|
-
// Max number of retries reached, or error is not retryable. rethrow the error
|
211
|
-
throw e;
|
212
|
-
}
|
213
|
-
// wait for the specified time and then retry the request
|
214
|
-
await sleep(backoff);
|
215
|
-
}
|
216
|
-
}
|
217
|
-
}
|
218
|
-
|
219
|
-
private async rawJsonRequest(method: Method, path: string, queryParams: QueryDict, body: string): Promise<string> {
|
220
|
-
const opts = {
|
221
|
-
// inhibit the JSON stringification and parsing within HttpApi.
|
222
|
-
json: false,
|
223
|
-
|
224
|
-
// nevertheless, we are sending, and accept, JSON.
|
225
|
-
headers: {
|
226
|
-
"Content-Type": "application/json",
|
227
|
-
"Accept": "application/json",
|
228
|
-
},
|
229
|
-
|
230
|
-
// we use the full prefix
|
231
|
-
prefix: "",
|
232
|
-
};
|
233
|
-
|
234
|
-
return await this.http.authedRequest<string>(method, path, queryParams, body, opts);
|
235
|
-
}
|
236
|
-
}
|