matrix-js-sdk 41.6.0 → 41.7.0-rc.3

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.
Files changed (171) hide show
  1. package/lib/ReEmitter.js +1 -1
  2. package/lib/ReEmitter.js.map +1 -1
  3. package/lib/ToDeviceMessageQueue.js +2 -2
  4. package/lib/ToDeviceMessageQueue.js.map +1 -1
  5. package/lib/autodiscovery.js +1 -0
  6. package/lib/autodiscovery.js.map +1 -1
  7. package/lib/client.d.ts.map +1 -1
  8. package/lib/client.js +77 -3
  9. package/lib/client.js.map +1 -1
  10. package/lib/common-crypto/CryptoBackend.js +2 -0
  11. package/lib/common-crypto/CryptoBackend.js.map +1 -1
  12. package/lib/crypto/store/indexeddb-crypto-store-backend.js +1 -1
  13. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
  14. package/lib/crypto/store/indexeddb-crypto-store.js +2 -0
  15. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
  16. package/lib/crypto-api/index.js +58 -58
  17. package/lib/crypto-api/index.js.map +1 -1
  18. package/lib/embedded.js +13 -9
  19. package/lib/embedded.js.map +1 -1
  20. package/lib/extensible_events_v1/MessageEvent.js +15 -15
  21. package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
  22. package/lib/extensible_events_v1/PollEndEvent.js +8 -8
  23. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
  24. package/lib/extensible_events_v1/PollResponseEvent.js +1 -0
  25. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
  26. package/lib/extensible_events_v1/PollStartEvent.js +28 -28
  27. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
  28. package/lib/filter.js +3 -1
  29. package/lib/filter.js.map +1 -1
  30. package/lib/http-api/errors.js +16 -16
  31. package/lib/http-api/errors.js.map +1 -1
  32. package/lib/http-api/fetch.js +2 -1
  33. package/lib/http-api/fetch.js.map +1 -1
  34. package/lib/http-api/refresh.js +7 -6
  35. package/lib/http-api/refresh.js.map +1 -1
  36. package/lib/http-api/utils.d.ts.map +1 -1
  37. package/lib/http-api/utils.js +1 -5
  38. package/lib/http-api/utils.js.map +1 -1
  39. package/lib/interactive-auth.js +11 -1
  40. package/lib/interactive-auth.js.map +1 -1
  41. package/lib/logger.js +2 -0
  42. package/lib/logger.js.map +1 -1
  43. package/lib/matrixrtc/CallMembership.js +6 -5
  44. package/lib/matrixrtc/CallMembership.js.map +1 -1
  45. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
  46. package/lib/matrixrtc/MatrixRTCSession.js +15 -5
  47. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  48. package/lib/matrixrtc/MatrixRTCSessionManager.js +3 -2
  49. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
  50. package/lib/matrixrtc/MembershipManager.js +24 -17
  51. package/lib/matrixrtc/MembershipManager.js.map +1 -1
  52. package/lib/matrixrtc/MembershipManagerActionScheduler.js +2 -1
  53. package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -1
  54. package/lib/matrixrtc/RTCEncryptionManager.js +6 -4
  55. package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
  56. package/lib/matrixrtc/ToDeviceKeyTransport.js +4 -4
  57. package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -1
  58. package/lib/models/MSC3089TreeSpace.js +2 -1
  59. package/lib/models/MSC3089TreeSpace.js.map +1 -1
  60. package/lib/models/beacon.js +8 -4
  61. package/lib/models/beacon.js.map +1 -1
  62. package/lib/models/device.js +7 -0
  63. package/lib/models/device.js.map +1 -1
  64. package/lib/models/event-context.js +2 -1
  65. package/lib/models/event-context.js.map +1 -1
  66. package/lib/models/event-timeline-set.js +7 -1
  67. package/lib/models/event-timeline-set.js.map +1 -1
  68. package/lib/models/event-timeline.js +5 -1
  69. package/lib/models/event-timeline.js.map +1 -1
  70. package/lib/models/event.js +35 -11
  71. package/lib/models/event.js.map +1 -1
  72. package/lib/models/poll.js +7 -3
  73. package/lib/models/poll.js.map +1 -1
  74. package/lib/models/related-relations.js +2 -0
  75. package/lib/models/related-relations.js.map +1 -1
  76. package/lib/models/relations-container.js +2 -2
  77. package/lib/models/relations-container.js.map +1 -1
  78. package/lib/models/relations.js +4 -3
  79. package/lib/models/relations.js.map +1 -1
  80. package/lib/models/room-member.js +24 -2
  81. package/lib/models/room-member.js.map +1 -1
  82. package/lib/models/room-receipts.js +19 -12
  83. package/lib/models/room-receipts.js.map +1 -1
  84. package/lib/models/room-state.js +2 -2
  85. package/lib/models/room-state.js.map +1 -1
  86. package/lib/models/room-sticky-events.js +1 -0
  87. package/lib/models/room-sticky-events.js.map +1 -1
  88. package/lib/models/room.js +35 -4
  89. package/lib/models/room.js.map +1 -1
  90. package/lib/models/thread.js +46 -2
  91. package/lib/models/thread.js.map +1 -1
  92. package/lib/models/user.js +20 -1
  93. package/lib/models/user.js.map +1 -1
  94. package/lib/oidc/tokenRefresher.js +11 -8
  95. package/lib/oidc/tokenRefresher.js.map +1 -1
  96. package/lib/pushprocessor.js +1 -1
  97. package/lib/pushprocessor.js.map +1 -1
  98. package/lib/rendezvous/MSC4108SignInWithQR.js +6 -1
  99. package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -1
  100. package/lib/rendezvous/channels/MSC4108SecureChannel.js +3 -1
  101. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
  102. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +8 -0
  103. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
  104. package/lib/room-hierarchy.js +8 -4
  105. package/lib/room-hierarchy.js.map +1 -1
  106. package/lib/rust-crypto/DehydratedDeviceManager.js +3 -2
  107. package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -1
  108. package/lib/rust-crypto/KeyClaimManager.js +2 -1
  109. package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
  110. package/lib/rust-crypto/OutgoingRequestsManager.js +12 -12
  111. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
  112. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +5 -3
  113. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -1
  114. package/lib/rust-crypto/RoomEncryptor.js +6 -6
  115. package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
  116. package/lib/rust-crypto/backup.js +6 -4
  117. package/lib/rust-crypto/backup.js.map +1 -1
  118. package/lib/rust-crypto/rust-crypto.js +18 -10
  119. package/lib/rust-crypto/rust-crypto.js.map +1 -1
  120. package/lib/rust-crypto/verification.js +9 -7
  121. package/lib/rust-crypto/verification.js.map +1 -1
  122. package/lib/scheduler.js +2 -2
  123. package/lib/scheduler.js.map +1 -1
  124. package/lib/serverCapabilities.js +5 -2
  125. package/lib/serverCapabilities.js.map +1 -1
  126. package/lib/sliding-sync-sdk.js +6 -3
  127. package/lib/sliding-sync-sdk.js.map +1 -1
  128. package/lib/sliding-sync.js +9 -4
  129. package/lib/sliding-sync.js.map +1 -1
  130. package/lib/store/indexeddb-local-backend.js +5 -1
  131. package/lib/store/indexeddb-local-backend.js.map +1 -1
  132. package/lib/store/indexeddb-remote-backend.js +7 -6
  133. package/lib/store/indexeddb-remote-backend.js.map +1 -1
  134. package/lib/store/indexeddb-store-worker.js +2 -1
  135. package/lib/store/indexeddb-store-worker.js.map +1 -1
  136. package/lib/store/indexeddb.js +1 -0
  137. package/lib/store/indexeddb.js.map +1 -1
  138. package/lib/store/memory.js +4 -0
  139. package/lib/store/memory.js.map +1 -1
  140. package/lib/sync-accumulator.js +1 -1
  141. package/lib/sync-accumulator.js.map +1 -1
  142. package/lib/sync.d.ts.map +1 -1
  143. package/lib/sync.js +32 -16
  144. package/lib/sync.js.map +1 -1
  145. package/lib/timeline-window.js +6 -2
  146. package/lib/timeline-window.js.map +1 -1
  147. package/lib/webrtc/call.js +42 -6
  148. package/lib/webrtc/call.js.map +1 -1
  149. package/lib/webrtc/callEventHandler.js +5 -0
  150. package/lib/webrtc/callEventHandler.js.map +1 -1
  151. package/lib/webrtc/callFeed.js +15 -0
  152. package/lib/webrtc/callFeed.js.map +1 -1
  153. package/lib/webrtc/groupCall.js +24 -8
  154. package/lib/webrtc/groupCall.js.map +1 -1
  155. package/lib/webrtc/groupCallEventHandler.js +1 -1
  156. package/lib/webrtc/groupCallEventHandler.js.map +1 -1
  157. package/lib/webrtc/mediaHandler.js +7 -3
  158. package/lib/webrtc/mediaHandler.js.map +1 -1
  159. package/lib/webrtc/stats/callStatsReportGatherer.js +5 -2
  160. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  161. package/lib/webrtc/stats/groupCallStats.js +4 -3
  162. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  163. package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
  164. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  165. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +1 -1
  166. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  167. package/package.json +125 -138
  168. package/src/client.ts +4 -1
  169. package/src/http-api/utils.ts +4 -9
  170. package/src/matrixrtc/MatrixRTCSession.ts +4 -3
  171. package/src/sync.ts +5 -1
package/lib/client.js CHANGED
@@ -322,26 +322,70 @@ var SSO_ACTION_PARAM = new UnstableValue("action", "org.matrix.msc3824.action");
322
322
  * as it specifies 'sensible' defaults for these modules.
323
323
  */
324
324
  export class MatrixClient extends TypedEventEmitter {
325
- // A manager for determining which invites should be ignored.
326
-
327
325
  constructor(opts) {
328
326
  var _opts$logger, _opts$usingExternalCr, _this, _opts$disableVoip, _opts$enableEncrypted, _opts$cryptoCallbacks;
329
327
  // If a custom logger is provided, use it. Otherwise, default to the global
330
328
  // one in logger.ts.
331
329
  super();
332
330
  _this = this;
331
+ _defineProperty(this, "logger", void 0);
333
332
  _defineProperty(this, "reEmitter", new TypedReEmitter(this));
334
333
  _defineProperty(this, "olmVersion", null);
335
334
  // populated after initLegacyCrypto
336
335
  _defineProperty(this, "usingExternalCrypto", false);
336
+ _defineProperty(this, "_store", void 0);
337
+ _defineProperty(this, "deviceId", void 0);
338
+ _defineProperty(this, "credentials", void 0);
339
+ /**
340
+ * Encryption key used for encrypting sensitive data (such as e2ee keys) in storage.
341
+ *
342
+ * As supplied in the constructor via {@link IMatrixClientCreateOpts#pickleKey}.
343
+ * Used for migration from the legacy crypto to the rust crypto
344
+ */
345
+ _defineProperty(this, "legacyPickleKey", void 0);
346
+ _defineProperty(this, "scheduler", void 0);
337
347
  _defineProperty(this, "clientRunning", false);
338
348
  _defineProperty(this, "timelineSupport", false);
339
349
  _defineProperty(this, "urlPreviewCache", {});
350
+ _defineProperty(this, "identityServer", void 0);
351
+ _defineProperty(this, "http", void 0);
352
+ // XXX: Intended private, used in code.
353
+ _defineProperty(this, "cryptoBackend", void 0);
354
+ // one of crypto or rustCrypto
355
+ /**
356
+ * Support MSC4362: Simplified Encrypted State Events.
357
+ *
358
+ * The client must be recreated for changes to this setting to take effect
359
+ * reliably.
360
+ *
361
+ * When this setting is true, if we find a state event that is encrypted
362
+ * (within a room that supports encrypted state), we will attempt to decrypt
363
+ * it as specified in MSC4362. If the user was in the room at the time an
364
+ * encrypted state event was received (meaning we have the key), even if
365
+ * this setting was set to false at the time it was received, recreating the
366
+ * client with this setting set to true will allow decrypting that event.
367
+ *
368
+ * When this setting is false, any state event that is encrypted will not be
369
+ * decrypted, meaning it will have no effect. This matched the behaviour of
370
+ * a client that does not support MSC4362.
371
+ */
372
+ _defineProperty(this, "enableEncryptedStateEvents", void 0);
373
+ _defineProperty(this, "cryptoCallbacks", void 0);
374
+ // XXX: Intended private, used in code.
375
+ _defineProperty(this, "callEventHandler", void 0);
376
+ // XXX: Intended private, used in code.
377
+ _defineProperty(this, "groupCallEventHandler", void 0);
340
378
  _defineProperty(this, "supportsCallTransfer", false);
341
379
  // XXX: Intended private, used in code.
342
380
  _defineProperty(this, "forceTURN", false);
343
381
  // XXX: Intended private, used in code.
344
382
  _defineProperty(this, "iceCandidatePoolSize", 0);
383
+ // XXX: Intended private, used in code.
384
+ _defineProperty(this, "idBaseUrl", void 0);
385
+ _defineProperty(this, "baseUrl", void 0);
386
+ _defineProperty(this, "isVoipWithNoMediaAllowed", void 0);
387
+ _defineProperty(this, "disableVoip", void 0);
388
+ _defineProperty(this, "useLivekitForGroupCalls", void 0);
345
389
  // Note: these are all `protected` to let downstream consumers make mistakes if they want to.
346
390
  // We don't technically support this usage, but have reasons to do this.
347
391
  _defineProperty(this, "canSupportVoip", false);
@@ -349,15 +393,35 @@ export class MatrixClient extends TypedEventEmitter {
349
393
  _defineProperty(this, "isGuestAccount", false);
350
394
  _defineProperty(this, "ongoingScrollbacks", {});
351
395
  _defineProperty(this, "notifTimelineSet", null);
396
+ /**
397
+ * Legacy crypto store used for migration from the legacy crypto to the rust crypto
398
+ * @private
399
+ */
400
+ _defineProperty(this, "legacyCryptoStore", void 0);
401
+ _defineProperty(this, "verificationMethods", void 0);
352
402
  _defineProperty(this, "fallbackICEServerAllowed", false);
403
+ _defineProperty(this, "syncApi", void 0);
404
+ _defineProperty(this, "roomNameGenerator", void 0);
405
+ _defineProperty(this, "pushRules", void 0);
406
+ _defineProperty(this, "syncLeftRoomsPromise", void 0);
353
407
  _defineProperty(this, "syncedLeftRooms", false);
408
+ _defineProperty(this, "clientOpts", void 0);
409
+ _defineProperty(this, "clientWellKnownIntervalID", void 0);
410
+ _defineProperty(this, "canResetTimelineCallback", void 0);
354
411
  _defineProperty(this, "canSupport", new Map());
355
412
  // The pushprocessor caches useful things, so keep one and re-use it
356
413
  _defineProperty(this, "pushProcessor", new PushProcessor(this));
414
+ // Promise to a response of the server's /versions response
415
+ // TODO: This should expire: https://github.com/matrix-org/matrix-js-sdk/issues/1020
416
+ _defineProperty(this, "serverVersionsPromise", void 0);
417
+ _defineProperty(this, "clientWellKnown", void 0);
418
+ _defineProperty(this, "clientWellKnownPromise", void 0);
357
419
  _defineProperty(this, "turnServers", []);
358
420
  _defineProperty(this, "turnServersExpiry", 0);
421
+ _defineProperty(this, "checkTurnServersIntervalID", void 0);
359
422
  _defineProperty(this, "txnCtr", 0);
360
423
  _defineProperty(this, "mediaHandler", new MediaHandler(this));
424
+ _defineProperty(this, "sessionId", void 0);
361
425
  /** IDs of events which are currently being encrypted.
362
426
  *
363
427
  * This is part of the cancellation mechanism: if the event is no longer listed here when encryption completes,
@@ -365,6 +429,13 @@ export class MatrixClient extends TypedEventEmitter {
365
429
  */
366
430
  _defineProperty(this, "eventsBeingEncrypted", new Set());
367
431
  _defineProperty(this, "useE2eForGroupCall", true);
432
+ _defineProperty(this, "toDeviceMessageQueue", void 0);
433
+ _defineProperty(this, "livekitServiceURL", void 0);
434
+ _defineProperty(this, "_secretStorage", void 0);
435
+ // A manager for determining which invites should be ignored.
436
+ _defineProperty(this, "ignoredInvites", void 0);
437
+ _defineProperty(this, "matrixRTC", void 0);
438
+ _defineProperty(this, "serverCapabilitiesService", void 0);
368
439
  _defineProperty(this, "startCallEventHandler", () => {
369
440
  if (this.isInitialSyncComplete()) {
370
441
  if (supportsMatrixCall()) {
@@ -2503,7 +2574,10 @@ export class MatrixClient extends TypedEventEmitter {
2503
2574
  $delayId: delayId,
2504
2575
  $action: action
2505
2576
  });
2506
- return yield _this25.http.request(Method.Post, path, undefined, undefined, _objectSpread(_objectSpread({}, requestOptions), {}, {
2577
+ // Although this endpoint supports being used without authentication,
2578
+ // do authenticate here to make ratelimiting apply per user instead of per source IP address,
2579
+ // if the server supports that
2580
+ return yield _this25.http.authedRequest(Method.Post, path, undefined, undefined, _objectSpread(_objectSpread({}, requestOptions), {}, {
2507
2581
  prefix: "".concat(ClientPrefix.Unstable, "/").concat(UNSTABLE_MSC4140_DELAYED_EVENTS)
2508
2582
  }));
2509
2583
  } catch (e) {