@unwanted/matrix-sdk-mini 34.12.0-2 → 34.12.0-4
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 -1221
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +331 -2821
- 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/lib/types.d.ts +0 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.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 +60 -2882
- 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/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 -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/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/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 -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/utils/decryptAESSecretStorageItem.ts +0 -54
- package/src/utils/encryptAESSecretStorageItem.ts +0 -73
- package/src/utils/internal/deriveKeys.ts +0 -63
@@ -98,18 +98,11 @@ export class RelationsContainer {
|
|
98
98
|
if (!relation) return;
|
99
99
|
|
100
100
|
const onEventDecrypted = (): void => {
|
101
|
-
if (event.isDecryptionFailure()) {
|
102
|
-
// This could for example happen if the encryption keys are not yet available.
|
103
|
-
// The event may still be decrypted later. Register the listener again.
|
104
|
-
event.once(MatrixEventEvent.Decrypted, onEventDecrypted);
|
105
|
-
return;
|
106
|
-
}
|
107
|
-
|
108
101
|
this.aggregateChildEvent(event, timelineSet);
|
109
102
|
};
|
110
103
|
|
111
104
|
// If the event is currently encrypted, wait until it has been decrypted.
|
112
|
-
if (event.
|
105
|
+
if (event.shouldAttemptDecryption()) {
|
113
106
|
event.once(MatrixEventEvent.Decrypted, onEventDecrypted);
|
114
107
|
return;
|
115
108
|
}
|
package/src/models/relations.ts
CHANGED
@@ -52,7 +52,6 @@ export class Relations extends TypedEventEmitter<RelationsEvent, EventHandlerMap
|
|
52
52
|
private sortedAnnotationsByKey: [string, Set<MatrixEvent>][] = [];
|
53
53
|
private targetEvent: MatrixEvent | null = null;
|
54
54
|
private creationEmitted = false;
|
55
|
-
private readonly client: MatrixClient;
|
56
55
|
|
57
56
|
/**
|
58
57
|
* @param relationType - The type of relation involved, such as "m.annotation", "m.reference", "m.replace", etc.
|
@@ -67,7 +66,6 @@ export class Relations extends TypedEventEmitter<RelationsEvent, EventHandlerMap
|
|
67
66
|
public readonly altEventTypes?: string[],
|
68
67
|
) {
|
69
68
|
super();
|
70
|
-
this.client = client instanceof Room ? client.client : client;
|
71
69
|
}
|
72
70
|
|
73
71
|
/**
|
@@ -323,12 +321,6 @@ export class Relations extends TypedEventEmitter<RelationsEvent, EventHandlerMap
|
|
323
321
|
return event;
|
324
322
|
}, null);
|
325
323
|
|
326
|
-
if (lastReplacement?.shouldAttemptDecryption() && this.client.isCryptoEnabled()) {
|
327
|
-
await lastReplacement.attemptDecryption(this.client.crypto!);
|
328
|
-
} else if (lastReplacement?.isBeingDecrypted()) {
|
329
|
-
await lastReplacement.getDecryptionPromise();
|
330
|
-
}
|
331
|
-
|
332
324
|
return lastReplacement;
|
333
325
|
}
|
334
326
|
|
package/src/models/room-state.ts
CHANGED
@@ -18,7 +18,7 @@ import { RoomMember } from "./room-member.ts";
|
|
18
18
|
import { logger } from "../logger.ts";
|
19
19
|
import { isNumber, removeHiddenChars } from "../utils.ts";
|
20
20
|
import { EventType, UNSTABLE_MSC2716_MARKER } from "../@types/event.ts";
|
21
|
-
import { IEvent, MatrixEvent
|
21
|
+
import { IEvent, MatrixEvent } from "./event.ts";
|
22
22
|
import { MatrixClient } from "../client.ts";
|
23
23
|
import { GuestAccess, HistoryVisibility, JoinRule } from "../@types/partials.ts";
|
24
24
|
import { TypedEventEmitter } from "./typed-event-emitter.ts";
|
@@ -544,15 +544,9 @@ export class RoomState extends TypedEventEmitter<EmittedEvents, EventHandlerMap>
|
|
544
544
|
if (!M_BEACON.matches(event.getType()) && !event.isEncrypted()) return;
|
545
545
|
|
546
546
|
try {
|
547
|
-
await matrixClient.decryptEventIfNeeded(event);
|
548
547
|
processBeaconRelation(relatedToEventId, event);
|
549
548
|
} catch {
|
550
|
-
|
551
|
-
// add an event listener for once the event is decrypted.
|
552
|
-
event.once(MatrixEventEvent.Decrypted, async () => {
|
553
|
-
processBeaconRelation(relatedToEventId, event);
|
554
|
-
});
|
555
|
-
}
|
549
|
+
//
|
556
550
|
}
|
557
551
|
}
|
558
552
|
}
|
package/src/models/room.ts
CHANGED
@@ -494,7 +494,6 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|
494
494
|
});
|
495
495
|
events.forEach(async (serializedEvent: Partial<IEvent>) => {
|
496
496
|
const event = mapper(serializedEvent);
|
497
|
-
await client.decryptEventIfNeeded(event);
|
498
497
|
event.setStatus(EventStatus.NOT_SENT);
|
499
498
|
this.addPendingEvent(event, event.getTxnId()!);
|
500
499
|
});
|
@@ -533,52 +532,6 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|
533
532
|
return null;
|
534
533
|
}
|
535
534
|
|
536
|
-
/**
|
537
|
-
* Bulk decrypt critical events in a room
|
538
|
-
*
|
539
|
-
* Critical events represents the minimal set of events to decrypt
|
540
|
-
* for a typical UI to function properly
|
541
|
-
*
|
542
|
-
* - Last event of every room (to generate likely message preview)
|
543
|
-
* - All events up to the read receipt (to calculate an accurate notification count)
|
544
|
-
*
|
545
|
-
* @returns Signals when all events have been decrypted
|
546
|
-
*/
|
547
|
-
public async decryptCriticalEvents(): Promise<void> {
|
548
|
-
if (!this.client.isCryptoEnabled()) return;
|
549
|
-
|
550
|
-
const readReceiptEventId = this.getEventReadUpTo(this.client.getUserId()!, true);
|
551
|
-
const events = this.getLiveTimeline().getEvents();
|
552
|
-
const readReceiptTimelineIndex = events.findIndex((matrixEvent) => {
|
553
|
-
return matrixEvent.event.event_id === readReceiptEventId;
|
554
|
-
});
|
555
|
-
|
556
|
-
const decryptionPromises = events
|
557
|
-
.slice(readReceiptTimelineIndex)
|
558
|
-
.reverse()
|
559
|
-
.map((event) => this.client.decryptEventIfNeeded(event));
|
560
|
-
|
561
|
-
await Promise.allSettled(decryptionPromises);
|
562
|
-
}
|
563
|
-
|
564
|
-
/**
|
565
|
-
* Bulk decrypt events in a room
|
566
|
-
*
|
567
|
-
* @returns Signals when all events have been decrypted
|
568
|
-
*/
|
569
|
-
public async decryptAllEvents(): Promise<void> {
|
570
|
-
if (!this.client.isCryptoEnabled()) return;
|
571
|
-
|
572
|
-
const decryptionPromises = this.getUnfilteredTimelineSet()
|
573
|
-
.getLiveTimeline()
|
574
|
-
.getEvents()
|
575
|
-
.slice(0) // copy before reversing
|
576
|
-
.reverse()
|
577
|
-
.map((event) => this.client.decryptEventIfNeeded(event));
|
578
|
-
|
579
|
-
await Promise.allSettled(decryptionPromises);
|
580
|
-
}
|
581
|
-
|
582
535
|
/**
|
583
536
|
* Gets the creator of the room
|
584
537
|
* @returns The creator of the room, or null if it could not be determined
|
@@ -2062,7 +2015,6 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|
2062
2015
|
return threadAMetadata.latest_event.origin_server_ts - threadBMetadata.latest_event.origin_server_ts;
|
2063
2016
|
});
|
2064
2017
|
|
2065
|
-
let latestMyThreadsRootEvent: MatrixEvent | undefined;
|
2066
2018
|
const roomState = this.getLiveTimeline().getState(EventTimeline.FORWARDS);
|
2067
2019
|
for (const rootEvent of threadRoots) {
|
2068
2020
|
const opts = {
|
@@ -2077,16 +2029,10 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|
2077
2029
|
);
|
2078
2030
|
if (threadRelationship?.current_user_participated) {
|
2079
2031
|
this.threadsTimelineSets[1]?.addLiveEvent(rootEvent, opts);
|
2080
|
-
latestMyThreadsRootEvent = rootEvent;
|
2081
2032
|
}
|
2082
2033
|
}
|
2083
2034
|
|
2084
2035
|
this.processThreadRoots(threadRoots, true);
|
2085
|
-
|
2086
|
-
this.client.decryptEventIfNeeded(threadRoots[threadRoots.length - 1]);
|
2087
|
-
if (latestMyThreadsRootEvent) {
|
2088
|
-
this.client.decryptEventIfNeeded(latestMyThreadsRootEvent);
|
2089
|
-
}
|
2090
2036
|
}
|
2091
2037
|
|
2092
2038
|
this.on(ThreadEvent.NewReply, this.onThreadReply);
|
@@ -2110,7 +2056,6 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|
2110
2056
|
* Try to decrypt the event. Promise resolution does not guarantee a successful decryption.
|
2111
2057
|
* Retry is handled in {@link processPollEvent}.
|
2112
2058
|
*/
|
2113
|
-
await this.client.decryptEventIfNeeded(event);
|
2114
2059
|
this.processPollEvent(event);
|
2115
2060
|
} catch (err) {
|
2116
2061
|
logger.warn("Error processing poll event", event.getId(), err);
|
@@ -2129,13 +2074,6 @@ export class Room extends ReadReceipt<RoomEmittedEvents, RoomEventHandlerMap> {
|
|
2129
2074
|
* @param event - Event that could be a poll event
|
2130
2075
|
*/
|
2131
2076
|
private async processPollEvent(event: MatrixEvent): Promise<void> {
|
2132
|
-
if (event.isDecryptionFailure()) {
|
2133
|
-
event.once(MatrixEventEvent.Decrypted, (maybeDecryptedEvent: MatrixEvent) => {
|
2134
|
-
this.processPollEvent(maybeDecryptedEvent);
|
2135
|
-
});
|
2136
|
-
return;
|
2137
|
-
}
|
2138
|
-
|
2139
2077
|
if (M_POLL_START.matches(event.getType())) {
|
2140
2078
|
try {
|
2141
2079
|
const poll = new Poll(event, this.client, this);
|
package/src/models/thread.ts
CHANGED
@@ -372,7 +372,6 @@ export class Thread extends ReadReceipt<ThreadEmittedEvents, ThreadEventHandlerM
|
|
372
372
|
if (!Thread.hasServerSideSupport) {
|
373
373
|
// When there's no server-side support, just add it to the end of the timeline.
|
374
374
|
this.addEventToTimeline(event, toStartOfTimeline);
|
375
|
-
this.client.decryptEventIfNeeded(event);
|
376
375
|
} else if (event.isRelation(RelationType.Annotation) || event.isRelation(RelationType.Replace)) {
|
377
376
|
this.addRelatedThreadEvent(event, toStartOfTimeline);
|
378
377
|
return;
|
package/src/sliding-sync-sdk.ts
CHANGED
@@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import type { SyncCryptoCallbacks } from "./common-crypto/CryptoBackend.ts";
|
18
17
|
import { NotificationCountType, Room, RoomEvent } from "./models/room.ts";
|
19
18
|
import { logger } from "./logger.ts";
|
20
19
|
import { promiseMapSeries } from "./utils.ts";
|
@@ -24,13 +23,10 @@ import {
|
|
24
23
|
ISyncStateData,
|
25
24
|
SyncState,
|
26
25
|
_createAndReEmitRoom,
|
27
|
-
SyncApiOptions,
|
28
26
|
defaultClientOpts,
|
29
|
-
defaultSyncApiOpts,
|
30
27
|
SetPresence,
|
31
28
|
} from "./sync.ts";
|
32
29
|
import { MatrixEvent } from "./models/event.ts";
|
33
|
-
import { Crypto } from "./crypto/index.ts";
|
34
30
|
import { IMinimalEvent, IRoomEvent, IStateEvent, IStrippedState, ISyncResponse } from "./sync-accumulator.ts";
|
35
31
|
import { MatrixError } from "./http-api/index.ts";
|
36
32
|
import {
|
@@ -53,54 +49,6 @@ import { KnownMembership } from "./@types/membership.ts";
|
|
53
49
|
// keepAlive is successful but the server /sync fails.
|
54
50
|
const FAILED_SYNC_ERROR_THRESHOLD = 3;
|
55
51
|
|
56
|
-
type ExtensionE2EERequest = {
|
57
|
-
enabled: boolean;
|
58
|
-
};
|
59
|
-
|
60
|
-
type ExtensionE2EEResponse = Pick<
|
61
|
-
ISyncResponse,
|
62
|
-
| "device_lists"
|
63
|
-
| "device_one_time_keys_count"
|
64
|
-
| "device_unused_fallback_key_types"
|
65
|
-
| "org.matrix.msc2732.device_unused_fallback_key_types"
|
66
|
-
>;
|
67
|
-
|
68
|
-
class ExtensionE2EE implements Extension<ExtensionE2EERequest, ExtensionE2EEResponse> {
|
69
|
-
public constructor(private readonly crypto: Crypto) {}
|
70
|
-
|
71
|
-
public name(): string {
|
72
|
-
return "e2ee";
|
73
|
-
}
|
74
|
-
|
75
|
-
public when(): ExtensionState {
|
76
|
-
return ExtensionState.PreProcess;
|
77
|
-
}
|
78
|
-
|
79
|
-
public onRequest(isInitial: boolean): ExtensionE2EERequest | undefined {
|
80
|
-
if (!isInitial) {
|
81
|
-
return undefined;
|
82
|
-
}
|
83
|
-
return {
|
84
|
-
enabled: true, // this is sticky so only send it on the initial request
|
85
|
-
};
|
86
|
-
}
|
87
|
-
|
88
|
-
public async onResponse(data: ExtensionE2EEResponse): Promise<void> {
|
89
|
-
// Handle device list updates
|
90
|
-
if (data.device_lists) {
|
91
|
-
await this.crypto.processDeviceLists(data.device_lists);
|
92
|
-
}
|
93
|
-
|
94
|
-
// Handle one_time_keys_count and unused_fallback_key_types
|
95
|
-
await this.crypto.processKeyCounts(
|
96
|
-
data.device_one_time_keys_count,
|
97
|
-
data["device_unused_fallback_key_types"] || data["org.matrix.msc2732.device_unused_fallback_key_types"],
|
98
|
-
);
|
99
|
-
|
100
|
-
this.crypto.onSyncCompleted({});
|
101
|
-
}
|
102
|
-
}
|
103
|
-
|
104
52
|
type ExtensionToDeviceRequest = {
|
105
53
|
since?: string;
|
106
54
|
limit?: number;
|
@@ -117,7 +65,6 @@ class ExtensionToDevice implements Extension<ExtensionToDeviceRequest, Extension
|
|
117
65
|
|
118
66
|
public constructor(
|
119
67
|
private readonly client: MatrixClient,
|
120
|
-
private readonly cryptoCallbacks?: SyncCryptoCallbacks,
|
121
68
|
) {}
|
122
69
|
|
123
70
|
public name(): string {
|
@@ -141,10 +88,7 @@ class ExtensionToDevice implements Extension<ExtensionToDeviceRequest, Extension
|
|
141
88
|
|
142
89
|
public async onResponse(data: ExtensionToDeviceResponse): Promise<void> {
|
143
90
|
const cancelledKeyVerificationTxns: string[] = [];
|
144
|
-
|
145
|
-
if (events.length > 0 && this.cryptoCallbacks) {
|
146
|
-
events = await this.cryptoCallbacks.preprocessToDeviceMessages(events);
|
147
|
-
}
|
91
|
+
const events = data["events"] || [];
|
148
92
|
events
|
149
93
|
.map(this.client.getEventMapper())
|
150
94
|
.map((toDeviceEvent) => {
|
@@ -345,7 +289,6 @@ class ExtensionReceipts implements Extension<ExtensionReceiptsRequest, Extension
|
|
345
289
|
*/
|
346
290
|
export class SlidingSyncSdk {
|
347
291
|
private readonly opts: IStoredClientOpts;
|
348
|
-
private readonly syncOpts: SyncApiOptions;
|
349
292
|
private syncState: SyncState | null = null;
|
350
293
|
private syncStateData?: ISyncStateData;
|
351
294
|
private lastPos: string | null = null;
|
@@ -356,10 +299,8 @@ export class SlidingSyncSdk {
|
|
356
299
|
private readonly slidingSync: SlidingSync,
|
357
300
|
private readonly client: MatrixClient,
|
358
301
|
opts?: IStoredClientOpts,
|
359
|
-
syncOpts?: SyncApiOptions,
|
360
302
|
) {
|
361
303
|
this.opts = defaultClientOpts(opts);
|
362
|
-
this.syncOpts = defaultSyncApiOpts(syncOpts);
|
363
304
|
|
364
305
|
if (client.getNotifTimelineSet()) {
|
365
306
|
client.reEmitter.reEmit(client.getNotifTimelineSet()!, [RoomEvent.Timeline, RoomEvent.TimelineReset]);
|
@@ -368,14 +309,11 @@ export class SlidingSyncSdk {
|
|
368
309
|
this.slidingSync.on(SlidingSyncEvent.Lifecycle, this.onLifecycle.bind(this));
|
369
310
|
this.slidingSync.on(SlidingSyncEvent.RoomData, this.onRoomData.bind(this));
|
370
311
|
const extensions: Extension<any, any>[] = [
|
371
|
-
new ExtensionToDevice(this.client
|
312
|
+
new ExtensionToDevice(this.client),
|
372
313
|
new ExtensionAccountData(this.client),
|
373
314
|
new ExtensionTyping(this.client),
|
374
315
|
new ExtensionReceipts(this.client),
|
375
316
|
];
|
376
|
-
if (this.syncOpts.crypto) {
|
377
|
-
extensions.push(new ExtensionE2EE(this.syncOpts.crypto));
|
378
|
-
}
|
379
317
|
extensions.forEach((ext) => {
|
380
318
|
this.slidingSync.registerExtension(ext);
|
381
319
|
});
|
@@ -734,9 +672,6 @@ export class SlidingSyncSdk {
|
|
734
672
|
|
735
673
|
const processRoomEvent = async (e: MatrixEvent): Promise<void> => {
|
736
674
|
client.emit(ClientEvent.Event, e);
|
737
|
-
if (e.isState() && e.getType() == EventType.RoomEncryption && this.syncOpts.cryptoCallbacks) {
|
738
|
-
await this.syncOpts.cryptoCallbacks.onCryptoEvent(room, e);
|
739
|
-
}
|
740
675
|
};
|
741
676
|
|
742
677
|
await promiseMapSeries(stateEvents, processRoomEvent);
|
@@ -744,11 +679,6 @@ export class SlidingSyncSdk {
|
|
744
679
|
ephemeralEvents.forEach(function (e) {
|
745
680
|
client.emit(ClientEvent.Event, e);
|
746
681
|
});
|
747
|
-
|
748
|
-
// Decrypt only the last message in all rooms to make sure we can generate a preview
|
749
|
-
// And decrypt all events after the recorded read receipt to ensure an accurate
|
750
|
-
// notification count
|
751
|
-
room.decryptCriticalEvents();
|
752
682
|
}
|
753
683
|
|
754
684
|
/**
|
package/src/sync.ts
CHANGED
@@ -25,7 +25,6 @@ limitations under the License.
|
|
25
25
|
|
26
26
|
import { Optional } from "matrix-events-sdk";
|
27
27
|
|
28
|
-
import type { SyncCryptoCallbacks } from "./common-crypto/CryptoBackend.ts";
|
29
28
|
import { User } from "./models/user.ts";
|
30
29
|
import { NotificationCountType, Room, RoomEvent } from "./models/room.ts";
|
31
30
|
import { deepCopy, defer, IDeferred, noUnsafeEventProps, promiseMapSeries, unsafeProp } from "./utils.ts";
|
@@ -59,7 +58,6 @@ import { BeaconEvent } from "./models/beacon.ts";
|
|
59
58
|
import { IEventsResponse } from "./@types/requests.ts";
|
60
59
|
import { UNREAD_THREAD_NOTIFICATIONS } from "./@types/sync.ts";
|
61
60
|
import { Feature, ServerSupport } from "./feature.ts";
|
62
|
-
import { Crypto } from "./crypto/index.ts";
|
63
61
|
import { KnownMembership } from "./@types/membership.ts";
|
64
62
|
|
65
63
|
const DEBUG = true;
|
@@ -116,18 +114,6 @@ function debuglog(...params: any[]): void {
|
|
116
114
|
* Options passed into the constructor of SyncApi by MatrixClient
|
117
115
|
*/
|
118
116
|
export interface SyncApiOptions {
|
119
|
-
/**
|
120
|
-
* Crypto manager
|
121
|
-
*
|
122
|
-
* @deprecated in favour of cryptoCallbacks
|
123
|
-
*/
|
124
|
-
crypto?: Crypto;
|
125
|
-
|
126
|
-
/**
|
127
|
-
* If crypto is enabled on our client, callbacks into the crypto module
|
128
|
-
*/
|
129
|
-
cryptoCallbacks?: SyncCryptoCallbacks;
|
130
|
-
|
131
117
|
/**
|
132
118
|
* A function which is called
|
133
119
|
* with a room ID and returns a boolean. It should return 'true' if the SDK can
|
@@ -642,9 +628,6 @@ export class SyncApi {
|
|
642
628
|
}
|
643
629
|
this.opts.filter.setLazyLoadMembers(true);
|
644
630
|
}
|
645
|
-
if (this.opts.lazyLoadMembers) {
|
646
|
-
this.syncOpts.crypto?.enableLazyLoading();
|
647
|
-
}
|
648
631
|
};
|
649
632
|
|
650
633
|
private storeClientOptions = async (): Promise<void> => {
|
@@ -880,12 +863,6 @@ export class SyncApi {
|
|
880
863
|
catchingUp: this.catchingUp,
|
881
864
|
};
|
882
865
|
|
883
|
-
if (this.syncOpts.crypto) {
|
884
|
-
// tell the crypto module we're about to process a sync
|
885
|
-
// response
|
886
|
-
await this.syncOpts.crypto.onSyncWillProcess(syncEventData);
|
887
|
-
}
|
888
|
-
|
889
866
|
try {
|
890
867
|
await this.processSyncResponse(syncEventData, data);
|
891
868
|
} catch (e) {
|
@@ -910,25 +887,10 @@ export class SyncApi {
|
|
910
887
|
syncOptions.hasSyncedBefore = true;
|
911
888
|
}
|
912
889
|
|
913
|
-
// tell the crypto module to do its processing. It may block (to do a
|
914
|
-
// /keys/changes request).
|
915
|
-
if (this.syncOpts.cryptoCallbacks) {
|
916
|
-
await this.syncOpts.cryptoCallbacks.onSyncCompleted(syncEventData);
|
917
|
-
}
|
918
|
-
|
919
890
|
// keep emitting SYNCING -> SYNCING for clients who want to do bulk updates
|
920
891
|
this.updateSyncState(SyncState.Syncing, syncEventData);
|
921
892
|
|
922
893
|
if (this.client.store.wantsSave()) {
|
923
|
-
// We always save the device list (if it's dirty) before saving the sync data:
|
924
|
-
// this means we know the saved device list data is at least as fresh as the
|
925
|
-
// stored sync data which means we don't have to worry that we may have missed
|
926
|
-
// device changes. We can also skip the delay since we're not calling this very
|
927
|
-
// frequently (and we don't really want to delay the sync for it).
|
928
|
-
if (this.syncOpts.crypto) {
|
929
|
-
await this.syncOpts.crypto.saveDeviceList(0);
|
930
|
-
}
|
931
|
-
|
932
894
|
// tell databases that everything is now in a consistent state and can be saved.
|
933
895
|
await this.client.store.save();
|
934
896
|
}
|
@@ -1160,11 +1122,7 @@ export class SyncApi {
|
|
1160
1122
|
|
1161
1123
|
// handle to-device events
|
1162
1124
|
if (data.to_device && Array.isArray(data.to_device.events) && data.to_device.events.length > 0) {
|
1163
|
-
|
1164
|
-
|
1165
|
-
if (this.syncOpts.cryptoCallbacks) {
|
1166
|
-
toDeviceMessages = await this.syncOpts.cryptoCallbacks.preprocessToDeviceMessages(toDeviceMessages);
|
1167
|
-
}
|
1125
|
+
const toDeviceMessages: IToDeviceEvent[] = data.to_device.events.filter(noUnsafeEventProps);
|
1168
1126
|
|
1169
1127
|
const cancelledKeyVerificationTxns: string[] = [];
|
1170
1128
|
toDeviceMessages
|
@@ -1244,27 +1202,6 @@ export class SyncApi {
|
|
1244
1202
|
|
1245
1203
|
await this.injectRoomEvents(room, stateEvents);
|
1246
1204
|
|
1247
|
-
const inviter = room.currentState.getStateEvents(EventType.RoomMember, client.getUserId()!)?.getSender();
|
1248
|
-
|
1249
|
-
const crypto = client.crypto;
|
1250
|
-
if (crypto) {
|
1251
|
-
const parkedHistory = await crypto.cryptoStore.takeParkedSharedHistory(room.roomId);
|
1252
|
-
for (const parked of parkedHistory) {
|
1253
|
-
if (parked.senderId === inviter) {
|
1254
|
-
await crypto.olmDevice.addInboundGroupSession(
|
1255
|
-
room.roomId,
|
1256
|
-
parked.senderKey,
|
1257
|
-
parked.forwardingCurve25519KeyChain,
|
1258
|
-
parked.sessionId,
|
1259
|
-
parked.sessionKey,
|
1260
|
-
parked.keysClaimed,
|
1261
|
-
true,
|
1262
|
-
{ sharedHistory: true, untrusted: true },
|
1263
|
-
);
|
1264
|
-
}
|
1265
|
-
}
|
1266
|
-
}
|
1267
|
-
|
1268
1205
|
if (inviteObj.isBrandNewRoom) {
|
1269
1206
|
room.recalculate();
|
1270
1207
|
client.store.storeRoom(room);
|
@@ -1415,18 +1352,6 @@ export class SyncApi {
|
|
1415
1352
|
}
|
1416
1353
|
}
|
1417
1354
|
|
1418
|
-
// process any crypto events *before* emitting the RoomStateEvent events. This
|
1419
|
-
// avoids a race condition if the application tries to send a message after the
|
1420
|
-
// state event is processed, but before crypto is enabled, which then causes the
|
1421
|
-
// crypto layer to complain.
|
1422
|
-
if (this.syncOpts.cryptoCallbacks) {
|
1423
|
-
for (const e of stateEvents.concat(events)) {
|
1424
|
-
if (e.isState() && e.getType() === EventType.RoomEncryption && e.getStateKey() === "") {
|
1425
|
-
await this.syncOpts.cryptoCallbacks.onCryptoEvent(room, e);
|
1426
|
-
}
|
1427
|
-
}
|
1428
|
-
}
|
1429
|
-
|
1430
1355
|
try {
|
1431
1356
|
await this.injectRoomEvents(room, stateEvents, events, syncEventData.fromCache);
|
1432
1357
|
} catch (e) {
|
@@ -1459,11 +1384,6 @@ export class SyncApi {
|
|
1459
1384
|
events.forEach(emitEvent);
|
1460
1385
|
ephemeralEvents.forEach(emitEvent);
|
1461
1386
|
accountDataEvents.forEach(emitEvent);
|
1462
|
-
|
1463
|
-
// Decrypt only the last message in all rooms to make sure we can generate a preview
|
1464
|
-
// And decrypt all events after the recorded read receipt to ensure an accurate
|
1465
|
-
// notification count
|
1466
|
-
room.decryptCriticalEvents();
|
1467
1387
|
});
|
1468
1388
|
|
1469
1389
|
// Handle leaves (e.g. kicked rooms)
|
@@ -1528,23 +1448,6 @@ export class SyncApi {
|
|
1528
1448
|
client.getNotifTimelineSet()?.addLiveEvent(event);
|
1529
1449
|
});
|
1530
1450
|
}
|
1531
|
-
|
1532
|
-
// Handle device list updates
|
1533
|
-
if (data.device_lists) {
|
1534
|
-
if (this.syncOpts.cryptoCallbacks) {
|
1535
|
-
await this.syncOpts.cryptoCallbacks.processDeviceLists(data.device_lists);
|
1536
|
-
} else {
|
1537
|
-
// FIXME if we *don't* have a crypto module, we still need to
|
1538
|
-
// invalidate the device lists. But that would require a
|
1539
|
-
// substantial bit of rework :/.
|
1540
|
-
}
|
1541
|
-
}
|
1542
|
-
|
1543
|
-
// Handle one_time_keys_count and unused fallback keys
|
1544
|
-
await this.syncOpts.cryptoCallbacks?.processKeyCounts(
|
1545
|
-
data.device_one_time_keys_count,
|
1546
|
-
data.device_unused_fallback_key_types ?? data["org.matrix.msc2732.device_unused_fallback_key_types"],
|
1547
|
-
);
|
1548
1451
|
}
|
1549
1452
|
|
1550
1453
|
/**
|
package/src/testing.ts
CHANGED
@@ -25,9 +25,6 @@ limitations under the License.
|
|
25
25
|
import { IContent, IEvent, IUnsigned, MatrixEvent } from "./models/event.ts";
|
26
26
|
import { RoomMember } from "./models/room-member.ts";
|
27
27
|
import { EventType } from "./@types/event.ts";
|
28
|
-
import { DecryptionError } from "./crypto/algorithms/index.ts";
|
29
|
-
import { DecryptionFailureCode } from "./crypto-api/index.ts";
|
30
|
-
import { EventDecryptionResult } from "./common-crypto/CryptoBackend.ts";
|
31
28
|
|
32
29
|
/**
|
33
30
|
* Create a {@link MatrixEvent}.
|
@@ -84,108 +81,3 @@ export function mkMatrixEvent(opts: {
|
|
84
81
|
} as unknown as RoomMember;
|
85
82
|
return mxEvent;
|
86
83
|
}
|
87
|
-
|
88
|
-
/**
|
89
|
-
* Create a `MatrixEvent` representing a successfully-decrypted `m.room.encrypted` event.
|
90
|
-
*
|
91
|
-
* @param opts - Values for the event.
|
92
|
-
*/
|
93
|
-
export async function mkEncryptedMatrixEvent(opts: {
|
94
|
-
/** Room ID of the event. */
|
95
|
-
roomId: string;
|
96
|
-
|
97
|
-
/** The sender of the event. */
|
98
|
-
sender: string;
|
99
|
-
|
100
|
-
/** The type the event will have, once it has been decrypted. */
|
101
|
-
plainType: EventType | string;
|
102
|
-
|
103
|
-
/** The content the event will have, once it has been decrypted. */
|
104
|
-
plainContent: IContent;
|
105
|
-
|
106
|
-
/** Optional `event_id` for the event. If provided will be used as event ID; else an ID is generated. */
|
107
|
-
eventId?: string;
|
108
|
-
}): Promise<MatrixEvent> {
|
109
|
-
const mxEvent = mkMatrixEvent({
|
110
|
-
type: EventType.RoomMessageEncrypted,
|
111
|
-
roomId: opts.roomId,
|
112
|
-
sender: opts.sender,
|
113
|
-
content: { algorithm: "m.megolm.v1.aes-sha2" },
|
114
|
-
eventId: opts.eventId,
|
115
|
-
});
|
116
|
-
|
117
|
-
await decryptExistingEvent(mxEvent, { plainType: opts.plainType, plainContent: opts.plainContent });
|
118
|
-
return mxEvent;
|
119
|
-
}
|
120
|
-
|
121
|
-
/**
|
122
|
-
* Create a `MatrixEvent` representing a `m.room.encrypted` event which could not be decrypted.
|
123
|
-
*
|
124
|
-
* @param opts - Values for the event.
|
125
|
-
*/
|
126
|
-
export async function mkDecryptionFailureMatrixEvent(opts: {
|
127
|
-
/** Room ID of the event. */
|
128
|
-
roomId: string;
|
129
|
-
|
130
|
-
/** The sender of the event. */
|
131
|
-
sender: string;
|
132
|
-
|
133
|
-
/** The reason code for the failure */
|
134
|
-
code: DecryptionFailureCode;
|
135
|
-
|
136
|
-
/** A textual reason for the failure */
|
137
|
-
msg: string;
|
138
|
-
|
139
|
-
/** Optional `event_id` for the event. If provided will be used as event ID; else an ID is generated. */
|
140
|
-
eventId?: string;
|
141
|
-
}): Promise<MatrixEvent> {
|
142
|
-
const mxEvent = mkMatrixEvent({
|
143
|
-
type: EventType.RoomMessageEncrypted,
|
144
|
-
roomId: opts.roomId,
|
145
|
-
sender: opts.sender,
|
146
|
-
content: { algorithm: "m.megolm.v1.aes-sha2" },
|
147
|
-
eventId: opts.eventId,
|
148
|
-
});
|
149
|
-
|
150
|
-
const mockCrypto = {
|
151
|
-
decryptEvent: async (_ev): Promise<EventDecryptionResult> => {
|
152
|
-
throw new DecryptionError(opts.code, opts.msg);
|
153
|
-
},
|
154
|
-
} as Parameters<MatrixEvent["attemptDecryption"]>[0];
|
155
|
-
await mxEvent.attemptDecryption(mockCrypto);
|
156
|
-
return mxEvent;
|
157
|
-
}
|
158
|
-
|
159
|
-
/**
|
160
|
-
* Given an event previously returned by {@link mkDecryptionFailureMatrixEvent}, simulate a successful re-decryption
|
161
|
-
* attempt.
|
162
|
-
*
|
163
|
-
* @param mxEvent - The event that will be decrypted.
|
164
|
-
* @param opts - New data for the successful decryption.
|
165
|
-
*/
|
166
|
-
export async function decryptExistingEvent(
|
167
|
-
mxEvent: MatrixEvent,
|
168
|
-
opts: {
|
169
|
-
/** The type the event will have, once it has been decrypted. */
|
170
|
-
plainType: EventType | string;
|
171
|
-
|
172
|
-
/** The content the event will have, once it has been decrypted. */
|
173
|
-
plainContent: IContent;
|
174
|
-
},
|
175
|
-
): Promise<void> {
|
176
|
-
const decryptionResult: EventDecryptionResult = {
|
177
|
-
claimedEd25519Key: "",
|
178
|
-
clearEvent: {
|
179
|
-
type: opts.plainType,
|
180
|
-
content: opts.plainContent,
|
181
|
-
},
|
182
|
-
forwardingCurve25519KeyChain: [],
|
183
|
-
senderCurve25519Key: "",
|
184
|
-
untrusted: false,
|
185
|
-
};
|
186
|
-
|
187
|
-
const mockCrypto = {
|
188
|
-
decryptEvent: async (_ev): Promise<EventDecryptionResult> => decryptionResult,
|
189
|
-
} as Parameters<MatrixEvent["attemptDecryption"]>[0];
|
190
|
-
await mxEvent.attemptDecryption(mockCrypto);
|
191
|
-
}
|
package/src/types.ts
CHANGED
@@ -26,7 +26,6 @@ export * from "./@types/membership.ts";
|
|
26
26
|
export type * from "./@types/event.ts";
|
27
27
|
export type * from "./@types/events.ts";
|
28
28
|
export type * from "./@types/state_events.ts";
|
29
|
-
export type * from "./@types/AESEncryptedSecretStoragePayload.ts";
|
30
29
|
|
31
30
|
/** The different methods for device and user verification */
|
32
31
|
export enum VerificationMethod {
|