@textrp/briij-js-sdk 41.0.1 → 43.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 +14 -1
- package/LICENSE +177 -177
- package/README.md +85 -3
- package/lib/@types/AESEncryptedSecretStoragePayload.js.map +1 -1
- package/lib/@types/IIdentityServerProvider.js.map +1 -1
- package/lib/@types/PushRules.js +14 -14
- package/lib/@types/PushRules.js.map +1 -1
- package/lib/@types/another-json.d.js.map +1 -1
- package/lib/@types/auth.d.ts +72 -1
- package/lib/@types/auth.d.ts.map +1 -1
- package/lib/@types/auth.js +57 -54
- package/lib/@types/auth.js.map +1 -1
- package/lib/@types/beacon.js +100 -100
- package/lib/@types/beacon.js.map +1 -1
- package/lib/@types/common.js.map +1 -1
- package/lib/@types/crypto.js.map +1 -1
- package/lib/@types/event.d.ts +59 -0
- package/lib/@types/event.d.ts.map +1 -1
- package/lib/@types/event.js +105 -102
- package/lib/@types/event.js.map +1 -1
- package/lib/@types/events.js.map +1 -1
- package/lib/@types/extensible_events.js +53 -53
- package/lib/@types/extensible_events.js.map +1 -1
- package/lib/@types/local_notifications.js.map +1 -1
- package/lib/@types/location.js +41 -41
- package/lib/@types/location.js.map +1 -1
- package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +1 -1
- package/lib/@types/media.js.map +1 -1
- package/lib/@types/membership.js +39 -39
- package/lib/@types/membership.js.map +1 -1
- package/lib/@types/partials.js +25 -25
- package/lib/@types/partials.js.map +1 -1
- package/lib/@types/polls.js +46 -46
- package/lib/@types/polls.js.map +1 -1
- package/lib/@types/read_receipts.js +14 -14
- package/lib/@types/read_receipts.js.map +1 -1
- package/lib/@types/registration.js.map +1 -1
- package/lib/@types/search.js +14 -14
- package/lib/@types/search.js.map +1 -1
- package/lib/@types/signed.js.map +1 -1
- package/lib/@types/spaces.js.map +1 -1
- package/lib/@types/state_events.js.map +1 -1
- package/lib/@types/synapse.js.map +1 -1
- package/lib/@types/sync.js +18 -18
- package/lib/@types/sync.js.map +1 -1
- package/lib/@types/threepids.js +14 -14
- package/lib/@types/threepids.js.map +1 -1
- package/lib/@types/topic.js +47 -47
- package/lib/@types/topic.js.map +1 -1
- package/lib/@types/uia.js.map +1 -1
- package/lib/NamespacedValue.js +20 -20
- package/lib/NamespacedValue.js.map +1 -1
- package/lib/ReEmitter.js +16 -16
- package/lib/ReEmitter.js.map +1 -1
- package/lib/base64.js +32 -32
- package/lib/base64.js.map +1 -1
- package/lib/briij.d.ts +4 -0
- package/lib/briij.d.ts.map +1 -1
- package/lib/briij.js +4 -0
- package/lib/briij.js.map +1 -1
- package/lib/client.d.ts +48 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +262 -108
- package/lib/client.js.map +1 -1
- package/lib/common-crypto/key-passphrase.js +19 -19
- package/lib/common-crypto/key-passphrase.js.map +1 -1
- package/lib/content-helpers.js +57 -57
- package/lib/content-helpers.js.map +1 -1
- package/lib/content-repo.js +36 -36
- package/lib/content-repo.js.map +1 -1
- package/lib/crypto/store/base.js +69 -69
- package/lib/crypto/store/base.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +58 -58
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store.js +193 -193
- package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
- package/lib/crypto/store/localStorage-crypto-store.js +72 -72
- package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
- package/lib/crypto/store/memory-crypto-store.js +74 -74
- package/lib/crypto/store/memory-crypto-store.js.map +1 -1
- package/lib/crypto-api/CryptoEventHandlerMap.js.map +1 -1
- package/lib/crypto-api/key-passphrase.js +22 -22
- package/lib/crypto-api/key-passphrase.js.map +1 -1
- package/lib/crypto-api/keybackup.js.map +1 -1
- package/lib/crypto-api/recovery-key.js +20 -20
- package/lib/crypto-api/recovery-key.js.map +1 -1
- package/lib/digest.js +21 -21
- package/lib/digest.js.map +1 -1
- package/lib/extensible_events_v1/ExtensibleEvent.js +39 -39
- package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -1
- package/lib/extensible_events_v1/InvalidEventError.js +16 -16
- package/lib/extensible_events_v1/InvalidEventError.js.map +1 -1
- package/lib/extensible_events_v1/MessageEvent.js +39 -39
- package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollEndEvent.js +29 -29
- package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollResponseEvent.js +39 -39
- package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollStartEvent.js +52 -52
- package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
- package/lib/extensible_events_v1/utilities.js +22 -22
- package/lib/extensible_events_v1/utilities.js.map +1 -1
- package/lib/feature.js +16 -16
- package/lib/feature.js.map +1 -1
- package/lib/http-api/method.js +14 -14
- package/lib/http-api/method.js.map +1 -1
- package/lib/http-api/prefix.js +26 -26
- package/lib/http-api/prefix.js.map +1 -1
- package/lib/indexeddb-helpers.js +21 -21
- package/lib/indexeddb-helpers.js.map +1 -1
- package/lib/indexeddb-worker.js +18 -18
- package/lib/indexeddb-worker.js.map +1 -1
- package/lib/matrixrtc/IKeyTransport.js +17 -17
- package/lib/matrixrtc/IKeyTransport.js.map +1 -1
- package/lib/matrixrtc/IMembershipManager.js +27 -27
- package/lib/matrixrtc/IMembershipManager.js.map +1 -1
- package/lib/matrixrtc/LivekitTransport.js +19 -19
- package/lib/matrixrtc/LivekitTransport.js.map +1 -1
- package/lib/matrixrtc/index.js +14 -14
- package/lib/matrixrtc/index.js.map +1 -1
- package/lib/matrixrtc/utils.js +27 -27
- package/lib/matrixrtc/utils.js.map +1 -1
- package/lib/models/ToDeviceMessage.js.map +1 -1
- package/lib/models/device.js +24 -24
- package/lib/models/device.js.map +1 -1
- package/lib/models/event-status.js +17 -17
- package/lib/models/event-status.js.map +1 -1
- package/lib/models/invites-ignorer-types.js +25 -25
- package/lib/models/invites-ignorer-types.js.map +1 -1
- package/lib/models/profile-keys.js +26 -26
- package/lib/models/profile-keys.js.map +1 -1
- package/lib/models/room-summary.js +26 -26
- package/lib/models/room-summary.js.map +1 -1
- package/lib/models/search-result.js +22 -22
- package/lib/models/search-result.js.map +1 -1
- package/lib/models/typed-event-emitter.js +122 -122
- package/lib/models/typed-event-emitter.js.map +1 -1
- package/lib/oidc/authorize.js +76 -76
- package/lib/oidc/authorize.js.map +1 -1
- package/lib/oidc/error.js +17 -17
- package/lib/oidc/error.js.map +1 -1
- package/lib/oidc/index.js +17 -17
- package/lib/oidc/index.js.map +1 -1
- package/lib/oidc/register.js +41 -41
- package/lib/oidc/register.js.map +1 -1
- package/lib/oidc/tokenRefresher.js +51 -51
- package/lib/oidc/tokenRefresher.js.map +1 -1
- package/lib/oidc/validate.js +59 -59
- package/lib/oidc/validate.js.map +1 -1
- package/lib/randomstring.js +35 -35
- package/lib/randomstring.js.map +1 -1
- package/lib/realtime-callbacks.js +39 -39
- package/lib/realtime-callbacks.js.map +1 -1
- package/lib/receipt-accumulator.js +44 -44
- package/lib/receipt-accumulator.js.map +1 -1
- package/lib/rendezvous/RendezvousChannel.js.map +1 -1
- package/lib/rendezvous/RendezvousCode.js.map +1 -1
- package/lib/rendezvous/RendezvousError.js +14 -14
- package/lib/rendezvous/RendezvousError.js.map +1 -1
- package/lib/rendezvous/RendezvousFailureReason.js +14 -14
- package/lib/rendezvous/RendezvousFailureReason.js.map +1 -1
- package/lib/rendezvous/RendezvousIntent.js +14 -14
- package/lib/rendezvous/RendezvousIntent.js.map +1 -1
- package/lib/rendezvous/RendezvousTransport.js.map +1 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +63 -63
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
- package/lib/rendezvous/channels/index.js +14 -14
- package/lib/rendezvous/channels/index.js.map +1 -1
- package/lib/rendezvous/index.js +14 -14
- package/lib/rendezvous/index.js.map +1 -1
- package/lib/rendezvous/transports/index.js +14 -14
- package/lib/rendezvous/transports/index.js.map +1 -1
- package/lib/rust-crypto/CrossSigningIdentity.js +29 -29
- package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
- package/lib/rust-crypto/OutgoingRequestsManager.js +37 -37
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
- package/lib/rust-crypto/device-converter.js +30 -30
- package/lib/rust-crypto/device-converter.js.map +1 -1
- package/lib/rust-crypto/secret-storage.js +30 -30
- package/lib/rust-crypto/secret-storage.js.map +1 -1
- package/lib/service-types.js +14 -14
- package/lib/service-types.js.map +1 -1
- package/lib/store/local-storage-events-emitter.js +21 -21
- package/lib/store/local-storage-events-emitter.js.map +1 -1
- package/lib/sync-accumulator.js +50 -50
- package/lib/sync-accumulator.js.map +1 -1
- package/lib/thread-utils.js +20 -20
- package/lib/thread-utils.js.map +1 -1
- package/lib/types.js +34 -34
- package/lib/types.js.map +1 -1
- package/lib/utils/decryptAESSecretStorageItem.js +22 -22
- package/lib/utils/decryptAESSecretStorageItem.js.map +1 -1
- package/lib/utils/encryptAESSecretStorageItem.js +26 -26
- package/lib/utils/encryptAESSecretStorageItem.js.map +1 -1
- package/lib/utils/internal/deriveKeys.js +21 -21
- package/lib/utils/internal/deriveKeys.js.map +1 -1
- package/lib/utils/roomVersion.js +26 -26
- package/lib/utils/roomVersion.js.map +1 -1
- package/lib/version-support.js +26 -26
- package/lib/version-support.js.map +1 -1
- package/lib/wallet-recovery.d.ts +24 -0
- package/lib/wallet-recovery.d.ts.map +1 -0
- package/lib/wallet-recovery.js +232 -0
- package/lib/wallet-recovery.js.map +1 -0
- package/lib/webrtc/audioContext.js +24 -24
- package/lib/webrtc/audioContext.js.map +1 -1
- package/lib/webrtc/callEventTypes.js.map +1 -1
- package/lib/webrtc/stats/callFeedStatsReporter.js +14 -14
- package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
- package/lib/webrtc/stats/callStatsReportGatherer.js +14 -14
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
- package/lib/webrtc/stats/callStatsReportSummary.js.map +1 -1
- package/lib/webrtc/stats/connectionStats.js +14 -14
- package/lib/webrtc/stats/connectionStats.js.map +1 -1
- package/lib/webrtc/stats/connectionStatsBuilder.js +14 -14
- package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
- package/lib/webrtc/stats/connectionStatsReportBuilder.js +14 -14
- package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
- package/lib/webrtc/stats/groupCallStats.js +14 -14
- package/lib/webrtc/stats/groupCallStats.js.map +1 -1
- package/lib/webrtc/stats/media/mediaSsrcHandler.js +14 -14
- package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackHandler.js +14 -14
- package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackStats.js +27 -27
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +20 -20
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
- package/lib/webrtc/stats/statsReport.js +14 -14
- package/lib/webrtc/stats/statsReport.js.map +1 -1
- package/lib/webrtc/stats/statsReportEmitter.js +14 -14
- package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
- package/lib/webrtc/stats/trackStatsBuilder.js +4 -4
- package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
- package/lib/webrtc/stats/transportStats.js.map +1 -1
- package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
- package/lib/webrtc/stats/valueFormatter.js +11 -11
- package/lib/webrtc/stats/valueFormatter.js.map +1 -1
- package/lib/xrpl/identity.d.ts +28 -0
- package/lib/xrpl/identity.d.ts.map +1 -0
- package/lib/xrpl/identity.js +213 -0
- package/lib/xrpl/identity.js.map +1 -0
- package/lib/xrpl/trust.d.ts +8 -0
- package/lib/xrpl/trust.d.ts.map +1 -0
- package/lib/xrpl/trust.js +61 -0
- package/lib/xrpl/trust.js.map +1 -0
- package/lib/xrpl/verification.d.ts +26 -0
- package/lib/xrpl/verification.d.ts.map +1 -0
- package/lib/xrpl/verification.js +295 -0
- package/lib/xrpl/verification.js.map +1 -0
- package/package.json +130 -129
- package/src/@types/AESEncryptedSecretStoragePayload.ts +29 -29
- package/src/@types/IIdentityServerProvider.ts +24 -24
- package/src/@types/PushRules.ts +208 -208
- package/src/@types/another-json.d.ts +19 -19
- package/src/@types/auth.ts +340 -258
- package/src/@types/beacon.ts +140 -140
- package/src/@types/common.ts +24 -24
- package/src/@types/crypto.ts +71 -71
- package/src/@types/event.ts +508 -449
- package/src/@types/events.ts +119 -119
- package/src/@types/extensible_events.ts +147 -147
- package/src/@types/local_notifications.ts +19 -19
- package/src/@types/location.ts +92 -92
- package/src/@types/matrix-sdk-crypto-wasm.d.ts +39 -39
- package/src/@types/media.ts +245 -245
- package/src/@types/membership.ts +57 -57
- package/src/@types/partials.ts +103 -103
- package/src/@types/polls.ts +120 -120
- package/src/@types/read_receipts.ts +61 -61
- package/src/@types/registration.ts +102 -102
- package/src/@types/search.ts +119 -119
- package/src/@types/signed.ts +25 -25
- package/src/@types/spaces.ts +37 -37
- package/src/@types/state_events.ts +153 -153
- package/src/@types/synapse.ts +40 -40
- package/src/@types/sync.ts +27 -27
- package/src/@types/threepids.ts +29 -29
- package/src/@types/topic.ts +69 -69
- package/src/@types/uia.ts +24 -24
- package/src/NamespacedValue.ts +121 -121
- package/src/ReEmitter.ts +93 -93
- package/src/base64.ts +86 -86
- package/src/briij.ts +4 -0
- package/src/client.ts +183 -10
- package/src/common-crypto/README.md +4 -4
- package/src/common-crypto/key-passphrase.ts +43 -43
- package/src/content-helpers.ts +298 -298
- package/src/content-repo.ts +122 -122
- package/src/crypto/store/base.ts +388 -388
- package/src/crypto/store/indexeddb-crypto-store-backend.ts +655 -655
- package/src/crypto/store/indexeddb-crypto-store.ts +555 -555
- package/src/crypto/store/localStorage-crypto-store.ts +409 -409
- package/src/crypto/store/memory-crypto-store.ts +326 -326
- package/src/crypto-api/CryptoEventHandlerMap.ts +42 -42
- package/src/crypto-api/key-passphrase.ts +58 -58
- package/src/crypto-api/keybackup.ts +114 -114
- package/src/crypto-api/recovery-key.ts +69 -69
- package/src/digest.ts +34 -34
- package/src/extensible_events_v1/ExtensibleEvent.ts +58 -58
- package/src/extensible_events_v1/InvalidEventError.ts +24 -24
- package/src/extensible_events_v1/MessageEvent.ts +143 -143
- package/src/extensible_events_v1/PollEndEvent.ts +97 -97
- package/src/extensible_events_v1/PollResponseEvent.ts +148 -148
- package/src/extensible_events_v1/PollStartEvent.ts +207 -207
- package/src/extensible_events_v1/utilities.ts +35 -35
- package/src/feature.ts +88 -88
- package/src/http-api/method.ts +25 -25
- package/src/http-api/prefix.ts +48 -48
- package/src/indexeddb-helpers.ts +50 -50
- package/src/indexeddb-worker.ts +24 -24
- package/src/matrixrtc/IKeyTransport.ts +63 -63
- package/src/matrixrtc/IMembershipManager.ts +120 -120
- package/src/matrixrtc/LivekitTransport.ts +46 -46
- package/src/matrixrtc/index.ts +24 -24
- package/src/matrixrtc/utils.ts +71 -71
- package/src/models/ToDeviceMessage.ts +38 -38
- package/src/models/device.ts +85 -85
- package/src/models/event-status.ts +39 -39
- package/src/models/invites-ignorer-types.ts +58 -58
- package/src/models/profile-keys.ts +33 -33
- package/src/models/room-summary.ts +78 -78
- package/src/models/search-result.ts +57 -57
- package/src/models/typed-event-emitter.ts +246 -246
- package/src/oidc/authorize.ts +279 -279
- package/src/oidc/error.ts +33 -33
- package/src/oidc/index.ts +33 -33
- package/src/oidc/register.ts +163 -163
- package/src/oidc/tokenRefresher.ts +184 -184
- package/src/oidc/validate.ts +265 -265
- package/src/randomstring.ts +103 -103
- package/src/realtime-callbacks.ts +191 -191
- package/src/receipt-accumulator.ts +189 -189
- package/src/rendezvous/RendezvousChannel.ts +48 -48
- package/src/rendezvous/RendezvousCode.ts +25 -25
- package/src/rendezvous/RendezvousError.ts +26 -26
- package/src/rendezvous/RendezvousFailureReason.ts +49 -49
- package/src/rendezvous/RendezvousIntent.ts +20 -20
- package/src/rendezvous/RendezvousTransport.ts +58 -58
- package/src/rendezvous/channels/MSC4108SecureChannel.ts +270 -270
- package/src/rendezvous/channels/index.ts +17 -17
- package/src/rendezvous/index.ts +25 -25
- package/src/rendezvous/transports/index.ts +17 -17
- package/src/rust-crypto/CrossSigningIdentity.ts +195 -195
- package/src/rust-crypto/OutgoingRequestsManager.ts +170 -170
- package/src/rust-crypto/device-converter.ts +128 -128
- package/src/rust-crypto/secret-storage.ts +60 -60
- package/src/service-types.ts +20 -20
- package/src/store/local-storage-events-emitter.ts +46 -46
- package/src/sync-accumulator.ts +779 -779
- package/src/thread-utils.ts +31 -31
- package/src/types.ts +59 -59
- package/src/utils/decryptAESSecretStorageItem.ts +54 -54
- package/src/utils/encryptAESSecretStorageItem.ts +73 -73
- package/src/utils/internal/deriveKeys.ts +63 -63
- package/src/utils/roomVersion.ts +35 -35
- package/src/version-support.ts +50 -50
- package/src/wallet-recovery.ts +252 -0
- package/src/webrtc/audioContext.ts +44 -44
- package/src/webrtc/callEventTypes.ts +101 -101
- package/src/webrtc/stats/callFeedStatsReporter.ts +91 -91
- package/src/webrtc/stats/callStatsReportGatherer.ts +219 -219
- package/src/webrtc/stats/callStatsReportSummary.ts +30 -30
- package/src/webrtc/stats/connectionStats.ts +47 -47
- package/src/webrtc/stats/connectionStatsBuilder.ts +28 -28
- package/src/webrtc/stats/connectionStatsReportBuilder.ts +140 -140
- package/src/webrtc/stats/groupCallStats.ts +93 -93
- package/src/webrtc/stats/media/mediaSsrcHandler.ts +57 -57
- package/src/webrtc/stats/media/mediaTrackHandler.ts +70 -70
- package/src/webrtc/stats/media/mediaTrackStats.ts +176 -176
- package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +90 -90
- package/src/webrtc/stats/statsReport.ts +133 -133
- package/src/webrtc/stats/statsReportEmitter.ts +49 -49
- package/src/webrtc/stats/trackStatsBuilder.ts +207 -207
- package/src/webrtc/stats/transportStats.ts +26 -26
- package/src/webrtc/stats/transportStatsBuilder.ts +48 -48
- package/src/webrtc/stats/valueFormatter.ts +27 -27
- package/src/xrpl/identity.ts +245 -0
- package/src/xrpl/trust.ts +64 -0
- package/src/xrpl/verification.ts +284 -0
package/src/@types/partials.ts
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright 2021 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 enum Visibility {
|
|
18
|
-
Public = "public",
|
|
19
|
-
Private = "private",
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export enum Preset {
|
|
23
|
-
PrivateChat = "private_chat",
|
|
24
|
-
TrustedPrivateChat = "trusted_private_chat",
|
|
25
|
-
PublicChat = "public_chat",
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export type ResizeMethod = "crop" | "scale";
|
|
29
|
-
|
|
30
|
-
export type IdServerUnbindResult = "no-support" | "success";
|
|
31
|
-
|
|
32
|
-
// Knock and private are reserved keywords which are not yet implemented.
|
|
33
|
-
export enum JoinRule {
|
|
34
|
-
Public = "public",
|
|
35
|
-
Invite = "invite",
|
|
36
|
-
/**
|
|
37
|
-
* @deprecated Reserved keyword. Should not be used. Not yet implemented.
|
|
38
|
-
*/
|
|
39
|
-
Private = "private",
|
|
40
|
-
Knock = "knock",
|
|
41
|
-
Restricted = "restricted",
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export enum RestrictedAllowType {
|
|
45
|
-
RoomMembership = "m.room_membership",
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export enum GuestAccess {
|
|
49
|
-
CanJoin = "can_join",
|
|
50
|
-
Forbidden = "forbidden",
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export enum HistoryVisibility {
|
|
54
|
-
Invited = "invited",
|
|
55
|
-
Joined = "joined",
|
|
56
|
-
Shared = "shared",
|
|
57
|
-
WorldReadable = "world_readable",
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
export interface IUsageLimit {
|
|
61
|
-
// "hs_disabled" is NOT a specced string, but is used in Synapse
|
|
62
|
-
// This is tracked over at https://github.com/matrix-org/synapse/issues/9237
|
|
63
|
-
// eslint-disable-next-line camelcase
|
|
64
|
-
limit_type: "monthly_active_user" | "hs_disabled" | string;
|
|
65
|
-
// eslint-disable-next-line camelcase
|
|
66
|
-
admin_contact?: string;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* A policy name & url in a specific internationalisation
|
|
71
|
-
* @see https://spec.matrix.org/v1.13/identity-service-api/#get_matrixidentityv2terms_response-200_internationalised-policy
|
|
72
|
-
*/
|
|
73
|
-
export interface InternationalisedPolicy {
|
|
74
|
-
name: string;
|
|
75
|
-
url: string;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* A versioned policy with internationalised variants
|
|
80
|
-
* @see https://spec.matrix.org/v1.13/identity-service-api/#get_matrixidentityv2terms_response-200_policy-object
|
|
81
|
-
*/
|
|
82
|
-
export interface Policy {
|
|
83
|
-
/**
|
|
84
|
-
* The version for the policy.
|
|
85
|
-
* There are no requirements on what this might be and could be “alpha”, semantically versioned, or arbitrary.
|
|
86
|
-
*/
|
|
87
|
-
version: string;
|
|
88
|
-
/**
|
|
89
|
-
* The policy information for the specified language.
|
|
90
|
-
* @remarks the type has to include a union with string due to limitations in the type system.
|
|
91
|
-
*/
|
|
92
|
-
[lang: string]: InternationalisedPolicy | string;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Response from the Terms API for Identity servers
|
|
97
|
-
* @see https://spec.matrix.org/v1.13/identity-service-api/#get_matrixidentityv2terms
|
|
98
|
-
*/
|
|
99
|
-
export interface Terms {
|
|
100
|
-
policies: {
|
|
101
|
-
[policyName: string]: Policy;
|
|
102
|
-
};
|
|
103
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2021 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 enum Visibility {
|
|
18
|
+
Public = "public",
|
|
19
|
+
Private = "private",
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export enum Preset {
|
|
23
|
+
PrivateChat = "private_chat",
|
|
24
|
+
TrustedPrivateChat = "trusted_private_chat",
|
|
25
|
+
PublicChat = "public_chat",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export type ResizeMethod = "crop" | "scale";
|
|
29
|
+
|
|
30
|
+
export type IdServerUnbindResult = "no-support" | "success";
|
|
31
|
+
|
|
32
|
+
// Knock and private are reserved keywords which are not yet implemented.
|
|
33
|
+
export enum JoinRule {
|
|
34
|
+
Public = "public",
|
|
35
|
+
Invite = "invite",
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Reserved keyword. Should not be used. Not yet implemented.
|
|
38
|
+
*/
|
|
39
|
+
Private = "private",
|
|
40
|
+
Knock = "knock",
|
|
41
|
+
Restricted = "restricted",
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export enum RestrictedAllowType {
|
|
45
|
+
RoomMembership = "m.room_membership",
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export enum GuestAccess {
|
|
49
|
+
CanJoin = "can_join",
|
|
50
|
+
Forbidden = "forbidden",
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export enum HistoryVisibility {
|
|
54
|
+
Invited = "invited",
|
|
55
|
+
Joined = "joined",
|
|
56
|
+
Shared = "shared",
|
|
57
|
+
WorldReadable = "world_readable",
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface IUsageLimit {
|
|
61
|
+
// "hs_disabled" is NOT a specced string, but is used in Synapse
|
|
62
|
+
// This is tracked over at https://github.com/matrix-org/synapse/issues/9237
|
|
63
|
+
// eslint-disable-next-line camelcase
|
|
64
|
+
limit_type: "monthly_active_user" | "hs_disabled" | string;
|
|
65
|
+
// eslint-disable-next-line camelcase
|
|
66
|
+
admin_contact?: string;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* A policy name & url in a specific internationalisation
|
|
71
|
+
* @see https://spec.matrix.org/v1.13/identity-service-api/#get_matrixidentityv2terms_response-200_internationalised-policy
|
|
72
|
+
*/
|
|
73
|
+
export interface InternationalisedPolicy {
|
|
74
|
+
name: string;
|
|
75
|
+
url: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* A versioned policy with internationalised variants
|
|
80
|
+
* @see https://spec.matrix.org/v1.13/identity-service-api/#get_matrixidentityv2terms_response-200_policy-object
|
|
81
|
+
*/
|
|
82
|
+
export interface Policy {
|
|
83
|
+
/**
|
|
84
|
+
* The version for the policy.
|
|
85
|
+
* There are no requirements on what this might be and could be “alpha”, semantically versioned, or arbitrary.
|
|
86
|
+
*/
|
|
87
|
+
version: string;
|
|
88
|
+
/**
|
|
89
|
+
* The policy information for the specified language.
|
|
90
|
+
* @remarks the type has to include a union with string due to limitations in the type system.
|
|
91
|
+
*/
|
|
92
|
+
[lang: string]: InternationalisedPolicy | string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Response from the Terms API for Identity servers
|
|
97
|
+
* @see https://spec.matrix.org/v1.13/identity-service-api/#get_matrixidentityv2terms
|
|
98
|
+
*/
|
|
99
|
+
export interface Terms {
|
|
100
|
+
policies: {
|
|
101
|
+
[policyName: string]: Policy;
|
|
102
|
+
};
|
|
103
|
+
}
|
package/src/@types/polls.ts
CHANGED
|
@@ -1,120 +1,120 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright 2022 - 2023 The Matrix.org Foundation C.I.C.
|
|
3
|
-
|
|
4
|
-
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
you may not use this file except in compliance with the License.
|
|
6
|
-
You may obtain a copy of the License at
|
|
7
|
-
|
|
8
|
-
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
|
|
10
|
-
Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
See the License for the specific language governing permissions and
|
|
14
|
-
limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import { type EitherAnd, UnstableValue } from "matrix-events-sdk";
|
|
18
|
-
|
|
19
|
-
import {
|
|
20
|
-
type ExtensibleAnyMessageEventContent,
|
|
21
|
-
type REFERENCE_RELATION,
|
|
22
|
-
type RelatesToRelationship,
|
|
23
|
-
type TSNamespace,
|
|
24
|
-
} from "./extensible_events.ts";
|
|
25
|
-
import { type EmptyObject } from "./common.ts";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Identifier for a disclosed poll.
|
|
29
|
-
*/
|
|
30
|
-
export const M_POLL_KIND_DISCLOSED = new UnstableValue("m.poll.disclosed", "org.matrix.msc3381.poll.disclosed");
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Identifier for an undisclosed poll.
|
|
34
|
-
*/
|
|
35
|
-
export const M_POLL_KIND_UNDISCLOSED = new UnstableValue("m.poll.undisclosed", "org.matrix.msc3381.poll.undisclosed");
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Any poll kind.
|
|
39
|
-
*/
|
|
40
|
-
export type PollKind = TSNamespace<typeof M_POLL_KIND_DISCLOSED> | TSNamespace<typeof M_POLL_KIND_UNDISCLOSED> | string;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Known poll kind namespaces.
|
|
44
|
-
*/
|
|
45
|
-
export type KnownPollKind = typeof M_POLL_KIND_DISCLOSED | typeof M_POLL_KIND_UNDISCLOSED;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* The namespaced value for m.poll.start
|
|
49
|
-
*/
|
|
50
|
-
export const M_POLL_START = new UnstableValue("m.poll.start", "org.matrix.msc3381.poll.start");
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* The m.poll.start type within event content
|
|
54
|
-
*/
|
|
55
|
-
export type PollStartSubtype = {
|
|
56
|
-
question: ExtensibleAnyMessageEventContent;
|
|
57
|
-
kind: PollKind;
|
|
58
|
-
max_selections?: number; // default 1, always positive
|
|
59
|
-
answers: PollAnswer[];
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* A poll answer.
|
|
64
|
-
*/
|
|
65
|
-
export type PollAnswer = ExtensibleAnyMessageEventContent & { id: string };
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* The event definition for an m.poll.start event (in content)
|
|
69
|
-
*/
|
|
70
|
-
export type PollStartEvent = EitherAnd<
|
|
71
|
-
{ [M_POLL_START.name]: PollStartSubtype },
|
|
72
|
-
{ [M_POLL_START.altName]: PollStartSubtype }
|
|
73
|
-
>;
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* The content for an m.poll.start event
|
|
77
|
-
*/
|
|
78
|
-
export type PollStartEventContent = PollStartEvent & ExtensibleAnyMessageEventContent;
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* The namespaced value for m.poll.response
|
|
82
|
-
*/
|
|
83
|
-
export const M_POLL_RESPONSE = new UnstableValue("m.poll.response", "org.matrix.msc3381.poll.response");
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* The m.poll.response type within event content
|
|
87
|
-
*/
|
|
88
|
-
export type PollResponseSubtype = {
|
|
89
|
-
answers: string[];
|
|
90
|
-
};
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* The event definition for an m.poll.response event (in content)
|
|
94
|
-
*/
|
|
95
|
-
export type PollResponseEvent = EitherAnd<
|
|
96
|
-
{ [M_POLL_RESPONSE.name]: PollResponseSubtype },
|
|
97
|
-
{ [M_POLL_RESPONSE.altName]: PollResponseSubtype }
|
|
98
|
-
>;
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* The content for an m.poll.response event
|
|
102
|
-
*/
|
|
103
|
-
export type PollResponseEventContent = PollResponseEvent & RelatesToRelationship<typeof REFERENCE_RELATION>;
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* The namespaced value for m.poll.end
|
|
107
|
-
*/
|
|
108
|
-
export const M_POLL_END = new UnstableValue("m.poll.end", "org.matrix.msc3381.poll.end");
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* The event definition for an m.poll.end event (in content)
|
|
112
|
-
*/
|
|
113
|
-
export type PollEndEvent = EitherAnd<{ [M_POLL_END.name]: EmptyObject }, { [M_POLL_END.altName]: EmptyObject }>;
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* The content for an m.poll.end event
|
|
117
|
-
*/
|
|
118
|
-
export type PollEndEventContent = PollEndEvent &
|
|
119
|
-
RelatesToRelationship<typeof REFERENCE_RELATION> &
|
|
120
|
-
ExtensibleAnyMessageEventContent;
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2022 - 2023 The Matrix.org Foundation C.I.C.
|
|
3
|
+
|
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
you may not use this file except in compliance with the License.
|
|
6
|
+
You may obtain a copy of the License at
|
|
7
|
+
|
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
|
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
See the License for the specific language governing permissions and
|
|
14
|
+
limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { type EitherAnd, UnstableValue } from "matrix-events-sdk";
|
|
18
|
+
|
|
19
|
+
import {
|
|
20
|
+
type ExtensibleAnyMessageEventContent,
|
|
21
|
+
type REFERENCE_RELATION,
|
|
22
|
+
type RelatesToRelationship,
|
|
23
|
+
type TSNamespace,
|
|
24
|
+
} from "./extensible_events.ts";
|
|
25
|
+
import { type EmptyObject } from "./common.ts";
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Identifier for a disclosed poll.
|
|
29
|
+
*/
|
|
30
|
+
export const M_POLL_KIND_DISCLOSED = new UnstableValue("m.poll.disclosed", "org.matrix.msc3381.poll.disclosed");
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Identifier for an undisclosed poll.
|
|
34
|
+
*/
|
|
35
|
+
export const M_POLL_KIND_UNDISCLOSED = new UnstableValue("m.poll.undisclosed", "org.matrix.msc3381.poll.undisclosed");
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Any poll kind.
|
|
39
|
+
*/
|
|
40
|
+
export type PollKind = TSNamespace<typeof M_POLL_KIND_DISCLOSED> | TSNamespace<typeof M_POLL_KIND_UNDISCLOSED> | string;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Known poll kind namespaces.
|
|
44
|
+
*/
|
|
45
|
+
export type KnownPollKind = typeof M_POLL_KIND_DISCLOSED | typeof M_POLL_KIND_UNDISCLOSED;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The namespaced value for m.poll.start
|
|
49
|
+
*/
|
|
50
|
+
export const M_POLL_START = new UnstableValue("m.poll.start", "org.matrix.msc3381.poll.start");
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* The m.poll.start type within event content
|
|
54
|
+
*/
|
|
55
|
+
export type PollStartSubtype = {
|
|
56
|
+
question: ExtensibleAnyMessageEventContent;
|
|
57
|
+
kind: PollKind;
|
|
58
|
+
max_selections?: number; // default 1, always positive
|
|
59
|
+
answers: PollAnswer[];
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A poll answer.
|
|
64
|
+
*/
|
|
65
|
+
export type PollAnswer = ExtensibleAnyMessageEventContent & { id: string };
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The event definition for an m.poll.start event (in content)
|
|
69
|
+
*/
|
|
70
|
+
export type PollStartEvent = EitherAnd<
|
|
71
|
+
{ [M_POLL_START.name]: PollStartSubtype },
|
|
72
|
+
{ [M_POLL_START.altName]: PollStartSubtype }
|
|
73
|
+
>;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The content for an m.poll.start event
|
|
77
|
+
*/
|
|
78
|
+
export type PollStartEventContent = PollStartEvent & ExtensibleAnyMessageEventContent;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* The namespaced value for m.poll.response
|
|
82
|
+
*/
|
|
83
|
+
export const M_POLL_RESPONSE = new UnstableValue("m.poll.response", "org.matrix.msc3381.poll.response");
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The m.poll.response type within event content
|
|
87
|
+
*/
|
|
88
|
+
export type PollResponseSubtype = {
|
|
89
|
+
answers: string[];
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The event definition for an m.poll.response event (in content)
|
|
94
|
+
*/
|
|
95
|
+
export type PollResponseEvent = EitherAnd<
|
|
96
|
+
{ [M_POLL_RESPONSE.name]: PollResponseSubtype },
|
|
97
|
+
{ [M_POLL_RESPONSE.altName]: PollResponseSubtype }
|
|
98
|
+
>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* The content for an m.poll.response event
|
|
102
|
+
*/
|
|
103
|
+
export type PollResponseEventContent = PollResponseEvent & RelatesToRelationship<typeof REFERENCE_RELATION>;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* The namespaced value for m.poll.end
|
|
107
|
+
*/
|
|
108
|
+
export const M_POLL_END = new UnstableValue("m.poll.end", "org.matrix.msc3381.poll.end");
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* The event definition for an m.poll.end event (in content)
|
|
112
|
+
*/
|
|
113
|
+
export type PollEndEvent = EitherAnd<{ [M_POLL_END.name]: EmptyObject }, { [M_POLL_END.altName]: EmptyObject }>;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The content for an m.poll.end event
|
|
117
|
+
*/
|
|
118
|
+
export type PollEndEventContent = PollEndEvent &
|
|
119
|
+
RelatesToRelationship<typeof REFERENCE_RELATION> &
|
|
120
|
+
ExtensibleAnyMessageEventContent;
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
|
|
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 enum ReceiptType {
|
|
18
|
-
Read = "m.read",
|
|
19
|
-
FullyRead = "m.fully_read",
|
|
20
|
-
ReadPrivate = "m.read.private",
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export const MAIN_ROOM_TIMELINE = "main";
|
|
24
|
-
|
|
25
|
-
export interface Receipt {
|
|
26
|
-
ts: number;
|
|
27
|
-
thread_id?: string;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface WrappedReceipt {
|
|
31
|
-
eventId: string;
|
|
32
|
-
data: Receipt;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface CachedReceipt {
|
|
36
|
-
type: ReceiptType;
|
|
37
|
-
userId: string;
|
|
38
|
-
data: Receipt;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export type ReceiptCache = Map<string, CachedReceipt[]>;
|
|
42
|
-
|
|
43
|
-
export interface ReceiptContent {
|
|
44
|
-
[eventId: string]: {
|
|
45
|
-
[key in ReceiptType | string]: {
|
|
46
|
-
[userId: string]: Receipt;
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// We will only hold a synthetic receipt if we do not have a real receipt or the synthetic is newer.
|
|
52
|
-
// map: receipt type → user Id → receipt
|
|
53
|
-
export type Receipts = Map<string, Map<string, [real: WrappedReceipt | null, synthetic: WrappedReceipt | null]>>;
|
|
54
|
-
|
|
55
|
-
export type CachedReceiptStructure = {
|
|
56
|
-
eventId: string;
|
|
57
|
-
receiptType: string | ReceiptType;
|
|
58
|
-
userId: string;
|
|
59
|
-
receipt: Receipt;
|
|
60
|
-
synthetic: boolean;
|
|
61
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
|
|
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 enum ReceiptType {
|
|
18
|
+
Read = "m.read",
|
|
19
|
+
FullyRead = "m.fully_read",
|
|
20
|
+
ReadPrivate = "m.read.private",
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const MAIN_ROOM_TIMELINE = "main";
|
|
24
|
+
|
|
25
|
+
export interface Receipt {
|
|
26
|
+
ts: number;
|
|
27
|
+
thread_id?: string;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface WrappedReceipt {
|
|
31
|
+
eventId: string;
|
|
32
|
+
data: Receipt;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface CachedReceipt {
|
|
36
|
+
type: ReceiptType;
|
|
37
|
+
userId: string;
|
|
38
|
+
data: Receipt;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export type ReceiptCache = Map<string, CachedReceipt[]>;
|
|
42
|
+
|
|
43
|
+
export interface ReceiptContent {
|
|
44
|
+
[eventId: string]: {
|
|
45
|
+
[key in ReceiptType | string]: {
|
|
46
|
+
[userId: string]: Receipt;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// We will only hold a synthetic receipt if we do not have a real receipt or the synthetic is newer.
|
|
52
|
+
// map: receipt type → user Id → receipt
|
|
53
|
+
export type Receipts = Map<string, Map<string, [real: WrappedReceipt | null, synthetic: WrappedReceipt | null]>>;
|
|
54
|
+
|
|
55
|
+
export type CachedReceiptStructure = {
|
|
56
|
+
eventId: string;
|
|
57
|
+
receiptType: string | ReceiptType;
|
|
58
|
+
userId: string;
|
|
59
|
+
receipt: Receipt;
|
|
60
|
+
synthetic: boolean;
|
|
61
|
+
};
|