matrix-js-sdk 41.8.0 → 41.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/lib/@types/AESEncryptedSecretStoragePayload.js +3 -1
  4. package/lib/@types/IIdentityServerProvider.js +3 -1
  5. package/lib/@types/PushRules.js +7 -7
  6. package/lib/@types/PushRules.js.map +1 -1
  7. package/lib/@types/auth.js +4 -4
  8. package/lib/@types/auth.js.map +1 -1
  9. package/lib/@types/beacon.js +2 -2
  10. package/lib/@types/beacon.js.map +1 -1
  11. package/lib/@types/common.js +3 -1
  12. package/lib/@types/crypto.js +3 -1
  13. package/lib/@types/event.js +20 -20
  14. package/lib/@types/event.js.map +1 -1
  15. package/lib/@types/events.js +3 -1
  16. package/lib/@types/extensible_events.js +6 -6
  17. package/lib/@types/extensible_events.js.map +1 -1
  18. package/lib/@types/global.d.js.map +1 -1
  19. package/lib/@types/json.js +3 -1
  20. package/lib/@types/local_notifications.js +3 -1
  21. package/lib/@types/location.js +4 -4
  22. package/lib/@types/location.js.map +1 -1
  23. package/lib/@types/matrix-sdk-crypto-wasm.d.js +3 -1
  24. package/lib/@types/media.js +3 -1
  25. package/lib/@types/membership.js +1 -1
  26. package/lib/@types/membership.js.map +1 -1
  27. package/lib/@types/partials.js +6 -6
  28. package/lib/@types/partials.js.map +1 -1
  29. package/lib/@types/polls.js +5 -5
  30. package/lib/@types/polls.js.map +1 -1
  31. package/lib/@types/read_receipts.js +2 -2
  32. package/lib/@types/read_receipts.js.map +1 -1
  33. package/lib/@types/registration.js +3 -1
  34. package/lib/@types/requests.js +1 -1
  35. package/lib/@types/requests.js.map +1 -1
  36. package/lib/@types/retention.js +1 -1
  37. package/lib/@types/retention.js.map +1 -1
  38. package/lib/@types/search.js +1 -1
  39. package/lib/@types/search.js.map +1 -1
  40. package/lib/@types/signed.js +3 -1
  41. package/lib/@types/spaces.js +3 -1
  42. package/lib/@types/state_events.js +3 -1
  43. package/lib/@types/synapse.js +3 -1
  44. package/lib/@types/sync.js +1 -1
  45. package/lib/@types/sync.js.map +1 -1
  46. package/lib/@types/threepids.js +1 -1
  47. package/lib/@types/threepids.js.map +1 -1
  48. package/lib/@types/topic.js +1 -1
  49. package/lib/@types/topic.js.map +1 -1
  50. package/lib/@types/uia.js +3 -1
  51. package/lib/NamespacedValue.js +8 -8
  52. package/lib/NamespacedValue.js.map +1 -1
  53. package/lib/ReEmitter.js +9 -16
  54. package/lib/ReEmitter.js.map +1 -1
  55. package/lib/ToDeviceMessageQueue.js +49 -57
  56. package/lib/ToDeviceMessageQueue.js.map +1 -1
  57. package/lib/autodiscovery.js +232 -247
  58. package/lib/autodiscovery.js.map +1 -1
  59. package/lib/base64.js +1 -1
  60. package/lib/base64.js.map +1 -1
  61. package/lib/browser-index.d.ts +2 -2
  62. package/lib/browser-index.d.ts.map +1 -1
  63. package/lib/browser-index.js +5 -5
  64. package/lib/browser-index.js.map +1 -1
  65. package/lib/capabilityPoller.js +19 -22
  66. package/lib/capabilityPoller.js.map +1 -1
  67. package/lib/client.d.ts +2 -8
  68. package/lib/client.d.ts.map +1 -1
  69. package/lib/client.js +2043 -2487
  70. package/lib/client.js.map +1 -1
  71. package/lib/common-crypto/CryptoBackend.js +2 -2
  72. package/lib/common-crypto/CryptoBackend.js.map +1 -1
  73. package/lib/common-crypto/key-passphrase.js.map +1 -1
  74. package/lib/content-helpers.js +43 -48
  75. package/lib/content-helpers.js.map +1 -1
  76. package/lib/content-repo.js +14 -24
  77. package/lib/content-repo.js.map +1 -1
  78. package/lib/crypto/store/base.js +6 -6
  79. package/lib/crypto/store/base.js.map +1 -1
  80. package/lib/crypto/store/indexeddb-crypto-store-backend.js +190 -238
  81. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
  82. package/lib/crypto/store/indexeddb-crypto-store.js +25 -30
  83. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
  84. package/lib/crypto/store/localStorage-crypto-store.js +113 -145
  85. package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
  86. package/lib/crypto/store/memory-crypto-store.js +74 -105
  87. package/lib/crypto/store/memory-crypto-store.js.map +1 -1
  88. package/lib/crypto-api/CryptoEvent.js +1 -1
  89. package/lib/crypto-api/CryptoEvent.js.map +1 -1
  90. package/lib/crypto-api/CryptoEventHandlerMap.js +3 -1
  91. package/lib/crypto-api/index.d.ts +15 -6
  92. package/lib/crypto-api/index.d.ts.map +1 -1
  93. package/lib/crypto-api/index.js +22 -22
  94. package/lib/crypto-api/index.js.map +1 -1
  95. package/lib/crypto-api/key-passphrase.js +15 -23
  96. package/lib/crypto-api/key-passphrase.js.map +1 -1
  97. package/lib/crypto-api/keybackup.js +3 -1
  98. package/lib/crypto-api/recovery-key.js +11 -12
  99. package/lib/crypto-api/recovery-key.js.map +1 -1
  100. package/lib/crypto-api/verification.js +3 -3
  101. package/lib/crypto-api/verification.js.map +1 -1
  102. package/lib/digest.js +7 -14
  103. package/lib/digest.js.map +1 -1
  104. package/lib/embedded.d.ts.map +1 -1
  105. package/lib/embedded.js +380 -505
  106. package/lib/embedded.js.map +1 -1
  107. package/lib/errors.js +2 -2
  108. package/lib/errors.js.map +1 -1
  109. package/lib/event-mapper.js +10 -12
  110. package/lib/event-mapper.js.map +1 -1
  111. package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -1
  112. package/lib/extensible_events_v1/InvalidEventError.js.map +1 -1
  113. package/lib/extensible_events_v1/MessageEvent.js +11 -13
  114. package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
  115. package/lib/extensible_events_v1/PollEndEvent.js +3 -4
  116. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
  117. package/lib/extensible_events_v1/PollResponseEvent.js +5 -6
  118. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
  119. package/lib/extensible_events_v1/PollStartEvent.js +8 -10
  120. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
  121. package/lib/extensible_events_v1/utilities.js.map +1 -1
  122. package/lib/feature.js +18 -31
  123. package/lib/feature.js.map +1 -1
  124. package/lib/filter-component.d.ts.map +1 -1
  125. package/lib/filter-component.js +20 -26
  126. package/lib/filter-component.js.map +1 -1
  127. package/lib/filter.js +14 -17
  128. package/lib/filter.js.map +1 -1
  129. package/lib/http-api/errors.js +28 -43
  130. package/lib/http-api/errors.js.map +1 -1
  131. package/lib/http-api/fetch.js +141 -159
  132. package/lib/http-api/fetch.js.map +1 -1
  133. package/lib/http-api/index.js +17 -20
  134. package/lib/http-api/index.js.map +1 -1
  135. package/lib/http-api/interface.js +1 -1
  136. package/lib/http-api/interface.js.map +1 -1
  137. package/lib/http-api/method.js +1 -1
  138. package/lib/http-api/method.js.map +1 -1
  139. package/lib/http-api/prefix.js +3 -3
  140. package/lib/http-api/prefix.js.map +1 -1
  141. package/lib/http-api/refresh.js +74 -94
  142. package/lib/http-api/refresh.js.map +1 -1
  143. package/lib/http-api/utils.d.ts +1 -1
  144. package/lib/http-api/utils.d.ts.map +1 -1
  145. package/lib/http-api/utils.js +34 -42
  146. package/lib/http-api/utils.js.map +1 -1
  147. package/lib/index.js.map +1 -1
  148. package/lib/indexeddb-helpers.js +3 -3
  149. package/lib/indexeddb-helpers.js.map +1 -1
  150. package/lib/indexeddb-worker.js.map +1 -1
  151. package/lib/interactive-auth.d.ts +5 -5
  152. package/lib/interactive-auth.d.ts.map +1 -1
  153. package/lib/interactive-auth.js +172 -204
  154. package/lib/interactive-auth.js.map +1 -1
  155. package/lib/logger.js +21 -57
  156. package/lib/logger.js.map +1 -1
  157. package/lib/matrix.js +7 -11
  158. package/lib/matrix.js.map +1 -1
  159. package/lib/matrixrtc/CallMembership.js +80 -74
  160. package/lib/matrixrtc/CallMembership.js.map +1 -1
  161. package/lib/matrixrtc/EncryptionManager.js +1 -1
  162. package/lib/matrixrtc/EncryptionManager.js.map +1 -1
  163. package/lib/matrixrtc/IKeyTransport.js +1 -1
  164. package/lib/matrixrtc/IKeyTransport.js.map +1 -1
  165. package/lib/matrixrtc/IMembershipManager.js +1 -1
  166. package/lib/matrixrtc/IMembershipManager.js.map +1 -1
  167. package/lib/matrixrtc/LivekitTransport.d.ts +1 -1
  168. package/lib/matrixrtc/LivekitTransport.js +4 -4
  169. package/lib/matrixrtc/LivekitTransport.js.map +1 -1
  170. package/lib/matrixrtc/MatrixRTCSession.js +137 -187
  171. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  172. package/lib/matrixrtc/MatrixRTCSessionManager.js +36 -41
  173. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
  174. package/lib/matrixrtc/MembershipManager.js +332 -378
  175. package/lib/matrixrtc/MembershipManager.js.map +1 -1
  176. package/lib/matrixrtc/MembershipManagerActionScheduler.js +54 -63
  177. package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -1
  178. package/lib/matrixrtc/RTCEncryptionManager.js +119 -143
  179. package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
  180. package/lib/matrixrtc/ToDeviceKeyTransport.js +53 -58
  181. package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -1
  182. package/lib/matrixrtc/index.js.map +1 -1
  183. package/lib/matrixrtc/membershipData/common.js +1 -1
  184. package/lib/matrixrtc/membershipData/common.js.map +1 -1
  185. package/lib/matrixrtc/membershipData/index.js.map +1 -1
  186. package/lib/matrixrtc/membershipData/rtc.js +15 -23
  187. package/lib/matrixrtc/membershipData/rtc.js.map +1 -1
  188. package/lib/matrixrtc/membershipData/session.js +4 -5
  189. package/lib/matrixrtc/membershipData/session.js.map +1 -1
  190. package/lib/matrixrtc/types.js +4 -6
  191. package/lib/matrixrtc/types.js.map +1 -1
  192. package/lib/matrixrtc/utils.js +4 -11
  193. package/lib/matrixrtc/utils.js.map +1 -1
  194. package/lib/models/MSC3089Branch.js +91 -116
  195. package/lib/models/MSC3089Branch.js.map +1 -1
  196. package/lib/models/MSC3089TreeSpace.js +209 -245
  197. package/lib/models/MSC3089TreeSpace.js.map +1 -1
  198. package/lib/models/ToDeviceMessage.js +3 -1
  199. package/lib/models/beacon.js +14 -13
  200. package/lib/models/beacon.js.map +1 -1
  201. package/lib/models/compare-event-ordering.js +13 -13
  202. package/lib/models/compare-event-ordering.js.map +1 -1
  203. package/lib/models/device.js +3 -3
  204. package/lib/models/device.js.map +1 -1
  205. package/lib/models/event-context.js +5 -8
  206. package/lib/models/event-context.js.map +1 -1
  207. package/lib/models/event-status.js +1 -1
  208. package/lib/models/event-status.js.map +1 -1
  209. package/lib/models/event-timeline-set.js +88 -94
  210. package/lib/models/event-timeline-set.js.map +1 -1
  211. package/lib/models/event-timeline.js +28 -30
  212. package/lib/models/event-timeline.js.map +1 -1
  213. package/lib/models/event.js +182 -226
  214. package/lib/models/event.js.map +1 -1
  215. package/lib/models/invites-ignorer-types.js +4 -4
  216. package/lib/models/invites-ignorer-types.js.map +1 -1
  217. package/lib/models/invites-ignorer.js +159 -179
  218. package/lib/models/invites-ignorer.js.map +1 -1
  219. package/lib/models/poll.js +71 -81
  220. package/lib/models/poll.js.map +1 -1
  221. package/lib/models/profile-keys.js +2 -2
  222. package/lib/models/profile-keys.js.map +1 -1
  223. package/lib/models/read-receipt.js +40 -56
  224. package/lib/models/read-receipt.js.map +1 -1
  225. package/lib/models/related-relations.js.map +1 -1
  226. package/lib/models/relations-container.js +22 -23
  227. package/lib/models/relations-container.js.map +1 -1
  228. package/lib/models/relations.js +133 -159
  229. package/lib/models/relations.js.map +1 -1
  230. package/lib/models/room-member.js +24 -29
  231. package/lib/models/room-member.js.map +1 -1
  232. package/lib/models/room-receipts.js +29 -43
  233. package/lib/models/room-receipts.js.map +1 -1
  234. package/lib/models/room-retention.js +74 -83
  235. package/lib/models/room-retention.js.map +1 -1
  236. package/lib/models/room-state.js +143 -172
  237. package/lib/models/room-state.js.map +1 -1
  238. package/lib/models/room-sticky-events.d.ts +1 -0
  239. package/lib/models/room-sticky-events.d.ts.map +1 -1
  240. package/lib/models/room-sticky-events.js +45 -65
  241. package/lib/models/room-sticky-events.js.map +1 -1
  242. package/lib/models/room-summary.js.map +1 -1
  243. package/lib/models/room.d.ts.map +1 -1
  244. package/lib/models/room.js +765 -909
  245. package/lib/models/room.js.map +1 -1
  246. package/lib/models/search-result.js +5 -5
  247. package/lib/models/search-result.js.map +1 -1
  248. package/lib/models/thread.js +225 -285
  249. package/lib/models/thread.js.map +1 -1
  250. package/lib/models/typed-event-emitter.js +7 -18
  251. package/lib/models/typed-event-emitter.js.map +1 -1
  252. package/lib/models/user.js +8 -8
  253. package/lib/models/user.js.map +1 -1
  254. package/lib/oidc/authorize.js +208 -241
  255. package/lib/oidc/authorize.js.map +1 -1
  256. package/lib/oidc/discovery.js +23 -36
  257. package/lib/oidc/discovery.js.map +1 -1
  258. package/lib/oidc/error.js +1 -1
  259. package/lib/oidc/error.js.map +1 -1
  260. package/lib/oidc/index.js +1 -0
  261. package/lib/oidc/index.js.map +1 -1
  262. package/lib/oidc/register.js +60 -66
  263. package/lib/oidc/register.js.map +1 -1
  264. package/lib/oidc/tokenRefresher.js +77 -91
  265. package/lib/oidc/tokenRefresher.js.map +1 -1
  266. package/lib/oidc/validate.js +18 -18
  267. package/lib/oidc/validate.js.map +1 -1
  268. package/lib/pushprocessor.js +71 -82
  269. package/lib/pushprocessor.js.map +1 -1
  270. package/lib/randomstring.js +9 -9
  271. package/lib/randomstring.js.map +1 -1
  272. package/lib/realtime-callbacks.js +25 -28
  273. package/lib/realtime-callbacks.js.map +1 -1
  274. package/lib/receipt-accumulator.d.ts +2 -0
  275. package/lib/receipt-accumulator.d.ts.map +1 -1
  276. package/lib/receipt-accumulator.js +14 -22
  277. package/lib/receipt-accumulator.js.map +1 -1
  278. package/lib/rendezvous/MSC4108SignInWithQR.js +271 -302
  279. package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -1
  280. package/lib/rendezvous/RendezvousChannel.js +3 -1
  281. package/lib/rendezvous/RendezvousCode.js +3 -1
  282. package/lib/rendezvous/RendezvousError.js.map +1 -1
  283. package/lib/rendezvous/RendezvousFailureReason.js +2 -2
  284. package/lib/rendezvous/RendezvousFailureReason.js.map +1 -1
  285. package/lib/rendezvous/RendezvousIntent.js +1 -1
  286. package/lib/rendezvous/RendezvousIntent.js.map +1 -1
  287. package/lib/rendezvous/RendezvousTransport.js +3 -1
  288. package/lib/rendezvous/channels/MSC4108SecureChannel.js +123 -147
  289. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
  290. package/lib/rendezvous/index.js +44 -69
  291. package/lib/rendezvous/index.js.map +1 -1
  292. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +1 -1
  293. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +134 -152
  294. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
  295. package/lib/retentionPolicy.js +6 -9
  296. package/lib/retentionPolicy.js.map +1 -1
  297. package/lib/room-hierarchy.js +52 -60
  298. package/lib/room-hierarchy.js.map +1 -1
  299. package/lib/rust-crypto/CrossSigningIdentity.js +94 -104
  300. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
  301. package/lib/rust-crypto/DehydratedDeviceManager.js +157 -190
  302. package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -1
  303. package/lib/rust-crypto/KeyClaimManager.js +18 -22
  304. package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
  305. package/lib/rust-crypto/OutgoingRequestProcessor.js +109 -139
  306. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
  307. package/lib/rust-crypto/OutgoingRequestsManager.js +66 -80
  308. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
  309. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +1 -1
  310. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +196 -224
  311. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -1
  312. package/lib/rust-crypto/RoomEncryptor.js +127 -143
  313. package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
  314. package/lib/rust-crypto/backup.js +453 -549
  315. package/lib/rust-crypto/backup.js.map +1 -1
  316. package/lib/rust-crypto/constants.js +1 -1
  317. package/lib/rust-crypto/constants.js.map +1 -1
  318. package/lib/rust-crypto/device-converter.js +15 -28
  319. package/lib/rust-crypto/device-converter.js.map +1 -1
  320. package/lib/rust-crypto/index.js +103 -116
  321. package/lib/rust-crypto/index.js.map +1 -1
  322. package/lib/rust-crypto/libolm_migration.js +303 -365
  323. package/lib/rust-crypto/libolm_migration.js.map +1 -1
  324. package/lib/rust-crypto/rust-crypto.d.ts +5 -1
  325. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
  326. package/lib/rust-crypto/rust-crypto.js +1067 -1332
  327. package/lib/rust-crypto/rust-crypto.js.map +1 -1
  328. package/lib/rust-crypto/secret-storage.js +12 -25
  329. package/lib/rust-crypto/secret-storage.js.map +1 -1
  330. package/lib/rust-crypto/verification.js +137 -189
  331. package/lib/rust-crypto/verification.js.map +1 -1
  332. package/lib/scheduler.js +44 -19
  333. package/lib/scheduler.js.map +1 -1
  334. package/lib/secret-storage.js +179 -213
  335. package/lib/secret-storage.js.map +1 -1
  336. package/lib/serverCapabilities.js +6 -9
  337. package/lib/serverCapabilities.js.map +1 -1
  338. package/lib/service-types.js +1 -1
  339. package/lib/service-types.js.map +1 -1
  340. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  341. package/lib/sliding-sync-sdk.js +368 -424
  342. package/lib/sliding-sync-sdk.js.map +1 -1
  343. package/lib/sliding-sync.js +135 -171
  344. package/lib/sliding-sync.js.map +1 -1
  345. package/lib/store/index.js +3 -1
  346. package/lib/store/indexeddb-backend.js +3 -1
  347. package/lib/store/indexeddb-local-backend.js +194 -253
  348. package/lib/store/indexeddb-local-backend.js.map +1 -1
  349. package/lib/store/indexeddb-remote-backend.js +33 -63
  350. package/lib/store/indexeddb-remote-backend.js.map +1 -1
  351. package/lib/store/indexeddb-store-worker.js +22 -23
  352. package/lib/store/indexeddb-store-worker.js.map +1 -1
  353. package/lib/store/indexeddb.js +44 -71
  354. package/lib/store/indexeddb.js.map +1 -1
  355. package/lib/store/local-storage-events-emitter.js +2 -2
  356. package/lib/store/local-storage-events-emitter.js.map +1 -1
  357. package/lib/store/memory.js +34 -57
  358. package/lib/store/memory.js.map +1 -1
  359. package/lib/store/stub.js +22 -35
  360. package/lib/store/stub.js.map +1 -1
  361. package/lib/sync-accumulator.js +54 -66
  362. package/lib/sync-accumulator.js.map +1 -1
  363. package/lib/sync.d.ts.map +1 -1
  364. package/lib/sync.js +905 -998
  365. package/lib/sync.js.map +1 -1
  366. package/lib/testing.js +63 -105
  367. package/lib/testing.js.map +1 -1
  368. package/lib/thread-utils.js +1 -4
  369. package/lib/thread-utils.js.map +1 -1
  370. package/lib/timeline-window.js +89 -102
  371. package/lib/timeline-window.js.map +1 -1
  372. package/lib/types.js +1 -1
  373. package/lib/types.js.map +1 -1
  374. package/lib/utils/decryptAESSecretStorageItem.js +14 -25
  375. package/lib/utils/decryptAESSecretStorageItem.js.map +1 -1
  376. package/lib/utils/encryptAESSecretStorageItem.js +27 -38
  377. package/lib/utils/encryptAESSecretStorageItem.js.map +1 -1
  378. package/lib/utils/internal/deriveKeys.js +25 -32
  379. package/lib/utils/internal/deriveKeys.js.map +1 -1
  380. package/lib/utils/roomVersion.js +1 -1
  381. package/lib/utils/roomVersion.js.map +1 -1
  382. package/lib/utils.js +83 -135
  383. package/lib/utils.js.map +1 -1
  384. package/lib/version-support.js +3 -3
  385. package/lib/version-support.js.map +1 -1
  386. package/lib/webrtc/audioContext.js +5 -6
  387. package/lib/webrtc/audioContext.js.map +1 -1
  388. package/lib/webrtc/call.js +1081 -1250
  389. package/lib/webrtc/call.js.map +1 -1
  390. package/lib/webrtc/callEventHandler.js +202 -214
  391. package/lib/webrtc/callEventHandler.js.map +1 -1
  392. package/lib/webrtc/callEventTypes.js +2 -2
  393. package/lib/webrtc/callEventTypes.js.map +1 -1
  394. package/lib/webrtc/callFeed.js +18 -20
  395. package/lib/webrtc/callFeed.js.map +1 -1
  396. package/lib/webrtc/groupCall.js +513 -602
  397. package/lib/webrtc/groupCall.js.map +1 -1
  398. package/lib/webrtc/groupCallEventHandler.js +59 -62
  399. package/lib/webrtc/groupCallEventHandler.js.map +1 -1
  400. package/lib/webrtc/mediaHandler.js +198 -232
  401. package/lib/webrtc/mediaHandler.js.map +1 -1
  402. package/lib/webrtc/stats/callFeedStatsReporter.js +16 -20
  403. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
  404. package/lib/webrtc/stats/callStatsReportGatherer.js +67 -75
  405. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  406. package/lib/webrtc/stats/callStatsReportSummary.js +3 -1
  407. package/lib/webrtc/stats/connectionStats.js.map +1 -1
  408. package/lib/webrtc/stats/connectionStatsBuilder.js +2 -2
  409. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
  410. package/lib/webrtc/stats/connectionStatsReportBuilder.js +20 -24
  411. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
  412. package/lib/webrtc/stats/groupCallStats.js +6 -8
  413. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  414. package/lib/webrtc/stats/media/mediaSsrcHandler.js +7 -8
  415. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
  416. package/lib/webrtc/stats/media/mediaTrackHandler.js +7 -9
  417. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
  418. package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
  419. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  420. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +7 -7
  421. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  422. package/lib/webrtc/stats/statsReport.js +1 -1
  423. package/lib/webrtc/stats/statsReport.js.map +1 -1
  424. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
  425. package/lib/webrtc/stats/summaryStatsReportGatherer.js +14 -14
  426. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -1
  427. package/lib/webrtc/stats/trackStatsBuilder.js +32 -34
  428. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
  429. package/lib/webrtc/stats/transportStats.js +3 -1
  430. package/lib/webrtc/stats/transportStatsBuilder.js +9 -9
  431. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
  432. package/lib/webrtc/stats/valueFormatter.js +1 -1
  433. package/lib/webrtc/stats/valueFormatter.js.map +1 -1
  434. package/package.json +18 -33
  435. package/src/@types/global.d.ts +2 -2
  436. package/src/ToDeviceMessageQueue.ts +2 -2
  437. package/src/browser-index.ts +4 -4
  438. package/src/client.ts +15 -20
  439. package/src/crypto-api/index.ts +17 -6
  440. package/src/embedded.ts +4 -6
  441. package/src/filter-component.ts +1 -0
  442. package/src/http-api/utils.ts +1 -1
  443. package/src/interactive-auth.ts +11 -5
  444. package/src/matrixrtc/LivekitTransport.ts +1 -1
  445. package/src/matrixrtc/MatrixRTCSession.ts +1 -1
  446. package/src/models/MSC3089Branch.ts +1 -1
  447. package/src/models/room-sticky-events.ts +1 -0
  448. package/src/models/room.ts +9 -11
  449. package/src/receipt-accumulator.ts +2 -0
  450. package/src/rendezvous/index.ts +1 -1
  451. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +2 -2
  452. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +1 -1
  453. package/src/rust-crypto/index.ts +6 -6
  454. package/src/rust-crypto/rust-crypto.ts +31 -7
  455. package/src/rust-crypto/verification.ts +1 -1
  456. package/src/sliding-sync-sdk.ts +5 -7
  457. package/src/store/indexeddb-local-backend.ts +3 -3
  458. package/src/sync.ts +6 -8
@@ -1,4 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  /*
4
3
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
@@ -19,7 +18,7 @@ limitations under the License.
19
18
  import { logger } from "../../logger.js";
20
19
  import { MigrationState, SESSION_BATCH_SIZE, ACCOUNT_OBJECT_KEY_MIGRATION_STATE } from "./base.js";
21
20
  import { IndexedDBCryptoStore } from "./indexeddb-crypto-store.js";
22
- var PROFILE_TRANSACTIONS = false;
21
+ const PROFILE_TRANSACTIONS = false;
23
22
 
24
23
  /**
25
24
  * Implementation of a CryptoStore which is backed by an existing
@@ -32,33 +31,26 @@ export class Backend {
32
31
  /**
33
32
  */
34
33
  constructor(db) {
35
- this.db = db;
36
34
  _defineProperty(this, "nextTxnId", 0);
35
+ this.db = db;
37
36
  // make sure we close the db on `onversionchange` - otherwise
38
37
  // attempts to delete the database will block (and subsequent
39
38
  // attempts to re-create it will also block).
40
39
  db.onversionchange = () => {
41
- logger.log("versionchange for indexeddb ".concat(this.db.name, ": closing"));
40
+ logger.log(`versionchange for indexeddb ${this.db.name}: closing`);
42
41
  db.close();
43
42
  };
44
43
  }
45
- containsData() {
46
- return _asyncToGenerator(function* () {
47
- throw Error("Not implemented for Backend");
48
- })();
44
+ async containsData() {
45
+ throw Error("Not implemented for Backend");
49
46
  }
50
- startup() {
51
- var _this = this;
52
- return _asyncToGenerator(function* () {
53
- // No work to do, as the startup is done by the caller (e.g IndexedDBCryptoStore)
54
- // by passing us a ready IDBDatabase instance
55
- return _this;
56
- })();
47
+ async startup() {
48
+ // No work to do, as the startup is done by the caller (e.g IndexedDBCryptoStore)
49
+ // by passing us a ready IDBDatabase instance
50
+ return this;
57
51
  }
58
- deleteAllData() {
59
- return _asyncToGenerator(function* () {
60
- throw Error("This is not implemented, call IDBFactory::deleteDatabase(dbName) instead.");
61
- })();
52
+ async deleteAllData() {
53
+ throw Error("This is not implemented, call IDBFactory::deleteDatabase(dbName) instead.");
62
54
  }
63
55
 
64
56
  /**
@@ -66,20 +58,16 @@ export class Backend {
66
58
  *
67
59
  * Implementation of {@link CryptoStore.getMigrationState}.
68
60
  */
69
- getMigrationState() {
70
- var _this2 = this;
71
- return _asyncToGenerator(function* () {
72
- var migrationState = MigrationState.NOT_STARTED;
73
- yield _this2.doTxn("readonly", [IndexedDBCryptoStore.STORE_ACCOUNT], txn => {
74
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
75
- var getReq = objectStore.get(ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
76
- getReq.onsuccess = () => {
77
- var _getReq$result;
78
- migrationState = (_getReq$result = getReq.result) !== null && _getReq$result !== void 0 ? _getReq$result : MigrationState.NOT_STARTED;
79
- };
80
- });
81
- return migrationState;
82
- })();
61
+ async getMigrationState() {
62
+ let migrationState = MigrationState.NOT_STARTED;
63
+ await this.doTxn("readonly", [IndexedDBCryptoStore.STORE_ACCOUNT], txn => {
64
+ const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
65
+ const getReq = objectStore.get(ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
66
+ getReq.onsuccess = () => {
67
+ migrationState = getReq.result ?? MigrationState.NOT_STARTED;
68
+ };
69
+ });
70
+ return migrationState;
83
71
  }
84
72
 
85
73
  /**
@@ -87,21 +75,18 @@ export class Backend {
87
75
  *
88
76
  * Implementation of {@link CryptoStore.setMigrationState}.
89
77
  */
90
- setMigrationState(migrationState) {
91
- var _this3 = this;
92
- return _asyncToGenerator(function* () {
93
- yield _this3.doTxn("readwrite", [IndexedDBCryptoStore.STORE_ACCOUNT], txn => {
94
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
95
- objectStore.put(migrationState, ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
96
- });
97
- })();
78
+ async setMigrationState(migrationState) {
79
+ await this.doTxn("readwrite", [IndexedDBCryptoStore.STORE_ACCOUNT], txn => {
80
+ const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
81
+ objectStore.put(migrationState, ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
82
+ });
98
83
  }
99
84
 
100
85
  // Olm Account
101
86
 
102
87
  getAccount(txn, func) {
103
- var objectStore = txn.objectStore("account");
104
- var getReq = objectStore.get("-");
88
+ const objectStore = txn.objectStore("account");
89
+ const getReq = objectStore.get("-");
105
90
  getReq.onsuccess = function () {
106
91
  try {
107
92
  func(getReq.result || null);
@@ -111,12 +96,12 @@ export class Backend {
111
96
  };
112
97
  }
113
98
  storeAccount(txn, accountPickle) {
114
- var objectStore = txn.objectStore("account");
99
+ const objectStore = txn.objectStore("account");
115
100
  objectStore.put(accountPickle, "-");
116
101
  }
117
102
  getCrossSigningKeys(txn, func) {
118
- var objectStore = txn.objectStore("account");
119
- var getReq = objectStore.get("crossSigningKeys");
103
+ const objectStore = txn.objectStore("account");
104
+ const getReq = objectStore.get("crossSigningKeys");
120
105
  getReq.onsuccess = function () {
121
106
  try {
122
107
  func(getReq.result || null);
@@ -126,8 +111,8 @@ export class Backend {
126
111
  };
127
112
  }
128
113
  getSecretStorePrivateKey(txn, func, type) {
129
- var objectStore = txn.objectStore("account");
130
- var getReq = objectStore.get("ssss_cache:".concat(type));
114
+ const objectStore = txn.objectStore("account");
115
+ const getReq = objectStore.get(`ssss_cache:${type}`);
131
116
  getReq.onsuccess = function () {
132
117
  try {
133
118
  func(getReq.result || null);
@@ -137,15 +122,15 @@ export class Backend {
137
122
  };
138
123
  }
139
124
  storeSecretStorePrivateKey(txn, type, key) {
140
- var objectStore = txn.objectStore("account");
141
- objectStore.put(key, "ssss_cache:".concat(type));
125
+ const objectStore = txn.objectStore("account");
126
+ objectStore.put(key, `ssss_cache:${type}`);
142
127
  }
143
128
 
144
129
  // Olm Sessions
145
130
 
146
131
  countEndToEndSessions(txn, func) {
147
- var objectStore = txn.objectStore("sessions");
148
- var countReq = objectStore.count();
132
+ const objectStore = txn.objectStore("sessions");
133
+ const countReq = objectStore.count();
149
134
  countReq.onsuccess = function () {
150
135
  try {
151
136
  func(countReq.result);
@@ -155,12 +140,12 @@ export class Backend {
155
140
  };
156
141
  }
157
142
  getEndToEndSessions(deviceKey, txn, func) {
158
- var objectStore = txn.objectStore("sessions");
159
- var idx = objectStore.index("deviceKey");
160
- var getReq = idx.openCursor(deviceKey);
161
- var results = {};
143
+ const objectStore = txn.objectStore("sessions");
144
+ const idx = objectStore.index("deviceKey");
145
+ const getReq = idx.openCursor(deviceKey);
146
+ const results = {};
162
147
  getReq.onsuccess = function () {
163
- var cursor = getReq.result;
148
+ const cursor = getReq.result;
164
149
  if (cursor) {
165
150
  results[cursor.value.sessionId] = {
166
151
  session: cursor.value.session,
@@ -177,8 +162,8 @@ export class Backend {
177
162
  };
178
163
  }
179
164
  getEndToEndSession(deviceKey, sessionId, txn, func) {
180
- var objectStore = txn.objectStore("sessions");
181
- var getReq = objectStore.get([deviceKey, sessionId]);
165
+ const objectStore = txn.objectStore("sessions");
166
+ const getReq = objectStore.get([deviceKey, sessionId]);
182
167
  getReq.onsuccess = function () {
183
168
  try {
184
169
  if (getReq.result) {
@@ -195,7 +180,7 @@ export class Backend {
195
180
  };
196
181
  }
197
182
  storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn) {
198
- var objectStore = txn.objectStore("sessions");
183
+ const objectStore = txn.objectStore("sessions");
199
184
  objectStore.put({
200
185
  deviceKey,
201
186
  sessionId,
@@ -209,33 +194,30 @@ export class Backend {
209
194
  *
210
195
  * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
211
196
  */
212
- getEndToEndSessionsBatch() {
213
- var _this4 = this;
214
- return _asyncToGenerator(function* () {
215
- var result = [];
216
- yield _this4.doTxn("readonly", [IndexedDBCryptoStore.STORE_SESSIONS], txn => {
217
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);
218
- var getReq = objectStore.openCursor();
219
- getReq.onsuccess = function () {
220
- try {
221
- var cursor = getReq.result;
222
- if (cursor) {
223
- result.push(cursor.value);
224
- if (result.length < SESSION_BATCH_SIZE) {
225
- cursor.continue();
226
- }
197
+ async getEndToEndSessionsBatch() {
198
+ const result = [];
199
+ await this.doTxn("readonly", [IndexedDBCryptoStore.STORE_SESSIONS], txn => {
200
+ const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);
201
+ const getReq = objectStore.openCursor();
202
+ getReq.onsuccess = function () {
203
+ try {
204
+ const cursor = getReq.result;
205
+ if (cursor) {
206
+ result.push(cursor.value);
207
+ if (result.length < SESSION_BATCH_SIZE) {
208
+ cursor.continue();
227
209
  }
228
- } catch (e) {
229
- abortWithException(txn, e);
230
210
  }
231
- };
232
- });
233
- if (result.length === 0) {
234
- // No sessions left.
235
- return null;
236
- }
237
- return result;
238
- })();
211
+ } catch (e) {
212
+ abortWithException(txn, e);
213
+ }
214
+ };
215
+ });
216
+ if (result.length === 0) {
217
+ // No sessions left.
218
+ return null;
219
+ }
220
+ return result;
239
221
  }
240
222
 
241
223
  /**
@@ -245,42 +227,32 @@ export class Backend {
245
227
  *
246
228
  * @internal
247
229
  */
248
- deleteEndToEndSessionsBatch(sessions) {
249
- var _this5 = this;
250
- return _asyncToGenerator(function* () {
251
- yield _this5.doTxn("readwrite", [IndexedDBCryptoStore.STORE_SESSIONS], /*#__PURE__*/function () {
252
- var _ref = _asyncToGenerator(function* (txn) {
253
- try {
254
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);
255
- var _loop = function* _loop() {
256
- var deviceKey = _ref3.deviceKey;
257
- var sessionId = _ref3.sessionId;
258
- var req = objectStore.delete([deviceKey, sessionId]);
259
- yield new Promise(resolve => {
260
- req.onsuccess = resolve;
261
- });
262
- };
263
- for (var _ref3 of sessions) {
264
- yield* _loop();
265
- }
266
- } catch (e) {
267
- abortWithException(txn, e);
268
- }
269
- });
270
- return function (_x) {
271
- return _ref.apply(this, arguments);
272
- };
273
- }());
274
- })();
230
+ async deleteEndToEndSessionsBatch(sessions) {
231
+ await this.doTxn("readwrite", [IndexedDBCryptoStore.STORE_SESSIONS], async txn => {
232
+ try {
233
+ const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);
234
+ for (const {
235
+ deviceKey,
236
+ sessionId
237
+ } of sessions) {
238
+ const req = objectStore.delete([deviceKey, sessionId]);
239
+ await new Promise(resolve => {
240
+ req.onsuccess = resolve;
241
+ });
242
+ }
243
+ } catch (e) {
244
+ abortWithException(txn, e);
245
+ }
246
+ });
275
247
  }
276
248
 
277
249
  // Inbound group sessions
278
250
 
279
251
  getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func) {
280
- var session = false;
281
- var withheld = false;
282
- var objectStore = txn.objectStore("inbound_group_sessions");
283
- var getReq = objectStore.get([senderCurve25519Key, sessionId]);
252
+ let session = false;
253
+ let withheld = false;
254
+ const objectStore = txn.objectStore("inbound_group_sessions");
255
+ const getReq = objectStore.get([senderCurve25519Key, sessionId]);
284
256
  getReq.onsuccess = function () {
285
257
  try {
286
258
  if (getReq.result) {
@@ -295,8 +267,8 @@ export class Backend {
295
267
  abortWithException(txn, e);
296
268
  }
297
269
  };
298
- var withheldObjectStore = txn.objectStore("inbound_group_sessions_withheld");
299
- var withheldGetReq = withheldObjectStore.get([senderCurve25519Key, sessionId]);
270
+ const withheldObjectStore = txn.objectStore("inbound_group_sessions_withheld");
271
+ const withheldGetReq = withheldObjectStore.get([senderCurve25519Key, sessionId]);
300
272
  withheldGetReq.onsuccess = function () {
301
273
  try {
302
274
  if (withheldGetReq.result) {
@@ -313,7 +285,7 @@ export class Backend {
313
285
  };
314
286
  }
315
287
  storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
316
- var objectStore = txn.objectStore("inbound_group_sessions");
288
+ const objectStore = txn.objectStore("inbound_group_sessions");
317
289
  objectStore.put({
318
290
  senderCurve25519Key,
319
291
  sessionId,
@@ -328,19 +300,16 @@ export class Backend {
328
300
  *
329
301
  * @internal
330
302
  */
331
- countEndToEndInboundGroupSessions() {
332
- var _this6 = this;
333
- return _asyncToGenerator(function* () {
334
- var result = 0;
335
- yield _this6.doTxn("readonly", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], txn => {
336
- var sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
337
- var countReq = sessionStore.count();
338
- countReq.onsuccess = () => {
339
- result = countReq.result;
340
- };
341
- });
342
- return result;
343
- })();
303
+ async countEndToEndInboundGroupSessions() {
304
+ let result = 0;
305
+ await this.doTxn("readonly", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], txn => {
306
+ const sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
307
+ const countReq = sessionStore.count();
308
+ countReq.onsuccess = () => {
309
+ result = countReq.result;
310
+ };
311
+ });
312
+ return result;
344
313
  }
345
314
 
346
315
  /**
@@ -348,42 +317,39 @@ export class Backend {
348
317
  *
349
318
  * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
350
319
  */
351
- getEndToEndInboundGroupSessionsBatch() {
352
- var _this7 = this;
353
- return _asyncToGenerator(function* () {
354
- var result = [];
355
- yield _this7.doTxn("readonly", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS, IndexedDBCryptoStore.STORE_BACKUP], txn => {
356
- var sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
357
- var backupStore = txn.objectStore(IndexedDBCryptoStore.STORE_BACKUP);
358
- var getReq = sessionStore.openCursor();
359
- getReq.onsuccess = function () {
360
- try {
361
- var cursor = getReq.result;
362
- if (cursor) {
363
- var backupGetReq = backupStore.get(cursor.key);
364
- backupGetReq.onsuccess = () => {
365
- result.push({
366
- senderKey: cursor.value.senderCurve25519Key,
367
- sessionId: cursor.value.sessionId,
368
- sessionData: cursor.value.session,
369
- needsBackup: backupGetReq.result !== undefined
370
- });
371
- if (result.length < SESSION_BATCH_SIZE) {
372
- cursor.continue();
373
- }
374
- };
375
- }
376
- } catch (e) {
377
- abortWithException(txn, e);
320
+ async getEndToEndInboundGroupSessionsBatch() {
321
+ const result = [];
322
+ await this.doTxn("readonly", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS, IndexedDBCryptoStore.STORE_BACKUP], txn => {
323
+ const sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
324
+ const backupStore = txn.objectStore(IndexedDBCryptoStore.STORE_BACKUP);
325
+ const getReq = sessionStore.openCursor();
326
+ getReq.onsuccess = function () {
327
+ try {
328
+ const cursor = getReq.result;
329
+ if (cursor) {
330
+ const backupGetReq = backupStore.get(cursor.key);
331
+ backupGetReq.onsuccess = () => {
332
+ result.push({
333
+ senderKey: cursor.value.senderCurve25519Key,
334
+ sessionId: cursor.value.sessionId,
335
+ sessionData: cursor.value.session,
336
+ needsBackup: backupGetReq.result !== undefined
337
+ });
338
+ if (result.length < SESSION_BATCH_SIZE) {
339
+ cursor.continue();
340
+ }
341
+ };
378
342
  }
379
- };
380
- });
381
- if (result.length === 0) {
382
- // No sessions left.
383
- return null;
384
- }
385
- return result;
386
- })();
343
+ } catch (e) {
344
+ abortWithException(txn, e);
345
+ }
346
+ };
347
+ });
348
+ if (result.length === 0) {
349
+ // No sessions left.
350
+ return null;
351
+ }
352
+ return result;
387
353
  }
388
354
 
389
355
  /**
@@ -393,37 +359,27 @@ export class Backend {
393
359
  *
394
360
  * @internal
395
361
  */
396
- deleteEndToEndInboundGroupSessionsBatch(sessions) {
397
- var _this8 = this;
398
- return _asyncToGenerator(function* () {
399
- yield _this8.doTxn("readwrite", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], /*#__PURE__*/function () {
400
- var _ref4 = _asyncToGenerator(function* (txn) {
401
- try {
402
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
403
- var _loop2 = function* _loop2() {
404
- var senderKey = _ref6.senderKey;
405
- var sessionId = _ref6.sessionId;
406
- var req = objectStore.delete([senderKey, sessionId]);
407
- yield new Promise(resolve => {
408
- req.onsuccess = resolve;
409
- });
410
- };
411
- for (var _ref6 of sessions) {
412
- yield* _loop2();
413
- }
414
- } catch (e) {
415
- abortWithException(txn, e);
416
- }
417
- });
418
- return function (_x2) {
419
- return _ref4.apply(this, arguments);
420
- };
421
- }());
422
- })();
362
+ async deleteEndToEndInboundGroupSessionsBatch(sessions) {
363
+ await this.doTxn("readwrite", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], async txn => {
364
+ try {
365
+ const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
366
+ for (const {
367
+ senderKey,
368
+ sessionId
369
+ } of sessions) {
370
+ const req = objectStore.delete([senderKey, sessionId]);
371
+ await new Promise(resolve => {
372
+ req.onsuccess = resolve;
373
+ });
374
+ }
375
+ } catch (e) {
376
+ abortWithException(txn, e);
377
+ }
378
+ });
423
379
  }
424
380
  getEndToEndDeviceData(txn, func) {
425
- var objectStore = txn.objectStore("device_data");
426
- var getReq = objectStore.get("-");
381
+ const objectStore = txn.objectStore("device_data");
382
+ const getReq = objectStore.get("-");
427
383
  getReq.onsuccess = function () {
428
384
  try {
429
385
  func(getReq.result || null);
@@ -433,11 +389,11 @@ export class Backend {
433
389
  };
434
390
  }
435
391
  getEndToEndRooms(txn, func) {
436
- var rooms = {};
437
- var objectStore = txn.objectStore("rooms");
438
- var getReq = objectStore.openCursor();
392
+ const rooms = {};
393
+ const objectStore = txn.objectStore("rooms");
394
+ const getReq = objectStore.openCursor();
439
395
  getReq.onsuccess = function () {
440
- var cursor = getReq.result;
396
+ const cursor = getReq.result;
441
397
  if (cursor) {
442
398
  rooms[cursor.key] = cursor.value;
443
399
  cursor.continue();
@@ -450,45 +406,41 @@ export class Backend {
450
406
  }
451
407
  };
452
408
  }
453
- markSessionsNeedingBackup(sessions, txn) {
454
- var _this9 = this;
455
- return _asyncToGenerator(function* () {
456
- if (!txn) {
457
- txn = _this9.db.transaction("sessions_needing_backup", "readwrite");
458
- }
459
- var objectStore = txn.objectStore("sessions_needing_backup");
460
- yield Promise.all(sessions.map(session => {
461
- return new Promise((resolve, reject) => {
462
- var req = objectStore.put({
463
- senderCurve25519Key: session.senderKey,
464
- sessionId: session.sessionId
465
- });
466
- req.onsuccess = resolve;
467
- req.onerror = reject;
409
+ async markSessionsNeedingBackup(sessions, txn) {
410
+ if (!txn) {
411
+ txn = this.db.transaction("sessions_needing_backup", "readwrite");
412
+ }
413
+ const objectStore = txn.objectStore("sessions_needing_backup");
414
+ await Promise.all(sessions.map(session => {
415
+ return new Promise((resolve, reject) => {
416
+ const req = objectStore.put({
417
+ senderCurve25519Key: session.senderKey,
418
+ sessionId: session.sessionId
468
419
  });
469
- }));
470
- })();
420
+ req.onsuccess = resolve;
421
+ req.onerror = reject;
422
+ });
423
+ }));
471
424
  }
472
- doTxn(mode, stores, func) {
473
- var log = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : logger;
474
- var startTime;
475
- var description;
425
+ doTxn(mode, stores, func, log = logger) {
426
+ let startTime;
427
+ let description;
476
428
  if (PROFILE_TRANSACTIONS) {
477
- var txnId = this.nextTxnId++;
429
+ const txnId = this.nextTxnId++;
478
430
  startTime = Date.now();
479
- description = "".concat(mode, " crypto store transaction ").concat(txnId, " in ").concat(stores);
480
- log.debug("Starting ".concat(description));
431
+ description = `${mode} crypto store transaction ${txnId} in ${stores}`;
432
+ log.debug(`Starting ${description}`);
481
433
  }
482
- var txn = this.db.transaction(stores, mode);
483
- var promise = promiseifyTxn(txn);
484
- var result = func(txn);
434
+ const txn = this.db.transaction(stores, mode);
435
+ const promise = promiseifyTxn(txn);
436
+ const result = func(txn);
485
437
  if (PROFILE_TRANSACTIONS) {
486
438
  promise.then(() => {
487
- var elapsedTime = Date.now() - startTime;
488
- log.debug("Finished ".concat(description, ", took ").concat(elapsedTime, " ms"));
439
+ const elapsedTime = Date.now() - startTime;
440
+ log.debug(`Finished ${description}, took ${elapsedTime} ms`);
489
441
  }, () => {
490
- var elapsedTime = Date.now() - startTime;
491
- log.error("Failed ".concat(description, ", took ").concat(elapsedTime, " ms"));
442
+ const elapsedTime = Date.now() - startTime;
443
+ log.error(`Failed ${description}, took ${elapsedTime} ms`);
492
444
  });
493
445
  }
494
446
  return promise.then(() => {
@@ -496,12 +448,12 @@ export class Backend {
496
448
  });
497
449
  }
498
450
  }
499
- var DB_MIGRATIONS = [db => {
451
+ const DB_MIGRATIONS = [db => {
500
452
  createDatabase(db);
501
453
  }, db => {
502
454
  db.createObjectStore("account");
503
455
  }, db => {
504
- var sessionsStore = db.createObjectStore("sessions", {
456
+ const sessionsStore = db.createObjectStore("sessions", {
505
457
  keyPath: ["deviceKey", "sessionId"]
506
458
  });
507
459
  sessionsStore.createIndex("deviceKey", "deviceKey");
@@ -522,7 +474,7 @@ var DB_MIGRATIONS = [db => {
522
474
  keyPath: ["senderCurve25519Key", "sessionId"]
523
475
  });
524
476
  }, db => {
525
- var problemsStore = db.createObjectStore("session_problems", {
477
+ const problemsStore = db.createObjectStore("session_problems", {
526
478
  keyPath: ["deviceKey", "time"]
527
479
  });
528
480
  problemsStore.createIndex("deviceKey", "deviceKey");
@@ -540,15 +492,15 @@ var DB_MIGRATIONS = [db => {
540
492
  }
541
493
  // Expand as needed.
542
494
  ];
543
- export var VERSION = DB_MIGRATIONS.length;
495
+ export const VERSION = DB_MIGRATIONS.length;
544
496
  export function upgradeDatabase(db, oldVersion) {
545
- logger.log("Upgrading IndexedDBCryptoStore from version ".concat(oldVersion) + " to ".concat(VERSION));
497
+ logger.log(`Upgrading IndexedDBCryptoStore from version ${oldVersion}` + ` to ${VERSION}`);
546
498
  DB_MIGRATIONS.forEach((migration, index) => {
547
499
  if (oldVersion <= index) migration(db);
548
500
  });
549
501
  }
550
502
  function createDatabase(db) {
551
- var outgoingRoomKeyRequestsStore = db.createObjectStore("outgoingRoomKeyRequests", {
503
+ const outgoingRoomKeyRequestsStore = db.createObjectStore("outgoingRoomKeyRequests", {
552
504
  keyPath: "requestId"
553
505
  });
554
506
 
@@ -568,7 +520,7 @@ function abortWithException(txn, e) {
568
520
  txn._mx_abortexception = e;
569
521
  try {
570
522
  txn.abort();
571
- } catch (_unused) {
523
+ } catch {
572
524
  // sometimes we won't be able to abort the transaction
573
525
  // (ie. if it's aborted or completed)
574
526
  }