@textrp/briij-js-sdk 41.0.0 → 42.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 +47 -46
- 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 +19 -1
- package/lib/@types/auth.d.ts.map +1 -1
- package/lib/@types/auth.js +55 -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 +27 -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 +3 -0
- package/lib/briij.d.ts.map +1 -1
- package/lib/briij.js +3 -0
- package/lib/briij.js.map +1 -1
- package/lib/client.d.ts +18 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +166 -103
- 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/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 +128 -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 +280 -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 +476 -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 +3 -0
- package/src/client.ts +90 -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/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/client.ts
CHANGED
|
@@ -198,6 +198,8 @@ import {
|
|
|
198
198
|
type LoginResponse,
|
|
199
199
|
type LoginTokenPostResponse,
|
|
200
200
|
type SSOAction,
|
|
201
|
+
XRPL_WALLET_LOGIN_TYPE,
|
|
202
|
+
type XrplWalletChallengePayload,
|
|
201
203
|
} from "./@types/auth.ts";
|
|
202
204
|
import { TypedEventEmitter } from "./models/typed-event-emitter.ts";
|
|
203
205
|
import { MAIN_ROOM_TIMELINE, ReceiptType } from "./@types/read_receipts.ts";
|
|
@@ -246,6 +248,13 @@ import {
|
|
|
246
248
|
type OidcClientConfig,
|
|
247
249
|
validateAuthMetadataAndKeys,
|
|
248
250
|
} from "./oidc/index.ts";
|
|
251
|
+
import { configureXrplIdentityMinting, mintSoulboundIdentityNFT } from "./xrpl/identity.ts";
|
|
252
|
+
import {
|
|
253
|
+
XRPL_VERIFIED_EVENT,
|
|
254
|
+
XRPL_VERIFY_ACCEPT_EVENT,
|
|
255
|
+
XRPL_VERIFY_REQUEST_EVENT,
|
|
256
|
+
} from "./xrpl/verification.ts";
|
|
257
|
+
import { configureXrplTrust } from "./xrpl/trust.ts";
|
|
249
258
|
import { type EmptyObject } from "./@types/common.ts";
|
|
250
259
|
import { UnsupportedDelayedEventsEndpointError, UnsupportedStickyEventsEndpointError } from "./errors.ts";
|
|
251
260
|
import { type Transport } from "./matrixrtc/index.ts";
|
|
@@ -1100,6 +1109,9 @@ export enum ClientEvent {
|
|
|
1100
1109
|
*/
|
|
1101
1110
|
ClientWellKnown = "WellKnown.client",
|
|
1102
1111
|
ReceivedVoipEvent = "received_voip_event",
|
|
1112
|
+
XrplVerificationRequest = "xrpl.verification.request",
|
|
1113
|
+
XrplVerificationAccept = "xrpl.verification.accept",
|
|
1114
|
+
XrplVerified = "xrpl.verification.verified",
|
|
1103
1115
|
TurnServers = "turnServers",
|
|
1104
1116
|
TurnServersError = "turnServers.error",
|
|
1105
1117
|
}
|
|
@@ -1170,6 +1182,9 @@ export type ClientEventHandlerMap = {
|
|
|
1170
1182
|
[ClientEvent.SyncUnexpectedError]: (error: Error) => void;
|
|
1171
1183
|
[ClientEvent.ClientWellKnown]: (data: IClientWellKnown) => void;
|
|
1172
1184
|
[ClientEvent.ReceivedVoipEvent]: (event: BriijEvent) => void;
|
|
1185
|
+
[ClientEvent.XrplVerificationRequest]: (event: BriijEvent) => void;
|
|
1186
|
+
[ClientEvent.XrplVerificationAccept]: (event: BriijEvent) => void;
|
|
1187
|
+
[ClientEvent.XrplVerified]: (event: BriijEvent) => void;
|
|
1173
1188
|
[ClientEvent.TurnServers]: (servers: ITurnServer[]) => void;
|
|
1174
1189
|
[ClientEvent.TurnServersError]: (error: Error, fatal: boolean) => void;
|
|
1175
1190
|
} & RoomEventHandlerMap &
|
|
@@ -1394,6 +1409,7 @@ export class BriijClient extends TypedEventEmitter<EmittedEvents, ClientEventHan
|
|
|
1394
1409
|
this.serverCapabilitiesService = new ServerCapabilities(this.logger, this.http);
|
|
1395
1410
|
|
|
1396
1411
|
this.on(ClientEvent.Sync, this.fixupRoomNotifications);
|
|
1412
|
+
this.on(ClientEvent.Event, this.dispatchXrplVerificationEvents);
|
|
1397
1413
|
|
|
1398
1414
|
this.timelineSupport = Boolean(opts.timelineSupport);
|
|
1399
1415
|
|
|
@@ -1440,6 +1456,22 @@ export class BriijClient extends TypedEventEmitter<EmittedEvents, ClientEventHan
|
|
|
1440
1456
|
return this._store;
|
|
1441
1457
|
}
|
|
1442
1458
|
|
|
1459
|
+
private readonly dispatchXrplVerificationEvents = (event: BriijEvent): void => {
|
|
1460
|
+
if (event.getType() === XRPL_VERIFY_REQUEST_EVENT) {
|
|
1461
|
+
this.emit(ClientEvent.XrplVerificationRequest, event);
|
|
1462
|
+
return;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
if (event.getType() === XRPL_VERIFY_ACCEPT_EVENT) {
|
|
1466
|
+
this.emit(ClientEvent.XrplVerificationAccept, event);
|
|
1467
|
+
return;
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
if (event.getType() === XRPL_VERIFIED_EVENT) {
|
|
1471
|
+
this.emit(ClientEvent.XrplVerified, event);
|
|
1472
|
+
}
|
|
1473
|
+
};
|
|
1474
|
+
|
|
1443
1475
|
/**
|
|
1444
1476
|
* High level helper method to begin syncing and poll for new events. To listen for these
|
|
1445
1477
|
* events, add a listener for {@link ClientEvent.Event}
|
|
@@ -6642,19 +6674,38 @@ export class BriijClient extends TypedEventEmitter<EmittedEvents, ClientEventHan
|
|
|
6642
6674
|
* returned credentials. Instead, call {@link loginRequest} and create a new `BriijClient` instance using the
|
|
6643
6675
|
* results. See https://github.com/matrix-org/briij-js-sdk/issues/4502.
|
|
6644
6676
|
*/
|
|
6645
|
-
public login(loginType: LoginRequest["type"], data: Omit<LoginRequest, "type">): Promise<LoginResponse> {
|
|
6646
|
-
|
|
6677
|
+
public async login(loginType: LoginRequest["type"], data: Omit<LoginRequest, "type">): Promise<LoginResponse> {
|
|
6678
|
+
const response = await this.loginRequest({
|
|
6647
6679
|
...data,
|
|
6648
6680
|
type: loginType,
|
|
6649
|
-
}).then((response) => {
|
|
6650
|
-
if (response.access_token && response.user_id) {
|
|
6651
|
-
this.http.opts.accessToken = response.access_token;
|
|
6652
|
-
this.credentials = {
|
|
6653
|
-
userId: response.user_id,
|
|
6654
|
-
};
|
|
6655
|
-
}
|
|
6656
|
-
return response;
|
|
6657
6681
|
});
|
|
6682
|
+
|
|
6683
|
+
if (response.access_token && response.user_id) {
|
|
6684
|
+
this.http.opts.accessToken = response.access_token;
|
|
6685
|
+
this.credentials = {
|
|
6686
|
+
userId: response.user_id,
|
|
6687
|
+
};
|
|
6688
|
+
configureXrplTrust({
|
|
6689
|
+
homeserverBaseUrl: this.baseUrl,
|
|
6690
|
+
accessToken: response.access_token,
|
|
6691
|
+
});
|
|
6692
|
+
}
|
|
6693
|
+
|
|
6694
|
+
// After Xaman-backed SSO login, mint once and persist identity metadata in account_data.
|
|
6695
|
+
if (loginType === "m.login.token" && response.access_token && response.user_id) {
|
|
6696
|
+
configureXrplIdentityMinting({
|
|
6697
|
+
homeserverBaseUrl: this.baseUrl,
|
|
6698
|
+
accessToken: response.access_token,
|
|
6699
|
+
});
|
|
6700
|
+
|
|
6701
|
+
try {
|
|
6702
|
+
await mintSoulboundIdentityNFT(response.user_id);
|
|
6703
|
+
} catch (error) {
|
|
6704
|
+
logger.warn("XRPL identity NFT minting skipped/failed", error);
|
|
6705
|
+
}
|
|
6706
|
+
}
|
|
6707
|
+
|
|
6708
|
+
return response;
|
|
6658
6709
|
}
|
|
6659
6710
|
|
|
6660
6711
|
/**
|
|
@@ -6672,6 +6723,35 @@ export class BriijClient extends TypedEventEmitter<EmittedEvents, ClientEventHan
|
|
|
6672
6723
|
});
|
|
6673
6724
|
}
|
|
6674
6725
|
|
|
6726
|
+
/**
|
|
6727
|
+
* @param user - Matrix user ID localpart or fully qualified MXID.
|
|
6728
|
+
* @param walletAddress - XRPL/Xahau classic wallet address.
|
|
6729
|
+
* @param signature - Hex signature for the challenge message.
|
|
6730
|
+
* @param challenge - Signed challenge payload.
|
|
6731
|
+
* @param network - Ledger network identifier. Defaults to `xrpl`.
|
|
6732
|
+
* @returns Promise which resolves to a LoginResponse object.
|
|
6733
|
+
* @returns Rejects: with an error response.
|
|
6734
|
+
*/
|
|
6735
|
+
public loginWithXrplWallet(
|
|
6736
|
+
user: string,
|
|
6737
|
+
walletAddress: string,
|
|
6738
|
+
signature: string,
|
|
6739
|
+
challenge: string | XrplWalletChallengePayload,
|
|
6740
|
+
network = "xrpl",
|
|
6741
|
+
): Promise<LoginResponse> {
|
|
6742
|
+
return this.login(XRPL_WALLET_LOGIN_TYPE, {
|
|
6743
|
+
user: user,
|
|
6744
|
+
identifier: {
|
|
6745
|
+
type: "m.id.user",
|
|
6746
|
+
user: user,
|
|
6747
|
+
},
|
|
6748
|
+
wallet_address: walletAddress,
|
|
6749
|
+
signature: signature,
|
|
6750
|
+
challenge: typeof challenge === "string" ? challenge : JSON.stringify(challenge),
|
|
6751
|
+
network: network,
|
|
6752
|
+
});
|
|
6753
|
+
}
|
|
6754
|
+
|
|
6675
6755
|
/**
|
|
6676
6756
|
* @param redirectUrl - The URL to redirect to after the HS
|
|
6677
6757
|
* authenticates with CAS.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
This directory contains functionality which is common to both the legacy (libolm-based) crypto implementation,
|
|
2
|
-
and the new rust-based implementation.
|
|
3
|
-
|
|
4
|
-
It is an internal module, and is _not_ directly exposed to applications.
|
|
1
|
+
This directory contains functionality which is common to both the legacy (libolm-based) crypto implementation,
|
|
2
|
+
and the new rust-based implementation.
|
|
3
|
+
|
|
4
|
+
It is an internal module, and is _not_ directly exposed to applications.
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2024 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 { deriveRecoveryKeyFromPassphrase } from "../crypto-api/index.ts";
|
|
18
|
-
|
|
19
|
-
/* eslint-disable camelcase */
|
|
20
|
-
interface IAuthData {
|
|
21
|
-
private_key_salt?: string;
|
|
22
|
-
private_key_iterations?: number;
|
|
23
|
-
private_key_bits?: number;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Derive a backup key from a passphrase using the salt and iterations from the auth data.
|
|
28
|
-
* @param authData - The auth data containing the salt and iterations
|
|
29
|
-
* @param passphrase - The passphrase to derive the key from
|
|
30
|
-
* @deprecated Deriving a backup key from a passphrase is not part of the matrix spec. Instead, a random key is generated and stored/shared via 4S.
|
|
31
|
-
*/
|
|
32
|
-
export function keyFromAuthData(authData: IAuthData, passphrase: string): Promise<Uint8Array> {
|
|
33
|
-
if (!authData.private_key_salt || !authData.private_key_iterations) {
|
|
34
|
-
throw new Error("Salt and/or iterations not found: " + "this backup cannot be restored with a passphrase");
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return deriveRecoveryKeyFromPassphrase(
|
|
38
|
-
passphrase,
|
|
39
|
-
authData.private_key_salt,
|
|
40
|
-
authData.private_key_iterations,
|
|
41
|
-
authData.private_key_bits,
|
|
42
|
-
);
|
|
43
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2024 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 { deriveRecoveryKeyFromPassphrase } from "../crypto-api/index.ts";
|
|
18
|
+
|
|
19
|
+
/* eslint-disable camelcase */
|
|
20
|
+
interface IAuthData {
|
|
21
|
+
private_key_salt?: string;
|
|
22
|
+
private_key_iterations?: number;
|
|
23
|
+
private_key_bits?: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Derive a backup key from a passphrase using the salt and iterations from the auth data.
|
|
28
|
+
* @param authData - The auth data containing the salt and iterations
|
|
29
|
+
* @param passphrase - The passphrase to derive the key from
|
|
30
|
+
* @deprecated Deriving a backup key from a passphrase is not part of the matrix spec. Instead, a random key is generated and stored/shared via 4S.
|
|
31
|
+
*/
|
|
32
|
+
export function keyFromAuthData(authData: IAuthData, passphrase: string): Promise<Uint8Array> {
|
|
33
|
+
if (!authData.private_key_salt || !authData.private_key_iterations) {
|
|
34
|
+
throw new Error("Salt and/or iterations not found: " + "this backup cannot be restored with a passphrase");
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return deriveRecoveryKeyFromPassphrase(
|
|
38
|
+
passphrase,
|
|
39
|
+
authData.private_key_salt,
|
|
40
|
+
authData.private_key_iterations,
|
|
41
|
+
authData.private_key_bits,
|
|
42
|
+
);
|
|
43
|
+
}
|