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,8 +1,5 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
3
  /*
7
4
  Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
8
5
 
@@ -25,9 +22,9 @@ function encodeSessionKey(senderCurve25519Key, sessionId) {
25
22
  return encodeURIComponent(senderCurve25519Key) + "/" + encodeURIComponent(sessionId);
26
23
  }
27
24
  function decodeSessionKey(key) {
28
- var keyParts = key.split("/");
29
- var senderKey = decodeURIComponent(keyParts[0]);
30
- var sessionId = decodeURIComponent(keyParts[1]);
25
+ const keyParts = key.split("/");
26
+ const senderKey = decodeURIComponent(keyParts[0]);
27
+ const sessionId = decodeURIComponent(keyParts[1]);
31
28
  return {
32
29
  senderKey,
33
30
  sessionId
@@ -58,12 +55,9 @@ export class MemoryCryptoStore {
58
55
  *
59
56
  * @internal
60
57
  */
61
- containsData() {
62
- var _this = this;
63
- return _asyncToGenerator(function* () {
64
- // If it contains anything, it should contain an account.
65
- return _this.account !== null;
66
- })();
58
+ async containsData() {
59
+ // If it contains anything, it should contain an account.
60
+ return this.account !== null;
67
61
  }
68
62
 
69
63
  /**
@@ -73,12 +67,9 @@ export class MemoryCryptoStore {
73
67
  *
74
68
  * @returns resolves to the store.
75
69
  */
76
- startup() {
77
- var _this2 = this;
78
- return _asyncToGenerator(function* () {
79
- // No startup work to do for the memory store.
80
- return _this2;
81
- })();
70
+ async startup() {
71
+ // No startup work to do for the memory store.
72
+ return this;
82
73
  }
83
74
 
84
75
  /**
@@ -97,11 +88,8 @@ export class MemoryCryptoStore {
97
88
  *
98
89
  * @internal
99
90
  */
100
- getMigrationState() {
101
- var _this3 = this;
102
- return _asyncToGenerator(function* () {
103
- return _this3.migrationState;
104
- })();
91
+ async getMigrationState() {
92
+ return this.migrationState;
105
93
  }
106
94
 
107
95
  /**
@@ -111,11 +99,8 @@ export class MemoryCryptoStore {
111
99
  *
112
100
  * @internal
113
101
  */
114
- setMigrationState(migrationState) {
115
- var _this4 = this;
116
- return _asyncToGenerator(function* () {
117
- _this4.migrationState = migrationState;
118
- })();
102
+ async setMigrationState(migrationState) {
103
+ this.migrationState = migrationState;
119
104
  }
120
105
 
121
106
  // Olm Account
@@ -130,7 +115,7 @@ export class MemoryCryptoStore {
130
115
  func(this.crossSigningKeys);
131
116
  }
132
117
  getSecretStorePrivateKey(txn, func, type) {
133
- var result = this.privateKeys[type];
118
+ const result = this.privateKeys[type];
134
119
  func(result || null);
135
120
  }
136
121
  storeSecretStorePrivateKey(txn, type, key) {
@@ -140,21 +125,21 @@ export class MemoryCryptoStore {
140
125
  // Olm Sessions
141
126
 
142
127
  countEndToEndSessions(txn, func) {
143
- var count = 0;
144
- for (var deviceSessions of Object.values(this.sessions)) {
128
+ let count = 0;
129
+ for (const deviceSessions of Object.values(this.sessions)) {
145
130
  count += Object.keys(deviceSessions).length;
146
131
  }
147
132
  func(count);
148
133
  }
149
134
  getEndToEndSession(deviceKey, sessionId, txn, func) {
150
- var deviceSessions = this.sessions[deviceKey] || {};
135
+ const deviceSessions = this.sessions[deviceKey] || {};
151
136
  func(deviceSessions[sessionId] || null);
152
137
  }
153
138
  getEndToEndSessions(deviceKey, txn, func) {
154
139
  func(this.sessions[deviceKey] || {});
155
140
  }
156
141
  storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn) {
157
- var deviceSessions = this.sessions[deviceKey];
142
+ let deviceSessions = this.sessions[deviceKey];
158
143
  if (deviceSessions === undefined) {
159
144
  deviceSessions = {};
160
145
  this.sessions[deviceKey] = deviceSessions;
@@ -169,26 +154,23 @@ export class MemoryCryptoStore {
169
154
  *
170
155
  * @internal
171
156
  */
172
- getEndToEndSessionsBatch() {
173
- var _this5 = this;
174
- return _asyncToGenerator(function* () {
175
- var result = [];
176
- for (var deviceSessions of Object.values(_this5.sessions)) {
177
- for (var session of Object.values(deviceSessions)) {
178
- result.push(session);
179
- if (result.length >= SESSION_BATCH_SIZE) {
180
- return result;
181
- }
157
+ async getEndToEndSessionsBatch() {
158
+ const result = [];
159
+ for (const deviceSessions of Object.values(this.sessions)) {
160
+ for (const session of Object.values(deviceSessions)) {
161
+ result.push(session);
162
+ if (result.length >= SESSION_BATCH_SIZE) {
163
+ return result;
182
164
  }
183
165
  }
184
- if (result.length === 0) {
185
- // No sessions left.
186
- return null;
187
- }
166
+ }
167
+ if (result.length === 0) {
168
+ // No sessions left.
169
+ return null;
170
+ }
188
171
 
189
- // There are fewer sessions than the batch size; return the final batch of sessions.
190
- return result;
191
- })();
172
+ // There are fewer sessions than the batch size; return the final batch of sessions.
173
+ return result;
192
174
  }
193
175
 
194
176
  /**
@@ -198,30 +180,28 @@ export class MemoryCryptoStore {
198
180
  *
199
181
  * @internal
200
182
  */
201
- deleteEndToEndSessionsBatch(sessions) {
202
- var _this6 = this;
203
- return _asyncToGenerator(function* () {
204
- for (var _ref2 of sessions) {
205
- var deviceKey = _ref2.deviceKey;
206
- var sessionId = _ref2.sessionId;
207
- var deviceSessions = _this6.sessions[deviceKey] || {};
208
- delete deviceSessions[sessionId];
209
- if (Object.keys(deviceSessions).length === 0) {
210
- // No more sessions for this device.
211
- delete _this6.sessions[deviceKey];
212
- }
183
+ async deleteEndToEndSessionsBatch(sessions) {
184
+ for (const {
185
+ deviceKey,
186
+ sessionId
187
+ } of sessions) {
188
+ const deviceSessions = this.sessions[deviceKey] || {};
189
+ delete deviceSessions[sessionId];
190
+ if (Object.keys(deviceSessions).length === 0) {
191
+ // No more sessions for this device.
192
+ delete this.sessions[deviceKey];
213
193
  }
214
- })();
194
+ }
215
195
  }
216
196
 
217
197
  // Inbound Group Sessions
218
198
 
219
199
  getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func) {
220
- var k = encodeSessionKey(senderCurve25519Key, sessionId);
200
+ const k = encodeSessionKey(senderCurve25519Key, sessionId);
221
201
  func(this.inboundGroupSessions[k] || null, this.inboundGroupSessionsWithheld[k] || null);
222
202
  }
223
203
  storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
224
- var k = encodeSessionKey(senderCurve25519Key, sessionId);
204
+ const k = encodeSessionKey(senderCurve25519Key, sessionId);
225
205
  this.inboundGroupSessions[k] = sessionData;
226
206
  }
227
207
 
@@ -232,11 +212,8 @@ export class MemoryCryptoStore {
232
212
  *
233
213
  * @internal
234
214
  */
235
- countEndToEndInboundGroupSessions() {
236
- var _this7 = this;
237
- return _asyncToGenerator(function* () {
238
- return Object.keys(_this7.inboundGroupSessions).length;
239
- })();
215
+ async countEndToEndInboundGroupSessions() {
216
+ return Object.keys(this.inboundGroupSessions).length;
240
217
  }
241
218
 
242
219
  /**
@@ -246,30 +223,24 @@ export class MemoryCryptoStore {
246
223
  *
247
224
  * @internal
248
225
  */
249
- getEndToEndInboundGroupSessionsBatch() {
250
- var _this8 = this;
251
- return _asyncToGenerator(function* () {
252
- var result = [];
253
- for (var _ref5 of Object.entries(_this8.inboundGroupSessions)) {
254
- var _ref4 = _slicedToArray(_ref5, 2);
255
- var key = _ref4[0];
256
- var session = _ref4[1];
257
- result.push(_objectSpread(_objectSpread({}, decodeSessionKey(key)), {}, {
258
- sessionData: session,
259
- needsBackup: key in _this8.sessionsNeedingBackup
260
- }));
261
- if (result.length >= SESSION_BATCH_SIZE) {
262
- return result;
263
- }
264
- }
265
- if (result.length === 0) {
266
- // No sessions left.
267
- return null;
226
+ async getEndToEndInboundGroupSessionsBatch() {
227
+ const result = [];
228
+ for (const [key, session] of Object.entries(this.inboundGroupSessions)) {
229
+ result.push(_objectSpread(_objectSpread({}, decodeSessionKey(key)), {}, {
230
+ sessionData: session,
231
+ needsBackup: key in this.sessionsNeedingBackup
232
+ }));
233
+ if (result.length >= SESSION_BATCH_SIZE) {
234
+ return result;
268
235
  }
236
+ }
237
+ if (result.length === 0) {
238
+ // No sessions left.
239
+ return null;
240
+ }
269
241
 
270
- // There are fewer sessions than the batch size; return the final batch of sessions.
271
- return result;
272
- })();
242
+ // There are fewer sessions than the batch size; return the final batch of sessions.
243
+ return result;
273
244
  }
274
245
 
275
246
  /**
@@ -279,16 +250,14 @@ export class MemoryCryptoStore {
279
250
  *
280
251
  * @internal
281
252
  */
282
- deleteEndToEndInboundGroupSessionsBatch(sessions) {
283
- var _this9 = this;
284
- return _asyncToGenerator(function* () {
285
- for (var _ref7 of sessions) {
286
- var senderKey = _ref7.senderKey;
287
- var sessionId = _ref7.sessionId;
288
- var k = encodeSessionKey(senderKey, sessionId);
289
- delete _this9.inboundGroupSessions[k];
290
- }
291
- })();
253
+ async deleteEndToEndInboundGroupSessionsBatch(sessions) {
254
+ for (const {
255
+ senderKey,
256
+ sessionId
257
+ } of sessions) {
258
+ const k = encodeSessionKey(senderKey, sessionId);
259
+ delete this.inboundGroupSessions[k];
260
+ }
292
261
  }
293
262
 
294
263
  // E2E rooms
@@ -297,8 +266,8 @@ export class MemoryCryptoStore {
297
266
  func(this.rooms);
298
267
  }
299
268
  markSessionsNeedingBackup(sessions) {
300
- for (var session of sessions) {
301
- var sessionKey = encodeSessionKey(session.senderKey, session.sessionId);
269
+ for (const session of sessions) {
270
+ const sessionKey = encodeSessionKey(session.senderKey, session.sessionId);
302
271
  this.sessionsNeedingBackup[sessionKey] = true;
303
272
  }
304
273
  return Promise.resolve();
@@ -1 +1 @@
1
- {"version":3,"file":"memory-crypto-store.js","names":["safeSet","MigrationState","SESSION_BATCH_SIZE","encodeSessionKey","senderCurve25519Key","sessionId","encodeURIComponent","decodeSessionKey","key","keyParts","split","senderKey","decodeURIComponent","MemoryCryptoStore","constructor","_defineProperty","NOT_STARTED","containsData","_this","_asyncToGenerator","account","startup","_this2","deleteAllData","Promise","resolve","getMigrationState","_this3","migrationState","setMigrationState","_this4","getAccount","txn","func","storeAccount","accountPickle","getCrossSigningKeys","crossSigningKeys","getSecretStorePrivateKey","type","result","privateKeys","storeSecretStorePrivateKey","countEndToEndSessions","count","deviceSessions","Object","values","sessions","keys","length","getEndToEndSession","deviceKey","getEndToEndSessions","storeEndToEndSession","sessionInfo","undefined","getEndToEndSessionsBatch","_this5","session","push","deleteEndToEndSessionsBatch","_this6","_ref2","getEndToEndInboundGroupSession","k","inboundGroupSessions","inboundGroupSessionsWithheld","storeEndToEndInboundGroupSession","sessionData","countEndToEndInboundGroupSessions","_this7","getEndToEndInboundGroupSessionsBatch","_this8","_ref5","entries","_ref4","_slicedToArray","_objectSpread","needsBackup","sessionsNeedingBackup","deleteEndToEndInboundGroupSessionsBatch","_this9","_ref7","getEndToEndRooms","rooms","markSessionsNeedingBackup","sessionKey","doTxn","mode","stores"],"sources":["../../../src/crypto/store/memory-crypto-store.ts"],"sourcesContent":["/*\nCopyright 2017 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { safeSet } from \"../../utils.ts\";\nimport {\n type CryptoStore,\n type ISession,\n type SessionExtended,\n type ISessionInfo,\n type IWithheld,\n MigrationState,\n type Mode,\n type SecretStorePrivateKeys,\n SESSION_BATCH_SIZE,\n type InboundGroupSessionData,\n type IRoomEncryption,\n} from \"./base.ts\";\nimport { type CrossSigningKeyInfo } from \"../../crypto-api/index.ts\";\n\nfunction encodeSessionKey(senderCurve25519Key: string, sessionId: string): string {\n return encodeURIComponent(senderCurve25519Key) + \"/\" + encodeURIComponent(sessionId);\n}\n\nfunction decodeSessionKey(key: string): { senderKey: string; sessionId: string } {\n const keyParts = key.split(\"/\");\n const senderKey = decodeURIComponent(keyParts[0]);\n const sessionId = decodeURIComponent(keyParts[1]);\n return { senderKey, sessionId };\n}\n\n/**\n * Internal module. in-memory storage for e2e.\n */\n\nexport class MemoryCryptoStore implements CryptoStore {\n private migrationState: MigrationState = MigrationState.NOT_STARTED;\n private account: string | null = null;\n private crossSigningKeys: Record<string, CrossSigningKeyInfo> | null = null;\n private privateKeys: Partial<SecretStorePrivateKeys> = {};\n\n private sessions: { [deviceKey: string]: { [sessionId: string]: ISessionInfo } } = {};\n private inboundGroupSessions: { [sessionKey: string]: InboundGroupSessionData } = {};\n private inboundGroupSessionsWithheld: Record<string, IWithheld> = {};\n // Opaque device data object\n private rooms: { [roomId: string]: IRoomEncryption } = {};\n private sessionsNeedingBackup: { [sessionKey: string]: boolean } = {};\n\n /**\n * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).\n *\n * Implementation of {@link CryptoStore.containsData}.\n *\n * @internal\n */\n public async containsData(): Promise<boolean> {\n // If it contains anything, it should contain an account.\n return this.account !== null;\n }\n\n /**\n * Ensure the database exists and is up-to-date.\n *\n * This must be called before the store can be used.\n *\n * @returns resolves to the store.\n */\n public async startup(): Promise<CryptoStore> {\n // No startup work to do for the memory store.\n return this;\n }\n\n /**\n * Delete all data from this store.\n *\n * @returns Promise which resolves when the store has been cleared.\n */\n public deleteAllData(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Get data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.getMigrationState}.\n *\n * @internal\n */\n public async getMigrationState(): Promise<MigrationState> {\n return this.migrationState;\n }\n\n /**\n * Set data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.setMigrationState}.\n *\n * @internal\n */\n public async setMigrationState(migrationState: MigrationState): Promise<void> {\n this.migrationState = migrationState;\n }\n\n // Olm Account\n\n public getAccount(txn: unknown, func: (accountPickle: string | null) => void): void {\n func(this.account);\n }\n\n public storeAccount(txn: unknown, accountPickle: string): void {\n this.account = accountPickle;\n }\n\n public getCrossSigningKeys(txn: unknown, func: (keys: Record<string, CrossSigningKeyInfo> | null) => void): void {\n func(this.crossSigningKeys);\n }\n\n public getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: unknown,\n func: (key: SecretStorePrivateKeys[K] | null) => void,\n type: K,\n ): void {\n const result = this.privateKeys[type] as SecretStorePrivateKeys[K] | undefined;\n func(result || null);\n }\n\n public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: unknown,\n type: K,\n key: SecretStorePrivateKeys[K],\n ): void {\n this.privateKeys[type] = key;\n }\n\n // Olm Sessions\n\n public countEndToEndSessions(txn: unknown, func: (count: number) => void): void {\n let count = 0;\n for (const deviceSessions of Object.values(this.sessions)) {\n count += Object.keys(deviceSessions).length;\n }\n func(count);\n }\n\n public getEndToEndSession(\n deviceKey: string,\n sessionId: string,\n txn: unknown,\n func: (session: ISessionInfo) => void,\n ): void {\n const deviceSessions = this.sessions[deviceKey] || {};\n func(deviceSessions[sessionId] || null);\n }\n\n public getEndToEndSessions(\n deviceKey: string,\n txn: unknown,\n func: (sessions: { [sessionId: string]: ISessionInfo }) => void,\n ): void {\n func(this.sessions[deviceKey] || {});\n }\n\n public storeEndToEndSession(deviceKey: string, sessionId: string, sessionInfo: ISessionInfo, txn: unknown): void {\n let deviceSessions = this.sessions[deviceKey];\n if (deviceSessions === undefined) {\n deviceSessions = {};\n this.sessions[deviceKey] = deviceSessions;\n }\n safeSet(deviceSessions, sessionId, sessionInfo);\n }\n\n /**\n * Fetch a batch of Olm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.\n *\n * @internal\n */\n public async getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]> {\n const result: ISessionInfo[] = [];\n for (const deviceSessions of Object.values(this.sessions)) {\n for (const session of Object.values(deviceSessions)) {\n result.push(session);\n if (result.length >= SESSION_BATCH_SIZE) {\n return result;\n }\n }\n }\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\n // There are fewer sessions than the batch size; return the final batch of sessions.\n return result;\n }\n\n /**\n * Delete a batch of Olm sessions from the database.\n *\n * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.\n *\n * @internal\n */\n public async deleteEndToEndSessionsBatch(sessions: { deviceKey: string; sessionId: string }[]): Promise<void> {\n for (const { deviceKey, sessionId } of sessions) {\n const deviceSessions = this.sessions[deviceKey] || {};\n delete deviceSessions[sessionId];\n if (Object.keys(deviceSessions).length === 0) {\n // No more sessions for this device.\n delete this.sessions[deviceKey];\n }\n }\n }\n\n // Inbound Group Sessions\n\n public getEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n txn: unknown,\n func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void,\n ): void {\n const k = encodeSessionKey(senderCurve25519Key, sessionId);\n func(this.inboundGroupSessions[k] || null, this.inboundGroupSessionsWithheld[k] || null);\n }\n\n public storeEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: unknown,\n ): void {\n const k = encodeSessionKey(senderCurve25519Key, sessionId);\n this.inboundGroupSessions[k] = sessionData;\n }\n\n /**\n * Count the number of Megolm sessions in the database.\n *\n * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.\n *\n * @internal\n */\n public async countEndToEndInboundGroupSessions(): Promise<number> {\n return Object.keys(this.inboundGroupSessions).length;\n }\n\n /**\n * Fetch a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.\n *\n * @internal\n */\n public async getEndToEndInboundGroupSessionsBatch(): Promise<null | SessionExtended[]> {\n const result: SessionExtended[] = [];\n for (const [key, session] of Object.entries(this.inboundGroupSessions)) {\n result.push({\n ...decodeSessionKey(key),\n sessionData: session,\n needsBackup: key in this.sessionsNeedingBackup,\n });\n if (result.length >= SESSION_BATCH_SIZE) {\n return result;\n }\n }\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\n // There are fewer sessions than the batch size; return the final batch of sessions.\n return result;\n }\n\n /**\n * Delete a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.\n *\n * @internal\n */\n public async deleteEndToEndInboundGroupSessionsBatch(\n sessions: { senderKey: string; sessionId: string }[],\n ): Promise<void> {\n for (const { senderKey, sessionId } of sessions) {\n const k = encodeSessionKey(senderKey, sessionId);\n delete this.inboundGroupSessions[k];\n }\n }\n\n // E2E rooms\n\n public getEndToEndRooms(txn: unknown, func: (rooms: Record<string, IRoomEncryption>) => void): void {\n func(this.rooms);\n }\n\n public markSessionsNeedingBackup(sessions: ISession[]): Promise<void> {\n for (const session of sessions) {\n const sessionKey = encodeSessionKey(session.senderKey, session.sessionId);\n this.sessionsNeedingBackup[sessionKey] = true;\n }\n return Promise.resolve();\n }\n\n // Session key backups\n\n public doTxn<T>(mode: Mode, stores: Iterable<string>, func: (txn?: unknown) => T): Promise<T> {\n return Promise.resolve(func(null));\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"memory-crypto-store.js","names":[],"sources":["../../../src/crypto/store/memory-crypto-store.ts"],"sourcesContent":["/*\nCopyright 2017 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { safeSet } from \"../../utils.ts\";\nimport {\n type CryptoStore,\n type ISession,\n type SessionExtended,\n type ISessionInfo,\n type IWithheld,\n MigrationState,\n type Mode,\n type SecretStorePrivateKeys,\n SESSION_BATCH_SIZE,\n type InboundGroupSessionData,\n type IRoomEncryption,\n} from \"./base.ts\";\nimport { type CrossSigningKeyInfo } from \"../../crypto-api/index.ts\";\n\nfunction encodeSessionKey(senderCurve25519Key: string, sessionId: string): string {\n return encodeURIComponent(senderCurve25519Key) + \"/\" + encodeURIComponent(sessionId);\n}\n\nfunction decodeSessionKey(key: string): { senderKey: string; sessionId: string } {\n const keyParts = key.split(\"/\");\n const senderKey = decodeURIComponent(keyParts[0]);\n const sessionId = decodeURIComponent(keyParts[1]);\n return { senderKey, sessionId };\n}\n\n/**\n * Internal module. in-memory storage for e2e.\n */\n\nexport class MemoryCryptoStore implements CryptoStore {\n private migrationState: MigrationState = MigrationState.NOT_STARTED;\n private account: string | null = null;\n private crossSigningKeys: Record<string, CrossSigningKeyInfo> | null = null;\n private privateKeys: Partial<SecretStorePrivateKeys> = {};\n\n private sessions: { [deviceKey: string]: { [sessionId: string]: ISessionInfo } } = {};\n private inboundGroupSessions: { [sessionKey: string]: InboundGroupSessionData } = {};\n private inboundGroupSessionsWithheld: Record<string, IWithheld> = {};\n // Opaque device data object\n private rooms: { [roomId: string]: IRoomEncryption } = {};\n private sessionsNeedingBackup: { [sessionKey: string]: boolean } = {};\n\n /**\n * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).\n *\n * Implementation of {@link CryptoStore.containsData}.\n *\n * @internal\n */\n public async containsData(): Promise<boolean> {\n // If it contains anything, it should contain an account.\n return this.account !== null;\n }\n\n /**\n * Ensure the database exists and is up-to-date.\n *\n * This must be called before the store can be used.\n *\n * @returns resolves to the store.\n */\n public async startup(): Promise<CryptoStore> {\n // No startup work to do for the memory store.\n return this;\n }\n\n /**\n * Delete all data from this store.\n *\n * @returns Promise which resolves when the store has been cleared.\n */\n public deleteAllData(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Get data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.getMigrationState}.\n *\n * @internal\n */\n public async getMigrationState(): Promise<MigrationState> {\n return this.migrationState;\n }\n\n /**\n * Set data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.setMigrationState}.\n *\n * @internal\n */\n public async setMigrationState(migrationState: MigrationState): Promise<void> {\n this.migrationState = migrationState;\n }\n\n // Olm Account\n\n public getAccount(txn: unknown, func: (accountPickle: string | null) => void): void {\n func(this.account);\n }\n\n public storeAccount(txn: unknown, accountPickle: string): void {\n this.account = accountPickle;\n }\n\n public getCrossSigningKeys(txn: unknown, func: (keys: Record<string, CrossSigningKeyInfo> | null) => void): void {\n func(this.crossSigningKeys);\n }\n\n public getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: unknown,\n func: (key: SecretStorePrivateKeys[K] | null) => void,\n type: K,\n ): void {\n const result = this.privateKeys[type] as SecretStorePrivateKeys[K] | undefined;\n func(result || null);\n }\n\n public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: unknown,\n type: K,\n key: SecretStorePrivateKeys[K],\n ): void {\n this.privateKeys[type] = key;\n }\n\n // Olm Sessions\n\n public countEndToEndSessions(txn: unknown, func: (count: number) => void): void {\n let count = 0;\n for (const deviceSessions of Object.values(this.sessions)) {\n count += Object.keys(deviceSessions).length;\n }\n func(count);\n }\n\n public getEndToEndSession(\n deviceKey: string,\n sessionId: string,\n txn: unknown,\n func: (session: ISessionInfo) => void,\n ): void {\n const deviceSessions = this.sessions[deviceKey] || {};\n func(deviceSessions[sessionId] || null);\n }\n\n public getEndToEndSessions(\n deviceKey: string,\n txn: unknown,\n func: (sessions: { [sessionId: string]: ISessionInfo }) => void,\n ): void {\n func(this.sessions[deviceKey] || {});\n }\n\n public storeEndToEndSession(deviceKey: string, sessionId: string, sessionInfo: ISessionInfo, txn: unknown): void {\n let deviceSessions = this.sessions[deviceKey];\n if (deviceSessions === undefined) {\n deviceSessions = {};\n this.sessions[deviceKey] = deviceSessions;\n }\n safeSet(deviceSessions, sessionId, sessionInfo);\n }\n\n /**\n * Fetch a batch of Olm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.\n *\n * @internal\n */\n public async getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]> {\n const result: ISessionInfo[] = [];\n for (const deviceSessions of Object.values(this.sessions)) {\n for (const session of Object.values(deviceSessions)) {\n result.push(session);\n if (result.length >= SESSION_BATCH_SIZE) {\n return result;\n }\n }\n }\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\n // There are fewer sessions than the batch size; return the final batch of sessions.\n return result;\n }\n\n /**\n * Delete a batch of Olm sessions from the database.\n *\n * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.\n *\n * @internal\n */\n public async deleteEndToEndSessionsBatch(sessions: { deviceKey: string; sessionId: string }[]): Promise<void> {\n for (const { deviceKey, sessionId } of sessions) {\n const deviceSessions = this.sessions[deviceKey] || {};\n delete deviceSessions[sessionId];\n if (Object.keys(deviceSessions).length === 0) {\n // No more sessions for this device.\n delete this.sessions[deviceKey];\n }\n }\n }\n\n // Inbound Group Sessions\n\n public getEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n txn: unknown,\n func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void,\n ): void {\n const k = encodeSessionKey(senderCurve25519Key, sessionId);\n func(this.inboundGroupSessions[k] || null, this.inboundGroupSessionsWithheld[k] || null);\n }\n\n public storeEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: unknown,\n ): void {\n const k = encodeSessionKey(senderCurve25519Key, sessionId);\n this.inboundGroupSessions[k] = sessionData;\n }\n\n /**\n * Count the number of Megolm sessions in the database.\n *\n * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.\n *\n * @internal\n */\n public async countEndToEndInboundGroupSessions(): Promise<number> {\n return Object.keys(this.inboundGroupSessions).length;\n }\n\n /**\n * Fetch a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.\n *\n * @internal\n */\n public async getEndToEndInboundGroupSessionsBatch(): Promise<null | SessionExtended[]> {\n const result: SessionExtended[] = [];\n for (const [key, session] of Object.entries(this.inboundGroupSessions)) {\n result.push({\n ...decodeSessionKey(key),\n sessionData: session,\n needsBackup: key in this.sessionsNeedingBackup,\n });\n if (result.length >= SESSION_BATCH_SIZE) {\n return result;\n }\n }\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\n // There are fewer sessions than the batch size; return the final batch of sessions.\n return result;\n }\n\n /**\n * Delete a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.\n *\n * @internal\n */\n public async deleteEndToEndInboundGroupSessionsBatch(\n sessions: { senderKey: string; sessionId: string }[],\n ): Promise<void> {\n for (const { senderKey, sessionId } of sessions) {\n const k = encodeSessionKey(senderKey, sessionId);\n delete this.inboundGroupSessions[k];\n }\n }\n\n // E2E rooms\n\n public getEndToEndRooms(txn: unknown, func: (rooms: Record<string, IRoomEncryption>) => void): void {\n func(this.rooms);\n }\n\n public markSessionsNeedingBackup(sessions: ISession[]): Promise<void> {\n for (const session of sessions) {\n const sessionKey = encodeSessionKey(session.senderKey, session.sessionId);\n this.sessionsNeedingBackup[sessionKey] = true;\n }\n return Promise.resolve();\n }\n\n // Session key backups\n\n public doTxn<T>(mode: Mode, stores: Iterable<string>, func: (txn?: unknown) => T): Promise<T> {\n return Promise.resolve(func(null));\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@
17
17
  /**
18
18
  * Cryptography-related events emitted by the {@link matrix.MatrixClient}.
19
19
  */
20
- export var CryptoEvent = /*#__PURE__*/function (CryptoEvent) {
20
+ export let CryptoEvent = /*#__PURE__*/function (CryptoEvent) {
21
21
  /**
22
22
  * Fires when the trust status of a user changes.
23
23
  * The payload is a pair (userId, userTrustLevel). The trust level is one of the values from UserVerificationStatus.
@@ -1 +1 @@
1
- {"version":3,"file":"CryptoEvent.js","names":["CryptoEvent"],"sources":["../../src/crypto-api/CryptoEvent.ts"],"sourcesContent":["/*\n * Copyright 2024 The Matrix.org Foundation C.I.C.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Cryptography-related events emitted by the {@link matrix.MatrixClient}.\n */\nexport enum CryptoEvent {\n /**\n * Fires when the trust status of a user changes.\n * The payload is a pair (userId, userTrustLevel). The trust level is one of the values from UserVerificationStatus.\n */\n UserTrustStatusChanged = \"userTrustStatusChanged\",\n\n /**\n * Fires when the key backup status changes.\n * The payload is a boolean indicating whether the key backup is enabled.\n */\n KeyBackupStatus = \"crypto.keyBackupStatus\",\n\n /**\n * Fires when we failed to back up the keys\n * The payload is the error code of the error that occurred.\n */\n KeyBackupFailed = \"crypto.keyBackupFailed\",\n\n /**\n * Fires when the number of sessions that can be backed up changes.\n * The payload is the remaining number of sessions that can be backed up.\n */\n KeyBackupSessionsRemaining = \"crypto.keyBackupSessionsRemaining\",\n\n /**\n * Fires when a new valid backup decryption key is in cache.\n * This will happen when a secret is received from another session, from secret storage,\n * or when a new backup is created from this session.\n *\n * The payload is the version of the backup for which we have the key for.\n *\n * This event is only fired by the rust crypto backend.\n */\n KeyBackupDecryptionKeyCached = \"crypto.keyBackupDecryptionKeyCached\",\n\n /**\n * Fires when a key verification request is received.\n * The payload is a VerificationRequest object representing the request.\n */\n VerificationRequestReceived = \"crypto.verificationRequestReceived\",\n\n /** @deprecated Use {@link DevicesUpdated} instead when using rust crypto */\n WillUpdateDevices = \"crypto.willUpdateDevices\",\n\n /**\n * Fires whenever the stored devices for a user have been updated\n * The payload is a pair (userIds, initialFetch).\n */\n DevicesUpdated = \"crypto.devicesUpdated\",\n\n /**\n * Fires when the user's cross-signing keys have changed or cross-signing\n * has been enabled/disabled. The client can use getStoredCrossSigningForUser\n * with the user ID of the logged in user to check if cross-signing is\n * enabled on the account. If enabled, it can test whether the current key\n * is trusted using with checkUserTrust with the user ID of the logged\n * in user. The checkOwnCrossSigningTrust function may be used to reconcile\n * the trust in the account key.\n *\n * The cross-signing API is currently UNSTABLE and may change without notice.\n * @experimental\n */\n KeysChanged = \"crossSigning.keysChanged\",\n\n /**\n * Fires when data is being migrated from legacy crypto to rust crypto.\n *\n * The payload is a pair `(progress, total)`, where `progress` is the number of steps completed so far, and\n * `total` is the total number of steps. When migration is complete, a final instance of the event is emitted, with\n * `progress === total === -1`.\n */\n LegacyCryptoStoreMigrationProgress = \"crypto.legacyCryptoStoreMigrationProgress\",\n\n /**\n * Fires when a new dehydrated device is created locally.\n *\n * After the client calls {@link CryptoApi.startDehydration}, this event\n * will be fired every time a new dehydrated device is created. It may fire\n * before `startDehydration` returns.\n */\n DehydratedDeviceCreated = \"dehydration.DehydratedDeviceCreated\",\n\n /**\n * Fires when a new dehydrated device is successfully uploaded to the server.\n *\n * This should fire shortly after {@link DehydratedDeviceCreated} fires. If\n * upload is unsuccessful, this will be reported either by an error thrown\n * by {@link CryptoApi.startDehydration} (for errors that happen before\n * `startDehydration` returns), or by firing {@link DehydratedDeviceRotationError}\n * (for errors that happen during regular rotation of the dehydrated device)\n */\n DehydratedDeviceUploaded = \"dehydration.DehydratedDeviceUploaded\",\n\n /**\n * Fires when rehydration has started.\n *\n * After the client calls {@link CryptoApi.startDehydration}, this event will\n * fire if a dehydrated device is found and we attempt to rehydrate it.\n */\n RehydrationStarted = \"dehydration.RehydrationStarted\",\n\n /**\n * Fires during rehydration, to inform the application of rehydration progress.\n *\n * The payload is a pair `[roomKeyCount: number, toDeviceCount: number]`,\n * where `roomKeyCount` is the number of room keys that have been received\n * so far, and `toDeviceCount` is the number of to-device messages received\n * so far (including the messages containing room keys).\n */\n RehydrationProgress = \"dehydration.RehydrationProgress\",\n\n /** Fires when rehydration has completed successfully. */\n RehydrationCompleted = \"dehydration.RehydrationCompleted\",\n\n /** Fires when there was an error in rehydration.\n *\n * The payload is an error message as a string.\n */\n RehydrationError = \"dehydration.RehydrationError\",\n\n /**\n * Fires when a dehydrated device key has been cached in the local database.\n */\n DehydrationKeyCached = \"dehydration.DehydrationKeyCached\",\n\n /**\n * Fires when an error occurs during periodic rotation of the dehydrated device.\n *\n * The payload is an error message as a string.\n */\n DehydratedDeviceRotationError = \"dehydration.DehydratedDeviceRotationError\",\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAYA,WAAW,0BAAXA,WAAW;EACnB;AACJ;AACA;AACA;EAJYA,WAAW;EAOnB;AACJ;AACA;AACA;EAVYA,WAAW;EAanB;AACJ;AACA;AACA;EAhBYA,WAAW;EAmBnB;AACJ;AACA;AACA;EAtBYA,WAAW;EAyBnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAjCYA,WAAW;EAoCnB;AACJ;AACA;AACA;EAvCYA,WAAW;EA0CnB;EA1CQA,WAAW;EA6CnB;AACJ;AACA;AACA;EAhDYA,WAAW;EAmDnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA9DYA,WAAW;EAiEnB;AACJ;AACA;AACA;AACA;AACA;AACA;EAvEYA,WAAW;EA0EnB;AACJ;AACA;AACA;AACA;AACA;AACA;EAhFYA,WAAW;EAmFnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA3FYA,WAAW;EA8FnB;AACJ;AACA;AACA;AACA;AACA;EAnGYA,WAAW;EAsGnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EA7GYA,WAAW;EAgHnB;EAhHQA,WAAW;EAmHnB;AACJ;AACA;AACA;EAtHYA,WAAW;EAyHnB;AACJ;AACA;EA3HYA,WAAW;EA8HnB;AACJ;AACA;AACA;AACA;EAlIYA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"CryptoEvent.js","names":[],"sources":["../../src/crypto-api/CryptoEvent.ts"],"sourcesContent":["/*\n * Copyright 2024 The Matrix.org Foundation C.I.C.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Cryptography-related events emitted by the {@link matrix.MatrixClient}.\n */\nexport enum CryptoEvent {\n /**\n * Fires when the trust status of a user changes.\n * The payload is a pair (userId, userTrustLevel). The trust level is one of the values from UserVerificationStatus.\n */\n UserTrustStatusChanged = \"userTrustStatusChanged\",\n\n /**\n * Fires when the key backup status changes.\n * The payload is a boolean indicating whether the key backup is enabled.\n */\n KeyBackupStatus = \"crypto.keyBackupStatus\",\n\n /**\n * Fires when we failed to back up the keys\n * The payload is the error code of the error that occurred.\n */\n KeyBackupFailed = \"crypto.keyBackupFailed\",\n\n /**\n * Fires when the number of sessions that can be backed up changes.\n * The payload is the remaining number of sessions that can be backed up.\n */\n KeyBackupSessionsRemaining = \"crypto.keyBackupSessionsRemaining\",\n\n /**\n * Fires when a new valid backup decryption key is in cache.\n * This will happen when a secret is received from another session, from secret storage,\n * or when a new backup is created from this session.\n *\n * The payload is the version of the backup for which we have the key for.\n *\n * This event is only fired by the rust crypto backend.\n */\n KeyBackupDecryptionKeyCached = \"crypto.keyBackupDecryptionKeyCached\",\n\n /**\n * Fires when a key verification request is received.\n * The payload is a VerificationRequest object representing the request.\n */\n VerificationRequestReceived = \"crypto.verificationRequestReceived\",\n\n /** @deprecated Use {@link DevicesUpdated} instead when using rust crypto */\n WillUpdateDevices = \"crypto.willUpdateDevices\",\n\n /**\n * Fires whenever the stored devices for a user have been updated\n * The payload is a pair (userIds, initialFetch).\n */\n DevicesUpdated = \"crypto.devicesUpdated\",\n\n /**\n * Fires when the user's cross-signing keys have changed or cross-signing\n * has been enabled/disabled. The client can use getStoredCrossSigningForUser\n * with the user ID of the logged in user to check if cross-signing is\n * enabled on the account. If enabled, it can test whether the current key\n * is trusted using with checkUserTrust with the user ID of the logged\n * in user. The checkOwnCrossSigningTrust function may be used to reconcile\n * the trust in the account key.\n *\n * The cross-signing API is currently UNSTABLE and may change without notice.\n * @experimental\n */\n KeysChanged = \"crossSigning.keysChanged\",\n\n /**\n * Fires when data is being migrated from legacy crypto to rust crypto.\n *\n * The payload is a pair `(progress, total)`, where `progress` is the number of steps completed so far, and\n * `total` is the total number of steps. When migration is complete, a final instance of the event is emitted, with\n * `progress === total === -1`.\n */\n LegacyCryptoStoreMigrationProgress = \"crypto.legacyCryptoStoreMigrationProgress\",\n\n /**\n * Fires when a new dehydrated device is created locally.\n *\n * After the client calls {@link CryptoApi.startDehydration}, this event\n * will be fired every time a new dehydrated device is created. It may fire\n * before `startDehydration` returns.\n */\n DehydratedDeviceCreated = \"dehydration.DehydratedDeviceCreated\",\n\n /**\n * Fires when a new dehydrated device is successfully uploaded to the server.\n *\n * This should fire shortly after {@link DehydratedDeviceCreated} fires. If\n * upload is unsuccessful, this will be reported either by an error thrown\n * by {@link CryptoApi.startDehydration} (for errors that happen before\n * `startDehydration` returns), or by firing {@link DehydratedDeviceRotationError}\n * (for errors that happen during regular rotation of the dehydrated device)\n */\n DehydratedDeviceUploaded = \"dehydration.DehydratedDeviceUploaded\",\n\n /**\n * Fires when rehydration has started.\n *\n * After the client calls {@link CryptoApi.startDehydration}, this event will\n * fire if a dehydrated device is found and we attempt to rehydrate it.\n */\n RehydrationStarted = \"dehydration.RehydrationStarted\",\n\n /**\n * Fires during rehydration, to inform the application of rehydration progress.\n *\n * The payload is a pair `[roomKeyCount: number, toDeviceCount: number]`,\n * where `roomKeyCount` is the number of room keys that have been received\n * so far, and `toDeviceCount` is the number of to-device messages received\n * so far (including the messages containing room keys).\n */\n RehydrationProgress = \"dehydration.RehydrationProgress\",\n\n /** Fires when rehydration has completed successfully. */\n RehydrationCompleted = \"dehydration.RehydrationCompleted\",\n\n /** Fires when there was an error in rehydration.\n *\n * The payload is an error message as a string.\n */\n RehydrationError = \"dehydration.RehydrationError\",\n\n /**\n * Fires when a dehydrated device key has been cached in the local database.\n */\n DehydrationKeyCached = \"dehydration.DehydrationKeyCached\",\n\n /**\n * Fires when an error occurs during periodic rotation of the dehydrated device.\n *\n * The payload is an error message as a string.\n */\n DehydratedDeviceRotationError = \"dehydration.DehydratedDeviceRotationError\",\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAY,WAAW,0BAAX,WAAW;EACnB;AACJ;AACA;AACA;EAJY,WAAW;EAOnB;AACJ;AACA;AACA;EAVY,WAAW;EAanB;AACJ;AACA;AACA;EAhBY,WAAW;EAmBnB;AACJ;AACA;AACA;EAtBY,WAAW;EAyBnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAjCY,WAAW;EAoCnB;AACJ;AACA;AACA;EAvCY,WAAW;EA0CnB;EA1CQ,WAAW;EA6CnB;AACJ;AACA;AACA;EAhDY,WAAW;EAmDnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA9DY,WAAW;EAiEnB;AACJ;AACA;AACA;AACA;AACA;AACA;EAvEY,WAAW;EA0EnB;AACJ;AACA;AACA;AACA;AACA;AACA;EAhFY,WAAW;EAmFnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EA3FY,WAAW;EA8FnB;AACJ;AACA;AACA;AACA;AACA;EAnGY,WAAW;EAsGnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EA7GY,WAAW;EAgHnB;EAhHQ,WAAW;EAmHnB;AACJ;AACA;AACA;EAtHY,WAAW;EAyHnB;AACJ;AACA;EA3HY,WAAW;EA8HnB;AACJ;AACA;AACA;AACA;EAlIY,WAAW;EAAA,OAAX,WAAW;AAAA","ignoreList":[]}
@@ -1 +1,3 @@
1
- export {};
1
+ export {};
2
+ export {};
3
+ //# sourceMappingURL=CryptoEventHandlerMap.js.map
@@ -49,8 +49,6 @@ export interface StartDehydrationOpts {
49
49
  }
50
50
  /**
51
51
  * Public interface to the cryptography parts of the js-sdk
52
- *
53
- * @remarks Currently, this is a work-in-progress. In time, more methods will be added here.
54
52
  */
55
53
  export interface CryptoApi {
56
54
  /**
@@ -224,9 +222,16 @@ export interface CryptoApi {
224
222
  *
225
223
  * This is useful if the user was previously verified but is not anymore
226
224
  * ({@link UserVerificationStatus.wasCrossSigningVerified}) and it is not possible to verify him again now.
227
- *
228
225
  */
229
226
  withdrawVerificationRequirement(userId: string): Promise<void>;
227
+ /**
228
+ * Get the given user's public cross-signing keys, if they have published any, and we have fetched them to
229
+ * our store.
230
+ *
231
+ * Normally this is only useful to applications as debug info, since the SDK handles keeping track of a
232
+ * user's identity, and whether their devices are verified.
233
+ */
234
+ getUserCrossSigningKeys(userId: string): Promise<Partial<CrossSigningKeys> | null>;
230
235
  /**
231
236
  * Get the verification status of a given device.
232
237
  *
@@ -1044,10 +1049,14 @@ export interface CreateSecretStorageOpts {
1044
1049
  }
1045
1050
  /** Types of cross-signing key */
1046
1051
  export declare enum CrossSigningKey {
1047
- Master = "master",
1048
- SelfSigning = "self_signing",
1049
- UserSigning = "user_signing"
1052
+ Master = "master_key",
1053
+ SelfSigning = "self_signing_key",
1054
+ UserSigning = "user_signing_key"
1050
1055
  }
1056
+ /** All of a user's cross-signing keys.
1057
+ * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3keysdevice_signingupload
1058
+ */
1059
+ export type CrossSigningKeys = Record<CrossSigningKey, CrossSigningKeyInfo>;
1051
1060
  /**
1052
1061
  * Information on one of the cross-signing keys.
1053
1062
  * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3keysdevice_signingupload
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto-api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto-api/index.ts"],"names":[],"mappings":"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"}