@unwanted/matrix-sdk-mini 34.12.0-2 → 34.12.0-3
Sign up to get free protection for your applications and to get access to all the features.
- package/git-revision.txt +1 -1
- package/lib/@types/global.d.js +0 -2
- package/lib/@types/global.d.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 +2 -1176
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +346 -2717
- package/lib/client.js.map +1 -1
- package/lib/embedded.d.ts +0 -22
- package/lib/embedded.d.ts.map +1 -1
- package/lib/embedded.js +24 -166
- 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/matrix.d.ts +0 -19
- package/lib/matrix.d.ts.map +1 -1
- package/lib/matrix.js +1 -26
- 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.d.ts +0 -94
- package/lib/models/event.d.ts.map +1 -1
- package/lib/models/event.js +0 -274
- package/lib/models/event.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-state.d.ts.map +1 -1
- package/lib/models/room-state.js +10 -26
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room.d.ts +0 -18
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +94 -148
- package/lib/models/room.js.map +1 -1
- package/lib/models/thread.d.ts.map +1 -1
- package/lib/models/thread.js +0 -1
- package/lib/models/thread.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts +2 -3
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +41 -90
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sync.d.ts +0 -12
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +1 -73
- package/lib/sync.js.map +1 -1
- package/lib/testing.d.ts +0 -48
- package/lib/testing.d.ts.map +1 -1
- package/lib/testing.js +0 -105
- package/lib/testing.js.map +1 -1
- package/package.json +1 -3
- package/src/@types/global.d.ts +0 -3
- package/src/browser-index.ts +0 -11
- package/src/client.ts +57 -2732
- package/src/embedded.ts +3 -130
- package/src/event-mapper.ts +0 -4
- package/src/matrix.ts +0 -28
- package/src/models/MSC3089Branch.ts +0 -3
- package/src/models/event.ts +0 -289
- 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-state.ts +2 -8
- package/src/models/room.ts +0 -62
- package/src/models/thread.ts +0 -1
- package/src/sliding-sync-sdk.ts +2 -72
- package/src/sync.ts +1 -98
- package/src/testing.ts +0 -108
- 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 -1209
- package/lib/crypto/index.d.ts.map +0 -1
- package/lib/crypto/index.js +0 -4097
- 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/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/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 -4414
- 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/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/embedded.ts
CHANGED
@@ -30,14 +30,14 @@ import {
|
|
30
30
|
IWidgetApiResponseData,
|
31
31
|
} from "matrix-widget-api";
|
32
32
|
|
33
|
-
import { MatrixEvent, IEvent, IContent
|
33
|
+
import { MatrixEvent, IEvent, IContent } from "./models/event.ts";
|
34
34
|
import {
|
35
35
|
ISendEventResponse,
|
36
36
|
SendDelayedEventRequestOpts,
|
37
37
|
SendDelayedEventResponse,
|
38
38
|
UpdateDelayedEventAction,
|
39
39
|
} from "./@types/requests.ts";
|
40
|
-
import {
|
40
|
+
import { StateEvents } from "./@types/event.ts";
|
41
41
|
import { logger } from "./logger.ts";
|
42
42
|
import {
|
43
43
|
MatrixClient,
|
@@ -54,8 +54,6 @@ import { MatrixError } from "./http-api/errors.ts";
|
|
54
54
|
import { User } from "./models/user.ts";
|
55
55
|
import { Room } from "./models/room.ts";
|
56
56
|
import { ToDeviceBatch, ToDevicePayload } from "./models/ToDeviceMessage.ts";
|
57
|
-
import { DeviceInfo } from "./crypto/deviceinfo.ts";
|
58
|
-
import { IOlmDevice } from "./crypto/algorithms/megolm.ts";
|
59
57
|
import { MapWithDefault, recursiveMapToObject } from "./utils.ts";
|
60
58
|
import { TypedEventEmitter } from "./matrix.ts";
|
61
59
|
|
@@ -266,7 +264,7 @@ export class RoomWidgetClient extends MatrixClient {
|
|
266
264
|
// still has some valuable helper methods that we make use of, so we
|
267
265
|
// instantiate it anyways
|
268
266
|
if (opts.slidingSync) {
|
269
|
-
this.syncApi = new SlidingSyncSdk(opts.slidingSync, this, opts
|
267
|
+
this.syncApi = new SlidingSyncSdk(opts.slidingSync, this, opts);
|
270
268
|
} else {
|
271
269
|
this.syncApi = new SyncApi(this, opts, this.buildSyncApiOptions());
|
272
270
|
}
|
@@ -301,9 +299,6 @@ export class RoomWidgetClient extends MatrixClient {
|
|
301
299
|
|
302
300
|
this.setSyncState(SyncState.Syncing);
|
303
301
|
logger.info("Finished backfilling events");
|
304
|
-
|
305
|
-
// Watch for TURN servers, if requested
|
306
|
-
if (this.capabilities.turnServers) this.watchTurnServers();
|
307
302
|
}
|
308
303
|
|
309
304
|
public stopClient(): void {
|
@@ -319,60 +314,6 @@ export class RoomWidgetClient extends MatrixClient {
|
|
319
314
|
throw new Error(`Unknown room: ${roomIdOrAlias}`);
|
320
315
|
}
|
321
316
|
|
322
|
-
protected async encryptAndSendEvent(room: Room, event: MatrixEvent): Promise<ISendEventResponse>;
|
323
|
-
protected async encryptAndSendEvent(
|
324
|
-
room: Room,
|
325
|
-
event: MatrixEvent,
|
326
|
-
delayOpts: SendDelayedEventRequestOpts,
|
327
|
-
): Promise<SendDelayedEventResponse>;
|
328
|
-
protected async encryptAndSendEvent(
|
329
|
-
room: Room,
|
330
|
-
event: MatrixEvent,
|
331
|
-
delayOpts?: SendDelayedEventRequestOpts,
|
332
|
-
): Promise<ISendEventResponse | SendDelayedEventResponse> {
|
333
|
-
// We need to extend the content with the redacts parameter
|
334
|
-
// The js sdk uses event.redacts but the widget api uses event.content.redacts
|
335
|
-
// This will be converted back to event.redacts in the widget driver.
|
336
|
-
const content = event.event.redacts
|
337
|
-
? { ...event.getContent(), redacts: event.event.redacts }
|
338
|
-
: event.getContent();
|
339
|
-
|
340
|
-
// Delayed event special case.
|
341
|
-
if (delayOpts) {
|
342
|
-
// TODO: updatePendingEvent for delayed events?
|
343
|
-
const response = await this.widgetApi.sendRoomEvent(
|
344
|
-
event.getType(),
|
345
|
-
content,
|
346
|
-
room.roomId,
|
347
|
-
"delay" in delayOpts ? delayOpts.delay : undefined,
|
348
|
-
"parent_delay_id" in delayOpts ? delayOpts.parent_delay_id : undefined,
|
349
|
-
);
|
350
|
-
return this.validateSendDelayedEventResponse(response);
|
351
|
-
}
|
352
|
-
|
353
|
-
const txId = event.getTxnId();
|
354
|
-
// Add the txnId to the pending list (still with unknown evID)
|
355
|
-
if (txId) this.pendingSendingEventsTxId.push({ type: event.getType(), id: undefined, txId });
|
356
|
-
|
357
|
-
let response: ISendEventFromWidgetResponseData;
|
358
|
-
try {
|
359
|
-
response = await this.widgetApi.sendRoomEvent(event.getType(), content, room.roomId);
|
360
|
-
} catch (e) {
|
361
|
-
this.updatePendingEventStatus(room, event, EventStatus.NOT_SENT);
|
362
|
-
throw e;
|
363
|
-
}
|
364
|
-
// This also checks for an event id on the response
|
365
|
-
room.updatePendingEvent(event, EventStatus.SENT, response.event_id);
|
366
|
-
|
367
|
-
// Update the pending events list with the eventId
|
368
|
-
this.pendingSendingEventsTxId.forEach((p) => {
|
369
|
-
if (p.txId === txId) p.id = response.event_id;
|
370
|
-
});
|
371
|
-
this.eventEmitter.emit(RoomWidgetClientEvent.PendingEventsChanged);
|
372
|
-
|
373
|
-
return { event_id: response.event_id! };
|
374
|
-
}
|
375
|
-
|
376
317
|
public async sendStateEvent(
|
377
318
|
roomId: string,
|
378
319
|
eventType: string,
|
@@ -458,46 +399,6 @@ export class RoomWidgetClient extends MatrixClient {
|
|
458
399
|
await this.widgetApi.sendToDevice(eventType, false, recursiveMapToObject(contentMap));
|
459
400
|
}
|
460
401
|
|
461
|
-
public async encryptAndSendToDevices(userDeviceInfoArr: IOlmDevice<DeviceInfo>[], payload: object): Promise<void> {
|
462
|
-
// map: user Id → device Id → payload
|
463
|
-
const contentMap: MapWithDefault<string, Map<string, object>> = new MapWithDefault(() => new Map());
|
464
|
-
for (const {
|
465
|
-
userId,
|
466
|
-
deviceInfo: { deviceId },
|
467
|
-
} of userDeviceInfoArr) {
|
468
|
-
contentMap.getOrCreate(userId).set(deviceId, payload);
|
469
|
-
}
|
470
|
-
|
471
|
-
await this.widgetApi.sendToDevice((payload as { type: string }).type, true, recursiveMapToObject(contentMap));
|
472
|
-
}
|
473
|
-
|
474
|
-
/**
|
475
|
-
* Send an event to a specific list of devices via the widget API. Optionally encrypts the event.
|
476
|
-
*
|
477
|
-
* If you are using a full MatrixClient you would be calling {@link MatrixClient.getCrypto().encryptToDeviceMessages()} followed
|
478
|
-
* by {@link MatrixClient.queueToDevice}.
|
479
|
-
*
|
480
|
-
* However, this is combined into a single step when running as an embedded widget client. So, we expose this method for those
|
481
|
-
* that need it.
|
482
|
-
*
|
483
|
-
* @param eventType - Type of the event to send.
|
484
|
-
* @param encrypted - Whether the event should be encrypted.
|
485
|
-
* @param contentMap - The content to send. Map from user_id to device_id to content object.
|
486
|
-
*/
|
487
|
-
public async sendToDeviceViaWidgetApi(
|
488
|
-
eventType: string,
|
489
|
-
encrypted: boolean,
|
490
|
-
contentMap: SendToDeviceContentMap,
|
491
|
-
): Promise<void> {
|
492
|
-
await this.widgetApi.sendToDevice(eventType, encrypted, recursiveMapToObject(contentMap));
|
493
|
-
}
|
494
|
-
|
495
|
-
// Overridden since we get TURN servers automatically over the widget API,
|
496
|
-
// and this method would otherwise complain about missing an access token
|
497
|
-
public async checkTurnServers(): Promise<boolean> {
|
498
|
-
return this.turnServers.length > 0;
|
499
|
-
}
|
500
|
-
|
501
402
|
// Overridden since we 'sync' manually without the sync API
|
502
403
|
public getSyncState(): SyncState | null {
|
503
404
|
return this.syncState;
|
@@ -585,39 +486,11 @@ export class RoomWidgetClient extends MatrixClient {
|
|
585
486
|
sender: ev.detail.data.sender,
|
586
487
|
content: ev.detail.data.content as IContent,
|
587
488
|
});
|
588
|
-
// Mark the event as encrypted if it was, using fake contents and keys since those are unknown to us
|
589
|
-
if (ev.detail.data.encrypted) event.makeEncrypted(EventType.RoomMessageEncrypted, {}, "", "");
|
590
489
|
|
591
490
|
this.emit(ClientEvent.ToDeviceEvent, event);
|
592
491
|
this.setSyncState(SyncState.Syncing);
|
593
492
|
await this.ack(ev);
|
594
493
|
};
|
595
|
-
|
596
|
-
private async watchTurnServers(): Promise<void> {
|
597
|
-
const servers = this.widgetApi.getTurnServers();
|
598
|
-
const onClientStopped = (): void => {
|
599
|
-
servers.return(undefined);
|
600
|
-
};
|
601
|
-
this.lifecycle!.signal.addEventListener("abort", onClientStopped);
|
602
|
-
|
603
|
-
try {
|
604
|
-
for await (const server of servers) {
|
605
|
-
this.turnServers = [
|
606
|
-
{
|
607
|
-
urls: server.uris,
|
608
|
-
username: server.username,
|
609
|
-
credential: server.password,
|
610
|
-
},
|
611
|
-
];
|
612
|
-
this.emit(ClientEvent.TurnServers, this.turnServers);
|
613
|
-
logger.log(`Received TURN server: ${server.uris}`);
|
614
|
-
}
|
615
|
-
} catch (e) {
|
616
|
-
logger.warn("Error watching TURN servers", e);
|
617
|
-
} finally {
|
618
|
-
this.lifecycle!.signal.removeEventListener("abort", onClientStopped);
|
619
|
-
}
|
620
|
-
}
|
621
494
|
}
|
622
495
|
|
623
496
|
function processAndThrow(error: unknown): never {
|
package/src/event-mapper.ts
CHANGED
@@ -31,7 +31,6 @@ export interface MapperOpts {
|
|
31
31
|
|
32
32
|
export function eventMapperFor(client: MatrixClient, options: MapperOpts): EventMapper {
|
33
33
|
let preventReEmit = Boolean(options.preventReEmit);
|
34
|
-
const decrypt = options.decrypt !== false;
|
35
34
|
|
36
35
|
function mapper(plainOldJsObject: Partial<IEvent>): MatrixEvent {
|
37
36
|
if (options.toDevice) {
|
@@ -81,9 +80,6 @@ export function eventMapperFor(client: MatrixClient, options: MapperOpts): Event
|
|
81
80
|
if (!preventReEmit) {
|
82
81
|
client.reEmitter.reEmit(event, [MatrixEventEvent.Decrypted]);
|
83
82
|
}
|
84
|
-
if (decrypt) {
|
85
|
-
client.decryptEventIfNeeded(event);
|
86
|
-
}
|
87
83
|
}
|
88
84
|
|
89
85
|
if (!preventReEmit) {
|
package/src/matrix.ts
CHANGED
@@ -16,12 +16,10 @@ limitations under the License.
|
|
16
16
|
|
17
17
|
import { WidgetApi } from "matrix-widget-api";
|
18
18
|
|
19
|
-
import { MemoryCryptoStore } from "./crypto/store/memory-crypto-store.ts";
|
20
19
|
import { MemoryStore } from "./store/memory.ts";
|
21
20
|
import { MatrixScheduler } from "./scheduler.ts";
|
22
21
|
import { MatrixClient, ICreateClientOpts } from "./client.ts";
|
23
22
|
import { RoomWidgetClient, ICapabilities } from "./embedded.ts";
|
24
|
-
import { CryptoStore } from "./crypto/store/base.ts";
|
25
23
|
|
26
24
|
export * from "./client.ts";
|
27
25
|
export * from "./serverCapabilities.ts";
|
@@ -52,10 +50,6 @@ export * from "./interactive-auth.ts";
|
|
52
50
|
export * from "./service-types.ts";
|
53
51
|
export * from "./store/memory.ts";
|
54
52
|
export * from "./store/indexeddb.ts";
|
55
|
-
export * from "./crypto/store/memory-crypto-store.ts";
|
56
|
-
export * from "./crypto/store/localStorage-crypto-store.ts";
|
57
|
-
export * from "./crypto/store/indexeddb-crypto-store.ts";
|
58
|
-
export type { OutgoingRoomKeyRequest } from "./crypto/store/base.ts";
|
59
53
|
export * from "./content-repo.ts";
|
60
54
|
export type * from "./@types/common.ts";
|
61
55
|
export type * from "./@types/uia.ts";
|
@@ -73,7 +67,6 @@ export * from "./@types/polls.ts";
|
|
73
67
|
export type * from "./@types/local_notifications.ts";
|
74
68
|
export type * from "./@types/registration.ts";
|
75
69
|
export * from "./@types/read_receipts.ts";
|
76
|
-
export type * from "./@types/crypto.ts";
|
77
70
|
export * from "./@types/extensible_events.ts";
|
78
71
|
export type * from "./@types/IIdentityServerProvider.ts";
|
79
72
|
export * from "./@types/membership.ts";
|
@@ -81,13 +74,7 @@ export * from "./models/room-summary.ts";
|
|
81
74
|
export * from "./models/event-status.ts";
|
82
75
|
export type { RoomSummary } from "./client.ts";
|
83
76
|
export * as ContentHelpers from "./content-helpers.ts";
|
84
|
-
export * as SecretStorage from "./secret-storage.ts";
|
85
|
-
export type { ICryptoCallbacks } from "./crypto/index.ts"; // used to be located here
|
86
77
|
|
87
|
-
export {
|
88
|
-
/** @deprecated Use {@link Crypto.CryptoEvent} instead */
|
89
|
-
CryptoEvent,
|
90
|
-
} from "./crypto/index.ts";
|
91
78
|
export { SyncState, SetPresence } from "./sync.ts";
|
92
79
|
export type { ISyncStateData as SyncStateData } from "./sync.ts";
|
93
80
|
export { SlidingSyncEvent } from "./sliding-sync.ts";
|
@@ -99,20 +86,6 @@ export type { ISSOFlow as SSOFlow, LoginFlow } from "./@types/auth.ts";
|
|
99
86
|
export type { IHierarchyRelation as HierarchyRelation, IHierarchyRoom as HierarchyRoom } from "./@types/spaces.ts";
|
100
87
|
export { LocationAssetType } from "./@types/location.ts";
|
101
88
|
|
102
|
-
/** @deprecated Backwards-compatibility re-export. Import from `crypto-api` directly. */
|
103
|
-
export * as Crypto from "./crypto-api/index.ts";
|
104
|
-
|
105
|
-
let cryptoStoreFactory = (): CryptoStore => new MemoryCryptoStore();
|
106
|
-
|
107
|
-
/**
|
108
|
-
* Configure a different factory to be used for creating crypto stores
|
109
|
-
*
|
110
|
-
* @param fac - a function which will return a new `CryptoStore`
|
111
|
-
*/
|
112
|
-
export function setCryptoStoreFactory(fac: () => CryptoStore): void {
|
113
|
-
cryptoStoreFactory = fac;
|
114
|
-
}
|
115
|
-
|
116
89
|
function amendClientOpts(opts: ICreateClientOpts): ICreateClientOpts {
|
117
90
|
opts.store =
|
118
91
|
opts.store ??
|
@@ -120,7 +93,6 @@ function amendClientOpts(opts: ICreateClientOpts): ICreateClientOpts {
|
|
120
93
|
localStorage: globalThis.localStorage,
|
121
94
|
});
|
122
95
|
opts.scheduler = opts.scheduler ?? new MatrixScheduler();
|
123
|
-
opts.cryptoStore = opts.cryptoStore ?? cryptoStoreFactory();
|
124
96
|
|
125
97
|
return opts;
|
126
98
|
}
|
package/src/models/event.ts
CHANGED
@@ -21,9 +21,6 @@ limitations under the License.
|
|
21
21
|
|
22
22
|
import { ExtensibleEvent, ExtensibleEvents, Optional } from "matrix-events-sdk";
|
23
23
|
|
24
|
-
import type { IEventDecryptionResult } from "../@types/crypto.ts";
|
25
|
-
import { logger } from "../logger.ts";
|
26
|
-
import { VerificationRequest } from "../crypto/verification/request/VerificationRequest.ts";
|
27
24
|
import {
|
28
25
|
EVENT_VISIBILITY_CHANGE_TYPE,
|
29
26
|
EventType,
|
@@ -33,7 +30,6 @@ import {
|
|
33
30
|
UNSIGNED_THREAD_ID_FIELD,
|
34
31
|
UNSIGNED_MEMBERSHIP_FIELD,
|
35
32
|
} from "../@types/event.ts";
|
36
|
-
import { Crypto } from "../crypto/index.ts";
|
37
33
|
import { deepSortedObjectEntries, internaliseString } from "../utils.ts";
|
38
34
|
import { RoomMember } from "./room-member.ts";
|
39
35
|
import { Thread, THREAD_RELATION_TYPE, ThreadEvent, ThreadEventHandlerMap } from "./thread.ts";
|
@@ -42,12 +38,10 @@ import { TypedReEmitter } from "../ReEmitter.ts";
|
|
42
38
|
import { MatrixError } from "../http-api/index.ts";
|
43
39
|
import { TypedEventEmitter } from "./typed-event-emitter.ts";
|
44
40
|
import { EventStatus } from "./event-status.ts";
|
45
|
-
import { CryptoBackend, DecryptionError } from "../common-crypto/CryptoBackend.ts";
|
46
41
|
import { IAnnotatedPushRule } from "../@types/PushRules.ts";
|
47
42
|
import { Room } from "./room.ts";
|
48
43
|
import { EventTimeline } from "./event-timeline.ts";
|
49
44
|
import { Membership } from "../@types/membership.ts";
|
50
|
-
import { DecryptionFailureCode } from "../crypto-api/index.ts";
|
51
45
|
|
52
46
|
export { EventStatus } from "./event-status.ts";
|
53
47
|
|
@@ -266,9 +260,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
266
260
|
private _hasCachedExtEv = false;
|
267
261
|
private _cachedExtEv: Optional<ExtensibleEvent> = undefined;
|
268
262
|
|
269
|
-
/** If we failed to decrypt this event, the reason for the failure. Otherwise, `null`. */
|
270
|
-
private _decryptionFailureReason: DecryptionFailureCode | null = null;
|
271
|
-
|
272
263
|
/* curve25519 key which we believe belongs to the sender of the event. See
|
273
264
|
* getSenderKey()
|
274
265
|
*/
|
@@ -289,17 +280,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
289
280
|
*/
|
290
281
|
private untrusted: boolean | null = null;
|
291
282
|
|
292
|
-
/* if we have a process decrypting this event, a Promise which resolves
|
293
|
-
* when it is finished. Normally null.
|
294
|
-
*/
|
295
|
-
private decryptionPromise: Promise<void> | null = null;
|
296
|
-
|
297
|
-
/* flag to indicate if we should retry decrypting this event after the
|
298
|
-
* first attempt (eg, we have received new data which means that a second
|
299
|
-
* attempt may succeed)
|
300
|
-
*/
|
301
|
-
private retryDecryption = false;
|
302
|
-
|
303
283
|
/* The txnId with which this event was sent if it was during this session,
|
304
284
|
* allows for a unique ID which does not change when the event comes back down sync.
|
305
285
|
*/
|
@@ -357,12 +337,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
357
337
|
*/
|
358
338
|
public forwardLooking = true;
|
359
339
|
|
360
|
-
/* If the event is a `m.key.verification.request` (or to_device `m.key.verification.start`) event,
|
361
|
-
* `Crypto` will set this the `VerificationRequest` for the event
|
362
|
-
* so it can be easily accessed from the timeline.
|
363
|
-
*/
|
364
|
-
public verificationRequest?: VerificationRequest;
|
365
|
-
|
366
340
|
private readonly reEmitter: TypedReEmitter<MatrixEventEmittedEvents, MatrixEventHandlerMap>;
|
367
341
|
|
368
342
|
/**
|
@@ -714,154 +688,14 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
714
688
|
return UNSIGNED_MEMBERSHIP_FIELD.findIn<Membership | string>(unsigned);
|
715
689
|
}
|
716
690
|
|
717
|
-
/**
|
718
|
-
* Replace the content of this event with encrypted versions.
|
719
|
-
* (This is used when sending an event; it should not be used by applications).
|
720
|
-
*
|
721
|
-
* @internal
|
722
|
-
*
|
723
|
-
* @param cryptoType - type of the encrypted event - typically
|
724
|
-
* <tt>"m.room.encrypted"</tt>
|
725
|
-
*
|
726
|
-
* @param cryptoContent - raw 'content' for the encrypted event.
|
727
|
-
*
|
728
|
-
* @param senderCurve25519Key - curve25519 key to record for the
|
729
|
-
* sender of this event.
|
730
|
-
* See {@link MatrixEvent#getSenderKey}.
|
731
|
-
*
|
732
|
-
* @param claimedEd25519Key - claimed ed25519 key to record for the
|
733
|
-
* sender if this event.
|
734
|
-
* See {@link MatrixEvent#getClaimedEd25519Key}
|
735
|
-
*/
|
736
|
-
public makeEncrypted(
|
737
|
-
cryptoType: string,
|
738
|
-
cryptoContent: object,
|
739
|
-
senderCurve25519Key: string,
|
740
|
-
claimedEd25519Key: string,
|
741
|
-
): void {
|
742
|
-
// keep the plain-text data for 'view source'
|
743
|
-
this.clearEvent = {
|
744
|
-
type: this.event.type!,
|
745
|
-
content: this.event.content!,
|
746
|
-
};
|
747
|
-
this.event.type = cryptoType;
|
748
|
-
this.event.content = cryptoContent;
|
749
|
-
this.senderCurve25519Key = senderCurve25519Key;
|
750
|
-
this.claimedEd25519Key = claimedEd25519Key;
|
751
|
-
}
|
752
|
-
|
753
|
-
/**
|
754
|
-
* Check if this event is currently being decrypted.
|
755
|
-
*
|
756
|
-
* @returns True if this event is currently being decrypted, else false.
|
757
|
-
*/
|
758
|
-
public isBeingDecrypted(): boolean {
|
759
|
-
return this.decryptionPromise != null;
|
760
|
-
}
|
761
|
-
|
762
|
-
public getDecryptionPromise(): Promise<void> | null {
|
763
|
-
return this.decryptionPromise;
|
764
|
-
}
|
765
|
-
|
766
|
-
/**
|
767
|
-
* Check if this event is an encrypted event which we failed to decrypt
|
768
|
-
*
|
769
|
-
* (This implies that we might retry decryption at some point in the future)
|
770
|
-
*
|
771
|
-
* @returns True if this event is an encrypted event which we
|
772
|
-
* couldn't decrypt.
|
773
|
-
*/
|
774
|
-
public isDecryptionFailure(): boolean {
|
775
|
-
return this._decryptionFailureReason !== null;
|
776
|
-
}
|
777
|
-
|
778
|
-
/** If we failed to decrypt this event, the reason for the failure. Otherwise, `null`. */
|
779
|
-
public get decryptionFailureReason(): DecryptionFailureCode | null {
|
780
|
-
return this._decryptionFailureReason;
|
781
|
-
}
|
782
|
-
|
783
|
-
/**
|
784
|
-
* True if this event is an encrypted event which we failed to decrypt, the receiver's device is unverified and
|
785
|
-
* the sender has disabled encrypting to unverified devices.
|
786
|
-
*
|
787
|
-
* @deprecated: Prefer `event.decryptionFailureReason === DecryptionFailureCode.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE`.
|
788
|
-
*/
|
789
|
-
public get isEncryptedDisabledForUnverifiedDevices(): boolean {
|
790
|
-
return this.decryptionFailureReason === DecryptionFailureCode.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE;
|
791
|
-
}
|
792
|
-
|
793
691
|
public shouldAttemptDecryption(): boolean {
|
794
692
|
if (this.isRedacted()) return false;
|
795
|
-
if (this.isBeingDecrypted()) return false;
|
796
693
|
if (this.clearEvent) return false;
|
797
694
|
if (!this.isEncrypted()) return false;
|
798
695
|
|
799
696
|
return true;
|
800
697
|
}
|
801
698
|
|
802
|
-
/**
|
803
|
-
* Start the process of trying to decrypt this event.
|
804
|
-
*
|
805
|
-
* (This is used within the SDK: it isn't intended for use by applications)
|
806
|
-
*
|
807
|
-
* @internal
|
808
|
-
*
|
809
|
-
* @param crypto - crypto module
|
810
|
-
*
|
811
|
-
* @returns promise which resolves (to undefined) when the decryption
|
812
|
-
* attempt is completed.
|
813
|
-
*/
|
814
|
-
public async attemptDecryption(crypto: CryptoBackend, options: IDecryptOptions = {}): Promise<void> {
|
815
|
-
// start with a couple of sanity checks.
|
816
|
-
if (!this.isEncrypted()) {
|
817
|
-
throw new Error("Attempt to decrypt event which isn't encrypted");
|
818
|
-
}
|
819
|
-
|
820
|
-
const alreadyDecrypted = this.clearEvent && !this.isDecryptionFailure();
|
821
|
-
const forceRedecrypt = options.forceRedecryptIfUntrusted && this.isKeySourceUntrusted();
|
822
|
-
if (alreadyDecrypted && !forceRedecrypt) {
|
823
|
-
// we may want to just ignore this? let's start with rejecting it.
|
824
|
-
throw new Error("Attempt to decrypt event which has already been decrypted");
|
825
|
-
}
|
826
|
-
|
827
|
-
// if we already have a decryption attempt in progress, then it may
|
828
|
-
// fail because it was using outdated info. We now have reason to
|
829
|
-
// succeed where it failed before, but we don't want to have multiple
|
830
|
-
// attempts going at the same time, so just set a flag that says we have
|
831
|
-
// new info.
|
832
|
-
//
|
833
|
-
if (this.decryptionPromise) {
|
834
|
-
logger.log(`Event ${this.getId()} already being decrypted; queueing a retry`);
|
835
|
-
this.retryDecryption = true;
|
836
|
-
return this.decryptionPromise;
|
837
|
-
}
|
838
|
-
|
839
|
-
this.decryptionPromise = this.decryptionLoop(crypto, options);
|
840
|
-
return this.decryptionPromise;
|
841
|
-
}
|
842
|
-
|
843
|
-
/**
|
844
|
-
* Cancel any room key request for this event and resend another.
|
845
|
-
*
|
846
|
-
* @param crypto - crypto module
|
847
|
-
* @param userId - the user who received this event
|
848
|
-
*
|
849
|
-
* @returns a promise that resolves when the request is queued
|
850
|
-
*/
|
851
|
-
public cancelAndResendKeyRequest(crypto: Crypto, userId: string): Promise<void> {
|
852
|
-
const wireContent = this.getWireContent();
|
853
|
-
return crypto.requestRoomKey(
|
854
|
-
{
|
855
|
-
algorithm: wireContent.algorithm,
|
856
|
-
room_id: this.getRoomId()!,
|
857
|
-
session_id: wireContent.session_id,
|
858
|
-
sender_key: wireContent.sender_key,
|
859
|
-
},
|
860
|
-
this.getKeyRequestRecipients(userId),
|
861
|
-
true,
|
862
|
-
);
|
863
|
-
}
|
864
|
-
|
865
699
|
/**
|
866
700
|
* Calculate the recipients for keyshare requests.
|
867
701
|
*
|
@@ -881,125 +715,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
881
715
|
return recipients;
|
882
716
|
}
|
883
717
|
|
884
|
-
private async decryptionLoop(crypto: CryptoBackend, options: IDecryptOptions = {}): Promise<void> {
|
885
|
-
// make sure that this method never runs completely synchronously.
|
886
|
-
// (doing so would mean that we would clear decryptionPromise *before*
|
887
|
-
// it is set in attemptDecryption - and hence end up with a stuck
|
888
|
-
// `decryptionPromise`).
|
889
|
-
await Promise.resolve();
|
890
|
-
|
891
|
-
// eslint-disable-next-line no-constant-condition
|
892
|
-
while (true) {
|
893
|
-
this.retryDecryption = false;
|
894
|
-
|
895
|
-
let err: Error | undefined = undefined;
|
896
|
-
try {
|
897
|
-
const res = await crypto.decryptEvent(this);
|
898
|
-
if (options.isRetry === true) {
|
899
|
-
logger.info(`Decrypted event on retry (${this.getDetails()})`);
|
900
|
-
}
|
901
|
-
this.setClearData(res);
|
902
|
-
this._decryptionFailureReason = null;
|
903
|
-
} catch (e) {
|
904
|
-
const detailedError = e instanceof DecryptionError ? (<DecryptionError>e).detailedString : String(e);
|
905
|
-
|
906
|
-
err = e as Error;
|
907
|
-
|
908
|
-
// see if we have a retry queued.
|
909
|
-
//
|
910
|
-
// NB: make sure to keep this check in the same tick of the
|
911
|
-
// event loop as `decryptionPromise = null` below - otherwise we
|
912
|
-
// risk a race:
|
913
|
-
//
|
914
|
-
// * A: we check retryDecryption here and see that it is
|
915
|
-
// false
|
916
|
-
// * B: we get a second call to attemptDecryption, which sees
|
917
|
-
// that decryptionPromise is set so sets
|
918
|
-
// retryDecryption
|
919
|
-
// * A: we continue below, clear decryptionPromise, and
|
920
|
-
// never do the retry.
|
921
|
-
//
|
922
|
-
if (this.retryDecryption) {
|
923
|
-
// decryption error, but we have a retry queued.
|
924
|
-
logger.log(`Error decrypting event (${this.getDetails()}), but retrying: ${detailedError}`);
|
925
|
-
continue;
|
926
|
-
}
|
927
|
-
|
928
|
-
// decryption error, no retries queued. Warn about the error and
|
929
|
-
// set it to m.bad.encrypted.
|
930
|
-
//
|
931
|
-
// the detailedString already includes the name and message of the error, and the stack isn't much use,
|
932
|
-
// so we don't bother to log `e` separately.
|
933
|
-
logger.warn(`Error decrypting event (${this.getDetails()}): ${detailedError}`);
|
934
|
-
|
935
|
-
this.setClearDataForDecryptionFailure(String(e));
|
936
|
-
this._decryptionFailureReason =
|
937
|
-
e instanceof DecryptionError ? (<DecryptionError>e).code : DecryptionFailureCode.UNKNOWN_ERROR;
|
938
|
-
}
|
939
|
-
|
940
|
-
// Make sure we clear 'decryptionPromise' before sending the 'Event.decrypted' event,
|
941
|
-
// otherwise the app will be confused to see `isBeingDecrypted` still set when
|
942
|
-
// there isn't an `Event.decrypted` on the way.
|
943
|
-
//
|
944
|
-
// see also notes on retryDecryption above.
|
945
|
-
//
|
946
|
-
this.decryptionPromise = null;
|
947
|
-
this.retryDecryption = false;
|
948
|
-
|
949
|
-
// Before we emit the event, clear the push actions so that they can be recalculated
|
950
|
-
// by relevant code. We do this because the clear event has now changed, making it
|
951
|
-
// so that existing rules can be re-run over the applicable properties. Stuff like
|
952
|
-
// highlighting when the user's name is mentioned rely on this happening. We also want
|
953
|
-
// to set the push actions before emitting so that any notification listeners don't
|
954
|
-
// pick up the wrong contents.
|
955
|
-
this.setPushDetails();
|
956
|
-
|
957
|
-
if (options.emit !== false) {
|
958
|
-
this.emit(MatrixEventEvent.Decrypted, this, err);
|
959
|
-
}
|
960
|
-
|
961
|
-
return;
|
962
|
-
}
|
963
|
-
}
|
964
|
-
|
965
|
-
/**
|
966
|
-
* Update the cleartext data on this event.
|
967
|
-
*
|
968
|
-
* (This is used after decrypting an event; it should not be used by applications).
|
969
|
-
*
|
970
|
-
* @internal
|
971
|
-
*
|
972
|
-
* @param decryptionResult - the decryption result, including the plaintext and some key info
|
973
|
-
*/
|
974
|
-
private setClearData(decryptionResult: IEventDecryptionResult): void {
|
975
|
-
this.clearEvent = decryptionResult.clearEvent;
|
976
|
-
this.senderCurve25519Key = decryptionResult.senderCurve25519Key ?? null;
|
977
|
-
this.claimedEd25519Key = decryptionResult.claimedEd25519Key ?? null;
|
978
|
-
this.forwardingCurve25519KeyChain = decryptionResult.forwardingCurve25519KeyChain || [];
|
979
|
-
this.untrusted = decryptionResult.untrusted || false;
|
980
|
-
this.invalidateExtensibleEvent();
|
981
|
-
}
|
982
|
-
|
983
|
-
/**
|
984
|
-
* Update the cleartext data on this event after a decryption failure.
|
985
|
-
*
|
986
|
-
* @param reason - the textual reason for the failure
|
987
|
-
*/
|
988
|
-
private setClearDataForDecryptionFailure(reason: string): void {
|
989
|
-
this.clearEvent = {
|
990
|
-
type: EventType.RoomMessage,
|
991
|
-
content: {
|
992
|
-
msgtype: "m.bad.encrypted",
|
993
|
-
body: `** Unable to decrypt: ${reason} **`,
|
994
|
-
},
|
995
|
-
};
|
996
|
-
this.senderCurve25519Key = null;
|
997
|
-
this.claimedEd25519Key = null;
|
998
|
-
this.forwardingCurve25519KeyChain = [];
|
999
|
-
this.untrusted = false;
|
1000
|
-
this.invalidateExtensibleEvent();
|
1001
|
-
}
|
1002
|
-
|
1003
718
|
/**
|
1004
719
|
* Gets the cleartext content for this event. If the event is not encrypted,
|
1005
720
|
* or encryption has not been completed, this will return null.
|
@@ -1669,10 +1384,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
1669
1384
|
};
|
1670
1385
|
}
|
1671
1386
|
|
1672
|
-
public setVerificationRequest(request: VerificationRequest): void {
|
1673
|
-
this.verificationRequest = request;
|
1674
|
-
}
|
1675
|
-
|
1676
1387
|
public setTxnId(txnId: string): void {
|
1677
1388
|
this.txnId = txnId;
|
1678
1389
|
}
|
package/src/models/poll.ts
CHANGED
@@ -48,9 +48,6 @@ const filterResponseRelations = (
|
|
48
48
|
responseEvents: MatrixEvent[];
|
49
49
|
} => {
|
50
50
|
const responseEvents = relationEvents.filter((event) => {
|
51
|
-
if (event.isDecryptionFailure()) {
|
52
|
-
return;
|
53
|
-
}
|
54
51
|
return (
|
55
52
|
M_POLL_RESPONSE.matches(event.getType()) &&
|
56
53
|
// From MSC3381:
|
@@ -172,8 +169,6 @@ export class Poll extends TypedEventEmitter<Exclude<PollEvent, PollEvent.New>, P
|
|
172
169
|
},
|
173
170
|
);
|
174
171
|
|
175
|
-
await Promise.all(allRelations.events.map((event) => this.matrixClient.decryptEventIfNeeded(event)));
|
176
|
-
|
177
172
|
const responses =
|
178
173
|
this.responses ||
|
179
174
|
new Relations("m.reference", M_POLL_RESPONSE.name, this.matrixClient, [M_POLL_RESPONSE.altName!]);
|
@@ -235,7 +230,6 @@ export class Poll extends TypedEventEmitter<Exclude<PollEvent, PollEvent.New>, P
|
|
235
230
|
|
236
231
|
private countUndecryptableEvents = (events: MatrixEvent[]): void => {
|
237
232
|
const undecryptableEventIds = events
|
238
|
-
.filter((event) => event.isDecryptionFailure())
|
239
233
|
.map((event) => event.getId()!);
|
240
234
|
|
241
235
|
const previousCount = this.undecryptableRelationsCount;
|