matrix-js-sdk 28.1.0 → 28.2.0-rc.1

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 (287) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/dist/browser-matrix.js +1458 -391
  3. package/dist/browser-matrix.js.map +32 -22
  4. package/dist/browser-matrix.min.js +5 -5
  5. package/dist/browser-matrix.min.js.map +1 -1
  6. package/git-revision.txt +1 -1
  7. package/lib/ReEmitter.js +1 -1
  8. package/lib/ReEmitter.js.map +1 -1
  9. package/lib/ToDeviceMessageQueue.js +1 -1
  10. package/lib/ToDeviceMessageQueue.js.map +1 -1
  11. package/lib/autodiscovery.js +17 -18
  12. package/lib/autodiscovery.js.map +1 -1
  13. package/lib/client.d.ts +14 -0
  14. package/lib/client.d.ts.map +1 -1
  15. package/lib/client.js +59 -85
  16. package/lib/client.js.map +1 -1
  17. package/lib/common-crypto/CryptoBackend.d.ts +41 -0
  18. package/lib/common-crypto/CryptoBackend.d.ts.map +1 -1
  19. package/lib/common-crypto/CryptoBackend.js.map +1 -1
  20. package/lib/common-crypto/base64.d.ts +22 -0
  21. package/lib/common-crypto/base64.d.ts.map +1 -0
  22. package/lib/common-crypto/base64.js +55 -0
  23. package/lib/common-crypto/base64.js.map +1 -0
  24. package/lib/content-helpers.js +16 -16
  25. package/lib/content-helpers.js.map +1 -1
  26. package/lib/crypto/CrossSigning.js +3 -3
  27. package/lib/crypto/CrossSigning.js.map +1 -1
  28. package/lib/crypto/DeviceList.js +11 -14
  29. package/lib/crypto/DeviceList.js.map +1 -1
  30. package/lib/crypto/EncryptionSetup.js +3 -10
  31. package/lib/crypto/EncryptionSetup.js.map +1 -1
  32. package/lib/crypto/OlmDevice.js +1 -1
  33. package/lib/crypto/OlmDevice.js.map +1 -1
  34. package/lib/crypto/OutgoingRoomKeyRequestManager.js +19 -20
  35. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +1 -1
  36. package/lib/crypto/RoomList.js +1 -1
  37. package/lib/crypto/RoomList.js.map +1 -1
  38. package/lib/crypto/SecretSharing.js +1 -1
  39. package/lib/crypto/SecretSharing.js.map +1 -1
  40. package/lib/crypto/SecretStorage.js +0 -4
  41. package/lib/crypto/SecretStorage.js.map +1 -1
  42. package/lib/crypto/algorithms/base.js +0 -14
  43. package/lib/crypto/algorithms/base.js.map +1 -1
  44. package/lib/crypto/algorithms/megolm.js +22 -31
  45. package/lib/crypto/algorithms/megolm.js.map +1 -1
  46. package/lib/crypto/backup.d.ts +17 -0
  47. package/lib/crypto/backup.d.ts.map +1 -1
  48. package/lib/crypto/backup.js +29 -8
  49. package/lib/crypto/backup.js.map +1 -1
  50. package/lib/crypto/dehydration.js +1 -5
  51. package/lib/crypto/dehydration.js.map +1 -1
  52. package/lib/crypto/deviceinfo.js +1 -1
  53. package/lib/crypto/deviceinfo.js.map +1 -1
  54. package/lib/crypto/index.d.ts +10 -2
  55. package/lib/crypto/index.d.ts.map +1 -1
  56. package/lib/crypto/index.js +133 -68
  57. package/lib/crypto/index.js.map +1 -1
  58. package/lib/crypto/keybackup.d.ts +1 -16
  59. package/lib/crypto/keybackup.d.ts.map +1 -1
  60. package/lib/crypto/keybackup.js.map +1 -1
  61. package/lib/crypto/olmlib.js +21 -21
  62. package/lib/crypto/olmlib.js.map +1 -1
  63. package/lib/crypto/recoverykey.d.ts.map +1 -1
  64. package/lib/crypto/recoverykey.js +3 -2
  65. package/lib/crypto/recoverykey.js.map +1 -1
  66. package/lib/crypto/store/indexeddb-crypto-store-backend.js +1 -1
  67. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
  68. package/lib/crypto/store/indexeddb-crypto-store.js +0 -2
  69. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
  70. package/lib/crypto/store/memory-crypto-store.js +16 -16
  71. package/lib/crypto/store/memory-crypto-store.js.map +1 -1
  72. package/lib/crypto/verification/Base.js +6 -13
  73. package/lib/crypto/verification/Base.js.map +1 -1
  74. package/lib/crypto/verification/QRCode.js +0 -1
  75. package/lib/crypto/verification/QRCode.js.map +1 -1
  76. package/lib/crypto/verification/SAS.js +0 -4
  77. package/lib/crypto/verification/SAS.js.map +1 -1
  78. package/lib/crypto/verification/request/InRoomChannel.js +0 -1
  79. package/lib/crypto/verification/request/InRoomChannel.js.map +1 -1
  80. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -1
  81. package/lib/crypto/verification/request/ToDeviceChannel.js.map +1 -1
  82. package/lib/crypto/verification/request/VerificationRequest.js +5 -7
  83. package/lib/crypto/verification/request/VerificationRequest.js.map +1 -1
  84. package/lib/crypto-api/keybackup.d.ts +15 -0
  85. package/lib/crypto-api/keybackup.d.ts.map +1 -1
  86. package/lib/crypto-api/keybackup.js.map +1 -1
  87. package/lib/crypto-api.d.ts +53 -0
  88. package/lib/crypto-api.d.ts.map +1 -1
  89. package/lib/crypto-api.js +55 -29
  90. package/lib/crypto-api.js.map +1 -1
  91. package/lib/embedded.d.ts +2 -1
  92. package/lib/embedded.d.ts.map +1 -1
  93. package/lib/embedded.js +29 -14
  94. package/lib/embedded.js.map +1 -1
  95. package/lib/event-mapper.js +17 -17
  96. package/lib/event-mapper.js.map +1 -1
  97. package/lib/extensible_events_v1/MessageEvent.js +31 -31
  98. package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
  99. package/lib/extensible_events_v1/PollEndEvent.js +24 -24
  100. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
  101. package/lib/extensible_events_v1/PollResponseEvent.js +0 -1
  102. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
  103. package/lib/extensible_events_v1/PollStartEvent.js +44 -44
  104. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
  105. package/lib/filter.js +17 -19
  106. package/lib/filter.js.map +1 -1
  107. package/lib/http-api/errors.js +4 -6
  108. package/lib/http-api/errors.js.map +1 -1
  109. package/lib/http-api/fetch.js +1 -1
  110. package/lib/http-api/fetch.js.map +1 -1
  111. package/lib/http-api/index.js +1 -1
  112. package/lib/http-api/index.js.map +1 -1
  113. package/lib/interactive-auth.js +6 -16
  114. package/lib/interactive-auth.js.map +1 -1
  115. package/lib/matrixrtc/CallMembership.d.ts +31 -0
  116. package/lib/matrixrtc/CallMembership.d.ts.map +1 -0
  117. package/lib/matrixrtc/CallMembership.js +80 -0
  118. package/lib/matrixrtc/CallMembership.js.map +1 -0
  119. package/lib/matrixrtc/MatrixRTCSession.d.ts +81 -0
  120. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -0
  121. package/lib/matrixrtc/MatrixRTCSession.js +345 -0
  122. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -0
  123. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +38 -0
  124. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +1 -0
  125. package/lib/matrixrtc/MatrixRTCSessionManager.js +116 -0
  126. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -0
  127. package/lib/matrixrtc/focus.d.ts +9 -0
  128. package/lib/matrixrtc/focus.d.ts.map +1 -0
  129. package/lib/matrixrtc/focus.js +6 -0
  130. package/lib/matrixrtc/focus.js.map +1 -0
  131. package/lib/models/MSC3089Branch.js +16 -16
  132. package/lib/models/MSC3089Branch.js.map +1 -1
  133. package/lib/models/MSC3089TreeSpace.js +16 -17
  134. package/lib/models/MSC3089TreeSpace.js.map +1 -1
  135. package/lib/models/beacon.js +3 -8
  136. package/lib/models/beacon.js.map +1 -1
  137. package/lib/models/device.js +14 -16
  138. package/lib/models/device.js.map +1 -1
  139. package/lib/models/event-context.js +1 -2
  140. package/lib/models/event-context.js.map +1 -1
  141. package/lib/models/event-timeline-set.js +1 -7
  142. package/lib/models/event-timeline-set.js.map +1 -1
  143. package/lib/models/event-timeline.js +4 -8
  144. package/lib/models/event-timeline.js.map +1 -1
  145. package/lib/models/event.d.ts +1 -1
  146. package/lib/models/event.js +7 -25
  147. package/lib/models/event.js.map +1 -1
  148. package/lib/models/poll.js +4 -8
  149. package/lib/models/poll.js.map +1 -1
  150. package/lib/models/read-receipt.js +0 -1
  151. package/lib/models/read-receipt.js.map +1 -1
  152. package/lib/models/related-relations.js +0 -3
  153. package/lib/models/related-relations.js.map +1 -1
  154. package/lib/models/relations-container.js +2 -2
  155. package/lib/models/relations-container.js.map +1 -1
  156. package/lib/models/relations.js +3 -4
  157. package/lib/models/relations.js.map +1 -1
  158. package/lib/models/room-member.js +2 -20
  159. package/lib/models/room-member.js.map +1 -1
  160. package/lib/models/room-state.js +3 -3
  161. package/lib/models/room-state.js.map +1 -1
  162. package/lib/models/room.d.ts +1 -1
  163. package/lib/models/room.d.ts.map +1 -1
  164. package/lib/models/room.js +40 -76
  165. package/lib/models/room.js.map +1 -1
  166. package/lib/models/thread.js +21 -32
  167. package/lib/models/thread.js.map +1 -1
  168. package/lib/models/user.js +1 -20
  169. package/lib/models/user.js.map +1 -1
  170. package/lib/oidc/authorize.js +16 -16
  171. package/lib/oidc/authorize.js.map +1 -1
  172. package/lib/oidc/discovery.js +16 -16
  173. package/lib/oidc/discovery.js.map +1 -1
  174. package/lib/pushprocessor.js +17 -17
  175. package/lib/pushprocessor.js.map +1 -1
  176. package/lib/receipt-accumulator.js +1 -1
  177. package/lib/receipt-accumulator.js.map +1 -1
  178. package/lib/rendezvous/MSC3906Rendezvous.js +2 -5
  179. package/lib/rendezvous/MSC3906Rendezvous.js.map +1 -1
  180. package/lib/rendezvous/channels/MSC3903ECDHv2RendezvousChannel.js +1 -4
  181. package/lib/rendezvous/channels/MSC3903ECDHv2RendezvousChannel.js.map +1 -1
  182. package/lib/rendezvous/transports/MSC3886SimpleHttpRendezvousTransport.js +1 -8
  183. package/lib/rendezvous/transports/MSC3886SimpleHttpRendezvousTransport.js.map +1 -1
  184. package/lib/room-hierarchy.js +4 -8
  185. package/lib/room-hierarchy.js.map +1 -1
  186. package/lib/rust-crypto/CrossSigningIdentity.d.ts +1 -5
  187. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +1 -1
  188. package/lib/rust-crypto/CrossSigningIdentity.js +1 -4
  189. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
  190. package/lib/rust-crypto/KeyClaimManager.js +1 -2
  191. package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
  192. package/lib/rust-crypto/OutgoingRequestProcessor.js +16 -16
  193. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
  194. package/lib/rust-crypto/RoomEncryptor.js +0 -3
  195. package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
  196. package/lib/rust-crypto/backup.d.ts +20 -2
  197. package/lib/rust-crypto/backup.d.ts.map +1 -1
  198. package/lib/rust-crypto/backup.js +39 -4
  199. package/lib/rust-crypto/backup.js.map +1 -1
  200. package/lib/rust-crypto/index.d.ts.map +1 -1
  201. package/lib/rust-crypto/index.js +1 -0
  202. package/lib/rust-crypto/index.js.map +1 -1
  203. package/lib/rust-crypto/rust-crypto.d.ts +39 -3
  204. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
  205. package/lib/rust-crypto/rust-crypto.js +260 -61
  206. package/lib/rust-crypto/rust-crypto.js.map +1 -1
  207. package/lib/rust-crypto/verification.js +5 -7
  208. package/lib/rust-crypto/verification.js.map +1 -1
  209. package/lib/scheduler.js +2 -2
  210. package/lib/scheduler.js.map +1 -1
  211. package/lib/sliding-sync-sdk.js +4 -7
  212. package/lib/sliding-sync-sdk.js.map +1 -1
  213. package/lib/sliding-sync.js +23 -28
  214. package/lib/sliding-sync.js.map +1 -1
  215. package/lib/store/indexeddb-local-backend.js +6 -10
  216. package/lib/store/indexeddb-local-backend.js.map +1 -1
  217. package/lib/store/indexeddb-remote-backend.js +8 -11
  218. package/lib/store/indexeddb-remote-backend.js.map +1 -1
  219. package/lib/store/indexeddb-store-worker.js +1 -2
  220. package/lib/store/indexeddb-store-worker.js.map +1 -1
  221. package/lib/store/indexeddb.js +0 -1
  222. package/lib/store/indexeddb.js.map +1 -1
  223. package/lib/store/memory.js +0 -3
  224. package/lib/store/memory.js.map +1 -1
  225. package/lib/sync-accumulator.d.ts +11 -1
  226. package/lib/sync-accumulator.d.ts.map +1 -1
  227. package/lib/sync-accumulator.js +55 -4
  228. package/lib/sync-accumulator.js.map +1 -1
  229. package/lib/sync.d.ts.map +1 -1
  230. package/lib/sync.js +53 -39
  231. package/lib/sync.js.map +1 -1
  232. package/lib/timeline-window.js +2 -6
  233. package/lib/timeline-window.js.map +1 -1
  234. package/lib/utils.js +18 -18
  235. package/lib/utils.js.map +1 -1
  236. package/lib/webrtc/audioContext.js +1 -1
  237. package/lib/webrtc/audioContext.js.map +1 -1
  238. package/lib/webrtc/call.js +35 -73
  239. package/lib/webrtc/call.js.map +1 -1
  240. package/lib/webrtc/callEventHandler.js +1 -6
  241. package/lib/webrtc/callEventHandler.js.map +1 -1
  242. package/lib/webrtc/callFeed.js +2 -17
  243. package/lib/webrtc/callFeed.js.map +1 -1
  244. package/lib/webrtc/groupCall.d.ts +7 -1
  245. package/lib/webrtc/groupCall.d.ts.map +1 -1
  246. package/lib/webrtc/groupCall.js +47 -33
  247. package/lib/webrtc/groupCall.js.map +1 -1
  248. package/lib/webrtc/groupCallEventHandler.d.ts.map +1 -1
  249. package/lib/webrtc/groupCallEventHandler.js +3 -2
  250. package/lib/webrtc/groupCallEventHandler.js.map +1 -1
  251. package/lib/webrtc/mediaHandler.js +3 -7
  252. package/lib/webrtc/mediaHandler.js.map +1 -1
  253. package/lib/webrtc/stats/callStatsReportGatherer.js +19 -22
  254. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  255. package/lib/webrtc/stats/groupCallStats.js +4 -5
  256. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  257. package/lib/webrtc/stats/media/mediaSsrcHandler.js +1 -1
  258. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
  259. package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
  260. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  261. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +1 -1
  262. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  263. package/package.json +4 -4
  264. package/src/client.ts +66 -23
  265. package/src/common-crypto/CryptoBackend.ts +45 -0
  266. package/src/common-crypto/base64.ts +46 -0
  267. package/src/crypto/backup.ts +30 -0
  268. package/src/crypto/index.ts +90 -3
  269. package/src/crypto/keybackup.ts +3 -20
  270. package/src/crypto/recoverykey.ts +3 -4
  271. package/src/crypto-api/keybackup.ts +19 -0
  272. package/src/crypto-api.ts +63 -0
  273. package/src/embedded.ts +28 -1
  274. package/src/matrixrtc/CallMembership.ts +95 -0
  275. package/src/matrixrtc/MatrixRTCSession.ts +418 -0
  276. package/src/matrixrtc/MatrixRTCSessionManager.ts +128 -0
  277. package/src/matrixrtc/focus.ts +24 -0
  278. package/src/models/event.ts +1 -1
  279. package/src/models/room.ts +11 -5
  280. package/src/rust-crypto/CrossSigningIdentity.ts +0 -4
  281. package/src/rust-crypto/backup.ts +56 -2
  282. package/src/rust-crypto/index.ts +3 -0
  283. package/src/rust-crypto/rust-crypto.ts +282 -44
  284. package/src/sync-accumulator.ts +63 -1
  285. package/src/sync.ts +26 -1
  286. package/src/webrtc/groupCall.ts +43 -6
  287. package/src/webrtc/groupCallEventHandler.ts +3 -0
@@ -320,7 +320,7 @@ EncoderBuffer.prototype.join = function join(out, offset) {
320
320
  return out;
321
321
  };
322
322
 
323
- },{"../base/reporter":7,"inherits":151,"safer-buffer":259}],5:[function(require,module,exports){
323
+ },{"../base/reporter":7,"inherits":151,"safer-buffer":261}],5:[function(require,module,exports){
324
324
  'use strict';
325
325
 
326
326
  const base = exports;
@@ -970,7 +970,7 @@ Node.prototype._isPrintstr = function isPrintstr(str) {
970
970
  return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);
971
971
  };
972
972
 
973
- },{"../base/buffer":4,"../base/reporter":7,"minimalistic-assert":230}],7:[function(require,module,exports){
973
+ },{"../base/buffer":4,"../base/reporter":7,"minimalistic-assert":232}],7:[function(require,module,exports){
974
974
  'use strict';
975
975
 
976
976
  const inherits = require('inherits');
@@ -1576,7 +1576,7 @@ PEMDecoder.prototype.decode = function decode(data, options) {
1576
1576
  return DERDecoder.prototype.decode.call(this, input, options);
1577
1577
  };
1578
1578
 
1579
- },{"./der":10,"inherits":151,"safer-buffer":259}],13:[function(require,module,exports){
1579
+ },{"./der":10,"inherits":151,"safer-buffer":261}],13:[function(require,module,exports){
1580
1580
  'use strict';
1581
1581
 
1582
1582
  const inherits = require('inherits');
@@ -1873,7 +1873,7 @@ function encodeTag(tag, primitive, cls, reporter) {
1873
1873
  return res;
1874
1874
  }
1875
1875
 
1876
- },{"../base/node":6,"../constants/der":8,"inherits":151,"safer-buffer":259}],14:[function(require,module,exports){
1876
+ },{"../base/node":6,"../constants/der":8,"inherits":151,"safer-buffer":261}],14:[function(require,module,exports){
1877
1877
  'use strict';
1878
1878
 
1879
1879
  const encoders = exports;
@@ -5837,7 +5837,7 @@ AES.prototype.scrub = function () {
5837
5837
 
5838
5838
  module.exports.AES = AES
5839
5839
 
5840
- },{"safe-buffer":258}],22:[function(require,module,exports){
5840
+ },{"safe-buffer":260}],22:[function(require,module,exports){
5841
5841
  var aes = require('./aes')
5842
5842
  var Buffer = require('safe-buffer').Buffer
5843
5843
  var Transform = require('cipher-base')
@@ -5956,7 +5956,7 @@ StreamCipher.prototype.setAAD = function setAAD (buf) {
5956
5956
 
5957
5957
  module.exports = StreamCipher
5958
5958
 
5959
- },{"./aes":21,"./ghash":26,"./incr32":27,"buffer-xor":67,"cipher-base":71,"inherits":151,"safe-buffer":258}],23:[function(require,module,exports){
5959
+ },{"./aes":21,"./ghash":26,"./incr32":27,"buffer-xor":67,"cipher-base":71,"inherits":151,"safe-buffer":260}],23:[function(require,module,exports){
5960
5960
  var ciphers = require('./encrypter')
5961
5961
  var deciphers = require('./decrypter')
5962
5962
  var modes = require('./modes/list.json')
@@ -6097,7 +6097,7 @@ function createDecipher (suite, password) {
6097
6097
  exports.createDecipher = createDecipher
6098
6098
  exports.createDecipheriv = createDecipheriv
6099
6099
 
6100
- },{"./aes":21,"./authCipher":22,"./modes":34,"./streamCipher":37,"cipher-base":71,"evp_bytestokey":110,"inherits":151,"safe-buffer":258}],25:[function(require,module,exports){
6100
+ },{"./aes":21,"./authCipher":22,"./modes":34,"./streamCipher":37,"cipher-base":71,"evp_bytestokey":110,"inherits":151,"safe-buffer":260}],25:[function(require,module,exports){
6101
6101
  var MODES = require('./modes')
6102
6102
  var AuthCipher = require('./authCipher')
6103
6103
  var Buffer = require('safe-buffer').Buffer
@@ -6213,7 +6213,7 @@ function createCipher (suite, password) {
6213
6213
  exports.createCipheriv = createCipheriv
6214
6214
  exports.createCipher = createCipher
6215
6215
 
6216
- },{"./aes":21,"./authCipher":22,"./modes":34,"./streamCipher":37,"cipher-base":71,"evp_bytestokey":110,"inherits":151,"safe-buffer":258}],26:[function(require,module,exports){
6216
+ },{"./aes":21,"./authCipher":22,"./modes":34,"./streamCipher":37,"cipher-base":71,"evp_bytestokey":110,"inherits":151,"safe-buffer":260}],26:[function(require,module,exports){
6217
6217
  var Buffer = require('safe-buffer').Buffer
6218
6218
  var ZEROES = Buffer.alloc(16, 0)
6219
6219
 
@@ -6304,7 +6304,7 @@ GHASH.prototype.final = function (abl, bl) {
6304
6304
 
6305
6305
  module.exports = GHASH
6306
6306
 
6307
- },{"safe-buffer":258}],27:[function(require,module,exports){
6307
+ },{"safe-buffer":260}],27:[function(require,module,exports){
6308
6308
  function incr32 (iv) {
6309
6309
  var len = iv.length
6310
6310
  var item
@@ -6375,7 +6375,7 @@ exports.encrypt = function (self, data, decrypt) {
6375
6375
  return out
6376
6376
  }
6377
6377
 
6378
- },{"buffer-xor":67,"safe-buffer":258}],30:[function(require,module,exports){
6378
+ },{"buffer-xor":67,"safe-buffer":260}],30:[function(require,module,exports){
6379
6379
  var Buffer = require('safe-buffer').Buffer
6380
6380
 
6381
6381
  function encryptByte (self, byteParam, decrypt) {
@@ -6419,7 +6419,7 @@ exports.encrypt = function (self, chunk, decrypt) {
6419
6419
  return out
6420
6420
  }
6421
6421
 
6422
- },{"safe-buffer":258}],31:[function(require,module,exports){
6422
+ },{"safe-buffer":260}],31:[function(require,module,exports){
6423
6423
  var Buffer = require('safe-buffer').Buffer
6424
6424
 
6425
6425
  function encryptByte (self, byteParam, decrypt) {
@@ -6446,7 +6446,7 @@ exports.encrypt = function (self, chunk, decrypt) {
6446
6446
  return out
6447
6447
  }
6448
6448
 
6449
- },{"safe-buffer":258}],32:[function(require,module,exports){
6449
+ },{"safe-buffer":260}],32:[function(require,module,exports){
6450
6450
  var xor = require('buffer-xor')
6451
6451
  var Buffer = require('safe-buffer').Buffer
6452
6452
  var incr32 = require('../incr32')
@@ -6478,7 +6478,7 @@ exports.encrypt = function (self, chunk) {
6478
6478
  return xor(chunk, pad)
6479
6479
  }
6480
6480
 
6481
- },{"../incr32":27,"buffer-xor":67,"safe-buffer":258}],33:[function(require,module,exports){
6481
+ },{"../incr32":27,"buffer-xor":67,"safe-buffer":260}],33:[function(require,module,exports){
6482
6482
  exports.encrypt = function (self, block) {
6483
6483
  return self._cipher.encryptBlock(block)
6484
6484
  }
@@ -6750,7 +6750,7 @@ StreamCipher.prototype._final = function () {
6750
6750
 
6751
6751
  module.exports = StreamCipher
6752
6752
 
6753
- },{"./aes":21,"cipher-base":71,"inherits":151,"safe-buffer":258}],38:[function(require,module,exports){
6753
+ },{"./aes":21,"cipher-base":71,"inherits":151,"safe-buffer":260}],38:[function(require,module,exports){
6754
6754
  var DES = require('browserify-des')
6755
6755
  var aes = require('browserify-aes/browser')
6756
6756
  var aesModes = require('browserify-aes/modes')
@@ -6871,7 +6871,7 @@ DES.prototype._final = function () {
6871
6871
  return Buffer.from(this._des.final())
6872
6872
  }
6873
6873
 
6874
- },{"cipher-base":71,"des.js":83,"inherits":151,"safe-buffer":258}],40:[function(require,module,exports){
6874
+ },{"cipher-base":71,"des.js":83,"inherits":151,"safe-buffer":260}],40:[function(require,module,exports){
6875
6875
  exports['des-ecb'] = {
6876
6876
  key: 8,
6877
6877
  iv: 0
@@ -6937,7 +6937,7 @@ module.exports = crt
6937
6937
 
6938
6938
  }).call(this)}).call(this,require("buffer").Buffer)
6939
6939
 
6940
- },{"bn.js":42,"buffer":68,"randombytes":252}],42:[function(require,module,exports){
6940
+ },{"bn.js":42,"buffer":68,"randombytes":254}],42:[function(require,module,exports){
6941
6941
  (function (module, exports) {
6942
6942
  'use strict';
6943
6943
 
@@ -10747,7 +10747,7 @@ module.exports = {
10747
10747
  createVerify: createVerify
10748
10748
  }
10749
10749
 
10750
- },{"./algorithms.json":44,"./sign":47,"./verify":48,"create-hash":74,"inherits":151,"readable-stream":64,"safe-buffer":258}],47:[function(require,module,exports){
10750
+ },{"./algorithms.json":44,"./sign":47,"./verify":48,"create-hash":74,"inherits":151,"readable-stream":64,"safe-buffer":260}],47:[function(require,module,exports){
10751
10751
  // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
10752
10752
  var Buffer = require('safe-buffer').Buffer
10753
10753
  var createHmac = require('create-hmac')
@@ -10892,7 +10892,7 @@ module.exports = sign
10892
10892
  module.exports.getKey = getKey
10893
10893
  module.exports.makeKey = makeKey
10894
10894
 
10895
- },{"./curves.json":45,"bn.js":49,"browserify-rsa":41,"create-hmac":76,"elliptic":93,"parse-asn1":238,"safe-buffer":258}],48:[function(require,module,exports){
10895
+ },{"./curves.json":45,"bn.js":49,"browserify-rsa":41,"create-hmac":76,"elliptic":93,"parse-asn1":240,"safe-buffer":260}],48:[function(require,module,exports){
10896
10896
  // much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js
10897
10897
  var Buffer = require('safe-buffer').Buffer
10898
10898
  var BN = require('bn.js')
@@ -10978,7 +10978,7 @@ function checkValue (b, q) {
10978
10978
 
10979
10979
  module.exports = verify
10980
10980
 
10981
- },{"./curves.json":45,"bn.js":49,"elliptic":93,"parse-asn1":238,"safe-buffer":258}],49:[function(require,module,exports){
10981
+ },{"./curves.json":45,"bn.js":49,"elliptic":93,"parse-asn1":240,"safe-buffer":260}],49:[function(require,module,exports){
10982
10982
  arguments[4][42][0].apply(exports,arguments)
10983
10983
  },{"buffer":20,"dup":42}],50:[function(require,module,exports){
10984
10984
  'use strict';
@@ -11239,7 +11239,7 @@ Object.defineProperty(Duplex.prototype, 'destroyed', {
11239
11239
  });
11240
11240
  }).call(this)}).call(this,require('_process'))
11241
11241
 
11242
- },{"./_stream_readable":53,"./_stream_writable":55,"_process":245,"inherits":151}],52:[function(require,module,exports){
11242
+ },{"./_stream_readable":53,"./_stream_writable":55,"_process":247,"inherits":151}],52:[function(require,module,exports){
11243
11243
  // Copyright Joyent, Inc. and other Node contributors.
11244
11244
  //
11245
11245
  // Permission is hereby granted, free of charge, to any person obtaining a
@@ -12308,7 +12308,7 @@ function indexOf(xs, x) {
12308
12308
  }
12309
12309
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
12310
12310
 
12311
- },{"../errors":50,"./_stream_duplex":51,"./internal/streams/async_iterator":56,"./internal/streams/buffer_list":57,"./internal/streams/destroy":58,"./internal/streams/from":60,"./internal/streams/state":62,"./internal/streams/stream":63,"_process":245,"buffer":68,"events":109,"inherits":151,"string_decoder/":287,"util":20}],54:[function(require,module,exports){
12311
+ },{"../errors":50,"./_stream_duplex":51,"./internal/streams/async_iterator":56,"./internal/streams/buffer_list":57,"./internal/streams/destroy":58,"./internal/streams/from":60,"./internal/streams/state":62,"./internal/streams/stream":63,"_process":247,"buffer":68,"events":109,"inherits":151,"string_decoder/":289,"util":20}],54:[function(require,module,exports){
12312
12312
  // Copyright Joyent, Inc. and other Node contributors.
12313
12313
  //
12314
12314
  // Permission is hereby granted, free of charge, to any person obtaining a
@@ -13144,7 +13144,7 @@ Writable.prototype._destroy = function (err, cb) {
13144
13144
  };
13145
13145
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
13146
13146
 
13147
- },{"../errors":50,"./_stream_duplex":51,"./internal/streams/destroy":58,"./internal/streams/state":62,"./internal/streams/stream":63,"_process":245,"buffer":68,"inherits":151,"util-deprecate":291}],56:[function(require,module,exports){
13147
+ },{"../errors":50,"./_stream_duplex":51,"./internal/streams/destroy":58,"./internal/streams/state":62,"./internal/streams/stream":63,"_process":247,"buffer":68,"inherits":151,"util-deprecate":293}],56:[function(require,module,exports){
13148
13148
  (function (process){(function (){
13149
13149
  'use strict';
13150
13150
 
@@ -13328,7 +13328,7 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat
13328
13328
  module.exports = createReadableStreamAsyncIterator;
13329
13329
  }).call(this)}).call(this,require('_process'))
13330
13330
 
13331
- },{"./end-of-stream":59,"_process":245}],57:[function(require,module,exports){
13331
+ },{"./end-of-stream":59,"_process":247}],57:[function(require,module,exports){
13332
13332
  'use strict';
13333
13333
 
13334
13334
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -13612,7 +13612,7 @@ module.exports = {
13612
13612
  };
13613
13613
  }).call(this)}).call(this,require('_process'))
13614
13614
 
13615
- },{"_process":245}],59:[function(require,module,exports){
13615
+ },{"_process":247}],59:[function(require,module,exports){
13616
13616
  // Ported from https://github.com/mafintosh/end-of-stream with
13617
13617
  // permission from the author, Mathias Buus (@mafintosh).
13618
13618
 
@@ -15921,7 +15921,7 @@ CipherBase.prototype._toString = function (value, enc, fin) {
15921
15921
 
15922
15922
  module.exports = CipherBase
15923
15923
 
15924
- },{"inherits":151,"safe-buffer":258,"stream":272,"string_decoder":287}],72:[function(require,module,exports){
15924
+ },{"inherits":151,"safe-buffer":260,"stream":274,"string_decoder":289}],72:[function(require,module,exports){
15925
15925
  /*!
15926
15926
  * content-type
15927
15927
  * Copyright(c) 2015 Douglas Christopher Wilson
@@ -16309,14 +16309,14 @@ module.exports = function createHash (alg) {
16309
16309
  return new Hash(sha(alg))
16310
16310
  }
16311
16311
 
16312
- },{"cipher-base":71,"inherits":151,"md5.js":228,"ripemd160":257,"sha.js":265}],75:[function(require,module,exports){
16312
+ },{"cipher-base":71,"inherits":151,"md5.js":230,"ripemd160":259,"sha.js":267}],75:[function(require,module,exports){
16313
16313
  var MD5 = require('md5.js')
16314
16314
 
16315
16315
  module.exports = function (buffer) {
16316
16316
  return new MD5().update(buffer).digest()
16317
16317
  }
16318
16318
 
16319
- },{"md5.js":228}],76:[function(require,module,exports){
16319
+ },{"md5.js":230}],76:[function(require,module,exports){
16320
16320
  'use strict'
16321
16321
  var inherits = require('inherits')
16322
16322
  var Legacy = require('./legacy')
@@ -16380,7 +16380,7 @@ module.exports = function createHmac (alg, key) {
16380
16380
  return new Hmac(alg, key)
16381
16381
  }
16382
16382
 
16383
- },{"./legacy":77,"cipher-base":71,"create-hash/md5":75,"inherits":151,"ripemd160":257,"safe-buffer":258,"sha.js":265}],77:[function(require,module,exports){
16383
+ },{"./legacy":77,"cipher-base":71,"create-hash/md5":75,"inherits":151,"ripemd160":259,"safe-buffer":260,"sha.js":267}],77:[function(require,module,exports){
16384
16384
  'use strict'
16385
16385
  var inherits = require('inherits')
16386
16386
  var Buffer = require('safe-buffer').Buffer
@@ -16428,7 +16428,7 @@ Hmac.prototype._final = function () {
16428
16428
  }
16429
16429
  module.exports = Hmac
16430
16430
 
16431
- },{"cipher-base":71,"inherits":151,"safe-buffer":258}],78:[function(require,module,exports){
16431
+ },{"cipher-base":71,"inherits":151,"safe-buffer":260}],78:[function(require,module,exports){
16432
16432
  'use strict'
16433
16433
 
16434
16434
  exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')
@@ -16527,7 +16527,7 @@ exports.constants = {
16527
16527
  'POINT_CONVERSION_HYBRID': 6
16528
16528
  }
16529
16529
 
16530
- },{"browserify-cipher":38,"browserify-sign":46,"browserify-sign/algos":43,"create-ecdh":73,"create-hash":74,"create-hmac":76,"diffie-hellman":89,"pbkdf2":239,"public-encrypt":246,"randombytes":252,"randomfill":253}],79:[function(require,module,exports){
16530
+ },{"browserify-cipher":38,"browserify-sign":46,"browserify-sign/algos":43,"create-ecdh":73,"create-hash":74,"create-hmac":76,"diffie-hellman":89,"pbkdf2":241,"public-encrypt":248,"randombytes":254,"randomfill":255}],79:[function(require,module,exports){
16531
16531
  (function (global){(function (){
16532
16532
  ;(function (root, factory) {
16533
16533
  if (typeof exports === "object") {
@@ -17770,7 +17770,7 @@ proto._update = function _update(inp, inOff, out, outOff) {
17770
17770
  }
17771
17771
  };
17772
17772
 
17773
- },{"inherits":151,"minimalistic-assert":230}],85:[function(require,module,exports){
17773
+ },{"inherits":151,"minimalistic-assert":232}],85:[function(require,module,exports){
17774
17774
  'use strict';
17775
17775
 
17776
17776
  var assert = require('minimalistic-assert');
@@ -17914,7 +17914,7 @@ Cipher.prototype._finalDecrypt = function _finalDecrypt() {
17914
17914
  return this._unpad(out);
17915
17915
  };
17916
17916
 
17917
- },{"minimalistic-assert":230}],86:[function(require,module,exports){
17917
+ },{"minimalistic-assert":232}],86:[function(require,module,exports){
17918
17918
  'use strict';
17919
17919
 
17920
17920
  var assert = require('minimalistic-assert');
@@ -18066,7 +18066,7 @@ DES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {
18066
18066
  utils.rip(l, r, out, off);
18067
18067
  };
18068
18068
 
18069
- },{"./cipher":85,"./utils":88,"inherits":151,"minimalistic-assert":230}],87:[function(require,module,exports){
18069
+ },{"./cipher":85,"./utils":88,"inherits":151,"minimalistic-assert":232}],87:[function(require,module,exports){
18070
18070
  'use strict';
18071
18071
 
18072
18072
  var assert = require('minimalistic-assert');
@@ -18122,7 +18122,7 @@ EDE.prototype._update = function _update(inp, inOff, out, outOff) {
18122
18122
  EDE.prototype._pad = DES.prototype._pad;
18123
18123
  EDE.prototype._unpad = DES.prototype._unpad;
18124
18124
 
18125
- },{"./cipher":85,"./des":86,"inherits":151,"minimalistic-assert":230}],88:[function(require,module,exports){
18125
+ },{"./cipher":85,"./des":86,"inherits":151,"minimalistic-assert":232}],88:[function(require,module,exports){
18126
18126
  'use strict';
18127
18127
 
18128
18128
  exports.readUInt32BE = function readUInt32BE(bytes, off) {
@@ -18596,7 +18596,7 @@ function formatReturnValue(bn, enc) {
18596
18596
 
18597
18597
  }).call(this)}).call(this,require("buffer").Buffer)
18598
18598
 
18599
- },{"./generatePrime":91,"bn.js":18,"buffer":68,"miller-rabin":229,"randombytes":252}],91:[function(require,module,exports){
18599
+ },{"./generatePrime":91,"bn.js":18,"buffer":68,"miller-rabin":231,"randombytes":254}],91:[function(require,module,exports){
18600
18600
  var randomBytes = require('randombytes');
18601
18601
  module.exports = findPrime;
18602
18602
  findPrime.simpleSieve = simpleSieve;
@@ -18703,7 +18703,7 @@ function findPrime(bits, gen) {
18703
18703
 
18704
18704
  }
18705
18705
 
18706
- },{"bn.js":18,"miller-rabin":229,"randombytes":252}],92:[function(require,module,exports){
18706
+ },{"bn.js":18,"miller-rabin":231,"randombytes":254}],92:[function(require,module,exports){
18707
18707
  module.exports={
18708
18708
  "modp1": {
18709
18709
  "gen": "02",
@@ -22634,7 +22634,7 @@ function intFromLE(bytes) {
22634
22634
  utils.intFromLE = intFromLE;
22635
22635
 
22636
22636
 
22637
- },{"bn.js":18,"minimalistic-assert":230,"minimalistic-crypto-utils":231}],108:[function(require,module,exports){
22637
+ },{"bn.js":18,"minimalistic-assert":232,"minimalistic-crypto-utils":233}],108:[function(require,module,exports){
22638
22638
  module.exports={
22639
22639
  "name": "elliptic",
22640
22640
  "version": "6.5.4",
@@ -23238,7 +23238,7 @@ function EVP_BytesToKey (password, salt, keyBits, ivLen) {
23238
23238
 
23239
23239
  module.exports = EVP_BytesToKey
23240
23240
 
23241
- },{"md5.js":228,"safe-buffer":258}],111:[function(require,module,exports){
23241
+ },{"md5.js":230,"safe-buffer":260}],111:[function(require,module,exports){
23242
23242
  'use strict';
23243
23243
 
23244
23244
  var isCallable = require('is-callable');
@@ -23919,7 +23919,7 @@ HashBase.prototype._digest = function () {
23919
23919
 
23920
23920
  module.exports = HashBase
23921
23921
 
23922
- },{"inherits":151,"readable-stream":136,"safe-buffer":258}],122:[function(require,module,exports){
23922
+ },{"inherits":151,"readable-stream":136,"safe-buffer":260}],122:[function(require,module,exports){
23923
23923
  arguments[4][50][0].apply(exports,arguments)
23924
23924
  },{"dup":50}],123:[function(require,module,exports){
23925
23925
  (function (process){(function (){
@@ -24051,7 +24051,7 @@ Object.defineProperty(Duplex.prototype, 'destroyed', {
24051
24051
  });
24052
24052
  }).call(this)}).call(this,require('_process'))
24053
24053
 
24054
- },{"./_stream_readable":125,"./_stream_writable":127,"_process":245,"inherits":151}],124:[function(require,module,exports){
24054
+ },{"./_stream_readable":125,"./_stream_writable":127,"_process":247,"inherits":151}],124:[function(require,module,exports){
24055
24055
  arguments[4][52][0].apply(exports,arguments)
24056
24056
  },{"./_stream_transform":126,"dup":52,"inherits":151}],125:[function(require,module,exports){
24057
24057
  (function (process,global){(function (){
@@ -25084,7 +25084,7 @@ function indexOf(xs, x) {
25084
25084
  }
25085
25085
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
25086
25086
 
25087
- },{"../errors":122,"./_stream_duplex":123,"./internal/streams/async_iterator":128,"./internal/streams/buffer_list":129,"./internal/streams/destroy":130,"./internal/streams/from":132,"./internal/streams/state":134,"./internal/streams/stream":135,"_process":245,"buffer":68,"events":109,"inherits":151,"string_decoder/":287,"util":20}],126:[function(require,module,exports){
25087
+ },{"../errors":122,"./_stream_duplex":123,"./internal/streams/async_iterator":128,"./internal/streams/buffer_list":129,"./internal/streams/destroy":130,"./internal/streams/from":132,"./internal/streams/state":134,"./internal/streams/stream":135,"_process":247,"buffer":68,"events":109,"inherits":151,"string_decoder/":289,"util":20}],126:[function(require,module,exports){
25088
25088
  arguments[4][54][0].apply(exports,arguments)
25089
25089
  },{"../errors":122,"./_stream_duplex":123,"dup":54,"inherits":151}],127:[function(require,module,exports){
25090
25090
  (function (process,global){(function (){
@@ -25731,7 +25731,7 @@ Writable.prototype._destroy = function (err, cb) {
25731
25731
  };
25732
25732
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
25733
25733
 
25734
- },{"../errors":122,"./_stream_duplex":123,"./internal/streams/destroy":130,"./internal/streams/state":134,"./internal/streams/stream":135,"_process":245,"buffer":68,"inherits":151,"util-deprecate":291}],128:[function(require,module,exports){
25734
+ },{"../errors":122,"./_stream_duplex":123,"./internal/streams/destroy":130,"./internal/streams/state":134,"./internal/streams/stream":135,"_process":247,"buffer":68,"inherits":151,"util-deprecate":293}],128:[function(require,module,exports){
25735
25735
  (function (process){(function (){
25736
25736
  'use strict';
25737
25737
 
@@ -25915,7 +25915,7 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat
25915
25915
  module.exports = createReadableStreamAsyncIterator;
25916
25916
  }).call(this)}).call(this,require('_process'))
25917
25917
 
25918
- },{"./end-of-stream":131,"_process":245}],129:[function(require,module,exports){
25918
+ },{"./end-of-stream":131,"_process":247}],129:[function(require,module,exports){
25919
25919
  arguments[4][57][0].apply(exports,arguments)
25920
25920
  },{"buffer":68,"dup":57,"util":20}],130:[function(require,module,exports){
25921
25921
  (function (process){(function (){
@@ -26017,7 +26017,7 @@ module.exports = {
26017
26017
  };
26018
26018
  }).call(this)}).call(this,require('_process'))
26019
26019
 
26020
- },{"_process":245}],131:[function(require,module,exports){
26020
+ },{"_process":247}],131:[function(require,module,exports){
26021
26021
  arguments[4][59][0].apply(exports,arguments)
26022
26022
  },{"../../../errors":122,"dup":59}],132:[function(require,module,exports){
26023
26023
  arguments[4][60][0].apply(exports,arguments)
@@ -26140,7 +26140,7 @@ BlockHash.prototype._pad = function pad() {
26140
26140
  return res;
26141
26141
  };
26142
26142
 
26143
- },{"./utils":148,"minimalistic-assert":230}],139:[function(require,module,exports){
26143
+ },{"./utils":148,"minimalistic-assert":232}],139:[function(require,module,exports){
26144
26144
  'use strict';
26145
26145
 
26146
26146
  var utils = require('./utils');
@@ -26189,7 +26189,7 @@ Hmac.prototype.digest = function digest(enc) {
26189
26189
  return this.outer.digest(enc);
26190
26190
  };
26191
26191
 
26192
- },{"./utils":148,"minimalistic-assert":230}],140:[function(require,module,exports){
26192
+ },{"./utils":148,"minimalistic-assert":232}],140:[function(require,module,exports){
26193
26193
  'use strict';
26194
26194
 
26195
26195
  var utils = require('./utils');
@@ -26561,7 +26561,7 @@ SHA256.prototype._digest = function digest(enc) {
26561
26561
  return utils.split32(this.h, 'big');
26562
26562
  };
26563
26563
 
26564
- },{"../common":138,"../utils":148,"./common":147,"minimalistic-assert":230}],145:[function(require,module,exports){
26564
+ },{"../common":138,"../utils":148,"./common":147,"minimalistic-assert":232}],145:[function(require,module,exports){
26565
26565
  'use strict';
26566
26566
 
26567
26567
  var utils = require('../utils');
@@ -26930,7 +26930,7 @@ function g1_512_lo(xh, xl) {
26930
26930
  return r;
26931
26931
  }
26932
26932
 
26933
- },{"../common":138,"../utils":148,"minimalistic-assert":230}],147:[function(require,module,exports){
26933
+ },{"../common":138,"../utils":148,"minimalistic-assert":232}],147:[function(require,module,exports){
26934
26934
  'use strict';
26935
26935
 
26936
26936
  var utils = require('../utils');
@@ -27261,7 +27261,7 @@ function shr64_lo(ah, al, num) {
27261
27261
  }
27262
27262
  exports.shr64_lo = shr64_lo;
27263
27263
 
27264
- },{"inherits":151,"minimalistic-assert":230}],149:[function(require,module,exports){
27264
+ },{"inherits":151,"minimalistic-assert":232}],149:[function(require,module,exports){
27265
27265
  'use strict';
27266
27266
 
27267
27267
  var hash = require('hash.js');
@@ -27376,7 +27376,7 @@ HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {
27376
27376
  return utils.encode(res, enc);
27377
27377
  };
27378
27378
 
27379
- },{"hash.js":137,"minimalistic-assert":230,"minimalistic-crypto-utils":231}],150:[function(require,module,exports){
27379
+ },{"hash.js":137,"minimalistic-assert":232,"minimalistic-crypto-utils":233}],150:[function(require,module,exports){
27380
27380
  /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
27381
27381
  exports.read = function (buffer, offset, isLE, mLen, nBytes) {
27382
27382
  var e, m
@@ -27679,7 +27679,7 @@ module.exports = function isTypedArray(value) {
27679
27679
  return !!whichTypedArray(value);
27680
27680
  };
27681
27681
 
27682
- },{"which-typed-array":311}],156:[function(require,module,exports){
27682
+ },{"which-typed-array":313}],156:[function(require,module,exports){
27683
27683
  "use strict";function e(e){this.message=e}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var r="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(r){var t=String(r).replace(/=+$/,"");if(t.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,o,a=0,i=0,c="";o=t.charAt(i++);~o&&(n=a%4?64*n+o:o,a++%4)?c+=String.fromCharCode(255&n>>(-2*a&6)):0)o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(o);return c};function t(e){var t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:t+="==";break;case 3:t+="=";break;default:throw"Illegal base64url string!"}try{return function(e){return decodeURIComponent(r(e).replace(/(.)/g,(function(e,r){var t=r.charCodeAt(0).toString(16).toUpperCase();return t.length<2&&(t="0"+t),"%"+t})))}(t)}catch(e){return r(t)}}function n(e){this.message=e}function o(e,r){if("string"!=typeof e)throw new n("Invalid token specified");var o=!0===(r=r||{}).header?0:1;try{return JSON.parse(t(e.split(".")[o]))}catch(e){throw new n("Invalid token specified: "+e.message)}}n.prototype=new Error,n.prototype.name="InvalidTokenError";const a=o;a.default=o,a.InvalidTokenError=n,module.exports=a;
27684
27684
 
27685
27685
 
@@ -31418,6 +31418,98 @@ var ClientWidgetApi = /*#__PURE__*/function (_EventEmitter) {
31418
31418
  }
31419
31419
  return handleUserDirectorySearch;
31420
31420
  }()
31421
+ }, {
31422
+ key: "handleGetMediaConfig",
31423
+ value: function () {
31424
+ var _handleGetMediaConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(request) {
31425
+ var result;
31426
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
31427
+ while (1) switch (_context7.prev = _context7.next) {
31428
+ case 0:
31429
+ if (this.hasCapability(_Capabilities.MatrixCapabilities.MSC4039UploadFile)) {
31430
+ _context7.next = 2;
31431
+ break;
31432
+ }
31433
+ return _context7.abrupt("return", this.transport.reply(request, {
31434
+ error: {
31435
+ message: "Missing capability"
31436
+ }
31437
+ }));
31438
+ case 2:
31439
+ _context7.prev = 2;
31440
+ _context7.next = 5;
31441
+ return this.driver.getMediaConfig();
31442
+ case 5:
31443
+ result = _context7.sent;
31444
+ return _context7.abrupt("return", this.transport.reply(request, result));
31445
+ case 9:
31446
+ _context7.prev = 9;
31447
+ _context7.t0 = _context7["catch"](2);
31448
+ console.error("error while getting the media configuration", _context7.t0);
31449
+ _context7.next = 14;
31450
+ return this.transport.reply(request, {
31451
+ error: {
31452
+ message: "Unexpected error while getting the media configuration"
31453
+ }
31454
+ });
31455
+ case 14:
31456
+ case "end":
31457
+ return _context7.stop();
31458
+ }
31459
+ }, _callee7, this, [[2, 9]]);
31460
+ }));
31461
+ function handleGetMediaConfig(_x8) {
31462
+ return _handleGetMediaConfig.apply(this, arguments);
31463
+ }
31464
+ return handleGetMediaConfig;
31465
+ }()
31466
+ }, {
31467
+ key: "handleUploadFile",
31468
+ value: function () {
31469
+ var _handleUploadFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(request) {
31470
+ var result;
31471
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
31472
+ while (1) switch (_context8.prev = _context8.next) {
31473
+ case 0:
31474
+ if (this.hasCapability(_Capabilities.MatrixCapabilities.MSC4039UploadFile)) {
31475
+ _context8.next = 2;
31476
+ break;
31477
+ }
31478
+ return _context8.abrupt("return", this.transport.reply(request, {
31479
+ error: {
31480
+ message: "Missing capability"
31481
+ }
31482
+ }));
31483
+ case 2:
31484
+ _context8.prev = 2;
31485
+ _context8.next = 5;
31486
+ return this.driver.uploadFile(request.data.file);
31487
+ case 5:
31488
+ result = _context8.sent;
31489
+ return _context8.abrupt("return", this.transport.reply(request, {
31490
+ content_uri: result.contentUri
31491
+ }));
31492
+ case 9:
31493
+ _context8.prev = 9;
31494
+ _context8.t0 = _context8["catch"](2);
31495
+ console.error("error while uploading a file", _context8.t0);
31496
+ _context8.next = 14;
31497
+ return this.transport.reply(request, {
31498
+ error: {
31499
+ message: "Unexpected error while uploading a file"
31500
+ }
31501
+ });
31502
+ case 14:
31503
+ case "end":
31504
+ return _context8.stop();
31505
+ }
31506
+ }, _callee8, this, [[2, 9]]);
31507
+ }));
31508
+ function handleUploadFile(_x9) {
31509
+ return _handleUploadFile.apply(this, arguments);
31510
+ }
31511
+ return handleUploadFile;
31512
+ }()
31421
31513
  }, {
31422
31514
  key: "handleMessage",
31423
31515
  value: function handleMessage(ev) {
@@ -31455,6 +31547,10 @@ var ClientWidgetApi = /*#__PURE__*/function (_EventEmitter) {
31455
31547
  return this.handleUserDirectorySearch(ev.detail);
31456
31548
  case _WidgetApiAction.WidgetApiFromWidgetAction.BeeperReadRoomAccountData:
31457
31549
  return this.handleReadRoomAccountData(ev.detail);
31550
+ case _WidgetApiAction.WidgetApiFromWidgetAction.MSC4039GetMediaConfigAction:
31551
+ return this.handleGetMediaConfig(ev.detail);
31552
+ case _WidgetApiAction.WidgetApiFromWidgetAction.MSC4039UploadFileAction:
31553
+ return this.handleUploadFile(ev.detail);
31458
31554
  default:
31459
31555
  return this.transport.reply(ev.detail, {
31460
31556
  error: {
@@ -31518,46 +31614,46 @@ var ClientWidgetApi = /*#__PURE__*/function (_EventEmitter) {
31518
31614
  }, {
31519
31615
  key: "feedEvent",
31520
31616
  value: function () {
31521
- var _feedEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(rawEvent, currentViewedRoomId) {
31617
+ var _feedEvent = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(rawEvent, currentViewedRoomId) {
31522
31618
  var _rawEvent$content;
31523
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
31524
- while (1) switch (_context7.prev = _context7.next) {
31619
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
31620
+ while (1) switch (_context9.prev = _context9.next) {
31525
31621
  case 0:
31526
31622
  if (!(rawEvent.room_id !== currentViewedRoomId && !this.canUseRoomTimeline(rawEvent.room_id))) {
31527
- _context7.next = 2;
31623
+ _context9.next = 2;
31528
31624
  break;
31529
31625
  }
31530
- return _context7.abrupt("return");
31626
+ return _context9.abrupt("return");
31531
31627
  case 2:
31532
31628
  if (!(rawEvent.state_key !== undefined && rawEvent.state_key !== null)) {
31533
- _context7.next = 7;
31629
+ _context9.next = 7;
31534
31630
  break;
31535
31631
  }
31536
31632
  if (this.canReceiveStateEvent(rawEvent.type, rawEvent.state_key)) {
31537
- _context7.next = 5;
31633
+ _context9.next = 5;
31538
31634
  break;
31539
31635
  }
31540
- return _context7.abrupt("return");
31636
+ return _context9.abrupt("return");
31541
31637
  case 5:
31542
- _context7.next = 9;
31638
+ _context9.next = 9;
31543
31639
  break;
31544
31640
  case 7:
31545
31641
  if (this.canReceiveRoomEvent(rawEvent.type, (_rawEvent$content = rawEvent.content) === null || _rawEvent$content === void 0 ? void 0 : _rawEvent$content["msgtype"])) {
31546
- _context7.next = 9;
31642
+ _context9.next = 9;
31547
31643
  break;
31548
31644
  }
31549
- return _context7.abrupt("return");
31645
+ return _context9.abrupt("return");
31550
31646
  case 9:
31551
- _context7.next = 11;
31647
+ _context9.next = 11;
31552
31648
  return this.transport.send(_WidgetApiAction.WidgetApiToWidgetAction.SendEvent, rawEvent // it's compatible, but missing the index signature
31553
31649
  );
31554
31650
  case 11:
31555
31651
  case "end":
31556
- return _context7.stop();
31652
+ return _context9.stop();
31557
31653
  }
31558
- }, _callee7, this);
31654
+ }, _callee9, this);
31559
31655
  }));
31560
- function feedEvent(_x8, _x9) {
31656
+ function feedEvent(_x10, _x11) {
31561
31657
  return _feedEvent.apply(this, arguments);
31562
31658
  }
31563
31659
  return feedEvent;
@@ -31573,26 +31669,26 @@ var ClientWidgetApi = /*#__PURE__*/function (_EventEmitter) {
31573
31669
  }, {
31574
31670
  key: "feedToDevice",
31575
31671
  value: function () {
31576
- var _feedToDevice = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(rawEvent, encrypted) {
31577
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
31578
- while (1) switch (_context8.prev = _context8.next) {
31672
+ var _feedToDevice = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(rawEvent, encrypted) {
31673
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
31674
+ while (1) switch (_context10.prev = _context10.next) {
31579
31675
  case 0:
31580
31676
  if (!this.canReceiveToDeviceEvent(rawEvent.type)) {
31581
- _context8.next = 3;
31677
+ _context10.next = 3;
31582
31678
  break;
31583
31679
  }
31584
- _context8.next = 3;
31680
+ _context10.next = 3;
31585
31681
  return this.transport.send(_WidgetApiAction.WidgetApiToWidgetAction.SendToDevice, // it's compatible, but missing the index signature
31586
31682
  _objectSpread(_objectSpread({}, rawEvent), {}, {
31587
31683
  encrypted: encrypted
31588
31684
  }));
31589
31685
  case 3:
31590
31686
  case "end":
31591
- return _context8.stop();
31687
+ return _context10.stop();
31592
31688
  }
31593
- }, _callee8, this);
31689
+ }, _callee10, this);
31594
31690
  }));
31595
- function feedToDevice(_x10, _x11) {
31691
+ function feedToDevice(_x12, _x13) {
31596
31692
  return _feedToDevice.apply(this, arguments);
31597
31693
  }
31598
31694
  return feedToDevice;
@@ -31602,7 +31698,7 @@ var ClientWidgetApi = /*#__PURE__*/function (_EventEmitter) {
31602
31698
  }(_events.EventEmitter);
31603
31699
  exports.ClientWidgetApi = ClientWidgetApi;
31604
31700
 
31605
- },{"./Symbols":181,"./interfaces/ApiVersion":185,"./interfaces/Capabilities":186,"./interfaces/GetOpenIDAction":189,"./interfaces/WidgetApiAction":214,"./interfaces/WidgetApiDirection":215,"./models/WidgetEventCapability":220,"./transport/PostmessageTransport":226,"./util/SimpleObservable":227,"events":109}],181:[function(require,module,exports){
31701
+ },{"./Symbols":181,"./interfaces/ApiVersion":185,"./interfaces/Capabilities":186,"./interfaces/GetOpenIDAction":190,"./interfaces/WidgetApiAction":216,"./interfaces/WidgetApiDirection":217,"./models/WidgetEventCapability":222,"./transport/PostmessageTransport":228,"./util/SimpleObservable":229,"events":109}],181:[function(require,module,exports){
31606
31702
  "use strict";
31607
31703
 
31608
31704
  Object.defineProperty(exports, "__esModule", {
@@ -32368,6 +32464,80 @@ var WidgetApi = /*#__PURE__*/function (_EventEmitter) {
32368
32464
  }
32369
32465
  return searchUserDirectory;
32370
32466
  }()
32467
+ /**
32468
+ * Get the config for the media repository.
32469
+ * @returns Promise which resolves with an object containing the config.
32470
+ */
32471
+ }, {
32472
+ key: "getMediaConfig",
32473
+ value: function () {
32474
+ var _getMediaConfig = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
32475
+ var versions, data;
32476
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
32477
+ while (1) switch (_context5.prev = _context5.next) {
32478
+ case 0:
32479
+ _context5.next = 2;
32480
+ return this.getClientVersions();
32481
+ case 2:
32482
+ versions = _context5.sent;
32483
+ if (versions.includes(_ApiVersion.UnstableApiVersion.MSC4039)) {
32484
+ _context5.next = 5;
32485
+ break;
32486
+ }
32487
+ throw new Error("The get_media_config action is not supported by the client.");
32488
+ case 5:
32489
+ data = {};
32490
+ return _context5.abrupt("return", this.transport.send(_WidgetApiAction.WidgetApiFromWidgetAction.MSC4039GetMediaConfigAction, data));
32491
+ case 7:
32492
+ case "end":
32493
+ return _context5.stop();
32494
+ }
32495
+ }, _callee5, this);
32496
+ }));
32497
+ function getMediaConfig() {
32498
+ return _getMediaConfig.apply(this, arguments);
32499
+ }
32500
+ return getMediaConfig;
32501
+ }()
32502
+ /**
32503
+ * Upload a file to the media repository on the homeserver.
32504
+ * @param file - The object to upload. Something that can be sent to
32505
+ * XMLHttpRequest.send (typically a File).
32506
+ * @returns Resolves to the location of the uploaded file.
32507
+ */
32508
+ }, {
32509
+ key: "uploadFile",
32510
+ value: function () {
32511
+ var _uploadFile = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(file) {
32512
+ var versions, data;
32513
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
32514
+ while (1) switch (_context6.prev = _context6.next) {
32515
+ case 0:
32516
+ _context6.next = 2;
32517
+ return this.getClientVersions();
32518
+ case 2:
32519
+ versions = _context6.sent;
32520
+ if (versions.includes(_ApiVersion.UnstableApiVersion.MSC4039)) {
32521
+ _context6.next = 5;
32522
+ break;
32523
+ }
32524
+ throw new Error("The upload_file action is not supported by the client.");
32525
+ case 5:
32526
+ data = {
32527
+ file: file
32528
+ };
32529
+ return _context6.abrupt("return", this.transport.send(_WidgetApiAction.WidgetApiFromWidgetAction.MSC4039UploadFileAction, data));
32530
+ case 7:
32531
+ case "end":
32532
+ return _context6.stop();
32533
+ }
32534
+ }, _callee6, this);
32535
+ }));
32536
+ function uploadFile(_x12) {
32537
+ return _uploadFile.apply(this, arguments);
32538
+ }
32539
+ return uploadFile;
32540
+ }()
32371
32541
  /**
32372
32542
  * Starts the communication channel. This should be done early to ensure
32373
32543
  * that messages are not missed. Communication can only be stopped by the client.
@@ -32470,7 +32640,7 @@ var WidgetApi = /*#__PURE__*/function (_EventEmitter) {
32470
32640
  }(_events.EventEmitter);
32471
32641
  exports.WidgetApi = WidgetApi;
32472
32642
 
32473
- },{"./Symbols":181,"./interfaces/ApiVersion":185,"./interfaces/GetOpenIDAction":189,"./interfaces/ModalWidgetActions":200,"./interfaces/WidgetApiAction":214,"./interfaces/WidgetApiDirection":215,"./interfaces/WidgetType":218,"./models/WidgetEventCapability":220,"./transport/PostmessageTransport":226,"events":109}],183:[function(require,module,exports){
32643
+ },{"./Symbols":181,"./interfaces/ApiVersion":185,"./interfaces/GetOpenIDAction":190,"./interfaces/ModalWidgetActions":201,"./interfaces/WidgetApiAction":216,"./interfaces/WidgetApiDirection":217,"./interfaces/WidgetType":220,"./models/WidgetEventCapability":222,"./transport/PostmessageTransport":228,"events":109}],183:[function(require,module,exports){
32474
32644
  "use strict";
32475
32645
 
32476
32646
  Object.defineProperty(exports, "__esModule", {
@@ -32727,6 +32897,28 @@ var WidgetDriver = /*#__PURE__*/function () {
32727
32897
  results: []
32728
32898
  });
32729
32899
  }
32900
+
32901
+ /**
32902
+ * Get the config for the media repository.
32903
+ * @returns Promise which resolves with an object containing the config.
32904
+ */
32905
+ }, {
32906
+ key: "getMediaConfig",
32907
+ value: function getMediaConfig() {
32908
+ throw new Error("Get media config is not implemented");
32909
+ }
32910
+
32911
+ /**
32912
+ * Upload a file to the media repository on the homeserver.
32913
+ * @param file - The object to upload. Something that can be sent to
32914
+ * XMLHttpRequest.send (typically a File).
32915
+ * @returns Resolves to the location of the uploaded file.
32916
+ */
32917
+ }, {
32918
+ key: "uploadFile",
32919
+ value: function uploadFile(file) {
32920
+ throw new Error("Upload file is not implemented");
32921
+ }
32730
32922
  }]);
32731
32923
  return WidgetDriver;
32732
32924
  }();
@@ -33167,6 +33359,28 @@ Object.keys(_ReadRelationsAction).forEach(function (key) {
33167
33359
  }
33168
33360
  });
33169
33361
  });
33362
+ var _GetMediaConfigAction = require("./interfaces/GetMediaConfigAction");
33363
+ Object.keys(_GetMediaConfigAction).forEach(function (key) {
33364
+ if (key === "default" || key === "__esModule") return;
33365
+ if (key in exports && exports[key] === _GetMediaConfigAction[key]) return;
33366
+ Object.defineProperty(exports, key, {
33367
+ enumerable: true,
33368
+ get: function get() {
33369
+ return _GetMediaConfigAction[key];
33370
+ }
33371
+ });
33372
+ });
33373
+ var _UploadFileAction = require("./interfaces/UploadFileAction");
33374
+ Object.keys(_UploadFileAction).forEach(function (key) {
33375
+ if (key === "default" || key === "__esModule") return;
33376
+ if (key in exports && exports[key] === _UploadFileAction[key]) return;
33377
+ Object.defineProperty(exports, key, {
33378
+ enumerable: true,
33379
+ get: function get() {
33380
+ return _UploadFileAction[key];
33381
+ }
33382
+ });
33383
+ });
33170
33384
  var _WidgetEventCapability = require("./models/WidgetEventCapability");
33171
33385
  Object.keys(_WidgetEventCapability).forEach(function (key) {
33172
33386
  if (key === "default" || key === "__esModule") return;
@@ -33256,7 +33470,7 @@ Object.keys(_WidgetDriver).forEach(function (key) {
33256
33470
  });
33257
33471
  });
33258
33472
 
33259
- },{"./ClientWidgetApi":180,"./Symbols":181,"./WidgetApi":182,"./driver/WidgetDriver":183,"./interfaces/ApiVersion":185,"./interfaces/Capabilities":186,"./interfaces/CapabilitiesAction":187,"./interfaces/ContentLoadedAction":188,"./interfaces/GetOpenIDAction":189,"./interfaces/ICustomWidgetData":190,"./interfaces/IJitsiWidgetData":191,"./interfaces/IRoomAccountData":192,"./interfaces/IRoomEvent":193,"./interfaces/IStickerpickerWidgetData":194,"./interfaces/IWidget":195,"./interfaces/IWidgetApiErrorResponse":196,"./interfaces/IWidgetApiRequest":197,"./interfaces/IWidgetApiResponse":198,"./interfaces/ModalButtonKind":199,"./interfaces/ModalWidgetActions":200,"./interfaces/NavigateAction":201,"./interfaces/OpenIDCredentialsAction":202,"./interfaces/ReadEventAction":203,"./interfaces/ReadRelationsAction":204,"./interfaces/ScreenshotAction":205,"./interfaces/SendEventAction":206,"./interfaces/SendToDeviceAction":207,"./interfaces/SetModalButtonEnabledAction":208,"./interfaces/StickerAction":209,"./interfaces/StickyAction":210,"./interfaces/SupportedVersionsAction":211,"./interfaces/TurnServerActions":212,"./interfaces/VisibilityAction":213,"./interfaces/WidgetApiAction":214,"./interfaces/WidgetApiDirection":215,"./interfaces/WidgetConfigAction":216,"./interfaces/WidgetKind":217,"./interfaces/WidgetType":218,"./models/Widget":219,"./models/WidgetEventCapability":220,"./models/WidgetParser":221,"./models/validation/url":222,"./models/validation/utils":223,"./templating/url-template":224,"./transport/ITransport":225,"./transport/PostmessageTransport":226,"./util/SimpleObservable":227}],185:[function(require,module,exports){
33473
+ },{"./ClientWidgetApi":180,"./Symbols":181,"./WidgetApi":182,"./driver/WidgetDriver":183,"./interfaces/ApiVersion":185,"./interfaces/Capabilities":186,"./interfaces/CapabilitiesAction":187,"./interfaces/ContentLoadedAction":188,"./interfaces/GetMediaConfigAction":189,"./interfaces/GetOpenIDAction":190,"./interfaces/ICustomWidgetData":191,"./interfaces/IJitsiWidgetData":192,"./interfaces/IRoomAccountData":193,"./interfaces/IRoomEvent":194,"./interfaces/IStickerpickerWidgetData":195,"./interfaces/IWidget":196,"./interfaces/IWidgetApiErrorResponse":197,"./interfaces/IWidgetApiRequest":198,"./interfaces/IWidgetApiResponse":199,"./interfaces/ModalButtonKind":200,"./interfaces/ModalWidgetActions":201,"./interfaces/NavigateAction":202,"./interfaces/OpenIDCredentialsAction":203,"./interfaces/ReadEventAction":204,"./interfaces/ReadRelationsAction":205,"./interfaces/ScreenshotAction":206,"./interfaces/SendEventAction":207,"./interfaces/SendToDeviceAction":208,"./interfaces/SetModalButtonEnabledAction":209,"./interfaces/StickerAction":210,"./interfaces/StickyAction":211,"./interfaces/SupportedVersionsAction":212,"./interfaces/TurnServerActions":213,"./interfaces/UploadFileAction":214,"./interfaces/VisibilityAction":215,"./interfaces/WidgetApiAction":216,"./interfaces/WidgetApiDirection":217,"./interfaces/WidgetConfigAction":218,"./interfaces/WidgetKind":219,"./interfaces/WidgetType":220,"./models/Widget":221,"./models/WidgetEventCapability":222,"./models/WidgetParser":223,"./models/validation/url":224,"./models/validation/utils":225,"./templating/url-template":226,"./transport/ITransport":227,"./transport/PostmessageTransport":228,"./util/SimpleObservable":229}],185:[function(require,module,exports){
33260
33474
  "use strict";
33261
33475
 
33262
33476
  Object.defineProperty(exports, "__esModule", {
@@ -33294,12 +33508,13 @@ var UnstableApiVersion = /*#__PURE__*/function (UnstableApiVersion) {
33294
33508
  UnstableApiVersion["MSC3846"] = "town.robin.msc3846";
33295
33509
  UnstableApiVersion["MSC3869"] = "org.matrix.msc3869";
33296
33510
  UnstableApiVersion["MSC3973"] = "org.matrix.msc3973";
33511
+ UnstableApiVersion["MSC4039"] = "org.matrix.msc4039";
33297
33512
  return UnstableApiVersion;
33298
33513
  }({});
33299
33514
  exports.UnstableApiVersion = UnstableApiVersion;
33300
33515
  var CurrentApiVersions = [MatrixApiVersion.Prerelease1, MatrixApiVersion.Prerelease2,
33301
33516
  //MatrixApiVersion.V010,
33302
- UnstableApiVersion.MSC2762, UnstableApiVersion.MSC2871, UnstableApiVersion.MSC2931, UnstableApiVersion.MSC2974, UnstableApiVersion.MSC2876, UnstableApiVersion.MSC3819, UnstableApiVersion.MSC3846, UnstableApiVersion.MSC3869, UnstableApiVersion.MSC3973];
33517
+ UnstableApiVersion.MSC2762, UnstableApiVersion.MSC2871, UnstableApiVersion.MSC2931, UnstableApiVersion.MSC2974, UnstableApiVersion.MSC2876, UnstableApiVersion.MSC3819, UnstableApiVersion.MSC3846, UnstableApiVersion.MSC3869, UnstableApiVersion.MSC3973, UnstableApiVersion.MSC4039];
33303
33518
  exports.CurrentApiVersions = CurrentApiVersions;
33304
33519
 
33305
33520
  },{}],186:[function(require,module,exports){
@@ -33335,6 +33550,7 @@ var MatrixCapabilities = /*#__PURE__*/function (MatrixCapabilities) {
33335
33550
  MatrixCapabilities["MSC2931Navigate"] = "org.matrix.msc2931.navigate";
33336
33551
  MatrixCapabilities["MSC3846TurnServers"] = "town.robin.msc3846.turn_servers";
33337
33552
  MatrixCapabilities["MSC3973UserDirectorySearch"] = "org.matrix.msc3973.user_directory_search";
33553
+ MatrixCapabilities["MSC4039UploadFile"] = "org.matrix.msc4039.upload_file";
33338
33554
  return MatrixCapabilities;
33339
33555
  }({});
33340
33556
  exports.MatrixCapabilities = MatrixCapabilities;
@@ -33389,6 +33605,13 @@ Object.defineProperty(exports, "__esModule", {
33389
33605
  },{}],189:[function(require,module,exports){
33390
33606
  "use strict";
33391
33607
 
33608
+ Object.defineProperty(exports, "__esModule", {
33609
+ value: true
33610
+ });
33611
+
33612
+ },{}],190:[function(require,module,exports){
33613
+ "use strict";
33614
+
33392
33615
  Object.defineProperty(exports, "__esModule", {
33393
33616
  value: true
33394
33617
  });
@@ -33416,13 +33639,6 @@ var OpenIDRequestState = /*#__PURE__*/function (OpenIDRequestState) {
33416
33639
  }({});
33417
33640
  exports.OpenIDRequestState = OpenIDRequestState;
33418
33641
 
33419
- },{}],190:[function(require,module,exports){
33420
- "use strict";
33421
-
33422
- Object.defineProperty(exports, "__esModule", {
33423
- value: true
33424
- });
33425
-
33426
33642
  },{}],191:[function(require,module,exports){
33427
33643
  "use strict";
33428
33644
 
@@ -33461,6 +33677,13 @@ Object.defineProperty(exports, "__esModule", {
33461
33677
  },{}],196:[function(require,module,exports){
33462
33678
  "use strict";
33463
33679
 
33680
+ Object.defineProperty(exports, "__esModule", {
33681
+ value: true
33682
+ });
33683
+
33684
+ },{}],197:[function(require,module,exports){
33685
+ "use strict";
33686
+
33464
33687
  Object.defineProperty(exports, "__esModule", {
33465
33688
  value: true
33466
33689
  });
@@ -33489,21 +33712,21 @@ function isErrorResponse(responseData) {
33489
33712
  return false;
33490
33713
  }
33491
33714
 
33492
- },{}],197:[function(require,module,exports){
33715
+ },{}],198:[function(require,module,exports){
33493
33716
  "use strict";
33494
33717
 
33495
33718
  Object.defineProperty(exports, "__esModule", {
33496
33719
  value: true
33497
33720
  });
33498
33721
 
33499
- },{}],198:[function(require,module,exports){
33722
+ },{}],199:[function(require,module,exports){
33500
33723
  "use strict";
33501
33724
 
33502
33725
  Object.defineProperty(exports, "__esModule", {
33503
33726
  value: true
33504
33727
  });
33505
33728
 
33506
- },{}],199:[function(require,module,exports){
33729
+ },{}],200:[function(require,module,exports){
33507
33730
  "use strict";
33508
33731
 
33509
33732
  Object.defineProperty(exports, "__esModule", {
@@ -33535,7 +33758,7 @@ var ModalButtonKind = /*#__PURE__*/function (ModalButtonKind) {
33535
33758
  }({});
33536
33759
  exports.ModalButtonKind = ModalButtonKind;
33537
33760
 
33538
- },{}],200:[function(require,module,exports){
33761
+ },{}],201:[function(require,module,exports){
33539
33762
  "use strict";
33540
33763
 
33541
33764
  Object.defineProperty(exports, "__esModule", {
@@ -33566,13 +33789,6 @@ var BuiltInModalButtonID = /*#__PURE__*/function (BuiltInModalButtonID) {
33566
33789
  // Types for a normal widget being notified that the modal widget it opened has been closed
33567
33790
  exports.BuiltInModalButtonID = BuiltInModalButtonID;
33568
33791
 
33569
- },{}],201:[function(require,module,exports){
33570
- "use strict";
33571
-
33572
- Object.defineProperty(exports, "__esModule", {
33573
- value: true
33574
- });
33575
-
33576
33792
  },{}],202:[function(require,module,exports){
33577
33793
  "use strict";
33578
33794
 
@@ -33660,6 +33876,20 @@ Object.defineProperty(exports, "__esModule", {
33660
33876
  },{}],214:[function(require,module,exports){
33661
33877
  "use strict";
33662
33878
 
33879
+ Object.defineProperty(exports, "__esModule", {
33880
+ value: true
33881
+ });
33882
+
33883
+ },{}],215:[function(require,module,exports){
33884
+ "use strict";
33885
+
33886
+ Object.defineProperty(exports, "__esModule", {
33887
+ value: true
33888
+ });
33889
+
33890
+ },{}],216:[function(require,module,exports){
33891
+ "use strict";
33892
+
33663
33893
  Object.defineProperty(exports, "__esModule", {
33664
33894
  value: true
33665
33895
  });
@@ -33714,11 +33944,13 @@ var WidgetApiFromWidgetAction = /*#__PURE__*/function (WidgetApiFromWidgetAction
33714
33944
  WidgetApiFromWidgetAction["MSC2974RenegotiateCapabilities"] = "org.matrix.msc2974.request_capabilities";
33715
33945
  WidgetApiFromWidgetAction["MSC3869ReadRelations"] = "org.matrix.msc3869.read_relations";
33716
33946
  WidgetApiFromWidgetAction["MSC3973UserDirectorySearch"] = "org.matrix.msc3973.user_directory_search";
33947
+ WidgetApiFromWidgetAction["MSC4039GetMediaConfigAction"] = "org.matrix.msc4039.get_media_config";
33948
+ WidgetApiFromWidgetAction["MSC4039UploadFileAction"] = "org.matrix.msc4039.upload_file";
33717
33949
  return WidgetApiFromWidgetAction;
33718
33950
  }({});
33719
33951
  exports.WidgetApiFromWidgetAction = WidgetApiFromWidgetAction;
33720
33952
 
33721
- },{}],215:[function(require,module,exports){
33953
+ },{}],217:[function(require,module,exports){
33722
33954
  "use strict";
33723
33955
 
33724
33956
  Object.defineProperty(exports, "__esModule", {
@@ -33757,14 +33989,14 @@ function invertedDirection(dir) {
33757
33989
  }
33758
33990
  }
33759
33991
 
33760
- },{}],216:[function(require,module,exports){
33992
+ },{}],218:[function(require,module,exports){
33761
33993
  "use strict";
33762
33994
 
33763
33995
  Object.defineProperty(exports, "__esModule", {
33764
33996
  value: true
33765
33997
  });
33766
33998
 
33767
- },{}],217:[function(require,module,exports){
33999
+ },{}],219:[function(require,module,exports){
33768
34000
  "use strict";
33769
34001
 
33770
34002
  Object.defineProperty(exports, "__esModule", {
@@ -33794,7 +34026,7 @@ var WidgetKind = /*#__PURE__*/function (WidgetKind) {
33794
34026
  }({});
33795
34027
  exports.WidgetKind = WidgetKind;
33796
34028
 
33797
- },{}],218:[function(require,module,exports){
34029
+ },{}],220:[function(require,module,exports){
33798
34030
  "use strict";
33799
34031
 
33800
34032
  Object.defineProperty(exports, "__esModule", {
@@ -33824,7 +34056,7 @@ var MatrixWidgetType = /*#__PURE__*/function (MatrixWidgetType) {
33824
34056
  }({});
33825
34057
  exports.MatrixWidgetType = MatrixWidgetType;
33826
34058
 
33827
- },{}],219:[function(require,module,exports){
34059
+ },{}],221:[function(require,module,exports){
33828
34060
  "use strict";
33829
34061
 
33830
34062
  Object.defineProperty(exports, "__esModule", {
@@ -33967,7 +34199,7 @@ var Widget = /*#__PURE__*/function () {
33967
34199
  }();
33968
34200
  exports.Widget = Widget;
33969
34201
 
33970
- },{"..":184,"./validation/utils":223}],220:[function(require,module,exports){
34202
+ },{"..":184,"./validation/utils":225}],222:[function(require,module,exports){
33971
34203
  "use strict";
33972
34204
 
33973
34205
  Object.defineProperty(exports, "__esModule", {
@@ -34226,7 +34458,7 @@ var WidgetEventCapability = /*#__PURE__*/function () {
34226
34458
  }();
34227
34459
  exports.WidgetEventCapability = WidgetEventCapability;
34228
34460
 
34229
- },{}],221:[function(require,module,exports){
34461
+ },{}],223:[function(require,module,exports){
34230
34462
  "use strict";
34231
34463
 
34232
34464
  Object.defineProperty(exports, "__esModule", {
@@ -34379,7 +34611,7 @@ var WidgetParser = /*#__PURE__*/function () {
34379
34611
  }();
34380
34612
  exports.WidgetParser = WidgetParser;
34381
34613
 
34382
- },{"./Widget":219,"./validation/url":222}],222:[function(require,module,exports){
34614
+ },{"./Widget":221,"./validation/url":224}],224:[function(require,module,exports){
34383
34615
  "use strict";
34384
34616
 
34385
34617
  Object.defineProperty(exports, "__esModule", {
@@ -34419,7 +34651,7 @@ function isValidUrl(val) {
34419
34651
  }
34420
34652
  }
34421
34653
 
34422
- },{}],223:[function(require,module,exports){
34654
+ },{}],225:[function(require,module,exports){
34423
34655
  "use strict";
34424
34656
 
34425
34657
  Object.defineProperty(exports, "__esModule", {
@@ -34448,7 +34680,7 @@ function assertPresent(obj, key) {
34448
34680
  }
34449
34681
  }
34450
34682
 
34451
- },{}],224:[function(require,module,exports){
34683
+ },{}],226:[function(require,module,exports){
34452
34684
  "use strict";
34453
34685
 
34454
34686
  Object.defineProperty(exports, "__esModule", {
@@ -34485,7 +34717,9 @@ function runTemplate(url, widget, params) {
34485
34717
  'org.matrix.msc2873.client_theme': params.clientTheme || "",
34486
34718
  'org.matrix.msc2873.client_language': params.clientLanguage || "",
34487
34719
  // TODO: Convert to stable (https://github.com/matrix-org/matrix-spec-proposals/pull/3819)
34488
- 'org.matrix.msc3819.matrix_device_id': params.deviceId || ""
34720
+ 'org.matrix.msc3819.matrix_device_id': params.deviceId || "",
34721
+ // TODO: Convert to stable (https://github.com/matrix-org/matrix-spec-proposals/pull/4039)
34722
+ 'org.matrix.msc4039.matrix_base_url': params.baseUrl || ""
34489
34723
  });
34490
34724
  var result = url;
34491
34725
  for (var _i = 0, _Object$keys = Object.keys(variables); _i < _Object$keys.length; _i++) {
@@ -34508,14 +34742,14 @@ function toString(a) {
34508
34742
  return String(a);
34509
34743
  }
34510
34744
 
34511
- },{}],225:[function(require,module,exports){
34745
+ },{}],227:[function(require,module,exports){
34512
34746
  "use strict";
34513
34747
 
34514
34748
  Object.defineProperty(exports, "__esModule", {
34515
34749
  value: true
34516
34750
  });
34517
34751
 
34518
- },{}],226:[function(require,module,exports){
34752
+ },{}],228:[function(require,module,exports){
34519
34753
  "use strict";
34520
34754
 
34521
34755
  Object.defineProperty(exports, "__esModule", {
@@ -34738,7 +34972,7 @@ var PostmessageTransport = /*#__PURE__*/function (_EventEmitter) {
34738
34972
  }(_events.EventEmitter);
34739
34973
  exports.PostmessageTransport = PostmessageTransport;
34740
34974
 
34741
- },{"..":184,"events":109}],227:[function(require,module,exports){
34975
+ },{"..":184,"events":109}],229:[function(require,module,exports){
34742
34976
  "use strict";
34743
34977
 
34744
34978
  Object.defineProperty(exports, "__esModule", {
@@ -34807,7 +35041,7 @@ var SimpleObservable = /*#__PURE__*/function () {
34807
35041
  }();
34808
35042
  exports.SimpleObservable = SimpleObservable;
34809
35043
 
34810
- },{}],228:[function(require,module,exports){
35044
+ },{}],230:[function(require,module,exports){
34811
35045
  'use strict'
34812
35046
  var inherits = require('inherits')
34813
35047
  var HashBase = require('hash-base')
@@ -34955,7 +35189,7 @@ function fnI (a, b, c, d, m, k, s) {
34955
35189
 
34956
35190
  module.exports = MD5
34957
35191
 
34958
- },{"hash-base":121,"inherits":151,"safe-buffer":258}],229:[function(require,module,exports){
35192
+ },{"hash-base":121,"inherits":151,"safe-buffer":260}],231:[function(require,module,exports){
34959
35193
  var bn = require('bn.js');
34960
35194
  var brorand = require('brorand');
34961
35195
 
@@ -35072,7 +35306,7 @@ MillerRabin.prototype.getDivisor = function getDivisor(n, k) {
35072
35306
  return false;
35073
35307
  };
35074
35308
 
35075
- },{"bn.js":18,"brorand":19}],230:[function(require,module,exports){
35309
+ },{"bn.js":18,"brorand":19}],232:[function(require,module,exports){
35076
35310
  module.exports = assert;
35077
35311
 
35078
35312
  function assert(val, msg) {
@@ -35085,7 +35319,7 @@ assert.equal = function assertEqual(l, r, msg) {
35085
35319
  throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));
35086
35320
  };
35087
35321
 
35088
- },{}],231:[function(require,module,exports){
35322
+ },{}],233:[function(require,module,exports){
35089
35323
  'use strict';
35090
35324
 
35091
35325
  var utils = exports;
@@ -35145,7 +35379,7 @@ utils.encode = function encode(arr, enc) {
35145
35379
  return arr;
35146
35380
  };
35147
35381
 
35148
- },{}],232:[function(require,module,exports){
35382
+ },{}],234:[function(require,module,exports){
35149
35383
  "use strict";
35150
35384
  var __create = Object.create;
35151
35385
  var __defProp = Object.defineProperty;
@@ -38217,7 +38451,7 @@ var Version = version;
38217
38451
  });
38218
38452
 
38219
38453
 
38220
- },{"crypto-js/core.js":79,"crypto-js/enc-base64.js":80,"crypto-js/enc-utf8.js":81,"crypto-js/sha256.js":82,"jwt-decode":156}],233:[function(require,module,exports){
38454
+ },{"crypto-js/core.js":79,"crypto-js/enc-base64.js":80,"crypto-js/enc-utf8.js":81,"crypto-js/sha256.js":82,"jwt-decode":156}],235:[function(require,module,exports){
38221
38455
  'use strict';
38222
38456
  const retry = require('retry');
38223
38457
 
@@ -38304,7 +38538,7 @@ module.exports.default = pRetry;
38304
38538
 
38305
38539
  module.exports.AbortError = AbortError;
38306
38540
 
38307
- },{"retry":254}],234:[function(require,module,exports){
38541
+ },{"retry":256}],236:[function(require,module,exports){
38308
38542
  module.exports={"2.16.840.1.101.3.4.1.1": "aes-128-ecb",
38309
38543
  "2.16.840.1.101.3.4.1.2": "aes-128-cbc",
38310
38544
  "2.16.840.1.101.3.4.1.3": "aes-128-ofb",
@@ -38318,7 +38552,7 @@ module.exports={"2.16.840.1.101.3.4.1.1": "aes-128-ecb",
38318
38552
  "2.16.840.1.101.3.4.1.43": "aes-256-ofb",
38319
38553
  "2.16.840.1.101.3.4.1.44": "aes-256-cfb"
38320
38554
  }
38321
- },{}],235:[function(require,module,exports){
38555
+ },{}],237:[function(require,module,exports){
38322
38556
  // from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js
38323
38557
  // Fedor, you are amazing.
38324
38558
  'use strict'
@@ -38442,7 +38676,7 @@ exports.signature = asn1.define('signature', function () {
38442
38676
  )
38443
38677
  })
38444
38678
 
38445
- },{"./certificate":236,"asn1.js":2}],236:[function(require,module,exports){
38679
+ },{"./certificate":238,"asn1.js":2}],238:[function(require,module,exports){
38446
38680
  // from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js
38447
38681
  // thanks to @Rantanen
38448
38682
 
@@ -38533,7 +38767,7 @@ var X509Certificate = asn.define('X509Certificate', function () {
38533
38767
 
38534
38768
  module.exports = X509Certificate
38535
38769
 
38536
- },{"asn1.js":2}],237:[function(require,module,exports){
38770
+ },{"asn1.js":2}],239:[function(require,module,exports){
38537
38771
  // adapted from https://github.com/apatil/pemstrip
38538
38772
  var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m
38539
38773
  var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m
@@ -38566,7 +38800,7 @@ module.exports = function (okey, password) {
38566
38800
  }
38567
38801
  }
38568
38802
 
38569
- },{"browserify-aes":23,"evp_bytestokey":110,"safe-buffer":258}],238:[function(require,module,exports){
38803
+ },{"browserify-aes":23,"evp_bytestokey":110,"safe-buffer":260}],240:[function(require,module,exports){
38570
38804
  var asn1 = require('./asn1')
38571
38805
  var aesid = require('./aesid.json')
38572
38806
  var fixProc = require('./fixProc')
@@ -38675,11 +38909,11 @@ function decrypt (data, password) {
38675
38909
  return Buffer.concat(out)
38676
38910
  }
38677
38911
 
38678
- },{"./aesid.json":234,"./asn1":235,"./fixProc":237,"browserify-aes":23,"pbkdf2":239,"safe-buffer":258}],239:[function(require,module,exports){
38912
+ },{"./aesid.json":236,"./asn1":237,"./fixProc":239,"browserify-aes":23,"pbkdf2":241,"safe-buffer":260}],241:[function(require,module,exports){
38679
38913
  exports.pbkdf2 = require('./lib/async')
38680
38914
  exports.pbkdf2Sync = require('./lib/sync')
38681
38915
 
38682
- },{"./lib/async":240,"./lib/sync":243}],240:[function(require,module,exports){
38916
+ },{"./lib/async":242,"./lib/sync":245}],242:[function(require,module,exports){
38683
38917
  (function (global){(function (){
38684
38918
  var Buffer = require('safe-buffer').Buffer
38685
38919
 
@@ -38802,7 +39036,7 @@ module.exports = function (password, salt, iterations, keylen, digest, callback)
38802
39036
 
38803
39037
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
38804
39038
 
38805
- },{"./default-encoding":241,"./precondition":242,"./sync":243,"./to-buffer":244,"safe-buffer":258}],241:[function(require,module,exports){
39039
+ },{"./default-encoding":243,"./precondition":244,"./sync":245,"./to-buffer":246,"safe-buffer":260}],243:[function(require,module,exports){
38806
39040
  (function (process,global){(function (){
38807
39041
  var defaultEncoding
38808
39042
  /* istanbul ignore next */
@@ -38819,7 +39053,7 @@ module.exports = defaultEncoding
38819
39053
 
38820
39054
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
38821
39055
 
38822
- },{"_process":245}],242:[function(require,module,exports){
39056
+ },{"_process":247}],244:[function(require,module,exports){
38823
39057
  var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs
38824
39058
 
38825
39059
  module.exports = function (iterations, keylen) {
@@ -38840,7 +39074,7 @@ module.exports = function (iterations, keylen) {
38840
39074
  }
38841
39075
  }
38842
39076
 
38843
- },{}],243:[function(require,module,exports){
39077
+ },{}],245:[function(require,module,exports){
38844
39078
  var md5 = require('create-hash/md5')
38845
39079
  var RIPEMD160 = require('ripemd160')
38846
39080
  var sha = require('sha.js')
@@ -38947,7 +39181,7 @@ function pbkdf2 (password, salt, iterations, keylen, digest) {
38947
39181
 
38948
39182
  module.exports = pbkdf2
38949
39183
 
38950
- },{"./default-encoding":241,"./precondition":242,"./to-buffer":244,"create-hash/md5":75,"ripemd160":257,"safe-buffer":258,"sha.js":265}],244:[function(require,module,exports){
39184
+ },{"./default-encoding":243,"./precondition":244,"./to-buffer":246,"create-hash/md5":75,"ripemd160":259,"safe-buffer":260,"sha.js":267}],246:[function(require,module,exports){
38951
39185
  var Buffer = require('safe-buffer').Buffer
38952
39186
 
38953
39187
  module.exports = function (thing, encoding, name) {
@@ -38962,7 +39196,7 @@ module.exports = function (thing, encoding, name) {
38962
39196
  }
38963
39197
  }
38964
39198
 
38965
- },{"safe-buffer":258}],245:[function(require,module,exports){
39199
+ },{"safe-buffer":260}],247:[function(require,module,exports){
38966
39200
  // shim for using process in browser
38967
39201
  var process = module.exports = {};
38968
39202
 
@@ -39148,7 +39382,7 @@ process.chdir = function (dir) {
39148
39382
  };
39149
39383
  process.umask = function() { return 0; };
39150
39384
 
39151
- },{}],246:[function(require,module,exports){
39385
+ },{}],248:[function(require,module,exports){
39152
39386
  exports.publicEncrypt = require('./publicEncrypt')
39153
39387
  exports.privateDecrypt = require('./privateDecrypt')
39154
39388
 
@@ -39160,7 +39394,7 @@ exports.publicDecrypt = function publicDecrypt (key, buf) {
39160
39394
  return exports.privateDecrypt(key, buf, true)
39161
39395
  }
39162
39396
 
39163
- },{"./privateDecrypt":248,"./publicEncrypt":249}],247:[function(require,module,exports){
39397
+ },{"./privateDecrypt":250,"./publicEncrypt":251}],249:[function(require,module,exports){
39164
39398
  var createHash = require('create-hash')
39165
39399
  var Buffer = require('safe-buffer').Buffer
39166
39400
 
@@ -39181,7 +39415,7 @@ function i2ops (c) {
39181
39415
  return out
39182
39416
  }
39183
39417
 
39184
- },{"create-hash":74,"safe-buffer":258}],248:[function(require,module,exports){
39418
+ },{"create-hash":74,"safe-buffer":260}],250:[function(require,module,exports){
39185
39419
  var parseKeys = require('parse-asn1')
39186
39420
  var mgf = require('./mgf')
39187
39421
  var xor = require('./xor')
@@ -39288,7 +39522,7 @@ function compare (a, b) {
39288
39522
  return dif
39289
39523
  }
39290
39524
 
39291
- },{"./mgf":247,"./withPublic":250,"./xor":251,"bn.js":18,"browserify-rsa":41,"create-hash":74,"parse-asn1":238,"safe-buffer":258}],249:[function(require,module,exports){
39525
+ },{"./mgf":249,"./withPublic":252,"./xor":253,"bn.js":18,"browserify-rsa":41,"create-hash":74,"parse-asn1":240,"safe-buffer":260}],251:[function(require,module,exports){
39292
39526
  var parseKeys = require('parse-asn1')
39293
39527
  var randomBytes = require('randombytes')
39294
39528
  var createHash = require('create-hash')
@@ -39378,7 +39612,7 @@ function nonZero (len) {
39378
39612
  return out
39379
39613
  }
39380
39614
 
39381
- },{"./mgf":247,"./withPublic":250,"./xor":251,"bn.js":18,"browserify-rsa":41,"create-hash":74,"parse-asn1":238,"randombytes":252,"safe-buffer":258}],250:[function(require,module,exports){
39615
+ },{"./mgf":249,"./withPublic":252,"./xor":253,"bn.js":18,"browserify-rsa":41,"create-hash":74,"parse-asn1":240,"randombytes":254,"safe-buffer":260}],252:[function(require,module,exports){
39382
39616
  var BN = require('bn.js')
39383
39617
  var Buffer = require('safe-buffer').Buffer
39384
39618
 
@@ -39392,7 +39626,7 @@ function withPublic (paddedMsg, key) {
39392
39626
 
39393
39627
  module.exports = withPublic
39394
39628
 
39395
- },{"bn.js":18,"safe-buffer":258}],251:[function(require,module,exports){
39629
+ },{"bn.js":18,"safe-buffer":260}],253:[function(require,module,exports){
39396
39630
  module.exports = function xor (a, b) {
39397
39631
  var len = a.length
39398
39632
  var i = -1
@@ -39402,7 +39636,7 @@ module.exports = function xor (a, b) {
39402
39636
  return a
39403
39637
  }
39404
39638
 
39405
- },{}],252:[function(require,module,exports){
39639
+ },{}],254:[function(require,module,exports){
39406
39640
  (function (process,global){(function (){
39407
39641
  'use strict'
39408
39642
 
@@ -39457,7 +39691,7 @@ function randomBytes (size, cb) {
39457
39691
 
39458
39692
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
39459
39693
 
39460
- },{"_process":245,"safe-buffer":258}],253:[function(require,module,exports){
39694
+ },{"_process":247,"safe-buffer":260}],255:[function(require,module,exports){
39461
39695
  (function (process,global){(function (){
39462
39696
  'use strict'
39463
39697
 
@@ -39570,9 +39804,9 @@ function randomFillSync (buf, offset, size) {
39570
39804
 
39571
39805
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
39572
39806
 
39573
- },{"_process":245,"randombytes":252,"safe-buffer":258}],254:[function(require,module,exports){
39807
+ },{"_process":247,"randombytes":254,"safe-buffer":260}],256:[function(require,module,exports){
39574
39808
  module.exports = require('./lib/retry');
39575
- },{"./lib/retry":255}],255:[function(require,module,exports){
39809
+ },{"./lib/retry":257}],257:[function(require,module,exports){
39576
39810
  var RetryOperation = require('./retry_operation');
39577
39811
 
39578
39812
  exports.operation = function(options) {
@@ -39674,7 +39908,7 @@ exports.wrap = function(obj, options, methods) {
39674
39908
  }
39675
39909
  };
39676
39910
 
39677
- },{"./retry_operation":256}],256:[function(require,module,exports){
39911
+ },{"./retry_operation":258}],258:[function(require,module,exports){
39678
39912
  function RetryOperation(timeouts, options) {
39679
39913
  // Compatibility for the old (timeouts, retryForever) signature
39680
39914
  if (typeof options === 'boolean') {
@@ -39838,7 +40072,7 @@ RetryOperation.prototype.mainError = function() {
39838
40072
  return mainError;
39839
40073
  };
39840
40074
 
39841
- },{}],257:[function(require,module,exports){
40075
+ },{}],259:[function(require,module,exports){
39842
40076
  'use strict'
39843
40077
  var Buffer = require('buffer').Buffer
39844
40078
  var inherits = require('inherits')
@@ -40003,7 +40237,7 @@ function fn5 (a, b, c, d, e, m, k, s) {
40003
40237
 
40004
40238
  module.exports = RIPEMD160
40005
40239
 
40006
- },{"buffer":68,"hash-base":121,"inherits":151}],258:[function(require,module,exports){
40240
+ },{"buffer":68,"hash-base":121,"inherits":151}],260:[function(require,module,exports){
40007
40241
  /*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
40008
40242
  /* eslint-disable node/no-deprecated-api */
40009
40243
  var buffer = require('buffer')
@@ -40070,7 +40304,7 @@ SafeBuffer.allocUnsafeSlow = function (size) {
40070
40304
  return buffer.SlowBuffer(size)
40071
40305
  }
40072
40306
 
40073
- },{"buffer":68}],259:[function(require,module,exports){
40307
+ },{"buffer":68}],261:[function(require,module,exports){
40074
40308
  (function (process){(function (){
40075
40309
  /* eslint-disable node/no-deprecated-api */
40076
40310
 
@@ -40152,7 +40386,7 @@ module.exports = safer
40152
40386
 
40153
40387
  }).call(this)}).call(this,require('_process'))
40154
40388
 
40155
- },{"_process":245,"buffer":68}],260:[function(require,module,exports){
40389
+ },{"_process":247,"buffer":68}],262:[function(require,module,exports){
40156
40390
  var grammar = module.exports = {
40157
40391
  v: [{
40158
40392
  name: 'version',
@@ -40648,7 +40882,7 @@ Object.keys(grammar).forEach(function (key) {
40648
40882
  });
40649
40883
  });
40650
40884
 
40651
- },{}],261:[function(require,module,exports){
40885
+ },{}],263:[function(require,module,exports){
40652
40886
  var parser = require('./parser');
40653
40887
  var writer = require('./writer');
40654
40888
 
@@ -40661,7 +40895,7 @@ exports.parseRemoteCandidates = parser.parseRemoteCandidates;
40661
40895
  exports.parseImageAttributes = parser.parseImageAttributes;
40662
40896
  exports.parseSimulcastStreamList = parser.parseSimulcastStreamList;
40663
40897
 
40664
- },{"./parser":262,"./writer":263}],262:[function(require,module,exports){
40898
+ },{"./parser":264,"./writer":265}],264:[function(require,module,exports){
40665
40899
  var toIntIfInt = function (v) {
40666
40900
  return String(Number(v)) === v ? Number(v) : v;
40667
40901
  };
@@ -40787,7 +41021,7 @@ exports.parseSimulcastStreamList = function (str) {
40787
41021
  });
40788
41022
  };
40789
41023
 
40790
- },{"./grammar":260}],263:[function(require,module,exports){
41024
+ },{"./grammar":262}],265:[function(require,module,exports){
40791
41025
  var grammar = require('./grammar');
40792
41026
 
40793
41027
  // customized util.format - discards excess arguments and can void middle ones
@@ -40903,7 +41137,7 @@ module.exports = function (session, opts) {
40903
41137
  return sdp.join('\r\n') + '\r\n';
40904
41138
  };
40905
41139
 
40906
- },{"./grammar":260}],264:[function(require,module,exports){
41140
+ },{"./grammar":262}],266:[function(require,module,exports){
40907
41141
  var Buffer = require('safe-buffer').Buffer
40908
41142
 
40909
41143
  // prototype class for hash functions
@@ -40986,7 +41220,7 @@ Hash.prototype._update = function () {
40986
41220
 
40987
41221
  module.exports = Hash
40988
41222
 
40989
- },{"safe-buffer":258}],265:[function(require,module,exports){
41223
+ },{"safe-buffer":260}],267:[function(require,module,exports){
40990
41224
  var exports = module.exports = function SHA (algorithm) {
40991
41225
  algorithm = algorithm.toLowerCase()
40992
41226
 
@@ -41003,7 +41237,7 @@ exports.sha256 = require('./sha256')
41003
41237
  exports.sha384 = require('./sha384')
41004
41238
  exports.sha512 = require('./sha512')
41005
41239
 
41006
- },{"./sha":266,"./sha1":267,"./sha224":268,"./sha256":269,"./sha384":270,"./sha512":271}],266:[function(require,module,exports){
41240
+ },{"./sha":268,"./sha1":269,"./sha224":270,"./sha256":271,"./sha384":272,"./sha512":273}],268:[function(require,module,exports){
41007
41241
  /*
41008
41242
  * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined
41009
41243
  * in FIPS PUB 180-1
@@ -41099,7 +41333,7 @@ Sha.prototype._hash = function () {
41099
41333
 
41100
41334
  module.exports = Sha
41101
41335
 
41102
- },{"./hash":264,"inherits":151,"safe-buffer":258}],267:[function(require,module,exports){
41336
+ },{"./hash":266,"inherits":151,"safe-buffer":260}],269:[function(require,module,exports){
41103
41337
  /*
41104
41338
  * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
41105
41339
  * in FIPS PUB 180-1
@@ -41200,7 +41434,7 @@ Sha1.prototype._hash = function () {
41200
41434
 
41201
41435
  module.exports = Sha1
41202
41436
 
41203
- },{"./hash":264,"inherits":151,"safe-buffer":258}],268:[function(require,module,exports){
41437
+ },{"./hash":266,"inherits":151,"safe-buffer":260}],270:[function(require,module,exports){
41204
41438
  /**
41205
41439
  * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
41206
41440
  * in FIPS 180-2
@@ -41255,7 +41489,7 @@ Sha224.prototype._hash = function () {
41255
41489
 
41256
41490
  module.exports = Sha224
41257
41491
 
41258
- },{"./hash":264,"./sha256":269,"inherits":151,"safe-buffer":258}],269:[function(require,module,exports){
41492
+ },{"./hash":266,"./sha256":271,"inherits":151,"safe-buffer":260}],271:[function(require,module,exports){
41259
41493
  /**
41260
41494
  * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined
41261
41495
  * in FIPS 180-2
@@ -41392,7 +41626,7 @@ Sha256.prototype._hash = function () {
41392
41626
 
41393
41627
  module.exports = Sha256
41394
41628
 
41395
- },{"./hash":264,"inherits":151,"safe-buffer":258}],270:[function(require,module,exports){
41629
+ },{"./hash":266,"inherits":151,"safe-buffer":260}],272:[function(require,module,exports){
41396
41630
  var inherits = require('inherits')
41397
41631
  var SHA512 = require('./sha512')
41398
41632
  var Hash = require('./hash')
@@ -41451,7 +41685,7 @@ Sha384.prototype._hash = function () {
41451
41685
 
41452
41686
  module.exports = Sha384
41453
41687
 
41454
- },{"./hash":264,"./sha512":271,"inherits":151,"safe-buffer":258}],271:[function(require,module,exports){
41688
+ },{"./hash":266,"./sha512":273,"inherits":151,"safe-buffer":260}],273:[function(require,module,exports){
41455
41689
  var inherits = require('inherits')
41456
41690
  var Hash = require('./hash')
41457
41691
  var Buffer = require('safe-buffer').Buffer
@@ -41713,7 +41947,7 @@ Sha512.prototype._hash = function () {
41713
41947
 
41714
41948
  module.exports = Sha512
41715
41949
 
41716
- },{"./hash":264,"inherits":151,"safe-buffer":258}],272:[function(require,module,exports){
41950
+ },{"./hash":266,"inherits":151,"safe-buffer":260}],274:[function(require,module,exports){
41717
41951
  // Copyright Joyent, Inc. and other Node contributors.
41718
41952
  //
41719
41953
  // Permission is hereby granted, free of charge, to any person obtaining a
@@ -41844,9 +42078,9 @@ Stream.prototype.pipe = function(dest, options) {
41844
42078
  return dest;
41845
42079
  };
41846
42080
 
41847
- },{"events":109,"inherits":151,"readable-stream/lib/_stream_duplex.js":274,"readable-stream/lib/_stream_passthrough.js":275,"readable-stream/lib/_stream_readable.js":276,"readable-stream/lib/_stream_transform.js":277,"readable-stream/lib/_stream_writable.js":278,"readable-stream/lib/internal/streams/end-of-stream.js":282,"readable-stream/lib/internal/streams/pipeline.js":284}],273:[function(require,module,exports){
42081
+ },{"events":109,"inherits":151,"readable-stream/lib/_stream_duplex.js":276,"readable-stream/lib/_stream_passthrough.js":277,"readable-stream/lib/_stream_readable.js":278,"readable-stream/lib/_stream_transform.js":279,"readable-stream/lib/_stream_writable.js":280,"readable-stream/lib/internal/streams/end-of-stream.js":284,"readable-stream/lib/internal/streams/pipeline.js":286}],275:[function(require,module,exports){
41848
42082
  arguments[4][50][0].apply(exports,arguments)
41849
- },{"dup":50}],274:[function(require,module,exports){
42083
+ },{"dup":50}],276:[function(require,module,exports){
41850
42084
  (function (process){(function (){
41851
42085
  // Copyright Joyent, Inc. and other Node contributors.
41852
42086
  //
@@ -41976,9 +42210,9 @@ Object.defineProperty(Duplex.prototype, 'destroyed', {
41976
42210
  });
41977
42211
  }).call(this)}).call(this,require('_process'))
41978
42212
 
41979
- },{"./_stream_readable":276,"./_stream_writable":278,"_process":245,"inherits":151}],275:[function(require,module,exports){
42213
+ },{"./_stream_readable":278,"./_stream_writable":280,"_process":247,"inherits":151}],277:[function(require,module,exports){
41980
42214
  arguments[4][52][0].apply(exports,arguments)
41981
- },{"./_stream_transform":277,"dup":52,"inherits":151}],276:[function(require,module,exports){
42215
+ },{"./_stream_transform":279,"dup":52,"inherits":151}],278:[function(require,module,exports){
41982
42216
  (function (process,global){(function (){
41983
42217
  // Copyright Joyent, Inc. and other Node contributors.
41984
42218
  //
@@ -43009,9 +43243,9 @@ function indexOf(xs, x) {
43009
43243
  }
43010
43244
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
43011
43245
 
43012
- },{"../errors":273,"./_stream_duplex":274,"./internal/streams/async_iterator":279,"./internal/streams/buffer_list":280,"./internal/streams/destroy":281,"./internal/streams/from":283,"./internal/streams/state":285,"./internal/streams/stream":286,"_process":245,"buffer":68,"events":109,"inherits":151,"string_decoder/":287,"util":20}],277:[function(require,module,exports){
43246
+ },{"../errors":275,"./_stream_duplex":276,"./internal/streams/async_iterator":281,"./internal/streams/buffer_list":282,"./internal/streams/destroy":283,"./internal/streams/from":285,"./internal/streams/state":287,"./internal/streams/stream":288,"_process":247,"buffer":68,"events":109,"inherits":151,"string_decoder/":289,"util":20}],279:[function(require,module,exports){
43013
43247
  arguments[4][54][0].apply(exports,arguments)
43014
- },{"../errors":273,"./_stream_duplex":274,"dup":54,"inherits":151}],278:[function(require,module,exports){
43248
+ },{"../errors":275,"./_stream_duplex":276,"dup":54,"inherits":151}],280:[function(require,module,exports){
43015
43249
  (function (process,global){(function (){
43016
43250
  // Copyright Joyent, Inc. and other Node contributors.
43017
43251
  //
@@ -43656,7 +43890,7 @@ Writable.prototype._destroy = function (err, cb) {
43656
43890
  };
43657
43891
  }).call(this)}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
43658
43892
 
43659
- },{"../errors":273,"./_stream_duplex":274,"./internal/streams/destroy":281,"./internal/streams/state":285,"./internal/streams/stream":286,"_process":245,"buffer":68,"inherits":151,"util-deprecate":291}],279:[function(require,module,exports){
43893
+ },{"../errors":275,"./_stream_duplex":276,"./internal/streams/destroy":283,"./internal/streams/state":287,"./internal/streams/stream":288,"_process":247,"buffer":68,"inherits":151,"util-deprecate":293}],281:[function(require,module,exports){
43660
43894
  (function (process){(function (){
43661
43895
  'use strict';
43662
43896
 
@@ -43840,9 +44074,9 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat
43840
44074
  module.exports = createReadableStreamAsyncIterator;
43841
44075
  }).call(this)}).call(this,require('_process'))
43842
44076
 
43843
- },{"./end-of-stream":282,"_process":245}],280:[function(require,module,exports){
44077
+ },{"./end-of-stream":284,"_process":247}],282:[function(require,module,exports){
43844
44078
  arguments[4][57][0].apply(exports,arguments)
43845
- },{"buffer":68,"dup":57,"util":20}],281:[function(require,module,exports){
44079
+ },{"buffer":68,"dup":57,"util":20}],283:[function(require,module,exports){
43846
44080
  (function (process){(function (){
43847
44081
  'use strict';
43848
44082
 
@@ -43942,17 +44176,17 @@ module.exports = {
43942
44176
  };
43943
44177
  }).call(this)}).call(this,require('_process'))
43944
44178
 
43945
- },{"_process":245}],282:[function(require,module,exports){
44179
+ },{"_process":247}],284:[function(require,module,exports){
43946
44180
  arguments[4][59][0].apply(exports,arguments)
43947
- },{"../../../errors":273,"dup":59}],283:[function(require,module,exports){
44181
+ },{"../../../errors":275,"dup":59}],285:[function(require,module,exports){
43948
44182
  arguments[4][60][0].apply(exports,arguments)
43949
- },{"dup":60}],284:[function(require,module,exports){
44183
+ },{"dup":60}],286:[function(require,module,exports){
43950
44184
  arguments[4][61][0].apply(exports,arguments)
43951
- },{"../../../errors":273,"./end-of-stream":282,"dup":61}],285:[function(require,module,exports){
44185
+ },{"../../../errors":275,"./end-of-stream":284,"dup":61}],287:[function(require,module,exports){
43952
44186
  arguments[4][62][0].apply(exports,arguments)
43953
- },{"../../../errors":273,"dup":62}],286:[function(require,module,exports){
44187
+ },{"../../../errors":275,"dup":62}],288:[function(require,module,exports){
43954
44188
  arguments[4][63][0].apply(exports,arguments)
43955
- },{"dup":63,"events":109}],287:[function(require,module,exports){
44189
+ },{"dup":63,"events":109}],289:[function(require,module,exports){
43956
44190
  // Copyright Joyent, Inc. and other Node contributors.
43957
44191
  //
43958
44192
  // Permission is hereby granted, free of charge, to any person obtaining a
@@ -44249,7 +44483,7 @@ function simpleWrite(buf) {
44249
44483
  function simpleEnd(buf) {
44250
44484
  return buf && buf.length ? this.write(buf) : '';
44251
44485
  }
44252
- },{"safe-buffer":258}],288:[function(require,module,exports){
44486
+ },{"safe-buffer":260}],290:[function(require,module,exports){
44253
44487
  (function (setImmediate,clearImmediate){(function (){
44254
44488
  var nextTick = require('process/browser.js').nextTick;
44255
44489
  var apply = Function.prototype.apply;
@@ -44329,7 +44563,7 @@ exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate :
44329
44563
  };
44330
44564
  }).call(this)}).call(this,require("timers").setImmediate,require("timers").clearImmediate)
44331
44565
 
44332
- },{"process/browser.js":245,"timers":288}],289:[function(require,module,exports){
44566
+ },{"process/browser.js":247,"timers":290}],291:[function(require,module,exports){
44333
44567
  module.exports={
44334
44568
  "0": "O",
44335
44569
  "1": "l",
@@ -50643,7 +50877,7 @@ module.exports={
50643
50877
  "⻳": "龟",
50644
50878
  "⿕": "龠"
50645
50879
  }
50646
- },{}],290:[function(require,module,exports){
50880
+ },{}],292:[function(require,module,exports){
50647
50881
  'use strict';
50648
50882
 
50649
50883
 
@@ -50665,7 +50899,7 @@ function unhomoglyph(str) {
50665
50899
 
50666
50900
  module.exports = unhomoglyph;
50667
50901
 
50668
- },{"./data.json":289}],291:[function(require,module,exports){
50902
+ },{"./data.json":291}],293:[function(require,module,exports){
50669
50903
  (function (global){(function (){
50670
50904
 
50671
50905
  /**
@@ -50737,14 +50971,14 @@ function config (name) {
50737
50971
 
50738
50972
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
50739
50973
 
50740
- },{}],292:[function(require,module,exports){
50974
+ },{}],294:[function(require,module,exports){
50741
50975
  module.exports = function isBuffer(arg) {
50742
50976
  return arg && typeof arg === 'object'
50743
50977
  && typeof arg.copy === 'function'
50744
50978
  && typeof arg.fill === 'function'
50745
50979
  && typeof arg.readUInt8 === 'function';
50746
50980
  }
50747
- },{}],293:[function(require,module,exports){
50981
+ },{}],295:[function(require,module,exports){
50748
50982
  // Currently in sync with Node.js lib/internal/util/types.js
50749
50983
  // https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9
50750
50984
 
@@ -51080,7 +51314,7 @@ exports.isAnyArrayBuffer = isAnyArrayBuffer;
51080
51314
  });
51081
51315
  });
51082
51316
 
51083
- },{"is-arguments":152,"is-generator-function":154,"is-typed-array":155,"which-typed-array":311}],294:[function(require,module,exports){
51317
+ },{"is-arguments":152,"is-generator-function":154,"is-typed-array":155,"which-typed-array":313}],296:[function(require,module,exports){
51084
51318
  (function (process){(function (){
51085
51319
  // Copyright Joyent, Inc. and other Node contributors.
51086
51320
  //
@@ -51800,7 +52034,7 @@ exports.callbackify = callbackify;
51800
52034
 
51801
52035
  }).call(this)}).call(this,require('_process'))
51802
52036
 
51803
- },{"./support/isBuffer":292,"./support/types":293,"_process":245,"inherits":151}],295:[function(require,module,exports){
52037
+ },{"./support/isBuffer":294,"./support/types":295,"_process":247,"inherits":151}],297:[function(require,module,exports){
51804
52038
  "use strict";
51805
52039
 
51806
52040
  Object.defineProperty(exports, "__esModule", {
@@ -51880,7 +52114,7 @@ var _stringify = _interopRequireDefault(require("./stringify.js"));
51880
52114
  var _parse = _interopRequireDefault(require("./parse.js"));
51881
52115
 
51882
52116
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
51883
- },{"./nil.js":298,"./parse.js":299,"./stringify.js":303,"./v1.js":304,"./v3.js":305,"./v4.js":307,"./v5.js":308,"./validate.js":309,"./version.js":310}],296:[function(require,module,exports){
52117
+ },{"./nil.js":300,"./parse.js":301,"./stringify.js":305,"./v1.js":306,"./v3.js":307,"./v4.js":309,"./v5.js":310,"./validate.js":311,"./version.js":312}],298:[function(require,module,exports){
51884
52118
  "use strict";
51885
52119
 
51886
52120
  Object.defineProperty(exports, "__esModule", {
@@ -52104,7 +52338,7 @@ function md5ii(a, b, c, d, x, s, t) {
52104
52338
 
52105
52339
  var _default = md5;
52106
52340
  exports.default = _default;
52107
- },{}],297:[function(require,module,exports){
52341
+ },{}],299:[function(require,module,exports){
52108
52342
  "use strict";
52109
52343
 
52110
52344
  Object.defineProperty(exports, "__esModule", {
@@ -52116,7 +52350,7 @@ var _default = {
52116
52350
  randomUUID
52117
52351
  };
52118
52352
  exports.default = _default;
52119
- },{}],298:[function(require,module,exports){
52353
+ },{}],300:[function(require,module,exports){
52120
52354
  "use strict";
52121
52355
 
52122
52356
  Object.defineProperty(exports, "__esModule", {
@@ -52125,7 +52359,7 @@ Object.defineProperty(exports, "__esModule", {
52125
52359
  exports.default = void 0;
52126
52360
  var _default = '00000000-0000-0000-0000-000000000000';
52127
52361
  exports.default = _default;
52128
- },{}],299:[function(require,module,exports){
52362
+ },{}],301:[function(require,module,exports){
52129
52363
  "use strict";
52130
52364
 
52131
52365
  Object.defineProperty(exports, "__esModule", {
@@ -52171,7 +52405,7 @@ function parse(uuid) {
52171
52405
 
52172
52406
  var _default = parse;
52173
52407
  exports.default = _default;
52174
- },{"./validate.js":309}],300:[function(require,module,exports){
52408
+ },{"./validate.js":311}],302:[function(require,module,exports){
52175
52409
  "use strict";
52176
52410
 
52177
52411
  Object.defineProperty(exports, "__esModule", {
@@ -52180,7 +52414,7 @@ Object.defineProperty(exports, "__esModule", {
52180
52414
  exports.default = void 0;
52181
52415
  var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
52182
52416
  exports.default = _default;
52183
- },{}],301:[function(require,module,exports){
52417
+ },{}],303:[function(require,module,exports){
52184
52418
  "use strict";
52185
52419
 
52186
52420
  Object.defineProperty(exports, "__esModule", {
@@ -52206,7 +52440,7 @@ function rng() {
52206
52440
 
52207
52441
  return getRandomValues(rnds8);
52208
52442
  }
52209
- },{}],302:[function(require,module,exports){
52443
+ },{}],304:[function(require,module,exports){
52210
52444
  "use strict";
52211
52445
 
52212
52446
  Object.defineProperty(exports, "__esModule", {
@@ -52311,7 +52545,7 @@ function sha1(bytes) {
52311
52545
 
52312
52546
  var _default = sha1;
52313
52547
  exports.default = _default;
52314
- },{}],303:[function(require,module,exports){
52548
+ },{}],305:[function(require,module,exports){
52315
52549
  "use strict";
52316
52550
 
52317
52551
  Object.defineProperty(exports, "__esModule", {
@@ -52356,7 +52590,7 @@ function stringify(arr, offset = 0) {
52356
52590
 
52357
52591
  var _default = stringify;
52358
52592
  exports.default = _default;
52359
- },{"./validate.js":309}],304:[function(require,module,exports){
52593
+ },{"./validate.js":311}],306:[function(require,module,exports){
52360
52594
  "use strict";
52361
52595
 
52362
52596
  Object.defineProperty(exports, "__esModule", {
@@ -52464,7 +52698,7 @@ function v1(options, buf, offset) {
52464
52698
 
52465
52699
  var _default = v1;
52466
52700
  exports.default = _default;
52467
- },{"./rng.js":301,"./stringify.js":303}],305:[function(require,module,exports){
52701
+ },{"./rng.js":303,"./stringify.js":305}],307:[function(require,module,exports){
52468
52702
  "use strict";
52469
52703
 
52470
52704
  Object.defineProperty(exports, "__esModule", {
@@ -52481,7 +52715,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
52481
52715
  const v3 = (0, _v.default)('v3', 0x30, _md.default);
52482
52716
  var _default = v3;
52483
52717
  exports.default = _default;
52484
- },{"./md5.js":296,"./v35.js":306}],306:[function(require,module,exports){
52718
+ },{"./md5.js":298,"./v35.js":308}],308:[function(require,module,exports){
52485
52719
  "use strict";
52486
52720
 
52487
52721
  Object.defineProperty(exports, "__esModule", {
@@ -52562,7 +52796,7 @@ function v35(name, version, hashfunc) {
52562
52796
  generateUUID.URL = URL;
52563
52797
  return generateUUID;
52564
52798
  }
52565
- },{"./parse.js":299,"./stringify.js":303}],307:[function(require,module,exports){
52799
+ },{"./parse.js":301,"./stringify.js":305}],309:[function(require,module,exports){
52566
52800
  "use strict";
52567
52801
 
52568
52802
  Object.defineProperty(exports, "__esModule", {
@@ -52606,7 +52840,7 @@ function v4(options, buf, offset) {
52606
52840
 
52607
52841
  var _default = v4;
52608
52842
  exports.default = _default;
52609
- },{"./native.js":297,"./rng.js":301,"./stringify.js":303}],308:[function(require,module,exports){
52843
+ },{"./native.js":299,"./rng.js":303,"./stringify.js":305}],310:[function(require,module,exports){
52610
52844
  "use strict";
52611
52845
 
52612
52846
  Object.defineProperty(exports, "__esModule", {
@@ -52623,7 +52857,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
52623
52857
  const v5 = (0, _v.default)('v5', 0x50, _sha.default);
52624
52858
  var _default = v5;
52625
52859
  exports.default = _default;
52626
- },{"./sha1.js":302,"./v35.js":306}],309:[function(require,module,exports){
52860
+ },{"./sha1.js":304,"./v35.js":308}],311:[function(require,module,exports){
52627
52861
  "use strict";
52628
52862
 
52629
52863
  Object.defineProperty(exports, "__esModule", {
@@ -52641,7 +52875,7 @@ function validate(uuid) {
52641
52875
 
52642
52876
  var _default = validate;
52643
52877
  exports.default = _default;
52644
- },{"./regex.js":300}],310:[function(require,module,exports){
52878
+ },{"./regex.js":302}],312:[function(require,module,exports){
52645
52879
  "use strict";
52646
52880
 
52647
52881
  Object.defineProperty(exports, "__esModule", {
@@ -52663,7 +52897,7 @@ function version(uuid) {
52663
52897
 
52664
52898
  var _default = version;
52665
52899
  exports.default = _default;
52666
- },{"./validate.js":309}],311:[function(require,module,exports){
52900
+ },{"./validate.js":311}],313:[function(require,module,exports){
52667
52901
  (function (global){(function (){
52668
52902
  'use strict';
52669
52903
 
@@ -52757,7 +52991,7 @@ module.exports = function whichTypedArray(value) {
52757
52991
 
52758
52992
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
52759
52993
 
52760
- },{"available-typed-arrays":16,"call-bind":70,"call-bind/callBound":69,"for-each":111,"gopd":115,"has-tostringtag/shams":119}],312:[function(require,module,exports){
52994
+ },{"available-typed-arrays":16,"call-bind":70,"call-bind/callBound":69,"for-each":111,"gopd":115,"has-tostringtag/shams":119}],314:[function(require,module,exports){
52761
52995
  "use strict";
52762
52996
  /*
52763
52997
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -52776,7 +53010,7 @@ limitations under the License.
52776
53010
  */
52777
53011
  Object.defineProperty(exports, "__esModule", { value: true });
52778
53012
 
52779
- },{}],313:[function(require,module,exports){
53013
+ },{}],315:[function(require,module,exports){
52780
53014
  "use strict";
52781
53015
  /*
52782
53016
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -52868,7 +53102,7 @@ var RuleId;
52868
53102
  })(RuleId || (exports.RuleId = RuleId = {}));
52869
53103
  /* eslint-enable camelcase */
52870
53104
 
52871
- },{}],314:[function(require,module,exports){
53105
+ },{}],316:[function(require,module,exports){
52872
53106
  "use strict";
52873
53107
  /*
52874
53108
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -52906,7 +53140,7 @@ var SSOAction;
52906
53140
  SSOAction["REGISTER"] = "register";
52907
53141
  })(SSOAction || (exports.SSOAction = SSOAction = {}));
52908
53142
 
52909
- },{"../NamespacedValue":331}],315:[function(require,module,exports){
53143
+ },{"../NamespacedValue":333}],317:[function(require,module,exports){
52910
53144
  "use strict";
52911
53145
  /*
52912
53146
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -52973,7 +53207,7 @@ const NamespacedValue_1 = require("../NamespacedValue");
52973
53207
  exports.M_BEACON_INFO = new NamespacedValue_1.UnstableValue("m.beacon_info", "org.matrix.msc3672.beacon_info");
52974
53208
  exports.M_BEACON = new NamespacedValue_1.UnstableValue("m.beacon", "org.matrix.msc3672.beacon");
52975
53209
 
52976
- },{"../NamespacedValue":331}],316:[function(require,module,exports){
53210
+ },{"../NamespacedValue":333}],318:[function(require,module,exports){
52977
53211
  "use strict";
52978
53212
  /*
52979
53213
  Copyright 2022-2023 The Matrix.org Foundation C.I.C.
@@ -52992,7 +53226,7 @@ limitations under the License.
52992
53226
  */
52993
53227
  Object.defineProperty(exports, "__esModule", { value: true });
52994
53228
 
52995
- },{}],317:[function(require,module,exports){
53229
+ },{}],319:[function(require,module,exports){
52996
53230
  "use strict";
52997
53231
  /*
52998
53232
  Copyright 2020 The Matrix.org Foundation C.I.C.
@@ -53208,7 +53442,7 @@ exports.LOCAL_NOTIFICATION_SETTINGS_PREFIX = new NamespacedValue_1.UnstableValue
53208
53442
  */
53209
53443
  exports.UNSIGNED_THREAD_ID_FIELD = new NamespacedValue_1.UnstableValue("thread_id", "org.matrix.msc4023.thread_id");
53210
53444
 
53211
- },{"../NamespacedValue":331}],318:[function(require,module,exports){
53445
+ },{"../NamespacedValue":333}],320:[function(require,module,exports){
53212
53446
  "use strict";
53213
53447
  /*
53214
53448
  Copyright 2021 - 2023 The Matrix.org Foundation C.I.C.
@@ -53275,7 +53509,7 @@ function isEventTypeSame(given, expected) {
53275
53509
  }
53276
53510
  exports.isEventTypeSame = isEventTypeSame;
53277
53511
 
53278
- },{"../extensible_events_v1/utilities":381,"matrix-events-sdk":173}],319:[function(require,module,exports){
53512
+ },{"../extensible_events_v1/utilities":383,"matrix-events-sdk":173}],321:[function(require,module,exports){
53279
53513
  "use strict";
53280
53514
  /*
53281
53515
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -53294,7 +53528,7 @@ limitations under the License.
53294
53528
  */
53295
53529
  Object.defineProperty(exports, "__esModule", { value: true });
53296
53530
 
53297
- },{}],320:[function(require,module,exports){
53531
+ },{}],322:[function(require,module,exports){
53298
53532
  "use strict";
53299
53533
  /*
53300
53534
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -53324,7 +53558,7 @@ exports.M_ASSET = new NamespacedValue_1.UnstableValue("m.asset", "org.matrix.msc
53324
53558
  exports.M_TIMESTAMP = new NamespacedValue_1.UnstableValue("m.ts", "org.matrix.msc3488.ts");
53325
53559
  exports.M_LOCATION = new NamespacedValue_1.UnstableValue("m.location", "org.matrix.msc3488.location");
53326
53560
 
53327
- },{"../NamespacedValue":331,"./extensible_events":318}],321:[function(require,module,exports){
53561
+ },{"../NamespacedValue":333,"./extensible_events":320}],323:[function(require,module,exports){
53328
53562
  "use strict";
53329
53563
  /*
53330
53564
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -53383,7 +53617,7 @@ var HistoryVisibility;
53383
53617
  HistoryVisibility["WorldReadable"] = "world_readable";
53384
53618
  })(HistoryVisibility || (exports.HistoryVisibility = HistoryVisibility = {}));
53385
53619
 
53386
- },{}],322:[function(require,module,exports){
53620
+ },{}],324:[function(require,module,exports){
53387
53621
  "use strict";
53388
53622
  /*
53389
53623
  Copyright 2022 - 2023 The Matrix.org Foundation C.I.C.
@@ -53424,7 +53658,7 @@ exports.M_POLL_RESPONSE = new matrix_events_sdk_1.UnstableValue("m.poll.response
53424
53658
  */
53425
53659
  exports.M_POLL_END = new matrix_events_sdk_1.UnstableValue("m.poll.end", "org.matrix.msc3381.poll.end");
53426
53660
 
53427
- },{"matrix-events-sdk":173}],323:[function(require,module,exports){
53661
+ },{"matrix-events-sdk":173}],325:[function(require,module,exports){
53428
53662
  "use strict";
53429
53663
  /*
53430
53664
  Copyright 2022 Šimon Brandner <simon.bra.ag@gmail.com>
@@ -53451,7 +53685,7 @@ var ReceiptType;
53451
53685
  })(ReceiptType || (exports.ReceiptType = ReceiptType = {}));
53452
53686
  exports.MAIN_ROOM_TIMELINE = "main";
53453
53687
 
53454
- },{}],324:[function(require,module,exports){
53688
+ },{}],326:[function(require,module,exports){
53455
53689
  "use strict";
53456
53690
  /*
53457
53691
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -53470,7 +53704,7 @@ limitations under the License.
53470
53704
  */
53471
53705
  Object.defineProperty(exports, "__esModule", { value: true });
53472
53706
 
53473
- },{}],325:[function(require,module,exports){
53707
+ },{}],327:[function(require,module,exports){
53474
53708
  "use strict";
53475
53709
  /*
53476
53710
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -53490,7 +53724,7 @@ limitations under the License.
53490
53724
  Object.defineProperty(exports, "__esModule", { value: true });
53491
53725
  /* eslint-enable camelcase */
53492
53726
 
53493
- },{}],326:[function(require,module,exports){
53727
+ },{}],328:[function(require,module,exports){
53494
53728
  "use strict";
53495
53729
  /*
53496
53730
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -53521,7 +53755,7 @@ var SearchOrderBy;
53521
53755
  })(SearchOrderBy || (exports.SearchOrderBy = SearchOrderBy = {}));
53522
53756
  /* eslint-enable camelcase */
53523
53757
 
53524
- },{}],327:[function(require,module,exports){
53758
+ },{}],329:[function(require,module,exports){
53525
53759
  "use strict";
53526
53760
  /*
53527
53761
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -53548,7 +53782,7 @@ const NamespacedValue_1 = require("../NamespacedValue");
53548
53782
  */
53549
53783
  exports.UNREAD_THREAD_NOTIFICATIONS = new NamespacedValue_1.ServerControlledNamespacedValue("unread_thread_notifications", "org.matrix.msc3773.unread_thread_notifications");
53550
53784
 
53551
- },{"../NamespacedValue":331}],328:[function(require,module,exports){
53785
+ },{"../NamespacedValue":333}],330:[function(require,module,exports){
53552
53786
  "use strict";
53553
53787
  /*
53554
53788
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -53573,7 +53807,7 @@ var ThreepidMedium;
53573
53807
  ThreepidMedium["Phone"] = "msisdn";
53574
53808
  })(ThreepidMedium || (exports.ThreepidMedium = ThreepidMedium = {}));
53575
53809
 
53576
- },{}],329:[function(require,module,exports){
53810
+ },{}],331:[function(require,module,exports){
53577
53811
  "use strict";
53578
53812
  /*
53579
53813
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -53620,7 +53854,7 @@ const NamespacedValue_1 = require("../NamespacedValue");
53620
53854
  */
53621
53855
  exports.M_TOPIC = new NamespacedValue_1.UnstableValue("m.topic", "org.matrix.msc3765.topic");
53622
53856
 
53623
- },{"../NamespacedValue":331}],330:[function(require,module,exports){
53857
+ },{"../NamespacedValue":333}],332:[function(require,module,exports){
53624
53858
  "use strict";
53625
53859
  /*
53626
53860
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -53639,7 +53873,7 @@ limitations under the License.
53639
53873
  */
53640
53874
  Object.defineProperty(exports, "__esModule", { value: true });
53641
53875
 
53642
- },{}],331:[function(require,module,exports){
53876
+ },{}],333:[function(require,module,exports){
53643
53877
  "use strict";
53644
53878
  /*
53645
53879
  Copyright 2021 - 2022 The Matrix.org Foundation C.I.C.
@@ -53753,7 +53987,7 @@ class UnstableValue extends NamespacedValue {
53753
53987
  }
53754
53988
  exports.UnstableValue = UnstableValue;
53755
53989
 
53756
- },{}],332:[function(require,module,exports){
53990
+ },{}],334:[function(require,module,exports){
53757
53991
  "use strict";
53758
53992
  /*
53759
53993
  Copyright 2015, 2016 OpenMarket Ltd
@@ -53837,7 +54071,7 @@ class TypedReEmitter extends ReEmitter {
53837
54071
  }
53838
54072
  exports.TypedReEmitter = TypedReEmitter;
53839
54073
 
53840
- },{}],333:[function(require,module,exports){
54074
+ },{}],335:[function(require,module,exports){
53841
54075
  "use strict";
53842
54076
  /*
53843
54077
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -53986,7 +54220,7 @@ class ToDeviceMessageQueue {
53986
54220
  }
53987
54221
  exports.ToDeviceMessageQueue = ToDeviceMessageQueue;
53988
54222
 
53989
- },{"./@types/event":317,"./client":336,"./logger":394,"./scheduler":428,"./sync":440,"./utils":442}],334:[function(require,module,exports){
54223
+ },{"./@types/event":319,"./client":338,"./logger":396,"./scheduler":433,"./sync":445,"./utils":447}],336:[function(require,module,exports){
53990
54224
  (function (global){(function (){
53991
54225
  "use strict";
53992
54226
  /*
@@ -54517,7 +54751,7 @@ AutoDiscovery.SUCCESS = AutoDiscoveryAction.SUCCESS;
54517
54751
 
54518
54752
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
54519
54753
 
54520
- },{"./client":336,"./http-api":387,"./logger":394,"./oidc/discovery":418,"./oidc/error":419,"./oidc/validate":420,"./version-support":443}],335:[function(require,module,exports){
54754
+ },{"./client":338,"./http-api":389,"./logger":396,"./oidc/discovery":423,"./oidc/error":424,"./oidc/validate":425,"./version-support":448}],337:[function(require,module,exports){
54521
54755
  (function (global){(function (){
54522
54756
  "use strict";
54523
54757
  /*
@@ -54585,7 +54819,7 @@ global.matrixcs = matrixcs;
54585
54819
 
54586
54820
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
54587
54821
 
54588
- },{"./matrix":395}],336:[function(require,module,exports){
54822
+ },{"./matrix":397}],338:[function(require,module,exports){
54589
54823
  (function (global){(function (){
54590
54824
  "use strict";
54591
54825
  /*
@@ -54699,6 +54933,7 @@ const invites_ignorer_1 = require("./models/invites-ignorer");
54699
54933
  const feature_1 = require("./feature");
54700
54934
  const constants_1 = require("./rust-crypto/constants");
54701
54935
  const secret_storage_1 = require("./secret-storage");
54936
+ const MatrixRTCSessionManager_1 = require("./matrixrtc/MatrixRTCSessionManager");
54702
54937
  const SCROLLBACK_DELAY_MS = 3000;
54703
54938
  exports.CRYPTO_ENABLED = (0, crypto_1.isCryptoAvailable)();
54704
54939
  const CAPABILITIES_CACHE_MS = 21600000; // 6 hours - an arbitrary value
@@ -54785,11 +55020,19 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
54785
55020
  this.useE2eForGroupCall = true;
54786
55021
  this.startCallEventHandler = () => {
54787
55022
  if (this.isInitialSyncComplete()) {
54788
- this.callEventHandler.start();
54789
- this.groupCallEventHandler.start();
55023
+ if ((0, call_1.supportsMatrixCall)()) {
55024
+ this.callEventHandler.start();
55025
+ this.groupCallEventHandler.start();
55026
+ }
54790
55027
  this.off(ClientEvent.Sync, this.startCallEventHandler);
54791
55028
  }
54792
55029
  };
55030
+ this.startMatrixRTC = () => {
55031
+ if (this.isInitialSyncComplete()) {
55032
+ this.matrixRTC.start();
55033
+ this.off(ClientEvent.Sync, this.startMatrixRTC);
55034
+ }
55035
+ };
54793
55036
  /**
54794
55037
  * Once the client has been initialised, we want to clear notifications we
54795
55038
  * know for a fact should be here.
@@ -54857,6 +55100,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
54857
55100
  else if (opts.pickleKey) {
54858
55101
  this.pickleKey = opts.pickleKey;
54859
55102
  }
55103
+ this.useLivekitForGroupCalls = Boolean(opts.useLivekitForGroupCalls);
54860
55104
  this.scheduler = opts.scheduler;
54861
55105
  if (this.scheduler) {
54862
55106
  this.scheduler.setProcessFunction((eventToSend) => __awaiter(this, void 0, void 0, function* () {
@@ -54882,6 +55126,9 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
54882
55126
  // with encrypted events that might never get decrypted
54883
55127
  this.on(ClientEvent.Sync, this.startCallEventHandler);
54884
55128
  }
55129
+ // NB. We initialise MatrixRTC whether we have call support or not: this is just
55130
+ // the underlying session management and doesn't use any actual media capabilities
55131
+ this.matrixRTC = new MatrixRTCSessionManager_1.MatrixRTCSessionManager(this);
54885
55132
  this.on(ClientEvent.Sync, this.fixupRoomNotifications);
54886
55133
  this.timelineSupport = Boolean(opts.timelineSupport);
54887
55134
  this.cryptoStore = opts.cryptoStore;
@@ -54894,6 +55141,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
54894
55141
  this.isVoipWithNoMediaAllowed = opts.isVoipWithNoMediaAllowed || false;
54895
55142
  if (opts.useE2eForGroupCall !== undefined)
54896
55143
  this.useE2eForGroupCall = opts.useE2eForGroupCall;
55144
+ this.livekitServiceURL = opts.livekitServiceURL;
54897
55145
  // List of which rooms have encryption enabled: separate from crypto because
54898
55146
  // we still want to know which rooms are encrypted even if crypto is disabled:
54899
55147
  // we don't want to start sending unencrypted events to them.
@@ -54967,6 +55215,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
54967
55215
  return;
54968
55216
  }
54969
55217
  this.clientRunning = true;
55218
+ this.on(ClientEvent.Sync, this.startMatrixRTC);
54970
55219
  // backwards compat for when 'opts' was 'historyLen'.
54971
55220
  if (typeof opts === "number") {
54972
55221
  opts = {
@@ -55052,6 +55301,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
55052
55301
  stopClient() {
55053
55302
  var _a, _b, _c, _d, _e;
55054
55303
  (_a = this.cryptoBackend) === null || _a === void 0 ? void 0 : _a.stop(); // crypto might have been initialised even if the client wasn't fully started
55304
+ this.off(ClientEvent.Sync, this.startMatrixRTC);
55055
55305
  if (!this.clientRunning)
55056
55306
  return; // already stopped
55057
55307
  logger_1.logger.log("stopping MatrixClient");
@@ -55069,6 +55319,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
55069
55319
  global.clearInterval(this.clientWellKnownIntervalID);
55070
55320
  }
55071
55321
  this.toDeviceMessageQueue.stop();
55322
+ this.matrixRTC.stop();
55072
55323
  }
55073
55324
  /**
55074
55325
  * Try to rehydrate a device if available. The client must have been
@@ -55227,9 +55478,11 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
55227
55478
  let indexedDB;
55228
55479
  try {
55229
55480
  indexedDB = global.indexedDB;
55481
+ if (!indexedDB)
55482
+ return; // No indexedDB support
55230
55483
  }
55231
55484
  catch (e) {
55232
- // No indexeddb support
55485
+ // No indexedDB support
55233
55486
  return;
55234
55487
  }
55235
55488
  for (const dbname of [
@@ -55384,9 +55637,17 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
55384
55637
  }
55385
55638
  // Because without Media section a WebRTC connection is not possible, so need a RTCDataChannel to set up a
55386
55639
  // no media WebRTC connection anyway.
55387
- return new groupCall_1.GroupCall(this, room, type, isPtt, intent, undefined, dataChannelsEnabled || this.isVoipWithNoMediaAllowed, dataChannelOptions, this.isVoipWithNoMediaAllowed).create();
55640
+ return new groupCall_1.GroupCall(this, room, type, isPtt, intent, undefined, dataChannelsEnabled || this.isVoipWithNoMediaAllowed, dataChannelOptions, this.isVoipWithNoMediaAllowed, this.useLivekitForGroupCalls, this.livekitServiceURL).create();
55388
55641
  });
55389
55642
  }
55643
+ getLivekitServiceURL() {
55644
+ return this.livekitServiceURL;
55645
+ }
55646
+ // This shouldn't need to exist, but the widget API has startup ordering problems that
55647
+ // mean it doesn't know the livekit URL fast enough: remove this once this is fixed.
55648
+ setLivekitServiceURL(newURL) {
55649
+ this.livekitServiceURL = newURL;
55650
+ }
55390
55651
  /**
55391
55652
  * Wait until an initial state for the given room has been processed by the
55392
55653
  * client and the client is aware of any ongoing group calls. Awaiting on
@@ -56196,6 +56457,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
56196
56457
  *
56197
56458
  * @param event - event to be checked
56198
56459
  * @returns The event information.
56460
+ * @deprecated Prefer {@link CryptoApi.getEncryptionInfoForEvent | `CryptoApi.getEncryptionInfoForEvent`}.
56199
56461
  */
56200
56462
  getEventEncryptionInfo(event) {
56201
56463
  if (!this.cryptoBackend) {
@@ -56914,17 +57176,9 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
56914
57176
  let totalKeyCount = 0;
56915
57177
  let keys = [];
56916
57178
  const path = this.makeKeyBackupPath(targetRoomId, targetSessionId, backupInfo.version);
56917
- const algorithm = yield backup_1.BackupManager.makeAlgorithm(backupInfo, () => __awaiter(this, void 0, void 0, function* () {
56918
- return privKey;
56919
- }));
56920
- const untrusted = algorithm.untrusted;
57179
+ const backupDecryptor = yield this.cryptoBackend.getBackupDecryptor(backupInfo, privKey);
57180
+ const untrusted = !backupDecryptor.sourceTrusted;
56921
57181
  try {
56922
- // If the pubkey computed from the private data we've been given
56923
- // doesn't match the one in the auth_data, the user has entered
56924
- // a different recovery key / the wrong passphrase.
56925
- if (!(yield algorithm.keyMatches(privKey))) {
56926
- return Promise.reject(new http_api_1.MatrixError({ errcode: MatrixClient.RESTORE_BACKUP_ERROR_BAD_KEY }));
56927
- }
56928
57182
  if (!(privKey instanceof Uint8Array)) {
56929
57183
  // eslint-disable-next-line @typescript-eslint/no-base-to-string
56930
57184
  throw new Error(`restoreKeyBackup expects Uint8Array, got ${privKey}`);
@@ -56949,7 +57203,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
56949
57203
  if (!roomData.sessions)
56950
57204
  continue;
56951
57205
  totalKeyCount += Object.keys(roomData.sessions).length;
56952
- const roomKeys = yield algorithm.decryptSessions(roomData.sessions);
57206
+ const roomKeys = yield backupDecryptor.decryptSessions(roomData.sessions);
56953
57207
  for (const k of roomKeys) {
56954
57208
  k.room_id = roomId;
56955
57209
  keys.push(k);
@@ -56959,7 +57213,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
56959
57213
  else if (res.sessions) {
56960
57214
  const sessions = res.sessions;
56961
57215
  totalKeyCount = Object.keys(sessions).length;
56962
- keys = yield algorithm.decryptSessions(sessions);
57216
+ keys = yield backupDecryptor.decryptSessions(sessions);
56963
57217
  for (const k of keys) {
56964
57218
  k.room_id = targetRoomId;
56965
57219
  }
@@ -56967,7 +57221,7 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
56967
57221
  else {
56968
57222
  totalKeyCount = 1;
56969
57223
  try {
56970
- const [key] = yield algorithm.decryptSessions({
57224
+ const [key] = yield backupDecryptor.decryptSessions({
56971
57225
  [targetSessionId]: res,
56972
57226
  });
56973
57227
  key.room_id = targetRoomId;
@@ -56980,14 +57234,15 @@ class MatrixClient extends typed_event_emitter_1.TypedEventEmitter {
56980
57234
  }
56981
57235
  }
56982
57236
  finally {
56983
- algorithm.free();
57237
+ backupDecryptor.free();
56984
57238
  }
56985
57239
  yield this.cryptoBackend.importRoomKeys(keys, {
56986
57240
  progressCallback,
56987
57241
  untrusted,
56988
57242
  source: "backup",
56989
57243
  });
56990
- yield this.checkKeyBackup();
57244
+ /// in case entering the passphrase would add a new signature?
57245
+ yield this.cryptoBackend.checkKeyBackupAndEnable();
56991
57246
  return { total: totalKeyCount, imported: keys.length };
56992
57247
  });
56993
57248
  }
@@ -61853,7 +62108,7 @@ exports.fixNotificationCountOnDecryption = fixNotificationCountOnDecryption;
61853
62108
 
61854
62109
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
61855
62110
 
61856
- },{"./@types/PushRules":313,"./@types/beacon":315,"./@types/event":317,"./@types/partials":321,"./@types/read_receipts":323,"./@types/search":326,"./NamespacedValue":331,"./ReEmitter":332,"./ToDeviceMessageQueue":333,"./autodiscovery":334,"./content-helpers":337,"./content-repo":338,"./crypto":361,"./crypto/RoomList":347,"./crypto/api":355,"./crypto/backup":356,"./crypto/dehydration":358,"./crypto/key_passphrase":362,"./crypto/olmlib":363,"./crypto/recoverykey":364,"./event-mapper":380,"./feature":382,"./filter":384,"./http-api":387,"./logger":394,"./models/MSC3089TreeSpace":397,"./models/event":404,"./models/event-timeline":403,"./models/invites-ignorer":405,"./models/room":413,"./models/room-member":410,"./models/search-result":414,"./models/thread":415,"./models/typed-event-emitter":416,"./models/user":417,"./pushprocessor":421,"./randomstring":422,"./rust-crypto":427,"./rust-crypto/constants":426,"./secret-storage":429,"./service-types":430,"./sliding-sync-sdk":431,"./store/stub":438,"./sync":440,"./utils":442,"./webrtc/call":445,"./webrtc/callEventHandler":446,"./webrtc/groupCall":449,"./webrtc/groupCallEventHandler":450,"./webrtc/mediaHandler":451}],337:[function(require,module,exports){
62111
+ },{"./@types/PushRules":315,"./@types/beacon":317,"./@types/event":319,"./@types/partials":323,"./@types/read_receipts":325,"./@types/search":328,"./NamespacedValue":333,"./ReEmitter":334,"./ToDeviceMessageQueue":335,"./autodiscovery":336,"./content-helpers":339,"./content-repo":340,"./crypto":363,"./crypto/RoomList":349,"./crypto/api":357,"./crypto/backup":358,"./crypto/dehydration":360,"./crypto/key_passphrase":364,"./crypto/olmlib":365,"./crypto/recoverykey":366,"./event-mapper":382,"./feature":384,"./filter":386,"./http-api":389,"./logger":396,"./matrixrtc/MatrixRTCSessionManager":400,"./models/MSC3089TreeSpace":402,"./models/event":409,"./models/event-timeline":408,"./models/invites-ignorer":410,"./models/room":418,"./models/room-member":415,"./models/search-result":419,"./models/thread":420,"./models/typed-event-emitter":421,"./models/user":422,"./pushprocessor":426,"./randomstring":427,"./rust-crypto":432,"./rust-crypto/constants":431,"./secret-storage":434,"./service-types":435,"./sliding-sync-sdk":436,"./store/stub":443,"./sync":445,"./utils":447,"./webrtc/call":450,"./webrtc/callEventHandler":451,"./webrtc/groupCall":454,"./webrtc/groupCallEventHandler":455,"./webrtc/mediaHandler":456}],339:[function(require,module,exports){
61857
62112
  "use strict";
61858
62113
  /*
61859
62114
  Copyright 2018 - 2022 The Matrix.org Foundation C.I.C.
@@ -62075,7 +62330,7 @@ const parseBeaconContent = (content) => {
62075
62330
  };
62076
62331
  exports.parseBeaconContent = parseBeaconContent;
62077
62332
 
62078
- },{"./@types/event":317,"./@types/extensible_events":318,"./@types/location":320,"./@types/topic":329,"./extensible_events_v1/utilities":381}],338:[function(require,module,exports){
62333
+ },{"./@types/event":319,"./@types/extensible_events":320,"./@types/location":322,"./@types/topic":331,"./extensible_events_v1/utilities":383}],340:[function(require,module,exports){
62079
62334
  "use strict";
62080
62335
  /*
62081
62336
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -62149,7 +62404,7 @@ function getHttpUriForMxc(baseUrl, mxc, width, height, resizeMethod, allowDirect
62149
62404
  }
62150
62405
  exports.getHttpUriForMxc = getHttpUriForMxc;
62151
62406
 
62152
- },{"./utils":442}],339:[function(require,module,exports){
62407
+ },{"./utils":447}],341:[function(require,module,exports){
62153
62408
  "use strict";
62154
62409
  /*
62155
62410
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -62181,7 +62436,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
62181
62436
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
62182
62437
  };
62183
62438
  Object.defineProperty(exports, "__esModule", { value: true });
62184
- exports.CrossSigningKey = exports.DeviceVerificationStatus = exports.UserVerificationStatus = void 0;
62439
+ exports.EventShieldReason = exports.EventShieldColour = exports.CrossSigningKey = exports.DeviceVerificationStatus = exports.UserVerificationStatus = void 0;
62185
62440
  /**
62186
62441
  * Represents the ways in which we trust a user
62187
62442
  */
@@ -62249,10 +62504,44 @@ var CrossSigningKey;
62249
62504
  CrossSigningKey["SelfSigning"] = "self_signing";
62250
62505
  CrossSigningKey["UserSigning"] = "user_signing";
62251
62506
  })(CrossSigningKey || (exports.CrossSigningKey = CrossSigningKey = {}));
62507
+ /**
62508
+ * Types of shield to be shown for {@link EventEncryptionInfo#shieldColour}.
62509
+ */
62510
+ var EventShieldColour;
62511
+ (function (EventShieldColour) {
62512
+ EventShieldColour[EventShieldColour["NONE"] = 0] = "NONE";
62513
+ EventShieldColour[EventShieldColour["GREY"] = 1] = "GREY";
62514
+ EventShieldColour[EventShieldColour["RED"] = 2] = "RED";
62515
+ })(EventShieldColour || (exports.EventShieldColour = EventShieldColour = {}));
62516
+ /**
62517
+ * Reason codes for {@link EventEncryptionInfo#shieldReason}.
62518
+ */
62519
+ var EventShieldReason;
62520
+ (function (EventShieldReason) {
62521
+ /** An unknown reason from the crypto library (if you see this, it is a bug in matrix-js-sdk). */
62522
+ EventShieldReason[EventShieldReason["UNKNOWN"] = 0] = "UNKNOWN";
62523
+ /** "Encrypted by an unverified user." */
62524
+ EventShieldReason[EventShieldReason["UNVERIFIED_IDENTITY"] = 1] = "UNVERIFIED_IDENTITY";
62525
+ /** "Encrypted by a device not verified by its owner." */
62526
+ EventShieldReason[EventShieldReason["UNSIGNED_DEVICE"] = 2] = "UNSIGNED_DEVICE";
62527
+ /** "Encrypted by an unknown or deleted device." */
62528
+ EventShieldReason[EventShieldReason["UNKNOWN_DEVICE"] = 3] = "UNKNOWN_DEVICE";
62529
+ /**
62530
+ * "The authenticity of this encrypted message can't be guaranteed on this device."
62531
+ *
62532
+ * ie: the key has been forwarded, or retrieved from an insecure backup.
62533
+ */
62534
+ EventShieldReason[EventShieldReason["AUTHENTICITY_NOT_GUARANTEED"] = 4] = "AUTHENTICITY_NOT_GUARANTEED";
62535
+ /**
62536
+ * The (deprecated) sender_key field in the event does not match the Ed25519 key of the device that sent us the
62537
+ * decryption keys.
62538
+ */
62539
+ EventShieldReason[EventShieldReason["MISMATCHED_SENDER_KEY"] = 5] = "MISMATCHED_SENDER_KEY";
62540
+ })(EventShieldReason || (exports.EventShieldReason = EventShieldReason = {}));
62252
62541
  __exportStar(require("./crypto-api/verification"), exports);
62253
62542
  __exportStar(require("./crypto-api/keybackup"), exports);
62254
62543
 
62255
- },{"./crypto-api/keybackup":340,"./crypto-api/verification":341}],340:[function(require,module,exports){
62544
+ },{"./crypto-api/keybackup":342,"./crypto-api/verification":343}],342:[function(require,module,exports){
62256
62545
  "use strict";
62257
62546
  /*
62258
62547
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -62271,7 +62560,7 @@ limitations under the License.
62271
62560
  */
62272
62561
  Object.defineProperty(exports, "__esModule", { value: true });
62273
62562
 
62274
- },{}],341:[function(require,module,exports){
62563
+ },{}],343:[function(require,module,exports){
62275
62564
  "use strict";
62276
62565
  /*
62277
62566
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -62348,7 +62637,7 @@ function canAcceptVerificationRequest(req) {
62348
62637
  }
62349
62638
  exports.canAcceptVerificationRequest = canAcceptVerificationRequest;
62350
62639
 
62351
- },{}],342:[function(require,module,exports){
62640
+ },{}],344:[function(require,module,exports){
62352
62641
  (function (global,Buffer){(function (){
62353
62642
  "use strict";
62354
62643
  /*
@@ -63043,7 +63332,7 @@ exports.requestKeysDuringVerification = requestKeysDuringVerification;
63043
63332
 
63044
63333
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
63045
63334
 
63046
- },{"../crypto-api":339,"../crypto/store/indexeddb-crypto-store":366,"../logger":394,"./aes":350,"./olmlib":363,"buffer":68}],343:[function(require,module,exports){
63335
+ },{"../crypto-api":341,"../crypto/store/indexeddb-crypto-store":368,"../logger":396,"./aes":352,"./olmlib":365,"buffer":68}],345:[function(require,module,exports){
63047
63336
  "use strict";
63048
63337
  /*
63049
63338
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -63907,7 +64196,7 @@ function storeDeviceKeys(olmDevice, userStore, deviceResult) {
63907
64196
  });
63908
64197
  }
63909
64198
 
63910
- },{"../logger":394,"../models/typed-event-emitter":416,"../utils":442,"./CrossSigning":342,"./deviceinfo":360,"./index":361,"./olmlib":363,"./store/indexeddb-crypto-store":366}],344:[function(require,module,exports){
64199
+ },{"../logger":396,"../models/typed-event-emitter":421,"../utils":447,"./CrossSigning":344,"./deviceinfo":362,"./index":363,"./olmlib":365,"./store/indexeddb-crypto-store":368}],346:[function(require,module,exports){
63911
64200
  "use strict";
63912
64201
  /*
63913
64202
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -64236,7 +64525,7 @@ class SSSSCryptoCallbacks {
64236
64525
  }
64237
64526
  }
64238
64527
 
64239
- },{"../client":336,"../http-api":387,"../logger":394,"../models/event":404,"../models/typed-event-emitter":416,"./CrossSigning":342,"./store/indexeddb-crypto-store":366}],345:[function(require,module,exports){
64528
+ },{"../client":338,"../http-api":389,"../logger":396,"../models/event":409,"../models/typed-event-emitter":421,"./CrossSigning":344,"./store/indexeddb-crypto-store":368}],347:[function(require,module,exports){
64240
64529
  (function (global){(function (){
64241
64530
  "use strict";
64242
64531
  /*
@@ -65472,7 +65761,7 @@ function calculateWithheldMessage(withheld) {
65472
65761
 
65473
65762
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
65474
65763
 
65475
- },{"../logger":394,"./algorithms":352,"./store/indexeddb-crypto-store":366}],346:[function(require,module,exports){
65764
+ },{"../logger":396,"./algorithms":354,"./store/indexeddb-crypto-store":368}],348:[function(require,module,exports){
65476
65765
  "use strict";
65477
65766
  /*
65478
65767
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -65882,7 +66171,7 @@ function stringifyRecipientList(recipients) {
65882
66171
  return `[${recipients.map((r) => `${r.userId}:${r.deviceId}`).join(",")}]`;
65883
66172
  }
65884
66173
 
65885
- },{"../@types/event":317,"../logger":394,"../utils":442,"uuid":295}],347:[function(require,module,exports){
66174
+ },{"../@types/event":319,"../logger":396,"../utils":447,"uuid":297}],349:[function(require,module,exports){
65886
66175
  "use strict";
65887
66176
  /*
65888
66177
  Copyright 2018 - 2021 The Matrix.org Foundation C.I.C.
@@ -65947,7 +66236,7 @@ class RoomList {
65947
66236
  }
65948
66237
  exports.RoomList = RoomList;
65949
66238
 
65950
- },{"./store/indexeddb-crypto-store":366}],348:[function(require,module,exports){
66239
+ },{"./store/indexeddb-crypto-store":368}],350:[function(require,module,exports){
65951
66240
  "use strict";
65952
66241
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
65953
66242
  if (k2 === undefined) k2 = k;
@@ -66170,7 +66459,7 @@ class SecretSharing {
66170
66459
  }
66171
66460
  exports.SecretSharing = SecretSharing;
66172
66461
 
66173
- },{"../@types/event":317,"../logger":394,"../utils":442,"./olmlib":363,"uuid":295}],349:[function(require,module,exports){
66462
+ },{"../@types/event":319,"../logger":396,"../utils":447,"./olmlib":365,"uuid":297}],351:[function(require,module,exports){
66174
66463
  "use strict";
66175
66464
  /*
66176
66465
  Copyright 2019 - 2021 The Matrix.org Foundation C.I.C.
@@ -66285,7 +66574,7 @@ class SecretStorage {
66285
66574
  }
66286
66575
  exports.SecretStorage = SecretStorage;
66287
66576
 
66288
- },{"../secret-storage":429,"./SecretSharing":348}],350:[function(require,module,exports){
66577
+ },{"../secret-storage":434,"./SecretSharing":350}],352:[function(require,module,exports){
66289
66578
  "use strict";
66290
66579
  /*
66291
66580
  Copyright 2020 - 2021 The Matrix.org Foundation C.I.C.
@@ -66413,7 +66702,7 @@ function calculateKeyCheck(key, iv) {
66413
66702
  }
66414
66703
  exports.calculateKeyCheck = calculateKeyCheck;
66415
66704
 
66416
- },{"./crypto":357,"./olmlib":363}],351:[function(require,module,exports){
66705
+ },{"./crypto":359,"./olmlib":365}],353:[function(require,module,exports){
66417
66706
  "use strict";
66418
66707
  /*
66419
66708
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -66605,7 +66894,7 @@ function registerAlgorithm(algorithm, encryptor, decryptor) {
66605
66894
  }
66606
66895
  exports.registerAlgorithm = registerAlgorithm;
66607
66896
 
66608
- },{}],352:[function(require,module,exports){
66897
+ },{}],354:[function(require,module,exports){
66609
66898
  "use strict";
66610
66899
  /*
66611
66900
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -66641,7 +66930,7 @@ require("./olm");
66641
66930
  require("./megolm");
66642
66931
  __exportStar(require("./base"), exports);
66643
66932
 
66644
- },{"./base":351,"./megolm":353,"./olm":354}],353:[function(require,module,exports){
66933
+ },{"./base":353,"./megolm":355,"./olm":356}],355:[function(require,module,exports){
66645
66934
  "use strict";
66646
66935
  /*
66647
66936
  Copyright 2015 - 2021, 2023 The Matrix.org Foundation C.I.C.
@@ -68322,7 +68611,7 @@ const PROBLEM_DESCRIPTIONS = {
68322
68611
  };
68323
68612
  (0, base_1.registerAlgorithm)(olmlib.MEGOLM_ALGORITHM, MegolmEncryption, MegolmDecryption);
68324
68613
 
68325
- },{"../../@types/event":317,"../../logger":394,"../../utils":442,"../OlmDevice":345,"../OutgoingRoomKeyRequestManager":346,"../olmlib":363,"./base":351,"uuid":295}],354:[function(require,module,exports){
68614
+ },{"../../@types/event":319,"../../logger":396,"../../utils":447,"../OlmDevice":347,"../OutgoingRoomKeyRequestManager":348,"../olmlib":365,"./base":353,"uuid":297}],356:[function(require,module,exports){
68326
68615
  "use strict";
68327
68616
  /*
68328
68617
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -68643,7 +68932,7 @@ class OlmDecryption extends base_1.DecryptionAlgorithm {
68643
68932
  }
68644
68933
  (0, base_1.registerAlgorithm)(olmlib.OLM_ALGORITHM, OlmEncryption, OlmDecryption);
68645
68934
 
68646
- },{"../../logger":394,"../deviceinfo":360,"../olmlib":363,"./base":351}],355:[function(require,module,exports){
68935
+ },{"../../logger":396,"../deviceinfo":362,"../olmlib":365,"./base":353}],357:[function(require,module,exports){
68647
68936
  "use strict";
68648
68937
  /*
68649
68938
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -68667,7 +68956,7 @@ exports.CrossSigningKey = void 0;
68667
68956
  var crypto_api_1 = require("../crypto-api");
68668
68957
  Object.defineProperty(exports, "CrossSigningKey", { enumerable: true, get: function () { return crypto_api_1.CrossSigningKey; } });
68669
68958
 
68670
- },{"../crypto-api":339}],356:[function(require,module,exports){
68959
+ },{"../crypto-api":341}],358:[function(require,module,exports){
68671
68960
  (function (global){(function (){
68672
68961
  "use strict";
68673
68962
  /*
@@ -68695,7 +68984,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
68695
68984
  });
68696
68985
  };
68697
68986
  Object.defineProperty(exports, "__esModule", { value: true });
68698
- exports.backupTrustInfoFromLegacyTrustInfo = exports.DefaultAlgorithm = exports.algorithmsByName = exports.Aes256 = exports.Curve25519 = exports.BackupManager = void 0;
68987
+ exports.LibOlmBackupDecryptor = exports.backupTrustInfoFromLegacyTrustInfo = exports.DefaultAlgorithm = exports.algorithmsByName = exports.Aes256 = exports.Curve25519 = exports.BackupManager = void 0;
68699
68988
  const client_1 = require("../client");
68700
68989
  const logger_1 = require("../logger");
68701
68990
  const olmlib_1 = require("./olmlib");
@@ -69420,10 +69709,34 @@ function backupTrustInfoFromLegacyTrustInfo(trustInfo) {
69420
69709
  };
69421
69710
  }
69422
69711
  exports.backupTrustInfoFromLegacyTrustInfo = backupTrustInfoFromLegacyTrustInfo;
69712
+ /**
69713
+ * Implementation of {@link BackupDecryptor} for the libolm crypto backend.
69714
+ */
69715
+ class LibOlmBackupDecryptor {
69716
+ constructor(algorithm) {
69717
+ this.algorithm = algorithm;
69718
+ this.sourceTrusted = !algorithm.untrusted;
69719
+ }
69720
+ /**
69721
+ * Implements {@link BackupDecryptor#free}
69722
+ */
69723
+ free() {
69724
+ this.algorithm.free();
69725
+ }
69726
+ /**
69727
+ * Implements {@link BackupDecryptor#decryptSessions}
69728
+ */
69729
+ decryptSessions(sessions) {
69730
+ return __awaiter(this, void 0, void 0, function* () {
69731
+ return yield this.algorithm.decryptSessions(sessions);
69732
+ });
69733
+ }
69734
+ }
69735
+ exports.LibOlmBackupDecryptor = LibOlmBackupDecryptor;
69423
69736
 
69424
69737
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
69425
69738
 
69426
- },{"../NamespacedValue":331,"../client":336,"../http-api":387,"../logger":394,"../utils":442,"./aes":350,"./crypto":357,"./index":361,"./key_passphrase":362,"./olmlib":363,"./recoverykey":364,"./store/indexeddb-crypto-store":366}],357:[function(require,module,exports){
69739
+ },{"../NamespacedValue":333,"../client":338,"../http-api":389,"../logger":396,"../utils":447,"./aes":352,"./crypto":359,"./index":363,"./key_passphrase":364,"./olmlib":365,"./recoverykey":366,"./store/indexeddb-crypto-store":368}],359:[function(require,module,exports){
69427
69740
  (function (global){(function (){
69428
69741
  "use strict";
69429
69742
  /*
@@ -69482,7 +69795,7 @@ exports.setTextEncoder = setTextEncoder;
69482
69795
 
69483
69796
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
69484
69797
 
69485
- },{"../logger":394,"crypto":78,"util":294}],358:[function(require,module,exports){
69798
+ },{"../logger":396,"crypto":78,"util":296}],360:[function(require,module,exports){
69486
69799
  (function (global,Buffer){(function (){
69487
69800
  "use strict";
69488
69801
  /*
@@ -69715,7 +70028,7 @@ exports.DehydrationManager = DehydrationManager;
69715
70028
 
69716
70029
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
69717
70030
 
69718
- },{"../crypto/store/indexeddb-crypto-store":366,"../http-api":387,"../logger":394,"./aes":350,"./olmlib":363,"another-json":1,"buffer":68}],359:[function(require,module,exports){
70031
+ },{"../crypto/store/indexeddb-crypto-store":368,"../http-api":389,"../logger":396,"./aes":352,"./olmlib":365,"another-json":1,"buffer":68}],361:[function(require,module,exports){
69719
70032
  "use strict";
69720
70033
  /*
69721
70034
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -69761,7 +70074,7 @@ function deviceInfoToDevice(deviceInfo, userId) {
69761
70074
  }
69762
70075
  exports.deviceInfoToDevice = deviceInfoToDevice;
69763
70076
 
69764
- },{"../models/device":399}],360:[function(require,module,exports){
70077
+ },{"../models/device":404}],362:[function(require,module,exports){
69765
70078
  "use strict";
69766
70079
  /*
69767
70080
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -69904,7 +70217,7 @@ DeviceInfo.DeviceVerification = {
69904
70217
  BLOCKED: device_1.DeviceVerification.Blocked,
69905
70218
  };
69906
70219
 
69907
- },{"../models/device":399}],361:[function(require,module,exports){
70220
+ },{"../models/device":404}],363:[function(require,module,exports){
69908
70221
  (function (global,Buffer){(function (){
69909
70222
  "use strict";
69910
70223
  /*
@@ -69998,6 +70311,7 @@ const typed_event_emitter_1 = require("../models/typed-event-emitter");
69998
70311
  const room_state_1 = require("../models/room-state");
69999
70312
  const utils_1 = require("../utils");
70000
70313
  const secret_storage_1 = require("../secret-storage");
70314
+ const crypto_api_1 = require("../crypto-api");
70001
70315
  const device_converter_1 = require("./device-converter");
70002
70316
  const http_api_1 = require("../http-api");
70003
70317
  const DeviceVerification = deviceinfo_1.DeviceInfo.DeviceVerification;
@@ -71409,6 +71723,26 @@ class Crypto extends typed_event_emitter_1.TypedEventEmitter {
71409
71723
  // the backup with the new key (if not already signed)?
71410
71724
  });
71411
71725
  }
71726
+ /**
71727
+ * Implementation of {@link CryptoBackend#getBackupDecryptor}.
71728
+ */
71729
+ getBackupDecryptor(backupInfo, privKey) {
71730
+ return __awaiter(this, void 0, void 0, function* () {
71731
+ if (!(privKey instanceof Uint8Array)) {
71732
+ throw new Error(`getBackupDecryptor expects Uint8Array`);
71733
+ }
71734
+ const algorithm = yield backup_1.BackupManager.makeAlgorithm(backupInfo, () => __awaiter(this, void 0, void 0, function* () {
71735
+ return privKey;
71736
+ }));
71737
+ // If the pubkey computed from the private data we've been given
71738
+ // doesn't match the one in the auth_data, the user has entered
71739
+ // a different recovery key / the wrong passphrase.
71740
+ if (!(yield algorithm.keyMatches(privKey))) {
71741
+ return Promise.reject(new http_api_1.MatrixError({ errcode: client_1.MatrixClient.RESTORE_BACKUP_ERROR_BAD_KEY }));
71742
+ }
71743
+ return new backup_1.LibOlmBackupDecryptor(algorithm);
71744
+ });
71745
+ }
71412
71746
  /**
71413
71747
  * Store a set of keys as our own, trusted, cross-signing keys.
71414
71748
  *
@@ -72161,6 +72495,62 @@ class Crypto extends typed_event_emitter_1.TypedEventEmitter {
72161
72495
  }
72162
72496
  return ret;
72163
72497
  }
72498
+ /**
72499
+ * Implementation of {@link CryptoApi.getEncryptionInfoForEvent}.
72500
+ */
72501
+ getEncryptionInfoForEvent(event) {
72502
+ return __awaiter(this, void 0, void 0, function* () {
72503
+ const encryptionInfo = this.getEventEncryptionInfo(event);
72504
+ if (!encryptionInfo.encrypted) {
72505
+ return null;
72506
+ }
72507
+ const senderId = event.getSender();
72508
+ if (!senderId || encryptionInfo.mismatchedSender) {
72509
+ // something definitely wrong is going on here
72510
+ return {
72511
+ shieldColour: crypto_api_1.EventShieldColour.RED,
72512
+ shieldReason: crypto_api_1.EventShieldReason.MISMATCHED_SENDER_KEY,
72513
+ };
72514
+ }
72515
+ const userTrust = this.checkUserTrust(senderId);
72516
+ if (!userTrust.isCrossSigningVerified()) {
72517
+ // If the message is unauthenticated, then display a grey
72518
+ // shield, otherwise if the user isn't cross-signed then
72519
+ // nothing's needed
72520
+ if (!encryptionInfo.authenticated) {
72521
+ return {
72522
+ shieldColour: crypto_api_1.EventShieldColour.GREY,
72523
+ shieldReason: crypto_api_1.EventShieldReason.AUTHENTICITY_NOT_GUARANTEED,
72524
+ };
72525
+ }
72526
+ else {
72527
+ return { shieldColour: crypto_api_1.EventShieldColour.NONE, shieldReason: null };
72528
+ }
72529
+ }
72530
+ const eventSenderTrust = senderId &&
72531
+ encryptionInfo.sender &&
72532
+ (yield this.getDeviceVerificationStatus(senderId, encryptionInfo.sender.deviceId));
72533
+ if (!eventSenderTrust) {
72534
+ return {
72535
+ shieldColour: crypto_api_1.EventShieldColour.GREY,
72536
+ shieldReason: crypto_api_1.EventShieldReason.UNKNOWN_DEVICE,
72537
+ };
72538
+ }
72539
+ if (!eventSenderTrust.isVerified()) {
72540
+ return {
72541
+ shieldColour: crypto_api_1.EventShieldColour.RED,
72542
+ shieldReason: crypto_api_1.EventShieldReason.UNVERIFIED_IDENTITY,
72543
+ };
72544
+ }
72545
+ if (!encryptionInfo.authenticated) {
72546
+ return {
72547
+ shieldColour: crypto_api_1.EventShieldColour.GREY,
72548
+ shieldReason: crypto_api_1.EventShieldReason.AUTHENTICITY_NOT_GUARANTEED,
72549
+ };
72550
+ }
72551
+ return { shieldColour: crypto_api_1.EventShieldColour.NONE, shieldReason: null };
72552
+ });
72553
+ }
72164
72554
  /**
72165
72555
  * Forces the current outbound group session to be discarded such
72166
72556
  * that another one will be created next time an event is sent.
@@ -73382,7 +73772,7 @@ class IncomingRoomKeyRequestCancellation {
73382
73772
 
73383
73773
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
73384
73774
 
73385
- },{"../@types/event":317,"../ReEmitter":332,"../client":336,"../errors":379,"../http-api":387,"../logger":394,"../models/event":404,"../models/room":413,"../models/room-member":410,"../models/room-state":411,"../models/typed-event-emitter":416,"../secret-storage":429,"../utils":442,"./CrossSigning":342,"./DeviceList":343,"./EncryptionSetup":344,"./OlmDevice":345,"./OutgoingRoomKeyRequestManager":346,"./SecretStorage":349,"./aes":350,"./algorithms":352,"./api":355,"./backup":356,"./dehydration":358,"./device-converter":359,"./deviceinfo":360,"./key_passphrase":362,"./olmlib":363,"./recoverykey":364,"./store/indexeddb-crypto-store":366,"./verification/IllegalMethod":371,"./verification/QRCode":372,"./verification/SAS":373,"./verification/request/InRoomChannel":375,"./verification/request/ToDeviceChannel":376,"./verification/request/VerificationRequest":377,"another-json":1,"buffer":68,"uuid":295}],362:[function(require,module,exports){
73775
+ },{"../@types/event":319,"../ReEmitter":334,"../client":338,"../crypto-api":341,"../errors":381,"../http-api":389,"../logger":396,"../models/event":409,"../models/room":418,"../models/room-member":415,"../models/room-state":416,"../models/typed-event-emitter":421,"../secret-storage":434,"../utils":447,"./CrossSigning":344,"./DeviceList":345,"./EncryptionSetup":346,"./OlmDevice":347,"./OutgoingRoomKeyRequestManager":348,"./SecretStorage":351,"./aes":352,"./algorithms":354,"./api":357,"./backup":358,"./dehydration":360,"./device-converter":361,"./deviceinfo":362,"./key_passphrase":364,"./olmlib":365,"./recoverykey":366,"./store/indexeddb-crypto-store":368,"./verification/IllegalMethod":373,"./verification/QRCode":374,"./verification/SAS":375,"./verification/request/InRoomChannel":377,"./verification/request/ToDeviceChannel":378,"./verification/request/VerificationRequest":379,"another-json":1,"buffer":68,"uuid":297}],364:[function(require,module,exports){
73386
73776
  (function (global){(function (){
73387
73777
  "use strict";
73388
73778
  /*
@@ -73457,7 +73847,7 @@ exports.deriveKey = deriveKey;
73457
73847
 
73458
73848
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
73459
73849
 
73460
- },{"../randomstring":422,"./crypto":357}],363:[function(require,module,exports){
73850
+ },{"../randomstring":427,"./crypto":359}],365:[function(require,module,exports){
73461
73851
  (function (global,Buffer){(function (){
73462
73852
  "use strict";
73463
73853
  /*
@@ -73956,8 +74346,8 @@ exports.decodeBase64 = decodeBase64;
73956
74346
 
73957
74347
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
73958
74348
 
73959
- },{"../@types/event":317,"../logger":394,"../utils":442,"another-json":1,"buffer":68}],364:[function(require,module,exports){
73960
- (function (global,Buffer){(function (){
74349
+ },{"../@types/event":319,"../logger":396,"../utils":447,"another-json":1,"buffer":68}],366:[function(require,module,exports){
74350
+ (function (Buffer){(function (){
73961
74351
  "use strict";
73962
74352
  /*
73963
74353
  Copyright 2018 New Vector Ltd
@@ -74003,6 +74393,7 @@ const bs58 = __importStar(require("bs58"));
74003
74393
  // picked arbitrarily but to try & avoid clashing with any bitcoin ones
74004
74394
  // (which are also base58 encoded, but bitcoin's involve a lot more hashing)
74005
74395
  const OLM_RECOVERY_KEY_PREFIX = [0x8b, 0x01];
74396
+ const KEY_SIZE = 32;
74006
74397
  function encodeRecoveryKey(key) {
74007
74398
  var _a;
74008
74399
  const buf = Buffer.alloc(OLM_RECOVERY_KEY_PREFIX.length + key.length + 1);
@@ -74031,16 +74422,16 @@ function decodeRecoveryKey(recoveryKey) {
74031
74422
  throw new Error("Incorrect prefix");
74032
74423
  }
74033
74424
  }
74034
- if (result.length !== OLM_RECOVERY_KEY_PREFIX.length + global.Olm.PRIVATE_KEY_LENGTH + 1) {
74425
+ if (result.length !== OLM_RECOVERY_KEY_PREFIX.length + KEY_SIZE + 1) {
74035
74426
  throw new Error("Incorrect length");
74036
74427
  }
74037
- return Uint8Array.from(result.slice(OLM_RECOVERY_KEY_PREFIX.length, OLM_RECOVERY_KEY_PREFIX.length + global.Olm.PRIVATE_KEY_LENGTH));
74428
+ return Uint8Array.from(result.slice(OLM_RECOVERY_KEY_PREFIX.length, OLM_RECOVERY_KEY_PREFIX.length + KEY_SIZE));
74038
74429
  }
74039
74430
  exports.decodeRecoveryKey = decodeRecoveryKey;
74040
74431
 
74041
- }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {},require("buffer").Buffer)
74432
+ }).call(this)}).call(this,require("buffer").Buffer)
74042
74433
 
74043
- },{"bs58":65,"buffer":68}],365:[function(require,module,exports){
74434
+ },{"bs58":65,"buffer":68}],367:[function(require,module,exports){
74044
74435
  "use strict";
74045
74436
  /*
74046
74437
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -74961,7 +75352,7 @@ function promiseifyTxn(txn) {
74961
75352
  });
74962
75353
  }
74963
75354
 
74964
- },{"../../logger":394,"../../utils":442}],366:[function(require,module,exports){
75355
+ },{"../../logger":396,"../../utils":447}],368:[function(require,module,exports){
74965
75356
  (function (global){(function (){
74966
75357
  "use strict";
74967
75358
  /*
@@ -75544,7 +75935,7 @@ IndexedDBCryptoStore.STORE_BACKUP = "sessions_needing_backup";
75544
75935
 
75545
75936
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
75546
75937
 
75547
- },{"../../errors":379,"../../indexeddb-helpers":392,"../../logger":394,"./indexeddb-crypto-store-backend":365,"./localStorage-crypto-store":367,"./memory-crypto-store":368}],367:[function(require,module,exports){
75938
+ },{"../../errors":381,"../../indexeddb-helpers":394,"../../logger":396,"./indexeddb-crypto-store-backend":367,"./localStorage-crypto-store":369,"./memory-crypto-store":370}],369:[function(require,module,exports){
75548
75939
  "use strict";
75549
75940
  /*
75550
75941
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -75872,7 +76263,7 @@ function setJsonItem(store, key, val) {
75872
76263
  store.setItem(key, JSON.stringify(val));
75873
76264
  }
75874
76265
 
75875
- },{"../../logger":394,"../../utils":442,"./memory-crypto-store":368}],368:[function(require,module,exports){
76266
+ },{"../../logger":396,"../../utils":447,"./memory-crypto-store":370}],370:[function(require,module,exports){
75876
76267
  "use strict";
75877
76268
  /*
75878
76269
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -76294,7 +76685,7 @@ class MemoryCryptoStore {
76294
76685
  }
76295
76686
  exports.MemoryCryptoStore = MemoryCryptoStore;
76296
76687
 
76297
- },{"../../logger":394,"../../utils":442}],369:[function(require,module,exports){
76688
+ },{"../../logger":396,"../../utils":447}],371:[function(require,module,exports){
76298
76689
  "use strict";
76299
76690
  /*
76300
76691
  Copyright 2018 New Vector Ltd
@@ -76663,7 +77054,7 @@ class VerificationBase extends typed_event_emitter_1.TypedEventEmitter {
76663
77054
  }
76664
77055
  exports.VerificationBase = VerificationBase;
76665
77056
 
76666
- },{"../../@types/event":317,"../../crypto-api/verification":341,"../../logger":394,"../../models/event":404,"../../models/typed-event-emitter":416,"../CrossSigning":342,"../deviceinfo":360,"./Error":370}],370:[function(require,module,exports){
77057
+ },{"../../@types/event":319,"../../crypto-api/verification":343,"../../logger":396,"../../models/event":409,"../../models/typed-event-emitter":421,"../CrossSigning":344,"../deviceinfo":362,"./Error":372}],372:[function(require,module,exports){
76667
77058
  "use strict";
76668
77059
  /*
76669
77060
  Copyright 2018 - 2021 The Matrix.org Foundation C.I.C.
@@ -76737,7 +77128,7 @@ function errorFromEvent(event) {
76737
77128
  }
76738
77129
  exports.errorFromEvent = errorFromEvent;
76739
77130
 
76740
- },{"../../@types/event":317,"../../models/event":404}],371:[function(require,module,exports){
77131
+ },{"../../@types/event":319,"../../models/event":409}],373:[function(require,module,exports){
76741
77132
  "use strict";
76742
77133
  /*
76743
77134
  Copyright 2020 The Matrix.org Foundation C.I.C.
@@ -76789,7 +77180,7 @@ class IllegalMethod extends Base_1.VerificationBase {
76789
77180
  }
76790
77181
  exports.IllegalMethod = IllegalMethod;
76791
77182
 
76792
- },{"./Base":369}],372:[function(require,module,exports){
77183
+ },{"./Base":371}],374:[function(require,module,exports){
76793
77184
  (function (Buffer){(function (){
76794
77185
  "use strict";
76795
77186
  /*
@@ -77067,7 +77458,7 @@ exports.QRCodeData = QRCodeData;
77067
77458
 
77068
77459
  }).call(this)}).call(this,require("buffer").Buffer)
77069
77460
 
77070
- },{"../../crypto-api/verification":341,"../../logger":394,"../crypto":357,"../olmlib":363,"./Base":369,"./Error":370,"buffer":68}],373:[function(require,module,exports){
77461
+ },{"../../crypto-api/verification":343,"../../logger":396,"../crypto":359,"../olmlib":365,"./Base":371,"./Error":372,"buffer":68}],375:[function(require,module,exports){
77071
77462
  (function (global){(function (){
77072
77463
  "use strict";
77073
77464
  /*
@@ -77515,7 +77906,7 @@ exports.SAS = SAS;
77515
77906
 
77516
77907
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
77517
77908
 
77518
- },{"../../@types/event":317,"../../crypto-api/verification":341,"../../logger":394,"./Base":369,"./Error":370,"./SASDecimal":374,"another-json":1}],374:[function(require,module,exports){
77909
+ },{"../../@types/event":319,"../../crypto-api/verification":343,"../../logger":396,"./Base":371,"./Error":372,"./SASDecimal":376,"another-json":1}],376:[function(require,module,exports){
77519
77910
  "use strict";
77520
77911
  /*
77521
77912
  Copyright 2018 - 2022 The Matrix.org Foundation C.I.C.
@@ -77557,7 +77948,7 @@ function generateDecimalSas(sasBytes) {
77557
77948
  }
77558
77949
  exports.generateDecimalSas = generateDecimalSas;
77559
77950
 
77560
- },{}],375:[function(require,module,exports){
77951
+ },{}],377:[function(require,module,exports){
77561
77952
  "use strict";
77562
77953
  /*
77563
77954
  Copyright 2018 New Vector Ltd
@@ -77906,7 +78297,7 @@ class InRoomRequests {
77906
78297
  }
77907
78298
  exports.InRoomRequests = InRoomRequests;
77908
78299
 
77909
- },{"../../../@types/event":317,"../../../logger":394,"./VerificationRequest":377}],376:[function(require,module,exports){
78300
+ },{"../../../@types/event":319,"../../../logger":396,"./VerificationRequest":379}],378:[function(require,module,exports){
77910
78301
  "use strict";
77911
78302
  /*
77912
78303
  Copyright 2018 New Vector Ltd
@@ -78234,7 +78625,7 @@ class ToDeviceRequests {
78234
78625
  }
78235
78626
  exports.ToDeviceRequests = ToDeviceRequests;
78236
78627
 
78237
- },{"../../../logger":394,"../../../models/event":404,"../../../randomstring":422,"../Error":370,"./VerificationRequest":377}],377:[function(require,module,exports){
78628
+ },{"../../../logger":396,"../../../models/event":409,"../../../randomstring":427,"../Error":372,"./VerificationRequest":379}],379:[function(require,module,exports){
78238
78629
  "use strict";
78239
78630
  /*
78240
78631
  Copyright 2018 - 2021 The Matrix.org Foundation C.I.C.
@@ -79107,7 +79498,7 @@ class VerificationRequest extends typed_event_emitter_1.TypedEventEmitter {
79107
79498
  }
79108
79499
  exports.VerificationRequest = VerificationRequest;
79109
79500
 
79110
- },{"../../../@types/event":317,"../../../crypto-api/verification":341,"../../../logger":394,"../../../models/typed-event-emitter":416,"../Error":370,"../QRCode":372}],378:[function(require,module,exports){
79501
+ },{"../../../@types/event":319,"../../../crypto-api/verification":343,"../../../logger":396,"../../../models/typed-event-emitter":421,"../Error":372,"../QRCode":374}],380:[function(require,module,exports){
79111
79502
  "use strict";
79112
79503
  /*
79113
79504
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -79232,6 +79623,12 @@ class RoomWidgetClient extends client_1.MatrixClient {
79232
79623
  widgetApi.on(`action:${matrix_widget_api_1.WidgetApiToWidgetAction.SendToDevice}`, this.onToDevice);
79233
79624
  // Open communication with the host
79234
79625
  widgetApi.start();
79626
+ // Send a content loaded event now we've started the widget API
79627
+ // Note that element-web currently does not use waitForIFrameLoad=false and so
79628
+ // does *not* (yes, that is the right way around) wait for this event. Let's
79629
+ // start sending this, then once this has rolled out, we can change element-web to
79630
+ // use waitForIFrameLoad=false and have a widget API that's less racy.
79631
+ widgetApi.sendContentLoaded();
79235
79632
  }
79236
79633
  startClient(opts = {}) {
79237
79634
  var _a, _b;
@@ -79269,6 +79666,7 @@ class RoomWidgetClient extends client_1.MatrixClient {
79269
79666
  }))) !== null && _b !== void 0 ? _b : []);
79270
79667
  this.setSyncState(sync_1.SyncState.Syncing);
79271
79668
  logger_1.logger.info("Finished backfilling events");
79669
+ this.matrixRTC.start();
79272
79670
  // Watch for TURN servers, if requested
79273
79671
  if (this.capabilities.turnServers)
79274
79672
  this.watchTurnServers();
@@ -79312,6 +79710,19 @@ class RoomWidgetClient extends client_1.MatrixClient {
79312
79710
  return {};
79313
79711
  });
79314
79712
  }
79713
+ getOpenIdToken() {
79714
+ return __awaiter(this, void 0, void 0, function* () {
79715
+ const token = yield this.widgetApi.requestOpenIDConnectToken();
79716
+ // the IOpenIDCredentials from the widget-api and IOpenIDToken form the matrix-js-sdk are compatible.
79717
+ // we still recreate the token to make this transparent and catch'able by the linter in case the types change in the future.
79718
+ return {
79719
+ access_token: token.access_token,
79720
+ expires_in: token.expires_in,
79721
+ matrix_server_name: token.matrix_server_name,
79722
+ token_type: token.token_type,
79723
+ };
79724
+ });
79725
+ }
79315
79726
  queueToDevice({ eventType, batch }) {
79316
79727
  return __awaiter(this, void 0, void 0, function* () {
79317
79728
  // map: user Id → device Id → payload
@@ -79397,7 +79808,7 @@ class RoomWidgetClient extends client_1.MatrixClient {
79397
79808
  }
79398
79809
  exports.RoomWidgetClient = RoomWidgetClient;
79399
79810
 
79400
- },{"./@types/event":317,"./client":336,"./logger":394,"./models/event":404,"./models/user":417,"./sliding-sync-sdk":431,"./sync":440,"./utils":442,"matrix-widget-api":184}],379:[function(require,module,exports){
79811
+ },{"./@types/event":319,"./client":338,"./logger":396,"./models/event":409,"./models/user":422,"./sliding-sync-sdk":436,"./sync":445,"./utils":447,"matrix-widget-api":184}],381:[function(require,module,exports){
79401
79812
  "use strict";
79402
79813
  /*
79403
79814
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -79469,7 +79880,7 @@ class ClientStoppedError extends Error {
79469
79880
  }
79470
79881
  exports.ClientStoppedError = ClientStoppedError;
79471
79882
 
79472
- },{}],380:[function(require,module,exports){
79883
+ },{}],382:[function(require,module,exports){
79473
79884
  "use strict";
79474
79885
  /*
79475
79886
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -79550,7 +79961,7 @@ function eventMapperFor(client, options) {
79550
79961
  }
79551
79962
  exports.eventMapperFor = eventMapperFor;
79552
79963
 
79553
- },{"./@types/event":317,"./models/event":404}],381:[function(require,module,exports){
79964
+ },{"./@types/event":319,"./models/event":409}],383:[function(require,module,exports){
79554
79965
  "use strict";
79555
79966
  /*
79556
79967
  Copyright 2021 - 2023 The Matrix.org Foundation C.I.C.
@@ -79588,7 +79999,7 @@ function isOptionalAString(s) {
79588
79999
  }
79589
80000
  exports.isOptionalAString = isOptionalAString;
79590
80001
 
79591
- },{}],382:[function(require,module,exports){
80002
+ },{}],384:[function(require,module,exports){
79592
80003
  "use strict";
79593
80004
  /*
79594
80005
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -79686,7 +80097,7 @@ function buildFeatureSupportMap(versions) {
79686
80097
  }
79687
80098
  exports.buildFeatureSupportMap = buildFeatureSupportMap;
79688
80099
 
79689
- },{}],383:[function(require,module,exports){
80100
+ },{}],385:[function(require,module,exports){
79690
80101
  "use strict";
79691
80102
  /*
79692
80103
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -79849,7 +80260,7 @@ class FilterComponent {
79849
80260
  }
79850
80261
  exports.FilterComponent = FilterComponent;
79851
80262
 
79852
- },{"./models/thread":415}],384:[function(require,module,exports){
80263
+ },{"./models/thread":420}],386:[function(require,module,exports){
79853
80264
  "use strict";
79854
80265
  /*
79855
80266
  Copyright 2015 - 2021 Matrix.org Foundation C.I.C.
@@ -80032,7 +80443,7 @@ Filter.LAZY_LOADING_MESSAGES_FILTER = {
80032
80443
  lazy_load_members: true,
80033
80444
  };
80034
80445
 
80035
- },{"./@types/sync":327,"./filter-component":383}],385:[function(require,module,exports){
80446
+ },{"./@types/sync":329,"./filter-component":385}],387:[function(require,module,exports){
80036
80447
  "use strict";
80037
80448
  /*
80038
80449
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -80105,7 +80516,7 @@ class ConnectionError extends Error {
80105
80516
  }
80106
80517
  exports.ConnectionError = ConnectionError;
80107
80518
 
80108
- },{}],386:[function(require,module,exports){
80519
+ },{}],388:[function(require,module,exports){
80109
80520
  (function (global){(function (){
80110
80521
  "use strict";
80111
80522
  /*
@@ -80413,7 +80824,7 @@ exports.FetchHttpApi = FetchHttpApi;
80413
80824
 
80414
80825
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
80415
80826
 
80416
- },{"../logger":394,"../utils":442,"./errors":385,"./interface":388,"./method":389,"./utils":391}],387:[function(require,module,exports){
80827
+ },{"../logger":396,"../utils":447,"./errors":387,"./interface":390,"./method":391,"./utils":393}],389:[function(require,module,exports){
80417
80828
  (function (global){(function (){
80418
80829
  "use strict";
80419
80830
  /*
@@ -80623,7 +81034,7 @@ exports.MatrixHttpApi = MatrixHttpApi;
80623
81034
 
80624
81035
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
80625
81036
 
80626
- },{"../realtime-callbacks":423,"../utils":442,"./errors":385,"./fetch":386,"./interface":388,"./method":389,"./prefix":390,"./utils":391}],388:[function(require,module,exports){
81037
+ },{"../realtime-callbacks":428,"../utils":447,"./errors":387,"./fetch":388,"./interface":390,"./method":391,"./prefix":392,"./utils":393}],390:[function(require,module,exports){
80627
81038
  "use strict";
80628
81039
  /*
80629
81040
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -80648,7 +81059,7 @@ var HttpApiEvent;
80648
81059
  HttpApiEvent["NoConsent"] = "no_consent";
80649
81060
  })(HttpApiEvent || (exports.HttpApiEvent = HttpApiEvent = {}));
80650
81061
 
80651
- },{}],389:[function(require,module,exports){
81062
+ },{}],391:[function(require,module,exports){
80652
81063
  "use strict";
80653
81064
  /*
80654
81065
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -80675,7 +81086,7 @@ var Method;
80675
81086
  Method["Delete"] = "DELETE";
80676
81087
  })(Method || (exports.Method = Method = {}));
80677
81088
 
80678
- },{}],390:[function(require,module,exports){
81089
+ },{}],392:[function(require,module,exports){
80679
81090
  "use strict";
80680
81091
  /*
80681
81092
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -80728,7 +81139,7 @@ var MediaPrefix;
80728
81139
  MediaPrefix["V3"] = "/_matrix/media/v3";
80729
81140
  })(MediaPrefix || (exports.MediaPrefix = MediaPrefix = {}));
80730
81141
 
80731
- },{}],391:[function(require,module,exports){
81142
+ },{}],393:[function(require,module,exports){
80732
81143
  "use strict";
80733
81144
  /*
80734
81145
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -80884,7 +81295,7 @@ function retryNetworkOperation(maxAttempts, callback) {
80884
81295
  }
80885
81296
  exports.retryNetworkOperation = retryNetworkOperation;
80886
81297
 
80887
- },{"../logger":394,"../utils":442,"./errors":385,"content-type":72}],392:[function(require,module,exports){
81298
+ },{"../logger":396,"../utils":447,"./errors":387,"content-type":72}],394:[function(require,module,exports){
80888
81299
  "use strict";
80889
81300
  /*
80890
81301
  Copyright 2019 New Vector Ltd
@@ -80939,7 +81350,7 @@ function exists(indexedDB, dbName) {
80939
81350
  }
80940
81351
  exports.exists = exists;
80941
81352
 
80942
- },{}],393:[function(require,module,exports){
81353
+ },{}],395:[function(require,module,exports){
80943
81354
  "use strict";
80944
81355
  /*
80945
81356
  Copyright 2016 OpenMarket Ltd
@@ -81443,7 +81854,7 @@ class InteractiveAuth {
81443
81854
  }
81444
81855
  exports.InteractiveAuth = InteractiveAuth;
81445
81856
 
81446
- },{"./http-api":387,"./logger":394,"./utils":442}],394:[function(require,module,exports){
81857
+ },{"./http-api":389,"./logger":396,"./utils":447}],396:[function(require,module,exports){
81447
81858
  "use strict";
81448
81859
  /*
81449
81860
  Copyright 2018 André Jaenisch
@@ -81525,7 +81936,7 @@ function getPrefixedLogger(prefix) {
81525
81936
  return prefixLogger;
81526
81937
  }
81527
81938
 
81528
- },{"loglevel":157}],395:[function(require,module,exports){
81939
+ },{"loglevel":157}],397:[function(require,module,exports){
81529
81940
  (function (global){(function (){
81530
81941
  "use strict";
81531
81942
  /*
@@ -81718,7 +82129,552 @@ exports.createRoomWidgetClient = createRoomWidgetClient;
81718
82129
 
81719
82130
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
81720
82131
 
81721
- },{"./@types/IIdentityServerProvider":312,"./@types/PushRules":313,"./@types/auth":314,"./@types/beacon":315,"./@types/crypto":316,"./@types/event":317,"./@types/extensible_events":318,"./@types/local_notifications":319,"./@types/location":320,"./@types/partials":321,"./@types/polls":322,"./@types/read_receipts":323,"./@types/registration":324,"./@types/requests":325,"./@types/search":326,"./@types/threepids":328,"./@types/topic":329,"./@types/uia":330,"./autodiscovery":334,"./client":336,"./content-helpers":337,"./content-repo":338,"./crypto":361,"./crypto-api":339,"./crypto/store/indexeddb-crypto-store":366,"./crypto/store/localStorage-crypto-store":367,"./crypto/store/memory-crypto-store":368,"./embedded":378,"./errors":379,"./filter":384,"./http-api":387,"./interactive-auth":393,"./models/beacon":398,"./models/device":399,"./models/event":404,"./models/event-status":401,"./models/event-timeline":403,"./models/event-timeline-set":402,"./models/poll":406,"./models/relations":409,"./models/room":413,"./models/room-member":410,"./models/room-state":411,"./models/room-summary":412,"./models/search-result":414,"./models/thread":415,"./models/typed-event-emitter":416,"./models/user":417,"./scheduler":428,"./secret-storage":429,"./service-types":430,"./sliding-sync":432,"./store/indexeddb":435,"./store/local-storage-events-emitter":436,"./store/memory":437,"./sync":440,"./sync-accumulator":439,"./timeline-window":441,"./webrtc/call":445,"./webrtc/callFeed":448,"./webrtc/groupCall":449,"./webrtc/mediaHandler":451,"./webrtc/stats/statsReport":462}],396:[function(require,module,exports){
82132
+ },{"./@types/IIdentityServerProvider":314,"./@types/PushRules":315,"./@types/auth":316,"./@types/beacon":317,"./@types/crypto":318,"./@types/event":319,"./@types/extensible_events":320,"./@types/local_notifications":321,"./@types/location":322,"./@types/partials":323,"./@types/polls":324,"./@types/read_receipts":325,"./@types/registration":326,"./@types/requests":327,"./@types/search":328,"./@types/threepids":330,"./@types/topic":331,"./@types/uia":332,"./autodiscovery":336,"./client":338,"./content-helpers":339,"./content-repo":340,"./crypto":363,"./crypto-api":341,"./crypto/store/indexeddb-crypto-store":368,"./crypto/store/localStorage-crypto-store":369,"./crypto/store/memory-crypto-store":370,"./embedded":380,"./errors":381,"./filter":386,"./http-api":389,"./interactive-auth":395,"./models/beacon":403,"./models/device":404,"./models/event":409,"./models/event-status":406,"./models/event-timeline":408,"./models/event-timeline-set":407,"./models/poll":411,"./models/relations":414,"./models/room":418,"./models/room-member":415,"./models/room-state":416,"./models/room-summary":417,"./models/search-result":419,"./models/thread":420,"./models/typed-event-emitter":421,"./models/user":422,"./scheduler":433,"./secret-storage":434,"./service-types":435,"./sliding-sync":437,"./store/indexeddb":440,"./store/local-storage-events-emitter":441,"./store/memory":442,"./sync":445,"./sync-accumulator":444,"./timeline-window":446,"./webrtc/call":450,"./webrtc/callFeed":453,"./webrtc/groupCall":454,"./webrtc/mediaHandler":456,"./webrtc/stats/statsReport":467}],398:[function(require,module,exports){
82133
+ "use strict";
82134
+ /*
82135
+ Copyright 2023 The Matrix.org Foundation C.I.C.
82136
+
82137
+ Licensed under the Apache License, Version 2.0 (the "License");
82138
+ you may not use this file except in compliance with the License.
82139
+ You may obtain a copy of the License at
82140
+
82141
+ http://www.apache.org/licenses/LICENSE-2.0
82142
+
82143
+ Unless required by applicable law or agreed to in writing, software
82144
+ distributed under the License is distributed on an "AS IS" BASIS,
82145
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
82146
+ See the License for the specific language governing permissions and
82147
+ limitations under the License.
82148
+ */
82149
+ Object.defineProperty(exports, "__esModule", { value: true });
82150
+ exports.CallMembership = void 0;
82151
+ const utils_1 = require("../utils");
82152
+ class CallMembership {
82153
+ static equal(a, b) {
82154
+ return (0, utils_1.deepCompare)(a.data, b.data);
82155
+ }
82156
+ constructor(parentEvent, data) {
82157
+ this.parentEvent = parentEvent;
82158
+ this.data = data;
82159
+ if (typeof data.expires !== "number")
82160
+ throw new Error("Malformed membership: expires must be numeric");
82161
+ if (typeof data.device_id !== "string")
82162
+ throw new Error("Malformed membership event: device_id must be string");
82163
+ if (typeof data.call_id !== "string")
82164
+ throw new Error("Malformed membership event: call_id must be string");
82165
+ if (typeof data.scope !== "string")
82166
+ throw new Error("Malformed membership event: scope must be string");
82167
+ if (!parentEvent.sender)
82168
+ throw new Error("Invalid parent event: sender is null");
82169
+ }
82170
+ get member() {
82171
+ return this.parentEvent.sender;
82172
+ }
82173
+ get callId() {
82174
+ return this.data.call_id;
82175
+ }
82176
+ get deviceId() {
82177
+ return this.data.device_id;
82178
+ }
82179
+ get application() {
82180
+ return this.data.application;
82181
+ }
82182
+ get scope() {
82183
+ return this.data.scope;
82184
+ }
82185
+ createdTs() {
82186
+ var _a;
82187
+ return (_a = this.data.created_ts) !== null && _a !== void 0 ? _a : this.parentEvent.getTs();
82188
+ }
82189
+ getAbsoluteExpiry() {
82190
+ return this.createdTs() + this.data.expires;
82191
+ }
82192
+ // gets the expiry time of the event, converted into the device's local time
82193
+ getLocalExpiry() {
82194
+ const relativeCreationTime = this.parentEvent.getTs() - this.createdTs();
82195
+ const localCreationTs = this.parentEvent.localTimestamp - relativeCreationTime;
82196
+ return localCreationTs + this.data.expires;
82197
+ }
82198
+ getMsUntilExpiry() {
82199
+ return this.getLocalExpiry() - Date.now();
82200
+ }
82201
+ isExpired() {
82202
+ return this.getAbsoluteExpiry() < this.parentEvent.getTs() + this.parentEvent.getLocalAge();
82203
+ }
82204
+ getActiveFoci() {
82205
+ var _a;
82206
+ return (_a = this.data.foci_active) !== null && _a !== void 0 ? _a : [];
82207
+ }
82208
+ }
82209
+ exports.CallMembership = CallMembership;
82210
+
82211
+ },{"../utils":447}],399:[function(require,module,exports){
82212
+ "use strict";
82213
+ /*
82214
+ Copyright 2023 The Matrix.org Foundation C.I.C.
82215
+
82216
+ Licensed under the Apache License, Version 2.0 (the "License");
82217
+ you may not use this file except in compliance with the License.
82218
+ You may obtain a copy of the License at
82219
+
82220
+ http://www.apache.org/licenses/LICENSE-2.0
82221
+
82222
+ Unless required by applicable law or agreed to in writing, software
82223
+ distributed under the License is distributed on an "AS IS" BASIS,
82224
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
82225
+ See the License for the specific language governing permissions and
82226
+ limitations under the License.
82227
+ */
82228
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
82229
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
82230
+ return new (P || (P = Promise))(function (resolve, reject) {
82231
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
82232
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
82233
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
82234
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
82235
+ });
82236
+ };
82237
+ Object.defineProperty(exports, "__esModule", { value: true });
82238
+ exports.MatrixRTCSession = exports.MatrixRTCSessionEvent = void 0;
82239
+ const logger_1 = require("../logger");
82240
+ const typed_event_emitter_1 = require("../models/typed-event-emitter");
82241
+ const event_timeline_1 = require("../models/event-timeline");
82242
+ const event_1 = require("../@types/event");
82243
+ const CallMembership_1 = require("./CallMembership");
82244
+ const MEMBERSHIP_EXPIRY_TIME = 60 * 60 * 1000;
82245
+ const MEMBER_EVENT_CHECK_PERIOD = 2 * 60 * 1000; // How often we check to see if we need to re-send our member event
82246
+ const CALL_MEMBER_EVENT_RETRY_DELAY_MIN = 3000;
82247
+ var MatrixRTCSessionEvent;
82248
+ (function (MatrixRTCSessionEvent) {
82249
+ // A member joined, left, or updated a property of their membership.
82250
+ MatrixRTCSessionEvent["MembershipsChanged"] = "memberships_changed";
82251
+ // We joined or left the session: our own local idea of whether we are joined,
82252
+ // separate from MembershipsChanged, ie. independent of whether our member event
82253
+ // has succesfully gone through.
82254
+ MatrixRTCSessionEvent["JoinStateChanged"] = "join_state_changed";
82255
+ })(MatrixRTCSessionEvent || (exports.MatrixRTCSessionEvent = MatrixRTCSessionEvent = {}));
82256
+ /**
82257
+ * A MatrixRTCSession manages the membership & properties of a MatrixRTC session.
82258
+ * This class doesn't deal with media at all, just membership & properties of a session.
82259
+ */
82260
+ class MatrixRTCSession extends typed_event_emitter_1.TypedEventEmitter {
82261
+ /**
82262
+ * Returns all the call memberships for a room, oldest first
82263
+ */
82264
+ static callMembershipsForRoom(room) {
82265
+ const roomState = room.getLiveTimeline().getState(event_timeline_1.EventTimeline.FORWARDS);
82266
+ if (!roomState) {
82267
+ logger_1.logger.warn("Couldn't get state for room " + room.roomId);
82268
+ throw new Error("Could't get state for room " + room.roomId);
82269
+ }
82270
+ const callMemberEvents = roomState.getStateEvents(event_1.EventType.GroupCallMemberPrefix);
82271
+ const callMemberships = [];
82272
+ for (const memberEvent of callMemberEvents) {
82273
+ const eventMemberships = memberEvent.getContent()["memberships"];
82274
+ if (eventMemberships === undefined) {
82275
+ logger_1.logger.warn(`Ignoring malformed member event from ${memberEvent.getSender()}: no memberships section`);
82276
+ continue;
82277
+ }
82278
+ if (!Array.isArray(eventMemberships)) {
82279
+ logger_1.logger.warn(`Malformed member event from ${memberEvent.getSender()}: memberships is not an array`);
82280
+ continue;
82281
+ }
82282
+ for (const membershipData of eventMemberships) {
82283
+ try {
82284
+ const membership = new CallMembership_1.CallMembership(memberEvent, membershipData);
82285
+ if (membership.callId !== "" || membership.scope !== "m.room") {
82286
+ // for now, just ignore anything that isn't the a room scope call
82287
+ logger_1.logger.info(`Ignoring user-scoped call`);
82288
+ continue;
82289
+ }
82290
+ if (membership.isExpired()) {
82291
+ logger_1.logger.info(`Ignoring expired device membership ${memberEvent.getSender()}/${membership.deviceId}`);
82292
+ continue;
82293
+ }
82294
+ callMemberships.push(membership);
82295
+ }
82296
+ catch (e) {
82297
+ logger_1.logger.warn("Couldn't construct call membership: ", e);
82298
+ }
82299
+ }
82300
+ }
82301
+ callMemberships.sort((a, b) => a.createdTs() - b.createdTs());
82302
+ logger_1.logger.debug("Call memberships, in order: ", callMemberships.map((m) => [m.createdTs(), m.member.userId]));
82303
+ return callMemberships;
82304
+ }
82305
+ /**
82306
+ * Return a the MatrixRTC for the room, whether there are currently active members or not
82307
+ */
82308
+ static roomSessionForRoom(client, room) {
82309
+ const callMemberships = MatrixRTCSession.callMembershipsForRoom(room);
82310
+ return new MatrixRTCSession(client, room, callMemberships);
82311
+ }
82312
+ constructor(client, room, memberships) {
82313
+ super();
82314
+ this.client = client;
82315
+ this.room = room;
82316
+ this.memberships = memberships;
82317
+ this.updateCallMembershipRunning = false;
82318
+ this.needCallMembershipUpdate = false;
82319
+ this.onMembershipUpdate = () => {
82320
+ const oldMemberships = this.memberships;
82321
+ this.memberships = MatrixRTCSession.callMembershipsForRoom(this.room);
82322
+ const changed = oldMemberships.length != this.memberships.length ||
82323
+ oldMemberships.some((m, i) => !CallMembership_1.CallMembership.equal(m, this.memberships[i]));
82324
+ if (changed) {
82325
+ logger_1.logger.info(`Memberships for call in room ${this.room.roomId} have changed: emitting`);
82326
+ this.emit(MatrixRTCSessionEvent.MembershipsChanged, oldMemberships, this.memberships);
82327
+ }
82328
+ this.setExpiryTimer();
82329
+ };
82330
+ this.triggerCallMembershipEventUpdate = () => __awaiter(this, void 0, void 0, function* () {
82331
+ if (this.updateCallMembershipRunning) {
82332
+ this.needCallMembershipUpdate = true;
82333
+ return;
82334
+ }
82335
+ this.updateCallMembershipRunning = true;
82336
+ try {
82337
+ // if anything triggers an update while the update is running, do another update afterwards
82338
+ do {
82339
+ this.needCallMembershipUpdate = false;
82340
+ yield this.updateCallMembershipEvent();
82341
+ } while (this.needCallMembershipUpdate);
82342
+ }
82343
+ finally {
82344
+ this.updateCallMembershipRunning = false;
82345
+ }
82346
+ });
82347
+ this.setExpiryTimer();
82348
+ }
82349
+ /*
82350
+ * Returns true if we intend to be participating in the MatrixRTC session.
82351
+ */
82352
+ isJoined() {
82353
+ return this.relativeExpiry !== undefined;
82354
+ }
82355
+ /**
82356
+ * Performs cleanup & removes timers for client shutdown
82357
+ */
82358
+ stop() {
82359
+ this.leaveRoomSession();
82360
+ if (this.expiryTimeout) {
82361
+ clearTimeout(this.expiryTimeout);
82362
+ this.expiryTimeout = undefined;
82363
+ }
82364
+ if (this.memberEventTimeout) {
82365
+ clearTimeout(this.memberEventTimeout);
82366
+ this.memberEventTimeout = undefined;
82367
+ }
82368
+ }
82369
+ /**
82370
+ * Announces this user and device as joined to the MatrixRTC session,
82371
+ * and continues to update the membership event to keep it valid until
82372
+ * leaveRoomSession() is called
82373
+ * This will not subscribe to updates: remember to call subscribe() separately if
82374
+ * desired.
82375
+ * This method will return immediately and the session will be joined in the background.
82376
+ */
82377
+ joinRoomSession(activeFoci) {
82378
+ if (this.isJoined()) {
82379
+ logger_1.logger.info(`Already joined to session in room ${this.room.roomId}: ignoring join call`);
82380
+ return;
82381
+ }
82382
+ logger_1.logger.info(`Joining call session in room ${this.room.roomId}`);
82383
+ this.activeFoci = activeFoci;
82384
+ this.relativeExpiry = MEMBERSHIP_EXPIRY_TIME;
82385
+ this.emit(MatrixRTCSessionEvent.JoinStateChanged, true);
82386
+ // We don't wait for this, mostly because it may fail and schedule a retry, so this
82387
+ // function returning doesn't really mean anything at all.
82388
+ this.triggerCallMembershipEventUpdate();
82389
+ }
82390
+ /**
82391
+ * Announces this user and device as having left the MatrixRTC session
82392
+ * and stops scheduled updates.
82393
+ * This will not unsubscribe from updates: remember to call unsubscribe() separately if
82394
+ * desired.
82395
+ */
82396
+ leaveRoomSession() {
82397
+ if (!this.isJoined()) {
82398
+ logger_1.logger.info(`Not joined to session in room ${this.room.roomId}: ignoring leave call`);
82399
+ return;
82400
+ }
82401
+ logger_1.logger.info(`Leaving call session in room ${this.room.roomId}`);
82402
+ this.relativeExpiry = undefined;
82403
+ this.activeFoci = undefined;
82404
+ this.emit(MatrixRTCSessionEvent.JoinStateChanged, false);
82405
+ this.triggerCallMembershipEventUpdate();
82406
+ }
82407
+ /**
82408
+ * Sets a timer for the soonest membership expiry
82409
+ */
82410
+ setExpiryTimer() {
82411
+ if (this.expiryTimeout) {
82412
+ clearTimeout(this.expiryTimeout);
82413
+ this.expiryTimeout = undefined;
82414
+ }
82415
+ let soonestExpiry;
82416
+ for (const membership of this.memberships) {
82417
+ const thisExpiry = membership.getMsUntilExpiry();
82418
+ if (soonestExpiry === undefined || thisExpiry < soonestExpiry) {
82419
+ soonestExpiry = thisExpiry;
82420
+ }
82421
+ }
82422
+ if (soonestExpiry != undefined) {
82423
+ this.expiryTimeout = setTimeout(this.onMembershipUpdate, soonestExpiry);
82424
+ }
82425
+ }
82426
+ getOldestMembership() {
82427
+ return this.memberships[0];
82428
+ }
82429
+ /**
82430
+ * Constructs our own membership
82431
+ * @param prevEvent - The previous version of our call membership, if any
82432
+ */
82433
+ makeMyMembership(prevMembership) {
82434
+ if (this.relativeExpiry === undefined) {
82435
+ throw new Error("Tried to create our own membership event when we're not joined!");
82436
+ }
82437
+ const m = {
82438
+ call_id: "",
82439
+ scope: "m.room",
82440
+ application: "m.call",
82441
+ device_id: this.client.getDeviceId(),
82442
+ expires: this.relativeExpiry,
82443
+ foci_active: this.activeFoci,
82444
+ };
82445
+ if (prevMembership)
82446
+ m.created_ts = prevMembership.createdTs();
82447
+ return m;
82448
+ }
82449
+ /**
82450
+ * Returns true if our membership event needs to be updated
82451
+ */
82452
+ membershipEventNeedsUpdate(myPrevMembershipData, myPrevMembership) {
82453
+ // work out if we need to update our membership event
82454
+ let needsUpdate = false;
82455
+ // Need to update if there's a membership for us but we're not joined (valid or otherwise)
82456
+ if (!this.isJoined() && myPrevMembershipData)
82457
+ needsUpdate = true;
82458
+ if (this.isJoined()) {
82459
+ // ...or if we are joined, but there's no valid membership event
82460
+ if (!myPrevMembership) {
82461
+ needsUpdate = true;
82462
+ }
82463
+ else if (myPrevMembership.getMsUntilExpiry() < MEMBERSHIP_EXPIRY_TIME / 2) {
82464
+ // ...or if the expiry time needs bumping
82465
+ needsUpdate = true;
82466
+ this.relativeExpiry += MEMBERSHIP_EXPIRY_TIME;
82467
+ }
82468
+ }
82469
+ return needsUpdate;
82470
+ }
82471
+ /**
82472
+ * Makes a new membership list given the old list alonng with this user's previous membership event
82473
+ * (if any) and this device's previous membership (if any)
82474
+ */
82475
+ makeNewMemberships(oldMemberships, myCallMemberEvent, myPrevMembership) {
82476
+ const localDeviceId = this.client.getDeviceId();
82477
+ if (!localDeviceId)
82478
+ throw new Error("Local device ID is null!");
82479
+ const filterExpired = (m) => {
82480
+ let membershipObj;
82481
+ try {
82482
+ membershipObj = new CallMembership_1.CallMembership(myCallMemberEvent, m);
82483
+ }
82484
+ catch (e) {
82485
+ return false;
82486
+ }
82487
+ return !membershipObj.isExpired();
82488
+ };
82489
+ const transformMemberships = (m) => {
82490
+ if (m.created_ts === undefined) {
82491
+ // we need to fill this in with the origin_server_ts from its original event
82492
+ m.created_ts = myCallMemberEvent.getTs();
82493
+ }
82494
+ return m;
82495
+ };
82496
+ // Filter our any invalid or expired memberships, and also our own - we'll add that back in next
82497
+ let newMemberships = oldMemberships.filter(filterExpired).filter((m) => m.device_id !== localDeviceId);
82498
+ // Fix up any memberships that need their created_ts adding
82499
+ newMemberships = newMemberships.map(transformMemberships);
82500
+ // If we're joined, add our own
82501
+ if (this.isJoined()) {
82502
+ newMemberships.push(this.makeMyMembership(myPrevMembership));
82503
+ }
82504
+ return newMemberships;
82505
+ }
82506
+ updateCallMembershipEvent() {
82507
+ var _a, _b;
82508
+ return __awaiter(this, void 0, void 0, function* () {
82509
+ if (this.memberEventTimeout) {
82510
+ clearTimeout(this.memberEventTimeout);
82511
+ this.memberEventTimeout = undefined;
82512
+ }
82513
+ const roomState = this.room.getLiveTimeline().getState(event_timeline_1.EventTimeline.FORWARDS);
82514
+ if (!roomState)
82515
+ throw new Error("Couldn't get room state for room " + this.room.roomId);
82516
+ const localUserId = this.client.getUserId();
82517
+ const localDeviceId = this.client.getDeviceId();
82518
+ if (!localUserId || !localDeviceId)
82519
+ throw new Error("User ID or device ID was null!");
82520
+ const myCallMemberEvent = (_a = roomState.getStateEvents(event_1.EventType.GroupCallMemberPrefix, localUserId)) !== null && _a !== void 0 ? _a : undefined;
82521
+ const content = (_b = myCallMemberEvent === null || myCallMemberEvent === void 0 ? void 0 : myCallMemberEvent.getContent()) !== null && _b !== void 0 ? _b : {};
82522
+ const memberships = Array.isArray(content["memberships"]) ? content["memberships"] : [];
82523
+ const myPrevMembershipData = memberships.find((m) => m.device_id === localDeviceId);
82524
+ let myPrevMembership;
82525
+ try {
82526
+ if (myCallMemberEvent && myPrevMembershipData) {
82527
+ myPrevMembership = new CallMembership_1.CallMembership(myCallMemberEvent, myPrevMembershipData);
82528
+ }
82529
+ }
82530
+ catch (e) {
82531
+ // This would indicate a bug or something weird if our own call membership
82532
+ // wasn't valid
82533
+ logger_1.logger.warn("Our previous call membership was invalid - this shouldn't happen.", e);
82534
+ }
82535
+ if (myPrevMembership) {
82536
+ logger_1.logger.debug(`${myPrevMembership.getMsUntilExpiry()} until our membership expires`);
82537
+ }
82538
+ if (!this.membershipEventNeedsUpdate(myPrevMembershipData, myPrevMembership)) {
82539
+ // nothing to do - reschedule the check again
82540
+ this.memberEventTimeout = setTimeout(this.triggerCallMembershipEventUpdate, MEMBER_EVENT_CHECK_PERIOD);
82541
+ return;
82542
+ }
82543
+ const newContent = {
82544
+ memberships: this.makeNewMemberships(memberships, myCallMemberEvent, myPrevMembership),
82545
+ };
82546
+ let resendDelay;
82547
+ try {
82548
+ yield this.client.sendStateEvent(this.room.roomId, event_1.EventType.GroupCallMemberPrefix, newContent, localUserId);
82549
+ logger_1.logger.info(`Sent updated call member event.`);
82550
+ // check periodically to see if we need to refresh our member event
82551
+ if (this.isJoined())
82552
+ resendDelay = MEMBER_EVENT_CHECK_PERIOD;
82553
+ }
82554
+ catch (e) {
82555
+ resendDelay = CALL_MEMBER_EVENT_RETRY_DELAY_MIN + Math.random() * 2000;
82556
+ logger_1.logger.warn(`Failed to send call member event: retrying in ${resendDelay}`);
82557
+ }
82558
+ if (resendDelay)
82559
+ this.memberEventTimeout = setTimeout(this.triggerCallMembershipEventUpdate, resendDelay);
82560
+ });
82561
+ }
82562
+ }
82563
+ exports.MatrixRTCSession = MatrixRTCSession;
82564
+
82565
+ },{"../@types/event":319,"../logger":396,"../models/event-timeline":408,"../models/typed-event-emitter":421,"./CallMembership":398}],400:[function(require,module,exports){
82566
+ "use strict";
82567
+ /*
82568
+ Copyright 2023 The Matrix.org Foundation C.I.C.
82569
+
82570
+ Licensed under the Apache License, Version 2.0 (the "License");
82571
+ you may not use this file except in compliance with the License.
82572
+ You may obtain a copy of the License at
82573
+
82574
+ http://www.apache.org/licenses/LICENSE-2.0
82575
+
82576
+ Unless required by applicable law or agreed to in writing, software
82577
+ distributed under the License is distributed on an "AS IS" BASIS,
82578
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
82579
+ See the License for the specific language governing permissions and
82580
+ limitations under the License.
82581
+ */
82582
+ Object.defineProperty(exports, "__esModule", { value: true });
82583
+ exports.MatrixRTCSessionManager = exports.MatrixRTCSessionManagerEvents = void 0;
82584
+ const logger_1 = require("../logger");
82585
+ const client_1 = require("../client");
82586
+ const typed_event_emitter_1 = require("../models/typed-event-emitter");
82587
+ const room_state_1 = require("../models/room-state");
82588
+ const MatrixRTCSession_1 = require("./MatrixRTCSession");
82589
+ var MatrixRTCSessionManagerEvents;
82590
+ (function (MatrixRTCSessionManagerEvents) {
82591
+ // A member has joined the MatrixRTC session, creating an active session in a room where there wasn't previously
82592
+ MatrixRTCSessionManagerEvents["SessionStarted"] = "session_started";
82593
+ // All participants have left a given MatrixRTC session.
82594
+ MatrixRTCSessionManagerEvents["SessionEnded"] = "session_ended";
82595
+ })(MatrixRTCSessionManagerEvents || (exports.MatrixRTCSessionManagerEvents = MatrixRTCSessionManagerEvents = {}));
82596
+ /**
82597
+ * Holds all active MatrixRTC session objects and creates new ones as events arrive.
82598
+ * This interface is UNSTABLE and may change without warning.
82599
+ */
82600
+ class MatrixRTCSessionManager extends typed_event_emitter_1.TypedEventEmitter {
82601
+ constructor(client) {
82602
+ super();
82603
+ this.client = client;
82604
+ // All the room-scoped sessions we know about. This will include any where the app
82605
+ // has queried for the MatrixRTC sessions in a room, whether it's ever had any members
82606
+ // or not). We keep a (lazily created) session object for every room to ensure that there
82607
+ // is only ever one single room session object for any given room for the lifetime of the
82608
+ // client: that way there can never be any code holding onto a stale object that is no
82609
+ // longer the correct session object for the room.
82610
+ this.roomSessions = new Map();
82611
+ this.onRoom = (room) => {
82612
+ this.refreshRoom(room);
82613
+ };
82614
+ this.onRoomState = (event, _state) => {
82615
+ const room = this.client.getRoom(event.getRoomId());
82616
+ if (!room) {
82617
+ logger_1.logger.error(`Got room state event for unknown room ${event.getRoomId()}!`);
82618
+ return;
82619
+ }
82620
+ this.refreshRoom(room);
82621
+ };
82622
+ }
82623
+ start() {
82624
+ var _a;
82625
+ // We shouldn't need to null-check here, but matrix-client.spec.ts mocks getRooms
82626
+ // returing nothing, and breaks tests if you change it to return an empty array :'(
82627
+ for (const room of (_a = this.client.getRooms()) !== null && _a !== void 0 ? _a : []) {
82628
+ const session = MatrixRTCSession_1.MatrixRTCSession.roomSessionForRoom(this.client, room);
82629
+ if (session.memberships.length > 0) {
82630
+ this.roomSessions.set(room.roomId, session);
82631
+ }
82632
+ }
82633
+ this.client.on(client_1.ClientEvent.Room, this.onRoom);
82634
+ this.client.on(room_state_1.RoomStateEvent.Events, this.onRoomState);
82635
+ }
82636
+ stop() {
82637
+ for (const sess of this.roomSessions.values()) {
82638
+ sess.stop();
82639
+ }
82640
+ this.roomSessions.clear();
82641
+ this.client.removeListener(client_1.ClientEvent.Room, this.onRoom);
82642
+ this.client.removeListener(room_state_1.RoomStateEvent.Events, this.onRoomState);
82643
+ }
82644
+ /**
82645
+ * Gets the main MatrixRTC session for a room, or undefined if there is
82646
+ * no current session
82647
+ */
82648
+ getActiveRoomSession(room) {
82649
+ return this.roomSessions.get(room.roomId);
82650
+ }
82651
+ /**
82652
+ * Gets the main MatrixRTC session for a room, returning an empty session
82653
+ * if no members are currently participating
82654
+ */
82655
+ getRoomSession(room) {
82656
+ if (!this.roomSessions.has(room.roomId)) {
82657
+ this.roomSessions.set(room.roomId, MatrixRTCSession_1.MatrixRTCSession.roomSessionForRoom(this.client, room));
82658
+ }
82659
+ return this.roomSessions.get(room.roomId);
82660
+ }
82661
+ refreshRoom(room) {
82662
+ const isNewSession = !this.roomSessions.has(room.roomId);
82663
+ const sess = this.getRoomSession(room);
82664
+ const wasActiveAndKnown = sess.memberships.length > 0 && !isNewSession;
82665
+ sess.onMembershipUpdate();
82666
+ const nowActive = sess.memberships.length > 0;
82667
+ if (wasActiveAndKnown && !nowActive) {
82668
+ this.emit(MatrixRTCSessionManagerEvents.SessionEnded, room.roomId, this.roomSessions.get(room.roomId));
82669
+ }
82670
+ else if (!wasActiveAndKnown && nowActive) {
82671
+ this.emit(MatrixRTCSessionManagerEvents.SessionStarted, room.roomId, this.roomSessions.get(room.roomId));
82672
+ }
82673
+ }
82674
+ }
82675
+ exports.MatrixRTCSessionManager = MatrixRTCSessionManager;
82676
+
82677
+ },{"../client":338,"../logger":396,"../models/room-state":416,"../models/typed-event-emitter":421,"./MatrixRTCSession":399}],401:[function(require,module,exports){
81722
82678
  "use strict";
81723
82679
  /*
81724
82680
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -81936,7 +82892,7 @@ class MSC3089Branch {
81936
82892
  }
81937
82893
  exports.MSC3089Branch = MSC3089Branch;
81938
82894
 
81939
- },{"../@types/event":317,"./event-timeline":403}],397:[function(require,module,exports){
82895
+ },{"../@types/event":319,"./event-timeline":408}],402:[function(require,module,exports){
81940
82896
  "use strict";
81941
82897
  /*
81942
82898
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -82456,7 +83412,7 @@ class MSC3089TreeSpace {
82456
83412
  }
82457
83413
  exports.MSC3089TreeSpace = MSC3089TreeSpace;
82458
83414
 
82459
- },{"../@types/event":317,"../crypto/algorithms/megolm":353,"../logger":394,"../utils":442,"./MSC3089Branch":396,"p-retry":233}],398:[function(require,module,exports){
83415
+ },{"../@types/event":319,"../crypto/algorithms/megolm":355,"../logger":396,"../utils":447,"./MSC3089Branch":401,"p-retry":235}],403:[function(require,module,exports){
82460
83416
  "use strict";
82461
83417
  /*
82462
83418
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -82627,7 +83583,7 @@ class Beacon extends typed_event_emitter_1.TypedEventEmitter {
82627
83583
  }
82628
83584
  exports.Beacon = Beacon;
82629
83585
 
82630
- },{"../content-helpers":337,"../utils":442,"./typed-event-emitter":416}],399:[function(require,module,exports){
83586
+ },{"../content-helpers":339,"../utils":447,"./typed-event-emitter":421}],404:[function(require,module,exports){
82631
83587
  "use strict";
82632
83588
  /*
82633
83589
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -82685,7 +83641,7 @@ class Device {
82685
83641
  }
82686
83642
  exports.Device = Device;
82687
83643
 
82688
- },{}],400:[function(require,module,exports){
83644
+ },{}],405:[function(require,module,exports){
82689
83645
  "use strict";
82690
83646
  /*
82691
83647
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -82791,7 +83747,7 @@ class EventContext {
82791
83747
  }
82792
83748
  exports.EventContext = EventContext;
82793
83749
 
82794
- },{"./event-timeline":403}],401:[function(require,module,exports){
83750
+ },{"./event-timeline":408}],406:[function(require,module,exports){
82795
83751
  "use strict";
82796
83752
  /*
82797
83753
  Copyright 2015 - 2022 The Matrix.org Foundation C.I.C.
@@ -82830,7 +83786,7 @@ var EventStatus;
82830
83786
  EventStatus["CANCELLED"] = "cancelled";
82831
83787
  })(EventStatus || (exports.EventStatus = EventStatus = {}));
82832
83788
 
82833
- },{}],402:[function(require,module,exports){
83789
+ },{}],407:[function(require,module,exports){
82834
83790
  "use strict";
82835
83791
  /*
82836
83792
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -83586,7 +84542,7 @@ class EventTimelineSet extends typed_event_emitter_1.TypedEventEmitter {
83586
84542
  }
83587
84543
  exports.EventTimelineSet = EventTimelineSet;
83588
84544
 
83589
- },{"../logger":394,"./event-timeline":403,"./relations-container":408,"./room":413,"./typed-event-emitter":416}],403:[function(require,module,exports){
84545
+ },{"../logger":396,"./event-timeline":408,"./relations-container":413,"./room":418,"./typed-event-emitter":421}],408:[function(require,module,exports){
83590
84546
  "use strict";
83591
84547
  /*
83592
84548
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -84021,7 +84977,7 @@ EventTimeline.BACKWARDS = Direction.Backward;
84021
84977
  */
84022
84978
  EventTimeline.FORWARDS = Direction.Forward;
84023
84979
 
84024
- },{"../@types/event":317,"../logger":394,"./room-state":411}],404:[function(require,module,exports){
84980
+ },{"../@types/event":319,"../logger":396,"./room-state":416}],409:[function(require,module,exports){
84025
84981
  "use strict";
84026
84982
  /*
84027
84983
  Copyright 2015 - 2023 The Matrix.org Foundation C.I.C.
@@ -84781,7 +85737,7 @@ class MatrixEvent extends typed_event_emitter_1.TypedEventEmitter {
84781
85737
  * signing the public curve25519 key with the ed25519 key.
84782
85738
  *
84783
85739
  * In general, applications should not use this method directly, but should
84784
- * instead use MatrixClient.getEventSenderDeviceInfo.
85740
+ * instead use {@link CryptoApi#getEncryptionInfoForEvent}.
84785
85741
  */
84786
85742
  getClaimedEd25519Key() {
84787
85743
  return this.claimedEd25519Key;
@@ -85411,7 +86367,7 @@ const REDACT_KEEP_CONTENT_MAP = {
85411
86367
  },
85412
86368
  };
85413
86369
 
85414
- },{"../@types/event":317,"../ReEmitter":332,"../crypto/OlmDevice":345,"../crypto/algorithms":352,"../logger":394,"../utils":442,"./event-status":401,"./thread":415,"./typed-event-emitter":416,"matrix-events-sdk":173}],405:[function(require,module,exports){
86370
+ },{"../@types/event":319,"../ReEmitter":334,"../crypto/OlmDevice":347,"../crypto/algorithms":354,"../logger":396,"../utils":447,"./event-status":406,"./thread":420,"./typed-event-emitter":421,"matrix-events-sdk":173}],410:[function(require,module,exports){
85415
86371
  "use strict";
85416
86372
  /*
85417
86373
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -85772,7 +86728,7 @@ class IgnoredInvites {
85772
86728
  }
85773
86729
  exports.IgnoredInvites = IgnoredInvites;
85774
86730
 
85775
- },{"../@types/partials":321,"../utils":442,"./event-timeline":403,"matrix-events-sdk":173}],406:[function(require,module,exports){
86731
+ },{"../@types/partials":323,"../utils":447,"./event-timeline":408,"matrix-events-sdk":173}],411:[function(require,module,exports){
85776
86732
  "use strict";
85777
86733
  /*
85778
86734
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -86010,7 +86966,7 @@ const isPollEvent = (event) => {
86010
86966
  };
86011
86967
  exports.isPollEvent = isPollEvent;
86012
86968
 
86013
- },{"../@types/polls":322,"./relations":409,"./typed-event-emitter":416,"matrix-events-sdk":173}],407:[function(require,module,exports){
86969
+ },{"../@types/polls":324,"./relations":414,"./typed-event-emitter":421,"matrix-events-sdk":173}],412:[function(require,module,exports){
86014
86970
  "use strict";
86015
86971
  /*
86016
86972
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -86269,7 +87225,7 @@ class ReadReceipt extends typed_event_emitter_1.TypedEventEmitter {
86269
87225
  }
86270
87226
  exports.ReadReceipt = ReadReceipt;
86271
87227
 
86272
- },{"../@types/event":317,"../@types/read_receipts":323,"../utils":442,"./event":404,"./room":413,"./typed-event-emitter":416}],408:[function(require,module,exports){
87228
+ },{"../@types/event":319,"../@types/read_receipts":325,"../utils":447,"./event":409,"./room":418,"./typed-event-emitter":421}],413:[function(require,module,exports){
86273
87229
  "use strict";
86274
87230
  /*
86275
87231
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -86399,7 +87355,7 @@ class RelationsContainer {
86399
87355
  }
86400
87356
  exports.RelationsContainer = RelationsContainer;
86401
87357
 
86402
- },{"./event":404,"./relations":409}],409:[function(require,module,exports){
87358
+ },{"./event":409,"./relations":414}],414:[function(require,module,exports){
86403
87359
  "use strict";
86404
87360
  /*
86405
87361
  Copyright 2019, 2021, 2023 The Matrix.org Foundation C.I.C.
@@ -86742,7 +87698,7 @@ class Relations extends typed_event_emitter_1.TypedEventEmitter {
86742
87698
  }
86743
87699
  exports.Relations = Relations;
86744
87700
 
86745
- },{"../@types/event":317,"../logger":394,"./event":404,"./room":413,"./typed-event-emitter":416}],410:[function(require,module,exports){
87701
+ },{"../@types/event":319,"../logger":396,"./event":409,"./room":418,"./typed-event-emitter":421}],415:[function(require,module,exports){
86746
87702
  "use strict";
86747
87703
  /*
86748
87704
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -87077,7 +88033,7 @@ function calculateDisplayName(selfUserId, displayName, disambiguate) {
87077
88033
  return (0, utils_1.removeDirectionOverrideChars)(displayName);
87078
88034
  }
87079
88035
 
87080
- },{"../@types/event":317,"../content-repo":338,"../logger":394,"../utils":442,"./typed-event-emitter":416}],411:[function(require,module,exports){
88036
+ },{"../@types/event":319,"../content-repo":340,"../logger":396,"../utils":447,"./typed-event-emitter":421}],416:[function(require,module,exports){
87081
88037
  "use strict";
87082
88038
  /*
87083
88039
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -87978,7 +88934,7 @@ class RoomState extends typed_event_emitter_1.TypedEventEmitter {
87978
88934
  }
87979
88935
  exports.RoomState = RoomState;
87980
88936
 
87981
- },{"../@types/beacon":315,"../@types/event":317,"../@types/partials":321,"../ReEmitter":332,"../logger":394,"../utils":442,"./beacon":398,"./event":404,"./room-member":410,"./typed-event-emitter":416}],412:[function(require,module,exports){
88937
+ },{"../@types/beacon":317,"../@types/event":319,"../@types/partials":323,"../ReEmitter":334,"../logger":396,"../utils":447,"./beacon":403,"./event":409,"./room-member":415,"./typed-event-emitter":421}],417:[function(require,module,exports){
87982
88938
  "use strict";
87983
88939
  /*
87984
88940
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -88010,7 +88966,7 @@ class RoomSummary {
88010
88966
  }
88011
88967
  exports.RoomSummary = RoomSummary;
88012
88968
 
88013
- },{}],413:[function(require,module,exports){
88969
+ },{}],418:[function(require,module,exports){
88014
88970
  "use strict";
88015
88971
  /*
88016
88972
  Copyright 2015 - 2023 The Matrix.org Foundation C.I.C.
@@ -88613,7 +89569,7 @@ class Room extends read_receipt_1.ReadReceipt {
88613
89569
  }, undefined);
88614
89570
  }
88615
89571
  /**
88616
- * @returns the membership type (join | leave | invite) for the logged in user
89572
+ * @returns the membership type (join | leave | invite | knock) for the logged in user
88617
89573
  */
88618
89574
  getMyMembership() {
88619
89575
  var _a;
@@ -90370,12 +91326,18 @@ class Room extends read_receipt_1.ReadReceipt {
90370
91326
  receiptDestination.addReceiptToStructure(eventId, receiptType, userId, receipt, synthetic);
90371
91327
  // If the read receipt sent for the logged in user matches
90372
91328
  // the last event of the live timeline, then we know for a fact
90373
- // that the user has read that message.
90374
- // We can mark the room as read and not wait for the local echo
90375
- // from synapse
91329
+ // that the user has read that message, so we can mark the room
91330
+ // as read and not wait for the remote echo from synapse.
91331
+ //
90376
91332
  // This needs to be done after the initial sync as we do not want this
90377
91333
  // logic to run whilst the room is being initialised
90378
- if (this.client.isInitialSyncComplete() && userId === this.client.getUserId()) {
91334
+ //
91335
+ // We only do this for non-synthetic receipts, because
91336
+ // our intention is to do this when the user really did
91337
+ // just read a message, not when we are e.g. receiving
91338
+ // an event during the sync. More explanation at:
91339
+ // https://github.com/matrix-org/matrix-js-sdk/issues/3684
91340
+ if (!synthetic && this.client.isInitialSyncComplete() && userId === this.client.getUserId()) {
90379
91341
  const lastEvent = receiptDestination.timeline[receiptDestination.timeline.length - 1];
90380
91342
  if (lastEvent && eventId === lastEvent.getId() && userId === lastEvent.getSender()) {
90381
91343
  receiptDestination.setUnread(NotificationCountType.Total, 0);
@@ -91008,7 +91970,7 @@ function memberNamesToRoomName(names, count) {
91008
91970
  }
91009
91971
  }
91010
91972
 
91011
- },{"../@types/event":317,"../@types/read_receipts":323,"../ReEmitter":332,"../client":336,"../content-repo":338,"../filter":384,"../logger":394,"../utils":442,"./beacon":398,"./event":404,"./event-status":401,"./event-timeline":403,"./event-timeline-set":402,"./poll":406,"./read-receipt":407,"./relations-container":408,"./room-member":410,"./room-state":411,"./room-summary":412,"./thread":415,"matrix-events-sdk":173}],414:[function(require,module,exports){
91973
+ },{"../@types/event":319,"../@types/read_receipts":325,"../ReEmitter":334,"../client":338,"../content-repo":340,"../filter":386,"../logger":396,"../utils":447,"./beacon":403,"./event":409,"./event-status":406,"./event-timeline":408,"./event-timeline-set":407,"./poll":411,"./read-receipt":412,"./relations-container":413,"./room-member":415,"./room-state":416,"./room-summary":417,"./thread":420,"matrix-events-sdk":173}],419:[function(require,module,exports){
91012
91974
  "use strict";
91013
91975
  /*
91014
91976
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -91061,7 +92023,7 @@ class SearchResult {
91061
92023
  }
91062
92024
  exports.SearchResult = SearchResult;
91063
92025
 
91064
- },{"./event-context":400}],415:[function(require,module,exports){
92026
+ },{"./event-context":405}],420:[function(require,module,exports){
91065
92027
  "use strict";
91066
92028
  /*
91067
92029
  Copyright 2021 - 2023 The Matrix.org Foundation C.I.C.
@@ -91755,7 +92717,7 @@ function threadFilterTypeToFilter(type) {
91755
92717
  }
91756
92718
  exports.threadFilterTypeToFilter = threadFilterTypeToFilter;
91757
92719
 
91758
- },{"../@types/event":317,"../@types/read_receipts":323,"../NamespacedValue":331,"../ReEmitter":332,"../client":336,"../feature":382,"../logger":394,"./event":404,"./event-timeline":403,"./event-timeline-set":402,"./read-receipt":407,"./room":413}],416:[function(require,module,exports){
92720
+ },{"../@types/event":319,"../@types/read_receipts":325,"../NamespacedValue":333,"../ReEmitter":334,"../client":338,"../feature":384,"../logger":396,"./event":409,"./event-timeline":408,"./event-timeline-set":407,"./read-receipt":412,"./room":418}],421:[function(require,module,exports){
91759
92721
  "use strict";
91760
92722
  /*
91761
92723
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -91943,7 +92905,7 @@ class TypedEventEmitter extends events_1.EventEmitter {
91943
92905
  }
91944
92906
  exports.TypedEventEmitter = TypedEventEmitter;
91945
92907
 
91946
- },{"events":109}],417:[function(require,module,exports){
92908
+ },{"events":109}],422:[function(require,module,exports){
91947
92909
  "use strict";
91948
92910
  /*
91949
92911
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -92125,7 +93087,7 @@ class User extends typed_event_emitter_1.TypedEventEmitter {
92125
93087
  }
92126
93088
  exports.User = User;
92127
93089
 
92128
- },{"./typed-event-emitter":416}],418:[function(require,module,exports){
93090
+ },{"./typed-event-emitter":421}],423:[function(require,module,exports){
92129
93091
  "use strict";
92130
93092
  /*
92131
93093
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -92185,7 +93147,7 @@ const discoverAndValidateAuthenticationConfig = (authenticationConfig) => __awai
92185
93147
  });
92186
93148
  exports.discoverAndValidateAuthenticationConfig = discoverAndValidateAuthenticationConfig;
92187
93149
 
92188
- },{"./validate":420,"oidc-client-ts":232}],419:[function(require,module,exports){
93150
+ },{"./validate":425,"oidc-client-ts":234}],424:[function(require,module,exports){
92189
93151
  "use strict";
92190
93152
  /*
92191
93153
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -92219,7 +93181,7 @@ var OidcError;
92219
93181
  OidcError["MissingOrInvalidStoredState"] = "State required to finish logging in is not found in storage.";
92220
93182
  })(OidcError || (exports.OidcError = OidcError = {}));
92221
93183
 
92222
- },{}],420:[function(require,module,exports){
93184
+ },{}],425:[function(require,module,exports){
92223
93185
  "use strict";
92224
93186
  /*
92225
93187
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -92425,7 +93387,7 @@ function validateBearerTokenResponse(response) {
92425
93387
  }
92426
93388
  exports.validateBearerTokenResponse = validateBearerTokenResponse;
92427
93389
 
92428
- },{"../logger":394,"./error":419,"jwt-decode":156}],421:[function(require,module,exports){
93390
+ },{"../logger":396,"./error":424,"jwt-decode":156}],426:[function(require,module,exports){
92429
93391
  "use strict";
92430
93392
  /*
92431
93393
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -93112,7 +94074,7 @@ class PushProcessor {
93112
94074
  exports.PushProcessor = PushProcessor;
93113
94075
  PushProcessor.cachedGlobToRegex = {}; // $glob: RegExp
93114
94076
 
93115
- },{"./@types/PushRules":313,"./@types/event":317,"./logger":394,"./utils":442}],422:[function(require,module,exports){
94077
+ },{"./@types/PushRules":315,"./@types/event":319,"./logger":396,"./utils":447}],427:[function(require,module,exports){
93116
94078
  "use strict";
93117
94079
  /*
93118
94080
  Copyright 2018 New Vector Ltd
@@ -93155,7 +94117,7 @@ function randomStringFrom(len, chars) {
93155
94117
  return ret;
93156
94118
  }
93157
94119
 
93158
- },{}],423:[function(require,module,exports){
94120
+ },{}],428:[function(require,module,exports){
93159
94121
  (function (global){(function (){
93160
94122
  "use strict";
93161
94123
  /*
@@ -93325,7 +94287,7 @@ function binarySearch(array, func) {
93325
94287
 
93326
94288
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
93327
94289
 
93328
- },{"./logger":394}],424:[function(require,module,exports){
94290
+ },{"./logger":396}],429:[function(require,module,exports){
93329
94291
  "use strict";
93330
94292
  /*
93331
94293
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -93492,7 +94454,7 @@ class ReceiptAccumulator {
93492
94454
  }
93493
94455
  exports.ReceiptAccumulator = ReceiptAccumulator;
93494
94456
 
93495
- },{"./@types/event":317,"./utils":442}],425:[function(require,module,exports){
94457
+ },{"./@types/event":319,"./utils":447}],430:[function(require,module,exports){
93496
94458
  "use strict";
93497
94459
  /*
93498
94460
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -93527,7 +94489,7 @@ function initRustCrypto(_http, _userId, _deviceId) {
93527
94489
  }
93528
94490
  exports.initRustCrypto = initRustCrypto;
93529
94491
 
93530
- },{}],426:[function(require,module,exports){
94492
+ },{}],431:[function(require,module,exports){
93531
94493
  "use strict";
93532
94494
  /*
93533
94495
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -93549,9 +94511,9 @@ exports.RUST_SDK_STORE_PREFIX = void 0;
93549
94511
  /** The prefix used on indexeddbs created by rust-crypto */
93550
94512
  exports.RUST_SDK_STORE_PREFIX = "matrix-js-sdk";
93551
94513
 
93552
- },{}],427:[function(require,module,exports){
94514
+ },{}],432:[function(require,module,exports){
93553
94515
  module.exports = require('/home/runner/work/matrix-js-sdk/matrix-js-sdk/src/rust-crypto/browserify-index.ts');
93554
- },{"/home/runner/work/matrix-js-sdk/matrix-js-sdk/src/rust-crypto/browserify-index.ts":425}],428:[function(require,module,exports){
94516
+ },{"/home/runner/work/matrix-js-sdk/matrix-js-sdk/src/rust-crypto/browserify-index.ts":430}],433:[function(require,module,exports){
93555
94517
  "use strict";
93556
94518
  /*
93557
94519
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -93851,7 +94813,7 @@ function debuglog(...args) {
93851
94813
  }
93852
94814
  }
93853
94815
 
93854
- },{"./@types/event":317,"./http-api":387,"./logger":394,"./utils":442}],429:[function(require,module,exports){
94816
+ },{"./@types/event":319,"./http-api":389,"./logger":396,"./utils":447}],434:[function(require,module,exports){
93855
94817
  "use strict";
93856
94818
  /*
93857
94819
  Copyright 2021-2023 The Matrix.org Foundation C.I.C.
@@ -94220,7 +95182,7 @@ function trimTrailingEquals(input) {
94220
95182
  }
94221
95183
  exports.trimTrailingEquals = trimTrailingEquals;
94222
95184
 
94223
- },{"./client":336,"./crypto/aes":350,"./logger":394,"./randomstring":422}],430:[function(require,module,exports){
95185
+ },{"./client":338,"./crypto/aes":352,"./logger":396,"./randomstring":427}],435:[function(require,module,exports){
94224
95186
  "use strict";
94225
95187
  /*
94226
95188
  Copyright 2019 - 2021 The Matrix.org Foundation C.I.C.
@@ -94245,7 +95207,7 @@ var SERVICE_TYPES;
94245
95207
  SERVICE_TYPES["IM"] = "SERVICE_TYPE_IM";
94246
95208
  })(SERVICE_TYPES || (exports.SERVICE_TYPES = SERVICE_TYPES = {}));
94247
95209
 
94248
- },{}],431:[function(require,module,exports){
95210
+ },{}],436:[function(require,module,exports){
94249
95211
  "use strict";
94250
95212
  /*
94251
95213
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -95133,7 +96095,7 @@ function processEphemeralEvents(client, roomId, ephEvents) {
95133
96095
  });
95134
96096
  }
95135
96097
 
95136
- },{"./@types/event":317,"./client":336,"./http-api":387,"./logger":394,"./models/event-timeline":403,"./models/room":413,"./models/room-member":410,"./models/room-state":411,"./sliding-sync":432,"./sync":440,"./utils":442}],432:[function(require,module,exports){
96098
+ },{"./@types/event":319,"./client":338,"./http-api":389,"./logger":396,"./models/event-timeline":408,"./models/room":418,"./models/room-member":415,"./models/room-state":416,"./sliding-sync":437,"./sync":445,"./utils":447}],437:[function(require,module,exports){
95137
96099
  "use strict";
95138
96100
  /*
95139
96101
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -95907,7 +96869,7 @@ const difference = (setA, setB) => {
95907
96869
  return diff;
95908
96870
  };
95909
96871
 
95910
- },{"./logger":394,"./models/typed-event-emitter":416,"./utils":442}],433:[function(require,module,exports){
96872
+ },{"./logger":396,"./models/typed-event-emitter":421,"./utils":447}],438:[function(require,module,exports){
95911
96873
  "use strict";
95912
96874
  /*
95913
96875
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -96481,7 +97443,7 @@ class LocalIndexedDBStoreBackend {
96481
97443
  }
96482
97444
  exports.LocalIndexedDBStoreBackend = LocalIndexedDBStoreBackend;
96483
97445
 
96484
- },{"../indexeddb-helpers":392,"../logger":394,"../sync-accumulator":439,"../utils":442}],434:[function(require,module,exports){
97446
+ },{"../indexeddb-helpers":394,"../logger":396,"../sync-accumulator":444,"../utils":447}],439:[function(require,module,exports){
96485
97447
  "use strict";
96486
97448
  /*
96487
97449
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -96682,7 +97644,7 @@ class RemoteIndexedDBStoreBackend {
96682
97644
  }
96683
97645
  exports.RemoteIndexedDBStoreBackend = RemoteIndexedDBStoreBackend;
96684
97646
 
96685
- },{"../logger":394,"../utils":442}],435:[function(require,module,exports){
97647
+ },{"../logger":396,"../utils":447}],440:[function(require,module,exports){
96686
97648
  "use strict";
96687
97649
  /*
96688
97650
  Copyright 2017 - 2021 Vector Creations Ltd
@@ -97024,7 +97986,7 @@ function pendingEventsKey(roomId) {
97024
97986
  return `mx_pending_events_${roomId}`;
97025
97987
  }
97026
97988
 
97027
- },{"../logger":394,"../models/event":404,"../models/typed-event-emitter":416,"../models/user":417,"./indexeddb-local-backend":433,"./indexeddb-remote-backend":434,"./memory":437}],436:[function(require,module,exports){
97989
+ },{"../logger":396,"../models/event":409,"../models/typed-event-emitter":421,"../models/user":422,"./indexeddb-local-backend":438,"./indexeddb-remote-backend":439,"./memory":442}],441:[function(require,module,exports){
97028
97990
  "use strict";
97029
97991
  /*
97030
97992
  Copyright 2021 The Matrix.org Foundation C.I.C.
@@ -97065,7 +98027,7 @@ class LocalStorageErrorsEventsEmitter extends typed_event_emitter_1.TypedEventEm
97065
98027
  }
97066
98028
  exports.localStorageErrorsEventsEmitter = new LocalStorageErrorsEventsEmitter();
97067
98029
 
97068
- },{"../models/typed-event-emitter":416}],437:[function(require,module,exports){
98030
+ },{"../models/typed-event-emitter":421}],442:[function(require,module,exports){
97069
98031
  "use strict";
97070
98032
  /*
97071
98033
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -97471,7 +98433,7 @@ class MemoryStore {
97471
98433
  }
97472
98434
  exports.MemoryStore = MemoryStore;
97473
98435
 
97474
- },{"../models/room-state":411,"../models/user":417,"../utils":442}],438:[function(require,module,exports){
98436
+ },{"../models/room-state":416,"../models/user":422,"../utils":447}],443:[function(require,module,exports){
97475
98437
  "use strict";
97476
98438
  /*
97477
98439
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -97715,7 +98677,7 @@ class StubStore {
97715
98677
  }
97716
98678
  exports.StubStore = StubStore;
97717
98679
 
97718
- },{}],439:[function(require,module,exports){
98680
+ },{}],444:[function(require,module,exports){
97719
98681
  "use strict";
97720
98682
  /*
97721
98683
  Copyright 2017 - 2023 The Matrix.org Foundation C.I.C.
@@ -97747,6 +98709,7 @@ var Category;
97747
98709
  Category["Invite"] = "invite";
97748
98710
  Category["Leave"] = "leave";
97749
98711
  Category["Join"] = "join";
98712
+ Category["Knock"] = "knock";
97750
98713
  })(Category || (exports.Category = Category = {}));
97751
98714
  function isTaggedEvent(event) {
97752
98715
  return "_localTs" in event && event["_localTs"] !== undefined;
@@ -97766,6 +98729,7 @@ class SyncAccumulator {
97766
98729
  this.opts = opts;
97767
98730
  this.accountData = {}; // $event_type: Object
97768
98731
  this.inviteRooms = {}; // $roomId: { ... sync 'invite' json data ... }
98732
+ this.knockRooms = {}; // $roomId: { ... sync 'knock' json data ... }
97769
98733
  this.joinRooms = {};
97770
98734
  // the /sync token which corresponds to the last time rooms were
97771
98735
  // accumulated. We remember this so that any caller can obtain a
@@ -97812,6 +98776,11 @@ class SyncAccumulator {
97812
98776
  this.accumulateRoom(roomId, Category.Leave, syncResponse.rooms.leave[roomId], fromDatabase);
97813
98777
  });
97814
98778
  }
98779
+ if (syncResponse.rooms.knock) {
98780
+ Object.keys(syncResponse.rooms.knock).forEach((roomId) => {
98781
+ this.accumulateRoom(roomId, Category.Knock, syncResponse.rooms.knock[roomId], fromDatabase);
98782
+ });
98783
+ }
97815
98784
  }
97816
98785
  accumulateRoom(roomId, category, data, fromDatabase = false) {
97817
98786
  // Valid /sync state transitions
@@ -97827,8 +98796,15 @@ class SyncAccumulator {
97827
98796
  // * equivalent to "no state"
97828
98797
  switch (category) {
97829
98798
  case Category.Invite: // (5)
98799
+ if (this.knockRooms[roomId]) {
98800
+ // was previously knock, now invite, need to delete knock state
98801
+ delete this.knockRooms[roomId];
98802
+ }
97830
98803
  this.accumulateInviteState(roomId, data);
97831
98804
  break;
98805
+ case Category.Knock:
98806
+ this.accumulateKnockState(roomId, data);
98807
+ break;
97832
98808
  case Category.Join:
97833
98809
  if (this.inviteRooms[roomId]) {
97834
98810
  // (1)
@@ -97841,7 +98817,11 @@ class SyncAccumulator {
97841
98817
  this.accumulateJoinState(roomId, data, fromDatabase);
97842
98818
  break;
97843
98819
  case Category.Leave:
97844
- if (this.inviteRooms[roomId]) {
98820
+ if (this.knockRooms[roomId]) {
98821
+ // delete knock state on leave
98822
+ delete this.knockRooms[roomId];
98823
+ }
98824
+ else if (this.inviteRooms[roomId]) {
97845
98825
  // (4)
97846
98826
  delete this.inviteRooms[roomId];
97847
98827
  }
@@ -97883,6 +98863,35 @@ class SyncAccumulator {
97883
98863
  }
97884
98864
  });
97885
98865
  }
98866
+ accumulateKnockState(roomId, data) {
98867
+ if (!data.knock_state || !data.knock_state.events) {
98868
+ // no new data
98869
+ return;
98870
+ }
98871
+ if (!this.knockRooms[roomId]) {
98872
+ this.knockRooms[roomId] = {
98873
+ knock_state: data.knock_state,
98874
+ };
98875
+ return;
98876
+ }
98877
+ // accumulate extra keys
98878
+ // clobber based on event type / state key
98879
+ // We expect knock_state to be small, so just loop over the events
98880
+ const currentData = this.knockRooms[roomId];
98881
+ data.knock_state.events.forEach((e) => {
98882
+ let hasAdded = false;
98883
+ for (let i = 0; i < currentData.knock_state.events.length; i++) {
98884
+ const current = currentData.knock_state.events[i];
98885
+ if (current.type === e.type && current.state_key == e.state_key) {
98886
+ currentData.knock_state.events[i] = e; // update
98887
+ hasAdded = true;
98888
+ }
98889
+ }
98890
+ if (!hasAdded) {
98891
+ currentData.knock_state.events.push(e);
98892
+ }
98893
+ });
98894
+ }
97886
98895
  // Accumulate timeline and state events in a room.
97887
98896
  accumulateJoinState(roomId, data, fromDatabase = false) {
97888
98897
  // We expect this function to be called a lot (every /sync) so we want
@@ -98032,6 +99041,7 @@ class SyncAccumulator {
98032
99041
  const data = {
98033
99042
  join: {},
98034
99043
  invite: {},
99044
+ knock: {},
98035
99045
  // always empty. This is set by /sync when a room was previously
98036
99046
  // in 'invite' or 'join'. On fresh startup, the client won't know
98037
99047
  // about any previous room being in 'invite' or 'join' so we can
@@ -98048,6 +99058,9 @@ class SyncAccumulator {
98048
99058
  Object.keys(this.inviteRooms).forEach((roomId) => {
98049
99059
  data.invite[roomId] = this.inviteRooms[roomId];
98050
99060
  });
99061
+ Object.keys(this.knockRooms).forEach((roomId) => {
99062
+ data.knock[roomId] = this.knockRooms[roomId];
99063
+ });
98051
99064
  Object.keys(this.joinRooms).forEach((roomId) => {
98052
99065
  const roomData = this.joinRooms[roomId];
98053
99066
  const roomJson = {
@@ -98166,7 +99179,7 @@ function setState(eventMap, event) {
98166
99179
  eventMap[event.type][event.state_key] = event;
98167
99180
  }
98168
99181
 
98169
- },{"./@types/sync":327,"./logger":394,"./receipt-accumulator":424,"./utils":442}],440:[function(require,module,exports){
99182
+ },{"./@types/sync":329,"./logger":396,"./receipt-accumulator":429,"./utils":447}],445:[function(require,module,exports){
98170
99183
  (function (global){(function (){
98171
99184
  "use strict";
98172
99185
  /*
@@ -99194,6 +100207,7 @@ class SyncApi {
99194
100207
  let inviteRooms = [];
99195
100208
  let joinRooms = [];
99196
100209
  let leaveRooms = [];
100210
+ let knockRooms = [];
99197
100211
  if (data.rooms) {
99198
100212
  if (data.rooms.invite) {
99199
100213
  inviteRooms = this.mapSyncResponseToRoomArray(data.rooms.invite);
@@ -99204,6 +100218,9 @@ class SyncApi {
99204
100218
  if (data.rooms.leave) {
99205
100219
  leaveRooms = this.mapSyncResponseToRoomArray(data.rooms.leave);
99206
100220
  }
100221
+ if (data.rooms.knock) {
100222
+ knockRooms = this.mapSyncResponseToRoomArray(data.rooms.knock);
100223
+ }
99207
100224
  }
99208
100225
  this.notifEvents = [];
99209
100226
  // Handle invites
@@ -99408,6 +100425,24 @@ class SyncApi {
99408
100425
  client.emit(client_1.ClientEvent.Event, e);
99409
100426
  });
99410
100427
  }));
100428
+ // Handle knocks
100429
+ yield (0, utils_1.promiseMapSeries)(knockRooms, (knockObj) => __awaiter(this, void 0, void 0, function* () {
100430
+ const room = knockObj.room;
100431
+ const stateEvents = this.mapSyncEventsFormat(knockObj.knock_state, room);
100432
+ yield this.injectRoomEvents(room, stateEvents);
100433
+ if (knockObj.isBrandNewRoom) {
100434
+ room.recalculate();
100435
+ client.store.storeRoom(room);
100436
+ client.emit(client_1.ClientEvent.Room, room);
100437
+ }
100438
+ else {
100439
+ // Update room state for knock->leave->knock cycles
100440
+ room.recalculate();
100441
+ }
100442
+ stateEvents.forEach(function (e) {
100443
+ client.emit(client_1.ClientEvent.Event, e);
100444
+ });
100445
+ }));
99411
100446
  // update the notification timeline, if appropriate.
99412
100447
  // we only do this for live events, as otherwise we can't order them sanely
99413
100448
  // in the timeline relative to ones paginated in by /notifications.
@@ -99760,7 +100795,7 @@ exports._createAndReEmitRoom = _createAndReEmitRoom;
99760
100795
 
99761
100796
  }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
99762
100797
 
99763
- },{"./@types/event":317,"./@types/sync":327,"./client":336,"./errors":379,"./feature":382,"./filter":384,"./http-api":387,"./logger":394,"./models/beacon":398,"./models/event-timeline":403,"./models/room":413,"./models/room-member":410,"./models/room-state":411,"./models/user":417,"./utils":442}],441:[function(require,module,exports){
100798
+ },{"./@types/event":319,"./@types/sync":329,"./client":338,"./errors":381,"./feature":384,"./filter":386,"./http-api":389,"./logger":396,"./models/beacon":403,"./models/event-timeline":408,"./models/room":418,"./models/room-member":415,"./models/room-state":416,"./models/user":422,"./utils":447}],446:[function(require,module,exports){
99764
100799
  "use strict";
99765
100800
  /*
99766
100801
  Copyright 2016 - 2021 The Matrix.org Foundation C.I.C.
@@ -100214,7 +101249,7 @@ class TimelineIndex {
100214
101249
  }
100215
101250
  exports.TimelineIndex = TimelineIndex;
100216
101251
 
100217
- },{"./logger":394,"./models/event-timeline":403}],442:[function(require,module,exports){
101252
+ },{"./logger":396,"./models/event-timeline":408}],447:[function(require,module,exports){
100218
101253
  (function (setImmediate){(function (){
100219
101254
  "use strict";
100220
101255
  /*
@@ -100938,7 +101973,7 @@ exports.MapWithDefault = MapWithDefault;
100938
101973
 
100939
101974
  }).call(this)}).call(this,require("timers").setImmediate)
100940
101975
 
100941
- },{"./@types/location":320,"./@types/read_receipts":323,"p-retry":233,"timers":288,"unhomoglyph":290}],443:[function(require,module,exports){
101976
+ },{"./@types/location":322,"./@types/read_receipts":325,"p-retry":235,"timers":290,"unhomoglyph":292}],448:[function(require,module,exports){
100942
101977
  "use strict";
100943
101978
  /*
100944
101979
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -100962,7 +101997,7 @@ exports.MINIMUM_MATRIX_VERSION = void 0;
100962
101997
  */
100963
101998
  exports.MINIMUM_MATRIX_VERSION = "v1.1";
100964
101999
 
100965
- },{}],444:[function(require,module,exports){
102000
+ },{}],449:[function(require,module,exports){
100966
102001
  "use strict";
100967
102002
  /*
100968
102003
  Copyright 2022 The Matrix.org Foundation C.I.C.
@@ -101011,7 +102046,7 @@ const releaseContext = () => {
101011
102046
  };
101012
102047
  exports.releaseContext = releaseContext;
101013
102048
 
101014
- },{}],445:[function(require,module,exports){
102049
+ },{}],450:[function(require,module,exports){
101015
102050
  (function (process){(function (){
101016
102051
  "use strict";
101017
102052
  /*
@@ -103500,7 +104535,7 @@ exports.createNewMatrixCall = createNewMatrixCall;
103500
104535
 
103501
104536
  }).call(this)}).call(this,require('_process'))
103502
104537
 
103503
- },{"../@types/event":317,"../crypto/deviceinfo":360,"../http-api":387,"../logger":394,"../models/typed-event-emitter":416,"../randomstring":422,"../utils":442,"./callEventTypes":447,"./callFeed":448,"./groupCall":449,"_process":245,"sdp-transform":261,"uuid":295}],446:[function(require,module,exports){
104538
+ },{"../@types/event":319,"../crypto/deviceinfo":362,"../http-api":389,"../logger":396,"../models/typed-event-emitter":421,"../randomstring":427,"../utils":447,"./callEventTypes":452,"./callFeed":453,"./groupCall":454,"_process":247,"sdp-transform":263,"uuid":297}],451:[function(require,module,exports){
103504
104539
  "use strict";
103505
104540
  /*
103506
104541
  Copyright 2020 The Matrix.org Foundation C.I.C.
@@ -103862,7 +104897,7 @@ class CallEventHandler {
103862
104897
  }
103863
104898
  exports.CallEventHandler = CallEventHandler;
103864
104899
 
103865
- },{"../@types/event":317,"../client":336,"../logger":394,"../models/room":413,"./call":445,"./groupCall":449}],447:[function(require,module,exports){
104900
+ },{"../@types/event":319,"../client":338,"../logger":396,"../models/room":418,"./call":450,"./groupCall":454}],452:[function(require,module,exports){
103866
104901
  "use strict";
103867
104902
  // allow non-camelcase as these are events type that go onto the wire
103868
104903
  /* eslint-disable camelcase */
@@ -103877,7 +104912,7 @@ var SDPStreamMetadataPurpose;
103877
104912
  })(SDPStreamMetadataPurpose || (exports.SDPStreamMetadataPurpose = SDPStreamMetadataPurpose = {}));
103878
104913
  /* eslint-enable camelcase */
103879
104914
 
103880
- },{}],448:[function(require,module,exports){
104915
+ },{}],453:[function(require,module,exports){
103881
104916
  "use strict";
103882
104917
  /*
103883
104918
  Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
@@ -104159,7 +105194,7 @@ class CallFeed extends typed_event_emitter_1.TypedEventEmitter {
104159
105194
  }
104160
105195
  exports.CallFeed = CallFeed;
104161
105196
 
104162
- },{"../logger":394,"../models/typed-event-emitter":416,"./audioContext":444,"./call":445,"./callEventTypes":447}],449:[function(require,module,exports){
105197
+ },{"../logger":396,"../models/typed-event-emitter":421,"./audioContext":449,"./call":450,"./callEventTypes":452}],454:[function(require,module,exports){
104163
105198
  "use strict";
104164
105199
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
104165
105200
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -104272,7 +105307,11 @@ function getCallUserId(call) {
104272
105307
  return ((_a = call.getOpponentMember()) === null || _a === void 0 ? void 0 : _a.userId) || call.invitee || null;
104273
105308
  }
104274
105309
  class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104275
- constructor(client, room, type, isPtt, intent, groupCallId, dataChannelsEnabled, dataChannelOptions, isCallWithoutVideoAndAudio) {
105310
+ constructor(client, room, type, isPtt, intent, groupCallId, dataChannelsEnabled, dataChannelOptions, isCallWithoutVideoAndAudio,
105311
+ // this tells the js-sdk not to actually establish any calls to exchange media and just to
105312
+ // create the group call signaling events, with the intention that the actual media will be
105313
+ // handled using livekit. The js-sdk doesn't contain any code to do the actual livekit call though.
105314
+ useLivekit = false, livekitServiceURL) {
104276
105315
  var _a, _b;
104277
105316
  super();
104278
105317
  this.client = client;
@@ -104282,6 +105321,7 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104282
105321
  this.intent = intent;
104283
105322
  this.dataChannelsEnabled = dataChannelsEnabled;
104284
105323
  this.dataChannelOptions = dataChannelOptions;
105324
+ this.useLivekit = useLivekit;
104285
105325
  // Config
104286
105326
  this.activeSpeakerInterval = 1000;
104287
105327
  this.retryCallInterval = 5000;
@@ -104360,6 +105400,10 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104360
105400
  logger_1.logger.warn(`GroupCall ${this.groupCallId} onIncomingCall() incoming call with no member - ignoring`);
104361
105401
  return;
104362
105402
  }
105403
+ if (this.useLivekit) {
105404
+ logger_1.logger.info("Received incoming call whilst in signaling-only mode! Ignoring.");
105405
+ return;
105406
+ }
104363
105407
  const deviceMap = (_b = this.calls.get(opponentUserId)) !== null && _b !== void 0 ? _b : new Map();
104364
105408
  const prevCall = deviceMap.get(newCall.getOpponentDeviceId());
104365
105409
  if ((prevCall === null || prevCall === void 0 ? void 0 : prevCall.callId) === newCall.callId)
@@ -104528,7 +105572,7 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104528
105572
  (0, call_1.setTracksEnabled)(feed.stream.getVideoTracks(), !feed.isVideoMuted() && expected);
104529
105573
  }
104530
105574
  });
104531
- if (this.state === GroupCallState.Entered)
105575
+ if (this.state === GroupCallState.Entered && !this.useLivekit)
104532
105576
  this.placeOutgoingCalls();
104533
105577
  // Update the participants stored in the stats object
104534
105578
  };
@@ -104548,6 +105592,7 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104548
105592
  };
104549
105593
  this.reEmitter = new ReEmitter_1.ReEmitter(this);
104550
105594
  this.groupCallId = groupCallId !== null && groupCallId !== void 0 ? groupCallId : (0, call_1.genCallID)();
105595
+ this._livekitServiceURL = livekitServiceURL;
104551
105596
  this.creationTs =
104552
105597
  (_b = (_a = room.currentState.getStateEvents(event_1.EventType.GroupCallPrefix, this.groupCallId)) === null || _a === void 0 ? void 0 : _a.getTs()) !== null && _b !== void 0 ? _b : null;
104553
105598
  this.updateParticipants();
@@ -104562,6 +105607,12 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104562
105607
  this.creationTs = Date.now();
104563
105608
  this.client.groupCallEventHandler.groupCalls.set(this.room.roomId, this);
104564
105609
  this.client.emit(groupCallEventHandler_1.GroupCallEventHandlerEvent.Outgoing, this);
105610
+ yield this.sendCallStateEvent();
105611
+ return this;
105612
+ });
105613
+ }
105614
+ sendCallStateEvent() {
105615
+ return __awaiter(this, void 0, void 0, function* () {
104565
105616
  const groupCallState = {
104566
105617
  "m.intent": this.intent,
104567
105618
  "m.type": this.type,
@@ -104570,10 +105621,19 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104570
105621
  "dataChannelsEnabled": this.dataChannelsEnabled,
104571
105622
  "dataChannelOptions": this.dataChannelsEnabled ? this.dataChannelOptions : undefined,
104572
105623
  };
105624
+ if (this.livekitServiceURL) {
105625
+ groupCallState["io.element.livekit_service_url"] = this.livekitServiceURL;
105626
+ }
104573
105627
  yield this.client.sendStateEvent(this.room.roomId, event_1.EventType.GroupCallPrefix, groupCallState, this.groupCallId);
104574
- return this;
104575
105628
  });
104576
105629
  }
105630
+ get livekitServiceURL() {
105631
+ return this._livekitServiceURL;
105632
+ }
105633
+ updateLivekitServiceURL(newURL) {
105634
+ this._livekitServiceURL = newURL;
105635
+ return this.sendCallStateEvent();
105636
+ }
104577
105637
  /**
104578
105638
  * The group call's state.
104579
105639
  */
@@ -104660,6 +105720,10 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104660
105720
  }
104661
105721
  initLocalCallFeed() {
104662
105722
  return __awaiter(this, void 0, void 0, function* () {
105723
+ if (this.useLivekit) {
105724
+ logger_1.logger.info("Livekit group call: not starting local call feed.");
105725
+ return;
105726
+ }
104663
105727
  if (this.state !== GroupCallState.LocalCallFeedUninitialized) {
104664
105728
  throw new Error(`Cannot initialize local call feed in the "${this.state}" state.`);
104665
105729
  }
@@ -104748,10 +105812,12 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
104748
105812
  for (const call of this.client.callEventHandler.calls.values()) {
104749
105813
  this.onIncomingCall(call);
104750
105814
  }
104751
- this.retryCallLoopInterval = setInterval(this.onRetryCallLoop, this.retryCallInterval);
104752
- this.activeSpeaker = undefined;
104753
- this.onActiveSpeakerLoop();
104754
- this.activeSpeakerLoopInterval = setInterval(this.onActiveSpeakerLoop, this.activeSpeakerInterval);
105815
+ if (!this.useLivekit) {
105816
+ this.retryCallLoopInterval = setInterval(this.onRetryCallLoop, this.retryCallInterval);
105817
+ this.activeSpeaker = undefined;
105818
+ this.onActiveSpeakerLoop();
105819
+ this.activeSpeakerLoopInterval = setInterval(this.onActiveSpeakerLoop, this.activeSpeakerInterval);
105820
+ }
104755
105821
  });
104756
105822
  }
104757
105823
  dispose() {
@@ -105424,7 +106490,7 @@ class GroupCall extends typed_event_emitter_1.TypedEventEmitter {
105424
106490
  }
105425
106491
  exports.GroupCall = GroupCall;
105426
106492
 
105427
- },{"../@types/event":317,"../ReEmitter":332,"../logger":394,"../models/room-state":411,"../models/typed-event-emitter":416,"../utils":442,"./call":445,"./callEventHandler":446,"./callEventTypes":447,"./callFeed":448,"./groupCallEventHandler":450,"./stats/callFeedStatsReporter":452,"./stats/groupCallStats":457,"./stats/statsReport":462,"./stats/summaryStatsReportGatherer":464}],450:[function(require,module,exports){
106493
+ },{"../@types/event":319,"../ReEmitter":334,"../logger":396,"../models/room-state":416,"../models/typed-event-emitter":421,"../utils":447,"./call":450,"./callEventHandler":451,"./callEventTypes":452,"./callFeed":453,"./groupCallEventHandler":455,"./stats/callFeedStatsReporter":457,"./stats/groupCallStats":462,"./stats/statsReport":467,"./stats/summaryStatsReportGatherer":469}],455:[function(require,module,exports){
105428
106494
  "use strict";
105429
106495
  /*
105430
106496
  Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
@@ -105530,6 +106596,7 @@ class GroupCallEventHandler {
105530
106596
  });
105531
106597
  }
105532
106598
  stop() {
106599
+ this.client.removeListener(client_1.ClientEvent.Room, this.onRoomsChanged);
105533
106600
  this.client.removeListener(room_state_1.RoomStateEvent.Events, this.onRoomStateChanged);
105534
106601
  }
105535
106602
  getRoomDeferred(roomId) {
@@ -105596,7 +106663,7 @@ class GroupCallEventHandler {
105596
106663
  const groupCall = new groupCall_1.GroupCall(this.client, room, callType, isPtt, callIntent, groupCallId,
105597
106664
  // Because without Media section a WebRTC connection is not possible, so need a RTCDataChannel to set up a
105598
106665
  // no media WebRTC connection anyway.
105599
- (content === null || content === void 0 ? void 0 : content.dataChannelsEnabled) || this.client.isVoipWithNoMediaAllowed, dataChannelOptions, this.client.isVoipWithNoMediaAllowed);
106666
+ (content === null || content === void 0 ? void 0 : content.dataChannelsEnabled) || this.client.isVoipWithNoMediaAllowed, dataChannelOptions, this.client.isVoipWithNoMediaAllowed, this.client.useLivekitForGroupCalls, content["io.element.livekit_service_url"]);
105600
106667
  this.groupCalls.set(room.roomId, groupCall);
105601
106668
  this.client.emit(GroupCallEventHandlerEvent.Incoming, groupCall);
105602
106669
  return groupCall;
@@ -105604,7 +106671,7 @@ class GroupCallEventHandler {
105604
106671
  }
105605
106672
  exports.GroupCallEventHandler = GroupCallEventHandler;
105606
106673
 
105607
- },{"../@types/event":317,"../client":336,"../logger":394,"../models/room-state":411,"../sync":440,"./groupCall":449}],451:[function(require,module,exports){
106674
+ },{"../@types/event":319,"../client":338,"../logger":396,"../models/room-state":416,"../sync":445,"./groupCall":454}],456:[function(require,module,exports){
105608
106675
  "use strict";
105609
106676
  /*
105610
106677
  Copyright 2015, 2016 OpenMarket Ltd
@@ -106016,7 +107083,7 @@ class MediaHandler extends typed_event_emitter_1.TypedEventEmitter {
106016
107083
  }
106017
107084
  exports.MediaHandler = MediaHandler;
106018
107085
 
106019
- },{"../logger":394,"../models/typed-event-emitter":416,"../webrtc/groupCall":449}],452:[function(require,module,exports){
107086
+ },{"../logger":396,"../models/typed-event-emitter":421,"../webrtc/groupCall":454}],457:[function(require,module,exports){
106020
107087
  "use strict";
106021
107088
  Object.defineProperty(exports, "__esModule", { value: true });
106022
107089
  exports.CallFeedStatsReporter = void 0;
@@ -106089,7 +107156,7 @@ class CallFeedStatsReporter {
106089
107156
  }
106090
107157
  exports.CallFeedStatsReporter = CallFeedStatsReporter;
106091
107158
 
106092
- },{}],453:[function(require,module,exports){
107159
+ },{}],458:[function(require,module,exports){
106093
107160
  "use strict";
106094
107161
  /*
106095
107162
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106277,7 +107344,7 @@ class CallStatsReportGatherer {
106277
107344
  }
106278
107345
  exports.CallStatsReportGatherer = CallStatsReportGatherer;
106279
107346
 
106280
- },{"../../logger":394,"./callFeedStatsReporter":452,"./connectionStats":454,"./connectionStatsBuilder":455,"./connectionStatsReportBuilder":456,"./media/mediaSsrcHandler":458,"./media/mediaTrackHandler":459,"./media/mediaTrackStatsHandler":461,"./trackStatsBuilder":465,"./transportStatsBuilder":466,"./valueFormatter":467}],454:[function(require,module,exports){
107347
+ },{"../../logger":396,"./callFeedStatsReporter":457,"./connectionStats":459,"./connectionStatsBuilder":460,"./connectionStatsReportBuilder":461,"./media/mediaSsrcHandler":463,"./media/mediaTrackHandler":464,"./media/mediaTrackStatsHandler":466,"./trackStatsBuilder":470,"./transportStatsBuilder":471,"./valueFormatter":472}],459:[function(require,module,exports){
106281
107348
  "use strict";
106282
107349
  /*
106283
107350
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106306,7 +107373,7 @@ class ConnectionStats {
106306
107373
  }
106307
107374
  exports.ConnectionStats = ConnectionStats;
106308
107375
 
106309
- },{}],455:[function(require,module,exports){
107376
+ },{}],460:[function(require,module,exports){
106310
107377
  "use strict";
106311
107378
  Object.defineProperty(exports, "__esModule", { value: true });
106312
107379
  exports.ConnectionStatsBuilder = void 0;
@@ -106322,7 +107389,7 @@ class ConnectionStatsBuilder {
106322
107389
  }
106323
107390
  exports.ConnectionStatsBuilder = ConnectionStatsBuilder;
106324
107391
 
106325
- },{}],456:[function(require,module,exports){
107392
+ },{}],461:[function(require,module,exports){
106326
107393
  "use strict";
106327
107394
  Object.defineProperty(exports, "__esModule", { value: true });
106328
107395
  exports.ConnectionStatsReportBuilder = void 0;
@@ -106424,7 +107491,7 @@ class ConnectionStatsReportBuilder {
106424
107491
  }
106425
107492
  exports.ConnectionStatsReportBuilder = ConnectionStatsReportBuilder;
106426
107493
 
106427
- },{}],457:[function(require,module,exports){
107494
+ },{}],462:[function(require,module,exports){
106428
107495
  "use strict";
106429
107496
  Object.defineProperty(exports, "__esModule", { value: true });
106430
107497
  exports.GroupCallStats = void 0;
@@ -106506,7 +107573,7 @@ class GroupCallStats {
106506
107573
  }
106507
107574
  exports.GroupCallStats = GroupCallStats;
106508
107575
 
106509
- },{"../../logger":394,"./callStatsReportGatherer":453,"./statsReportEmitter":463,"./summaryStatsReportGatherer":464}],458:[function(require,module,exports){
107576
+ },{"../../logger":396,"./callStatsReportGatherer":458,"./statsReportEmitter":468,"./summaryStatsReportGatherer":469}],463:[function(require,module,exports){
106510
107577
  "use strict";
106511
107578
  /*
106512
107579
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106563,7 +107630,7 @@ class MediaSsrcHandler {
106563
107630
  }
106564
107631
  exports.MediaSsrcHandler = MediaSsrcHandler;
106565
107632
 
106566
- },{"sdp-transform":261}],459:[function(require,module,exports){
107633
+ },{"sdp-transform":263}],464:[function(require,module,exports){
106567
107634
  "use strict";
106568
107635
  /*
106569
107636
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106638,7 +107705,7 @@ class MediaTrackHandler {
106638
107705
  }
106639
107706
  exports.MediaTrackHandler = MediaTrackHandler;
106640
107707
 
106641
- },{}],460:[function(require,module,exports){
107708
+ },{}],465:[function(require,module,exports){
106642
107709
  "use strict";
106643
107710
  /*
106644
107711
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106762,7 +107829,7 @@ class MediaTrackStats {
106762
107829
  }
106763
107830
  exports.MediaTrackStats = MediaTrackStats;
106764
107831
 
106765
- },{}],461:[function(require,module,exports){
107832
+ },{}],466:[function(require,module,exports){
106766
107833
  "use strict";
106767
107834
  Object.defineProperty(exports, "__esModule", { value: true });
106768
107835
  exports.MediaTrackStatsHandler = void 0;
@@ -106834,7 +107901,7 @@ class MediaTrackStatsHandler {
106834
107901
  }
106835
107902
  exports.MediaTrackStatsHandler = MediaTrackStatsHandler;
106836
107903
 
106837
- },{"./mediaTrackStats":460}],462:[function(require,module,exports){
107904
+ },{"./mediaTrackStats":465}],467:[function(require,module,exports){
106838
107905
  "use strict";
106839
107906
  /*
106840
107907
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106861,7 +107928,7 @@ var StatsReport;
106861
107928
  StatsReport["SUMMARY_STATS"] = "StatsReport.summary_stats";
106862
107929
  })(StatsReport || (exports.StatsReport = StatsReport = {}));
106863
107930
 
106864
- },{}],463:[function(require,module,exports){
107931
+ },{}],468:[function(require,module,exports){
106865
107932
  "use strict";
106866
107933
  /*
106867
107934
  Copyright 2023 The Matrix.org Foundation C.I.C.
@@ -106898,7 +107965,7 @@ class StatsReportEmitter extends typed_event_emitter_1.TypedEventEmitter {
106898
107965
  }
106899
107966
  exports.StatsReportEmitter = StatsReportEmitter;
106900
107967
 
106901
- },{"../../models/typed-event-emitter":416,"./statsReport":462}],464:[function(require,module,exports){
107968
+ },{"../../models/typed-event-emitter":421,"./statsReport":467}],469:[function(require,module,exports){
106902
107969
  "use strict";
106903
107970
  Object.defineProperty(exports, "__esModule", { value: true });
106904
107971
  exports.SummaryStatsReportGatherer = void 0;
@@ -107010,7 +108077,7 @@ class SummaryStatsReportGatherer {
107010
108077
  }
107011
108078
  exports.SummaryStatsReportGatherer = SummaryStatsReportGatherer;
107012
108079
 
107013
- },{}],465:[function(require,module,exports){
108080
+ },{}],470:[function(require,module,exports){
107014
108081
  "use strict";
107015
108082
  Object.defineProperty(exports, "__esModule", { value: true });
107016
108083
  exports.TrackStatsBuilder = void 0;
@@ -107180,7 +108247,7 @@ class TrackStatsBuilder {
107180
108247
  }
107181
108248
  exports.TrackStatsBuilder = TrackStatsBuilder;
107182
108249
 
107183
- },{"./valueFormatter":467}],466:[function(require,module,exports){
108250
+ },{"./valueFormatter":472}],471:[function(require,module,exports){
107184
108251
  "use strict";
107185
108252
  Object.defineProperty(exports, "__esModule", { value: true });
107186
108253
  exports.TransportStatsBuilder = void 0;
@@ -107217,7 +108284,7 @@ class TransportStatsBuilder {
107217
108284
  }
107218
108285
  exports.TransportStatsBuilder = TransportStatsBuilder;
107219
108286
 
107220
- },{}],467:[function(require,module,exports){
108287
+ },{}],472:[function(require,module,exports){
107221
108288
  "use strict";
107222
108289
  Object.defineProperty(exports, "__esModule", { value: true });
107223
108290
  exports.ValueFormatter = void 0;
@@ -107247,5 +108314,5 @@ class ValueFormatter {
107247
108314
  }
107248
108315
  exports.ValueFormatter = ValueFormatter;
107249
108316
 
107250
- },{}]},{},[335])
108317
+ },{}]},{},[337])
107251
108318
  //# sourceMappingURL=browser-matrix.js.map