@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
package/src/oidc/validate.ts
CHANGED
@@ -20,13 +20,28 @@ import { IdTokenClaims, OidcMetadata, SigninResponse } from "oidc-client-ts";
|
|
20
20
|
import { logger } from "../logger.ts";
|
21
21
|
import { OidcError } from "./error.ts";
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
23
|
+
/**
|
24
|
+
* Metadata from OIDC authority discovery
|
25
|
+
* With validated properties required in type
|
26
|
+
*/
|
27
|
+
export type ValidatedAuthMetadata = Partial<OidcMetadata> &
|
28
|
+
Pick<
|
29
|
+
OidcMetadata,
|
30
|
+
| "issuer"
|
31
|
+
| "authorization_endpoint"
|
32
|
+
| "token_endpoint"
|
33
|
+
| "revocation_endpoint"
|
34
|
+
| "response_types_supported"
|
35
|
+
| "grant_types_supported"
|
36
|
+
| "code_challenge_methods_supported"
|
37
|
+
> & {
|
38
|
+
// MSC2965 extensions to the OIDC spec
|
39
|
+
account_management_uri?: string;
|
40
|
+
account_management_actions_supported?: string[];
|
41
|
+
// The OidcMetadata type from oidc-client-ts does not include `prompt_values_supported`
|
42
|
+
// even though it is part of the OIDC spec
|
43
|
+
prompt_values_supported?: string[];
|
44
|
+
};
|
30
45
|
|
31
46
|
const isRecord = (value: unknown): value is Record<string, unknown> =>
|
32
47
|
!!value && typeof value === "object" && !Array.isArray(value);
|
@@ -67,78 +82,39 @@ const requiredArrayValue = (wellKnown: Record<string, unknown>, key: string, val
|
|
67
82
|
* Validates issuer `.well-known/openid-configuration`
|
68
83
|
* As defined in RFC5785 https://openid.net/specs/openid-connect-discovery-1_0.html
|
69
84
|
* validates that OP is compatible with Element's OIDC flow
|
70
|
-
* @param
|
85
|
+
* @param authMetadata - json object
|
71
86
|
* @returns valid issuer config
|
72
87
|
* @throws Error - when issuer config is not found or is invalid
|
73
88
|
*/
|
74
|
-
export const
|
75
|
-
if (!isRecord(
|
89
|
+
export const validateAuthMetadata = (authMetadata: unknown): ValidatedAuthMetadata => {
|
90
|
+
if (!isRecord(authMetadata)) {
|
76
91
|
logger.error("Issuer configuration not found or malformed");
|
77
92
|
throw new Error(OidcError.OpSupport);
|
78
93
|
}
|
79
94
|
|
80
95
|
const isInvalid = [
|
81
|
-
requiredStringProperty(
|
82
|
-
requiredStringProperty(
|
83
|
-
requiredStringProperty(
|
84
|
-
|
85
|
-
optionalStringProperty(
|
86
|
-
optionalStringProperty(
|
87
|
-
|
88
|
-
|
89
|
-
requiredArrayValue(
|
90
|
-
requiredArrayValue(
|
96
|
+
requiredStringProperty(authMetadata, "issuer"),
|
97
|
+
requiredStringProperty(authMetadata, "authorization_endpoint"),
|
98
|
+
requiredStringProperty(authMetadata, "token_endpoint"),
|
99
|
+
requiredStringProperty(authMetadata, "revocation_endpoint"),
|
100
|
+
optionalStringProperty(authMetadata, "registration_endpoint"),
|
101
|
+
optionalStringProperty(authMetadata, "account_management_uri"),
|
102
|
+
optionalStringProperty(authMetadata, "device_authorization_endpoint"),
|
103
|
+
optionalStringArrayProperty(authMetadata, "account_management_actions_supported"),
|
104
|
+
requiredArrayValue(authMetadata, "response_types_supported", "code"),
|
105
|
+
requiredArrayValue(authMetadata, "grant_types_supported", "authorization_code"),
|
106
|
+
requiredArrayValue(authMetadata, "code_challenge_methods_supported", "S256"),
|
107
|
+
optionalStringArrayProperty(authMetadata, "prompt_values_supported"),
|
91
108
|
].some((isValid) => !isValid);
|
92
109
|
|
93
110
|
if (!isInvalid) {
|
94
|
-
return
|
95
|
-
authorizationEndpoint: <string>wellKnown["authorization_endpoint"],
|
96
|
-
tokenEndpoint: <string>wellKnown["token_endpoint"],
|
97
|
-
registrationEndpoint: <string>wellKnown["registration_endpoint"],
|
98
|
-
accountManagementEndpoint: <string>wellKnown["account_management_uri"],
|
99
|
-
accountManagementActionsSupported: <string[]>wellKnown["account_management_actions_supported"],
|
100
|
-
};
|
111
|
+
return authMetadata as ValidatedAuthMetadata;
|
101
112
|
}
|
102
113
|
|
103
114
|
logger.error("Issuer configuration not valid");
|
104
115
|
throw new Error(OidcError.OpSupport);
|
105
116
|
};
|
106
117
|
|
107
|
-
/**
|
108
|
-
* Metadata from OIDC authority discovery
|
109
|
-
* With validated properties required in type
|
110
|
-
*/
|
111
|
-
export type ValidatedIssuerMetadata = Partial<OidcMetadata> &
|
112
|
-
Pick<
|
113
|
-
OidcMetadata,
|
114
|
-
| "issuer"
|
115
|
-
| "authorization_endpoint"
|
116
|
-
| "token_endpoint"
|
117
|
-
| "registration_endpoint"
|
118
|
-
| "revocation_endpoint"
|
119
|
-
| "response_types_supported"
|
120
|
-
| "grant_types_supported"
|
121
|
-
| "code_challenge_methods_supported"
|
122
|
-
| "device_authorization_endpoint"
|
123
|
-
> & {
|
124
|
-
// MSC2965 extensions to the OIDC spec
|
125
|
-
account_management_uri?: string;
|
126
|
-
account_management_actions_supported?: string[];
|
127
|
-
};
|
128
|
-
|
129
|
-
/**
|
130
|
-
* Wraps validateOIDCIssuerWellKnown in a type assertion
|
131
|
-
* that asserts expected properties are present
|
132
|
-
* (Typescript assertions cannot be arrow functions)
|
133
|
-
* @param metadata - issuer openid-configuration response
|
134
|
-
* @throws when metadata validation fails
|
135
|
-
*/
|
136
|
-
export function isValidatedIssuerMetadata(
|
137
|
-
metadata: Partial<OidcMetadata>,
|
138
|
-
): asserts metadata is ValidatedIssuerMetadata {
|
139
|
-
validateOIDCIssuerWellKnown(metadata);
|
140
|
-
}
|
141
|
-
|
142
118
|
export const decodeIdToken = (token: string): IdTokenClaims => {
|
143
119
|
try {
|
144
120
|
return jwtDecode<IdTokenClaims>(token);
|
@@ -179,7 +155,8 @@ export const validateIdToken = (
|
|
179
155
|
* The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client.
|
180
156
|
* EW: Don't accept tokens with other untrusted audiences
|
181
157
|
* */
|
182
|
-
|
158
|
+
const sanitisedAuds = typeof claims.aud === "string" ? [claims.aud] : claims.aud;
|
159
|
+
if (!sanitisedAuds.includes(clientId)) {
|
183
160
|
throw new Error("Invalid audience");
|
184
161
|
}
|
185
162
|
|
package/src/randomstring.ts
CHANGED
@@ -17,9 +17,23 @@ limitations under the License.
|
|
17
17
|
|
18
18
|
import { encodeUnpaddedBase64Url } from "./base64.ts";
|
19
19
|
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
/**
|
21
|
+
* String representing the lowercase latin alphabet for use in {@link secureRandomStringFrom}
|
22
|
+
* (can be combined with other such exports or other characters by appending strings)
|
23
|
+
*/
|
24
|
+
export const LOWERCASE = "abcdefghijklmnopqrstuvwxyz";
|
25
|
+
|
26
|
+
/**
|
27
|
+
* String representing the uppercase latin alphabet for use in secureRandomStringFrom
|
28
|
+
* (can be combined with other such exports or other characters by appending strings)
|
29
|
+
*/
|
30
|
+
export const UPPERCASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
31
|
+
|
32
|
+
/**
|
33
|
+
* String representing the arabic numerals for use in secureRandomStringFrom
|
34
|
+
* (can be combined with other such exports or other characters by appending strings)
|
35
|
+
*/
|
36
|
+
export const DIGITS = "0123456789";
|
23
37
|
|
24
38
|
export function secureRandomBase64Url(len: number): string {
|
25
39
|
const key = new Uint8Array(len);
|
@@ -28,24 +42,56 @@ export function secureRandomBase64Url(len: number): string {
|
|
28
42
|
return encodeUnpaddedBase64Url(key);
|
29
43
|
}
|
30
44
|
|
31
|
-
|
32
|
-
|
45
|
+
/**
|
46
|
+
* Generates a random string of uppercase and lowercase letters plus digits using a
|
47
|
+
* cryptographically secure random number generator.
|
48
|
+
* @param len The length of the string to generate
|
49
|
+
* @returns Random string of uppercase and lowercase letters plus digits of length `len`
|
50
|
+
*/
|
51
|
+
export function secureRandomString(len: number): string {
|
52
|
+
return secureRandomStringFrom(len, UPPERCASE + LOWERCASE + DIGITS);
|
33
53
|
}
|
34
54
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
55
|
+
/**
|
56
|
+
* Generate a cryptographically secure random string using characters given.
|
57
|
+
*
|
58
|
+
* @param len - The length of the string to generate (must be positive and less than 32768).
|
59
|
+
* @param chars - The characters to use in the random string (between 2 and 256 characters long).
|
60
|
+
* @returns Random string of characters of length `len`.
|
61
|
+
*/
|
62
|
+
export function secureRandomStringFrom(len: number, chars: string): string {
|
63
|
+
// This is intended for latin strings so 256 possibilities should be more than enough and
|
64
|
+
// means we can use random bytes, minimising the amount of entropy we need to ask for.
|
65
|
+
if (chars.length < 2 || chars.length > 256) {
|
66
|
+
throw new Error("Character set must be between 2 and 256 characters long");
|
67
|
+
}
|
68
|
+
if (len < 1 || len > 32768) {
|
69
|
+
throw new Error("Requested random string length must be between 1 and 32768");
|
70
|
+
}
|
71
|
+
// We'll generate random unsigned bytes, so get the largest number less than 256 that is a multiple
|
72
|
+
// of the length of the character set: We'll need to discard any random values that are larger than
|
73
|
+
// this as we can't possibly map them onto the character set while keeping each character equally
|
74
|
+
// likely to be chosen (minus 1 to convert to indices in a string). (Essentially, we're using a d8
|
75
|
+
// to choose between 7 possibilities and re-rolling on an 8, keeping all 7 outcomes equally likely.)
|
76
|
+
// Our random values must be strictly less than this
|
77
|
+
const randomValueCutoff = 256 - (256 % chars.length);
|
78
|
+
// Grab 30% more entropy than we need. This should be enough that we can discard the values that are
|
79
|
+
// too high without having to go back and grab more unless we're super unlucky.
|
80
|
+
const entropyBuffer = new Uint8Array(Math.floor(len * 1.3));
|
81
|
+
// Mark all of this buffer as used to start with (we haven't populated it with entropy yet) so it will
|
82
|
+
// be filled on the first iteration.
|
83
|
+
let entropyBufferPos = entropyBuffer.length;
|
84
|
+
const result = [];
|
85
|
+
while (result.length < len) {
|
86
|
+
if (entropyBufferPos === entropyBuffer.length) {
|
87
|
+
globalThis.crypto.getRandomValues(entropyBuffer);
|
88
|
+
entropyBufferPos = 0;
|
89
|
+
}
|
90
|
+
const randomByte = entropyBuffer[entropyBufferPos++];
|
91
|
+
if (randomByte < randomValueCutoff) {
|
92
|
+
result.push(chars[randomByte % chars.length]);
|
93
|
+
}
|
48
94
|
}
|
49
95
|
|
50
|
-
return
|
96
|
+
return result.join("");
|
51
97
|
}
|
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
|
});
|
@@ -612,7 +550,7 @@ export class SlidingSyncSdk {
|
|
612
550
|
timelineEvents = newEvents;
|
613
551
|
if (oldEvents.length > 0) {
|
614
552
|
// old events are scrollback, insert them now
|
615
|
-
room.addEventsToTimeline(oldEvents, true, room.getLiveTimeline(), roomData.prev_batch);
|
553
|
+
room.addEventsToTimeline(oldEvents, true, false, room.getLiveTimeline(), roomData.prev_batch);
|
616
554
|
}
|
617
555
|
}
|
618
556
|
|
@@ -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,17 +679,12 @@ 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
|
/**
|
755
685
|
* Injects events into a room's model.
|
756
686
|
* @param stateEventList - A list of state events. This is the state
|
757
|
-
* at the *
|
687
|
+
* at the *END* of the timeline list if it is supplied.
|
758
688
|
* @param timelineEventList - A list of timeline events. Lower index
|
759
689
|
* is earlier in time. Higher index is later.
|
760
690
|
* @param numLive - the number of events in timelineEventList which just happened,
|
@@ -763,13 +693,9 @@ export class SlidingSyncSdk {
|
|
763
693
|
public async injectRoomEvents(
|
764
694
|
room: Room,
|
765
695
|
stateEventList: MatrixEvent[],
|
766
|
-
timelineEventList
|
767
|
-
numLive
|
696
|
+
timelineEventList: MatrixEvent[] = [],
|
697
|
+
numLive: number = 0,
|
768
698
|
): Promise<void> {
|
769
|
-
timelineEventList = timelineEventList || [];
|
770
|
-
stateEventList = stateEventList || [];
|
771
|
-
numLive = numLive || 0;
|
772
|
-
|
773
699
|
// If there are no events in the timeline yet, initialise it with
|
774
700
|
// the given state events
|
775
701
|
const liveTimeline = room.getLiveTimeline();
|
@@ -820,16 +746,17 @@ export class SlidingSyncSdk {
|
|
820
746
|
timelineEventList = timelineEventList.slice(0, -1 * liveTimelineEvents.length);
|
821
747
|
}
|
822
748
|
|
823
|
-
//
|
824
|
-
// if the timeline has any state events in it.
|
749
|
+
// Execute the timeline events.
|
825
750
|
// This also needs to be done before running push rules on the events as they need
|
826
751
|
// to be decorated with sender etc.
|
827
752
|
await room.addLiveEvents(timelineEventList, {
|
828
753
|
fromCache: true,
|
754
|
+
addToState: false,
|
829
755
|
});
|
830
756
|
if (liveTimelineEvents.length > 0) {
|
831
757
|
await room.addLiveEvents(liveTimelineEvents, {
|
832
758
|
fromCache: false,
|
759
|
+
addToState: false,
|
833
760
|
});
|
834
761
|
}
|
835
762
|
|
@@ -966,7 +893,7 @@ export class SlidingSyncSdk {
|
|
966
893
|
return a.getTs() - b.getTs();
|
967
894
|
});
|
968
895
|
this.notifEvents.forEach((event) => {
|
969
|
-
this.client.getNotifTimelineSet()?.addLiveEvent(event);
|
896
|
+
this.client.getNotifTimelineSet()?.addLiveEvent(event, { addToState: false });
|
970
897
|
});
|
971
898
|
this.notifEvents = [];
|
972
899
|
}
|
package/src/sliding-sync.ts
CHANGED
@@ -196,8 +196,8 @@ class SlidingList {
|
|
196
196
|
* @param list - The new list parameters
|
197
197
|
*/
|
198
198
|
public replaceList(list: MSC3575List): void {
|
199
|
-
list.filters = list.filters
|
200
|
-
list.ranges = list.ranges
|
199
|
+
list.filters = list.filters ?? {};
|
200
|
+
list.ranges = list.ranges ?? [];
|
201
201
|
this.list = JSON.parse(JSON.stringify(list));
|
202
202
|
this.isModified = true;
|
203
203
|
|
@@ -894,9 +894,9 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|
894
894
|
l.setModified(false);
|
895
895
|
});
|
896
896
|
// set default empty values so we don't need to null check
|
897
|
-
resp.lists = resp.lists
|
898
|
-
resp.rooms = resp.rooms
|
899
|
-
resp.extensions = resp.extensions
|
897
|
+
resp.lists = resp.lists ?? {};
|
898
|
+
resp.rooms = resp.rooms ?? {};
|
899
|
+
resp.extensions = resp.extensions ?? {};
|
900
900
|
Object.keys(resp.lists).forEach((key: string) => {
|
901
901
|
const list = this.lists.get(key);
|
902
902
|
if (!list || !resp) {
|
@@ -934,7 +934,7 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
|
|
934
934
|
const listKeysWithUpdates: Set<string> = new Set();
|
935
935
|
if (!doNotUpdateList) {
|
936
936
|
for (const [key, list] of Object.entries(resp.lists)) {
|
937
|
-
list.ops = list.ops
|
937
|
+
list.ops = list.ops ?? [];
|
938
938
|
if (list.ops.length > 0) {
|
939
939
|
listKeysWithUpdates.add(key);
|
940
940
|
}
|
@@ -71,7 +71,7 @@ function selectQuery<T>(
|
|
71
71
|
return new Promise((resolve, reject) => {
|
72
72
|
const results: T[] = [];
|
73
73
|
query.onerror = (): void => {
|
74
|
-
reject(new Error("Query failed: " + query.error));
|
74
|
+
reject(new Error("Query failed: " + query.error?.name));
|
75
75
|
};
|
76
76
|
// collect results
|
77
77
|
query.onsuccess = (): void => {
|
@@ -360,7 +360,7 @@ export class LocalIndexedDBStoreBackend implements IIndexedDBBackend {
|
|
360
360
|
// in firefox, with indexedDB disabled, this fails with a
|
361
361
|
// DOMError. We treat this as non-fatal, so that we can still
|
362
362
|
// use the app.
|
363
|
-
logger.warn(`unable to delete js-sdk store indexeddb: ${req.error}`);
|
363
|
+
logger.warn(`unable to delete js-sdk store indexeddb: ${req.error?.name}`);
|
364
364
|
resolve();
|
365
365
|
};
|
366
366
|
|
package/src/store/indexeddb.ts
CHANGED
@@ -42,7 +42,7 @@ const WRITE_DELAY_MS = 1000 * 60 * 5; // once every 5 minutes
|
|
42
42
|
|
43
43
|
interface IOpts extends IBaseOpts {
|
44
44
|
/** The Indexed DB interface e.g. `window.indexedDB` */
|
45
|
-
indexedDB
|
45
|
+
indexedDB?: IDBFactory;
|
46
46
|
/** Optional database name. The same name must be used to open the same database. */
|
47
47
|
dbName?: string;
|
48
48
|
/** Optional factory to spin up a Worker to execute the IDB transactions within. */
|
package/src/sync-accumulator.ts
CHANGED
@@ -77,7 +77,9 @@ export interface ITimeline {
|
|
77
77
|
|
78
78
|
export interface IJoinedRoom {
|
79
79
|
"summary": IRoomSummary;
|
80
|
-
|
80
|
+
// One of `state` or `state_after` is required.
|
81
|
+
"state"?: IState;
|
82
|
+
"org.matrix.msc4222.state_after"?: IState; // https://github.com/matrix-org/matrix-spec-proposals/pull/4222
|
81
83
|
"timeline": ITimeline;
|
82
84
|
"ephemeral": IEphemeral;
|
83
85
|
"account_data": IAccountData;
|
@@ -106,9 +108,11 @@ export interface IInvitedRoom {
|
|
106
108
|
}
|
107
109
|
|
108
110
|
export interface ILeftRoom {
|
109
|
-
state
|
110
|
-
|
111
|
-
|
111
|
+
// One of `state` or `state_after` is required.
|
112
|
+
"state"?: IState;
|
113
|
+
"org.matrix.msc4222.state_after"?: IState;
|
114
|
+
"timeline": ITimeline;
|
115
|
+
"account_data": IAccountData;
|
112
116
|
}
|
113
117
|
|
114
118
|
export interface IKnockedRoom {
|
@@ -481,13 +485,18 @@ export class SyncAccumulator {
|
|
481
485
|
// Work out the current state. The deltas need to be applied in the order:
|
482
486
|
// - existing state which didn't come down /sync.
|
483
487
|
// - State events under the 'state' key.
|
484
|
-
// - State events in the 'timeline'.
|
488
|
+
// - State events under the 'state_after' key OR state events in the 'timeline' if 'state_after' is not present.
|
485
489
|
data.state?.events?.forEach((e) => {
|
486
490
|
setState(currentData._currentState, e);
|
487
491
|
});
|
488
|
-
data.
|
489
|
-
// this nops if 'e' isn't a state event
|
492
|
+
data["org.matrix.msc4222.state_after"]?.events?.forEach((e) => {
|
490
493
|
setState(currentData._currentState, e);
|
494
|
+
});
|
495
|
+
data.timeline?.events?.forEach((e, index) => {
|
496
|
+
if (!data["org.matrix.msc4222.state_after"]) {
|
497
|
+
// this nops if 'e' isn't a state event
|
498
|
+
setState(currentData._currentState, e);
|
499
|
+
}
|
491
500
|
// append the event to the timeline. The back-pagination token
|
492
501
|
// corresponds to the first event in the timeline
|
493
502
|
let transformedEvent: TaggedEvent;
|
@@ -563,17 +572,22 @@ export class SyncAccumulator {
|
|
563
572
|
});
|
564
573
|
Object.keys(this.joinRooms).forEach((roomId) => {
|
565
574
|
const roomData = this.joinRooms[roomId];
|
566
|
-
const roomJson: IJoinedRoom
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
575
|
+
const roomJson: IJoinedRoom & {
|
576
|
+
// We track both `state` and `state_after` for downgrade compatibility
|
577
|
+
"state": IState;
|
578
|
+
"org.matrix.msc4222.state_after": IState;
|
579
|
+
} = {
|
580
|
+
"ephemeral": { events: [] },
|
581
|
+
"account_data": { events: [] },
|
582
|
+
"state": { events: [] },
|
583
|
+
"org.matrix.msc4222.state_after": { events: [] },
|
584
|
+
"timeline": {
|
571
585
|
events: [],
|
572
586
|
prev_batch: null,
|
573
587
|
},
|
574
|
-
unread_notifications: roomData._unreadNotifications,
|
575
|
-
unread_thread_notifications: roomData._unreadThreadNotifications,
|
576
|
-
summary: roomData._summary as IRoomSummary,
|
588
|
+
"unread_notifications": roomData._unreadNotifications,
|
589
|
+
"unread_thread_notifications": roomData._unreadThreadNotifications,
|
590
|
+
"summary": roomData._summary as IRoomSummary,
|
577
591
|
};
|
578
592
|
// Add account data
|
579
593
|
Object.keys(roomData._accountData).forEach((evType) => {
|
@@ -650,8 +664,11 @@ export class SyncAccumulator {
|
|
650
664
|
Object.keys(roomData._currentState).forEach((evType) => {
|
651
665
|
Object.keys(roomData._currentState[evType]).forEach((stateKey) => {
|
652
666
|
let ev = roomData._currentState[evType][stateKey];
|
667
|
+
// Push to both fields to provide downgrade compatibility in the sync accumulator db
|
668
|
+
// the code will prefer `state_after` if it is present
|
669
|
+
roomJson["org.matrix.msc4222.state_after"].events.push(ev);
|
670
|
+
// Roll the state back to the value at the start of the timeline if it was changed
|
653
671
|
if (rollBackState[evType] && rollBackState[evType][stateKey]) {
|
654
|
-
// use the reverse clobbered event instead.
|
655
672
|
ev = rollBackState[evType][stateKey];
|
656
673
|
}
|
657
674
|
roomJson.state.events.push(ev);
|