@textrp/briij-js-sdk 41.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/CHANGELOG.md +6464 -0
- package/LICENSE +177 -0
- package/README.md +477 -0
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +14 -0
- package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +1 -0
- package/lib/@types/AESEncryptedSecretStoragePayload.js +1 -0
- package/lib/@types/AESEncryptedSecretStoragePayload.js.map +1 -0
- package/lib/@types/IIdentityServerProvider.d.ts +9 -0
- package/lib/@types/IIdentityServerProvider.d.ts.map +1 -0
- package/lib/@types/IIdentityServerProvider.js +1 -0
- package/lib/@types/IIdentityServerProvider.js.map +1 -0
- package/lib/@types/PushRules.d.ts +140 -0
- package/lib/@types/PushRules.d.ts.map +1 -0
- package/lib/@types/PushRules.js +94 -0
- package/lib/@types/PushRules.js.map +1 -0
- package/lib/@types/another-json.d.js +0 -0
- package/lib/@types/another-json.d.js.map +1 -0
- package/lib/@types/auth.d.ts +213 -0
- package/lib/@types/auth.d.ts.map +1 -0
- package/lib/@types/auth.js +107 -0
- package/lib/@types/auth.js.map +1 -0
- package/lib/@types/beacon.d.ts +106 -0
- package/lib/@types/beacon.d.ts.map +1 -0
- package/lib/@types/beacon.js +119 -0
- package/lib/@types/beacon.js.map +1 -0
- package/lib/@types/common.d.ts +10 -0
- package/lib/@types/common.d.ts.map +1 -0
- package/lib/@types/common.js +1 -0
- package/lib/@types/common.js.map +1 -0
- package/lib/@types/crypto.d.ts +46 -0
- package/lib/@types/crypto.d.ts.map +1 -0
- package/lib/@types/crypto.js +1 -0
- package/lib/@types/crypto.js.map +1 -0
- package/lib/@types/event.d.ts +356 -0
- package/lib/@types/event.d.ts.map +1 -0
- package/lib/@types/event.js +280 -0
- package/lib/@types/event.js.map +1 -0
- package/lib/@types/events.d.ts +92 -0
- package/lib/@types/events.d.ts.map +1 -0
- package/lib/@types/events.js +1 -0
- package/lib/@types/events.js.map +1 -0
- package/lib/@types/extensible_events.d.ts +98 -0
- package/lib/@types/extensible_events.d.ts.map +1 -0
- package/lib/@types/extensible_events.js +116 -0
- package/lib/@types/extensible_events.js.map +1 -0
- package/lib/@types/global.d.js +18 -0
- package/lib/@types/global.d.js.map +1 -0
- package/lib/@types/local_notifications.d.ts +4 -0
- package/lib/@types/local_notifications.d.ts.map +1 -0
- package/lib/@types/local_notifications.js +1 -0
- package/lib/@types/local_notifications.js.map +1 -0
- package/lib/@types/location.d.ts +60 -0
- package/lib/@types/location.d.ts.map +1 -0
- package/lib/@types/location.js +66 -0
- package/lib/@types/location.js.map +1 -0
- package/lib/@types/matrix-sdk-crypto-wasm.d.js +1 -0
- package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +1 -0
- package/lib/@types/media.d.ts +220 -0
- package/lib/@types/media.d.ts.map +1 -0
- package/lib/@types/media.js +1 -0
- package/lib/@types/media.js.map +1 -0
- package/lib/@types/membership.d.ts +41 -0
- package/lib/@types/membership.d.ts.map +1 -0
- package/lib/@types/membership.js +58 -0
- package/lib/@types/membership.js.map +1 -0
- package/lib/@types/partials.d.ts +72 -0
- package/lib/@types/partials.d.ts.map +1 -0
- package/lib/@types/partials.js +71 -0
- package/lib/@types/partials.js.map +1 -0
- package/lib/@types/polls.d.ts +89 -0
- package/lib/@types/polls.d.ts.map +1 -0
- package/lib/@types/polls.js +86 -0
- package/lib/@types/polls.js.map +1 -0
- package/lib/@types/read_receipts.d.ts +36 -0
- package/lib/@types/read_receipts.d.ts.map +1 -0
- package/lib/@types/read_receipts.js +27 -0
- package/lib/@types/read_receipts.js.map +1 -0
- package/lib/@types/registration.d.ts +85 -0
- package/lib/@types/registration.d.ts.map +1 -0
- package/lib/@types/registration.js +1 -0
- package/lib/@types/registration.js.map +1 -0
- package/lib/@types/requests.d.ts +267 -0
- package/lib/@types/requests.d.ts.map +1 -0
- package/lib/@types/requests.js +42 -0
- package/lib/@types/requests.js.map +1 -0
- package/lib/@types/search.d.ts +90 -0
- package/lib/@types/search.d.ts.map +1 -0
- package/lib/@types/search.js +30 -0
- package/lib/@types/search.js.map +1 -0
- package/lib/@types/signed.d.ts +9 -0
- package/lib/@types/signed.d.ts.map +1 -0
- package/lib/@types/signed.js +1 -0
- package/lib/@types/signed.js.map +1 -0
- package/lib/@types/spaces.d.ts +16 -0
- package/lib/@types/spaces.d.ts.map +1 -0
- package/lib/@types/spaces.js +1 -0
- package/lib/@types/spaces.js.map +1 -0
- package/lib/@types/state_events.d.ts +121 -0
- package/lib/@types/state_events.d.ts.map +1 -0
- package/lib/@types/state_events.js +1 -0
- package/lib/@types/state_events.js.map +1 -0
- package/lib/@types/synapse.d.ts +19 -0
- package/lib/@types/synapse.d.ts.map +1 -0
- package/lib/@types/synapse.js +1 -0
- package/lib/@types/synapse.js.map +1 -0
- package/lib/@types/sync.d.ts +8 -0
- package/lib/@types/sync.d.ts.map +1 -0
- package/lib/@types/sync.js +25 -0
- package/lib/@types/sync.js.map +1 -0
- package/lib/@types/threepids.d.ts +12 -0
- package/lib/@types/threepids.d.ts.map +1 -0
- package/lib/@types/threepids.js +24 -0
- package/lib/@types/threepids.js.map +1 -0
- package/lib/@types/topic.d.ts +55 -0
- package/lib/@types/topic.d.ts.map +1 -0
- package/lib/@types/topic.js +62 -0
- package/lib/@types/topic.js.map +1 -0
- package/lib/@types/uia.d.ts +8 -0
- package/lib/@types/uia.d.ts.map +1 -0
- package/lib/@types/uia.js +1 -0
- package/lib/@types/uia.js.map +1 -0
- package/lib/NamespacedValue.d.ts +32 -0
- package/lib/NamespacedValue.d.ts.map +1 -0
- package/lib/NamespacedValue.js +113 -0
- package/lib/NamespacedValue.js.map +1 -0
- package/lib/ReEmitter.d.ts +15 -0
- package/lib/ReEmitter.d.ts.map +1 -0
- package/lib/ReEmitter.js +87 -0
- package/lib/ReEmitter.js.map +1 -0
- package/lib/ToDeviceMessageQueue.d.ts +30 -0
- package/lib/ToDeviceMessageQueue.d.ts.map +1 -0
- package/lib/ToDeviceMessageQueue.js +135 -0
- package/lib/ToDeviceMessageQueue.js.map +1 -0
- package/lib/autodiscovery.d.ts +136 -0
- package/lib/autodiscovery.d.ts.map +1 -0
- package/lib/autodiscovery.js +464 -0
- package/lib/autodiscovery.js.map +1 -0
- package/lib/base64.d.ts +25 -0
- package/lib/base64.d.ts.map +1 -0
- package/lib/base64.js +95 -0
- package/lib/base64.js.map +1 -0
- package/lib/briij.d.ts +116 -0
- package/lib/briij.d.ts.map +1 -0
- package/lib/briij.js +145 -0
- package/lib/briij.js.map +1 -0
- package/lib/browser-index.d.ts +8 -0
- package/lib/browser-index.d.ts.map +1 -0
- package/lib/browser-index.js +35 -0
- package/lib/browser-index.js.map +1 -0
- package/lib/client.d.ts +3493 -0
- package/lib/client.d.ts.map +1 -0
- package/lib/client.js +7482 -0
- package/lib/client.js.map +1 -0
- package/lib/common-crypto/CryptoBackend.d.ts +234 -0
- package/lib/common-crypto/CryptoBackend.d.ts.map +1 -0
- package/lib/common-crypto/CryptoBackend.js +69 -0
- package/lib/common-crypto/CryptoBackend.js.map +1 -0
- package/lib/common-crypto/key-passphrase.d.ts +14 -0
- package/lib/common-crypto/key-passphrase.d.ts.map +1 -0
- package/lib/common-crypto/key-passphrase.js +33 -0
- package/lib/common-crypto/key-passphrase.js.map +1 -0
- package/lib/content-helpers.d.ts +90 -0
- package/lib/content-helpers.d.ts.map +1 -0
- package/lib/content-helpers.js +262 -0
- package/lib/content-helpers.js.map +1 -0
- package/lib/content-repo.d.ts +25 -0
- package/lib/content-repo.d.ts.map +1 -0
- package/lib/content-repo.js +109 -0
- package/lib/content-repo.js.map +1 -0
- package/lib/crypto/store/base.d.ts +301 -0
- package/lib/crypto/store/base.d.ts.map +1 -0
- package/lib/crypto/store/base.js +145 -0
- package/lib/crypto/store/base.js.map +1 -0
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +94 -0
- package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +1 -0
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +604 -0
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -0
- package/lib/crypto/store/indexeddb-crypto-store.d.ts +251 -0
- package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +1 -0
- package/lib/crypto/store/indexeddb-crypto-store.js +477 -0
- package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -0
- package/lib/crypto/store/localStorage-crypto-store.d.ts +102 -0
- package/lib/crypto/store/localStorage-crypto-store.d.ts.map +1 -0
- package/lib/crypto/store/localStorage-crypto-store.js +374 -0
- package/lib/crypto/store/localStorage-crypto-store.js.map +1 -0
- package/lib/crypto/store/memory-crypto-store.d.ts +117 -0
- package/lib/crypto/store/memory-crypto-store.d.ts.map +1 -0
- package/lib/crypto/store/memory-crypto-store.js +311 -0
- package/lib/crypto/store/memory-crypto-store.js.map +1 -0
- package/lib/crypto-api/CryptoEvent.d.ts +120 -0
- package/lib/crypto-api/CryptoEvent.d.ts.map +1 -0
- package/lib/crypto-api/CryptoEvent.js +137 -0
- package/lib/crypto-api/CryptoEvent.js.map +1 -0
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts +26 -0
- package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +1 -0
- package/lib/crypto-api/CryptoEventHandlerMap.js +1 -0
- package/lib/crypto-api/CryptoEventHandlerMap.js.map +1 -0
- package/lib/crypto-api/index.d.ts +1160 -0
- package/lib/crypto-api/index.d.ts.map +1 -0
- package/lib/crypto-api/index.js +410 -0
- package/lib/crypto-api/index.js.map +1 -0
- package/lib/crypto-api/key-passphrase.d.ts +11 -0
- package/lib/crypto-api/key-passphrase.d.ts.map +1 -0
- package/lib/crypto-api/key-passphrase.js +51 -0
- package/lib/crypto-api/key-passphrase.js.map +1 -0
- package/lib/crypto-api/keybackup.d.ts +87 -0
- package/lib/crypto-api/keybackup.d.ts.map +1 -0
- package/lib/crypto-api/keybackup.js +1 -0
- package/lib/crypto-api/keybackup.js.map +1 -0
- package/lib/crypto-api/recovery-key.d.ts +11 -0
- package/lib/crypto-api/recovery-key.d.ts.map +1 -0
- package/lib/crypto-api/recovery-key.js +65 -0
- package/lib/crypto-api/recovery-key.js.map +1 -0
- package/lib/crypto-api/verification.d.ts +315 -0
- package/lib/crypto-api/verification.d.ts.map +1 -0
- package/lib/crypto-api/verification.js +130 -0
- package/lib/crypto-api/verification.js.map +1 -0
- package/lib/digest.d.ts +10 -0
- package/lib/digest.d.ts.map +1 -0
- package/lib/digest.js +40 -0
- package/lib/digest.js.map +1 -0
- package/lib/embedded.d.ts +182 -0
- package/lib/embedded.d.ts.map +1 -0
- package/lib/embedded.js +746 -0
- package/lib/embedded.js.map +1 -0
- package/lib/errors.d.ts +38 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +73 -0
- package/lib/errors.js.map +1 -0
- package/lib/event-mapper.d.ts +9 -0
- package/lib/event-mapper.d.ts.map +1 -0
- package/lib/event-mapper.js +74 -0
- package/lib/event-mapper.js.map +1 -0
- package/lib/extensible_events_v1/ExtensibleEvent.d.ts +38 -0
- package/lib/extensible_events_v1/ExtensibleEvent.d.ts.map +1 -0
- package/lib/extensible_events_v1/ExtensibleEvent.js +57 -0
- package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -0
- package/lib/extensible_events_v1/InvalidEventError.d.ts +7 -0
- package/lib/extensible_events_v1/InvalidEventError.d.ts.map +1 -0
- package/lib/extensible_events_v1/InvalidEventError.js +25 -0
- package/lib/extensible_events_v1/InvalidEventError.js.map +1 -0
- package/lib/extensible_events_v1/MessageEvent.d.ts +44 -0
- package/lib/extensible_events_v1/MessageEvent.d.ts.map +1 -0
- package/lib/extensible_events_v1/MessageEvent.js +134 -0
- package/lib/extensible_events_v1/MessageEvent.js.map +1 -0
- package/lib/extensible_events_v1/PollEndEvent.d.ts +33 -0
- package/lib/extensible_events_v1/PollEndEvent.d.ts.map +1 -0
- package/lib/extensible_events_v1/PollEndEvent.js +88 -0
- package/lib/extensible_events_v1/PollEndEvent.js.map +1 -0
- package/lib/extensible_events_v1/PollResponseEvent.d.ts +49 -0
- package/lib/extensible_events_v1/PollResponseEvent.d.ts.map +1 -0
- package/lib/extensible_events_v1/PollResponseEvent.js +135 -0
- package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -0
- package/lib/extensible_events_v1/PollStartEvent.d.ts +71 -0
- package/lib/extensible_events_v1/PollStartEvent.d.ts.map +1 -0
- package/lib/extensible_events_v1/PollStartEvent.js +185 -0
- package/lib/extensible_events_v1/PollStartEvent.js.map +1 -0
- package/lib/extensible_events_v1/utilities.d.ts +14 -0
- package/lib/extensible_events_v1/utilities.d.ts.map +1 -0
- package/lib/extensible_events_v1/utilities.js +34 -0
- package/lib/extensible_events_v1/utilities.js.map +1 -0
- package/lib/feature.d.ts +20 -0
- package/lib/feature.d.ts.map +1 -0
- package/lib/feature.js +89 -0
- package/lib/feature.js.map +1 -0
- package/lib/filter-component.d.ts +64 -0
- package/lib/filter-component.d.ts.map +1 -0
- package/lib/filter-component.js +170 -0
- package/lib/filter-component.js.map +1 -0
- package/lib/filter.d.ts +97 -0
- package/lib/filter.d.ts.map +1 -0
- package/lib/filter.js +207 -0
- package/lib/filter.js.map +1 -0
- package/lib/http-api/errors.d.ts +117 -0
- package/lib/http-api/errors.d.ts.map +1 -0
- package/lib/http-api/errors.js +245 -0
- package/lib/http-api/errors.js.map +1 -0
- package/lib/http-api/fetch.d.ts +80 -0
- package/lib/http-api/fetch.d.ts.map +1 -0
- package/lib/http-api/fetch.js +332 -0
- package/lib/http-api/fetch.js.map +1 -0
- package/lib/http-api/index.d.ts +33 -0
- package/lib/http-api/index.d.ts.map +1 -0
- package/lib/http-api/index.js +178 -0
- package/lib/http-api/index.js.map +1 -0
- package/lib/http-api/interface.d.ts +186 -0
- package/lib/http-api/interface.d.ts.map +1 -0
- package/lib/http-api/interface.js +39 -0
- package/lib/http-api/interface.js.map +1 -0
- package/lib/http-api/method.d.ts +10 -0
- package/lib/http-api/method.d.ts.map +1 -0
- package/lib/http-api/method.js +27 -0
- package/lib/http-api/method.js.map +1 -0
- package/lib/http-api/prefix.d.ts +31 -0
- package/lib/http-api/prefix.d.ts.map +1 -0
- package/lib/http-api/prefix.js +50 -0
- package/lib/http-api/prefix.js.map +1 -0
- package/lib/http-api/refresh.d.ts +53 -0
- package/lib/http-api/refresh.d.ts.map +1 -0
- package/lib/http-api/refresh.js +174 -0
- package/lib/http-api/refresh.js.map +1 -0
- package/lib/http-api/utils.d.ts +37 -0
- package/lib/http-api/utils.d.ts.map +1 -0
- package/lib/http-api/utils.js +182 -0
- package/lib/http-api/utils.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +24 -0
- package/lib/index.js.map +1 -0
- package/lib/indexeddb-helpers.d.ts +10 -0
- package/lib/indexeddb-helpers.d.ts.map +1 -0
- package/lib/indexeddb-helpers.js +51 -0
- package/lib/indexeddb-helpers.js.map +1 -0
- package/lib/indexeddb-worker.d.ts +7 -0
- package/lib/indexeddb-worker.d.ts.map +1 -0
- package/lib/indexeddb-worker.js +25 -0
- package/lib/indexeddb-worker.js.map +1 -0
- package/lib/interactive-auth.d.ts +341 -0
- package/lib/interactive-auth.d.ts.map +1 -0
- package/lib/interactive-auth.js +563 -0
- package/lib/interactive-auth.js.map +1 -0
- package/lib/logger.d.ts +124 -0
- package/lib/logger.d.ts.map +1 -0
- package/lib/logger.js +230 -0
- package/lib/logger.js.map +1 -0
- package/lib/matrixrtc/CallMembership.d.ts +154 -0
- package/lib/matrixrtc/CallMembership.d.ts.map +1 -0
- package/lib/matrixrtc/CallMembership.js +469 -0
- package/lib/matrixrtc/CallMembership.js.map +1 -0
- package/lib/matrixrtc/EncryptionManager.d.ts +44 -0
- package/lib/matrixrtc/EncryptionManager.d.ts.map +1 -0
- package/lib/matrixrtc/EncryptionManager.js +13 -0
- package/lib/matrixrtc/EncryptionManager.js.map +1 -0
- package/lib/matrixrtc/IKeyTransport.d.ts +37 -0
- package/lib/matrixrtc/IKeyTransport.d.ts.map +1 -0
- package/lib/matrixrtc/IKeyTransport.js +27 -0
- package/lib/matrixrtc/IKeyTransport.js.map +1 -0
- package/lib/matrixrtc/IMembershipManager.d.ts +94 -0
- package/lib/matrixrtc/IMembershipManager.d.ts.map +1 -0
- package/lib/matrixrtc/IMembershipManager.js +40 -0
- package/lib/matrixrtc/IMembershipManager.js.map +1 -0
- package/lib/matrixrtc/LivekitTransport.d.ts +23 -0
- package/lib/matrixrtc/LivekitTransport.d.ts.map +1 -0
- package/lib/matrixrtc/LivekitTransport.js +29 -0
- package/lib/matrixrtc/LivekitTransport.js.map +1 -0
- package/lib/matrixrtc/MatrixRTCSession.d.ts +343 -0
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -0
- package/lib/matrixrtc/MatrixRTCSession.js +623 -0
- package/lib/matrixrtc/MatrixRTCSession.js.map +1 -0
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +46 -0
- package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +1 -0
- package/lib/matrixrtc/MatrixRTCSessionManager.js +149 -0
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -0
- package/lib/matrixrtc/MembershipManager.d.ts +210 -0
- package/lib/matrixrtc/MembershipManager.d.ts.map +1 -0
- package/lib/matrixrtc/MembershipManager.js +977 -0
- package/lib/matrixrtc/MembershipManager.js.map +1 -0
- package/lib/matrixrtc/MembershipManagerActionScheduler.d.ts +59 -0
- package/lib/matrixrtc/MembershipManagerActionScheduler.d.ts.map +1 -0
- package/lib/matrixrtc/MembershipManagerActionScheduler.js +125 -0
- package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -0
- package/lib/matrixrtc/RTCEncryptionManager.d.ts +110 -0
- package/lib/matrixrtc/RTCEncryptionManager.d.ts.map +1 -0
- package/lib/matrixrtc/RTCEncryptionManager.js +376 -0
- package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -0
- package/lib/matrixrtc/ToDeviceKeyTransport.d.ts +30 -0
- package/lib/matrixrtc/ToDeviceKeyTransport.d.ts.map +1 -0
- package/lib/matrixrtc/ToDeviceKeyTransport.js +164 -0
- package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -0
- package/lib/matrixrtc/index.d.ts +9 -0
- package/lib/matrixrtc/index.d.ts.map +1 -0
- package/lib/matrixrtc/index.js +23 -0
- package/lib/matrixrtc/index.js.map +1 -0
- package/lib/matrixrtc/membershipData/common.d.ts +8 -0
- package/lib/matrixrtc/membershipData/common.d.ts.map +1 -0
- package/lib/matrixrtc/membershipData/common.js +26 -0
- package/lib/matrixrtc/membershipData/common.js.map +1 -0
- package/lib/matrixrtc/membershipData/index.d.ts +4 -0
- package/lib/matrixrtc/membershipData/index.d.ts.map +1 -0
- package/lib/matrixrtc/membershipData/index.js +20 -0
- package/lib/matrixrtc/membershipData/index.js.map +1 -0
- package/lib/matrixrtc/membershipData/rtc.d.ts +33 -0
- package/lib/matrixrtc/membershipData/rtc.d.ts.map +1 -0
- package/lib/matrixrtc/membershipData/rtc.js +137 -0
- package/lib/matrixrtc/membershipData/rtc.js.map +1 -0
- package/lib/matrixrtc/membershipData/session.d.ts +77 -0
- package/lib/matrixrtc/membershipData/session.d.ts.map +1 -0
- package/lib/matrixrtc/membershipData/session.js +62 -0
- package/lib/matrixrtc/membershipData/session.js.map +1 -0
- package/lib/matrixrtc/types.d.ts +169 -0
- package/lib/matrixrtc/types.d.ts.map +1 -0
- package/lib/matrixrtc/types.js +117 -0
- package/lib/matrixrtc/types.js.map +1 -0
- package/lib/matrixrtc/utils.d.ts +27 -0
- package/lib/matrixrtc/utils.d.ts.map +1 -0
- package/lib/matrixrtc/utils.js +72 -0
- package/lib/matrixrtc/utils.js.map +1 -0
- package/lib/models/MSC3089Branch.d.ts +98 -0
- package/lib/models/MSC3089Branch.d.ts.map +1 -0
- package/lib/models/MSC3089Branch.js +240 -0
- package/lib/models/MSC3089Branch.js.map +1 -0
- package/lib/models/MSC3089TreeSpace.d.ts +166 -0
- package/lib/models/MSC3089TreeSpace.d.ts.map +1 -0
- package/lib/models/MSC3089TreeSpace.js +521 -0
- package/lib/models/MSC3089TreeSpace.js.map +1 -0
- package/lib/models/ToDeviceMessage.d.ts +17 -0
- package/lib/models/ToDeviceMessage.d.ts.map +1 -0
- package/lib/models/ToDeviceMessage.js +1 -0
- package/lib/models/ToDeviceMessage.js.map +1 -0
- package/lib/models/beacon.d.ts +52 -0
- package/lib/models/beacon.d.ts.map +1 -0
- package/lib/models/beacon.js +174 -0
- package/lib/models/beacon.js.map +1 -0
- package/lib/models/compare-event-ordering.d.ts +24 -0
- package/lib/models/compare-event-ordering.d.ts.map +1 -0
- package/lib/models/compare-event-ordering.js +120 -0
- package/lib/models/compare-event-ordering.js.map +1 -0
- package/lib/models/device.d.ts +45 -0
- package/lib/models/device.d.ts.map +1 -0
- package/lib/models/device.js +77 -0
- package/lib/models/device.js.map +1 -0
- package/lib/models/event-context.d.ts +62 -0
- package/lib/models/event-context.d.ts.map +1 -0
- package/lib/models/event-context.js +113 -0
- package/lib/models/event-context.js.map +1 -0
- package/lib/models/event-status.d.ts +19 -0
- package/lib/models/event-status.d.ts.map +1 -0
- package/lib/models/event-status.js +36 -0
- package/lib/models/event-status.js.map +1 -0
- package/lib/models/event-timeline-set.d.ts +308 -0
- package/lib/models/event-timeline-set.d.ts.map +1 -0
- package/lib/models/event-timeline-set.js +805 -0
- package/lib/models/event-timeline-set.js.map +1 -0
- package/lib/models/event-timeline.d.ts +224 -0
- package/lib/models/event-timeline.d.ts.map +1 -0
- package/lib/models/event-timeline.js +434 -0
- package/lib/models/event-timeline.js.map +1 -0
- package/lib/models/event.d.ts +844 -0
- package/lib/models/event.d.ts.map +1 -0
- package/lib/models/event.js +1600 -0
- package/lib/models/event.js.map +1 -0
- 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 +56 -0
- package/lib/models/invites-ignorer-types.js.map +1 -0
- package/lib/models/invites-ignorer.d.ts +112 -0
- package/lib/models/invites-ignorer.d.ts.map +1 -0
- package/lib/models/invites-ignorer.js +357 -0
- package/lib/models/invites-ignorer.js.map +1 -0
- package/lib/models/poll.d.ts +67 -0
- package/lib/models/poll.d.ts.map +1 -0
- package/lib/models/poll.js +241 -0
- package/lib/models/poll.js.map +1 -0
- package/lib/models/profile-keys.d.ts +17 -0
- package/lib/models/profile-keys.d.ts.map +1 -0
- package/lib/models/profile-keys.js +34 -0
- package/lib/models/profile-keys.js.map +1 -0
- package/lib/models/read-receipt.d.ts +115 -0
- package/lib/models/read-receipt.d.ts.map +1 -0
- package/lib/models/read-receipt.js +366 -0
- package/lib/models/read-receipt.js.map +1 -0
- package/lib/models/related-relations.d.ts +11 -0
- package/lib/models/related-relations.d.ts.map +1 -0
- package/lib/models/related-relations.js +33 -0
- package/lib/models/related-relations.js.map +1 -0
- package/lib/models/relations-container.d.ts +44 -0
- package/lib/models/relations-container.d.ts.map +1 -0
- package/lib/models/relations-container.js +132 -0
- package/lib/models/relations-container.js.map +1 -0
- package/lib/models/relations.d.ts +123 -0
- package/lib/models/relations.d.ts.map +1 -0
- package/lib/models/relations.js +378 -0
- package/lib/models/relations.js.map +1 -0
- package/lib/models/room-member.d.ts +221 -0
- package/lib/models/room-member.d.ts.map +1 -0
- package/lib/models/room-member.js +376 -0
- package/lib/models/room-member.js.map +1 -0
- package/lib/models/room-receipts.d.ts +39 -0
- package/lib/models/room-receipts.d.ts.map +1 -0
- package/lib/models/room-receipts.js +392 -0
- package/lib/models/room-receipts.js.map +1 -0
- package/lib/models/room-state.d.ts +463 -0
- package/lib/models/room-state.d.ts.map +1 -0
- package/lib/models/room-state.js +1066 -0
- package/lib/models/room-state.js.map +1 -0
- package/lib/models/room-sticky-events.d.ts +110 -0
- package/lib/models/room-sticky-events.d.ts.map +1 -0
- package/lib/models/room-sticky-events.js +353 -0
- package/lib/models/room-sticky-events.js.map +1 -0
- package/lib/models/room-summary.d.ts +59 -0
- package/lib/models/room-summary.d.ts.map +1 -0
- package/lib/models/room-summary.js +39 -0
- package/lib/models/room-summary.js.map +1 -0
- package/lib/models/room.d.ts +1285 -0
- package/lib/models/room.d.ts.map +1 -0
- package/lib/models/room.js +3548 -0
- package/lib/models/room.js.map +1 -0
- package/lib/models/search-result.d.ts +20 -0
- package/lib/models/search-result.d.ts.map +1 -0
- package/lib/models/search-result.js +52 -0
- package/lib/models/search-result.js.map +1 -0
- package/lib/models/thread.d.ts +245 -0
- package/lib/models/thread.d.ts.map +1 -0
- package/lib/models/thread.js +866 -0
- package/lib/models/thread.js.map +1 -0
- package/lib/models/typed-event-emitter.d.ts +157 -0
- package/lib/models/typed-event-emitter.d.ts.map +1 -0
- package/lib/models/typed-event-emitter.js +227 -0
- package/lib/models/typed-event-emitter.js.map +1 -0
- package/lib/models/user.d.ts +195 -0
- package/lib/models/user.d.ts.map +1 -0
- package/lib/models/user.js +218 -0
- package/lib/models/user.js.map +1 -0
- package/lib/oidc/authorize.d.ts +93 -0
- package/lib/oidc/authorize.d.ts.map +1 -0
- package/lib/oidc/authorize.js +282 -0
- package/lib/oidc/authorize.js.map +1 -0
- package/lib/oidc/discovery.d.ts +22 -0
- package/lib/oidc/discovery.d.ts.map +1 -0
- package/lib/oidc/discovery.js +78 -0
- package/lib/oidc/discovery.js.map +1 -0
- package/lib/oidc/error.d.ts +18 -0
- package/lib/oidc/error.d.ts.map +1 -0
- package/lib/oidc/error.js +35 -0
- package/lib/oidc/error.js.map +1 -0
- package/lib/oidc/index.d.ts +16 -0
- package/lib/oidc/index.d.ts.map +1 -0
- package/lib/oidc/index.js +29 -0
- package/lib/oidc/index.js.map +1 -0
- package/lib/oidc/register.d.ts +70 -0
- package/lib/oidc/register.d.ts.map +1 -0
- package/lib/oidc/register.js +135 -0
- package/lib/oidc/register.js.map +1 -0
- package/lib/oidc/tokenRefresher.d.ts +91 -0
- package/lib/oidc/tokenRefresher.d.ts.map +1 -0
- package/lib/oidc/tokenRefresher.js +187 -0
- package/lib/oidc/tokenRefresher.js.map +1 -0
- package/lib/oidc/validate.d.ts +78 -0
- package/lib/oidc/validate.d.ts.map +1 -0
- package/lib/oidc/validate.js +181 -0
- package/lib/oidc/validate.js.map +1 -0
- package/lib/pushprocessor.d.ts +140 -0
- package/lib/pushprocessor.d.ts.map +1 -0
- package/lib/pushprocessor.js +702 -0
- package/lib/pushprocessor.js.map +1 -0
- package/lib/randomstring.d.ts +32 -0
- package/lib/randomstring.d.ts.map +1 -0
- package/lib/randomstring.js +97 -0
- package/lib/randomstring.js.map +1 -0
- package/lib/realtime-callbacks.d.ts +18 -0
- package/lib/realtime-callbacks.d.ts.map +1 -0
- package/lib/realtime-callbacks.js +177 -0
- package/lib/realtime-callbacks.js.map +1 -0
- package/lib/receipt-accumulator.d.ts +51 -0
- package/lib/receipt-accumulator.d.ts.map +1 -0
- package/lib/receipt-accumulator.js +164 -0
- package/lib/receipt-accumulator.js.map +1 -0
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts +112 -0
- package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +1 -0
- package/lib/rendezvous/MSC4108SignInWithQR.js +389 -0
- package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -0
- package/lib/rendezvous/RendezvousChannel.d.ts +27 -0
- package/lib/rendezvous/RendezvousChannel.d.ts.map +1 -0
- package/lib/rendezvous/RendezvousChannel.js +1 -0
- package/lib/rendezvous/RendezvousChannel.js.map +1 -0
- package/lib/rendezvous/RendezvousCode.d.ts +9 -0
- package/lib/rendezvous/RendezvousCode.d.ts.map +1 -0
- package/lib/rendezvous/RendezvousCode.js +1 -0
- package/lib/rendezvous/RendezvousCode.js.map +1 -0
- package/lib/rendezvous/RendezvousError.d.ts +6 -0
- package/lib/rendezvous/RendezvousError.d.ts.map +1 -0
- package/lib/rendezvous/RendezvousError.js +23 -0
- package/lib/rendezvous/RendezvousError.js.map +1 -0
- package/lib/rendezvous/RendezvousFailureReason.d.ts +31 -0
- package/lib/rendezvous/RendezvousFailureReason.d.ts.map +1 -0
- package/lib/rendezvous/RendezvousFailureReason.js +47 -0
- package/lib/rendezvous/RendezvousFailureReason.js.map +1 -0
- package/lib/rendezvous/RendezvousIntent.d.ts +5 -0
- package/lib/rendezvous/RendezvousIntent.d.ts.map +1 -0
- package/lib/rendezvous/RendezvousIntent.js +22 -0
- package/lib/rendezvous/RendezvousIntent.js.map +1 -0
- package/lib/rendezvous/RendezvousTransport.d.ts +36 -0
- package/lib/rendezvous/RendezvousTransport.d.ts.map +1 -0
- package/lib/rendezvous/RendezvousTransport.js +1 -0
- package/lib/rendezvous/RendezvousTransport.js.map +1 -0
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +58 -0
- package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +1 -0
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +246 -0
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -0
- package/lib/rendezvous/channels/index.d.ts +2 -0
- package/lib/rendezvous/channels/index.d.ts.map +1 -0
- package/lib/rendezvous/channels/index.js +18 -0
- package/lib/rendezvous/channels/index.js.map +1 -0
- package/lib/rendezvous/index.d.ts +10 -0
- package/lib/rendezvous/index.d.ts.map +1 -0
- package/lib/rendezvous/index.js +23 -0
- package/lib/rendezvous/index.js.map +1 -0
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +61 -0
- package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +1 -0
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +254 -0
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -0
- package/lib/rendezvous/transports/index.d.ts +2 -0
- package/lib/rendezvous/transports/index.d.ts.map +1 -0
- package/lib/rendezvous/transports/index.js +18 -0
- package/lib/rendezvous/transports/index.js.map +1 -0
- package/lib/room-hierarchy.d.ts +35 -0
- package/lib/room-hierarchy.d.ts.map +1 -0
- package/lib/room-hierarchy.js +136 -0
- package/lib/room-hierarchy.js.map +1 -0
- package/lib/rust-crypto/CrossSigningIdentity.d.ts +35 -0
- package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +1 -0
- package/lib/rust-crypto/CrossSigningIdentity.js +163 -0
- package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -0
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts +118 -0
- package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +1 -0
- package/lib/rust-crypto/DehydratedDeviceManager.js +361 -0
- package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -0
- package/lib/rust-crypto/KeyClaimManager.d.ts +33 -0
- package/lib/rust-crypto/KeyClaimManager.d.ts.map +1 -0
- package/lib/rust-crypto/KeyClaimManager.js +82 -0
- package/lib/rust-crypto/KeyClaimManager.js.map +1 -0
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +36 -0
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +1 -0
- package/lib/rust-crypto/OutgoingRequestProcessor.js +194 -0
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -0
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts +47 -0
- package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +1 -0
- package/lib/rust-crypto/OutgoingRequestsManager.js +175 -0
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -0
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +120 -0
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +1 -0
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +469 -0
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -0
- package/lib/rust-crypto/RoomEncryptor.d.ts +100 -0
- package/lib/rust-crypto/RoomEncryptor.d.ts.map +1 -0
- package/lib/rust-crypto/RoomEncryptor.js +308 -0
- package/lib/rust-crypto/RoomEncryptor.js.map +1 -0
- package/lib/rust-crypto/backup.d.ts +278 -0
- package/lib/rust-crypto/backup.d.ts.map +1 -0
- package/lib/rust-crypto/backup.js +898 -0
- package/lib/rust-crypto/backup.js.map +1 -0
- package/lib/rust-crypto/constants.d.ts +3 -0
- package/lib/rust-crypto/constants.d.ts.map +1 -0
- package/lib/rust-crypto/constants.js +19 -0
- package/lib/rust-crypto/constants.js.map +1 -0
- package/lib/rust-crypto/device-converter.d.ts +28 -0
- package/lib/rust-crypto/device-converter.d.ts.map +1 -0
- package/lib/rust-crypto/device-converter.js +123 -0
- package/lib/rust-crypto/device-converter.js.map +1 -0
- package/lib/rust-crypto/index.d.ts +65 -0
- package/lib/rust-crypto/index.d.ts.map +1 -0
- package/lib/rust-crypto/index.js +149 -0
- package/lib/rust-crypto/index.js.map +1 -0
- package/lib/rust-crypto/libolm_migration.d.ts +81 -0
- package/lib/rust-crypto/libolm_migration.d.ts.map +1 -0
- package/lib/rust-crypto/libolm_migration.js +456 -0
- package/lib/rust-crypto/libolm_migration.js.map +1 -0
- package/lib/rust-crypto/rust-crypto.d.ts +576 -0
- package/lib/rust-crypto/rust-crypto.d.ts.map +1 -0
- package/lib/rust-crypto/rust-crypto.js +2324 -0
- package/lib/rust-crypto/rust-crypto.js.map +1 -0
- package/lib/rust-crypto/secret-storage.d.ts +22 -0
- package/lib/rust-crypto/secret-storage.d.ts.map +1 -0
- package/lib/rust-crypto/secret-storage.js +63 -0
- package/lib/rust-crypto/secret-storage.js.map +1 -0
- package/lib/rust-crypto/verification.d.ts +321 -0
- package/lib/rust-crypto/verification.d.ts.map +1 -0
- package/lib/rust-crypto/verification.js +817 -0
- package/lib/rust-crypto/verification.js.map +1 -0
- package/lib/scheduler.d.ts +132 -0
- package/lib/scheduler.d.ts.map +1 -0
- package/lib/scheduler.js +259 -0
- package/lib/scheduler.js.map +1 -0
- package/lib/secret-storage.d.ts +383 -0
- package/lib/secret-storage.d.ts.map +1 -0
- package/lib/secret-storage.js +487 -0
- package/lib/secret-storage.js.map +1 -0
- package/lib/serverCapabilities.d.ts +78 -0
- package/lib/serverCapabilities.d.ts.map +1 -0
- package/lib/serverCapabilities.js +104 -0
- package/lib/serverCapabilities.js.map +1 -0
- package/lib/service-types.d.ts +5 -0
- package/lib/service-types.d.ts.map +1 -0
- package/lib/service-types.js +23 -0
- package/lib/service-types.js.map +1 -0
- package/lib/sliding-sync-sdk.d.ts +107 -0
- package/lib/sliding-sync-sdk.d.ts.map +1 -0
- package/lib/sliding-sync-sdk.js +892 -0
- package/lib/sliding-sync-sdk.js.map +1 -0
- package/lib/sliding-sync.d.ts +306 -0
- package/lib/sliding-sync.d.ts.map +1 -0
- package/lib/sliding-sync.js +585 -0
- package/lib/sliding-sync.js.map +1 -0
- package/lib/store/index.d.ts +201 -0
- package/lib/store/index.d.ts.map +1 -0
- package/lib/store/index.js +1 -0
- package/lib/store/index.js.map +1 -0
- package/lib/store/indexeddb-backend.d.ts +24 -0
- package/lib/store/indexeddb-backend.d.ts.map +1 -0
- package/lib/store/indexeddb-backend.js +1 -0
- package/lib/store/indexeddb-backend.js.map +1 -0
- package/lib/store/indexeddb-local-backend.d.ts +129 -0
- package/lib/store/indexeddb-local-backend.d.ts.map +1 -0
- package/lib/store/indexeddb-local-backend.js +599 -0
- package/lib/store/indexeddb-local-backend.js.map +1 -0
- package/lib/store/indexeddb-remote-backend.d.ts +79 -0
- package/lib/store/indexeddb-remote-backend.d.ts.map +1 -0
- package/lib/store/indexeddb-remote-backend.js +209 -0
- package/lib/store/indexeddb-remote-backend.js.map +1 -0
- package/lib/store/indexeddb-store-worker.d.ts +35 -0
- package/lib/store/indexeddb-store-worker.d.ts.map +1 -0
- package/lib/store/indexeddb-store-worker.js +146 -0
- package/lib/store/indexeddb-store-worker.js.map +1 -0
- package/lib/store/indexeddb.d.ts +142 -0
- package/lib/store/indexeddb.d.ts.map +1 -0
- package/lib/store/indexeddb.js +347 -0
- package/lib/store/indexeddb.js.map +1 -0
- package/lib/store/local-storage-events-emitter.d.ts +30 -0
- package/lib/store/local-storage-events-emitter.d.ts.map +1 -0
- package/lib/store/local-storage-events-emitter.js +37 -0
- package/lib/store/local-storage-events-emitter.js.map +1 -0
- package/lib/store/memory.d.ts +209 -0
- package/lib/store/memory.d.ts.map +1 -0
- package/lib/store/memory.js +432 -0
- package/lib/store/memory.js.map +1 -0
- package/lib/store/stub.d.ts +161 -0
- package/lib/store/stub.d.ts.map +1 -0
- package/lib/store/stub.js +268 -0
- package/lib/store/stub.js.map +1 -0
- package/lib/sync-accumulator.d.ts +207 -0
- package/lib/sync-accumulator.d.ts.map +1 -0
- package/lib/sync-accumulator.js +588 -0
- package/lib/sync-accumulator.js.map +1 -0
- package/lib/sync.d.ts +273 -0
- package/lib/sync.d.ts.map +1 -0
- package/lib/sync.js +1764 -0
- package/lib/sync.js.map +1 -0
- package/lib/testing.d.ts +98 -0
- package/lib/testing.d.ts.map +1 -0
- package/lib/testing.js +205 -0
- package/lib/testing.js.map +1 -0
- package/lib/thread-utils.d.ts +10 -0
- package/lib/thread-utils.d.ts.map +1 -0
- package/lib/thread-utils.js +31 -0
- package/lib/thread-utils.js.map +1 -0
- package/lib/timeline-window.d.ts +168 -0
- package/lib/timeline-window.d.ts.map +1 -0
- package/lib/timeline-window.js +494 -0
- package/lib/timeline-window.js.map +1 -0
- package/lib/types.d.ts +33 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +52 -0
- package/lib/types.js.map +1 -0
- package/lib/utils/decryptAESSecretStorageItem.d.ts +12 -0
- package/lib/utils/decryptAESSecretStorageItem.d.ts.map +1 -0
- package/lib/utils/decryptAESSecretStorageItem.js +50 -0
- package/lib/utils/decryptAESSecretStorageItem.js.map +1 -0
- package/lib/utils/encryptAESSecretStorageItem.d.ts +16 -0
- package/lib/utils/encryptAESSecretStorageItem.d.ts.map +1 -0
- package/lib/utils/encryptAESSecretStorageItem.js +68 -0
- package/lib/utils/encryptAESSecretStorageItem.js.map +1 -0
- package/lib/utils/internal/deriveKeys.d.ts +10 -0
- package/lib/utils/internal/deriveKeys.d.ts.map +1 -0
- package/lib/utils/internal/deriveKeys.js +60 -0
- package/lib/utils/internal/deriveKeys.js.map +1 -0
- package/lib/utils/roomVersion.d.ts +13 -0
- package/lib/utils/roomVersion.d.ts.map +1 -0
- package/lib/utils/roomVersion.js +36 -0
- package/lib/utils/roomVersion.js.map +1 -0
- package/lib/utils.d.ts +270 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +764 -0
- package/lib/utils.js.map +1 -0
- package/lib/version-support.d.ts +19 -0
- package/lib/version-support.d.ts.map +1 -0
- package/lib/version-support.js +37 -0
- package/lib/version-support.js.map +1 -0
- package/lib/webrtc/audioContext.d.ts +15 -0
- package/lib/webrtc/audioContext.d.ts.map +1 -0
- package/lib/webrtc/audioContext.js +46 -0
- package/lib/webrtc/audioContext.js.map +1 -0
- package/lib/webrtc/call.d.ts +560 -0
- package/lib/webrtc/call.d.ts.map +1 -0
- package/lib/webrtc/call.js +2596 -0
- package/lib/webrtc/call.js.map +1 -0
- package/lib/webrtc/callEventHandler.d.ts +37 -0
- package/lib/webrtc/callEventHandler.d.ts.map +1 -0
- package/lib/webrtc/callEventHandler.js +344 -0
- package/lib/webrtc/callEventHandler.js.map +1 -0
- package/lib/webrtc/callEventTypes.d.ts +79 -0
- package/lib/webrtc/callEventTypes.d.ts.map +1 -0
- package/lib/webrtc/callEventTypes.js +13 -0
- package/lib/webrtc/callEventTypes.js.map +1 -0
- package/lib/webrtc/callFeed.d.ts +128 -0
- package/lib/webrtc/callFeed.d.ts.map +1 -0
- package/lib/webrtc/callFeed.js +289 -0
- package/lib/webrtc/callFeed.js.map +1 -0
- package/lib/webrtc/groupCall.d.ts +319 -0
- package/lib/webrtc/groupCall.d.ts.map +1 -0
- package/lib/webrtc/groupCall.js +1334 -0
- package/lib/webrtc/groupCall.js.map +1 -0
- package/lib/webrtc/groupCallEventHandler.d.ts +31 -0
- package/lib/webrtc/groupCallEventHandler.d.ts.map +1 -0
- package/lib/webrtc/groupCallEventHandler.js +178 -0
- package/lib/webrtc/groupCallEventHandler.js.map +1 -0
- package/lib/webrtc/mediaHandler.d.ts +89 -0
- package/lib/webrtc/mediaHandler.d.ts.map +1 -0
- package/lib/webrtc/mediaHandler.js +454 -0
- package/lib/webrtc/mediaHandler.js.map +1 -0
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts +8 -0
- package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +1 -0
- package/lib/webrtc/stats/callFeedStatsReporter.js +79 -0
- package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -0
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts +25 -0
- package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +1 -0
- package/lib/webrtc/stats/callStatsReportGatherer.js +199 -0
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -0
- package/lib/webrtc/stats/callStatsReportSummary.d.ts +17 -0
- package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +1 -0
- package/lib/webrtc/stats/callStatsReportSummary.js +1 -0
- package/lib/webrtc/stats/callStatsReportSummary.js.map +1 -0
- package/lib/webrtc/stats/connectionStats.d.ts +28 -0
- package/lib/webrtc/stats/connectionStats.d.ts.map +1 -0
- package/lib/webrtc/stats/connectionStats.js +26 -0
- package/lib/webrtc/stats/connectionStats.js.map +1 -0
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts +5 -0
- package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +1 -0
- package/lib/webrtc/stats/connectionStatsBuilder.js +27 -0
- package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -0
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +7 -0
- package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +1 -0
- package/lib/webrtc/stats/connectionStatsReportBuilder.js +121 -0
- package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -0
- package/lib/webrtc/stats/groupCallStats.d.ts +22 -0
- package/lib/webrtc/stats/groupCallStats.d.ts.map +1 -0
- package/lib/webrtc/stats/groupCallStats.js +78 -0
- package/lib/webrtc/stats/groupCallStats.js.map +1 -0
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +10 -0
- package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +1 -0
- package/lib/webrtc/stats/media/mediaSsrcHandler.js +57 -0
- package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -0
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +12 -0
- package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +1 -0
- package/lib/webrtc/stats/media/mediaTrackHandler.js +58 -0
- package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -0
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts +86 -0
- package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +1 -0
- package/lib/webrtc/stats/media/mediaTrackStats.js +142 -0
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -0
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +22 -0
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +1 -0
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +76 -0
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -0
- package/lib/webrtc/stats/statsReport.d.ts +99 -0
- package/lib/webrtc/stats/statsReport.d.ts.map +1 -0
- package/lib/webrtc/stats/statsReport.js +32 -0
- package/lib/webrtc/stats/statsReport.js.map +1 -0
- package/lib/webrtc/stats/statsReportEmitter.d.ts +15 -0
- package/lib/webrtc/stats/statsReportEmitter.d.ts.map +1 -0
- package/lib/webrtc/stats/statsReportEmitter.js +33 -0
- package/lib/webrtc/stats/statsReportEmitter.js.map +1 -0
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +16 -0
- package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +1 -0
- package/lib/webrtc/stats/summaryStatsReportGatherer.js +116 -0
- package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -0
- package/lib/webrtc/stats/trackStatsBuilder.d.ts +19 -0
- package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +1 -0
- package/lib/webrtc/stats/trackStatsBuilder.js +168 -0
- package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -0
- package/lib/webrtc/stats/transportStats.d.ts +11 -0
- package/lib/webrtc/stats/transportStats.d.ts.map +1 -0
- package/lib/webrtc/stats/transportStats.js +1 -0
- package/lib/webrtc/stats/transportStats.js.map +1 -0
- package/lib/webrtc/stats/transportStatsBuilder.d.ts +5 -0
- package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +1 -0
- package/lib/webrtc/stats/transportStatsBuilder.js +34 -0
- package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -0
- package/lib/webrtc/stats/valueFormatter.d.ts +4 -0
- package/lib/webrtc/stats/valueFormatter.d.ts.map +1 -0
- package/lib/webrtc/stats/valueFormatter.js +25 -0
- package/lib/webrtc/stats/valueFormatter.js.map +1 -0
- package/package.json +129 -0
- package/src/@types/AESEncryptedSecretStoragePayload.ts +29 -0
- package/src/@types/IIdentityServerProvider.ts +24 -0
- package/src/@types/PushRules.ts +208 -0
- package/src/@types/another-json.d.ts +19 -0
- package/src/@types/auth.ts +258 -0
- package/src/@types/beacon.ts +140 -0
- package/src/@types/common.ts +24 -0
- package/src/@types/crypto.ts +71 -0
- package/src/@types/event.ts +449 -0
- package/src/@types/events.ts +119 -0
- package/src/@types/extensible_events.ts +147 -0
- package/src/@types/global.d.ts +67 -0
- package/src/@types/local_notifications.ts +19 -0
- package/src/@types/location.ts +92 -0
- package/src/@types/matrix-sdk-crypto-wasm.d.ts +39 -0
- package/src/@types/media.ts +245 -0
- package/src/@types/membership.ts +57 -0
- package/src/@types/partials.ts +103 -0
- package/src/@types/polls.ts +120 -0
- package/src/@types/read_receipts.ts +61 -0
- package/src/@types/registration.ts +102 -0
- package/src/@types/requests.ts +346 -0
- package/src/@types/search.ts +119 -0
- package/src/@types/signed.ts +25 -0
- package/src/@types/spaces.ts +37 -0
- package/src/@types/state_events.ts +153 -0
- package/src/@types/synapse.ts +40 -0
- package/src/@types/sync.ts +27 -0
- package/src/@types/threepids.ts +29 -0
- package/src/@types/topic.ts +69 -0
- package/src/@types/uia.ts +24 -0
- package/src/NamespacedValue.ts +121 -0
- package/src/ReEmitter.ts +93 -0
- package/src/ToDeviceMessageQueue.ts +156 -0
- package/src/autodiscovery.ts +505 -0
- package/src/base64.ts +86 -0
- package/src/briij.ts +173 -0
- package/src/browser-index.ts +44 -0
- package/src/client.ts +9031 -0
- package/src/common-crypto/CryptoBackend.ts +295 -0
- package/src/common-crypto/README.md +4 -0
- package/src/common-crypto/key-passphrase.ts +43 -0
- package/src/content-helpers.ts +298 -0
- package/src/content-repo.ts +122 -0
- package/src/crypto/store/base.ts +388 -0
- package/src/crypto/store/indexeddb-crypto-store-backend.ts +655 -0
- package/src/crypto/store/indexeddb-crypto-store.ts +555 -0
- package/src/crypto/store/localStorage-crypto-store.ts +409 -0
- package/src/crypto/store/memory-crypto-store.ts +326 -0
- package/src/crypto-api/CryptoEvent.ts +152 -0
- package/src/crypto-api/CryptoEventHandlerMap.ts +42 -0
- package/src/crypto-api/index.ts +1362 -0
- package/src/crypto-api/key-passphrase.ts +58 -0
- package/src/crypto-api/keybackup.ts +114 -0
- package/src/crypto-api/recovery-key.ts +69 -0
- package/src/crypto-api/verification.ts +382 -0
- package/src/digest.ts +34 -0
- package/src/embedded.ts +865 -0
- package/src/errors.ts +87 -0
- package/src/event-mapper.ts +88 -0
- package/src/extensible_events_v1/ExtensibleEvent.ts +58 -0
- package/src/extensible_events_v1/InvalidEventError.ts +24 -0
- package/src/extensible_events_v1/MessageEvent.ts +143 -0
- package/src/extensible_events_v1/PollEndEvent.ts +97 -0
- package/src/extensible_events_v1/PollResponseEvent.ts +148 -0
- package/src/extensible_events_v1/PollStartEvent.ts +207 -0
- package/src/extensible_events_v1/utilities.ts +35 -0
- package/src/feature.ts +88 -0
- package/src/filter-component.ts +209 -0
- package/src/filter.ts +245 -0
- package/src/http-api/errors.ts +261 -0
- package/src/http-api/fetch.ts +377 -0
- package/src/http-api/index.ts +194 -0
- package/src/http-api/interface.ts +229 -0
- package/src/http-api/method.ts +25 -0
- package/src/http-api/prefix.ts +48 -0
- package/src/http-api/refresh.ts +167 -0
- package/src/http-api/utils.ts +217 -0
- package/src/index.ts +25 -0
- package/src/indexeddb-helpers.ts +50 -0
- package/src/indexeddb-worker.ts +24 -0
- package/src/interactive-auth.ts +700 -0
- package/src/logger.ts +279 -0
- package/src/matrixrtc/CallMembership.ts +438 -0
- package/src/matrixrtc/EncryptionManager.ts +54 -0
- package/src/matrixrtc/IKeyTransport.ts +63 -0
- package/src/matrixrtc/IMembershipManager.ts +120 -0
- package/src/matrixrtc/LivekitTransport.ts +46 -0
- package/src/matrixrtc/MatrixRTCSession.ts +934 -0
- package/src/matrixrtc/MatrixRTCSessionManager.ts +170 -0
- package/src/matrixrtc/MembershipManager.ts +1122 -0
- package/src/matrixrtc/MembershipManagerActionScheduler.ts +135 -0
- package/src/matrixrtc/RTCEncryptionManager.ts +459 -0
- package/src/matrixrtc/ToDeviceKeyTransport.ts +197 -0
- package/src/matrixrtc/index.ts +24 -0
- package/src/matrixrtc/membershipData/common.ts +27 -0
- package/src/matrixrtc/membershipData/index.ts +19 -0
- package/src/matrixrtc/membershipData/rtc.ts +156 -0
- package/src/matrixrtc/membershipData/session.ts +146 -0
- package/src/matrixrtc/types.ts +227 -0
- package/src/matrixrtc/utils.ts +71 -0
- package/src/models/MSC3089Branch.ts +272 -0
- package/src/models/MSC3089TreeSpace.ts +565 -0
- package/src/models/ToDeviceMessage.ts +38 -0
- package/src/models/beacon.ts +213 -0
- package/src/models/compare-event-ordering.ts +139 -0
- package/src/models/device.ts +85 -0
- package/src/models/event-context.ts +110 -0
- package/src/models/event-status.ts +39 -0
- package/src/models/event-timeline-set.ts +962 -0
- package/src/models/event-timeline.ts +461 -0
- package/src/models/event.ts +1819 -0
- package/src/models/invites-ignorer-types.ts +58 -0
- package/src/models/invites-ignorer.ts +341 -0
- package/src/models/poll.ts +285 -0
- package/src/models/profile-keys.ts +33 -0
- package/src/models/read-receipt.ts +422 -0
- package/src/models/related-relations.ts +39 -0
- package/src/models/relations-container.ts +149 -0
- package/src/models/relations.ts +392 -0
- package/src/models/room-member.ts +486 -0
- package/src/models/room-receipts.ts +439 -0
- package/src/models/room-state.ts +1230 -0
- package/src/models/room-sticky-events.ts +383 -0
- package/src/models/room-summary.ts +78 -0
- package/src/models/room.ts +4067 -0
- package/src/models/search-result.ts +57 -0
- package/src/models/thread.ts +928 -0
- package/src/models/typed-event-emitter.ts +246 -0
- package/src/models/user.ts +302 -0
- package/src/oidc/authorize.ts +279 -0
- package/src/oidc/discovery.ts +67 -0
- package/src/oidc/error.ts +33 -0
- package/src/oidc/index.ts +33 -0
- package/src/oidc/register.ts +163 -0
- package/src/oidc/tokenRefresher.ts +184 -0
- package/src/oidc/validate.ts +265 -0
- package/src/pushprocessor.ts +856 -0
- package/src/randomstring.ts +103 -0
- package/src/realtime-callbacks.ts +191 -0
- package/src/receipt-accumulator.ts +189 -0
- package/src/rendezvous/MSC4108SignInWithQR.ts +443 -0
- package/src/rendezvous/RendezvousChannel.ts +48 -0
- package/src/rendezvous/RendezvousCode.ts +25 -0
- package/src/rendezvous/RendezvousError.ts +26 -0
- package/src/rendezvous/RendezvousFailureReason.ts +49 -0
- package/src/rendezvous/RendezvousIntent.ts +20 -0
- package/src/rendezvous/RendezvousTransport.ts +58 -0
- package/src/rendezvous/channels/MSC4108SecureChannel.ts +270 -0
- package/src/rendezvous/channels/index.ts +17 -0
- package/src/rendezvous/index.ts +25 -0
- package/src/rendezvous/transports/MSC4108RendezvousSession.ts +272 -0
- package/src/rendezvous/transports/index.ts +17 -0
- package/src/room-hierarchy.ts +152 -0
- package/src/rust-crypto/CrossSigningIdentity.ts +195 -0
- package/src/rust-crypto/DehydratedDeviceManager.ts +392 -0
- package/src/rust-crypto/KeyClaimManager.ts +86 -0
- package/src/rust-crypto/OutgoingRequestProcessor.ts +233 -0
- package/src/rust-crypto/OutgoingRequestsManager.ts +170 -0
- package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +501 -0
- package/src/rust-crypto/RoomEncryptor.ts +362 -0
- package/src/rust-crypto/backup.ts +942 -0
- package/src/rust-crypto/constants.ts +18 -0
- package/src/rust-crypto/device-converter.ts +128 -0
- package/src/rust-crypto/index.ts +251 -0
- package/src/rust-crypto/libolm_migration.ts +532 -0
- package/src/rust-crypto/rust-crypto.ts +2542 -0
- package/src/rust-crypto/secret-storage.ts +60 -0
- package/src/rust-crypto/verification.ts +833 -0
- package/src/scheduler.ts +309 -0
- package/src/secret-storage.ts +714 -0
- package/src/serverCapabilities.ts +146 -0
- package/src/service-types.ts +20 -0
- package/src/sliding-sync-sdk.ts +1005 -0
- package/src/sliding-sync.ts +674 -0
- package/src/store/index.ts +261 -0
- package/src/store/indexeddb-backend.ts +41 -0
- package/src/store/indexeddb-local-backend.ts +610 -0
- package/src/store/indexeddb-remote-backend.ts +212 -0
- package/src/store/indexeddb-store-worker.ts +157 -0
- package/src/store/indexeddb.ts +397 -0
- package/src/store/local-storage-events-emitter.ts +46 -0
- package/src/store/memory.ts +448 -0
- package/src/store/stub.ts +280 -0
- package/src/sync-accumulator.ts +779 -0
- package/src/sync.ts +2020 -0
- package/src/testing.ts +231 -0
- package/src/thread-utils.ts +31 -0
- package/src/timeline-window.ts +534 -0
- package/src/types.ts +59 -0
- package/src/utils/decryptAESSecretStorageItem.ts +54 -0
- package/src/utils/encryptAESSecretStorageItem.ts +73 -0
- package/src/utils/internal/deriveKeys.ts +63 -0
- package/src/utils/roomVersion.ts +35 -0
- package/src/utils.ts +775 -0
- package/src/version-support.ts +50 -0
- package/src/webrtc/audioContext.ts +44 -0
- package/src/webrtc/call.ts +3061 -0
- package/src/webrtc/callEventHandler.ts +425 -0
- package/src/webrtc/callEventTypes.ts +101 -0
- package/src/webrtc/callFeed.ts +364 -0
- package/src/webrtc/groupCall.ts +1729 -0
- package/src/webrtc/groupCallEventHandler.ts +234 -0
- package/src/webrtc/mediaHandler.ts +501 -0
- package/src/webrtc/stats/callFeedStatsReporter.ts +91 -0
- package/src/webrtc/stats/callStatsReportGatherer.ts +219 -0
- package/src/webrtc/stats/callStatsReportSummary.ts +30 -0
- package/src/webrtc/stats/connectionStats.ts +47 -0
- package/src/webrtc/stats/connectionStatsBuilder.ts +28 -0
- package/src/webrtc/stats/connectionStatsReportBuilder.ts +140 -0
- package/src/webrtc/stats/groupCallStats.ts +93 -0
- package/src/webrtc/stats/media/mediaSsrcHandler.ts +57 -0
- package/src/webrtc/stats/media/mediaTrackHandler.ts +70 -0
- package/src/webrtc/stats/media/mediaTrackStats.ts +176 -0
- package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +90 -0
- package/src/webrtc/stats/statsReport.ts +133 -0
- package/src/webrtc/stats/statsReportEmitter.ts +49 -0
- package/src/webrtc/stats/summaryStatsReportGatherer.ts +148 -0
- package/src/webrtc/stats/trackStatsBuilder.ts +207 -0
- package/src/webrtc/stats/transportStats.ts +26 -0
- package/src/webrtc/stats/transportStatsBuilder.ts +48 -0
- package/src/webrtc/stats/valueFormatter.ts +27 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2023 The Matrix.org Foundation C.I.C.
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { jwtDecode } from "jwt-decode";
|
|
18
|
+
import { logger } from "../logger.js";
|
|
19
|
+
import { OidcError } from "./error.js";
|
|
20
|
+
import { OAuthGrantType } from "./index.js";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Metadata from OAuth 2.0 client authentication API as per
|
|
24
|
+
* https://spec.matrix.org/v1.17/client-server-api/#get_matrixclientv1auth_metadata
|
|
25
|
+
* With validated properties required in type
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
var isRecord = value => !!value && typeof value === "object" && !Array.isArray(value);
|
|
29
|
+
var requiredStringProperty = (wellKnown, key) => {
|
|
30
|
+
if (!wellKnown[key] || !optionalStringProperty(wellKnown, key)) {
|
|
31
|
+
logger.error("Missing or invalid property: ".concat(key));
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
var optionalStringProperty = (wellKnown, key) => {
|
|
37
|
+
if (!!wellKnown[key] && typeof wellKnown[key] !== "string") {
|
|
38
|
+
logger.error("Invalid property: ".concat(key));
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
return true;
|
|
42
|
+
};
|
|
43
|
+
var optionalStringArrayProperty = (wellKnown, key) => {
|
|
44
|
+
if (!!wellKnown[key] && (!Array.isArray(wellKnown[key]) || !wellKnown[key].every(v => typeof v === "string"))) {
|
|
45
|
+
logger.error("Invalid property: ".concat(key));
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return true;
|
|
49
|
+
};
|
|
50
|
+
var requiredArrayValue = (wellKnown, key, value) => {
|
|
51
|
+
var array = wellKnown[key];
|
|
52
|
+
if (!array || !Array.isArray(array) || !array.includes(value)) {
|
|
53
|
+
logger.error("Invalid property: ".concat(key, ". ").concat(value, " is required."));
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return true;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Validates OAuth 2.0 auth metadata as defined by
|
|
61
|
+
* https://spec.matrix.org/v1.17/client-server-api/#get_matrixclientv1auth_metadata
|
|
62
|
+
* is compatible with Element's OAuth/OIDC flow
|
|
63
|
+
* @param authMetadata - json object
|
|
64
|
+
* @returns valid issuer config
|
|
65
|
+
* @throws Error - when issuer config is not found or is invalid
|
|
66
|
+
*/
|
|
67
|
+
export var validateAuthMetadata = authMetadata => {
|
|
68
|
+
if (!isRecord(authMetadata)) {
|
|
69
|
+
logger.error("Issuer configuration not found or malformed");
|
|
70
|
+
throw new Error(OidcError.OpSupport);
|
|
71
|
+
}
|
|
72
|
+
var isInvalid = [requiredStringProperty(authMetadata, "issuer"), requiredStringProperty(authMetadata, "authorization_endpoint"), requiredStringProperty(authMetadata, "token_endpoint"), requiredStringProperty(authMetadata, "revocation_endpoint"), optionalStringProperty(authMetadata, "registration_endpoint"), optionalStringProperty(authMetadata, "account_management_uri"), optionalStringProperty(authMetadata, "device_authorization_endpoint"), optionalStringArrayProperty(authMetadata, "account_management_actions_supported"), requiredArrayValue(authMetadata, "response_types_supported", "code"), requiredArrayValue(authMetadata, "grant_types_supported", OAuthGrantType.AuthorizationCode), requiredArrayValue(authMetadata, "code_challenge_methods_supported", "S256"), optionalStringArrayProperty(authMetadata, "prompt_values_supported")].some(isValid => !isValid);
|
|
73
|
+
if (!isInvalid) {
|
|
74
|
+
return authMetadata;
|
|
75
|
+
}
|
|
76
|
+
logger.error("Issuer configuration not valid");
|
|
77
|
+
throw new Error(OidcError.OpSupport);
|
|
78
|
+
};
|
|
79
|
+
export var decodeIdToken = token => {
|
|
80
|
+
try {
|
|
81
|
+
return jwtDecode(token);
|
|
82
|
+
} catch (error) {
|
|
83
|
+
logger.error("Could not decode id_token", error);
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Validate idToken
|
|
90
|
+
* https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation
|
|
91
|
+
* @param idToken - id token from token endpoint
|
|
92
|
+
* @param issuer - issuer for the OP as found during discovery
|
|
93
|
+
* @param clientId - this client's id as registered with the OP
|
|
94
|
+
* @param nonce - nonce used in the authentication request
|
|
95
|
+
* @throws when id token is invalid
|
|
96
|
+
*/
|
|
97
|
+
export var validateIdToken = (idToken, issuer, clientId, nonce) => {
|
|
98
|
+
try {
|
|
99
|
+
if (!idToken) {
|
|
100
|
+
throw new Error("No ID token");
|
|
101
|
+
}
|
|
102
|
+
var claims = decodeIdToken(idToken);
|
|
103
|
+
|
|
104
|
+
// The Issuer Identifier for the OpenID Provider MUST exactly match the value of the iss (issuer) Claim.
|
|
105
|
+
if (claims.iss !== issuer) {
|
|
106
|
+
throw new Error("Invalid issuer");
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience.
|
|
110
|
+
* The aud (audience) Claim MAY contain an array with more than one element.
|
|
111
|
+
* 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.
|
|
112
|
+
* EW: Don't accept tokens with other untrusted audiences
|
|
113
|
+
* */
|
|
114
|
+
var sanitisedAuds = typeof claims.aud === "string" ? [claims.aud] : claims.aud;
|
|
115
|
+
if (!sanitisedAuds.includes(clientId)) {
|
|
116
|
+
throw new Error("Invalid audience");
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked
|
|
121
|
+
* to verify that it is the same value as the one that was sent in the Authentication Request.
|
|
122
|
+
*/
|
|
123
|
+
if (nonce !== undefined && claims.nonce !== nonce) {
|
|
124
|
+
throw new Error("Invalid nonce");
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* The current time MUST be before the time represented by the exp Claim.
|
|
129
|
+
* exp is an epoch timestamp in seconds
|
|
130
|
+
* */
|
|
131
|
+
if (!claims.exp || Date.now() > claims.exp * 1000) {
|
|
132
|
+
throw new Error("Invalid expiry");
|
|
133
|
+
}
|
|
134
|
+
} catch (error) {
|
|
135
|
+
logger.error("Invalid ID token", error);
|
|
136
|
+
throw new Error(OidcError.InvalidIdToken);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* State we ask OidcClient to store when starting oidc authorization flow (in `generateOidcAuthorizationUrl`)
|
|
142
|
+
* so that we can access it on return from the OP and complete login
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Validate stored user state exists and is valid
|
|
147
|
+
* @param userState - userState returned by oidcClient.processSigninResponse
|
|
148
|
+
* @throws when userState is invalid
|
|
149
|
+
*/
|
|
150
|
+
export function validateStoredUserState(userState) {
|
|
151
|
+
if (!isRecord(userState)) {
|
|
152
|
+
logger.error("Stored user state not found");
|
|
153
|
+
throw new Error(OidcError.MissingOrInvalidStoredState);
|
|
154
|
+
}
|
|
155
|
+
var isInvalid = [requiredStringProperty(userState, "homeserverUrl"), requiredStringProperty(userState, "nonce"), optionalStringProperty(userState, "identityServerUrl")].some(isValid => !isValid);
|
|
156
|
+
if (isInvalid) {
|
|
157
|
+
throw new Error(OidcError.MissingOrInvalidStoredState);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* The expected response type from the token endpoint during authorization code flow
|
|
163
|
+
* Normalized to always use capitalized 'Bearer' for token_type
|
|
164
|
+
*
|
|
165
|
+
* See https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.4,
|
|
166
|
+
* https://openid.net/specs/openid-connect-basic-1_0.html#TokenOK.
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Make required properties required in type
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
var isValidBearerTokenResponse = response => isRecord(response) && requiredStringProperty(response, "token_type") &&
|
|
174
|
+
// token_type is case insensitive, some OPs return `token_type: "bearer"`
|
|
175
|
+
response["token_type"].toLowerCase() === "bearer" && requiredStringProperty(response, "access_token") && requiredStringProperty(response, "refresh_token") && (!("expires_in" in response) || typeof response["expires_in"] === "number");
|
|
176
|
+
export function validateBearerTokenResponse(response) {
|
|
177
|
+
if (!isValidBearerTokenResponse(response)) {
|
|
178
|
+
throw new Error(OidcError.InvalidBearerTokenResponse);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","names":["jwtDecode","logger","OidcError","OAuthGrantType","isRecord","value","Array","isArray","requiredStringProperty","wellKnown","key","optionalStringProperty","error","concat","optionalStringArrayProperty","every","v","requiredArrayValue","array","includes","validateAuthMetadata","authMetadata","Error","OpSupport","isInvalid","AuthorizationCode","some","isValid","decodeIdToken","token","validateIdToken","idToken","issuer","clientId","nonce","claims","iss","sanitisedAuds","aud","undefined","exp","Date","now","InvalidIdToken","validateStoredUserState","userState","MissingOrInvalidStoredState","isValidBearerTokenResponse","response","toLowerCase","validateBearerTokenResponse","InvalidBearerTokenResponse"],"sources":["../../src/oidc/validate.ts"],"sourcesContent":["/*\r\nCopyright 2023 The Matrix.org Foundation C.I.C.\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\");\r\nyou may not use this file except in compliance with the License.\r\nYou may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software\r\ndistributed under the License is distributed on an \"AS IS\" BASIS,\r\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\nSee the License for the specific language governing permissions and\r\nlimitations under the License.\r\n*/\r\n\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { type IdTokenClaims, type OidcMetadata, type SigninResponse } from \"oidc-client-ts\";\r\n\r\nimport { logger } from \"../logger.ts\";\r\nimport { OidcError } from \"./error.ts\";\r\nimport { OAuthGrantType } from \"./index.ts\";\r\n\r\n/**\r\n * Metadata from OAuth 2.0 client authentication API as per\r\n * https://spec.matrix.org/v1.17/client-server-api/#get_matrixclientv1auth_metadata\r\n * With validated properties required in type\r\n */\r\nexport type ValidatedAuthMetadata = Partial<OidcMetadata> &\r\n Pick<\r\n // These values are from [RFC8414](https://datatracker.ietf.org/doc/html/rfc8414#section-2)\r\n // so we can reuse the OidcMetadata definitions from oidc-client-ts\r\n OidcMetadata,\r\n | \"issuer\"\r\n | \"authorization_endpoint\"\r\n | \"token_endpoint\"\r\n | \"revocation_endpoint\"\r\n | \"response_types_supported\"\r\n | \"grant_types_supported\"\r\n | \"code_challenge_methods_supported\"\r\n > & {\r\n // These values aren't part of RFC8414 so we add them here\r\n // Account management fields from stable MSC4191:\r\n account_management_uri?: string;\r\n account_management_actions_supported?: string[];\r\n // Value from [Initiating User Registration via OpenID Connect](https://openid.net/specs/openid-connect-prompt-create-1_0.html):\r\n prompt_values_supported?: string[];\r\n // Experimental MSC4341 value from [RFC8628](https://datatracker.ietf.org/doc/html/rfc8628#section-4):\r\n device_authorization_endpoint?: string;\r\n };\r\n\r\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\r\n !!value && typeof value === \"object\" && !Array.isArray(value);\r\nconst requiredStringProperty = (wellKnown: Record<string, unknown>, key: string): boolean => {\r\n if (!wellKnown[key] || !optionalStringProperty(wellKnown, key)) {\r\n logger.error(`Missing or invalid property: ${key}`);\r\n return false;\r\n }\r\n return true;\r\n};\r\nconst optionalStringProperty = (wellKnown: Record<string, unknown>, key: string): boolean => {\r\n if (!!wellKnown[key] && typeof wellKnown[key] !== \"string\") {\r\n logger.error(`Invalid property: ${key}`);\r\n return false;\r\n }\r\n return true;\r\n};\r\nconst optionalStringArrayProperty = (wellKnown: Record<string, unknown>, key: string): boolean => {\r\n if (\r\n !!wellKnown[key] &&\r\n (!Array.isArray(wellKnown[key]) || !(<unknown[]>wellKnown[key]).every((v) => typeof v === \"string\"))\r\n ) {\r\n logger.error(`Invalid property: ${key}`);\r\n return false;\r\n }\r\n return true;\r\n};\r\nconst requiredArrayValue = (wellKnown: Record<string, unknown>, key: string, value: any): boolean => {\r\n const array = wellKnown[key];\r\n if (!array || !Array.isArray(array) || !array.includes(value)) {\r\n logger.error(`Invalid property: ${key}. ${value} is required.`);\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\n/**\r\n * Validates OAuth 2.0 auth metadata as defined by\r\n * https://spec.matrix.org/v1.17/client-server-api/#get_matrixclientv1auth_metadata\r\n * is compatible with Element's OAuth/OIDC flow\r\n * @param authMetadata - json object\r\n * @returns valid issuer config\r\n * @throws Error - when issuer config is not found or is invalid\r\n */\r\nexport const validateAuthMetadata = (authMetadata: unknown): ValidatedAuthMetadata => {\r\n if (!isRecord(authMetadata)) {\r\n logger.error(\"Issuer configuration not found or malformed\");\r\n throw new Error(OidcError.OpSupport);\r\n }\r\n\r\n const isInvalid = [\r\n requiredStringProperty(authMetadata, \"issuer\"),\r\n requiredStringProperty(authMetadata, \"authorization_endpoint\"),\r\n requiredStringProperty(authMetadata, \"token_endpoint\"),\r\n requiredStringProperty(authMetadata, \"revocation_endpoint\"),\r\n optionalStringProperty(authMetadata, \"registration_endpoint\"),\r\n optionalStringProperty(authMetadata, \"account_management_uri\"),\r\n optionalStringProperty(authMetadata, \"device_authorization_endpoint\"),\r\n optionalStringArrayProperty(authMetadata, \"account_management_actions_supported\"),\r\n requiredArrayValue(authMetadata, \"response_types_supported\", \"code\"),\r\n requiredArrayValue(authMetadata, \"grant_types_supported\", OAuthGrantType.AuthorizationCode),\r\n requiredArrayValue(authMetadata, \"code_challenge_methods_supported\", \"S256\"),\r\n optionalStringArrayProperty(authMetadata, \"prompt_values_supported\"),\r\n ].some((isValid) => !isValid);\r\n\r\n if (!isInvalid) {\r\n return authMetadata as ValidatedAuthMetadata;\r\n }\r\n\r\n logger.error(\"Issuer configuration not valid\");\r\n throw new Error(OidcError.OpSupport);\r\n};\r\n\r\nexport const decodeIdToken = (token: string): IdTokenClaims => {\r\n try {\r\n return jwtDecode<IdTokenClaims>(token);\r\n } catch (error) {\r\n logger.error(\"Could not decode id_token\", error);\r\n throw error;\r\n }\r\n};\r\n\r\n/**\r\n * Validate idToken\r\n * https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation\r\n * @param idToken - id token from token endpoint\r\n * @param issuer - issuer for the OP as found during discovery\r\n * @param clientId - this client's id as registered with the OP\r\n * @param nonce - nonce used in the authentication request\r\n * @throws when id token is invalid\r\n */\r\nexport const validateIdToken = (\r\n idToken: string | undefined,\r\n issuer: string,\r\n clientId: string,\r\n nonce: string | undefined,\r\n): void => {\r\n try {\r\n if (!idToken) {\r\n throw new Error(\"No ID token\");\r\n }\r\n const claims = decodeIdToken(idToken);\r\n\r\n // The Issuer Identifier for the OpenID Provider MUST exactly match the value of the iss (issuer) Claim.\r\n if (claims.iss !== issuer) {\r\n throw new Error(\"Invalid issuer\");\r\n }\r\n /**\r\n * The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience.\r\n * The aud (audience) Claim MAY contain an array with more than one element.\r\n * 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.\r\n * EW: Don't accept tokens with other untrusted audiences\r\n * */\r\n const sanitisedAuds = typeof claims.aud === \"string\" ? [claims.aud] : claims.aud;\r\n if (!sanitisedAuds.includes(clientId)) {\r\n throw new Error(\"Invalid audience\");\r\n }\r\n\r\n /**\r\n * If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked\r\n * to verify that it is the same value as the one that was sent in the Authentication Request.\r\n */\r\n if (nonce !== undefined && claims.nonce !== nonce) {\r\n throw new Error(\"Invalid nonce\");\r\n }\r\n\r\n /**\r\n * The current time MUST be before the time represented by the exp Claim.\r\n * exp is an epoch timestamp in seconds\r\n * */\r\n if (!claims.exp || Date.now() > claims.exp * 1000) {\r\n throw new Error(\"Invalid expiry\");\r\n }\r\n } catch (error) {\r\n logger.error(\"Invalid ID token\", error);\r\n throw new Error(OidcError.InvalidIdToken);\r\n }\r\n};\r\n\r\n/**\r\n * State we ask OidcClient to store when starting oidc authorization flow (in `generateOidcAuthorizationUrl`)\r\n * so that we can access it on return from the OP and complete login\r\n */\r\nexport type UserState = {\r\n /**\r\n * Remember which server we were trying to login to\r\n */\r\n homeserverUrl: string;\r\n identityServerUrl?: string;\r\n /**\r\n * Used to validate id token\r\n */\r\n nonce: string;\r\n};\r\n/**\r\n * Validate stored user state exists and is valid\r\n * @param userState - userState returned by oidcClient.processSigninResponse\r\n * @throws when userState is invalid\r\n */\r\nexport function validateStoredUserState(userState: unknown): asserts userState is UserState {\r\n if (!isRecord(userState)) {\r\n logger.error(\"Stored user state not found\");\r\n throw new Error(OidcError.MissingOrInvalidStoredState);\r\n }\r\n const isInvalid = [\r\n requiredStringProperty(userState, \"homeserverUrl\"),\r\n requiredStringProperty(userState, \"nonce\"),\r\n optionalStringProperty(userState, \"identityServerUrl\"),\r\n ].some((isValid) => !isValid);\r\n\r\n if (isInvalid) {\r\n throw new Error(OidcError.MissingOrInvalidStoredState);\r\n }\r\n}\r\n\r\n/**\r\n * The expected response type from the token endpoint during authorization code flow\r\n * Normalized to always use capitalized 'Bearer' for token_type\r\n *\r\n * See https://datatracker.ietf.org/doc/html/rfc6749#section-4.1.4,\r\n * https://openid.net/specs/openid-connect-basic-1_0.html#TokenOK.\r\n */\r\nexport type BearerTokenResponse = {\r\n token_type: \"Bearer\";\r\n access_token: string;\r\n scope: string;\r\n refresh_token?: string;\r\n expires_in?: number;\r\n // from oidc-client-ts\r\n expires_at?: number;\r\n id_token: string;\r\n};\r\n\r\n/**\r\n * Make required properties required in type\r\n */\r\ntype ValidSignInResponse = SigninResponse &\r\n BearerTokenResponse & {\r\n token_type: \"Bearer\" | \"bearer\";\r\n };\r\n\r\nconst isValidBearerTokenResponse = (response: unknown): response is ValidSignInResponse =>\r\n isRecord(response) &&\r\n requiredStringProperty(response, \"token_type\") &&\r\n // token_type is case insensitive, some OPs return `token_type: \"bearer\"`\r\n (response[\"token_type\"] as string).toLowerCase() === \"bearer\" &&\r\n requiredStringProperty(response, \"access_token\") &&\r\n requiredStringProperty(response, \"refresh_token\") &&\r\n (!(\"expires_in\" in response) || typeof response[\"expires_in\"] === \"number\");\r\n\r\nexport function validateBearerTokenResponse(response: unknown): asserts response is ValidSignInResponse {\r\n if (!isValidBearerTokenResponse(response)) {\r\n throw new Error(OidcError.InvalidBearerTokenResponse);\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { type Logger } from "./logger.ts";
|
|
2
|
+
import { type BriijClient } from "./client.ts";
|
|
3
|
+
import { type BriijEvent } from "./models/event.ts";
|
|
4
|
+
import { type IAnnotatedPushRule, type IPushRule, type IPushRules, type PushRuleAction, PushRuleKind, TweakName } from "./@types/PushRules.ts";
|
|
5
|
+
export interface IActionsObject {
|
|
6
|
+
/** Whether this event should notify the user or not. */
|
|
7
|
+
notify: boolean;
|
|
8
|
+
/** How this event should be notified. */
|
|
9
|
+
tweaks: Partial<Record<TweakName, any>>;
|
|
10
|
+
}
|
|
11
|
+
export declare class PushProcessor {
|
|
12
|
+
private readonly client;
|
|
13
|
+
/**
|
|
14
|
+
* Construct a Push Processor.
|
|
15
|
+
* @param client - The Matrix client object to use
|
|
16
|
+
*/
|
|
17
|
+
constructor(client: BriijClient);
|
|
18
|
+
/**
|
|
19
|
+
* Maps the original key from the push rules to a list of property names
|
|
20
|
+
* after unescaping.
|
|
21
|
+
*/
|
|
22
|
+
private readonly parsedKeys;
|
|
23
|
+
/**
|
|
24
|
+
* Convert a list of actions into a object with the actions as keys and their values
|
|
25
|
+
* @example
|
|
26
|
+
* eg. `[ 'notify', { set_tweak: 'sound', value: 'default' } ]`
|
|
27
|
+
* becomes `{ notify: true, tweaks: { sound: 'default' } }`
|
|
28
|
+
* @param actionList - The actions list
|
|
29
|
+
*
|
|
30
|
+
* @returns A object with key 'notify' (true or false) and an object of actions
|
|
31
|
+
*/
|
|
32
|
+
static actionListToActionsObject(actionList: PushRuleAction[]): IActionsObject;
|
|
33
|
+
/**
|
|
34
|
+
* Rewrites conditions on a client's push rules to match the defaults
|
|
35
|
+
* where applicable. Useful for upgrading push rules to more strict
|
|
36
|
+
* conditions when the server is falling behind on defaults.
|
|
37
|
+
*
|
|
38
|
+
* @param logger - A `Logger` to write log messages to.
|
|
39
|
+
* @param incomingRules - The client's existing push rules
|
|
40
|
+
* @param userId - The Matrix ID of the client.
|
|
41
|
+
* @returns The rewritten rules
|
|
42
|
+
*/
|
|
43
|
+
static rewriteDefaultRules(logger: Logger, incomingRules: IPushRules, userId?: string | undefined): IPushRules;
|
|
44
|
+
/**
|
|
45
|
+
* Create a RegExp object for the given glob pattern with a single capture group around the pattern itself, caching the result.
|
|
46
|
+
* No cache invalidation is present currently,
|
|
47
|
+
* as this will be inherently bounded to the size of the user's own push rules.
|
|
48
|
+
* @param pattern - the glob pattern to convert to a RegExp
|
|
49
|
+
* @param alignToWordBoundary - whether to align the pattern to word boundaries,
|
|
50
|
+
* as specified for `content.body` matches, will use lookaround assertions to ensure the match only includes the pattern
|
|
51
|
+
* @param flags - the flags to pass to the RegExp constructor, defaults to case-insensitive
|
|
52
|
+
*/
|
|
53
|
+
static getPushRuleGlobRegex(pattern: string, alignToWordBoundary?: boolean, flags?: string): RegExp;
|
|
54
|
+
/**
|
|
55
|
+
* Pre-caches the parsed keys for push rules and cleans out any obsolete cache
|
|
56
|
+
* entries. Should be called after push rules are updated.
|
|
57
|
+
* @param newRules - The new push rules.
|
|
58
|
+
*/
|
|
59
|
+
updateCachedPushRuleKeys(newRules: IPushRules): void;
|
|
60
|
+
private static cachedGlobToRegex;
|
|
61
|
+
private matchingRuleFromKindSet;
|
|
62
|
+
private templateRuleToRaw;
|
|
63
|
+
private eventFulfillsCondition;
|
|
64
|
+
private eventFulfillsSenderNotifPermCondition;
|
|
65
|
+
private eventFulfillsRoomMemberCountCondition;
|
|
66
|
+
private eventFulfillsDisplayNameCondition;
|
|
67
|
+
/**
|
|
68
|
+
* Check whether the given event matches the push rule condition by fetching
|
|
69
|
+
* the property from the event and comparing against the condition's glob-based
|
|
70
|
+
* pattern.
|
|
71
|
+
* @param cond - The push rule condition to check for a match.
|
|
72
|
+
* @param ev - The event to check for a match.
|
|
73
|
+
*/
|
|
74
|
+
private eventFulfillsEventMatchCondition;
|
|
75
|
+
/**
|
|
76
|
+
* Check whether the given event matches the push rule condition by fetching
|
|
77
|
+
* the property from the event and comparing exactly against the condition's
|
|
78
|
+
* value.
|
|
79
|
+
* @param cond - The push rule condition to check for a match.
|
|
80
|
+
* @param ev - The event to check for a match.
|
|
81
|
+
*/
|
|
82
|
+
private eventFulfillsEventPropertyIsCondition;
|
|
83
|
+
/**
|
|
84
|
+
* Check whether the given event matches the push rule condition by fetching
|
|
85
|
+
* the property from the event and comparing exactly against the condition's
|
|
86
|
+
* value.
|
|
87
|
+
* @param cond - The push rule condition to check for a match.
|
|
88
|
+
* @param ev - The event to check for a match.
|
|
89
|
+
*/
|
|
90
|
+
private eventFulfillsEventPropertyContains;
|
|
91
|
+
private eventFulfillsCallStartedCondition;
|
|
92
|
+
/**
|
|
93
|
+
* Parse the key into the separate fields to search by splitting on
|
|
94
|
+
* unescaped ".", and then removing any escape characters.
|
|
95
|
+
*
|
|
96
|
+
* @param str - The key of the push rule condition: a dotted field.
|
|
97
|
+
* @returns The unescaped parts to fetch.
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
static partsForDottedKey(str: string): string[];
|
|
101
|
+
/**
|
|
102
|
+
* For a dotted field and event, fetch the value at that position, if one
|
|
103
|
+
* exists.
|
|
104
|
+
*
|
|
105
|
+
* @param key - The key of the push rule condition: a dotted field to fetch.
|
|
106
|
+
* @param ev - The matrix event to fetch the field from.
|
|
107
|
+
* @returns The value at the dotted path given by key.
|
|
108
|
+
*/
|
|
109
|
+
private valueForDottedKey;
|
|
110
|
+
private matchingRuleForEventWithRulesets;
|
|
111
|
+
private pushActionsForEventAndRulesets;
|
|
112
|
+
ruleMatchesEvent(rule: Partial<IPushRule> & Pick<IPushRule, "conditions">, ev: BriijEvent): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Get the user's push actions for the given event
|
|
115
|
+
*/
|
|
116
|
+
actionsForEvent(ev: BriijEvent): IActionsObject;
|
|
117
|
+
actionsAndRuleForEvent(ev: BriijEvent): {
|
|
118
|
+
actions?: IActionsObject;
|
|
119
|
+
rule?: IAnnotatedPushRule;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Get one of the users push rules by its ID
|
|
123
|
+
*
|
|
124
|
+
* @param ruleId - The ID of the rule to search for
|
|
125
|
+
* @returns The push rule, or null if no such rule was found
|
|
126
|
+
*/
|
|
127
|
+
getPushRuleById(ruleId: string): IPushRule | null;
|
|
128
|
+
/**
|
|
129
|
+
* Get one of the users push rules by its ID
|
|
130
|
+
*
|
|
131
|
+
* @param ruleId - The ID of the rule to search for
|
|
132
|
+
* @returns rule The push rule, or null if no such rule was found
|
|
133
|
+
* @returns kind - The PushRuleKind of the rule to search for
|
|
134
|
+
*/
|
|
135
|
+
getPushRuleAndKindById(ruleId: string): {
|
|
136
|
+
rule: IPushRule;
|
|
137
|
+
kind: PushRuleKind;
|
|
138
|
+
} | null;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=pushprocessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pushprocessor.d.ts","sourceRoot":"","sources":["../src/pushprocessor.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAEH,KAAK,kBAAkB,EAOvB,KAAK,SAAS,EACd,KAAK,UAAU,EAGf,KAAK,cAAc,EAGnB,YAAY,EAGZ,SAAS,EACZ,MAAM,uBAAuB,CAAC;AAgM/B,MAAM,WAAW,cAAc;IAC3B,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;IAChB,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;CAC3C;AAED,qBAAa,aAAa;IAKH,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ1C;;;OAGG;gBACiC,MAAM,EAAE,WAAW;IAEvD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE1D;;;;;;;;OAQG;WACW,yBAAyB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,cAAc;IAerF;;;;;;;;;OASG;WACW,mBAAmB,CAC7B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,UAAU,EACzB,MAAM,GAAE,MAAM,GAAG,SAAqB,GACvC,UAAU;IA8Bb;;;;;;;;OAQG;WACW,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,UAAQ,EAAE,KAAK,SAAM,GAAG,MAAM;IAarG;;;;OAIG;IACI,wBAAwB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;IA0C3D,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;IAE9D,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,sBAAsB;IAyB9B,OAAO,CAAC,qCAAqC;IAoB7C,OAAO,CAAC,qCAAqC;IAsC7C,OAAO,CAAC,iCAAiC;IAuBzC;;;;;;OAMG;IACH,OAAO,CAAC,gCAAgC;IA2BxC;;;;;;OAMG;IACH,OAAO,CAAC,qCAAqC;IAO7C;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IAW1C,OAAO,CAAC,iCAAiC;IAczC;;;;;;;OAOG;WACW,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAkDtD;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAsCzB,OAAO,CAAC,gCAAgC;IAYxC,OAAO,CAAC,8BAA8B;IAwB/B,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO;IAe1G;;OAEG;IACI,eAAe,CAAC,EAAE,EAAE,UAAU,GAAG,cAAc;IAK/C,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG;QAC3C,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;KAC7B;IAID;;;;;OAKG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAKxD;;;;;;OAMG;IACI,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI;CAchG"}
|