@unwanted/matrix-sdk-mini 34.12.0 → 34.13.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 (698) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/event.d.ts +0 -19
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js.map +1 -1
  5. package/lib/@types/global.d.js +0 -2
  6. package/lib/@types/global.d.js.map +1 -1
  7. package/lib/autodiscovery.d.ts +1 -1
  8. package/lib/autodiscovery.d.ts.map +1 -1
  9. package/lib/autodiscovery.js.map +1 -1
  10. package/lib/base64.d.ts +3 -6
  11. package/lib/base64.d.ts.map +1 -1
  12. package/lib/base64.js +43 -36
  13. package/lib/base64.js.map +1 -1
  14. package/lib/browser-index.d.ts.map +1 -1
  15. package/lib/browser-index.js +0 -11
  16. package/lib/browser-index.js.map +1 -1
  17. package/lib/client.d.ts +2 -1298
  18. package/lib/client.d.ts.map +1 -1
  19. package/lib/client.js +348 -2967
  20. package/lib/client.js.map +1 -1
  21. package/lib/digest.d.ts +2 -2
  22. package/lib/digest.d.ts.map +1 -1
  23. package/lib/digest.js +2 -2
  24. package/lib/digest.js.map +1 -1
  25. package/lib/embedded.d.ts +0 -22
  26. package/lib/embedded.d.ts.map +1 -1
  27. package/lib/embedded.js +58 -168
  28. package/lib/embedded.js.map +1 -1
  29. package/lib/event-mapper.d.ts.map +1 -1
  30. package/lib/event-mapper.js +0 -4
  31. package/lib/event-mapper.js.map +1 -1
  32. package/lib/matrix.d.ts +0 -25
  33. package/lib/matrix.d.ts.map +1 -1
  34. package/lib/matrix.js +1 -30
  35. package/lib/matrix.js.map +1 -1
  36. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  37. package/lib/models/MSC3089Branch.js +0 -3
  38. package/lib/models/MSC3089Branch.js.map +1 -1
  39. package/lib/models/event-timeline-set.d.ts +6 -10
  40. package/lib/models/event-timeline-set.d.ts.map +1 -1
  41. package/lib/models/event-timeline-set.js +28 -36
  42. package/lib/models/event-timeline-set.js.map +1 -1
  43. package/lib/models/event-timeline.d.ts +7 -2
  44. package/lib/models/event-timeline.d.ts.map +1 -1
  45. package/lib/models/event-timeline.js +8 -9
  46. package/lib/models/event-timeline.js.map +1 -1
  47. package/lib/models/event.d.ts +1 -95
  48. package/lib/models/event.d.ts.map +1 -1
  49. package/lib/models/event.js +11 -281
  50. package/lib/models/event.js.map +1 -1
  51. package/lib/models/poll.d.ts.map +1 -1
  52. package/lib/models/poll.js +1 -5
  53. package/lib/models/poll.js.map +1 -1
  54. package/lib/models/relations-container.d.ts.map +1 -1
  55. package/lib/models/relations-container.js +1 -7
  56. package/lib/models/relations-container.js.map +1 -1
  57. package/lib/models/relations.d.ts +0 -1
  58. package/lib/models/relations.d.ts.map +1 -1
  59. package/lib/models/relations.js +0 -8
  60. package/lib/models/relations.js.map +1 -1
  61. package/lib/models/room-state.d.ts +2 -13
  62. package/lib/models/room-state.d.ts.map +1 -1
  63. package/lib/models/room-state.js +12 -56
  64. package/lib/models/room-state.js.map +1 -1
  65. package/lib/models/room.d.ts +2 -20
  66. package/lib/models/room.d.ts.map +1 -1
  67. package/lib/models/room.js +121 -162
  68. package/lib/models/room.js.map +1 -1
  69. package/lib/models/thread.d.ts.map +1 -1
  70. package/lib/models/thread.js +5 -4
  71. package/lib/models/thread.js.map +1 -1
  72. package/lib/sliding-sync-sdk.d.ts +3 -4
  73. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  74. package/lib/sliding-sync-sdk.js +55 -102
  75. package/lib/sliding-sync-sdk.js.map +1 -1
  76. package/lib/sliding-sync.js +9 -6
  77. package/lib/sliding-sync.js.map +1 -1
  78. package/lib/store/indexeddb.d.ts +1 -1
  79. package/lib/store/indexeddb.d.ts.map +1 -1
  80. package/lib/store/indexeddb.js.map +1 -1
  81. package/lib/sync-accumulator.d.ts +6 -4
  82. package/lib/sync-accumulator.d.ts.map +1 -1
  83. package/lib/sync-accumulator.js +23 -12
  84. package/lib/sync-accumulator.js.map +1 -1
  85. package/lib/sync.d.ts +10 -13
  86. package/lib/sync.d.ts.map +1 -1
  87. package/lib/sync.js +94 -115
  88. package/lib/sync.js.map +1 -1
  89. package/lib/testing.d.ts +0 -48
  90. package/lib/testing.d.ts.map +1 -1
  91. package/lib/testing.js +0 -105
  92. package/lib/testing.js.map +1 -1
  93. package/lib/types.d.ts +0 -1
  94. package/lib/types.d.ts.map +1 -1
  95. package/lib/types.js.map +1 -1
  96. package/package.json +10 -11
  97. package/src/@types/event.ts +2 -36
  98. package/src/@types/global.d.ts +21 -4
  99. package/src/autodiscovery.ts +1 -1
  100. package/src/base64.ts +38 -40
  101. package/src/browser-index.ts +0 -11
  102. package/src/client.ts +68 -3087
  103. package/src/digest.ts +3 -3
  104. package/src/embedded.ts +38 -134
  105. package/src/event-mapper.ts +0 -4
  106. package/src/matrix.ts +0 -41
  107. package/src/models/MSC3089Branch.ts +0 -3
  108. package/src/models/event-timeline-set.ts +17 -38
  109. package/src/models/event-timeline.ts +10 -5
  110. package/src/models/event.ts +8 -295
  111. package/src/models/poll.ts +0 -6
  112. package/src/models/relations-container.ts +1 -8
  113. package/src/models/relations.ts +0 -8
  114. package/src/models/room-state.ts +4 -37
  115. package/src/models/room.ts +18 -68
  116. package/src/models/thread.ts +4 -3
  117. package/src/sliding-sync-sdk.ts +10 -83
  118. package/src/sliding-sync.ts +6 -6
  119. package/src/store/indexeddb.ts +1 -1
  120. package/src/sync-accumulator.ts +33 -16
  121. package/src/sync.ts +112 -143
  122. package/src/testing.ts +0 -108
  123. package/src/types.ts +0 -1
  124. package/CHANGELOG.md +0 -5910
  125. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
  126. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
  127. package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
  128. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
  129. package/lib/@types/crypto.d.ts +0 -47
  130. package/lib/@types/crypto.d.ts.map +0 -1
  131. package/lib/@types/crypto.js +0 -1
  132. package/lib/@types/crypto.js.map +0 -1
  133. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  134. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  135. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  136. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  137. package/lib/common-crypto/CryptoBackend.js +0 -73
  138. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  139. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  140. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  141. package/lib/common-crypto/key-passphrase.js +0 -33
  142. package/lib/common-crypto/key-passphrase.js.map +0 -1
  143. package/lib/crypto/CrossSigning.d.ts +0 -184
  144. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  145. package/lib/crypto/CrossSigning.js +0 -718
  146. package/lib/crypto/CrossSigning.js.map +0 -1
  147. package/lib/crypto/DeviceList.d.ts +0 -216
  148. package/lib/crypto/DeviceList.d.ts.map +0 -1
  149. package/lib/crypto/DeviceList.js +0 -892
  150. package/lib/crypto/DeviceList.js.map +0 -1
  151. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  152. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  153. package/lib/crypto/EncryptionSetup.js +0 -356
  154. package/lib/crypto/EncryptionSetup.js.map +0 -1
  155. package/lib/crypto/OlmDevice.d.ts +0 -457
  156. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  157. package/lib/crypto/OlmDevice.js +0 -1241
  158. package/lib/crypto/OlmDevice.js.map +0 -1
  159. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  160. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  161. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  162. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  163. package/lib/crypto/RoomList.d.ts +0 -26
  164. package/lib/crypto/RoomList.d.ts.map +0 -1
  165. package/lib/crypto/RoomList.js +0 -71
  166. package/lib/crypto/RoomList.js.map +0 -1
  167. package/lib/crypto/SecretSharing.d.ts +0 -24
  168. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  169. package/lib/crypto/SecretSharing.js +0 -194
  170. package/lib/crypto/SecretSharing.js.map +0 -1
  171. package/lib/crypto/SecretStorage.d.ts +0 -55
  172. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  173. package/lib/crypto/SecretStorage.js +0 -118
  174. package/lib/crypto/SecretStorage.js.map +0 -1
  175. package/lib/crypto/aes.d.ts +0 -6
  176. package/lib/crypto/aes.d.ts.map +0 -1
  177. package/lib/crypto/aes.js +0 -24
  178. package/lib/crypto/aes.js.map +0 -1
  179. package/lib/crypto/algorithms/base.d.ts +0 -156
  180. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  181. package/lib/crypto/algorithms/base.js +0 -187
  182. package/lib/crypto/algorithms/base.js.map +0 -1
  183. package/lib/crypto/algorithms/index.d.ts +0 -4
  184. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  185. package/lib/crypto/algorithms/index.js +0 -20
  186. package/lib/crypto/algorithms/index.js.map +0 -1
  187. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  188. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  189. package/lib/crypto/algorithms/megolm.js +0 -1822
  190. package/lib/crypto/algorithms/megolm.js.map +0 -1
  191. package/lib/crypto/algorithms/olm.d.ts +0 -5
  192. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  193. package/lib/crypto/algorithms/olm.js +0 -299
  194. package/lib/crypto/algorithms/olm.js.map +0 -1
  195. package/lib/crypto/api.d.ts +0 -32
  196. package/lib/crypto/api.d.ts.map +0 -1
  197. package/lib/crypto/api.js +0 -22
  198. package/lib/crypto/api.js.map +0 -1
  199. package/lib/crypto/backup.d.ts +0 -227
  200. package/lib/crypto/backup.d.ts.map +0 -1
  201. package/lib/crypto/backup.js +0 -824
  202. package/lib/crypto/backup.js.map +0 -1
  203. package/lib/crypto/crypto.d.ts +0 -3
  204. package/lib/crypto/crypto.d.ts.map +0 -1
  205. package/lib/crypto/crypto.js +0 -19
  206. package/lib/crypto/crypto.js.map +0 -1
  207. package/lib/crypto/dehydration.d.ts +0 -34
  208. package/lib/crypto/dehydration.d.ts.map +0 -1
  209. package/lib/crypto/dehydration.js +0 -252
  210. package/lib/crypto/dehydration.js.map +0 -1
  211. package/lib/crypto/device-converter.d.ts +0 -9
  212. package/lib/crypto/device-converter.d.ts.map +0 -1
  213. package/lib/crypto/device-converter.js +0 -42
  214. package/lib/crypto/device-converter.js.map +0 -1
  215. package/lib/crypto/deviceinfo.d.ts +0 -99
  216. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  217. package/lib/crypto/deviceinfo.js +0 -148
  218. package/lib/crypto/deviceinfo.js.map +0 -1
  219. package/lib/crypto/index.d.ts +0 -1210
  220. package/lib/crypto/index.d.ts.map +0 -1
  221. package/lib/crypto/index.js +0 -4101
  222. package/lib/crypto/index.js.map +0 -1
  223. package/lib/crypto/key_passphrase.d.ts +0 -14
  224. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  225. package/lib/crypto/key_passphrase.js +0 -44
  226. package/lib/crypto/key_passphrase.js.map +0 -1
  227. package/lib/crypto/keybackup.d.ts +0 -18
  228. package/lib/crypto/keybackup.d.ts.map +0 -1
  229. package/lib/crypto/keybackup.js +0 -1
  230. package/lib/crypto/keybackup.js.map +0 -1
  231. package/lib/crypto/olmlib.d.ts +0 -129
  232. package/lib/crypto/olmlib.d.ts.map +0 -1
  233. package/lib/crypto/olmlib.js +0 -492
  234. package/lib/crypto/olmlib.js.map +0 -1
  235. package/lib/crypto/recoverykey.d.ts +0 -2
  236. package/lib/crypto/recoverykey.d.ts.map +0 -1
  237. package/lib/crypto/recoverykey.js +0 -19
  238. package/lib/crypto/recoverykey.js.map +0 -1
  239. package/lib/crypto/store/base.d.ts +0 -252
  240. package/lib/crypto/store/base.d.ts.map +0 -1
  241. package/lib/crypto/store/base.js +0 -64
  242. package/lib/crypto/store/base.js.map +0 -1
  243. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  244. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  245. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  246. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  247. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  248. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  249. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  250. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  251. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  252. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  253. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  254. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  255. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  256. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  257. package/lib/crypto/store/memory-crypto-store.js +0 -622
  258. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  259. package/lib/crypto/verification/Base.d.ts +0 -105
  260. package/lib/crypto/verification/Base.d.ts.map +0 -1
  261. package/lib/crypto/verification/Base.js +0 -372
  262. package/lib/crypto/verification/Base.js.map +0 -1
  263. package/lib/crypto/verification/Error.d.ts +0 -35
  264. package/lib/crypto/verification/Error.d.ts.map +0 -1
  265. package/lib/crypto/verification/Error.js +0 -86
  266. package/lib/crypto/verification/Error.js.map +0 -1
  267. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  268. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  269. package/lib/crypto/verification/IllegalMethod.js +0 -43
  270. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  271. package/lib/crypto/verification/QRCode.d.ts +0 -51
  272. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  273. package/lib/crypto/verification/QRCode.js +0 -277
  274. package/lib/crypto/verification/QRCode.js.map +0 -1
  275. package/lib/crypto/verification/SAS.d.ts +0 -27
  276. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  277. package/lib/crypto/verification/SAS.js +0 -485
  278. package/lib/crypto/verification/SAS.js.map +0 -1
  279. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  280. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  281. package/lib/crypto/verification/SASDecimal.js +0 -34
  282. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  283. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  284. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  285. package/lib/crypto/verification/request/Channel.js +0 -1
  286. package/lib/crypto/verification/request/Channel.js.map +0 -1
  287. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  288. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  289. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  290. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  291. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  292. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  293. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  294. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  295. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  296. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  297. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  298. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  299. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  300. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  301. package/lib/crypto-api/CryptoEvent.js +0 -33
  302. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  303. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  304. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  305. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  306. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  307. package/lib/crypto-api/index.d.ts +0 -978
  308. package/lib/crypto-api/index.d.ts.map +0 -1
  309. package/lib/crypto-api/index.js +0 -304
  310. package/lib/crypto-api/index.js.map +0 -1
  311. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  312. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  313. package/lib/crypto-api/key-passphrase.js +0 -51
  314. package/lib/crypto-api/key-passphrase.js.map +0 -1
  315. package/lib/crypto-api/keybackup.d.ts +0 -88
  316. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  317. package/lib/crypto-api/keybackup.js +0 -1
  318. package/lib/crypto-api/keybackup.js.map +0 -1
  319. package/lib/crypto-api/recovery-key.d.ts +0 -11
  320. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  321. package/lib/crypto-api/recovery-key.js +0 -65
  322. package/lib/crypto-api/recovery-key.js.map +0 -1
  323. package/lib/crypto-api/verification.d.ts +0 -344
  324. package/lib/crypto-api/verification.d.ts.map +0 -1
  325. package/lib/crypto-api/verification.js +0 -91
  326. package/lib/crypto-api/verification.js.map +0 -1
  327. package/lib/matrixrtc/CallMembership.d.ts +0 -66
  328. package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
  329. package/lib/matrixrtc/CallMembership.js +0 -197
  330. package/lib/matrixrtc/CallMembership.js.map +0 -1
  331. package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
  332. package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
  333. package/lib/matrixrtc/LivekitFocus.js +0 -20
  334. package/lib/matrixrtc/LivekitFocus.js.map +0 -1
  335. package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
  336. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
  337. package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
  338. package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
  339. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
  340. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
  341. package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
  342. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
  343. package/lib/matrixrtc/focus.d.ts +0 -10
  344. package/lib/matrixrtc/focus.d.ts.map +0 -1
  345. package/lib/matrixrtc/focus.js +0 -1
  346. package/lib/matrixrtc/focus.js.map +0 -1
  347. package/lib/matrixrtc/index.d.ts +0 -7
  348. package/lib/matrixrtc/index.d.ts.map +0 -1
  349. package/lib/matrixrtc/index.js +0 -21
  350. package/lib/matrixrtc/index.js.map +0 -1
  351. package/lib/matrixrtc/types.d.ts +0 -19
  352. package/lib/matrixrtc/types.d.ts.map +0 -1
  353. package/lib/matrixrtc/types.js +0 -1
  354. package/lib/matrixrtc/types.js.map +0 -1
  355. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  356. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  357. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  358. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  359. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  360. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  361. package/lib/rendezvous/RendezvousChannel.js +0 -1
  362. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  363. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  364. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  365. package/lib/rendezvous/RendezvousCode.js +0 -1
  366. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  367. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  368. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  369. package/lib/rendezvous/RendezvousError.js +0 -23
  370. package/lib/rendezvous/RendezvousError.js.map +0 -1
  371. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  372. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  373. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  374. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  375. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  376. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  377. package/lib/rendezvous/RendezvousIntent.js +0 -22
  378. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  379. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  380. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  381. package/lib/rendezvous/RendezvousTransport.js +0 -1
  382. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  383. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  384. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  385. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  386. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  387. package/lib/rendezvous/channels/index.d.ts +0 -2
  388. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  389. package/lib/rendezvous/channels/index.js +0 -18
  390. package/lib/rendezvous/channels/index.js.map +0 -1
  391. package/lib/rendezvous/index.d.ts +0 -10
  392. package/lib/rendezvous/index.d.ts.map +0 -1
  393. package/lib/rendezvous/index.js +0 -23
  394. package/lib/rendezvous/index.js.map +0 -1
  395. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  396. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  397. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  398. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  399. package/lib/rendezvous/transports/index.d.ts +0 -2
  400. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  401. package/lib/rendezvous/transports/index.js +0 -18
  402. package/lib/rendezvous/transports/index.js.map +0 -1
  403. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  404. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  405. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  406. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  407. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  408. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  409. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  410. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  411. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  412. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  413. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  414. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  415. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  416. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  417. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  418. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  419. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  420. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  421. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  422. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  423. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  424. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  425. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  426. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  427. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  428. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  429. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  430. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  431. package/lib/rust-crypto/backup.d.ts +0 -254
  432. package/lib/rust-crypto/backup.d.ts.map +0 -1
  433. package/lib/rust-crypto/backup.js +0 -837
  434. package/lib/rust-crypto/backup.js.map +0 -1
  435. package/lib/rust-crypto/constants.d.ts +0 -3
  436. package/lib/rust-crypto/constants.d.ts.map +0 -1
  437. package/lib/rust-crypto/constants.js +0 -19
  438. package/lib/rust-crypto/constants.js.map +0 -1
  439. package/lib/rust-crypto/device-converter.d.ts +0 -28
  440. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  441. package/lib/rust-crypto/device-converter.js +0 -123
  442. package/lib/rust-crypto/device-converter.js.map +0 -1
  443. package/lib/rust-crypto/index.d.ts +0 -61
  444. package/lib/rust-crypto/index.d.ts.map +0 -1
  445. package/lib/rust-crypto/index.js +0 -152
  446. package/lib/rust-crypto/index.js.map +0 -1
  447. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  448. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  449. package/lib/rust-crypto/libolm_migration.js +0 -459
  450. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  451. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  452. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  453. package/lib/rust-crypto/rust-crypto.js +0 -2016
  454. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  455. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  456. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  457. package/lib/rust-crypto/secret-storage.js +0 -63
  458. package/lib/rust-crypto/secret-storage.js.map +0 -1
  459. package/lib/rust-crypto/verification.d.ts +0 -319
  460. package/lib/rust-crypto/verification.d.ts.map +0 -1
  461. package/lib/rust-crypto/verification.js +0 -816
  462. package/lib/rust-crypto/verification.js.map +0 -1
  463. package/lib/secret-storage.d.ts +0 -370
  464. package/lib/secret-storage.d.ts.map +0 -1
  465. package/lib/secret-storage.js +0 -466
  466. package/lib/secret-storage.js.map +0 -1
  467. package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
  468. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
  469. package/lib/utils/decryptAESSecretStorageItem.js +0 -50
  470. package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
  471. package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
  472. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
  473. package/lib/utils/encryptAESSecretStorageItem.js +0 -68
  474. package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
  475. package/lib/utils/internal/deriveKeys.d.ts +0 -10
  476. package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
  477. package/lib/utils/internal/deriveKeys.js +0 -60
  478. package/lib/utils/internal/deriveKeys.js.map +0 -1
  479. package/lib/webrtc/audioContext.d.ts +0 -15
  480. package/lib/webrtc/audioContext.d.ts.map +0 -1
  481. package/lib/webrtc/audioContext.js +0 -46
  482. package/lib/webrtc/audioContext.js.map +0 -1
  483. package/lib/webrtc/call.d.ts +0 -560
  484. package/lib/webrtc/call.d.ts.map +0 -1
  485. package/lib/webrtc/call.js +0 -2541
  486. package/lib/webrtc/call.js.map +0 -1
  487. package/lib/webrtc/callEventHandler.d.ts +0 -37
  488. package/lib/webrtc/callEventHandler.d.ts.map +0 -1
  489. package/lib/webrtc/callEventHandler.js +0 -344
  490. package/lib/webrtc/callEventHandler.js.map +0 -1
  491. package/lib/webrtc/callEventTypes.d.ts +0 -73
  492. package/lib/webrtc/callEventTypes.d.ts.map +0 -1
  493. package/lib/webrtc/callEventTypes.js +0 -13
  494. package/lib/webrtc/callEventTypes.js.map +0 -1
  495. package/lib/webrtc/callFeed.d.ts +0 -128
  496. package/lib/webrtc/callFeed.d.ts.map +0 -1
  497. package/lib/webrtc/callFeed.js +0 -289
  498. package/lib/webrtc/callFeed.js.map +0 -1
  499. package/lib/webrtc/groupCall.d.ts +0 -323
  500. package/lib/webrtc/groupCall.d.ts.map +0 -1
  501. package/lib/webrtc/groupCall.js +0 -1337
  502. package/lib/webrtc/groupCall.js.map +0 -1
  503. package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
  504. package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
  505. package/lib/webrtc/groupCallEventHandler.js +0 -178
  506. package/lib/webrtc/groupCallEventHandler.js.map +0 -1
  507. package/lib/webrtc/mediaHandler.d.ts +0 -89
  508. package/lib/webrtc/mediaHandler.d.ts.map +0 -1
  509. package/lib/webrtc/mediaHandler.js +0 -437
  510. package/lib/webrtc/mediaHandler.js.map +0 -1
  511. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
  512. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
  513. package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
  514. package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
  515. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
  516. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
  517. package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
  518. package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
  519. package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
  520. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
  521. package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
  522. package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
  523. package/lib/webrtc/stats/connectionStats.d.ts +0 -28
  524. package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
  525. package/lib/webrtc/stats/connectionStats.js +0 -26
  526. package/lib/webrtc/stats/connectionStats.js.map +0 -1
  527. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
  528. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
  529. package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
  530. package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
  531. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
  532. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
  533. package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
  534. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
  535. package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
  536. package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
  537. package/lib/webrtc/stats/groupCallStats.js +0 -78
  538. package/lib/webrtc/stats/groupCallStats.js.map +0 -1
  539. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
  540. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
  541. package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
  542. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
  543. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
  544. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
  545. package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
  546. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
  547. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
  548. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
  549. package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
  550. package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
  551. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
  552. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
  553. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
  554. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
  555. package/lib/webrtc/stats/statsReport.d.ts +0 -99
  556. package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
  557. package/lib/webrtc/stats/statsReport.js +0 -32
  558. package/lib/webrtc/stats/statsReport.js.map +0 -1
  559. package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
  560. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
  561. package/lib/webrtc/stats/statsReportEmitter.js +0 -33
  562. package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
  563. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
  564. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
  565. package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
  566. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
  567. package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
  568. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
  569. package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
  570. package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
  571. package/lib/webrtc/stats/transportStats.d.ts +0 -11
  572. package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
  573. package/lib/webrtc/stats/transportStats.js +0 -1
  574. package/lib/webrtc/stats/transportStats.js.map +0 -1
  575. package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
  576. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
  577. package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
  578. package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
  579. package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
  580. package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
  581. package/lib/webrtc/stats/valueFormatter.js +0 -25
  582. package/lib/webrtc/stats/valueFormatter.js.map +0 -1
  583. package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
  584. package/src/@types/crypto.ts +0 -73
  585. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  586. package/src/common-crypto/CryptoBackend.ts +0 -302
  587. package/src/common-crypto/README.md +0 -4
  588. package/src/common-crypto/key-passphrase.ts +0 -43
  589. package/src/crypto/CrossSigning.ts +0 -773
  590. package/src/crypto/DeviceList.ts +0 -989
  591. package/src/crypto/EncryptionSetup.ts +0 -351
  592. package/src/crypto/OlmDevice.ts +0 -1500
  593. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  594. package/src/crypto/RoomList.ts +0 -70
  595. package/src/crypto/SecretSharing.ts +0 -240
  596. package/src/crypto/SecretStorage.ts +0 -136
  597. package/src/crypto/aes.ts +0 -23
  598. package/src/crypto/algorithms/base.ts +0 -236
  599. package/src/crypto/algorithms/index.ts +0 -20
  600. package/src/crypto/algorithms/megolm.ts +0 -2216
  601. package/src/crypto/algorithms/olm.ts +0 -381
  602. package/src/crypto/api.ts +0 -70
  603. package/src/crypto/backup.ts +0 -922
  604. package/src/crypto/crypto.ts +0 -18
  605. package/src/crypto/dehydration.ts +0 -272
  606. package/src/crypto/device-converter.ts +0 -45
  607. package/src/crypto/deviceinfo.ts +0 -158
  608. package/src/crypto/index.ts +0 -4418
  609. package/src/crypto/key_passphrase.ts +0 -42
  610. package/src/crypto/keybackup.ts +0 -47
  611. package/src/crypto/olmlib.ts +0 -539
  612. package/src/crypto/recoverykey.ts +0 -18
  613. package/src/crypto/store/base.ts +0 -348
  614. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  615. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  616. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  617. package/src/crypto/store/memory-crypto-store.ts +0 -680
  618. package/src/crypto/verification/Base.ts +0 -409
  619. package/src/crypto/verification/Error.ts +0 -76
  620. package/src/crypto/verification/IllegalMethod.ts +0 -50
  621. package/src/crypto/verification/QRCode.ts +0 -310
  622. package/src/crypto/verification/SAS.ts +0 -494
  623. package/src/crypto/verification/SASDecimal.ts +0 -37
  624. package/src/crypto/verification/request/Channel.ts +0 -34
  625. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  626. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  627. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  628. package/src/crypto-api/CryptoEvent.ts +0 -93
  629. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  630. package/src/crypto-api/index.ts +0 -1175
  631. package/src/crypto-api/key-passphrase.ts +0 -58
  632. package/src/crypto-api/keybackup.ts +0 -115
  633. package/src/crypto-api/recovery-key.ts +0 -69
  634. package/src/crypto-api/verification.ts +0 -408
  635. package/src/matrixrtc/CallMembership.ts +0 -247
  636. package/src/matrixrtc/LivekitFocus.ts +0 -39
  637. package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
  638. package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
  639. package/src/matrixrtc/focus.ts +0 -25
  640. package/src/matrixrtc/index.ts +0 -22
  641. package/src/matrixrtc/types.ts +0 -36
  642. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  643. package/src/rendezvous/RendezvousChannel.ts +0 -48
  644. package/src/rendezvous/RendezvousCode.ts +0 -25
  645. package/src/rendezvous/RendezvousError.ts +0 -26
  646. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  647. package/src/rendezvous/RendezvousIntent.ts +0 -20
  648. package/src/rendezvous/RendezvousTransport.ts +0 -58
  649. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  650. package/src/rendezvous/channels/index.ts +0 -17
  651. package/src/rendezvous/index.ts +0 -25
  652. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  653. package/src/rendezvous/transports/index.ts +0 -17
  654. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  655. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  656. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  657. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  658. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  659. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  660. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  661. package/src/rust-crypto/backup.ts +0 -881
  662. package/src/rust-crypto/constants.ts +0 -18
  663. package/src/rust-crypto/device-converter.ts +0 -128
  664. package/src/rust-crypto/index.ts +0 -237
  665. package/src/rust-crypto/libolm_migration.ts +0 -530
  666. package/src/rust-crypto/rust-crypto.ts +0 -2205
  667. package/src/rust-crypto/secret-storage.ts +0 -60
  668. package/src/rust-crypto/verification.ts +0 -830
  669. package/src/secret-storage.ts +0 -693
  670. package/src/utils/decryptAESSecretStorageItem.ts +0 -54
  671. package/src/utils/encryptAESSecretStorageItem.ts +0 -73
  672. package/src/utils/internal/deriveKeys.ts +0 -63
  673. package/src/webrtc/audioContext.ts +0 -44
  674. package/src/webrtc/call.ts +0 -3074
  675. package/src/webrtc/callEventHandler.ts +0 -425
  676. package/src/webrtc/callEventTypes.ts +0 -93
  677. package/src/webrtc/callFeed.ts +0 -364
  678. package/src/webrtc/groupCall.ts +0 -1735
  679. package/src/webrtc/groupCallEventHandler.ts +0 -234
  680. package/src/webrtc/mediaHandler.ts +0 -484
  681. package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
  682. package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
  683. package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
  684. package/src/webrtc/stats/connectionStats.ts +0 -47
  685. package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
  686. package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
  687. package/src/webrtc/stats/groupCallStats.ts +0 -93
  688. package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
  689. package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
  690. package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
  691. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
  692. package/src/webrtc/stats/statsReport.ts +0 -133
  693. package/src/webrtc/stats/statsReportEmitter.ts +0 -49
  694. package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
  695. package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
  696. package/src/webrtc/stats/transportStats.ts +0 -26
  697. package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
  698. package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -1,837 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2023 - 2024 The Matrix.org Foundation C.I.C.
5
-
6
- Licensed under the Apache License, Version 2.0 (the "License");
7
- you may not use this file except in compliance with the License.
8
- You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- */
18
-
19
- import * as RustSdkCryptoJs from "@matrix-org/matrix-sdk-crypto-wasm";
20
- import { logger } from "../logger.js";
21
- import { ClientPrefix, MatrixError, Method } from "../http-api/index.js";
22
- import { TypedEventEmitter } from "../models/typed-event-emitter.js";
23
- import { encodeUri, logDuration } from "../utils.js";
24
- import { sleep } from "../utils.js";
25
- import { CryptoEvent } from "../crypto-api/index.js";
26
-
27
- /** Authentification of the backup info, depends on algorithm */
28
-
29
- /**
30
- * Holds information of a created keybackup.
31
- * Useful to get the generated private key material and save it securely somewhere.
32
- */
33
-
34
- /**
35
- * @internal
36
- */
37
- export class RustBackupManager extends TypedEventEmitter {
38
- constructor(olmMachine, http, outgoingRequestProcessor) {
39
- super();
40
- this.olmMachine = olmMachine;
41
- this.http = http;
42
- this.outgoingRequestProcessor = outgoingRequestProcessor;
43
- /** Have we checked if there is a backup on the server which we can use */
44
- _defineProperty(this, "checkedForBackup", false);
45
- /**
46
- * The latest backup version on the server, when we last checked.
47
- *
48
- * If there was no backup on the server, `null`. If our attempt to check resulted in an error, `undefined`.
49
- *
50
- * Note that the backup was not necessarily verified.
51
- */
52
- _defineProperty(this, "serverBackupInfo", undefined);
53
- _defineProperty(this, "activeBackupVersion", null);
54
- _defineProperty(this, "stopped", false);
55
- /** whether {@link backupKeysLoop} is currently running */
56
- _defineProperty(this, "backupKeysLoopRunning", false);
57
- _defineProperty(this, "keyBackupCheckInProgress", null);
58
- }
59
-
60
- /**
61
- * Tells the RustBackupManager to stop.
62
- * The RustBackupManager is scheduling background uploads of keys to the backup, this
63
- * call allows to cancel the process when the client is stoppped.
64
- */
65
- stop() {
66
- this.stopped = true;
67
- }
68
-
69
- /**
70
- * Get the backup version we are currently backing up to, if any
71
- */
72
- getActiveBackupVersion() {
73
- var _this = this;
74
- return _asyncToGenerator(function* () {
75
- if (!(yield _this.olmMachine.isBackupEnabled())) return null;
76
- return _this.activeBackupVersion;
77
- })();
78
- }
79
-
80
- /**
81
- * Return the details of the latest backup on the server, when we last checked.
82
- *
83
- * This normally returns a cached value, but if we haven't yet made a request to the server, it will fire one off.
84
- * It will always return the details of the active backup if key backup is enabled.
85
- *
86
- * If there was no backup on the server, `null`. If our attempt to check resulted in an error, `undefined`.
87
- */
88
- getServerBackupInfo() {
89
- var _this2 = this;
90
- return _asyncToGenerator(function* () {
91
- // Do a validity check if we haven't already done one. The check is likely to fail if we don't yet have the
92
- // backup keys -- but as a side-effect, it will populate `serverBackupInfo`.
93
- yield _this2.checkKeyBackupAndEnable(false);
94
- return _this2.serverBackupInfo;
95
- })();
96
- }
97
-
98
- /**
99
- * Determine if a key backup can be trusted.
100
- *
101
- * @param info - key backup info dict from {@link MatrixClient#getKeyBackupVersion}.
102
- */
103
- isKeyBackupTrusted(info) {
104
- var _this3 = this;
105
- return _asyncToGenerator(function* () {
106
- var signatureVerification = yield _this3.olmMachine.verifyBackup(info);
107
- var backupKeys = yield _this3.olmMachine.getBackupKeys();
108
- var decryptionKey = backupKeys === null || backupKeys === void 0 ? void 0 : backupKeys.decryptionKey;
109
- var backupMatchesSavedPrivateKey = !!decryptionKey && backupInfoMatchesBackupDecryptionKey(info, decryptionKey);
110
- return {
111
- matchesDecryptionKey: backupMatchesSavedPrivateKey,
112
- trusted: signatureVerification.trusted()
113
- };
114
- })();
115
- }
116
-
117
- /**
118
- * Re-check the key backup and enable/disable it as appropriate.
119
- *
120
- * @param force - whether we should force a re-check even if one has already happened.
121
- */
122
- checkKeyBackupAndEnable(force) {
123
- if (!force && this.checkedForBackup) {
124
- return Promise.resolve(null);
125
- }
126
-
127
- // make sure there is only one check going on at a time
128
- if (!this.keyBackupCheckInProgress) {
129
- this.keyBackupCheckInProgress = this.doCheckKeyBackup().finally(() => {
130
- this.keyBackupCheckInProgress = null;
131
- });
132
- }
133
- return this.keyBackupCheckInProgress;
134
- }
135
-
136
- /**
137
- * Handles a backup secret received event and store it if it matches the current backup version.
138
- *
139
- * @param secret - The secret as received from a `m.secret.send` event for secret `m.megolm_backup.v1`.
140
- * @returns true if the secret is valid and has been stored, false otherwise.
141
- */
142
- handleBackupSecretReceived(secret) {
143
- var _this4 = this;
144
- return _asyncToGenerator(function* () {
145
- var _backupCheck$backupIn;
146
- // Currently we only receive the decryption key without any key backup version. It is important to
147
- // check that the secret is valid for the current version before storing it.
148
- // We force a check to ensure to have the latest version. We also want to check that the backup is trusted
149
- // as we don't want to store the secret if the backup is not trusted, and eventually import megolm keys later from an untrusted backup.
150
- var backupCheck = yield _this4.checkKeyBackupAndEnable(true);
151
- if (!(backupCheck !== null && backupCheck !== void 0 && (_backupCheck$backupIn = backupCheck.backupInfo) !== null && _backupCheck$backupIn !== void 0 && _backupCheck$backupIn.version) || !backupCheck.trustInfo.trusted) {
152
- // There is no server-side key backup, or the backup is not signed by a trusted cross-signing key or trusted own device.
153
- // This decryption key is useless to us.
154
- logger.warn("handleBackupSecretReceived: Received a backup decryption key, but there is no trusted server-side key backup");
155
- return false;
156
- }
157
- try {
158
- var backupDecryptionKey = RustSdkCryptoJs.BackupDecryptionKey.fromBase64(secret);
159
- var privateKeyMatches = backupInfoMatchesBackupDecryptionKey(backupCheck.backupInfo, backupDecryptionKey);
160
- if (!privateKeyMatches) {
161
- logger.warn("handleBackupSecretReceived: Private decryption key does not match the public key of the current remote backup.");
162
- // just ignore the secret
163
- return false;
164
- }
165
- logger.info("handleBackupSecretReceived: A valid backup decryption key has been received and stored in cache.");
166
- yield _this4.saveBackupDecryptionKey(backupDecryptionKey, backupCheck.backupInfo.version);
167
- return true;
168
- } catch (e) {
169
- logger.warn("handleBackupSecretReceived: Invalid backup decryption key", e);
170
- }
171
- return false;
172
- })();
173
- }
174
- saveBackupDecryptionKey(backupDecryptionKey, version) {
175
- var _this5 = this;
176
- return _asyncToGenerator(function* () {
177
- yield _this5.olmMachine.saveBackupDecryptionKey(backupDecryptionKey, version);
178
- // Emit an event that we have a new backup decryption key, so that the sdk can start
179
- // importing keys from backup if needed.
180
- _this5.emit(CryptoEvent.KeyBackupDecryptionKeyCached, version);
181
- })();
182
- }
183
-
184
- /**
185
- * Import a list of room keys previously exported by exportRoomKeys
186
- *
187
- * @param keys - a list of session export objects
188
- * @param opts - options object
189
- * @returns a promise which resolves once the keys have been imported
190
- */
191
- importRoomKeys(keys, opts) {
192
- var _this6 = this;
193
- return _asyncToGenerator(function* () {
194
- yield _this6.importRoomKeysAsJson(JSON.stringify(keys), opts);
195
- })();
196
- }
197
-
198
- /**
199
- * Import a list of room keys previously exported by exportRoomKeysAsJson
200
- *
201
- * @param jsonKeys - a JSON string encoding a list of session export objects,
202
- * each of which is an IMegolmSessionData
203
- * @param opts - options object
204
- * @returns a promise which resolves once the keys have been imported
205
- */
206
- importRoomKeysAsJson(jsonKeys, opts) {
207
- var _this7 = this;
208
- return _asyncToGenerator(function* () {
209
- yield _this7.olmMachine.importExportedRoomKeys(jsonKeys, (progress, total) => {
210
- var _opts$progressCallbac;
211
- var importOpt = {
212
- total: Number(total),
213
- successes: Number(progress),
214
- stage: "load_keys",
215
- failures: 0
216
- };
217
- opts === null || opts === void 0 || (_opts$progressCallbac = opts.progressCallback) === null || _opts$progressCallbac === void 0 || _opts$progressCallbac.call(opts, importOpt);
218
- });
219
- })();
220
- }
221
-
222
- /**
223
- * Implementation of {@link CryptoBackend#importBackedUpRoomKeys}.
224
- */
225
- importBackedUpRoomKeys(keys, backupVersion, opts) {
226
- var _this8 = this;
227
- return _asyncToGenerator(function* () {
228
- var keysByRoom = new Map();
229
- for (var key of keys) {
230
- var roomId = new RustSdkCryptoJs.RoomId(key.room_id);
231
- if (!keysByRoom.has(roomId)) {
232
- keysByRoom.set(roomId, new Map());
233
- }
234
- keysByRoom.get(roomId).set(key.session_id, key);
235
- }
236
- yield _this8.olmMachine.importBackedUpRoomKeys(keysByRoom, (progress, total, failures) => {
237
- var _opts$progressCallbac2;
238
- var importOpt = {
239
- total: Number(total),
240
- successes: Number(progress),
241
- stage: "load_keys",
242
- failures: Number(failures)
243
- };
244
- opts === null || opts === void 0 || (_opts$progressCallbac2 = opts.progressCallback) === null || _opts$progressCallbac2 === void 0 || _opts$progressCallbac2.call(opts, importOpt);
245
- }, backupVersion);
246
- })();
247
- }
248
- /** Helper for `checkKeyBackup` */
249
- doCheckKeyBackup() {
250
- var _this9 = this;
251
- return _asyncToGenerator(function* () {
252
- logger.log("Checking key backup status...");
253
- var backupInfo;
254
- try {
255
- backupInfo = yield _this9.requestKeyBackupVersion();
256
- } catch (e) {
257
- logger.warn("Error checking for active key backup", e);
258
- _this9.serverBackupInfo = undefined;
259
- return null;
260
- }
261
- _this9.checkedForBackup = true;
262
- if (backupInfo && !backupInfo.version) {
263
- logger.warn("active backup lacks a useful 'version'; ignoring it");
264
- backupInfo = undefined;
265
- }
266
- _this9.serverBackupInfo = backupInfo;
267
- var activeVersion = yield _this9.getActiveBackupVersion();
268
- if (!backupInfo) {
269
- if (activeVersion !== null) {
270
- logger.log("No key backup present on server: disabling key backup");
271
- yield _this9.disableKeyBackup();
272
- } else {
273
- logger.log("No key backup present on server: not enabling key backup");
274
- }
275
- return null;
276
- }
277
- var trustInfo = yield _this9.isKeyBackupTrusted(backupInfo);
278
- if (!trustInfo.trusted) {
279
- if (activeVersion !== null) {
280
- logger.log("Key backup present on server but not trusted: disabling key backup");
281
- yield _this9.disableKeyBackup();
282
- } else {
283
- logger.log("Key backup present on server but not trusted: not enabling key backup");
284
- }
285
- } else {
286
- if (activeVersion === null) {
287
- logger.log("Found usable key backup v".concat(backupInfo.version, ": enabling key backups"));
288
- yield _this9.enableKeyBackup(backupInfo);
289
- } else if (activeVersion !== backupInfo.version) {
290
- logger.log("On backup version ".concat(activeVersion, " but found version ").concat(backupInfo.version, ": switching."));
291
- // This will remove any pending backup request, remove the backup key and reset the backup state of each room key we have.
292
- yield _this9.disableKeyBackup();
293
- // Enabling will now trigger re-upload of all the keys
294
- yield _this9.enableKeyBackup(backupInfo);
295
- } else {
296
- logger.log("Backup version ".concat(backupInfo.version, " still current"));
297
- }
298
- }
299
- return {
300
- backupInfo,
301
- trustInfo
302
- };
303
- })();
304
- }
305
- enableKeyBackup(backupInfo) {
306
- var _this10 = this;
307
- return _asyncToGenerator(function* () {
308
- // we know for certain it must be a Curve25519 key, because we have verified it and only Curve25519
309
- // keys can be verified.
310
- //
311
- // we also checked it has a valid `version`.
312
- yield _this10.olmMachine.enableBackupV1(backupInfo.auth_data.public_key, backupInfo.version);
313
- _this10.activeBackupVersion = backupInfo.version;
314
- _this10.emit(CryptoEvent.KeyBackupStatus, true);
315
- _this10.backupKeysLoop();
316
- })();
317
- }
318
-
319
- /**
320
- * Restart the backup key loop if there is an active trusted backup.
321
- * Doesn't try to check the backup server side. To be called when a new
322
- * megolm key is known locally.
323
- */
324
- maybeUploadKey() {
325
- var _this11 = this;
326
- return _asyncToGenerator(function* () {
327
- if (_this11.activeBackupVersion != null) {
328
- _this11.backupKeysLoop();
329
- }
330
- })();
331
- }
332
- disableKeyBackup() {
333
- var _this12 = this;
334
- return _asyncToGenerator(function* () {
335
- yield _this12.olmMachine.disableBackup();
336
- _this12.activeBackupVersion = null;
337
- _this12.emit(CryptoEvent.KeyBackupStatus, false);
338
- })();
339
- }
340
- backupKeysLoop() {
341
- var _arguments = arguments,
342
- _this13 = this;
343
- return _asyncToGenerator(function* () {
344
- var maxDelay = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : 10000;
345
- if (_this13.backupKeysLoopRunning) {
346
- logger.log("Backup loop already running");
347
- return;
348
- }
349
- _this13.backupKeysLoopRunning = true;
350
- logger.log("Backup: Starting keys upload loop for backup version:".concat(_this13.activeBackupVersion, "."));
351
-
352
- // wait between 0 and `maxDelay` seconds, to avoid backup
353
- // requests from different clients hitting the server all at
354
- // the same time when a new key is sent
355
- var delay = Math.random() * maxDelay;
356
- yield sleep(delay);
357
- try {
358
- // number of consecutive network failures for exponential backoff
359
- var numFailures = 0;
360
- // The number of keys left to back up. (Populated lazily: see more comments below.)
361
- var remainingToUploadCount = null;
362
- // To avoid computing the key when only a few keys were added (after a sync for example),
363
- // we compute the count only when at least two iterations are needed.
364
- var isFirstIteration = true;
365
- while (!_this13.stopped) {
366
- // Get a batch of room keys to upload
367
- var request = null;
368
- try {
369
- request = yield logDuration(logger, "BackupRoomKeys: Get keys to backup from rust crypto-sdk", /*#__PURE__*/_asyncToGenerator(function* () {
370
- return yield _this13.olmMachine.backupRoomKeys();
371
- }));
372
- } catch (err) {
373
- logger.error("Backup: Failed to get keys to backup from rust crypto-sdk", err);
374
- }
375
- if (!request || _this13.stopped || !_this13.activeBackupVersion) {
376
- logger.log("Backup: Ending loop for version ".concat(_this13.activeBackupVersion, "."));
377
- if (!request) {
378
- // nothing more to upload
379
- _this13.emit(CryptoEvent.KeyBackupSessionsRemaining, 0);
380
- }
381
- return;
382
- }
383
- try {
384
- yield _this13.outgoingRequestProcessor.makeOutgoingRequest(request);
385
- numFailures = 0;
386
- if (_this13.stopped) break;
387
-
388
- // Key count performance (`olmMachine.roomKeyCounts()`) can be pretty bad on some configurations.
389
- // In particular, we detected on some M1 macs that when the object store reaches a threshold, the count
390
- // performance stops growing in O(n) and suddenly becomes very slow (40s, 60s or more).
391
- // For reference, the performance drop occurs around 300-400k keys on the platforms where this issue is observed.
392
- // Even on other configurations, the count can take several seconds.
393
- // This will block other operations on the database, like sending messages.
394
- //
395
- // This is a workaround to avoid calling `olmMachine.roomKeyCounts()` too often, and only when necessary.
396
- // We don't call it on the first loop because there could be only a few keys to upload, and we don't want to wait for the count.
397
- if (!isFirstIteration && remainingToUploadCount === null) {
398
- try {
399
- var keyCount = yield _this13.olmMachine.roomKeyCounts();
400
- remainingToUploadCount = keyCount.total - keyCount.backedUp;
401
- } catch (err) {
402
- logger.error("Backup: Failed to get key counts from rust crypto-sdk", err);
403
- }
404
- }
405
- if (remainingToUploadCount !== null) {
406
- _this13.emit(CryptoEvent.KeyBackupSessionsRemaining, remainingToUploadCount);
407
- var keysCountInBatch = _this13.keysCountInBatch(request);
408
- // `OlmMachine.roomKeyCounts` is called only once for the current backupKeysLoop. But new
409
- // keys could be added during the current loop (after a sync for example).
410
- // So the count can get out of sync with the real number of remaining keys to upload.
411
- // Depending on the number of new keys imported and the time to complete the loop,
412
- // this could result in multiple events being emitted with a remaining key count of 0.
413
- remainingToUploadCount = Math.max(remainingToUploadCount - keysCountInBatch, 0);
414
- }
415
- } catch (err) {
416
- numFailures++;
417
- logger.error("Backup: Error processing backup request for rust crypto-sdk", err);
418
- if (err instanceof MatrixError) {
419
- var errCode = err.data.errcode;
420
- if (errCode == "M_NOT_FOUND" || errCode == "M_WRONG_ROOM_KEYS_VERSION") {
421
- logger.log("Backup: Failed to upload keys to current vesion: ".concat(errCode, "."));
422
- try {
423
- yield _this13.disableKeyBackup();
424
- } catch (error) {
425
- logger.error("Backup: An error occurred while disabling key backup:", error);
426
- }
427
- _this13.emit(CryptoEvent.KeyBackupFailed, err.data.errcode);
428
- // There was an active backup and we are out of sync with the server
429
- // force a check server side
430
- _this13.backupKeysLoopRunning = false;
431
- _this13.checkKeyBackupAndEnable(true);
432
- return;
433
- } else if (err.isRateLimitError()) {
434
- // wait for that and then continue?
435
- try {
436
- var waitTime = err.getRetryAfterMs();
437
- if (waitTime && waitTime > 0) {
438
- yield sleep(waitTime);
439
- continue;
440
- }
441
- } catch (error) {
442
- logger.warn("Backup: An error occurred while retrieving a rate-limit retry delay", error);
443
- } // else go to the normal backoff
444
- }
445
- }
446
-
447
- // Some other errors (mx, network, or CORS or invalid urls?) anyhow backoff
448
- // exponential backoff if we have failures
449
- yield sleep(1000 * Math.pow(2, Math.min(numFailures - 1, 4)));
450
- }
451
- isFirstIteration = false;
452
- }
453
- } finally {
454
- _this13.backupKeysLoopRunning = false;
455
- }
456
- })();
457
- }
458
-
459
- /**
460
- * Utility method to count the number of keys in a backup request, in order to update the remaining keys count.
461
- * This should be the chunk size of the backup request for all requests but the last, but we don't have access to it
462
- * (it's static in the Rust SDK).
463
- * @param batch - The backup request to count the keys from.
464
- *
465
- * @returns The number of keys in the backup request.
466
- */
467
- keysCountInBatch(batch) {
468
- var parsedBody = JSON.parse(batch.body);
469
- return countKeysInBackup(parsedBody);
470
- }
471
-
472
- /**
473
- * Get information about a key backup from the server
474
- * - If version is provided, get information about that backup version.
475
- * - If no version is provided, get information about the latest backup.
476
- *
477
- * @param version - The version of the backup to get information about.
478
- * @returns Information object from API or null if there is no active backup.
479
- */
480
- requestKeyBackupVersion(version) {
481
- var _this14 = this;
482
- return _asyncToGenerator(function* () {
483
- return yield requestKeyBackupVersion(_this14.http, version);
484
- })();
485
- }
486
-
487
- /**
488
- * Creates a new key backup by generating a new random private key.
489
- *
490
- * If there is an existing backup server side it will be deleted and replaced
491
- * by the new one.
492
- *
493
- * @param signObject - Method that should sign the backup with existing device and
494
- * existing identity.
495
- * @returns a KeyBackupCreationInfo - All information related to the backup.
496
- */
497
- setupKeyBackup(signObject) {
498
- var _this15 = this;
499
- return _asyncToGenerator(function* () {
500
- // Clean up any existing backup
501
- yield _this15.deleteAllKeyBackupVersions();
502
- var randomKey = RustSdkCryptoJs.BackupDecryptionKey.createRandomKey();
503
- var pubKey = randomKey.megolmV1PublicKey;
504
- var authData = {
505
- public_key: pubKey.publicKeyBase64
506
- };
507
- yield signObject(authData);
508
- var res = yield _this15.http.authedRequest(Method.Post, "/room_keys/version", undefined, {
509
- algorithm: pubKey.algorithm,
510
- auth_data: authData
511
- }, {
512
- prefix: ClientPrefix.V3
513
- });
514
- yield _this15.saveBackupDecryptionKey(randomKey, res.version);
515
- return {
516
- version: res.version,
517
- algorithm: pubKey.algorithm,
518
- authData: authData,
519
- decryptionKey: randomKey
520
- };
521
- })();
522
- }
523
-
524
- /**
525
- * Deletes all key backups.
526
- *
527
- * Will call the API to delete active backup until there is no more present.
528
- */
529
- deleteAllKeyBackupVersions() {
530
- var _this16 = this;
531
- return _asyncToGenerator(function* () {
532
- var _yield$_this16$reques, _yield$_this16$reques2;
533
- // there could be several backup versions. Delete all to be safe.
534
- var current = (_yield$_this16$reques = (_yield$_this16$reques2 = yield _this16.requestKeyBackupVersion()) === null || _yield$_this16$reques2 === void 0 ? void 0 : _yield$_this16$reques2.version) !== null && _yield$_this16$reques !== void 0 ? _yield$_this16$reques : null;
535
- while (current != null) {
536
- var _yield$_this16$reques3, _yield$_this16$reques4;
537
- yield _this16.deleteKeyBackupVersion(current);
538
- current = (_yield$_this16$reques3 = (_yield$_this16$reques4 = yield _this16.requestKeyBackupVersion()) === null || _yield$_this16$reques4 === void 0 ? void 0 : _yield$_this16$reques4.version) !== null && _yield$_this16$reques3 !== void 0 ? _yield$_this16$reques3 : null;
539
- }
540
-
541
- // XXX: Should this also update Secret Storage and delete any existing keys?
542
- })();
543
- }
544
-
545
- /**
546
- * Deletes the given key backup.
547
- *
548
- * @param version - The backup version to delete.
549
- */
550
- deleteKeyBackupVersion(version) {
551
- var _this17 = this;
552
- return _asyncToGenerator(function* () {
553
- logger.debug("deleteKeyBackupVersion v:".concat(version));
554
- var path = encodeUri("/room_keys/version/$version", {
555
- $version: version
556
- });
557
- yield _this17.http.authedRequest(Method.Delete, path, undefined, undefined, {
558
- prefix: ClientPrefix.V3
559
- });
560
- })();
561
- }
562
-
563
- /**
564
- * Creates a new backup decryptor for the given private key.
565
- * @param decryptionKey - The private key to use for decryption.
566
- */
567
- createBackupDecryptor(decryptionKey) {
568
- return new RustBackupDecryptor(decryptionKey);
569
- }
570
-
571
- /**
572
- * Restore a key backup.
573
- *
574
- * @param backupVersion - The version of the backup to restore.
575
- * @param backupDecryptor - The backup decryptor to use to decrypt the keys.
576
- * @param opts - Options for the restore.
577
- * @returns The total number of keys and the total imported.
578
- */
579
- restoreKeyBackup(backupVersion, backupDecryptor, opts) {
580
- var _this18 = this;
581
- return _asyncToGenerator(function* () {
582
- var _opts$progressCallbac3;
583
- var keyBackup = yield _this18.downloadKeyBackup(backupVersion);
584
- opts === null || opts === void 0 || (_opts$progressCallbac3 = opts.progressCallback) === null || _opts$progressCallbac3 === void 0 || _opts$progressCallbac3.call(opts, {
585
- stage: "load_keys"
586
- });
587
- return _this18.importKeyBackup(keyBackup, backupVersion, backupDecryptor, opts);
588
- })();
589
- }
590
-
591
- /**
592
- * Call `/room_keys/keys` to download the key backup (room keys) for the given backup version.
593
- * https://spec.matrix.org/v1.12/client-server-api/#get_matrixclientv3room_keyskeys
594
- *
595
- * @param backupVersion
596
- * @returns The key backup response.
597
- */
598
- downloadKeyBackup(backupVersion) {
599
- return this.http.authedRequest(Method.Get, "/room_keys/keys", {
600
- version: backupVersion
601
- }, undefined, {
602
- prefix: ClientPrefix.V3
603
- });
604
- }
605
-
606
- /**
607
- * Import the room keys from a `/room_keys/keys` call.
608
- * Calls `opts.progressCallback` with the progress of the import.
609
- *
610
- * @param keyBackup - The response from the server containing the keys to import.
611
- * @param backupVersion - The version of the backup info.
612
- * @param backupDecryptor - The backup decryptor to use to decrypt the keys.
613
- * @param opts - Options for the import.
614
- *
615
- * @returns The total number of keys and the total imported.
616
- *
617
- * @private
618
- */
619
- importKeyBackup(keyBackup, backupVersion, backupDecryptor, opts) {
620
- var _this19 = this;
621
- return _asyncToGenerator(function* () {
622
- // We have a full backup here, it can get quite big, so we need to decrypt and import it in chunks.
623
-
624
- var CHUNK_SIZE = 200;
625
- // Get the total count as a first pass
626
- var totalKeyCount = countKeysInBackup(keyBackup);
627
- var totalImported = 0;
628
- var totalFailures = 0;
629
-
630
- /**
631
- * This method is called when we have enough chunks to decrypt.
632
- * It will decrypt the chunks and try to import the room keys.
633
- * @param roomChunks
634
- */
635
- var handleChunkCallback = /*#__PURE__*/function () {
636
- var _ref2 = _asyncToGenerator(function* (roomChunks) {
637
- var _opts$progressCallbac4;
638
- var currentChunk = [];
639
- var _loop = function* _loop(roomId) {
640
- // Decrypt the sessions for the given room
641
- var decryptedSessions = yield backupDecryptor.decryptSessions(roomChunks.get(roomId));
642
- // Add the decrypted sessions to the current chunk
643
- decryptedSessions.forEach(session => {
644
- // We set the room_id for each session
645
- session.room_id = roomId;
646
- currentChunk.push(session);
647
- });
648
- };
649
- for (var roomId of roomChunks.keys()) {
650
- yield* _loop(roomId);
651
- }
652
-
653
- // We have a chunk of decrypted keys: import them
654
- try {
655
- yield _this19.importBackedUpRoomKeys(currentChunk, backupVersion);
656
- totalImported += currentChunk.length;
657
- } catch (e) {
658
- totalFailures += currentChunk.length;
659
- // We failed to import some keys, but we should still try to import the rest?
660
- // Log the error and continue
661
- logger.error("Error importing keys from backup", e);
662
- }
663
- opts === null || opts === void 0 || (_opts$progressCallbac4 = opts.progressCallback) === null || _opts$progressCallbac4 === void 0 || _opts$progressCallbac4.call(opts, {
664
- total: totalKeyCount,
665
- successes: totalImported,
666
- stage: "load_keys",
667
- failures: totalFailures
668
- });
669
- });
670
- return function handleChunkCallback(_x) {
671
- return _ref2.apply(this, arguments);
672
- };
673
- }();
674
- var groupChunkCount = 0;
675
- var chunkGroupByRoom = new Map();
676
-
677
- // Iterate over the rooms and sessions to group them in chunks
678
- // And we call the handleChunkCallback when we have enough chunks to decrypt
679
- for (var [roomId, roomData] of Object.entries(keyBackup.rooms)) {
680
- // If there are no sessions for the room, skip it
681
- if (!roomData.sessions) continue;
682
-
683
- // Initialize a new chunk group for the current room
684
- chunkGroupByRoom.set(roomId, {});
685
- for (var [sessionId, session] of Object.entries(roomData.sessions)) {
686
- // We set previously the chunk group for the current room, so we can safely get it
687
- var sessionsForRoom = chunkGroupByRoom.get(roomId);
688
- sessionsForRoom[sessionId] = session;
689
- groupChunkCount += 1;
690
- // If we have enough chunks to decrypt, call the block callback
691
- if (groupChunkCount >= CHUNK_SIZE) {
692
- // We have enough chunks to decrypt
693
- yield handleChunkCallback(chunkGroupByRoom);
694
- // Reset the chunk group
695
- chunkGroupByRoom = new Map();
696
- // There might be remaining keys for that room, so add back an entry for the current room.
697
- chunkGroupByRoom.set(roomId, {});
698
- groupChunkCount = 0;
699
- }
700
- }
701
- }
702
-
703
- // Handle remaining chunk if needed
704
- if (groupChunkCount > 0) {
705
- yield handleChunkCallback(chunkGroupByRoom);
706
- }
707
- return {
708
- total: totalKeyCount,
709
- imported: totalImported
710
- };
711
- })();
712
- }
713
- }
714
-
715
- /**
716
- * Checks if the provided backup info matches the given private key.
717
- *
718
- * @param info - The backup info to check.
719
- * @param backupDecryptionKey - The `BackupDecryptionKey` private key to check against.
720
- * @returns `true` if the private key can decrypt the backup, `false` otherwise.
721
- */
722
- function backupInfoMatchesBackupDecryptionKey(info, backupDecryptionKey) {
723
- var _info$auth_data;
724
- if (info.algorithm !== "m.megolm_backup.v1.curve25519-aes-sha2") {
725
- logger.warn("backupMatchesPrivateKey: Unsupported backup algorithm", info.algorithm);
726
- return false;
727
- }
728
- return ((_info$auth_data = info.auth_data) === null || _info$auth_data === void 0 ? void 0 : _info$auth_data.public_key) === backupDecryptionKey.megolmV1PublicKey.publicKeyBase64;
729
- }
730
-
731
- /**
732
- * Implementation of {@link BackupDecryptor} for the rust crypto backend.
733
- */
734
- export class RustBackupDecryptor {
735
- constructor(decryptionKey) {
736
- _defineProperty(this, "decryptionKey", void 0);
737
- _defineProperty(this, "sourceTrusted", void 0);
738
- this.decryptionKey = decryptionKey;
739
- this.sourceTrusted = false;
740
- }
741
-
742
- /**
743
- * Implements {@link BackupDecryptor#decryptSessions}
744
- */
745
- decryptSessions(ciphertexts) {
746
- var _this20 = this;
747
- return _asyncToGenerator(function* () {
748
- var keys = [];
749
- for (var [sessionId, sessionData] of Object.entries(ciphertexts)) {
750
- try {
751
- var decrypted = JSON.parse(_this20.decryptionKey.decryptV1(sessionData.session_data.ephemeral, sessionData.session_data.mac, sessionData.session_data.ciphertext));
752
- decrypted.session_id = sessionId;
753
- keys.push(decrypted);
754
- } catch (e) {
755
- logger.log("Failed to decrypt megolm session from backup", e, sessionData);
756
- }
757
- }
758
- return keys;
759
- })();
760
- }
761
-
762
- /**
763
- * Implements {@link BackupDecryptor#free}
764
- */
765
- free() {
766
- this.decryptionKey.free();
767
- }
768
- }
769
-
770
- /**
771
- * Fetch a key backup info from the server.
772
- *
773
- * If `version` is provided, calls `GET /room_keys/version/$version` and gets the backup info for that version.
774
- * See https://spec.matrix.org/v1.12/client-server-api/#get_matrixclientv3room_keysversionversion.
775
- *
776
- * If not, calls `GET /room_keys/version` and gets the latest backup info.
777
- * See https://spec.matrix.org/v1.12/client-server-api/#get_matrixclientv3room_keysversion
778
- *
779
- * @param http
780
- * @param version - the specific version of the backup info to fetch
781
- * @returns The key backup info or null if there is no backup.
782
- */
783
- export function requestKeyBackupVersion(_x2, _x3) {
784
- return _requestKeyBackupVersion.apply(this, arguments);
785
- }
786
-
787
- /**
788
- * Checks if the provided decryption key matches the public key of the key backup info.
789
- *
790
- * @param decryptionKey - The decryption key to check.
791
- * @param keyBackupInfo - The key backup info to check against.
792
- * @returns `true` if the decryption key matches the key backup info, `false` otherwise.
793
- */
794
- function _requestKeyBackupVersion() {
795
- _requestKeyBackupVersion = _asyncToGenerator(function* (http, version) {
796
- try {
797
- var path = version ? encodeUri("/room_keys/version/$version", {
798
- $version: version
799
- }) : "/room_keys/version";
800
- return yield http.authedRequest(Method.Get, path, undefined, undefined, {
801
- prefix: ClientPrefix.V3
802
- });
803
- } catch (e) {
804
- if (e.errcode === "M_NOT_FOUND") {
805
- return null;
806
- } else {
807
- throw e;
808
- }
809
- }
810
- });
811
- return _requestKeyBackupVersion.apply(this, arguments);
812
- }
813
- export function decryptionKeyMatchesKeyBackupInfo(decryptionKey, keyBackupInfo) {
814
- var authData = keyBackupInfo.auth_data;
815
- return authData.public_key === decryptionKey.megolmV1PublicKey.publicKeyBase64;
816
- }
817
-
818
- /**
819
- * Counts the total number of keys present in a key backup.
820
- * @param keyBackup - The key backup to count the keys from.
821
- * @returns The total number of keys in the backup.
822
- */
823
- function countKeysInBackup(keyBackup) {
824
- var count = 0;
825
- for (var {
826
- sessions
827
- } of Object.values(keyBackup.rooms)) {
828
- count += Object.keys(sessions).length;
829
- }
830
- return count;
831
- }
832
-
833
- /**
834
- * Response from GET `/room_keys/keys` endpoint.
835
- * See https://spec.matrix.org/latest/client-server-api/#get_matrixclientv3room_keyskeys
836
- */
837
- //# sourceMappingURL=backup.js.map