@unwanted/matrix-sdk-mini 34.12.0 → 36.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/git-revision.txt +1 -1
- package/lib/@types/event.d.ts +25 -19
- package/lib/@types/event.d.ts.map +1 -1
- package/lib/@types/event.js +5 -0
- package/lib/@types/event.js.map +1 -1
- package/lib/@types/global.d.js +0 -2
- package/lib/@types/global.d.js.map +1 -1
- package/lib/autodiscovery.d.ts +1 -1
- package/lib/autodiscovery.d.ts.map +1 -1
- package/lib/autodiscovery.js.map +1 -1
- package/lib/base64.d.ts +3 -6
- package/lib/base64.d.ts.map +1 -1
- package/lib/base64.js +43 -36
- package/lib/base64.js.map +1 -1
- package/lib/browser-index.d.ts.map +1 -1
- package/lib/browser-index.js +0 -11
- package/lib/browser-index.js.map +1 -1
- package/lib/client.d.ts +45 -1306
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +406 -2963
- package/lib/client.js.map +1 -1
- package/lib/digest.d.ts +2 -2
- package/lib/digest.d.ts.map +1 -1
- package/lib/digest.js +2 -2
- package/lib/digest.js.map +1 -1
- package/lib/embedded.d.ts +2 -23
- package/lib/embedded.d.ts.map +1 -1
- package/lib/embedded.js +82 -209
- package/lib/embedded.js.map +1 -1
- package/lib/event-mapper.d.ts.map +1 -1
- package/lib/event-mapper.js +0 -4
- package/lib/event-mapper.js.map +1 -1
- package/lib/feature.d.ts.map +1 -1
- package/lib/feature.js +2 -1
- package/lib/feature.js.map +1 -1
- package/lib/http-api/errors.d.ts +3 -3
- package/lib/http-api/errors.js +3 -3
- package/lib/http-api/errors.js.map +1 -1
- package/lib/http-api/utils.js +2 -2
- package/lib/http-api/utils.js.map +1 -1
- package/lib/matrix.d.ts +0 -25
- package/lib/matrix.d.ts.map +1 -1
- package/lib/matrix.js +1 -30
- package/lib/matrix.js.map +1 -1
- package/lib/models/MSC3089Branch.d.ts.map +1 -1
- package/lib/models/MSC3089Branch.js +0 -3
- package/lib/models/MSC3089Branch.js.map +1 -1
- package/lib/models/event-timeline-set.d.ts +6 -10
- package/lib/models/event-timeline-set.d.ts.map +1 -1
- package/lib/models/event-timeline-set.js +28 -36
- package/lib/models/event-timeline-set.js.map +1 -1
- package/lib/models/event-timeline.d.ts +7 -2
- package/lib/models/event-timeline.d.ts.map +1 -1
- package/lib/models/event-timeline.js +9 -30
- package/lib/models/event-timeline.js.map +1 -1
- package/lib/models/event.d.ts +12 -96
- package/lib/models/event.d.ts.map +1 -1
- package/lib/models/event.js +59 -286
- package/lib/models/event.js.map +1 -1
- package/lib/models/invites-ignorer-types.d.ts +27 -0
- package/lib/models/invites-ignorer-types.d.ts.map +1 -0
- package/lib/models/invites-ignorer-types.js +36 -0
- package/lib/models/invites-ignorer-types.js.map +1 -0
- package/lib/models/invites-ignorer.d.ts +2 -26
- package/lib/models/invites-ignorer.d.ts.map +1 -1
- package/lib/models/invites-ignorer.js +2 -27
- package/lib/models/invites-ignorer.js.map +1 -1
- package/lib/models/poll.d.ts.map +1 -1
- package/lib/models/poll.js +1 -5
- package/lib/models/poll.js.map +1 -1
- package/lib/models/relations-container.d.ts.map +1 -1
- package/lib/models/relations-container.js +1 -7
- package/lib/models/relations-container.js.map +1 -1
- package/lib/models/relations.d.ts +0 -1
- package/lib/models/relations.d.ts.map +1 -1
- package/lib/models/relations.js +0 -8
- package/lib/models/relations.js.map +1 -1
- package/lib/models/room-member.d.ts +6 -1
- package/lib/models/room-member.d.ts.map +1 -1
- package/lib/models/room-member.js +7 -1
- package/lib/models/room-member.js.map +1 -1
- package/lib/models/room-state.d.ts +2 -13
- package/lib/models/room-state.d.ts.map +1 -1
- package/lib/models/room-state.js +12 -56
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room.d.ts +8 -21
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +128 -163
- package/lib/models/room.js.map +1 -1
- package/lib/models/thread.d.ts.map +1 -1
- package/lib/models/thread.js +5 -4
- package/lib/models/thread.js.map +1 -1
- package/lib/oidc/authorize.d.ts +2 -2
- package/lib/oidc/authorize.d.ts.map +1 -1
- package/lib/oidc/authorize.js +5 -5
- package/lib/oidc/authorize.js.map +1 -1
- package/lib/oidc/discovery.d.ts +8 -0
- package/lib/oidc/discovery.d.ts.map +1 -1
- package/lib/oidc/discovery.js +22 -11
- package/lib/oidc/discovery.js.map +1 -1
- package/lib/oidc/index.d.ts +3 -4
- package/lib/oidc/index.d.ts.map +1 -1
- package/lib/oidc/index.js.map +1 -1
- package/lib/oidc/register.js +3 -3
- package/lib/oidc/register.js.map +1 -1
- package/lib/oidc/tokenRefresher.d.ts.map +1 -1
- package/lib/oidc/tokenRefresher.js +6 -5
- package/lib/oidc/tokenRefresher.js.map +1 -1
- package/lib/oidc/validate.d.ts +9 -23
- package/lib/oidc/validate.d.ts.map +1 -1
- package/lib/oidc/validate.js +13 -28
- package/lib/oidc/validate.js.map +1 -1
- package/lib/randomstring.d.ts +30 -3
- package/lib/randomstring.d.ts.map +1 -1
- package/lib/randomstring.js +68 -16
- package/lib/randomstring.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts +3 -4
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +55 -102
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sliding-sync.js +9 -6
- package/lib/sliding-sync.js.map +1 -1
- package/lib/store/indexeddb-local-backend.js +4 -2
- package/lib/store/indexeddb-local-backend.js.map +1 -1
- package/lib/store/indexeddb.d.ts +1 -1
- package/lib/store/indexeddb.d.ts.map +1 -1
- package/lib/store/indexeddb.js.map +1 -1
- package/lib/sync-accumulator.d.ts +6 -4
- package/lib/sync-accumulator.d.ts.map +1 -1
- package/lib/sync-accumulator.js +23 -12
- package/lib/sync-accumulator.js.map +1 -1
- package/lib/sync.d.ts +10 -13
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +94 -115
- package/lib/sync.js.map +1 -1
- package/lib/testing.d.ts +13 -44
- package/lib/testing.d.ts.map +1 -1
- package/lib/testing.js +36 -99
- package/lib/testing.js.map +1 -1
- package/lib/types.d.ts +0 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +14 -15
- package/src/@types/event.ts +19 -36
- package/src/@types/global.d.ts +21 -4
- package/src/autodiscovery.ts +1 -1
- package/src/base64.ts +38 -40
- package/src/browser-index.ts +0 -11
- package/src/client.ts +175 -3136
- package/src/digest.ts +3 -3
- package/src/embedded.ts +43 -149
- package/src/event-mapper.ts +0 -4
- package/src/feature.ts +1 -0
- package/src/http-api/errors.ts +3 -3
- package/src/http-api/utils.ts +2 -2
- package/src/matrix.ts +0 -41
- package/src/models/MSC3089Branch.ts +0 -3
- package/src/models/event-timeline-set.ts +17 -38
- package/src/models/event-timeline.ts +11 -26
- package/src/models/event.ts +54 -295
- package/src/models/invites-ignorer-types.ts +48 -0
- package/src/models/invites-ignorer.ts +7 -42
- package/src/models/poll.ts +0 -6
- package/src/models/relations-container.ts +1 -8
- package/src/models/relations.ts +0 -8
- package/src/models/room-member.ts +16 -1
- package/src/models/room-state.ts +4 -37
- package/src/models/room.ts +34 -69
- package/src/models/thread.ts +4 -3
- package/src/oidc/authorize.ts +7 -7
- package/src/oidc/discovery.ts +16 -10
- package/src/oidc/index.ts +3 -4
- package/src/oidc/register.ts +3 -3
- package/src/oidc/tokenRefresher.ts +3 -2
- package/src/oidc/validate.ts +40 -63
- package/src/randomstring.ts +65 -19
- package/src/sliding-sync-sdk.ts +10 -83
- package/src/sliding-sync.ts +6 -6
- package/src/store/indexeddb-local-backend.ts +2 -2
- package/src/store/indexeddb.ts +1 -1
- package/src/sync-accumulator.ts +33 -16
- package/src/sync.ts +112 -143
- package/src/testing.ts +36 -103
- package/src/types.ts +0 -1
- package/CHANGELOG.md +0 -5910
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
- package/lib/@types/crypto.d.ts +0 -47
- package/lib/@types/crypto.d.ts.map +0 -1
- package/lib/@types/crypto.js +0 -1
- package/lib/@types/crypto.js.map +0 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
- package/lib/common-crypto/CryptoBackend.d.ts +0 -240
- package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
- package/lib/common-crypto/CryptoBackend.js +0 -73
- package/lib/common-crypto/CryptoBackend.js.map +0 -1
- package/lib/common-crypto/key-passphrase.d.ts +0 -14
- package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
- package/lib/common-crypto/key-passphrase.js +0 -33
- package/lib/common-crypto/key-passphrase.js.map +0 -1
- package/lib/crypto/CrossSigning.d.ts +0 -184
- package/lib/crypto/CrossSigning.d.ts.map +0 -1
- package/lib/crypto/CrossSigning.js +0 -718
- package/lib/crypto/CrossSigning.js.map +0 -1
- package/lib/crypto/DeviceList.d.ts +0 -216
- package/lib/crypto/DeviceList.d.ts.map +0 -1
- package/lib/crypto/DeviceList.js +0 -892
- package/lib/crypto/DeviceList.js.map +0 -1
- package/lib/crypto/EncryptionSetup.d.ts +0 -152
- package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
- package/lib/crypto/EncryptionSetup.js +0 -356
- package/lib/crypto/EncryptionSetup.js.map +0 -1
- package/lib/crypto/OlmDevice.d.ts +0 -457
- package/lib/crypto/OlmDevice.d.ts.map +0 -1
- package/lib/crypto/OlmDevice.js +0 -1241
- package/lib/crypto/OlmDevice.js.map +0 -1
- package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
- package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
- package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
- package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
- package/lib/crypto/RoomList.d.ts +0 -26
- package/lib/crypto/RoomList.d.ts.map +0 -1
- package/lib/crypto/RoomList.js +0 -71
- package/lib/crypto/RoomList.js.map +0 -1
- package/lib/crypto/SecretSharing.d.ts +0 -24
- package/lib/crypto/SecretSharing.d.ts.map +0 -1
- package/lib/crypto/SecretSharing.js +0 -194
- package/lib/crypto/SecretSharing.js.map +0 -1
- package/lib/crypto/SecretStorage.d.ts +0 -55
- package/lib/crypto/SecretStorage.d.ts.map +0 -1
- package/lib/crypto/SecretStorage.js +0 -118
- package/lib/crypto/SecretStorage.js.map +0 -1
- package/lib/crypto/aes.d.ts +0 -6
- package/lib/crypto/aes.d.ts.map +0 -1
- package/lib/crypto/aes.js +0 -24
- package/lib/crypto/aes.js.map +0 -1
- package/lib/crypto/algorithms/base.d.ts +0 -156
- package/lib/crypto/algorithms/base.d.ts.map +0 -1
- package/lib/crypto/algorithms/base.js +0 -187
- package/lib/crypto/algorithms/base.js.map +0 -1
- package/lib/crypto/algorithms/index.d.ts +0 -4
- package/lib/crypto/algorithms/index.d.ts.map +0 -1
- package/lib/crypto/algorithms/index.js +0 -20
- package/lib/crypto/algorithms/index.js.map +0 -1
- package/lib/crypto/algorithms/megolm.d.ts +0 -385
- package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
- package/lib/crypto/algorithms/megolm.js +0 -1822
- package/lib/crypto/algorithms/megolm.js.map +0 -1
- package/lib/crypto/algorithms/olm.d.ts +0 -5
- package/lib/crypto/algorithms/olm.d.ts.map +0 -1
- package/lib/crypto/algorithms/olm.js +0 -299
- package/lib/crypto/algorithms/olm.js.map +0 -1
- package/lib/crypto/api.d.ts +0 -32
- package/lib/crypto/api.d.ts.map +0 -1
- package/lib/crypto/api.js +0 -22
- package/lib/crypto/api.js.map +0 -1
- package/lib/crypto/backup.d.ts +0 -227
- package/lib/crypto/backup.d.ts.map +0 -1
- package/lib/crypto/backup.js +0 -824
- package/lib/crypto/backup.js.map +0 -1
- package/lib/crypto/crypto.d.ts +0 -3
- package/lib/crypto/crypto.d.ts.map +0 -1
- package/lib/crypto/crypto.js +0 -19
- package/lib/crypto/crypto.js.map +0 -1
- package/lib/crypto/dehydration.d.ts +0 -34
- package/lib/crypto/dehydration.d.ts.map +0 -1
- package/lib/crypto/dehydration.js +0 -252
- package/lib/crypto/dehydration.js.map +0 -1
- package/lib/crypto/device-converter.d.ts +0 -9
- package/lib/crypto/device-converter.d.ts.map +0 -1
- package/lib/crypto/device-converter.js +0 -42
- package/lib/crypto/device-converter.js.map +0 -1
- package/lib/crypto/deviceinfo.d.ts +0 -99
- package/lib/crypto/deviceinfo.d.ts.map +0 -1
- package/lib/crypto/deviceinfo.js +0 -148
- package/lib/crypto/deviceinfo.js.map +0 -1
- package/lib/crypto/index.d.ts +0 -1210
- package/lib/crypto/index.d.ts.map +0 -1
- package/lib/crypto/index.js +0 -4101
- package/lib/crypto/index.js.map +0 -1
- package/lib/crypto/key_passphrase.d.ts +0 -14
- package/lib/crypto/key_passphrase.d.ts.map +0 -1
- package/lib/crypto/key_passphrase.js +0 -44
- package/lib/crypto/key_passphrase.js.map +0 -1
- package/lib/crypto/keybackup.d.ts +0 -18
- package/lib/crypto/keybackup.d.ts.map +0 -1
- package/lib/crypto/keybackup.js +0 -1
- package/lib/crypto/keybackup.js.map +0 -1
- package/lib/crypto/olmlib.d.ts +0 -129
- package/lib/crypto/olmlib.d.ts.map +0 -1
- package/lib/crypto/olmlib.js +0 -492
- package/lib/crypto/olmlib.js.map +0 -1
- package/lib/crypto/recoverykey.d.ts +0 -2
- package/lib/crypto/recoverykey.d.ts.map +0 -1
- package/lib/crypto/recoverykey.js +0 -19
- package/lib/crypto/recoverykey.js.map +0 -1
- package/lib/crypto/store/base.d.ts +0 -252
- package/lib/crypto/store/base.d.ts.map +0 -1
- package/lib/crypto/store/base.js +0 -64
- package/lib/crypto/store/base.js.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
- package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
- package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
- package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
- package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/localStorage-crypto-store.js +0 -531
- package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
- package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
- package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
- package/lib/crypto/store/memory-crypto-store.js +0 -622
- package/lib/crypto/store/memory-crypto-store.js.map +0 -1
- package/lib/crypto/verification/Base.d.ts +0 -105
- package/lib/crypto/verification/Base.d.ts.map +0 -1
- package/lib/crypto/verification/Base.js +0 -372
- package/lib/crypto/verification/Base.js.map +0 -1
- package/lib/crypto/verification/Error.d.ts +0 -35
- package/lib/crypto/verification/Error.d.ts.map +0 -1
- package/lib/crypto/verification/Error.js +0 -86
- package/lib/crypto/verification/Error.js.map +0 -1
- package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
- package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
- package/lib/crypto/verification/IllegalMethod.js +0 -43
- package/lib/crypto/verification/IllegalMethod.js.map +0 -1
- package/lib/crypto/verification/QRCode.d.ts +0 -51
- package/lib/crypto/verification/QRCode.d.ts.map +0 -1
- package/lib/crypto/verification/QRCode.js +0 -277
- package/lib/crypto/verification/QRCode.js.map +0 -1
- package/lib/crypto/verification/SAS.d.ts +0 -27
- package/lib/crypto/verification/SAS.d.ts.map +0 -1
- package/lib/crypto/verification/SAS.js +0 -485
- package/lib/crypto/verification/SAS.js.map +0 -1
- package/lib/crypto/verification/SASDecimal.d.ts +0 -8
- package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
- package/lib/crypto/verification/SASDecimal.js +0 -34
- package/lib/crypto/verification/SASDecimal.js.map +0 -1
- package/lib/crypto/verification/request/Channel.d.ts +0 -18
- package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
- package/lib/crypto/verification/request/Channel.js +0 -1
- package/lib/crypto/verification/request/Channel.js.map +0 -1
- package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
- package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
- package/lib/crypto/verification/request/InRoomChannel.js +0 -351
- package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
- package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
- package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
- package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
- package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
- package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
- package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
- package/lib/crypto/verification/request/VerificationRequest.js +0 -937
- package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
- package/lib/crypto-api/CryptoEvent.d.ts +0 -69
- package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
- package/lib/crypto-api/CryptoEvent.js +0 -33
- package/lib/crypto-api/CryptoEvent.js.map +0 -1
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
- package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
- package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
- package/lib/crypto-api/index.d.ts +0 -978
- package/lib/crypto-api/index.d.ts.map +0 -1
- package/lib/crypto-api/index.js +0 -304
- package/lib/crypto-api/index.js.map +0 -1
- package/lib/crypto-api/key-passphrase.d.ts +0 -11
- package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
- package/lib/crypto-api/key-passphrase.js +0 -51
- package/lib/crypto-api/key-passphrase.js.map +0 -1
- package/lib/crypto-api/keybackup.d.ts +0 -88
- package/lib/crypto-api/keybackup.d.ts.map +0 -1
- package/lib/crypto-api/keybackup.js +0 -1
- package/lib/crypto-api/keybackup.js.map +0 -1
- package/lib/crypto-api/recovery-key.d.ts +0 -11
- package/lib/crypto-api/recovery-key.d.ts.map +0 -1
- package/lib/crypto-api/recovery-key.js +0 -65
- package/lib/crypto-api/recovery-key.js.map +0 -1
- package/lib/crypto-api/verification.d.ts +0 -344
- package/lib/crypto-api/verification.d.ts.map +0 -1
- package/lib/crypto-api/verification.js +0 -91
- package/lib/crypto-api/verification.js.map +0 -1
- package/lib/matrixrtc/CallMembership.d.ts +0 -66
- package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
- package/lib/matrixrtc/CallMembership.js +0 -197
- package/lib/matrixrtc/CallMembership.js.map +0 -1
- package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
- package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
- package/lib/matrixrtc/LivekitFocus.js +0 -20
- package/lib/matrixrtc/LivekitFocus.js.map +0 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
- package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
- package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
- package/lib/matrixrtc/focus.d.ts +0 -10
- package/lib/matrixrtc/focus.d.ts.map +0 -1
- package/lib/matrixrtc/focus.js +0 -1
- package/lib/matrixrtc/focus.js.map +0 -1
- package/lib/matrixrtc/index.d.ts +0 -7
- package/lib/matrixrtc/index.d.ts.map +0 -1
- package/lib/matrixrtc/index.js +0 -21
- package/lib/matrixrtc/index.js.map +0 -1
- package/lib/matrixrtc/types.d.ts +0 -19
- package/lib/matrixrtc/types.d.ts.map +0 -1
- package/lib/matrixrtc/types.js +0 -1
- package/lib/matrixrtc/types.js.map +0 -1
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
- package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
- package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
- package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
- package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousChannel.js +0 -1
- package/lib/rendezvous/RendezvousChannel.js.map +0 -1
- package/lib/rendezvous/RendezvousCode.d.ts +0 -9
- package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousCode.js +0 -1
- package/lib/rendezvous/RendezvousCode.js.map +0 -1
- package/lib/rendezvous/RendezvousError.d.ts +0 -6
- package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousError.js +0 -23
- package/lib/rendezvous/RendezvousError.js.map +0 -1
- package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
- package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousFailureReason.js +0 -38
- package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
- package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
- package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousIntent.js +0 -22
- package/lib/rendezvous/RendezvousIntent.js.map +0 -1
- package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
- package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
- package/lib/rendezvous/RendezvousTransport.js +0 -1
- package/lib/rendezvous/RendezvousTransport.js.map +0 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
- package/lib/rendezvous/channels/index.d.ts +0 -2
- package/lib/rendezvous/channels/index.d.ts.map +0 -1
- package/lib/rendezvous/channels/index.js +0 -18
- package/lib/rendezvous/channels/index.js.map +0 -1
- package/lib/rendezvous/index.d.ts +0 -10
- package/lib/rendezvous/index.d.ts.map +0 -1
- package/lib/rendezvous/index.js +0 -23
- package/lib/rendezvous/index.js.map +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
- package/lib/rendezvous/transports/index.d.ts +0 -2
- package/lib/rendezvous/transports/index.d.ts.map +0 -1
- package/lib/rendezvous/transports/index.js +0 -18
- package/lib/rendezvous/transports/index.js.map +0 -1
- package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
- package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
- package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
- package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
- package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
- package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
- package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
- package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
- package/lib/rust-crypto/KeyClaimManager.js +0 -82
- package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
- package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
- package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
- package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
- package/lib/rust-crypto/RoomEncryptor.js +0 -299
- package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
- package/lib/rust-crypto/backup.d.ts +0 -254
- package/lib/rust-crypto/backup.d.ts.map +0 -1
- package/lib/rust-crypto/backup.js +0 -837
- package/lib/rust-crypto/backup.js.map +0 -1
- package/lib/rust-crypto/constants.d.ts +0 -3
- package/lib/rust-crypto/constants.d.ts.map +0 -1
- package/lib/rust-crypto/constants.js +0 -19
- package/lib/rust-crypto/constants.js.map +0 -1
- package/lib/rust-crypto/device-converter.d.ts +0 -28
- package/lib/rust-crypto/device-converter.d.ts.map +0 -1
- package/lib/rust-crypto/device-converter.js +0 -123
- package/lib/rust-crypto/device-converter.js.map +0 -1
- package/lib/rust-crypto/index.d.ts +0 -61
- package/lib/rust-crypto/index.d.ts.map +0 -1
- package/lib/rust-crypto/index.js +0 -152
- package/lib/rust-crypto/index.js.map +0 -1
- package/lib/rust-crypto/libolm_migration.d.ts +0 -81
- package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
- package/lib/rust-crypto/libolm_migration.js +0 -459
- package/lib/rust-crypto/libolm_migration.js.map +0 -1
- package/lib/rust-crypto/rust-crypto.d.ts +0 -556
- package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
- package/lib/rust-crypto/rust-crypto.js +0 -2016
- package/lib/rust-crypto/rust-crypto.js.map +0 -1
- package/lib/rust-crypto/secret-storage.d.ts +0 -22
- package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
- package/lib/rust-crypto/secret-storage.js +0 -63
- package/lib/rust-crypto/secret-storage.js.map +0 -1
- package/lib/rust-crypto/verification.d.ts +0 -319
- package/lib/rust-crypto/verification.d.ts.map +0 -1
- package/lib/rust-crypto/verification.js +0 -816
- package/lib/rust-crypto/verification.js.map +0 -1
- package/lib/secret-storage.d.ts +0 -370
- package/lib/secret-storage.d.ts.map +0 -1
- package/lib/secret-storage.js +0 -466
- package/lib/secret-storage.js.map +0 -1
- package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
- package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
- package/lib/utils/decryptAESSecretStorageItem.js +0 -50
- package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
- package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
- package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
- package/lib/utils/encryptAESSecretStorageItem.js +0 -68
- package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
- package/lib/utils/internal/deriveKeys.d.ts +0 -10
- package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
- package/lib/utils/internal/deriveKeys.js +0 -60
- package/lib/utils/internal/deriveKeys.js.map +0 -1
- package/lib/webrtc/audioContext.d.ts +0 -15
- package/lib/webrtc/audioContext.d.ts.map +0 -1
- package/lib/webrtc/audioContext.js +0 -46
- package/lib/webrtc/audioContext.js.map +0 -1
- package/lib/webrtc/call.d.ts +0 -560
- package/lib/webrtc/call.d.ts.map +0 -1
- package/lib/webrtc/call.js +0 -2541
- package/lib/webrtc/call.js.map +0 -1
- package/lib/webrtc/callEventHandler.d.ts +0 -37
- package/lib/webrtc/callEventHandler.d.ts.map +0 -1
- package/lib/webrtc/callEventHandler.js +0 -344
- package/lib/webrtc/callEventHandler.js.map +0 -1
- package/lib/webrtc/callEventTypes.d.ts +0 -73
- package/lib/webrtc/callEventTypes.d.ts.map +0 -1
- package/lib/webrtc/callEventTypes.js +0 -13
- package/lib/webrtc/callEventTypes.js.map +0 -1
- package/lib/webrtc/callFeed.d.ts +0 -128
- package/lib/webrtc/callFeed.d.ts.map +0 -1
- package/lib/webrtc/callFeed.js +0 -289
- package/lib/webrtc/callFeed.js.map +0 -1
- package/lib/webrtc/groupCall.d.ts +0 -323
- package/lib/webrtc/groupCall.d.ts.map +0 -1
- package/lib/webrtc/groupCall.js +0 -1337
- package/lib/webrtc/groupCall.js.map +0 -1
- package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
- package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
- package/lib/webrtc/groupCallEventHandler.js +0 -178
- package/lib/webrtc/groupCallEventHandler.js.map +0 -1
- package/lib/webrtc/mediaHandler.d.ts +0 -89
- package/lib/webrtc/mediaHandler.d.ts.map +0 -1
- package/lib/webrtc/mediaHandler.js +0 -437
- package/lib/webrtc/mediaHandler.js.map +0 -1
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
- package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
- package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
- package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
- package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
- package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
- package/lib/webrtc/stats/connectionStats.d.ts +0 -28
- package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStats.js +0 -26
- package/lib/webrtc/stats/connectionStats.js.map +0 -1
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
- package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
- package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
- package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
- package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
- package/lib/webrtc/stats/groupCallStats.js +0 -78
- package/lib/webrtc/stats/groupCallStats.js.map +0 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
- package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
- package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
- package/lib/webrtc/stats/statsReport.d.ts +0 -99
- package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
- package/lib/webrtc/stats/statsReport.js +0 -32
- package/lib/webrtc/stats/statsReport.js.map +0 -1
- package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
- package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
- package/lib/webrtc/stats/statsReportEmitter.js +0 -33
- package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
- package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
- package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
- package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
- package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/transportStats.d.ts +0 -11
- package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
- package/lib/webrtc/stats/transportStats.js +0 -1
- package/lib/webrtc/stats/transportStats.js.map +0 -1
- package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
- package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
- package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
- package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
- package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
- package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
- package/lib/webrtc/stats/valueFormatter.js +0 -25
- package/lib/webrtc/stats/valueFormatter.js.map +0 -1
- package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
- package/src/@types/crypto.ts +0 -73
- package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
- package/src/common-crypto/CryptoBackend.ts +0 -302
- package/src/common-crypto/README.md +0 -4
- package/src/common-crypto/key-passphrase.ts +0 -43
- package/src/crypto/CrossSigning.ts +0 -773
- package/src/crypto/DeviceList.ts +0 -989
- package/src/crypto/EncryptionSetup.ts +0 -351
- package/src/crypto/OlmDevice.ts +0 -1500
- package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
- package/src/crypto/RoomList.ts +0 -70
- package/src/crypto/SecretSharing.ts +0 -240
- package/src/crypto/SecretStorage.ts +0 -136
- package/src/crypto/aes.ts +0 -23
- package/src/crypto/algorithms/base.ts +0 -236
- package/src/crypto/algorithms/index.ts +0 -20
- package/src/crypto/algorithms/megolm.ts +0 -2216
- package/src/crypto/algorithms/olm.ts +0 -381
- package/src/crypto/api.ts +0 -70
- package/src/crypto/backup.ts +0 -922
- package/src/crypto/crypto.ts +0 -18
- package/src/crypto/dehydration.ts +0 -272
- package/src/crypto/device-converter.ts +0 -45
- package/src/crypto/deviceinfo.ts +0 -158
- package/src/crypto/index.ts +0 -4418
- package/src/crypto/key_passphrase.ts +0 -42
- package/src/crypto/keybackup.ts +0 -47
- package/src/crypto/olmlib.ts +0 -539
- package/src/crypto/recoverykey.ts +0 -18
- package/src/crypto/store/base.ts +0 -348
- package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
- package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
- package/src/crypto/store/localStorage-crypto-store.ts +0 -579
- package/src/crypto/store/memory-crypto-store.ts +0 -680
- package/src/crypto/verification/Base.ts +0 -409
- package/src/crypto/verification/Error.ts +0 -76
- package/src/crypto/verification/IllegalMethod.ts +0 -50
- package/src/crypto/verification/QRCode.ts +0 -310
- package/src/crypto/verification/SAS.ts +0 -494
- package/src/crypto/verification/SASDecimal.ts +0 -37
- package/src/crypto/verification/request/Channel.ts +0 -34
- package/src/crypto/verification/request/InRoomChannel.ts +0 -371
- package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
- package/src/crypto/verification/request/VerificationRequest.ts +0 -976
- package/src/crypto-api/CryptoEvent.ts +0 -93
- package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
- package/src/crypto-api/index.ts +0 -1175
- package/src/crypto-api/key-passphrase.ts +0 -58
- package/src/crypto-api/keybackup.ts +0 -115
- package/src/crypto-api/recovery-key.ts +0 -69
- package/src/crypto-api/verification.ts +0 -408
- package/src/matrixrtc/CallMembership.ts +0 -247
- package/src/matrixrtc/LivekitFocus.ts +0 -39
- package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
- package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
- package/src/matrixrtc/focus.ts +0 -25
- package/src/matrixrtc/index.ts +0 -22
- package/src/matrixrtc/types.ts +0 -36
- package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
- package/src/rendezvous/RendezvousChannel.ts +0 -48
- package/src/rendezvous/RendezvousCode.ts +0 -25
- package/src/rendezvous/RendezvousError.ts +0 -26
- package/src/rendezvous/RendezvousFailureReason.ts +0 -49
- package/src/rendezvous/RendezvousIntent.ts +0 -20
- package/src/rendezvous/RendezvousTransport.ts +0 -58
- package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
- package/src/rendezvous/channels/index.ts +0 -17
- package/src/rendezvous/index.ts +0 -25
- package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
- package/src/rendezvous/transports/index.ts +0 -17
- package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
- package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
- package/src/rust-crypto/KeyClaimManager.ts +0 -86
- package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
- package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
- package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
- package/src/rust-crypto/RoomEncryptor.ts +0 -352
- package/src/rust-crypto/backup.ts +0 -881
- package/src/rust-crypto/constants.ts +0 -18
- package/src/rust-crypto/device-converter.ts +0 -128
- package/src/rust-crypto/index.ts +0 -237
- package/src/rust-crypto/libolm_migration.ts +0 -530
- package/src/rust-crypto/rust-crypto.ts +0 -2205
- package/src/rust-crypto/secret-storage.ts +0 -60
- package/src/rust-crypto/verification.ts +0 -830
- package/src/secret-storage.ts +0 -693
- package/src/utils/decryptAESSecretStorageItem.ts +0 -54
- package/src/utils/encryptAESSecretStorageItem.ts +0 -73
- package/src/utils/internal/deriveKeys.ts +0 -63
- package/src/webrtc/audioContext.ts +0 -44
- package/src/webrtc/call.ts +0 -3074
- package/src/webrtc/callEventHandler.ts +0 -425
- package/src/webrtc/callEventTypes.ts +0 -93
- package/src/webrtc/callFeed.ts +0 -364
- package/src/webrtc/groupCall.ts +0 -1735
- package/src/webrtc/groupCallEventHandler.ts +0 -234
- package/src/webrtc/mediaHandler.ts +0 -484
- package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
- package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
- package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
- package/src/webrtc/stats/connectionStats.ts +0 -47
- package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
- package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
- package/src/webrtc/stats/groupCallStats.ts +0 -93
- package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
- package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
- package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
- package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
- package/src/webrtc/stats/statsReport.ts +0 -133
- package/src/webrtc/stats/statsReportEmitter.ts +0 -49
- package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
- package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
- package/src/webrtc/stats/transportStats.ts +0 -26
- package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
- package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -35,6 +35,11 @@ export interface IAddEventOptions extends Pick<IMarkerFoundOptions, "timelineWas
|
|
35
35
|
toStartOfTimeline: boolean;
|
36
36
|
/** The state events to reconcile metadata from */
|
37
37
|
roomState?: RoomState;
|
38
|
+
/** Whether to add timeline events to the state as was done in legacy sync v2.
|
39
|
+
* If true then timeline events will be added to the state.
|
40
|
+
* In sync v2 with org.matrix.msc4222.use_state_after and simplified sliding sync,
|
41
|
+
* all state arrives explicitly and timeline events should not be added. */
|
42
|
+
addToState: boolean;
|
38
43
|
}
|
39
44
|
|
40
45
|
export enum Direction {
|
@@ -63,27 +68,7 @@ export class EventTimeline {
|
|
63
68
|
* @param toStartOfTimeline - if true the event's forwardLooking flag is set false
|
64
69
|
*/
|
65
70
|
public static setEventMetadata(event: MatrixEvent, stateContext: RoomState, toStartOfTimeline: boolean): void {
|
66
|
-
|
67
|
-
// in the members object, we still generate a sentinel but it doesn't
|
68
|
-
// have a membership event, so test to see if events.member is set. We
|
69
|
-
// check this to avoid overriding non-sentinel members by sentinel ones
|
70
|
-
// when adding the event to a filtered timeline
|
71
|
-
if (!event.sender?.events?.member) {
|
72
|
-
event.sender = stateContext.getSentinelMember(event.getSender()!);
|
73
|
-
}
|
74
|
-
if (!event.target?.events?.member && event.getType() === EventType.RoomMember) {
|
75
|
-
event.target = stateContext.getSentinelMember(event.getStateKey()!);
|
76
|
-
}
|
77
|
-
|
78
|
-
if (event.isState()) {
|
79
|
-
// room state has no concept of 'old' or 'current', but we want the
|
80
|
-
// room state to regress back to previous values if toStartOfTimeline
|
81
|
-
// is set, which means inspecting prev_content if it exists. This
|
82
|
-
// is done by toggling the forwardLooking flag.
|
83
|
-
if (toStartOfTimeline) {
|
84
|
-
event.forwardLooking = false;
|
85
|
-
}
|
86
|
-
}
|
71
|
+
event.setMetadata(stateContext, toStartOfTimeline);
|
87
72
|
}
|
88
73
|
|
89
74
|
private readonly roomId: string | null;
|
@@ -127,7 +112,7 @@ export class EventTimeline {
|
|
127
112
|
public constructor(private readonly eventTimelineSet: EventTimelineSet) {
|
128
113
|
this.roomId = eventTimelineSet.room?.roomId ?? null;
|
129
114
|
if (this.roomId) {
|
130
|
-
this.startState = new RoomState(this.roomId
|
115
|
+
this.startState = new RoomState(this.roomId);
|
131
116
|
this.endState = new RoomState(this.roomId);
|
132
117
|
}
|
133
118
|
|
@@ -362,7 +347,7 @@ export class EventTimeline {
|
|
362
347
|
*/
|
363
348
|
public addEvent(
|
364
349
|
event: MatrixEvent,
|
365
|
-
{ toStartOfTimeline, roomState, timelineWasEmpty }: IAddEventOptions
|
350
|
+
{ toStartOfTimeline, roomState, timelineWasEmpty, addToState }: IAddEventOptions,
|
366
351
|
): void {
|
367
352
|
if (!roomState) {
|
368
353
|
roomState = toStartOfTimeline ? this.startState : this.endState;
|
@@ -374,7 +359,7 @@ export class EventTimeline {
|
|
374
359
|
EventTimeline.setEventMetadata(event, roomState!, toStartOfTimeline);
|
375
360
|
|
376
361
|
// modify state but only on unfiltered timelineSets
|
377
|
-
if (event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
362
|
+
if (addToState && event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
378
363
|
roomState?.setStateEvents([event], { timelineWasEmpty });
|
379
364
|
// it is possible that the act of setting the state event means we
|
380
365
|
// can set more metadata (specifically sender/target props), so try
|
@@ -417,14 +402,14 @@ export class EventTimeline {
|
|
417
402
|
*
|
418
403
|
* @internal
|
419
404
|
*/
|
420
|
-
public insertEvent(event: MatrixEvent, insertIndex: number, roomState: RoomState): void {
|
405
|
+
public insertEvent(event: MatrixEvent, insertIndex: number, roomState: RoomState, addToState: boolean): void {
|
421
406
|
const timelineSet = this.getTimelineSet();
|
422
407
|
|
423
408
|
if (timelineSet.room) {
|
424
409
|
EventTimeline.setEventMetadata(event, roomState, false);
|
425
410
|
|
426
411
|
// modify state but only on unfiltered timelineSets
|
427
|
-
if (event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
412
|
+
if (addToState && event.isState() && timelineSet.room.getUnfilteredTimelineSet() === timelineSet) {
|
428
413
|
roomState.setStateEvents([event], {});
|
429
414
|
// it is possible that the act of setting the state event means we
|
430
415
|
// can set more metadata (specifically sender/target props), so try
|
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,11 @@ 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 {
|
45
|
+
import { RoomState } from "./room-state.ts";
|
51
46
|
|
52
47
|
export { EventStatus } from "./event-status.ts";
|
53
48
|
|
@@ -232,6 +227,7 @@ export enum MatrixEventEvent {
|
|
232
227
|
Status = "Event.status",
|
233
228
|
Replaced = "Event.replaced",
|
234
229
|
RelationsCreated = "Event.relationsCreated",
|
230
|
+
SentinelUpdated = "Event.sentinelUpdated",
|
235
231
|
}
|
236
232
|
|
237
233
|
export type MatrixEventEmittedEvents = MatrixEventEvent | ThreadEvent.Update;
|
@@ -244,6 +240,7 @@ export type MatrixEventHandlerMap = {
|
|
244
240
|
[MatrixEventEvent.Status]: (event: MatrixEvent, status: EventStatus | null) => void;
|
245
241
|
[MatrixEventEvent.Replaced]: (event: MatrixEvent) => void;
|
246
242
|
[MatrixEventEvent.RelationsCreated]: (relationType: string, eventType: string) => void;
|
243
|
+
[MatrixEventEvent.SentinelUpdated]: () => void;
|
247
244
|
} & Pick<ThreadEventHandlerMap, ThreadEvent.Update>;
|
248
245
|
|
249
246
|
export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, MatrixEventHandlerMap> {
|
@@ -266,9 +263,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
266
263
|
private _hasCachedExtEv = false;
|
267
264
|
private _cachedExtEv: Optional<ExtensibleEvent> = undefined;
|
268
265
|
|
269
|
-
/** If we failed to decrypt this event, the reason for the failure. Otherwise, `null`. */
|
270
|
-
private _decryptionFailureReason: DecryptionFailureCode | null = null;
|
271
|
-
|
272
266
|
/* curve25519 key which we believe belongs to the sender of the event. See
|
273
267
|
* getSenderKey()
|
274
268
|
*/
|
@@ -289,17 +283,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
289
283
|
*/
|
290
284
|
private untrusted: boolean | null = null;
|
291
285
|
|
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
286
|
/* The txnId with which this event was sent if it was during this session,
|
304
287
|
* allows for a unique ID which does not change when the event comes back down sync.
|
305
288
|
*/
|
@@ -328,6 +311,7 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
328
311
|
* Should be read-only
|
329
312
|
*/
|
330
313
|
public sender: RoomMember | null = null;
|
314
|
+
|
331
315
|
/**
|
332
316
|
* The room member who is the target of this event, e.g.
|
333
317
|
* the invitee, the person being banned, etc.
|
@@ -335,6 +319,48 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
335
319
|
* Should be read-only
|
336
320
|
*/
|
337
321
|
public target: RoomMember | null = null;
|
322
|
+
|
323
|
+
/**
|
324
|
+
* Update the sentinels and forwardLooking flag for this event.
|
325
|
+
* @param stateContext - the room state to be queried
|
326
|
+
* @param toStartOfTimeline - if true the event's forwardLooking flag is set false
|
327
|
+
* @internal
|
328
|
+
*/
|
329
|
+
public setMetadata(stateContext: RoomState, toStartOfTimeline: boolean): void {
|
330
|
+
// If an event is an m.room.member state event then we should set the sentinels again in case setEventMetadata
|
331
|
+
// was already called before the state was applied and thus the sentinel points at the member from before this event.
|
332
|
+
const affectsSelf =
|
333
|
+
this.isState() && this.getType() === EventType.RoomMember && this.getSender() === this.getStateKey();
|
334
|
+
let changed = false;
|
335
|
+
// When we try to generate a sentinel member before we have that member
|
336
|
+
// in the members object, we still generate a sentinel but it doesn't
|
337
|
+
// have a membership event, so test to see if events.member is set. We
|
338
|
+
// check this to avoid overriding non-sentinel members by sentinel ones
|
339
|
+
// when adding the event to a filtered timeline
|
340
|
+
if (affectsSelf || !this.sender?.events?.member) {
|
341
|
+
const newSender = stateContext.getSentinelMember(this.getSender()!);
|
342
|
+
if (newSender !== this.sender) changed = true;
|
343
|
+
this.sender = newSender;
|
344
|
+
}
|
345
|
+
if (affectsSelf || (!this.target?.events?.member && this.getType() === EventType.RoomMember)) {
|
346
|
+
const newTarget = stateContext.getSentinelMember(this.getStateKey()!);
|
347
|
+
if (newTarget !== this.target) changed = true;
|
348
|
+
this.target = newTarget;
|
349
|
+
}
|
350
|
+
if (this.isState()) {
|
351
|
+
// room state has no concept of 'old' or 'current', but we want the
|
352
|
+
// room state to regress back to previous values if toStartOfTimeline
|
353
|
+
// is set, which means inspecting prev_content if it exists. This
|
354
|
+
// is done by toggling the forwardLooking flag.
|
355
|
+
if (toStartOfTimeline) {
|
356
|
+
this.forwardLooking = false;
|
357
|
+
}
|
358
|
+
}
|
359
|
+
if (changed) {
|
360
|
+
this.emit(MatrixEventEvent.SentinelUpdated);
|
361
|
+
}
|
362
|
+
}
|
363
|
+
|
338
364
|
/**
|
339
365
|
* The sending status of the event.
|
340
366
|
* @privateRemarks
|
@@ -357,12 +383,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
357
383
|
*/
|
358
384
|
public forwardLooking = true;
|
359
385
|
|
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
386
|
private readonly reEmitter: TypedReEmitter<MatrixEventEmittedEvents, MatrixEventHandlerMap>;
|
367
387
|
|
368
388
|
/**
|
@@ -559,9 +579,9 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
559
579
|
return {} as T;
|
560
580
|
}
|
561
581
|
if (this.clearEvent) {
|
562
|
-
return (this.clearEvent.content
|
582
|
+
return (this.clearEvent.content ?? {}) as T;
|
563
583
|
}
|
564
|
-
return (this.event.content
|
584
|
+
return (this.event.content ?? {}) as T;
|
565
585
|
}
|
566
586
|
|
567
587
|
/**
|
@@ -575,7 +595,7 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
575
595
|
if (this._localRedactionEvent) {
|
576
596
|
return {} as T;
|
577
597
|
} else if (this._replacingEvent) {
|
578
|
-
return this._replacingEvent.getContent()["m.new_content"]
|
598
|
+
return this._replacingEvent.getContent()["m.new_content"] ?? {};
|
579
599
|
} else {
|
580
600
|
return this.getOriginalContent();
|
581
601
|
}
|
@@ -714,154 +734,14 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
714
734
|
return UNSIGNED_MEMBERSHIP_FIELD.findIn<Membership | string>(unsigned);
|
715
735
|
}
|
716
736
|
|
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
737
|
public shouldAttemptDecryption(): boolean {
|
794
738
|
if (this.isRedacted()) return false;
|
795
|
-
if (this.isBeingDecrypted()) return false;
|
796
739
|
if (this.clearEvent) return false;
|
797
740
|
if (!this.isEncrypted()) return false;
|
798
741
|
|
799
742
|
return true;
|
800
743
|
}
|
801
744
|
|
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
745
|
/**
|
866
746
|
* Calculate the recipients for keyshare requests.
|
867
747
|
*
|
@@ -881,125 +761,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
881
761
|
return recipients;
|
882
762
|
}
|
883
763
|
|
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
764
|
/**
|
1004
765
|
* Gets the cleartext content for this event. If the event is not encrypted,
|
1005
766
|
* or encryption has not been completed, this will return null.
|
@@ -1250,7 +1011,9 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
1250
1011
|
const timeline = room.getLiveTimeline();
|
1251
1012
|
// We use insertEventIntoTimeline to insert it in timestamp order,
|
1252
1013
|
// because we don't know where it should go (until we have MSC4033).
|
1253
|
-
timeline
|
1014
|
+
timeline
|
1015
|
+
.getTimelineSet()
|
1016
|
+
.insertEventIntoTimeline(this, timeline, timeline.getState(EventTimeline.FORWARDS)!, false);
|
1254
1017
|
}
|
1255
1018
|
|
1256
1019
|
/**
|
@@ -1394,7 +1157,7 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
1394
1157
|
this.emit(MatrixEventEvent.LocalEventIdReplaced, this);
|
1395
1158
|
}
|
1396
1159
|
|
1397
|
-
this.localTimestamp = Date.now() - this.getAge()
|
1160
|
+
this.localTimestamp = Date.now() - (this.getAge() ?? 0);
|
1398
1161
|
}
|
1399
1162
|
|
1400
1163
|
/**
|
@@ -1631,7 +1394,7 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
1631
1394
|
* @param otherEvent - The other event to check against.
|
1632
1395
|
* @returns True if the events are the same, false otherwise.
|
1633
1396
|
*/
|
1634
|
-
public isEquivalentTo(otherEvent
|
1397
|
+
public isEquivalentTo(otherEvent?: MatrixEvent): boolean {
|
1635
1398
|
if (!otherEvent) return false;
|
1636
1399
|
if (otherEvent === this) return true;
|
1637
1400
|
const myProps = deepSortedObjectEntries(this.event);
|
@@ -1669,10 +1432,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
|
|
1669
1432
|
};
|
1670
1433
|
}
|
1671
1434
|
|
1672
|
-
public setVerificationRequest(request: VerificationRequest): void {
|
1673
|
-
this.verificationRequest = request;
|
1674
|
-
}
|
1675
|
-
|
1676
1435
|
public setTxnId(txnId: string): void {
|
1677
1436
|
this.txnId = txnId;
|
1678
1437
|
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
/*
|
2
|
+
Copyright 2022 The Matrix.org Foundation C.I.C.
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
you may not use this file except in compliance with the License.
|
5
|
+
You may obtain a copy of the License at
|
6
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
Unless required by applicable law or agreed to in writing, software
|
8
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
9
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
10
|
+
See the License for the specific language governing permissions and
|
11
|
+
limitations under the License.
|
12
|
+
*/
|
13
|
+
import { UnstableValue } from "matrix-events-sdk";
|
14
|
+
/// The event type storing the user's individual policies.
|
15
|
+
///
|
16
|
+
/// Exported for testing purposes.
|
17
|
+
export const POLICIES_ACCOUNT_EVENT_TYPE = new UnstableValue("m.policies", "org.matrix.msc3847.policies");
|
18
|
+
/// The key within the user's individual policies storing the user's ignored invites.
|
19
|
+
///
|
20
|
+
/// Exported for testing purposes.
|
21
|
+
export const IGNORE_INVITES_ACCOUNT_EVENT_KEY = new UnstableValue(
|
22
|
+
"m.ignore.invites",
|
23
|
+
"org.matrix.msc3847.ignore.invites",
|
24
|
+
);
|
25
|
+
/// The types of recommendations understood.
|
26
|
+
export enum PolicyRecommendation {
|
27
|
+
Ban = "m.ban",
|
28
|
+
}
|
29
|
+
/**
|
30
|
+
* The various scopes for policies.
|
31
|
+
*/
|
32
|
+
export enum PolicyScope {
|
33
|
+
/**
|
34
|
+
* The policy deals with an individual user, e.g. reject invites
|
35
|
+
* from this user.
|
36
|
+
*/
|
37
|
+
User = "m.policy.user",
|
38
|
+
/**
|
39
|
+
* The policy deals with a room, e.g. reject invites towards
|
40
|
+
* a specific room.
|
41
|
+
*/
|
42
|
+
Room = "m.policy.room",
|
43
|
+
/**
|
44
|
+
* The policy deals with a server, e.g. reject invites from
|
45
|
+
* this server.
|
46
|
+
*/
|
47
|
+
Server = "m.policy.server",
|
48
|
+
}
|
@@ -14,8 +14,6 @@ See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
15
15
|
*/
|
16
16
|
|
17
|
-
import { UnstableValue } from "matrix-events-sdk";
|
18
|
-
|
19
17
|
import { MatrixClient } from "../client.ts";
|
20
18
|
import { IContent, MatrixEvent } from "./event.ts";
|
21
19
|
import { EventTimeline } from "./event-timeline.ts";
|
@@ -23,47 +21,14 @@ import { Preset } from "../@types/partials.ts";
|
|
23
21
|
import { globToRegexp } from "../utils.ts";
|
24
22
|
import { Room } from "./room.ts";
|
25
23
|
import { EventType, StateEvents } from "../@types/event.ts";
|
24
|
+
import {
|
25
|
+
IGNORE_INVITES_ACCOUNT_EVENT_KEY,
|
26
|
+
POLICIES_ACCOUNT_EVENT_TYPE,
|
27
|
+
PolicyRecommendation,
|
28
|
+
PolicyScope,
|
29
|
+
} from "./invites-ignorer-types.ts";
|
26
30
|
|
27
|
-
|
28
|
-
///
|
29
|
-
/// Exported for testing purposes.
|
30
|
-
export const POLICIES_ACCOUNT_EVENT_TYPE = new UnstableValue("m.policies", "org.matrix.msc3847.policies");
|
31
|
-
|
32
|
-
/// The key within the user's individual policies storing the user's ignored invites.
|
33
|
-
///
|
34
|
-
/// Exported for testing purposes.
|
35
|
-
export const IGNORE_INVITES_ACCOUNT_EVENT_KEY = new UnstableValue(
|
36
|
-
"m.ignore.invites",
|
37
|
-
"org.matrix.msc3847.ignore.invites",
|
38
|
-
);
|
39
|
-
|
40
|
-
/// The types of recommendations understood.
|
41
|
-
export enum PolicyRecommendation {
|
42
|
-
Ban = "m.ban",
|
43
|
-
}
|
44
|
-
|
45
|
-
/**
|
46
|
-
* The various scopes for policies.
|
47
|
-
*/
|
48
|
-
export enum PolicyScope {
|
49
|
-
/**
|
50
|
-
* The policy deals with an individual user, e.g. reject invites
|
51
|
-
* from this user.
|
52
|
-
*/
|
53
|
-
User = "m.policy.user",
|
54
|
-
|
55
|
-
/**
|
56
|
-
* The policy deals with a room, e.g. reject invites towards
|
57
|
-
* a specific room.
|
58
|
-
*/
|
59
|
-
Room = "m.policy.room",
|
60
|
-
|
61
|
-
/**
|
62
|
-
* The policy deals with a server, e.g. reject invites from
|
63
|
-
* this server.
|
64
|
-
*/
|
65
|
-
Server = "m.policy.server",
|
66
|
-
}
|
31
|
+
export { IGNORE_INVITES_ACCOUNT_EVENT_KEY, POLICIES_ACCOUNT_EVENT_TYPE, PolicyRecommendation, PolicyScope };
|
67
32
|
|
68
33
|
const scopeToEventTypeMap: Record<PolicyScope, keyof StateEvents> = {
|
69
34
|
[PolicyScope.User]: EventType.PolicyRuleUser,
|