matrix-js-sdk 41.8.0 → 41.9.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/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/lib/@types/AESEncryptedSecretStoragePayload.js +3 -1
- package/lib/@types/IIdentityServerProvider.js +3 -1
- package/lib/@types/PushRules.js +7 -7
- package/lib/@types/PushRules.js.map +1 -1
- package/lib/@types/auth.js +4 -4
- package/lib/@types/auth.js.map +1 -1
- package/lib/@types/beacon.js +2 -2
- package/lib/@types/beacon.js.map +1 -1
- package/lib/@types/common.js +3 -1
- package/lib/@types/crypto.js +3 -1
- package/lib/@types/event.js +20 -20
- package/lib/@types/event.js.map +1 -1
- package/lib/@types/events.js +3 -1
- package/lib/@types/extensible_events.js +6 -6
- package/lib/@types/extensible_events.js.map +1 -1
- package/lib/@types/global.d.js.map +1 -1
- package/lib/@types/json.js +3 -1
- package/lib/@types/local_notifications.js +3 -1
- package/lib/@types/location.js +4 -4
- package/lib/@types/location.js.map +1 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js +3 -1
- package/lib/@types/media.js +3 -1
- package/lib/@types/membership.js +1 -1
- package/lib/@types/membership.js.map +1 -1
- package/lib/@types/partials.js +6 -6
- package/lib/@types/partials.js.map +1 -1
- package/lib/@types/polls.js +5 -5
- package/lib/@types/polls.js.map +1 -1
- package/lib/@types/read_receipts.js +2 -2
- package/lib/@types/read_receipts.js.map +1 -1
- package/lib/@types/registration.js +3 -1
- package/lib/@types/requests.js +1 -1
- package/lib/@types/requests.js.map +1 -1
- package/lib/@types/retention.js +1 -1
- package/lib/@types/retention.js.map +1 -1
- package/lib/@types/search.js +1 -1
- package/lib/@types/search.js.map +1 -1
- package/lib/@types/signed.js +3 -1
- package/lib/@types/spaces.js +3 -1
- package/lib/@types/state_events.js +3 -1
- package/lib/@types/synapse.js +3 -1
- package/lib/@types/sync.js +1 -1
- package/lib/@types/sync.js.map +1 -1
- package/lib/@types/threepids.js +1 -1
- package/lib/@types/threepids.js.map +1 -1
- package/lib/@types/topic.js +1 -1
- package/lib/@types/topic.js.map +1 -1
- package/lib/@types/uia.js +3 -1
- package/lib/NamespacedValue.js +8 -8
- package/lib/NamespacedValue.js.map +1 -1
- package/lib/ReEmitter.js +9 -16
- package/lib/ReEmitter.js.map +1 -1
- package/lib/ToDeviceMessageQueue.js +49 -57
- package/lib/ToDeviceMessageQueue.js.map +1 -1
- package/lib/autodiscovery.js +232 -247
- package/lib/autodiscovery.js.map +1 -1
- package/lib/base64.js +1 -1
- package/lib/base64.js.map +1 -1
- package/lib/browser-index.d.ts +2 -2
- package/lib/browser-index.d.ts.map +1 -1
- package/lib/browser-index.js +5 -5
- package/lib/browser-index.js.map +1 -1
- package/lib/capabilityPoller.js +19 -22
- package/lib/capabilityPoller.js.map +1 -1
- package/lib/client.d.ts +2 -8
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +2043 -2487
- package/lib/client.js.map +1 -1
- package/lib/common-crypto/CryptoBackend.js +2 -2
- package/lib/common-crypto/CryptoBackend.js.map +1 -1
- package/lib/common-crypto/key-passphrase.js.map +1 -1
- package/lib/content-helpers.js +43 -48
- package/lib/content-helpers.js.map +1 -1
- package/lib/content-repo.js +14 -24
- package/lib/content-repo.js.map +1 -1
- package/lib/crypto/store/base.js +6 -6
- package/lib/crypto/store/base.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +190 -238
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store.js +25 -30
- package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
- package/lib/crypto/store/localStorage-crypto-store.js +113 -145
- package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
- package/lib/crypto/store/memory-crypto-store.js +74 -105
- package/lib/crypto/store/memory-crypto-store.js.map +1 -1
- package/lib/crypto-api/CryptoEvent.js +1 -1
- package/lib/crypto-api/CryptoEvent.js.map +1 -1
- package/lib/crypto-api/CryptoEventHandlerMap.js +3 -1
- package/lib/crypto-api/index.d.ts +15 -6
- package/lib/crypto-api/index.d.ts.map +1 -1
- package/lib/crypto-api/index.js +22 -22
- package/lib/crypto-api/index.js.map +1 -1
- package/lib/crypto-api/key-passphrase.js +15 -23
- package/lib/crypto-api/key-passphrase.js.map +1 -1
- package/lib/crypto-api/keybackup.js +3 -1
- package/lib/crypto-api/recovery-key.js +11 -12
- package/lib/crypto-api/recovery-key.js.map +1 -1
- package/lib/crypto-api/verification.js +3 -3
- package/lib/crypto-api/verification.js.map +1 -1
- package/lib/digest.js +7 -14
- package/lib/digest.js.map +1 -1
- package/lib/embedded.d.ts.map +1 -1
- package/lib/embedded.js +380 -505
- package/lib/embedded.js.map +1 -1
- package/lib/errors.js +2 -2
- package/lib/errors.js.map +1 -1
- package/lib/event-mapper.js +10 -12
- package/lib/event-mapper.js.map +1 -1
- package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -1
- package/lib/extensible_events_v1/InvalidEventError.js.map +1 -1
- package/lib/extensible_events_v1/MessageEvent.js +11 -13
- package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollEndEvent.js +3 -4
- package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollResponseEvent.js +5 -6
- package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollStartEvent.js +8 -10
- package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
- package/lib/extensible_events_v1/utilities.js.map +1 -1
- package/lib/feature.js +18 -31
- package/lib/feature.js.map +1 -1
- package/lib/filter-component.d.ts.map +1 -1
- package/lib/filter-component.js +20 -26
- package/lib/filter-component.js.map +1 -1
- package/lib/filter.js +14 -17
- package/lib/filter.js.map +1 -1
- package/lib/http-api/errors.js +28 -43
- package/lib/http-api/errors.js.map +1 -1
- package/lib/http-api/fetch.js +141 -159
- package/lib/http-api/fetch.js.map +1 -1
- package/lib/http-api/index.js +17 -20
- package/lib/http-api/index.js.map +1 -1
- package/lib/http-api/interface.js +1 -1
- package/lib/http-api/interface.js.map +1 -1
- package/lib/http-api/method.js +1 -1
- package/lib/http-api/method.js.map +1 -1
- package/lib/http-api/prefix.js +3 -3
- package/lib/http-api/prefix.js.map +1 -1
- package/lib/http-api/refresh.js +74 -94
- package/lib/http-api/refresh.js.map +1 -1
- package/lib/http-api/utils.d.ts +1 -1
- package/lib/http-api/utils.d.ts.map +1 -1
- package/lib/http-api/utils.js +34 -42
- package/lib/http-api/utils.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/indexeddb-helpers.js +3 -3
- package/lib/indexeddb-helpers.js.map +1 -1
- package/lib/indexeddb-worker.js.map +1 -1
- package/lib/interactive-auth.d.ts +5 -5
- package/lib/interactive-auth.d.ts.map +1 -1
- package/lib/interactive-auth.js +172 -204
- package/lib/interactive-auth.js.map +1 -1
- package/lib/logger.js +21 -57
- package/lib/logger.js.map +1 -1
- package/lib/matrix.js +7 -11
- package/lib/matrix.js.map +1 -1
- package/lib/matrixrtc/CallMembership.js +80 -74
- package/lib/matrixrtc/CallMembership.js.map +1 -1
- package/lib/matrixrtc/EncryptionManager.js +1 -1
- package/lib/matrixrtc/EncryptionManager.js.map +1 -1
- package/lib/matrixrtc/IKeyTransport.js +1 -1
- package/lib/matrixrtc/IKeyTransport.js.map +1 -1
- package/lib/matrixrtc/IMembershipManager.js +1 -1
- package/lib/matrixrtc/IMembershipManager.js.map +1 -1
- package/lib/matrixrtc/LivekitTransport.d.ts +1 -1
- package/lib/matrixrtc/LivekitTransport.js +4 -4
- package/lib/matrixrtc/LivekitTransport.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.js +137 -187
- package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js +36 -41
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
- package/lib/matrixrtc/MembershipManager.js +332 -378
- package/lib/matrixrtc/MembershipManager.js.map +1 -1
- package/lib/matrixrtc/MembershipManagerActionScheduler.js +54 -63
- package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -1
- package/lib/matrixrtc/RTCEncryptionManager.js +119 -143
- package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
- package/lib/matrixrtc/ToDeviceKeyTransport.js +53 -58
- package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -1
- package/lib/matrixrtc/index.js.map +1 -1
- package/lib/matrixrtc/membershipData/common.js +1 -1
- package/lib/matrixrtc/membershipData/common.js.map +1 -1
- package/lib/matrixrtc/membershipData/index.js.map +1 -1
- package/lib/matrixrtc/membershipData/rtc.js +15 -23
- package/lib/matrixrtc/membershipData/rtc.js.map +1 -1
- package/lib/matrixrtc/membershipData/session.js +4 -5
- package/lib/matrixrtc/membershipData/session.js.map +1 -1
- package/lib/matrixrtc/types.js +4 -6
- package/lib/matrixrtc/types.js.map +1 -1
- package/lib/matrixrtc/utils.js +4 -11
- package/lib/matrixrtc/utils.js.map +1 -1
- package/lib/models/MSC3089Branch.js +91 -116
- package/lib/models/MSC3089Branch.js.map +1 -1
- package/lib/models/MSC3089TreeSpace.js +209 -245
- package/lib/models/MSC3089TreeSpace.js.map +1 -1
- package/lib/models/ToDeviceMessage.js +3 -1
- package/lib/models/beacon.js +14 -13
- package/lib/models/beacon.js.map +1 -1
- package/lib/models/compare-event-ordering.js +13 -13
- package/lib/models/compare-event-ordering.js.map +1 -1
- package/lib/models/device.js +3 -3
- package/lib/models/device.js.map +1 -1
- package/lib/models/event-context.js +5 -8
- package/lib/models/event-context.js.map +1 -1
- package/lib/models/event-status.js +1 -1
- package/lib/models/event-status.js.map +1 -1
- package/lib/models/event-timeline-set.js +88 -94
- package/lib/models/event-timeline-set.js.map +1 -1
- package/lib/models/event-timeline.js +28 -30
- package/lib/models/event-timeline.js.map +1 -1
- package/lib/models/event.js +182 -226
- package/lib/models/event.js.map +1 -1
- package/lib/models/invites-ignorer-types.js +4 -4
- package/lib/models/invites-ignorer-types.js.map +1 -1
- package/lib/models/invites-ignorer.js +159 -179
- package/lib/models/invites-ignorer.js.map +1 -1
- package/lib/models/poll.js +71 -81
- package/lib/models/poll.js.map +1 -1
- package/lib/models/profile-keys.js +2 -2
- package/lib/models/profile-keys.js.map +1 -1
- package/lib/models/read-receipt.js +40 -56
- package/lib/models/read-receipt.js.map +1 -1
- package/lib/models/related-relations.js.map +1 -1
- package/lib/models/relations-container.js +22 -23
- package/lib/models/relations-container.js.map +1 -1
- package/lib/models/relations.js +133 -159
- package/lib/models/relations.js.map +1 -1
- package/lib/models/room-member.js +24 -29
- package/lib/models/room-member.js.map +1 -1
- package/lib/models/room-receipts.js +29 -43
- package/lib/models/room-receipts.js.map +1 -1
- package/lib/models/room-retention.js +74 -83
- package/lib/models/room-retention.js.map +1 -1
- package/lib/models/room-state.js +143 -172
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room-sticky-events.d.ts +1 -0
- package/lib/models/room-sticky-events.d.ts.map +1 -1
- package/lib/models/room-sticky-events.js +45 -65
- package/lib/models/room-sticky-events.js.map +1 -1
- package/lib/models/room-summary.js.map +1 -1
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +765 -909
- package/lib/models/room.js.map +1 -1
- package/lib/models/search-result.js +5 -5
- package/lib/models/search-result.js.map +1 -1
- package/lib/models/thread.js +225 -285
- package/lib/models/thread.js.map +1 -1
- package/lib/models/typed-event-emitter.js +7 -18
- package/lib/models/typed-event-emitter.js.map +1 -1
- package/lib/models/user.js +8 -8
- package/lib/models/user.js.map +1 -1
- package/lib/oidc/authorize.js +208 -241
- package/lib/oidc/authorize.js.map +1 -1
- package/lib/oidc/discovery.js +23 -36
- package/lib/oidc/discovery.js.map +1 -1
- package/lib/oidc/error.js +1 -1
- package/lib/oidc/error.js.map +1 -1
- package/lib/oidc/index.js +1 -0
- package/lib/oidc/index.js.map +1 -1
- package/lib/oidc/register.js +60 -66
- package/lib/oidc/register.js.map +1 -1
- package/lib/oidc/tokenRefresher.js +77 -91
- package/lib/oidc/tokenRefresher.js.map +1 -1
- package/lib/oidc/validate.js +18 -18
- package/lib/oidc/validate.js.map +1 -1
- package/lib/pushprocessor.js +71 -82
- package/lib/pushprocessor.js.map +1 -1
- package/lib/randomstring.js +9 -9
- package/lib/randomstring.js.map +1 -1
- package/lib/realtime-callbacks.js +25 -28
- package/lib/realtime-callbacks.js.map +1 -1
- package/lib/receipt-accumulator.d.ts +2 -0
- package/lib/receipt-accumulator.d.ts.map +1 -1
- package/lib/receipt-accumulator.js +14 -22
- package/lib/receipt-accumulator.js.map +1 -1
- package/lib/rendezvous/MSC4108SignInWithQR.js +271 -302
- package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -1
- package/lib/rendezvous/RendezvousChannel.js +3 -1
- package/lib/rendezvous/RendezvousCode.js +3 -1
- package/lib/rendezvous/RendezvousError.js.map +1 -1
- package/lib/rendezvous/RendezvousFailureReason.js +2 -2
- package/lib/rendezvous/RendezvousFailureReason.js.map +1 -1
- package/lib/rendezvous/RendezvousIntent.js +1 -1
- package/lib/rendezvous/RendezvousIntent.js.map +1 -1
- package/lib/rendezvous/RendezvousTransport.js +3 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +123 -147
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
- package/lib/rendezvous/index.js +44 -69
- package/lib/rendezvous/index.js.map +1 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +1 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +134 -152
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
- package/lib/retentionPolicy.js +6 -9
- package/lib/retentionPolicy.js.map +1 -1
- package/lib/room-hierarchy.js +52 -60
- package/lib/room-hierarchy.js.map +1 -1
- package/lib/rust-crypto/CrossSigningIdentity.js +94 -104
- package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
- package/lib/rust-crypto/DehydratedDeviceManager.js +157 -190
- package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -1
- package/lib/rust-crypto/KeyClaimManager.js +18 -22
- package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js +109 -139
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
- package/lib/rust-crypto/OutgoingRequestsManager.js +66 -80
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +1 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +196 -224
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -1
- package/lib/rust-crypto/RoomEncryptor.js +127 -143
- package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
- package/lib/rust-crypto/backup.js +453 -549
- package/lib/rust-crypto/backup.js.map +1 -1
- package/lib/rust-crypto/constants.js +1 -1
- package/lib/rust-crypto/constants.js.map +1 -1
- package/lib/rust-crypto/device-converter.js +15 -28
- package/lib/rust-crypto/device-converter.js.map +1 -1
- package/lib/rust-crypto/index.js +103 -116
- package/lib/rust-crypto/index.js.map +1 -1
- package/lib/rust-crypto/libolm_migration.js +303 -365
- package/lib/rust-crypto/libolm_migration.js.map +1 -1
- package/lib/rust-crypto/rust-crypto.d.ts +5 -1
- package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
- package/lib/rust-crypto/rust-crypto.js +1067 -1332
- package/lib/rust-crypto/rust-crypto.js.map +1 -1
- package/lib/rust-crypto/secret-storage.js +12 -25
- package/lib/rust-crypto/secret-storage.js.map +1 -1
- package/lib/rust-crypto/verification.js +137 -189
- package/lib/rust-crypto/verification.js.map +1 -1
- package/lib/scheduler.js +44 -19
- package/lib/scheduler.js.map +1 -1
- package/lib/secret-storage.js +179 -213
- package/lib/secret-storage.js.map +1 -1
- package/lib/serverCapabilities.js +6 -9
- package/lib/serverCapabilities.js.map +1 -1
- package/lib/service-types.js +1 -1
- package/lib/service-types.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +368 -424
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sliding-sync.js +135 -171
- package/lib/sliding-sync.js.map +1 -1
- package/lib/store/index.js +3 -1
- package/lib/store/indexeddb-backend.js +3 -1
- package/lib/store/indexeddb-local-backend.js +194 -253
- package/lib/store/indexeddb-local-backend.js.map +1 -1
- package/lib/store/indexeddb-remote-backend.js +33 -63
- package/lib/store/indexeddb-remote-backend.js.map +1 -1
- package/lib/store/indexeddb-store-worker.js +22 -23
- package/lib/store/indexeddb-store-worker.js.map +1 -1
- package/lib/store/indexeddb.js +44 -71
- package/lib/store/indexeddb.js.map +1 -1
- package/lib/store/local-storage-events-emitter.js +2 -2
- package/lib/store/local-storage-events-emitter.js.map +1 -1
- package/lib/store/memory.js +34 -57
- package/lib/store/memory.js.map +1 -1
- package/lib/store/stub.js +22 -35
- package/lib/store/stub.js.map +1 -1
- package/lib/sync-accumulator.js +54 -66
- package/lib/sync-accumulator.js.map +1 -1
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +905 -998
- package/lib/sync.js.map +1 -1
- package/lib/testing.js +63 -105
- package/lib/testing.js.map +1 -1
- package/lib/thread-utils.js +1 -4
- package/lib/thread-utils.js.map +1 -1
- package/lib/timeline-window.js +89 -102
- package/lib/timeline-window.js.map +1 -1
- package/lib/types.js +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/decryptAESSecretStorageItem.js +14 -25
- package/lib/utils/decryptAESSecretStorageItem.js.map +1 -1
- package/lib/utils/encryptAESSecretStorageItem.js +27 -38
- package/lib/utils/encryptAESSecretStorageItem.js.map +1 -1
- package/lib/utils/internal/deriveKeys.js +25 -32
- package/lib/utils/internal/deriveKeys.js.map +1 -1
- package/lib/utils/roomVersion.js +1 -1
- package/lib/utils/roomVersion.js.map +1 -1
- package/lib/utils.js +83 -135
- package/lib/utils.js.map +1 -1
- package/lib/version-support.js +3 -3
- package/lib/version-support.js.map +1 -1
- package/lib/webrtc/audioContext.js +5 -6
- package/lib/webrtc/audioContext.js.map +1 -1
- package/lib/webrtc/call.js +1081 -1250
- package/lib/webrtc/call.js.map +1 -1
- package/lib/webrtc/callEventHandler.js +202 -214
- package/lib/webrtc/callEventHandler.js.map +1 -1
- package/lib/webrtc/callEventTypes.js +2 -2
- package/lib/webrtc/callEventTypes.js.map +1 -1
- package/lib/webrtc/callFeed.js +18 -20
- package/lib/webrtc/callFeed.js.map +1 -1
- package/lib/webrtc/groupCall.js +513 -602
- package/lib/webrtc/groupCall.js.map +1 -1
- package/lib/webrtc/groupCallEventHandler.js +59 -62
- package/lib/webrtc/groupCallEventHandler.js.map +1 -1
- package/lib/webrtc/mediaHandler.js +198 -232
- package/lib/webrtc/mediaHandler.js.map +1 -1
- package/lib/webrtc/stats/callFeedStatsReporter.js +16 -20
- package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
- package/lib/webrtc/stats/callStatsReportGatherer.js +67 -75
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
- package/lib/webrtc/stats/callStatsReportSummary.js +3 -1
- package/lib/webrtc/stats/connectionStats.js.map +1 -1
- package/lib/webrtc/stats/connectionStatsBuilder.js +2 -2
- package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.js +20 -24
- package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
- package/lib/webrtc/stats/groupCallStats.js +6 -8
- package/lib/webrtc/stats/groupCallStats.js.map +1 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.js +7 -8
- package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.js +7 -9
- package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +7 -7
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
- package/lib/webrtc/stats/statsReport.js +1 -1
- package/lib/webrtc/stats/statsReport.js.map +1 -1
- package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
- package/lib/webrtc/stats/summaryStatsReportGatherer.js +14 -14
- package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -1
- package/lib/webrtc/stats/trackStatsBuilder.js +32 -34
- package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
- package/lib/webrtc/stats/transportStats.js +3 -1
- package/lib/webrtc/stats/transportStatsBuilder.js +9 -9
- package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
- package/lib/webrtc/stats/valueFormatter.js +1 -1
- package/lib/webrtc/stats/valueFormatter.js.map +1 -1
- package/package.json +18 -33
- package/src/@types/global.d.ts +2 -2
- package/src/ToDeviceMessageQueue.ts +2 -2
- package/src/browser-index.ts +4 -4
- package/src/client.ts +15 -20
- package/src/crypto-api/index.ts +17 -6
- package/src/embedded.ts +4 -6
- package/src/filter-component.ts +1 -0
- package/src/http-api/utils.ts +1 -1
- package/src/interactive-auth.ts +11 -5
- package/src/matrixrtc/LivekitTransport.ts +1 -1
- package/src/matrixrtc/MatrixRTCSession.ts +1 -1
- package/src/models/MSC3089Branch.ts +1 -1
- package/src/models/room-sticky-events.ts +1 -0
- package/src/models/room.ts +9 -11
- package/src/receipt-accumulator.ts +2 -0
- package/src/rendezvous/index.ts +1 -1
- package/src/rendezvous/transports/MSC4108RendezvousSession.ts +2 -2
- package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +1 -1
- package/src/rust-crypto/index.ts +6 -6
- package/src/rust-crypto/rust-crypto.ts +31 -7
- package/src/rust-crypto/verification.ts +1 -1
- package/src/sliding-sync-sdk.ts +5 -7
- package/src/store/indexeddb-local-backend.ts +3 -3
- package/src/sync.ts +6 -8
package/lib/pushprocessor.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
3
|
/*
|
|
6
4
|
Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
|
|
7
5
|
|
|
@@ -21,7 +19,7 @@ limitations under the License.
|
|
|
21
19
|
import { deepCompare, escapeRegExp, globToRegexp, isNullOrUndefined } from "./utils.js";
|
|
22
20
|
import { ConditionKind, PushRuleActionName, PushRuleKind, RuleId, TweakName } from "./@types/PushRules.js";
|
|
23
21
|
import { EventType } from "./@types/event.js";
|
|
24
|
-
|
|
22
|
+
const RULEKINDS_IN_ORDER = [PushRuleKind.Override, PushRuleKind.ContentSpecific, PushRuleKind.RoomSpecific, PushRuleKind.SenderSpecific, PushRuleKind.Underride];
|
|
25
23
|
|
|
26
24
|
// The default override rules to apply to the push rules that arrive from the server.
|
|
27
25
|
// We do this for two reasons:
|
|
@@ -30,7 +28,7 @@ var RULEKINDS_IN_ORDER = [PushRuleKind.Override, PushRuleKind.ContentSpecific, P
|
|
|
30
28
|
// more details.
|
|
31
29
|
// 2. We often want to start using push rules ahead of the server supporting them,
|
|
32
30
|
// and so we can put them here.
|
|
33
|
-
|
|
31
|
+
const DEFAULT_OVERRIDE_RULES = {
|
|
34
32
|
".m.rule.is_room_mention": {
|
|
35
33
|
// Matrix v1.7
|
|
36
34
|
rule_id: ".m.rule.is_room_mention",
|
|
@@ -79,9 +77,9 @@ var DEFAULT_OVERRIDE_RULES = {
|
|
|
79
77
|
};
|
|
80
78
|
|
|
81
79
|
// A special rule id for `EXPECTED_DEFAULT_OVERRIDE_RULE_IDS` and friends which denotes where user-defined rules live in the order.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
const UserDefinedRules = Symbol("UserDefinedRules");
|
|
81
|
+
const EXPECTED_DEFAULT_OVERRIDE_RULE_IDS = [RuleId.Master, UserDefinedRules, RuleId.SuppressNotices, RuleId.InviteToSelf, RuleId.MemberEvent, RuleId.IsUserMention, RuleId.ContainsDisplayName, RuleId.IsRoomMention, RuleId.AtRoomNotification, RuleId.Tombstone, ".m.rule.reaction", ".m.rule.room.server_acl", ".org.matrix.msc3786.rule.room.server_acl", ".m.rule.suppress_edits"];
|
|
82
|
+
const DEFAULT_UNDERRIDE_RULES = {
|
|
85
83
|
".org.matrix.msc3914.rule.room.call": {
|
|
86
84
|
// For homeservers which don't support MSC3914 yet
|
|
87
85
|
rule_id: ".org.matrix.msc3914.rule.room.call",
|
|
@@ -100,7 +98,7 @@ var DEFAULT_UNDERRIDE_RULES = {
|
|
|
100
98
|
}]
|
|
101
99
|
}
|
|
102
100
|
};
|
|
103
|
-
|
|
101
|
+
const EXPECTED_DEFAULT_UNDERRIDE_RULE_IDS = [UserDefinedRules, RuleId.IncomingCall, ".org.matrix.msc3914.rule.room.call", RuleId.EncryptedDM, RuleId.DM, RuleId.Message, RuleId.EncryptedMessage];
|
|
104
102
|
|
|
105
103
|
/**
|
|
106
104
|
* Make sure that each of the rules listed in `defaultRuleIds` is listed in the given set of push rules.
|
|
@@ -115,24 +113,24 @@ var EXPECTED_DEFAULT_UNDERRIDE_RULE_IDS = [UserDefinedRules, RuleId.IncomingCall
|
|
|
115
113
|
*/
|
|
116
114
|
function mergeRulesWithDefaults(logger, kind, incomingRules, defaultRules, orderedRuleIds) {
|
|
117
115
|
// Split the incomingRules into defaults and custom
|
|
118
|
-
|
|
119
|
-
|
|
116
|
+
const incomingDefaultRules = incomingRules.filter(rule => rule.default);
|
|
117
|
+
const incomingCustomRules = incomingRules.filter(rule => !rule.default);
|
|
120
118
|
function insertDefaultPushRule(ruleId) {
|
|
121
119
|
if (ruleId === UserDefinedRules) {
|
|
122
120
|
// Re-insert any user-defined rules that were in `incomingRules`
|
|
123
121
|
newRules.push(...incomingCustomRules);
|
|
124
122
|
} else if (ruleId in defaultRules) {
|
|
125
|
-
logger.warn(
|
|
123
|
+
logger.warn(`Adding default global ${kind} push rule ${ruleId}`);
|
|
126
124
|
newRules.push(defaultRules[ruleId]);
|
|
127
125
|
} else {
|
|
128
|
-
logger.warn(
|
|
126
|
+
logger.warn(`Missing default global ${kind} push rule ${ruleId}`);
|
|
129
127
|
}
|
|
130
128
|
}
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
let nextExpectedRuleIdIndex = 0;
|
|
130
|
+
const newRules = [];
|
|
133
131
|
// Merge our expected rules (including the incoming custom rules) into the incoming default rules.
|
|
134
|
-
for (
|
|
135
|
-
|
|
132
|
+
for (const rule of incomingDefaultRules) {
|
|
133
|
+
const ruleIndex = orderedRuleIds.indexOf(rule.rule_id);
|
|
136
134
|
if (ruleIndex === -1) {
|
|
137
135
|
// an unrecognised rule; copy it over
|
|
138
136
|
newRules.push(rule);
|
|
@@ -140,7 +138,7 @@ function mergeRulesWithDefaults(logger, kind, incomingRules, defaultRules, order
|
|
|
140
138
|
}
|
|
141
139
|
while (ruleIndex > nextExpectedRuleIdIndex) {
|
|
142
140
|
// insert new rules
|
|
143
|
-
|
|
141
|
+
const defaultRuleId = orderedRuleIds[nextExpectedRuleIdIndex];
|
|
144
142
|
insertDefaultPushRule(defaultRuleId);
|
|
145
143
|
nextExpectedRuleIdIndex += 1;
|
|
146
144
|
}
|
|
@@ -150,7 +148,7 @@ function mergeRulesWithDefaults(logger, kind, incomingRules, defaultRules, order
|
|
|
150
148
|
}
|
|
151
149
|
|
|
152
150
|
// Now copy over any remaining default rules
|
|
153
|
-
for (
|
|
151
|
+
for (const ruleId of orderedRuleIds.slice(nextExpectedRuleIdIndex)) {
|
|
154
152
|
insertDefaultPushRule(ruleId);
|
|
155
153
|
}
|
|
156
154
|
return newRules;
|
|
@@ -161,12 +159,12 @@ export class PushProcessor {
|
|
|
161
159
|
* @param client - The Matrix client object to use
|
|
162
160
|
*/
|
|
163
161
|
constructor(client) {
|
|
164
|
-
this.client = client;
|
|
165
162
|
/**
|
|
166
163
|
* Maps the original key from the push rules to a list of property names
|
|
167
164
|
* after unescaping.
|
|
168
165
|
*/
|
|
169
166
|
_defineProperty(this, "parsedKeys", new Map());
|
|
167
|
+
this.client = client;
|
|
170
168
|
}
|
|
171
169
|
/**
|
|
172
170
|
* Convert a list of actions into a object with the actions as keys and their values
|
|
@@ -178,11 +176,11 @@ export class PushProcessor {
|
|
|
178
176
|
* @returns A object with key 'notify' (true or false) and an object of actions
|
|
179
177
|
*/
|
|
180
178
|
static actionListToActionsObject(actionList) {
|
|
181
|
-
|
|
179
|
+
const actionObj = {
|
|
182
180
|
notify: false,
|
|
183
181
|
tweaks: {}
|
|
184
182
|
};
|
|
185
|
-
for (
|
|
183
|
+
for (const action of actionList) {
|
|
186
184
|
if (action === PushRuleActionName.Notify) {
|
|
187
185
|
actionObj.notify = true;
|
|
188
186
|
} else if (typeof action === "object") {
|
|
@@ -205,9 +203,8 @@ export class PushProcessor {
|
|
|
205
203
|
* @param userId - The Matrix ID of the client.
|
|
206
204
|
* @returns The rewritten rules
|
|
207
205
|
*/
|
|
208
|
-
static rewriteDefaultRules(logger, incomingRules) {
|
|
209
|
-
|
|
210
|
-
var newRules = JSON.parse(JSON.stringify(incomingRules)); // deep clone
|
|
206
|
+
static rewriteDefaultRules(logger, incomingRules, userId = undefined) {
|
|
207
|
+
let newRules = JSON.parse(JSON.stringify(incomingRules)); // deep clone
|
|
211
208
|
|
|
212
209
|
// These lines are mostly to make the tests happy. We shouldn't run into these
|
|
213
210
|
// properties missing in practice.
|
|
@@ -231,14 +228,9 @@ export class PushProcessor {
|
|
|
231
228
|
* as specified for `content.body` matches, will use lookaround assertions to ensure the match only includes the pattern
|
|
232
229
|
* @param flags - the flags to pass to the RegExp constructor, defaults to case-insensitive
|
|
233
230
|
*/
|
|
234
|
-
static getPushRuleGlobRegex(pattern) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
var _ref = alignToWordBoundary ? ["(?<=^|\\W)", "(?=\\W|$)"] : ["^", "$"],
|
|
238
|
-
_ref2 = _slicedToArray(_ref, 2),
|
|
239
|
-
prefix = _ref2[0],
|
|
240
|
-
suffix = _ref2[1];
|
|
241
|
-
var cacheKey = "".concat(alignToWordBoundary, "-").concat(flags, "-").concat(pattern);
|
|
231
|
+
static getPushRuleGlobRegex(pattern, alignToWordBoundary = false, flags = "i") {
|
|
232
|
+
const [prefix, suffix] = alignToWordBoundary ? ["(?<=^|\\W)", "(?=\\W|$)"] : ["^", "$"];
|
|
233
|
+
const cacheKey = `${alignToWordBoundary}-${flags}-${pattern}`;
|
|
242
234
|
if (!PushProcessor.cachedGlobToRegex[cacheKey]) {
|
|
243
235
|
PushProcessor.cachedGlobToRegex[cacheKey] = new RegExp(prefix + "(" + globToRegexp(pattern) + ")" + suffix, flags);
|
|
244
236
|
}
|
|
@@ -262,13 +254,13 @@ export class PushProcessor {
|
|
|
262
254
|
|
|
263
255
|
// Process the 'key' property on event_match conditions pre-cache the
|
|
264
256
|
// values and clean-out any unused values.
|
|
265
|
-
|
|
266
|
-
for (
|
|
267
|
-
for (
|
|
257
|
+
const toRemoveKeys = new Set(this.parsedKeys.keys());
|
|
258
|
+
for (const ruleset of [newRules.global.override, newRules.global.room, newRules.global.sender, newRules.global.underride]) {
|
|
259
|
+
for (const rule of ruleset) {
|
|
268
260
|
if (!rule.conditions) {
|
|
269
261
|
continue;
|
|
270
262
|
}
|
|
271
|
-
for (
|
|
263
|
+
for (const condition of rule.conditions) {
|
|
272
264
|
if (condition.kind !== ConditionKind.EventMatch) {
|
|
273
265
|
continue;
|
|
274
266
|
}
|
|
@@ -288,16 +280,16 @@ export class PushProcessor {
|
|
|
288
280
|
// $glob: RegExp
|
|
289
281
|
|
|
290
282
|
matchingRuleFromKindSet(ev, kindset) {
|
|
291
|
-
for (
|
|
292
|
-
|
|
283
|
+
for (const kind of RULEKINDS_IN_ORDER) {
|
|
284
|
+
const ruleset = kindset[kind];
|
|
293
285
|
if (!ruleset) {
|
|
294
286
|
continue;
|
|
295
287
|
}
|
|
296
|
-
for (
|
|
288
|
+
for (const rule of ruleset) {
|
|
297
289
|
if (!rule.enabled) {
|
|
298
290
|
continue;
|
|
299
291
|
}
|
|
300
|
-
|
|
292
|
+
const rawrule = this.templateRuleToRaw(kind, rule);
|
|
301
293
|
if (!rawrule) {
|
|
302
294
|
continue;
|
|
303
295
|
}
|
|
@@ -311,7 +303,7 @@ export class PushProcessor {
|
|
|
311
303
|
return null;
|
|
312
304
|
}
|
|
313
305
|
templateRuleToRaw(kind, tprule) {
|
|
314
|
-
|
|
306
|
+
const rawrule = {
|
|
315
307
|
rule_id: tprule.rule_id,
|
|
316
308
|
actions: tprule.actions,
|
|
317
309
|
conditions: []
|
|
@@ -379,12 +371,12 @@ export class PushProcessor {
|
|
|
379
371
|
return false;
|
|
380
372
|
}
|
|
381
373
|
eventFulfillsSenderNotifPermCondition(cond, ev) {
|
|
382
|
-
|
|
374
|
+
const notifLevelKey = cond["key"];
|
|
383
375
|
if (!notifLevelKey) {
|
|
384
376
|
return false;
|
|
385
377
|
}
|
|
386
|
-
|
|
387
|
-
if (!
|
|
378
|
+
const room = this.client.getRoom(ev.getRoomId());
|
|
379
|
+
if (!room?.currentState) {
|
|
388
380
|
return false;
|
|
389
381
|
}
|
|
390
382
|
|
|
@@ -397,17 +389,17 @@ export class PushProcessor {
|
|
|
397
389
|
if (!cond.is) {
|
|
398
390
|
return false;
|
|
399
391
|
}
|
|
400
|
-
|
|
392
|
+
const room = this.client.getRoom(ev.getRoomId());
|
|
401
393
|
if (!room || !room.currentState || !room.currentState.members) {
|
|
402
394
|
return false;
|
|
403
395
|
}
|
|
404
|
-
|
|
405
|
-
|
|
396
|
+
const memberCount = room.currentState.getJoinedMemberCount();
|
|
397
|
+
const m = cond.is.match(/^([=<>]*)(\d*)$/);
|
|
406
398
|
if (!m) {
|
|
407
399
|
return false;
|
|
408
400
|
}
|
|
409
|
-
|
|
410
|
-
|
|
401
|
+
const ineq = m[1];
|
|
402
|
+
const rhs = parseInt(m[2]);
|
|
411
403
|
if (isNaN(rhs)) {
|
|
412
404
|
return false;
|
|
413
405
|
}
|
|
@@ -428,24 +420,23 @@ export class PushProcessor {
|
|
|
428
420
|
}
|
|
429
421
|
}
|
|
430
422
|
eventFulfillsDisplayNameCondition(cond, ev) {
|
|
431
|
-
|
|
432
|
-
var content = ev.getContent();
|
|
423
|
+
let content = ev.getContent();
|
|
433
424
|
if (ev.isEncrypted() && ev.getClearContent()) {
|
|
434
425
|
content = ev.getClearContent();
|
|
435
426
|
}
|
|
436
427
|
if (!content || !content.body || typeof content.body != "string") {
|
|
437
428
|
return false;
|
|
438
429
|
}
|
|
439
|
-
|
|
440
|
-
|
|
430
|
+
const room = this.client.getRoom(ev.getRoomId());
|
|
431
|
+
const member = room?.currentState?.getMember(this.client.credentials.userId);
|
|
441
432
|
if (!member) {
|
|
442
433
|
return false;
|
|
443
434
|
}
|
|
444
|
-
|
|
435
|
+
const displayName = member.name;
|
|
445
436
|
|
|
446
437
|
// N.B. we can't use \b as it chokes on unicode. however \W seems to be okay
|
|
447
438
|
// as shorthand for [^0-9A-Za-z_].
|
|
448
|
-
|
|
439
|
+
const pat = new RegExp("(^|\\W)" + escapeRegExp(displayName) + "(\\W|$)", "i");
|
|
449
440
|
return content.body.search(pat) > -1;
|
|
450
441
|
}
|
|
451
442
|
|
|
@@ -460,7 +451,7 @@ export class PushProcessor {
|
|
|
460
451
|
if (!cond.key) {
|
|
461
452
|
return false;
|
|
462
453
|
}
|
|
463
|
-
|
|
454
|
+
const val = this.valueForDottedKey(cond.key, ev);
|
|
464
455
|
if (typeof val !== "string") {
|
|
465
456
|
return false;
|
|
466
457
|
}
|
|
@@ -477,7 +468,7 @@ export class PushProcessor {
|
|
|
477
468
|
|
|
478
469
|
// Align to word boundary on `content.body` matches, whole string otherwise
|
|
479
470
|
// https://spec.matrix.org/v1.13/client-server-api/#conditions-1
|
|
480
|
-
|
|
471
|
+
const regex = PushProcessor.getPushRuleGlobRegex(cond.pattern, cond.key === "content.body");
|
|
481
472
|
return !!val.match(regex);
|
|
482
473
|
}
|
|
483
474
|
|
|
@@ -506,7 +497,7 @@ export class PushProcessor {
|
|
|
506
497
|
if (!cond.key || cond.value === undefined) {
|
|
507
498
|
return false;
|
|
508
499
|
}
|
|
509
|
-
|
|
500
|
+
const val = this.valueForDottedKey(cond.key, ev);
|
|
510
501
|
if (!Array.isArray(val)) {
|
|
511
502
|
return false;
|
|
512
503
|
}
|
|
@@ -527,17 +518,17 @@ export class PushProcessor {
|
|
|
527
518
|
* @internal
|
|
528
519
|
*/
|
|
529
520
|
static partsForDottedKey(str) {
|
|
530
|
-
|
|
521
|
+
const result = [];
|
|
531
522
|
|
|
532
523
|
// The current field and whether the previous character was the escape
|
|
533
524
|
// character (a backslash).
|
|
534
|
-
|
|
535
|
-
|
|
525
|
+
let part = "";
|
|
526
|
+
let escaped = false;
|
|
536
527
|
|
|
537
528
|
// Iterate over each character, and decide whether to append to the current
|
|
538
529
|
// part (following the escape rules) or to start a new part (based on the
|
|
539
530
|
// field separator).
|
|
540
|
-
for (
|
|
531
|
+
for (const c of str) {
|
|
541
532
|
// If the previous character was the escape character (a backslash)
|
|
542
533
|
// then decide what to append to the current part.
|
|
543
534
|
if (escaped) {
|
|
@@ -586,16 +577,16 @@ export class PushProcessor {
|
|
|
586
577
|
// The key should already have been parsed via updateCachedPushRuleKeys,
|
|
587
578
|
// but if it hasn't (maybe via an old consumer of the SDK which hasn't
|
|
588
579
|
// been updated?) then lazily calculate it here.
|
|
589
|
-
|
|
580
|
+
let parts = this.parsedKeys.get(key);
|
|
590
581
|
if (parts === undefined) {
|
|
591
582
|
parts = PushProcessor.partsForDottedKey(key);
|
|
592
583
|
this.parsedKeys.set(key, parts);
|
|
593
584
|
}
|
|
594
|
-
|
|
585
|
+
let val;
|
|
595
586
|
|
|
596
587
|
// special-case the first component to deal with encrypted messages
|
|
597
|
-
|
|
598
|
-
|
|
588
|
+
const firstPart = parts[0];
|
|
589
|
+
let currentIndex = 0;
|
|
599
590
|
if (firstPart === "content") {
|
|
600
591
|
val = ev.getContent();
|
|
601
592
|
++currentIndex;
|
|
@@ -612,7 +603,7 @@ export class PushProcessor {
|
|
|
612
603
|
if (isNullOrUndefined(val)) {
|
|
613
604
|
return undefined;
|
|
614
605
|
}
|
|
615
|
-
|
|
606
|
+
const thisPart = parts[currentIndex];
|
|
616
607
|
val = val[thisPart];
|
|
617
608
|
}
|
|
618
609
|
return val;
|
|
@@ -627,11 +618,11 @@ export class PushProcessor {
|
|
|
627
618
|
return this.matchingRuleFromKindSet(ev, rulesets.global);
|
|
628
619
|
}
|
|
629
620
|
pushActionsForEventAndRulesets(ev, rulesets) {
|
|
630
|
-
|
|
621
|
+
const rule = this.matchingRuleForEventWithRulesets(ev, rulesets);
|
|
631
622
|
if (!rule) {
|
|
632
623
|
return {};
|
|
633
624
|
}
|
|
634
|
-
|
|
625
|
+
const actionObj = PushProcessor.actionListToActionsObject(rule.actions);
|
|
635
626
|
|
|
636
627
|
// Some actions are implicit in some situations: we add those here
|
|
637
628
|
if (actionObj.tweaks.highlight === undefined) {
|
|
@@ -645,20 +636,20 @@ export class PushProcessor {
|
|
|
645
636
|
};
|
|
646
637
|
}
|
|
647
638
|
ruleMatchesEvent(rule, ev) {
|
|
648
|
-
var _rule$conditions;
|
|
649
639
|
// Disable the deprecated mentions push rules if the new mentions property exists.
|
|
650
640
|
if (this.client.supportsIntentionalMentions() && ev.getContent()["m.mentions"] !== undefined && (rule.rule_id === RuleId.ContainsUserName || rule.rule_id === RuleId.ContainsDisplayName || rule.rule_id === RuleId.AtRoomNotification)) {
|
|
651
641
|
return false;
|
|
652
642
|
}
|
|
653
|
-
return !
|
|
643
|
+
return !rule.conditions?.some(cond => !this.eventFulfillsCondition(cond, ev));
|
|
654
644
|
}
|
|
655
645
|
|
|
656
646
|
/**
|
|
657
647
|
* Get the user's push actions for the given event
|
|
658
648
|
*/
|
|
659
649
|
actionsForEvent(ev) {
|
|
660
|
-
|
|
661
|
-
actions
|
|
650
|
+
const {
|
|
651
|
+
actions
|
|
652
|
+
} = this.pushActionsForEventAndRulesets(ev, this.client.pushRules);
|
|
662
653
|
return actions || {};
|
|
663
654
|
}
|
|
664
655
|
actionsAndRuleForEvent(ev) {
|
|
@@ -672,9 +663,8 @@ export class PushProcessor {
|
|
|
672
663
|
* @returns The push rule, or null if no such rule was found
|
|
673
664
|
*/
|
|
674
665
|
getPushRuleById(ruleId) {
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
return (_result$rule = result === null || result === void 0 ? void 0 : result.rule) !== null && _result$rule !== void 0 ? _result$rule : null;
|
|
666
|
+
const result = this.getPushRuleAndKindById(ruleId);
|
|
667
|
+
return result?.rule ?? null;
|
|
678
668
|
}
|
|
679
669
|
|
|
680
670
|
/**
|
|
@@ -685,12 +675,11 @@ export class PushProcessor {
|
|
|
685
675
|
* @returns kind - The PushRuleKind of the rule to search for
|
|
686
676
|
*/
|
|
687
677
|
getPushRuleAndKindById(ruleId) {
|
|
688
|
-
for (
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
for (var kind of RULEKINDS_IN_ORDER) {
|
|
678
|
+
for (const scope of ["global"]) {
|
|
679
|
+
if (this.client.pushRules?.[scope] === undefined) continue;
|
|
680
|
+
for (const kind of RULEKINDS_IN_ORDER) {
|
|
692
681
|
if (this.client.pushRules[scope][kind] === undefined) continue;
|
|
693
|
-
for (
|
|
682
|
+
for (const rule of this.client.pushRules[scope][kind]) {
|
|
694
683
|
if (rule.rule_id === ruleId) return {
|
|
695
684
|
rule,
|
|
696
685
|
kind
|