@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,121 @@
|
|
|
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
|
+
export class ConnectionStatsReportBuilder {
|
|
18
|
+
static build(stats) {
|
|
19
|
+
var report = {};
|
|
20
|
+
|
|
21
|
+
// process stats
|
|
22
|
+
var totalPackets = {
|
|
23
|
+
download: 0,
|
|
24
|
+
upload: 0
|
|
25
|
+
};
|
|
26
|
+
var lostPackets = {
|
|
27
|
+
download: 0,
|
|
28
|
+
upload: 0
|
|
29
|
+
};
|
|
30
|
+
var bitrateDownload = 0;
|
|
31
|
+
var bitrateUpload = 0;
|
|
32
|
+
var resolutions = {
|
|
33
|
+
local: new Map(),
|
|
34
|
+
remote: new Map()
|
|
35
|
+
};
|
|
36
|
+
var framerates = {
|
|
37
|
+
local: new Map(),
|
|
38
|
+
remote: new Map()
|
|
39
|
+
};
|
|
40
|
+
var codecs = {
|
|
41
|
+
local: new Map(),
|
|
42
|
+
remote: new Map()
|
|
43
|
+
};
|
|
44
|
+
var jitter = new Map();
|
|
45
|
+
var audioConcealment = new Map();
|
|
46
|
+
var audioBitrateDownload = 0;
|
|
47
|
+
var audioBitrateUpload = 0;
|
|
48
|
+
var videoBitrateDownload = 0;
|
|
49
|
+
var videoBitrateUpload = 0;
|
|
50
|
+
var totalConcealedAudio = 0;
|
|
51
|
+
var totalAudioDuration = 0;
|
|
52
|
+
for (var [trackId, trackStats] of stats) {
|
|
53
|
+
// process packet loss stats
|
|
54
|
+
var loss = trackStats.getLoss();
|
|
55
|
+
var type = loss.isDownloadStream ? "download" : "upload";
|
|
56
|
+
totalPackets[type] += loss.packetsTotal;
|
|
57
|
+
lostPackets[type] += loss.packetsLost;
|
|
58
|
+
|
|
59
|
+
// process bitrate stats
|
|
60
|
+
bitrateDownload += trackStats.getBitrate().download;
|
|
61
|
+
bitrateUpload += trackStats.getBitrate().upload;
|
|
62
|
+
|
|
63
|
+
// collect resolutions and framerates
|
|
64
|
+
if (trackStats.kind === "audio") {
|
|
65
|
+
// process audio quality stats
|
|
66
|
+
var audioConcealmentForTrack = trackStats.getAudioConcealment();
|
|
67
|
+
totalConcealedAudio += audioConcealmentForTrack.concealedAudio;
|
|
68
|
+
totalAudioDuration += audioConcealmentForTrack.totalAudioDuration;
|
|
69
|
+
audioBitrateDownload += trackStats.getBitrate().download;
|
|
70
|
+
audioBitrateUpload += trackStats.getBitrate().upload;
|
|
71
|
+
} else {
|
|
72
|
+
videoBitrateDownload += trackStats.getBitrate().download;
|
|
73
|
+
videoBitrateUpload += trackStats.getBitrate().upload;
|
|
74
|
+
}
|
|
75
|
+
resolutions[trackStats.getType()].set(trackId, trackStats.getResolution());
|
|
76
|
+
framerates[trackStats.getType()].set(trackId, trackStats.getFramerate());
|
|
77
|
+
codecs[trackStats.getType()].set(trackId, trackStats.getCodec());
|
|
78
|
+
if (trackStats.getType() === "remote") {
|
|
79
|
+
jitter.set(trackId, trackStats.getJitter());
|
|
80
|
+
if (trackStats.kind === "audio") {
|
|
81
|
+
audioConcealment.set(trackId, trackStats.getAudioConcealment());
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
trackStats.resetBitrate();
|
|
85
|
+
}
|
|
86
|
+
report.bitrate = {
|
|
87
|
+
upload: bitrateUpload,
|
|
88
|
+
download: bitrateDownload
|
|
89
|
+
};
|
|
90
|
+
report.bitrate.audio = {
|
|
91
|
+
upload: audioBitrateUpload,
|
|
92
|
+
download: audioBitrateDownload
|
|
93
|
+
};
|
|
94
|
+
report.bitrate.video = {
|
|
95
|
+
upload: videoBitrateUpload,
|
|
96
|
+
download: videoBitrateDownload
|
|
97
|
+
};
|
|
98
|
+
report.packetLoss = {
|
|
99
|
+
total: ConnectionStatsReportBuilder.calculatePacketLoss(lostPackets.download + lostPackets.upload, totalPackets.download + totalPackets.upload),
|
|
100
|
+
download: ConnectionStatsReportBuilder.calculatePacketLoss(lostPackets.download, totalPackets.download),
|
|
101
|
+
upload: ConnectionStatsReportBuilder.calculatePacketLoss(lostPackets.upload, totalPackets.upload)
|
|
102
|
+
};
|
|
103
|
+
report.audioConcealment = audioConcealment;
|
|
104
|
+
report.totalAudioConcealment = {
|
|
105
|
+
concealedAudio: totalConcealedAudio,
|
|
106
|
+
totalAudioDuration
|
|
107
|
+
};
|
|
108
|
+
report.framerate = framerates;
|
|
109
|
+
report.resolution = resolutions;
|
|
110
|
+
report.codec = codecs;
|
|
111
|
+
report.jitter = jitter;
|
|
112
|
+
return report;
|
|
113
|
+
}
|
|
114
|
+
static calculatePacketLoss(lostPackets, totalPackets) {
|
|
115
|
+
if (!totalPackets || totalPackets <= 0 || !lostPackets || lostPackets <= 0) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
return Math.round(lostPackets / totalPackets * 100);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=connectionStatsReportBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionStatsReportBuilder.js","names":["ConnectionStatsReportBuilder","build","stats","report","totalPackets","download","upload","lostPackets","bitrateDownload","bitrateUpload","resolutions","local","Map","remote","framerates","codecs","jitter","audioConcealment","audioBitrateDownload","audioBitrateUpload","videoBitrateDownload","videoBitrateUpload","totalConcealedAudio","totalAudioDuration","trackId","trackStats","loss","getLoss","type","isDownloadStream","packetsTotal","packetsLost","getBitrate","kind","audioConcealmentForTrack","getAudioConcealment","concealedAudio","getType","set","getResolution","getFramerate","getCodec","getJitter","resetBitrate","bitrate","audio","video","packetLoss","total","calculatePacketLoss","totalAudioConcealment","framerate","resolution","codec","Math","round"],"sources":["../../../src/webrtc/stats/connectionStatsReportBuilder.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\nimport {\r\n type AudioConcealment,\r\n type CodecMap,\r\n type ConnectionStatsReport,\r\n type FramerateMap,\r\n type ResolutionMap,\r\n type TrackID,\r\n} from \"./statsReport.ts\";\r\nimport { type MediaTrackStats, type Resolution } from \"./media/mediaTrackStats.ts\";\r\n\r\nexport class ConnectionStatsReportBuilder {\r\n public static build(stats: Map<TrackID, MediaTrackStats>): ConnectionStatsReport {\r\n const report = {} as ConnectionStatsReport;\r\n\r\n // process stats\r\n const totalPackets = {\r\n download: 0,\r\n upload: 0,\r\n };\r\n const lostPackets = {\r\n download: 0,\r\n upload: 0,\r\n };\r\n let bitrateDownload = 0;\r\n let bitrateUpload = 0;\r\n const resolutions: ResolutionMap = {\r\n local: new Map<TrackID, Resolution>(),\r\n remote: new Map<TrackID, Resolution>(),\r\n };\r\n const framerates: FramerateMap = { local: new Map<TrackID, number>(), remote: new Map<TrackID, number>() };\r\n const codecs: CodecMap = { local: new Map<TrackID, string>(), remote: new Map<TrackID, string>() };\r\n const jitter = new Map<TrackID, number>();\r\n const audioConcealment = new Map<TrackID, AudioConcealment>();\r\n\r\n let audioBitrateDownload = 0;\r\n let audioBitrateUpload = 0;\r\n let videoBitrateDownload = 0;\r\n let videoBitrateUpload = 0;\r\n\r\n let totalConcealedAudio = 0;\r\n let totalAudioDuration = 0;\r\n\r\n for (const [trackId, trackStats] of stats) {\r\n // process packet loss stats\r\n const loss = trackStats.getLoss();\r\n const type = loss.isDownloadStream ? \"download\" : \"upload\";\r\n\r\n totalPackets[type] += loss.packetsTotal;\r\n lostPackets[type] += loss.packetsLost;\r\n\r\n // process bitrate stats\r\n bitrateDownload += trackStats.getBitrate().download;\r\n bitrateUpload += trackStats.getBitrate().upload;\r\n\r\n // collect resolutions and framerates\r\n if (trackStats.kind === \"audio\") {\r\n // process audio quality stats\r\n const audioConcealmentForTrack = trackStats.getAudioConcealment();\r\n totalConcealedAudio += audioConcealmentForTrack.concealedAudio;\r\n totalAudioDuration += audioConcealmentForTrack.totalAudioDuration;\r\n\r\n audioBitrateDownload += trackStats.getBitrate().download;\r\n audioBitrateUpload += trackStats.getBitrate().upload;\r\n } else {\r\n videoBitrateDownload += trackStats.getBitrate().download;\r\n videoBitrateUpload += trackStats.getBitrate().upload;\r\n }\r\n\r\n resolutions[trackStats.getType()].set(trackId, trackStats.getResolution());\r\n framerates[trackStats.getType()].set(trackId, trackStats.getFramerate());\r\n codecs[trackStats.getType()].set(trackId, trackStats.getCodec());\r\n if (trackStats.getType() === \"remote\") {\r\n jitter.set(trackId, trackStats.getJitter());\r\n if (trackStats.kind === \"audio\") {\r\n audioConcealment.set(trackId, trackStats.getAudioConcealment());\r\n }\r\n }\r\n\r\n trackStats.resetBitrate();\r\n }\r\n\r\n report.bitrate = {\r\n upload: bitrateUpload,\r\n download: bitrateDownload,\r\n };\r\n\r\n report.bitrate.audio = {\r\n upload: audioBitrateUpload,\r\n download: audioBitrateDownload,\r\n };\r\n\r\n report.bitrate.video = {\r\n upload: videoBitrateUpload,\r\n download: videoBitrateDownload,\r\n };\r\n\r\n report.packetLoss = {\r\n total: ConnectionStatsReportBuilder.calculatePacketLoss(\r\n lostPackets.download + lostPackets.upload,\r\n totalPackets.download + totalPackets.upload,\r\n ),\r\n download: ConnectionStatsReportBuilder.calculatePacketLoss(lostPackets.download, totalPackets.download),\r\n upload: ConnectionStatsReportBuilder.calculatePacketLoss(lostPackets.upload, totalPackets.upload),\r\n };\r\n report.audioConcealment = audioConcealment;\r\n report.totalAudioConcealment = {\r\n concealedAudio: totalConcealedAudio,\r\n totalAudioDuration,\r\n };\r\n\r\n report.framerate = framerates;\r\n report.resolution = resolutions;\r\n report.codec = codecs;\r\n report.jitter = jitter;\r\n return report;\r\n }\r\n\r\n private static calculatePacketLoss(lostPackets: number, totalPackets: number): number {\r\n if (!totalPackets || totalPackets <= 0 || !lostPackets || lostPackets <= 0) {\r\n return 0;\r\n }\r\n\r\n return Math.round((lostPackets / totalPackets) * 100);\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CallStatsReportGatherer } from "./callStatsReportGatherer.ts";
|
|
2
|
+
import { StatsReportEmitter } from "./statsReportEmitter.ts";
|
|
3
|
+
export declare class GroupCallStats {
|
|
4
|
+
private groupCallId;
|
|
5
|
+
private userId;
|
|
6
|
+
private interval;
|
|
7
|
+
private timer;
|
|
8
|
+
private readonly gatherers;
|
|
9
|
+
readonly reports: StatsReportEmitter;
|
|
10
|
+
private readonly summaryStatsReportGatherer;
|
|
11
|
+
constructor(groupCallId: string, userId: string, interval?: number);
|
|
12
|
+
start(): void;
|
|
13
|
+
stop(): void;
|
|
14
|
+
hasStatsReportGatherer(callId: string): boolean;
|
|
15
|
+
addStatsReportGatherer(callId: string, opponentMemberId: string, peerConnection: RTCPeerConnection): boolean;
|
|
16
|
+
removeStatsReportGatherer(callId: string): boolean;
|
|
17
|
+
getStatsReportGatherer(callId: string): CallStatsReportGatherer | undefined;
|
|
18
|
+
updateOpponentMember(callId: string, opponentMember: string): void;
|
|
19
|
+
private processStats;
|
|
20
|
+
setInterval(interval: number): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=groupCallStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupCallStats.d.ts","sourceRoot":"","sources":["../../../src/webrtc/stats/groupCallStats.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,qBAAa,cAAc;IAOnB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IARpB,OAAO,CAAC,KAAK,CAA4C;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoF;IAC9G,SAAgB,OAAO,qBAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAgD;gBAG/E,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAc;IAG7B,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAOZ,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI/C,sBAAsB,CACzB,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,iBAAiB,GAClC,OAAO;IAQH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIlD,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAI3E,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAIzE,OAAO,CAAC,YAAY;IAab,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;CAG7C"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
/*
|
|
3
|
+
Copyright 2023 The Matrix.org Foundation C.I.C.
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
|
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
See the License for the specific language governing permissions and
|
|
15
|
+
limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import { CallStatsReportGatherer } from "./callStatsReportGatherer.js";
|
|
18
|
+
import { StatsReportEmitter } from "./statsReportEmitter.js";
|
|
19
|
+
import { SummaryStatsReportGatherer } from "./summaryStatsReportGatherer.js";
|
|
20
|
+
import { logger } from "../../logger.js";
|
|
21
|
+
export class GroupCallStats {
|
|
22
|
+
constructor(groupCallId, userId) {
|
|
23
|
+
var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10000;
|
|
24
|
+
this.groupCallId = groupCallId;
|
|
25
|
+
this.userId = userId;
|
|
26
|
+
this.interval = interval;
|
|
27
|
+
_defineProperty(this, "timer", void 0);
|
|
28
|
+
_defineProperty(this, "gatherers", new Map());
|
|
29
|
+
_defineProperty(this, "reports", new StatsReportEmitter());
|
|
30
|
+
_defineProperty(this, "summaryStatsReportGatherer", new SummaryStatsReportGatherer(this.reports));
|
|
31
|
+
}
|
|
32
|
+
start() {
|
|
33
|
+
if (this.timer === undefined && this.interval > 0) {
|
|
34
|
+
this.timer = setInterval(() => {
|
|
35
|
+
this.processStats();
|
|
36
|
+
}, this.interval);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
stop() {
|
|
40
|
+
if (this.timer !== undefined) {
|
|
41
|
+
clearInterval(this.timer);
|
|
42
|
+
this.gatherers.forEach(c => c.stopProcessingStats());
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
hasStatsReportGatherer(callId) {
|
|
46
|
+
return this.gatherers.has(callId);
|
|
47
|
+
}
|
|
48
|
+
addStatsReportGatherer(callId, opponentMemberId, peerConnection) {
|
|
49
|
+
if (this.hasStatsReportGatherer(callId)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
this.gatherers.set(callId, new CallStatsReportGatherer(callId, opponentMemberId, peerConnection, this.reports));
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
removeStatsReportGatherer(callId) {
|
|
56
|
+
return this.gatherers.delete(callId);
|
|
57
|
+
}
|
|
58
|
+
getStatsReportGatherer(callId) {
|
|
59
|
+
return this.hasStatsReportGatherer(callId) ? this.gatherers.get(callId) : undefined;
|
|
60
|
+
}
|
|
61
|
+
updateOpponentMember(callId, opponentMember) {
|
|
62
|
+
var _this$getStatsReportG;
|
|
63
|
+
(_this$getStatsReportG = this.getStatsReportGatherer(callId)) === null || _this$getStatsReportG === void 0 || _this$getStatsReportG.setOpponentMemberId(opponentMember);
|
|
64
|
+
}
|
|
65
|
+
processStats() {
|
|
66
|
+
var summary = [];
|
|
67
|
+
this.gatherers.forEach(c => {
|
|
68
|
+
summary.push(c.processStats(this.groupCallId, this.userId));
|
|
69
|
+
});
|
|
70
|
+
Promise.all(summary).then(s => this.summaryStatsReportGatherer.build(s)).catch(err => {
|
|
71
|
+
logger.error("Could not build summary stats report", err);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
setInterval(interval) {
|
|
75
|
+
this.interval = interval;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=groupCallStats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"groupCallStats.js","names":["CallStatsReportGatherer","StatsReportEmitter","SummaryStatsReportGatherer","logger","GroupCallStats","constructor","groupCallId","userId","interval","arguments","length","undefined","_defineProperty","Map","reports","start","timer","setInterval","processStats","stop","clearInterval","gatherers","forEach","c","stopProcessingStats","hasStatsReportGatherer","callId","has","addStatsReportGatherer","opponentMemberId","peerConnection","set","removeStatsReportGatherer","delete","getStatsReportGatherer","get","updateOpponentMember","opponentMember","_this$getStatsReportG","setOpponentMemberId","summary","push","Promise","all","then","s","summaryStatsReportGatherer","build","catch","err","error"],"sources":["../../../src/webrtc/stats/groupCallStats.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\nimport { CallStatsReportGatherer } from \"./callStatsReportGatherer.ts\";\r\nimport { StatsReportEmitter } from \"./statsReportEmitter.ts\";\r\nimport { type CallStatsReportSummary } from \"./callStatsReportSummary.ts\";\r\nimport { SummaryStatsReportGatherer } from \"./summaryStatsReportGatherer.ts\";\r\nimport { logger } from \"../../logger.ts\";\r\n\r\nexport class GroupCallStats {\r\n private timer: undefined | ReturnType<typeof setTimeout>;\r\n private readonly gatherers: Map<string, CallStatsReportGatherer> = new Map<string, CallStatsReportGatherer>();\r\n public readonly reports = new StatsReportEmitter();\r\n private readonly summaryStatsReportGatherer = new SummaryStatsReportGatherer(this.reports);\r\n\r\n public constructor(\r\n private groupCallId: string,\r\n private userId: string,\r\n private interval: number = 10000,\r\n ) {}\r\n\r\n public start(): void {\r\n if (this.timer === undefined && this.interval > 0) {\r\n this.timer = setInterval(() => {\r\n this.processStats();\r\n }, this.interval);\r\n }\r\n }\r\n\r\n public stop(): void {\r\n if (this.timer !== undefined) {\r\n clearInterval(this.timer);\r\n this.gatherers.forEach((c) => c.stopProcessingStats());\r\n }\r\n }\r\n\r\n public hasStatsReportGatherer(callId: string): boolean {\r\n return this.gatherers.has(callId);\r\n }\r\n\r\n public addStatsReportGatherer(\r\n callId: string,\r\n opponentMemberId: string,\r\n peerConnection: RTCPeerConnection,\r\n ): boolean {\r\n if (this.hasStatsReportGatherer(callId)) {\r\n return false;\r\n }\r\n this.gatherers.set(callId, new CallStatsReportGatherer(callId, opponentMemberId, peerConnection, this.reports));\r\n return true;\r\n }\r\n\r\n public removeStatsReportGatherer(callId: string): boolean {\r\n return this.gatherers.delete(callId);\r\n }\r\n\r\n public getStatsReportGatherer(callId: string): CallStatsReportGatherer | undefined {\r\n return this.hasStatsReportGatherer(callId) ? this.gatherers.get(callId) : undefined;\r\n }\r\n\r\n public updateOpponentMember(callId: string, opponentMember: string): void {\r\n this.getStatsReportGatherer(callId)?.setOpponentMemberId(opponentMember);\r\n }\r\n\r\n private processStats(): void {\r\n const summary: Promise<CallStatsReportSummary>[] = [];\r\n this.gatherers.forEach((c) => {\r\n summary.push(c.processStats(this.groupCallId, this.userId));\r\n });\r\n\r\n Promise.all(summary)\r\n .then((s: Awaited<CallStatsReportSummary>[]) => this.summaryStatsReportGatherer.build(s))\r\n .catch((err) => {\r\n logger.error(\"Could not build summary stats report\", err);\r\n });\r\n }\r\n\r\n public setInterval(interval: number): void {\r\n this.interval = interval;\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type Mid = string;
|
|
2
|
+
export type Ssrc = string;
|
|
3
|
+
export type MapType = "local" | "remote";
|
|
4
|
+
export declare class MediaSsrcHandler {
|
|
5
|
+
private readonly ssrcToMid;
|
|
6
|
+
findMidBySsrc(ssrc: Ssrc, type: "local" | "remote"): Mid | undefined;
|
|
7
|
+
parse(description: string, type: MapType): void;
|
|
8
|
+
getSsrcToMidMap(type: MapType): Map<Mid, Ssrc[]>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=mediaSsrcHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaSsrcHandler.d.ts","sourceRoot":"","sources":["../../../../src/webrtc/stats/media/mediaSsrcHandler.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AACzB,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAC1B,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzC,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqE;IAExF,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,SAAS;IAWpE,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAiB/C,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;CAG1D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
/*
|
|
3
|
+
Copyright 2023 The Matrix.org Foundation C.I.C.
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
|
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
See the License for the specific language governing permissions and
|
|
15
|
+
limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import { parse as parseSdp } from "sdp-transform";
|
|
19
|
+
export class MediaSsrcHandler {
|
|
20
|
+
constructor() {
|
|
21
|
+
_defineProperty(this, "ssrcToMid", {
|
|
22
|
+
local: new Map(),
|
|
23
|
+
remote: new Map()
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
findMidBySsrc(ssrc, type) {
|
|
27
|
+
var mid;
|
|
28
|
+
this.ssrcToMid[type].forEach((ssrcs, m) => {
|
|
29
|
+
if (ssrcs.find(s => s == ssrc)) {
|
|
30
|
+
mid = m;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return mid;
|
|
35
|
+
}
|
|
36
|
+
parse(description, type) {
|
|
37
|
+
var sdp = parseSdp(description);
|
|
38
|
+
var ssrcToMid = new Map();
|
|
39
|
+
sdp.media.forEach(m => {
|
|
40
|
+
if (!!m.mid && m.type === "video" || m.type === "audio") {
|
|
41
|
+
var _m$ssrcs;
|
|
42
|
+
var ssrcs = [];
|
|
43
|
+
(_m$ssrcs = m.ssrcs) === null || _m$ssrcs === void 0 || _m$ssrcs.forEach(ssrc => {
|
|
44
|
+
if (ssrc.attribute === "cname") {
|
|
45
|
+
ssrcs.push("".concat(ssrc.id));
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
ssrcToMid.set("".concat(m.mid), ssrcs);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
this.ssrcToMid[type] = ssrcToMid;
|
|
52
|
+
}
|
|
53
|
+
getSsrcToMidMap(type) {
|
|
54
|
+
return this.ssrcToMid[type];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=mediaSsrcHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaSsrcHandler.js","names":["parse","parseSdp","MediaSsrcHandler","constructor","_defineProperty","local","Map","remote","findMidBySsrc","ssrc","type","mid","ssrcToMid","forEach","ssrcs","m","find","s","description","sdp","media","_m$ssrcs","attribute","push","concat","id","set","getSsrcToMidMap"],"sources":["../../../../src/webrtc/stats/media/mediaSsrcHandler.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 { parse as parseSdp } from \"sdp-transform\";\r\n\r\nexport type Mid = string;\r\nexport type Ssrc = string;\r\nexport type MapType = \"local\" | \"remote\";\r\n\r\nexport class MediaSsrcHandler {\r\n private readonly ssrcToMid = { local: new Map<Mid, Ssrc[]>(), remote: new Map<Mid, Ssrc[]>() };\r\n\r\n public findMidBySsrc(ssrc: Ssrc, type: \"local\" | \"remote\"): Mid | undefined {\r\n let mid: Mid | undefined;\r\n this.ssrcToMid[type].forEach((ssrcs, m) => {\r\n if (ssrcs.find((s) => s == ssrc)) {\r\n mid = m;\r\n return;\r\n }\r\n });\r\n return mid;\r\n }\r\n\r\n public parse(description: string, type: MapType): void {\r\n const sdp = parseSdp(description);\r\n const ssrcToMid = new Map<Mid, Ssrc[]>();\r\n sdp.media.forEach((m) => {\r\n if ((!!m.mid && m.type === \"video\") || m.type === \"audio\") {\r\n const ssrcs: Ssrc[] = [];\r\n m.ssrcs?.forEach((ssrc) => {\r\n if (ssrc.attribute === \"cname\") {\r\n ssrcs.push(`${ssrc.id}`);\r\n }\r\n });\r\n ssrcToMid.set(`${m.mid}`, ssrcs);\r\n }\r\n });\r\n this.ssrcToMid[type] = ssrcToMid;\r\n }\r\n\r\n public getSsrcToMidMap(type: MapType): Map<Mid, Ssrc[]> {\r\n return this.ssrcToMid[type];\r\n }\r\n}\r\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,IAAIC,QAAQ,QAAQ,eAAe;AAMjD,OAAO,MAAMC,gBAAgB,CAAC;EAAAC,YAAA;IAAAC,eAAA,oBACG;MAAEC,KAAK,EAAE,IAAIC,GAAG,CAAc,CAAC;MAAEC,MAAM,EAAE,IAAID,GAAG,CAAc;IAAE,CAAC;EAAA;EAEvFE,aAAaA,CAACC,IAAU,EAAEC,IAAwB,EAAmB;IACxE,IAAIC,GAAoB;IACxB,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,CAACG,OAAO,CAAC,CAACC,KAAK,EAAEC,CAAC,KAAK;MACvC,IAAID,KAAK,CAACE,IAAI,CAAEC,CAAC,IAAKA,CAAC,IAAIR,IAAI,CAAC,EAAE;QAC9BE,GAAG,GAAGI,CAAC;QACP;MACJ;IACJ,CAAC,CAAC;IACF,OAAOJ,GAAG;EACd;EAEOX,KAAKA,CAACkB,WAAmB,EAAER,IAAa,EAAQ;IACnD,IAAMS,GAAG,GAAGlB,QAAQ,CAACiB,WAAW,CAAC;IACjC,IAAMN,SAAS,GAAG,IAAIN,GAAG,CAAc,CAAC;IACxCa,GAAG,CAACC,KAAK,CAACP,OAAO,CAAEE,CAAC,IAAK;MACrB,IAAK,CAAC,CAACA,CAAC,CAACJ,GAAG,IAAII,CAAC,CAACL,IAAI,KAAK,OAAO,IAAKK,CAAC,CAACL,IAAI,KAAK,OAAO,EAAE;QAAA,IAAAW,QAAA;QACvD,IAAMP,KAAa,GAAG,EAAE;QACxB,CAAAO,QAAA,GAAAN,CAAC,CAACD,KAAK,cAAAO,QAAA,eAAPA,QAAA,CAASR,OAAO,CAAEJ,IAAI,IAAK;UACvB,IAAIA,IAAI,CAACa,SAAS,KAAK,OAAO,EAAE;YAC5BR,KAAK,CAACS,IAAI,IAAAC,MAAA,CAAIf,IAAI,CAACgB,EAAE,CAAE,CAAC;UAC5B;QACJ,CAAC,CAAC;QACFb,SAAS,CAACc,GAAG,IAAAF,MAAA,CAAIT,CAAC,CAACJ,GAAG,GAAIG,KAAK,CAAC;MACpC;IACJ,CAAC,CAAC;IACF,IAAI,CAACF,SAAS,CAACF,IAAI,CAAC,GAAGE,SAAS;EACpC;EAEOe,eAAeA,CAACjB,IAAa,EAAoB;IACpD,OAAO,IAAI,CAACE,SAAS,CAACF,IAAI,CAAC;EAC/B;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type TrackId = string;
|
|
2
|
+
export declare class MediaTrackHandler {
|
|
3
|
+
private readonly pc;
|
|
4
|
+
constructor(pc: RTCPeerConnection);
|
|
5
|
+
getLocalTracks(kind: "audio" | "video"): MediaStreamTrack[];
|
|
6
|
+
getTackById(trackId: string): MediaStreamTrack | undefined;
|
|
7
|
+
getLocalTrackIdByMid(mid: string): string | undefined;
|
|
8
|
+
getRemoteTrackIdByMid(mid: string): string | undefined;
|
|
9
|
+
getActiveSimulcastStreams(): number;
|
|
10
|
+
getTransceiverByTrackId(trackId: TrackId): RTCRtpTransceiver | undefined;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=mediaTrackHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaTrackHandler.d.ts","sourceRoot":"","sources":["../../../../src/webrtc/stats/media/mediaTrackHandler.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,qBAAa,iBAAiB;IACP,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,iBAAiB;IAElD,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,gBAAgB,EAAE;IAa3D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAe1D,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKrD,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKtD,yBAAyB,IAAI,MAAM;IAKnC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS;CAKlF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
export class MediaTrackHandler {
|
|
18
|
+
constructor(pc) {
|
|
19
|
+
this.pc = pc;
|
|
20
|
+
}
|
|
21
|
+
getLocalTracks(kind) {
|
|
22
|
+
var isNotNullAndKind = track => {
|
|
23
|
+
return track !== null && track.kind === kind;
|
|
24
|
+
};
|
|
25
|
+
return this.pc.getTransceivers().filter(t => t.currentDirection === "sendonly" || t.currentDirection === "sendrecv").filter(t => t.sender !== null).map(t => t.sender).map(s => s.track).filter(isNotNullAndKind);
|
|
26
|
+
}
|
|
27
|
+
getTackById(trackId) {
|
|
28
|
+
return this.pc.getTransceivers().map(t => {
|
|
29
|
+
if ((t === null || t === void 0 ? void 0 : t.sender.track) !== null && t.sender.track.id === trackId) {
|
|
30
|
+
return t.sender.track;
|
|
31
|
+
}
|
|
32
|
+
if ((t === null || t === void 0 ? void 0 : t.receiver.track) !== null && t.receiver.track.id === trackId) {
|
|
33
|
+
return t.receiver.track;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}).find(t => t !== undefined);
|
|
37
|
+
}
|
|
38
|
+
getLocalTrackIdByMid(mid) {
|
|
39
|
+
var _transceiver$sender;
|
|
40
|
+
var transceiver = this.pc.getTransceivers().find(t => t.mid === mid);
|
|
41
|
+
return transceiver === null || transceiver === void 0 || (_transceiver$sender = transceiver.sender) === null || _transceiver$sender === void 0 || (_transceiver$sender = _transceiver$sender.track) === null || _transceiver$sender === void 0 ? void 0 : _transceiver$sender.id;
|
|
42
|
+
}
|
|
43
|
+
getRemoteTrackIdByMid(mid) {
|
|
44
|
+
var _transceiver$receiver;
|
|
45
|
+
var transceiver = this.pc.getTransceivers().find(t => t.mid === mid);
|
|
46
|
+
return transceiver === null || transceiver === void 0 || (_transceiver$receiver = transceiver.receiver) === null || _transceiver$receiver === void 0 || (_transceiver$receiver = _transceiver$receiver.track) === null || _transceiver$receiver === void 0 ? void 0 : _transceiver$receiver.id;
|
|
47
|
+
}
|
|
48
|
+
getActiveSimulcastStreams() {
|
|
49
|
+
//@TODO implement this right.. Check how many layer configured
|
|
50
|
+
return 3;
|
|
51
|
+
}
|
|
52
|
+
getTransceiverByTrackId(trackId) {
|
|
53
|
+
return this.pc.getTransceivers().find(t => {
|
|
54
|
+
return t.receiver.track.id === trackId || t.sender.track !== null && t.sender.track.id === trackId;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=mediaTrackHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaTrackHandler.js","names":["MediaTrackHandler","constructor","pc","getLocalTracks","kind","isNotNullAndKind","track","getTransceivers","filter","t","currentDirection","sender","map","s","getTackById","trackId","id","receiver","undefined","find","getLocalTrackIdByMid","mid","_transceiver$sender","transceiver","getRemoteTrackIdByMid","_transceiver$receiver","getActiveSimulcastStreams","getTransceiverByTrackId"],"sources":["../../../../src/webrtc/stats/media/mediaTrackHandler.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\nexport type TrackId = string;\r\n\r\nexport class MediaTrackHandler {\r\n public constructor(private readonly pc: RTCPeerConnection) {}\r\n\r\n public getLocalTracks(kind: \"audio\" | \"video\"): MediaStreamTrack[] {\r\n const isNotNullAndKind = (track: MediaStreamTrack | null): boolean => {\r\n return track !== null && track.kind === kind;\r\n };\r\n return this.pc\r\n .getTransceivers()\r\n .filter((t) => t.currentDirection === \"sendonly\" || t.currentDirection === \"sendrecv\")\r\n .filter((t) => t.sender !== null)\r\n .map((t) => t.sender)\r\n .map((s) => s.track)\r\n .filter(isNotNullAndKind) as MediaStreamTrack[];\r\n }\r\n\r\n public getTackById(trackId: string): MediaStreamTrack | undefined {\r\n return this.pc\r\n .getTransceivers()\r\n .map((t) => {\r\n if (t?.sender.track !== null && t.sender.track.id === trackId) {\r\n return t.sender.track;\r\n }\r\n if (t?.receiver.track !== null && t.receiver.track.id === trackId) {\r\n return t.receiver.track;\r\n }\r\n return undefined;\r\n })\r\n .find((t) => t !== undefined);\r\n }\r\n\r\n public getLocalTrackIdByMid(mid: string): string | undefined {\r\n const transceiver = this.pc.getTransceivers().find((t) => t.mid === mid);\r\n return transceiver?.sender?.track?.id;\r\n }\r\n\r\n public getRemoteTrackIdByMid(mid: string): string | undefined {\r\n const transceiver = this.pc.getTransceivers().find((t) => t.mid === mid);\r\n return transceiver?.receiver?.track?.id;\r\n }\r\n\r\n public getActiveSimulcastStreams(): number {\r\n //@TODO implement this right.. Check how many layer configured\r\n return 3;\r\n }\r\n\r\n public getTransceiverByTrackId(trackId: TrackId): RTCRtpTransceiver | undefined {\r\n return this.pc.getTransceivers().find((t) => {\r\n return t.receiver.track.id === trackId || (t.sender.track !== null && t.sender.track.id === trackId);\r\n });\r\n }\r\n}\r\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA,OAAO,MAAMA,iBAAiB,CAAC;EACpBC,WAAWA,CAAkBC,EAAqB,EAAE;IAAA,KAAvBA,EAAqB,GAArBA,EAAqB;EAAG;EAErDC,cAAcA,CAACC,IAAuB,EAAsB;IAC/D,IAAMC,gBAAgB,GAAIC,KAA8B,IAAc;MAClE,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,CAACF,IAAI,KAAKA,IAAI;IAChD,CAAC;IACD,OAAO,IAAI,CAACF,EAAE,CACTK,eAAe,CAAC,CAAC,CACjBC,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACC,gBAAgB,KAAK,UAAU,IAAID,CAAC,CAACC,gBAAgB,KAAK,UAAU,CAAC,CACrFF,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACE,MAAM,KAAK,IAAI,CAAC,CAChCC,GAAG,CAAEH,CAAC,IAAKA,CAAC,CAACE,MAAM,CAAC,CACpBC,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACP,KAAK,CAAC,CACnBE,MAAM,CAACH,gBAAgB,CAAC;EACjC;EAEOS,WAAWA,CAACC,OAAe,EAAgC;IAC9D,OAAO,IAAI,CAACb,EAAE,CACTK,eAAe,CAAC,CAAC,CACjBK,GAAG,CAAEH,CAAC,IAAK;MACR,IAAI,CAAAA,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEE,MAAM,CAACL,KAAK,MAAK,IAAI,IAAIG,CAAC,CAACE,MAAM,CAACL,KAAK,CAACU,EAAE,KAAKD,OAAO,EAAE;QAC3D,OAAON,CAAC,CAACE,MAAM,CAACL,KAAK;MACzB;MACA,IAAI,CAAAG,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEQ,QAAQ,CAACX,KAAK,MAAK,IAAI,IAAIG,CAAC,CAACQ,QAAQ,CAACX,KAAK,CAACU,EAAE,KAAKD,OAAO,EAAE;QAC/D,OAAON,CAAC,CAACQ,QAAQ,CAACX,KAAK;MAC3B;MACA,OAAOY,SAAS;IACpB,CAAC,CAAC,CACDC,IAAI,CAAEV,CAAC,IAAKA,CAAC,KAAKS,SAAS,CAAC;EACrC;EAEOE,oBAAoBA,CAACC,GAAW,EAAsB;IAAA,IAAAC,mBAAA;IACzD,IAAMC,WAAW,GAAG,IAAI,CAACrB,EAAE,CAACK,eAAe,CAAC,CAAC,CAACY,IAAI,CAAEV,CAAC,IAAKA,CAAC,CAACY,GAAG,KAAKA,GAAG,CAAC;IACxE,OAAOE,WAAW,aAAXA,WAAW,gBAAAD,mBAAA,GAAXC,WAAW,CAAEZ,MAAM,cAAAW,mBAAA,gBAAAA,mBAAA,GAAnBA,mBAAA,CAAqBhB,KAAK,cAAAgB,mBAAA,uBAA1BA,mBAAA,CAA4BN,EAAE;EACzC;EAEOQ,qBAAqBA,CAACH,GAAW,EAAsB;IAAA,IAAAI,qBAAA;IAC1D,IAAMF,WAAW,GAAG,IAAI,CAACrB,EAAE,CAACK,eAAe,CAAC,CAAC,CAACY,IAAI,CAAEV,CAAC,IAAKA,CAAC,CAACY,GAAG,KAAKA,GAAG,CAAC;IACxE,OAAOE,WAAW,aAAXA,WAAW,gBAAAE,qBAAA,GAAXF,WAAW,CAAEN,QAAQ,cAAAQ,qBAAA,gBAAAA,qBAAA,GAArBA,qBAAA,CAAuBnB,KAAK,cAAAmB,qBAAA,uBAA5BA,qBAAA,CAA8BT,EAAE;EAC3C;EAEOU,yBAAyBA,CAAA,EAAW;IACvC;IACA,OAAO,CAAC;EACZ;EAEOC,uBAAuBA,CAACZ,OAAgB,EAAiC;IAC5E,OAAO,IAAI,CAACb,EAAE,CAACK,eAAe,CAAC,CAAC,CAACY,IAAI,CAAEV,CAAC,IAAK;MACzC,OAAOA,CAAC,CAACQ,QAAQ,CAACX,KAAK,CAACU,EAAE,KAAKD,OAAO,IAAKN,CAAC,CAACE,MAAM,CAACL,KAAK,KAAK,IAAI,IAAIG,CAAC,CAACE,MAAM,CAACL,KAAK,CAACU,EAAE,KAAKD,OAAQ;IACxG,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { type AudioConcealment } from "../statsReport.ts";
|
|
2
|
+
import { type TrackId } from "./mediaTrackHandler.ts";
|
|
3
|
+
export interface PacketLoss {
|
|
4
|
+
packetsTotal: number;
|
|
5
|
+
packetsLost: number;
|
|
6
|
+
isDownloadStream: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface Bitrate {
|
|
9
|
+
/**
|
|
10
|
+
* bytes per second
|
|
11
|
+
*/
|
|
12
|
+
download: number;
|
|
13
|
+
/**
|
|
14
|
+
* bytes per second
|
|
15
|
+
*/
|
|
16
|
+
upload: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ConcealedAudio {
|
|
19
|
+
/**
|
|
20
|
+
* duration in ms
|
|
21
|
+
*/
|
|
22
|
+
duration: number;
|
|
23
|
+
ratio: number;
|
|
24
|
+
}
|
|
25
|
+
export interface Resolution {
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
}
|
|
29
|
+
export type TrackStatsType = "local" | "remote";
|
|
30
|
+
export declare class MediaTrackStats {
|
|
31
|
+
readonly trackId: TrackId;
|
|
32
|
+
readonly type: TrackStatsType;
|
|
33
|
+
readonly kind: "audio" | "video";
|
|
34
|
+
private loss;
|
|
35
|
+
private bitrate;
|
|
36
|
+
private resolution;
|
|
37
|
+
private audioConcealment;
|
|
38
|
+
private framerate;
|
|
39
|
+
private jitter;
|
|
40
|
+
private codec;
|
|
41
|
+
private isAlive;
|
|
42
|
+
private isMuted;
|
|
43
|
+
private isEnabled;
|
|
44
|
+
constructor(trackId: TrackId, type: TrackStatsType, kind: "audio" | "video");
|
|
45
|
+
getType(): TrackStatsType;
|
|
46
|
+
setLoss(loss: PacketLoss): void;
|
|
47
|
+
getLoss(): PacketLoss;
|
|
48
|
+
setResolution(resolution: Resolution): void;
|
|
49
|
+
getResolution(): Resolution;
|
|
50
|
+
setFramerate(framerate: number): void;
|
|
51
|
+
getFramerate(): number;
|
|
52
|
+
setBitrate(bitrate: Bitrate): void;
|
|
53
|
+
getBitrate(): Bitrate;
|
|
54
|
+
setCodec(codecShortType: string): boolean;
|
|
55
|
+
getCodec(): string;
|
|
56
|
+
resetBitrate(): void;
|
|
57
|
+
set alive(isAlive: boolean);
|
|
58
|
+
/**
|
|
59
|
+
* A MediaTrackState is alive if the corresponding MediaStreamTrack track bound to a transceiver and the
|
|
60
|
+
* MediaStreamTrack is in state MediaStreamTrack.readyState === live
|
|
61
|
+
*/
|
|
62
|
+
get alive(): boolean;
|
|
63
|
+
set muted(isMuted: boolean);
|
|
64
|
+
/**
|
|
65
|
+
* A MediaTrackState.isMuted corresponding to MediaStreamTrack.muted.
|
|
66
|
+
* But these values only match if MediaTrackState.isAlive.
|
|
67
|
+
*/
|
|
68
|
+
get muted(): boolean;
|
|
69
|
+
set enabled(isEnabled: boolean);
|
|
70
|
+
/**
|
|
71
|
+
* A MediaTrackState.isEnabled corresponding to MediaStreamTrack.enabled.
|
|
72
|
+
* But these values only match if MediaTrackState.isAlive.
|
|
73
|
+
*/
|
|
74
|
+
get enabled(): boolean;
|
|
75
|
+
setJitter(jitter: number): void;
|
|
76
|
+
/**
|
|
77
|
+
* Jitter in milliseconds
|
|
78
|
+
*/
|
|
79
|
+
getJitter(): number;
|
|
80
|
+
/**
|
|
81
|
+
* Audio concealment ration (conceled duration / total duration)
|
|
82
|
+
*/
|
|
83
|
+
setAudioConcealment(concealedAudioDuration: number, totalAudioDuration: number): void;
|
|
84
|
+
getAudioConcealment(): AudioConcealment;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=mediaTrackStats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaTrackStats.d.ts","sourceRoot":"","sources":["../../../../src/webrtc/stats/media/mediaTrackStats.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB,KAAK,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhD,qBAAa,eAAe;aAaJ,OAAO,EAAE,OAAO;aAChB,IAAI,EAAE,cAAc;aACpB,IAAI,EAAE,OAAO,GAAG,OAAO;IAd3C,OAAO,CAAC,IAAI,CAA4E;IACxF,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,UAAU,CAAyC;IAC3D,OAAO,CAAC,gBAAgB,CAAkE;IAC1F,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAQ;gBAGL,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,OAAO,GAAG,OAAO;IAGpC,OAAO,IAAI,cAAc;IAIzB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI/B,OAAO,IAAI,UAAU;IAIrB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAI3C,aAAa,IAAI,UAAU;IAI3B,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC,YAAY,IAAI,MAAM;IAItB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC,UAAU,IAAI,OAAO;IAIrB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAKzC,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,IAAI;IAI3B,IAAW,KAAK,CAAC,OAAO,EAAE,OAAO,EAEhC;IAED;;;OAGG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,KAAK,CAAC,OAAO,EAAE,OAAO,EAEhC;IAED;;;OAGG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED,IAAW,OAAO,CAAC,SAAS,EAAE,OAAO,EAEpC;IAED;;;OAGG;IACH,IAAW,OAAO,IAAI,OAAO,CAE5B;IAEM,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAItC;;OAEG;IACI,SAAS,IAAI,MAAM;IAI1B;;OAEG;IACI,mBAAmB,CAAC,sBAAsB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAKrF,mBAAmB,IAAI,gBAAgB;CAGjD"}
|