@unwanted/matrix-sdk-mini 34.12.0 → 36.0.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 (759) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/event.d.ts +25 -19
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js +5 -0
  5. package/lib/@types/event.js.map +1 -1
  6. package/lib/@types/global.d.js +0 -2
  7. package/lib/@types/global.d.js.map +1 -1
  8. package/lib/autodiscovery.d.ts +1 -1
  9. package/lib/autodiscovery.d.ts.map +1 -1
  10. package/lib/autodiscovery.js.map +1 -1
  11. package/lib/base64.d.ts +3 -6
  12. package/lib/base64.d.ts.map +1 -1
  13. package/lib/base64.js +43 -36
  14. package/lib/base64.js.map +1 -1
  15. package/lib/browser-index.d.ts.map +1 -1
  16. package/lib/browser-index.js +0 -11
  17. package/lib/browser-index.js.map +1 -1
  18. package/lib/client.d.ts +45 -1306
  19. package/lib/client.d.ts.map +1 -1
  20. package/lib/client.js +406 -2963
  21. package/lib/client.js.map +1 -1
  22. package/lib/digest.d.ts +2 -2
  23. package/lib/digest.d.ts.map +1 -1
  24. package/lib/digest.js +2 -2
  25. package/lib/digest.js.map +1 -1
  26. package/lib/embedded.d.ts +2 -23
  27. package/lib/embedded.d.ts.map +1 -1
  28. package/lib/embedded.js +82 -209
  29. package/lib/embedded.js.map +1 -1
  30. package/lib/event-mapper.d.ts.map +1 -1
  31. package/lib/event-mapper.js +0 -4
  32. package/lib/event-mapper.js.map +1 -1
  33. package/lib/feature.d.ts.map +1 -1
  34. package/lib/feature.js +2 -1
  35. package/lib/feature.js.map +1 -1
  36. package/lib/http-api/errors.d.ts +3 -3
  37. package/lib/http-api/errors.js +3 -3
  38. package/lib/http-api/errors.js.map +1 -1
  39. package/lib/http-api/utils.js +2 -2
  40. package/lib/http-api/utils.js.map +1 -1
  41. package/lib/matrix.d.ts +0 -25
  42. package/lib/matrix.d.ts.map +1 -1
  43. package/lib/matrix.js +1 -30
  44. package/lib/matrix.js.map +1 -1
  45. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  46. package/lib/models/MSC3089Branch.js +0 -3
  47. package/lib/models/MSC3089Branch.js.map +1 -1
  48. package/lib/models/event-timeline-set.d.ts +6 -10
  49. package/lib/models/event-timeline-set.d.ts.map +1 -1
  50. package/lib/models/event-timeline-set.js +28 -36
  51. package/lib/models/event-timeline-set.js.map +1 -1
  52. package/lib/models/event-timeline.d.ts +7 -2
  53. package/lib/models/event-timeline.d.ts.map +1 -1
  54. package/lib/models/event-timeline.js +9 -30
  55. package/lib/models/event-timeline.js.map +1 -1
  56. package/lib/models/event.d.ts +12 -96
  57. package/lib/models/event.d.ts.map +1 -1
  58. package/lib/models/event.js +59 -286
  59. package/lib/models/event.js.map +1 -1
  60. package/lib/models/invites-ignorer-types.d.ts +27 -0
  61. package/lib/models/invites-ignorer-types.d.ts.map +1 -0
  62. package/lib/models/invites-ignorer-types.js +36 -0
  63. package/lib/models/invites-ignorer-types.js.map +1 -0
  64. package/lib/models/invites-ignorer.d.ts +2 -26
  65. package/lib/models/invites-ignorer.d.ts.map +1 -1
  66. package/lib/models/invites-ignorer.js +2 -27
  67. package/lib/models/invites-ignorer.js.map +1 -1
  68. package/lib/models/poll.d.ts.map +1 -1
  69. package/lib/models/poll.js +1 -5
  70. package/lib/models/poll.js.map +1 -1
  71. package/lib/models/relations-container.d.ts.map +1 -1
  72. package/lib/models/relations-container.js +1 -7
  73. package/lib/models/relations-container.js.map +1 -1
  74. package/lib/models/relations.d.ts +0 -1
  75. package/lib/models/relations.d.ts.map +1 -1
  76. package/lib/models/relations.js +0 -8
  77. package/lib/models/relations.js.map +1 -1
  78. package/lib/models/room-member.d.ts +6 -1
  79. package/lib/models/room-member.d.ts.map +1 -1
  80. package/lib/models/room-member.js +7 -1
  81. package/lib/models/room-member.js.map +1 -1
  82. package/lib/models/room-state.d.ts +2 -13
  83. package/lib/models/room-state.d.ts.map +1 -1
  84. package/lib/models/room-state.js +12 -56
  85. package/lib/models/room-state.js.map +1 -1
  86. package/lib/models/room.d.ts +8 -21
  87. package/lib/models/room.d.ts.map +1 -1
  88. package/lib/models/room.js +128 -163
  89. package/lib/models/room.js.map +1 -1
  90. package/lib/models/thread.d.ts.map +1 -1
  91. package/lib/models/thread.js +5 -4
  92. package/lib/models/thread.js.map +1 -1
  93. package/lib/oidc/authorize.d.ts +2 -2
  94. package/lib/oidc/authorize.d.ts.map +1 -1
  95. package/lib/oidc/authorize.js +5 -5
  96. package/lib/oidc/authorize.js.map +1 -1
  97. package/lib/oidc/discovery.d.ts +8 -0
  98. package/lib/oidc/discovery.d.ts.map +1 -1
  99. package/lib/oidc/discovery.js +22 -11
  100. package/lib/oidc/discovery.js.map +1 -1
  101. package/lib/oidc/index.d.ts +3 -4
  102. package/lib/oidc/index.d.ts.map +1 -1
  103. package/lib/oidc/index.js.map +1 -1
  104. package/lib/oidc/register.js +3 -3
  105. package/lib/oidc/register.js.map +1 -1
  106. package/lib/oidc/tokenRefresher.d.ts.map +1 -1
  107. package/lib/oidc/tokenRefresher.js +6 -5
  108. package/lib/oidc/tokenRefresher.js.map +1 -1
  109. package/lib/oidc/validate.d.ts +9 -23
  110. package/lib/oidc/validate.d.ts.map +1 -1
  111. package/lib/oidc/validate.js +13 -28
  112. package/lib/oidc/validate.js.map +1 -1
  113. package/lib/randomstring.d.ts +30 -3
  114. package/lib/randomstring.d.ts.map +1 -1
  115. package/lib/randomstring.js +68 -16
  116. package/lib/randomstring.js.map +1 -1
  117. package/lib/sliding-sync-sdk.d.ts +3 -4
  118. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  119. package/lib/sliding-sync-sdk.js +55 -102
  120. package/lib/sliding-sync-sdk.js.map +1 -1
  121. package/lib/sliding-sync.js +9 -6
  122. package/lib/sliding-sync.js.map +1 -1
  123. package/lib/store/indexeddb-local-backend.js +4 -2
  124. package/lib/store/indexeddb-local-backend.js.map +1 -1
  125. package/lib/store/indexeddb.d.ts +1 -1
  126. package/lib/store/indexeddb.d.ts.map +1 -1
  127. package/lib/store/indexeddb.js.map +1 -1
  128. package/lib/sync-accumulator.d.ts +6 -4
  129. package/lib/sync-accumulator.d.ts.map +1 -1
  130. package/lib/sync-accumulator.js +23 -12
  131. package/lib/sync-accumulator.js.map +1 -1
  132. package/lib/sync.d.ts +10 -13
  133. package/lib/sync.d.ts.map +1 -1
  134. package/lib/sync.js +94 -115
  135. package/lib/sync.js.map +1 -1
  136. package/lib/testing.d.ts +13 -44
  137. package/lib/testing.d.ts.map +1 -1
  138. package/lib/testing.js +36 -99
  139. package/lib/testing.js.map +1 -1
  140. package/lib/types.d.ts +0 -1
  141. package/lib/types.d.ts.map +1 -1
  142. package/lib/types.js.map +1 -1
  143. package/package.json +14 -15
  144. package/src/@types/event.ts +19 -36
  145. package/src/@types/global.d.ts +21 -4
  146. package/src/autodiscovery.ts +1 -1
  147. package/src/base64.ts +38 -40
  148. package/src/browser-index.ts +0 -11
  149. package/src/client.ts +175 -3136
  150. package/src/digest.ts +3 -3
  151. package/src/embedded.ts +43 -149
  152. package/src/event-mapper.ts +0 -4
  153. package/src/feature.ts +1 -0
  154. package/src/http-api/errors.ts +3 -3
  155. package/src/http-api/utils.ts +2 -2
  156. package/src/matrix.ts +0 -41
  157. package/src/models/MSC3089Branch.ts +0 -3
  158. package/src/models/event-timeline-set.ts +17 -38
  159. package/src/models/event-timeline.ts +11 -26
  160. package/src/models/event.ts +54 -295
  161. package/src/models/invites-ignorer-types.ts +48 -0
  162. package/src/models/invites-ignorer.ts +7 -42
  163. package/src/models/poll.ts +0 -6
  164. package/src/models/relations-container.ts +1 -8
  165. package/src/models/relations.ts +0 -8
  166. package/src/models/room-member.ts +16 -1
  167. package/src/models/room-state.ts +4 -37
  168. package/src/models/room.ts +34 -69
  169. package/src/models/thread.ts +4 -3
  170. package/src/oidc/authorize.ts +7 -7
  171. package/src/oidc/discovery.ts +16 -10
  172. package/src/oidc/index.ts +3 -4
  173. package/src/oidc/register.ts +3 -3
  174. package/src/oidc/tokenRefresher.ts +3 -2
  175. package/src/oidc/validate.ts +40 -63
  176. package/src/randomstring.ts +65 -19
  177. package/src/sliding-sync-sdk.ts +10 -83
  178. package/src/sliding-sync.ts +6 -6
  179. package/src/store/indexeddb-local-backend.ts +2 -2
  180. package/src/store/indexeddb.ts +1 -1
  181. package/src/sync-accumulator.ts +33 -16
  182. package/src/sync.ts +112 -143
  183. package/src/testing.ts +36 -103
  184. package/src/types.ts +0 -1
  185. package/CHANGELOG.md +0 -5910
  186. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
  187. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
  188. package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
  189. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
  190. package/lib/@types/crypto.d.ts +0 -47
  191. package/lib/@types/crypto.d.ts.map +0 -1
  192. package/lib/@types/crypto.js +0 -1
  193. package/lib/@types/crypto.js.map +0 -1
  194. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  195. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  196. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  197. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  198. package/lib/common-crypto/CryptoBackend.js +0 -73
  199. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  200. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  201. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  202. package/lib/common-crypto/key-passphrase.js +0 -33
  203. package/lib/common-crypto/key-passphrase.js.map +0 -1
  204. package/lib/crypto/CrossSigning.d.ts +0 -184
  205. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  206. package/lib/crypto/CrossSigning.js +0 -718
  207. package/lib/crypto/CrossSigning.js.map +0 -1
  208. package/lib/crypto/DeviceList.d.ts +0 -216
  209. package/lib/crypto/DeviceList.d.ts.map +0 -1
  210. package/lib/crypto/DeviceList.js +0 -892
  211. package/lib/crypto/DeviceList.js.map +0 -1
  212. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  213. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  214. package/lib/crypto/EncryptionSetup.js +0 -356
  215. package/lib/crypto/EncryptionSetup.js.map +0 -1
  216. package/lib/crypto/OlmDevice.d.ts +0 -457
  217. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  218. package/lib/crypto/OlmDevice.js +0 -1241
  219. package/lib/crypto/OlmDevice.js.map +0 -1
  220. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  221. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  222. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  223. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  224. package/lib/crypto/RoomList.d.ts +0 -26
  225. package/lib/crypto/RoomList.d.ts.map +0 -1
  226. package/lib/crypto/RoomList.js +0 -71
  227. package/lib/crypto/RoomList.js.map +0 -1
  228. package/lib/crypto/SecretSharing.d.ts +0 -24
  229. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  230. package/lib/crypto/SecretSharing.js +0 -194
  231. package/lib/crypto/SecretSharing.js.map +0 -1
  232. package/lib/crypto/SecretStorage.d.ts +0 -55
  233. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  234. package/lib/crypto/SecretStorage.js +0 -118
  235. package/lib/crypto/SecretStorage.js.map +0 -1
  236. package/lib/crypto/aes.d.ts +0 -6
  237. package/lib/crypto/aes.d.ts.map +0 -1
  238. package/lib/crypto/aes.js +0 -24
  239. package/lib/crypto/aes.js.map +0 -1
  240. package/lib/crypto/algorithms/base.d.ts +0 -156
  241. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  242. package/lib/crypto/algorithms/base.js +0 -187
  243. package/lib/crypto/algorithms/base.js.map +0 -1
  244. package/lib/crypto/algorithms/index.d.ts +0 -4
  245. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  246. package/lib/crypto/algorithms/index.js +0 -20
  247. package/lib/crypto/algorithms/index.js.map +0 -1
  248. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  249. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  250. package/lib/crypto/algorithms/megolm.js +0 -1822
  251. package/lib/crypto/algorithms/megolm.js.map +0 -1
  252. package/lib/crypto/algorithms/olm.d.ts +0 -5
  253. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  254. package/lib/crypto/algorithms/olm.js +0 -299
  255. package/lib/crypto/algorithms/olm.js.map +0 -1
  256. package/lib/crypto/api.d.ts +0 -32
  257. package/lib/crypto/api.d.ts.map +0 -1
  258. package/lib/crypto/api.js +0 -22
  259. package/lib/crypto/api.js.map +0 -1
  260. package/lib/crypto/backup.d.ts +0 -227
  261. package/lib/crypto/backup.d.ts.map +0 -1
  262. package/lib/crypto/backup.js +0 -824
  263. package/lib/crypto/backup.js.map +0 -1
  264. package/lib/crypto/crypto.d.ts +0 -3
  265. package/lib/crypto/crypto.d.ts.map +0 -1
  266. package/lib/crypto/crypto.js +0 -19
  267. package/lib/crypto/crypto.js.map +0 -1
  268. package/lib/crypto/dehydration.d.ts +0 -34
  269. package/lib/crypto/dehydration.d.ts.map +0 -1
  270. package/lib/crypto/dehydration.js +0 -252
  271. package/lib/crypto/dehydration.js.map +0 -1
  272. package/lib/crypto/device-converter.d.ts +0 -9
  273. package/lib/crypto/device-converter.d.ts.map +0 -1
  274. package/lib/crypto/device-converter.js +0 -42
  275. package/lib/crypto/device-converter.js.map +0 -1
  276. package/lib/crypto/deviceinfo.d.ts +0 -99
  277. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  278. package/lib/crypto/deviceinfo.js +0 -148
  279. package/lib/crypto/deviceinfo.js.map +0 -1
  280. package/lib/crypto/index.d.ts +0 -1210
  281. package/lib/crypto/index.d.ts.map +0 -1
  282. package/lib/crypto/index.js +0 -4101
  283. package/lib/crypto/index.js.map +0 -1
  284. package/lib/crypto/key_passphrase.d.ts +0 -14
  285. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  286. package/lib/crypto/key_passphrase.js +0 -44
  287. package/lib/crypto/key_passphrase.js.map +0 -1
  288. package/lib/crypto/keybackup.d.ts +0 -18
  289. package/lib/crypto/keybackup.d.ts.map +0 -1
  290. package/lib/crypto/keybackup.js +0 -1
  291. package/lib/crypto/keybackup.js.map +0 -1
  292. package/lib/crypto/olmlib.d.ts +0 -129
  293. package/lib/crypto/olmlib.d.ts.map +0 -1
  294. package/lib/crypto/olmlib.js +0 -492
  295. package/lib/crypto/olmlib.js.map +0 -1
  296. package/lib/crypto/recoverykey.d.ts +0 -2
  297. package/lib/crypto/recoverykey.d.ts.map +0 -1
  298. package/lib/crypto/recoverykey.js +0 -19
  299. package/lib/crypto/recoverykey.js.map +0 -1
  300. package/lib/crypto/store/base.d.ts +0 -252
  301. package/lib/crypto/store/base.d.ts.map +0 -1
  302. package/lib/crypto/store/base.js +0 -64
  303. package/lib/crypto/store/base.js.map +0 -1
  304. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  305. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  306. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  307. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  308. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  309. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  310. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  311. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  312. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  313. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  314. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  315. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  316. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  317. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  318. package/lib/crypto/store/memory-crypto-store.js +0 -622
  319. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  320. package/lib/crypto/verification/Base.d.ts +0 -105
  321. package/lib/crypto/verification/Base.d.ts.map +0 -1
  322. package/lib/crypto/verification/Base.js +0 -372
  323. package/lib/crypto/verification/Base.js.map +0 -1
  324. package/lib/crypto/verification/Error.d.ts +0 -35
  325. package/lib/crypto/verification/Error.d.ts.map +0 -1
  326. package/lib/crypto/verification/Error.js +0 -86
  327. package/lib/crypto/verification/Error.js.map +0 -1
  328. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  329. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  330. package/lib/crypto/verification/IllegalMethod.js +0 -43
  331. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  332. package/lib/crypto/verification/QRCode.d.ts +0 -51
  333. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  334. package/lib/crypto/verification/QRCode.js +0 -277
  335. package/lib/crypto/verification/QRCode.js.map +0 -1
  336. package/lib/crypto/verification/SAS.d.ts +0 -27
  337. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  338. package/lib/crypto/verification/SAS.js +0 -485
  339. package/lib/crypto/verification/SAS.js.map +0 -1
  340. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  341. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  342. package/lib/crypto/verification/SASDecimal.js +0 -34
  343. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  344. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  345. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  346. package/lib/crypto/verification/request/Channel.js +0 -1
  347. package/lib/crypto/verification/request/Channel.js.map +0 -1
  348. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  349. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  350. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  351. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  352. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  353. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  354. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  355. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  356. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  357. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  358. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  359. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  360. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  361. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  362. package/lib/crypto-api/CryptoEvent.js +0 -33
  363. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  364. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  365. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  366. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  367. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  368. package/lib/crypto-api/index.d.ts +0 -978
  369. package/lib/crypto-api/index.d.ts.map +0 -1
  370. package/lib/crypto-api/index.js +0 -304
  371. package/lib/crypto-api/index.js.map +0 -1
  372. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  373. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  374. package/lib/crypto-api/key-passphrase.js +0 -51
  375. package/lib/crypto-api/key-passphrase.js.map +0 -1
  376. package/lib/crypto-api/keybackup.d.ts +0 -88
  377. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  378. package/lib/crypto-api/keybackup.js +0 -1
  379. package/lib/crypto-api/keybackup.js.map +0 -1
  380. package/lib/crypto-api/recovery-key.d.ts +0 -11
  381. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  382. package/lib/crypto-api/recovery-key.js +0 -65
  383. package/lib/crypto-api/recovery-key.js.map +0 -1
  384. package/lib/crypto-api/verification.d.ts +0 -344
  385. package/lib/crypto-api/verification.d.ts.map +0 -1
  386. package/lib/crypto-api/verification.js +0 -91
  387. package/lib/crypto-api/verification.js.map +0 -1
  388. package/lib/matrixrtc/CallMembership.d.ts +0 -66
  389. package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
  390. package/lib/matrixrtc/CallMembership.js +0 -197
  391. package/lib/matrixrtc/CallMembership.js.map +0 -1
  392. package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
  393. package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
  394. package/lib/matrixrtc/LivekitFocus.js +0 -20
  395. package/lib/matrixrtc/LivekitFocus.js.map +0 -1
  396. package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
  397. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
  398. package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
  399. package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
  400. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
  401. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
  402. package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
  403. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
  404. package/lib/matrixrtc/focus.d.ts +0 -10
  405. package/lib/matrixrtc/focus.d.ts.map +0 -1
  406. package/lib/matrixrtc/focus.js +0 -1
  407. package/lib/matrixrtc/focus.js.map +0 -1
  408. package/lib/matrixrtc/index.d.ts +0 -7
  409. package/lib/matrixrtc/index.d.ts.map +0 -1
  410. package/lib/matrixrtc/index.js +0 -21
  411. package/lib/matrixrtc/index.js.map +0 -1
  412. package/lib/matrixrtc/types.d.ts +0 -19
  413. package/lib/matrixrtc/types.d.ts.map +0 -1
  414. package/lib/matrixrtc/types.js +0 -1
  415. package/lib/matrixrtc/types.js.map +0 -1
  416. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  417. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  418. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  419. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  420. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  421. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  422. package/lib/rendezvous/RendezvousChannel.js +0 -1
  423. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  424. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  425. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  426. package/lib/rendezvous/RendezvousCode.js +0 -1
  427. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  428. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  429. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  430. package/lib/rendezvous/RendezvousError.js +0 -23
  431. package/lib/rendezvous/RendezvousError.js.map +0 -1
  432. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  433. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  434. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  435. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  436. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  437. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  438. package/lib/rendezvous/RendezvousIntent.js +0 -22
  439. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  440. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  441. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  442. package/lib/rendezvous/RendezvousTransport.js +0 -1
  443. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  444. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  445. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  446. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  447. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  448. package/lib/rendezvous/channels/index.d.ts +0 -2
  449. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  450. package/lib/rendezvous/channels/index.js +0 -18
  451. package/lib/rendezvous/channels/index.js.map +0 -1
  452. package/lib/rendezvous/index.d.ts +0 -10
  453. package/lib/rendezvous/index.d.ts.map +0 -1
  454. package/lib/rendezvous/index.js +0 -23
  455. package/lib/rendezvous/index.js.map +0 -1
  456. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  457. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  458. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  459. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  460. package/lib/rendezvous/transports/index.d.ts +0 -2
  461. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  462. package/lib/rendezvous/transports/index.js +0 -18
  463. package/lib/rendezvous/transports/index.js.map +0 -1
  464. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  465. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  466. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  467. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  468. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  469. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  470. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  471. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  472. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  473. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  474. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  475. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  476. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  477. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  478. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  479. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  480. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  481. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  482. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  483. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  484. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  485. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  486. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  487. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  488. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  489. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  490. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  491. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  492. package/lib/rust-crypto/backup.d.ts +0 -254
  493. package/lib/rust-crypto/backup.d.ts.map +0 -1
  494. package/lib/rust-crypto/backup.js +0 -837
  495. package/lib/rust-crypto/backup.js.map +0 -1
  496. package/lib/rust-crypto/constants.d.ts +0 -3
  497. package/lib/rust-crypto/constants.d.ts.map +0 -1
  498. package/lib/rust-crypto/constants.js +0 -19
  499. package/lib/rust-crypto/constants.js.map +0 -1
  500. package/lib/rust-crypto/device-converter.d.ts +0 -28
  501. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  502. package/lib/rust-crypto/device-converter.js +0 -123
  503. package/lib/rust-crypto/device-converter.js.map +0 -1
  504. package/lib/rust-crypto/index.d.ts +0 -61
  505. package/lib/rust-crypto/index.d.ts.map +0 -1
  506. package/lib/rust-crypto/index.js +0 -152
  507. package/lib/rust-crypto/index.js.map +0 -1
  508. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  509. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  510. package/lib/rust-crypto/libolm_migration.js +0 -459
  511. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  512. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  513. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  514. package/lib/rust-crypto/rust-crypto.js +0 -2016
  515. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  516. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  517. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  518. package/lib/rust-crypto/secret-storage.js +0 -63
  519. package/lib/rust-crypto/secret-storage.js.map +0 -1
  520. package/lib/rust-crypto/verification.d.ts +0 -319
  521. package/lib/rust-crypto/verification.d.ts.map +0 -1
  522. package/lib/rust-crypto/verification.js +0 -816
  523. package/lib/rust-crypto/verification.js.map +0 -1
  524. package/lib/secret-storage.d.ts +0 -370
  525. package/lib/secret-storage.d.ts.map +0 -1
  526. package/lib/secret-storage.js +0 -466
  527. package/lib/secret-storage.js.map +0 -1
  528. package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
  529. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
  530. package/lib/utils/decryptAESSecretStorageItem.js +0 -50
  531. package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
  532. package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
  533. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
  534. package/lib/utils/encryptAESSecretStorageItem.js +0 -68
  535. package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
  536. package/lib/utils/internal/deriveKeys.d.ts +0 -10
  537. package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
  538. package/lib/utils/internal/deriveKeys.js +0 -60
  539. package/lib/utils/internal/deriveKeys.js.map +0 -1
  540. package/lib/webrtc/audioContext.d.ts +0 -15
  541. package/lib/webrtc/audioContext.d.ts.map +0 -1
  542. package/lib/webrtc/audioContext.js +0 -46
  543. package/lib/webrtc/audioContext.js.map +0 -1
  544. package/lib/webrtc/call.d.ts +0 -560
  545. package/lib/webrtc/call.d.ts.map +0 -1
  546. package/lib/webrtc/call.js +0 -2541
  547. package/lib/webrtc/call.js.map +0 -1
  548. package/lib/webrtc/callEventHandler.d.ts +0 -37
  549. package/lib/webrtc/callEventHandler.d.ts.map +0 -1
  550. package/lib/webrtc/callEventHandler.js +0 -344
  551. package/lib/webrtc/callEventHandler.js.map +0 -1
  552. package/lib/webrtc/callEventTypes.d.ts +0 -73
  553. package/lib/webrtc/callEventTypes.d.ts.map +0 -1
  554. package/lib/webrtc/callEventTypes.js +0 -13
  555. package/lib/webrtc/callEventTypes.js.map +0 -1
  556. package/lib/webrtc/callFeed.d.ts +0 -128
  557. package/lib/webrtc/callFeed.d.ts.map +0 -1
  558. package/lib/webrtc/callFeed.js +0 -289
  559. package/lib/webrtc/callFeed.js.map +0 -1
  560. package/lib/webrtc/groupCall.d.ts +0 -323
  561. package/lib/webrtc/groupCall.d.ts.map +0 -1
  562. package/lib/webrtc/groupCall.js +0 -1337
  563. package/lib/webrtc/groupCall.js.map +0 -1
  564. package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
  565. package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
  566. package/lib/webrtc/groupCallEventHandler.js +0 -178
  567. package/lib/webrtc/groupCallEventHandler.js.map +0 -1
  568. package/lib/webrtc/mediaHandler.d.ts +0 -89
  569. package/lib/webrtc/mediaHandler.d.ts.map +0 -1
  570. package/lib/webrtc/mediaHandler.js +0 -437
  571. package/lib/webrtc/mediaHandler.js.map +0 -1
  572. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
  573. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
  574. package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
  575. package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
  576. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
  577. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
  578. package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
  579. package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
  580. package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
  581. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
  582. package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
  583. package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
  584. package/lib/webrtc/stats/connectionStats.d.ts +0 -28
  585. package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
  586. package/lib/webrtc/stats/connectionStats.js +0 -26
  587. package/lib/webrtc/stats/connectionStats.js.map +0 -1
  588. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
  589. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
  590. package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
  591. package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
  592. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
  593. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
  594. package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
  595. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
  596. package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
  597. package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
  598. package/lib/webrtc/stats/groupCallStats.js +0 -78
  599. package/lib/webrtc/stats/groupCallStats.js.map +0 -1
  600. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
  601. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
  602. package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
  603. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
  604. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
  605. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
  606. package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
  607. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
  608. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
  609. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
  610. package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
  611. package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
  612. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
  613. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
  614. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
  615. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
  616. package/lib/webrtc/stats/statsReport.d.ts +0 -99
  617. package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
  618. package/lib/webrtc/stats/statsReport.js +0 -32
  619. package/lib/webrtc/stats/statsReport.js.map +0 -1
  620. package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
  621. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
  622. package/lib/webrtc/stats/statsReportEmitter.js +0 -33
  623. package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
  624. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
  625. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
  626. package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
  627. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
  628. package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
  629. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
  630. package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
  631. package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
  632. package/lib/webrtc/stats/transportStats.d.ts +0 -11
  633. package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
  634. package/lib/webrtc/stats/transportStats.js +0 -1
  635. package/lib/webrtc/stats/transportStats.js.map +0 -1
  636. package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
  637. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
  638. package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
  639. package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
  640. package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
  641. package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
  642. package/lib/webrtc/stats/valueFormatter.js +0 -25
  643. package/lib/webrtc/stats/valueFormatter.js.map +0 -1
  644. package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
  645. package/src/@types/crypto.ts +0 -73
  646. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  647. package/src/common-crypto/CryptoBackend.ts +0 -302
  648. package/src/common-crypto/README.md +0 -4
  649. package/src/common-crypto/key-passphrase.ts +0 -43
  650. package/src/crypto/CrossSigning.ts +0 -773
  651. package/src/crypto/DeviceList.ts +0 -989
  652. package/src/crypto/EncryptionSetup.ts +0 -351
  653. package/src/crypto/OlmDevice.ts +0 -1500
  654. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  655. package/src/crypto/RoomList.ts +0 -70
  656. package/src/crypto/SecretSharing.ts +0 -240
  657. package/src/crypto/SecretStorage.ts +0 -136
  658. package/src/crypto/aes.ts +0 -23
  659. package/src/crypto/algorithms/base.ts +0 -236
  660. package/src/crypto/algorithms/index.ts +0 -20
  661. package/src/crypto/algorithms/megolm.ts +0 -2216
  662. package/src/crypto/algorithms/olm.ts +0 -381
  663. package/src/crypto/api.ts +0 -70
  664. package/src/crypto/backup.ts +0 -922
  665. package/src/crypto/crypto.ts +0 -18
  666. package/src/crypto/dehydration.ts +0 -272
  667. package/src/crypto/device-converter.ts +0 -45
  668. package/src/crypto/deviceinfo.ts +0 -158
  669. package/src/crypto/index.ts +0 -4418
  670. package/src/crypto/key_passphrase.ts +0 -42
  671. package/src/crypto/keybackup.ts +0 -47
  672. package/src/crypto/olmlib.ts +0 -539
  673. package/src/crypto/recoverykey.ts +0 -18
  674. package/src/crypto/store/base.ts +0 -348
  675. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  676. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  677. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  678. package/src/crypto/store/memory-crypto-store.ts +0 -680
  679. package/src/crypto/verification/Base.ts +0 -409
  680. package/src/crypto/verification/Error.ts +0 -76
  681. package/src/crypto/verification/IllegalMethod.ts +0 -50
  682. package/src/crypto/verification/QRCode.ts +0 -310
  683. package/src/crypto/verification/SAS.ts +0 -494
  684. package/src/crypto/verification/SASDecimal.ts +0 -37
  685. package/src/crypto/verification/request/Channel.ts +0 -34
  686. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  687. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  688. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  689. package/src/crypto-api/CryptoEvent.ts +0 -93
  690. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  691. package/src/crypto-api/index.ts +0 -1175
  692. package/src/crypto-api/key-passphrase.ts +0 -58
  693. package/src/crypto-api/keybackup.ts +0 -115
  694. package/src/crypto-api/recovery-key.ts +0 -69
  695. package/src/crypto-api/verification.ts +0 -408
  696. package/src/matrixrtc/CallMembership.ts +0 -247
  697. package/src/matrixrtc/LivekitFocus.ts +0 -39
  698. package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
  699. package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
  700. package/src/matrixrtc/focus.ts +0 -25
  701. package/src/matrixrtc/index.ts +0 -22
  702. package/src/matrixrtc/types.ts +0 -36
  703. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  704. package/src/rendezvous/RendezvousChannel.ts +0 -48
  705. package/src/rendezvous/RendezvousCode.ts +0 -25
  706. package/src/rendezvous/RendezvousError.ts +0 -26
  707. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  708. package/src/rendezvous/RendezvousIntent.ts +0 -20
  709. package/src/rendezvous/RendezvousTransport.ts +0 -58
  710. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  711. package/src/rendezvous/channels/index.ts +0 -17
  712. package/src/rendezvous/index.ts +0 -25
  713. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  714. package/src/rendezvous/transports/index.ts +0 -17
  715. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  716. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  717. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  718. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  719. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  720. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  721. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  722. package/src/rust-crypto/backup.ts +0 -881
  723. package/src/rust-crypto/constants.ts +0 -18
  724. package/src/rust-crypto/device-converter.ts +0 -128
  725. package/src/rust-crypto/index.ts +0 -237
  726. package/src/rust-crypto/libolm_migration.ts +0 -530
  727. package/src/rust-crypto/rust-crypto.ts +0 -2205
  728. package/src/rust-crypto/secret-storage.ts +0 -60
  729. package/src/rust-crypto/verification.ts +0 -830
  730. package/src/secret-storage.ts +0 -693
  731. package/src/utils/decryptAESSecretStorageItem.ts +0 -54
  732. package/src/utils/encryptAESSecretStorageItem.ts +0 -73
  733. package/src/utils/internal/deriveKeys.ts +0 -63
  734. package/src/webrtc/audioContext.ts +0 -44
  735. package/src/webrtc/call.ts +0 -3074
  736. package/src/webrtc/callEventHandler.ts +0 -425
  737. package/src/webrtc/callEventTypes.ts +0 -93
  738. package/src/webrtc/callFeed.ts +0 -364
  739. package/src/webrtc/groupCall.ts +0 -1735
  740. package/src/webrtc/groupCallEventHandler.ts +0 -234
  741. package/src/webrtc/mediaHandler.ts +0 -484
  742. package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
  743. package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
  744. package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
  745. package/src/webrtc/stats/connectionStats.ts +0 -47
  746. package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
  747. package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
  748. package/src/webrtc/stats/groupCallStats.ts +0 -93
  749. package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
  750. package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
  751. package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
  752. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
  753. package/src/webrtc/stats/statsReport.ts +0 -133
  754. package/src/webrtc/stats/statsReportEmitter.ts +0 -49
  755. package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
  756. package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
  757. package/src/webrtc/stats/transportStats.ts +0 -26
  758. package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
  759. package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -1,531 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- /*
3
- Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
4
-
5
- Licensed under the Apache License, Version 2.0 (the "License");
6
- you may not use this file except in compliance with the License.
7
- You may obtain a copy of the License at
8
-
9
- http://www.apache.org/licenses/LICENSE-2.0
10
-
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS IS" BASIS,
13
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- See the License for the specific language governing permissions and
15
- limitations under the License.
16
- */
17
-
18
- import { logger } from "../../logger.js";
19
- import { MemoryCryptoStore } from "./memory-crypto-store.js";
20
- import { MigrationState, SESSION_BATCH_SIZE } from "./base.js";
21
- import { safeSet } from "../../utils.js";
22
- /**
23
- * Internal module. Partial localStorage backed storage for e2e.
24
- * This is not a full crypto store, just the in-memory store with
25
- * some things backed by localStorage. It exists because indexedDB
26
- * is broken in Firefox private mode or set to, "will not remember
27
- * history".
28
- */
29
-
30
- var E2E_PREFIX = "crypto.";
31
- var KEY_END_TO_END_MIGRATION_STATE = E2E_PREFIX + "migration";
32
- var KEY_END_TO_END_ACCOUNT = E2E_PREFIX + "account";
33
- var KEY_CROSS_SIGNING_KEYS = E2E_PREFIX + "cross_signing_keys";
34
- var KEY_NOTIFIED_ERROR_DEVICES = E2E_PREFIX + "notified_error_devices";
35
- var KEY_DEVICE_DATA = E2E_PREFIX + "device_data";
36
- var KEY_INBOUND_SESSION_PREFIX = E2E_PREFIX + "inboundgroupsessions/";
37
- var KEY_INBOUND_SESSION_WITHHELD_PREFIX = E2E_PREFIX + "inboundgroupsessions.withheld/";
38
- var KEY_ROOMS_PREFIX = E2E_PREFIX + "rooms/";
39
- var KEY_SESSIONS_NEEDING_BACKUP = E2E_PREFIX + "sessionsneedingbackup";
40
- function keyEndToEndSessions(deviceKey) {
41
- return E2E_PREFIX + "sessions/" + deviceKey;
42
- }
43
- function keyEndToEndSessionProblems(deviceKey) {
44
- return E2E_PREFIX + "session.problems/" + deviceKey;
45
- }
46
- function keyEndToEndInboundGroupSession(senderKey, sessionId) {
47
- return KEY_INBOUND_SESSION_PREFIX + senderKey + "/" + sessionId;
48
- }
49
- function keyEndToEndInboundGroupSessionWithheld(senderKey, sessionId) {
50
- return KEY_INBOUND_SESSION_WITHHELD_PREFIX + senderKey + "/" + sessionId;
51
- }
52
- function keyEndToEndRoomsPrefix(roomId) {
53
- return KEY_ROOMS_PREFIX + roomId;
54
- }
55
- export class LocalStorageCryptoStore extends MemoryCryptoStore {
56
- static exists(store) {
57
- var length = store.length;
58
- for (var i = 0; i < length; i++) {
59
- var _store$key;
60
- if ((_store$key = store.key(i)) !== null && _store$key !== void 0 && _store$key.startsWith(E2E_PREFIX)) {
61
- return true;
62
- }
63
- }
64
- return false;
65
- }
66
- constructor(store) {
67
- super();
68
- this.store = store;
69
- }
70
-
71
- /**
72
- * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
73
- *
74
- * Implementation of {@link CryptoStore.containsData}.
75
- *
76
- * @internal
77
- */
78
- containsData() {
79
- var _this = this;
80
- return _asyncToGenerator(function* () {
81
- return LocalStorageCryptoStore.exists(_this.store);
82
- })();
83
- }
84
-
85
- /**
86
- * Get data on how much of the libolm to Rust Crypto migration has been done.
87
- *
88
- * Implementation of {@link CryptoStore.getMigrationState}.
89
- *
90
- * @internal
91
- */
92
- getMigrationState() {
93
- var _this2 = this;
94
- return _asyncToGenerator(function* () {
95
- var _getJsonItem;
96
- return (_getJsonItem = getJsonItem(_this2.store, KEY_END_TO_END_MIGRATION_STATE)) !== null && _getJsonItem !== void 0 ? _getJsonItem : MigrationState.NOT_STARTED;
97
- })();
98
- }
99
-
100
- /**
101
- * Set data on how much of the libolm to Rust Crypto migration has been done.
102
- *
103
- * Implementation of {@link CryptoStore.setMigrationState}.
104
- *
105
- * @internal
106
- */
107
- setMigrationState(migrationState) {
108
- var _this3 = this;
109
- return _asyncToGenerator(function* () {
110
- setJsonItem(_this3.store, KEY_END_TO_END_MIGRATION_STATE, migrationState);
111
- })();
112
- }
113
-
114
- // Olm Sessions
115
-
116
- countEndToEndSessions(txn, func) {
117
- var count = 0;
118
- for (var i = 0; i < this.store.length; ++i) {
119
- var key = this.store.key(i);
120
- if (key !== null && key !== void 0 && key.startsWith(keyEndToEndSessions(""))) {
121
- var sessions = getJsonItem(this.store, key);
122
- count += Object.keys(sessions !== null && sessions !== void 0 ? sessions : {}).length;
123
- }
124
- }
125
- func(count);
126
- }
127
-
128
- // eslint-disable-next-line @typescript-eslint/naming-convention
129
- _getEndToEndSessions(deviceKey) {
130
- var sessions = getJsonItem(this.store, keyEndToEndSessions(deviceKey));
131
- var fixedSessions = {};
132
-
133
- // fix up any old sessions to be objects rather than just the base64 pickle
134
- for (var [sid, val] of Object.entries(sessions || {})) {
135
- if (typeof val === "string") {
136
- fixedSessions[sid] = {
137
- session: val
138
- };
139
- } else {
140
- fixedSessions[sid] = val;
141
- }
142
- }
143
- return fixedSessions;
144
- }
145
- getEndToEndSession(deviceKey, sessionId, txn, func) {
146
- var sessions = this._getEndToEndSessions(deviceKey);
147
- func(sessions[sessionId] || {});
148
- }
149
- getEndToEndSessions(deviceKey, txn, func) {
150
- func(this._getEndToEndSessions(deviceKey) || {});
151
- }
152
- getAllEndToEndSessions(txn, func) {
153
- for (var i = 0; i < this.store.length; ++i) {
154
- var _this$store$key;
155
- if ((_this$store$key = this.store.key(i)) !== null && _this$store$key !== void 0 && _this$store$key.startsWith(keyEndToEndSessions(""))) {
156
- var deviceKey = this.store.key(i).split("/")[1];
157
- for (var sess of Object.values(this._getEndToEndSessions(deviceKey))) {
158
- func(sess);
159
- }
160
- }
161
- }
162
- }
163
- storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn) {
164
- var sessions = this._getEndToEndSessions(deviceKey) || {};
165
- sessions[sessionId] = sessionInfo;
166
- setJsonItem(this.store, keyEndToEndSessions(deviceKey), sessions);
167
- }
168
- storeEndToEndSessionProblem(deviceKey, type, fixed) {
169
- var _this4 = this;
170
- return _asyncToGenerator(function* () {
171
- var key = keyEndToEndSessionProblems(deviceKey);
172
- var problems = getJsonItem(_this4.store, key) || [];
173
- problems.push({
174
- type,
175
- fixed,
176
- time: Date.now()
177
- });
178
- problems.sort((a, b) => {
179
- return a.time - b.time;
180
- });
181
- setJsonItem(_this4.store, key, problems);
182
- })();
183
- }
184
- getEndToEndSessionProblem(deviceKey, timestamp) {
185
- var _this5 = this;
186
- return _asyncToGenerator(function* () {
187
- var key = keyEndToEndSessionProblems(deviceKey);
188
- var problems = getJsonItem(_this5.store, key) || [];
189
- if (!problems.length) {
190
- return null;
191
- }
192
- var lastProblem = problems[problems.length - 1];
193
- for (var problem of problems) {
194
- if (problem.time > timestamp) {
195
- return Object.assign({}, problem, {
196
- fixed: lastProblem.fixed
197
- });
198
- }
199
- }
200
- if (lastProblem.fixed) {
201
- return null;
202
- } else {
203
- return lastProblem;
204
- }
205
- })();
206
- }
207
- filterOutNotifiedErrorDevices(devices) {
208
- var _this6 = this;
209
- return _asyncToGenerator(function* () {
210
- var notifiedErrorDevices = getJsonItem(_this6.store, KEY_NOTIFIED_ERROR_DEVICES) || {};
211
- var ret = [];
212
- for (var device of devices) {
213
- var {
214
- userId,
215
- deviceInfo
216
- } = device;
217
- if (userId in notifiedErrorDevices) {
218
- if (!(deviceInfo.deviceId in notifiedErrorDevices[userId])) {
219
- ret.push(device);
220
- safeSet(notifiedErrorDevices[userId], deviceInfo.deviceId, true);
221
- }
222
- } else {
223
- ret.push(device);
224
- safeSet(notifiedErrorDevices, userId, {
225
- [deviceInfo.deviceId]: true
226
- });
227
- }
228
- }
229
- setJsonItem(_this6.store, KEY_NOTIFIED_ERROR_DEVICES, notifiedErrorDevices);
230
- return ret;
231
- })();
232
- }
233
-
234
- /**
235
- * Fetch a batch of Olm sessions from the database.
236
- *
237
- * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
238
- *
239
- * @internal
240
- */
241
- getEndToEndSessionsBatch() {
242
- var _this7 = this;
243
- return _asyncToGenerator(function* () {
244
- var result = [];
245
- for (var i = 0; i < _this7.store.length; ++i) {
246
- var _this7$store$key;
247
- if ((_this7$store$key = _this7.store.key(i)) !== null && _this7$store$key !== void 0 && _this7$store$key.startsWith(keyEndToEndSessions(""))) {
248
- var deviceKey = _this7.store.key(i).split("/")[1];
249
- for (var session of Object.values(_this7._getEndToEndSessions(deviceKey))) {
250
- result.push(session);
251
- if (result.length >= SESSION_BATCH_SIZE) {
252
- return result;
253
- }
254
- }
255
- }
256
- }
257
- if (result.length === 0) {
258
- // No sessions left.
259
- return null;
260
- }
261
-
262
- // There are fewer sessions than the batch size; return the final batch of sessions.
263
- return result;
264
- })();
265
- }
266
-
267
- /**
268
- * Delete a batch of Olm sessions from the database.
269
- *
270
- * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
271
- *
272
- * @internal
273
- */
274
- deleteEndToEndSessionsBatch(sessions) {
275
- var _this8 = this;
276
- return _asyncToGenerator(function* () {
277
- for (var {
278
- deviceKey,
279
- sessionId
280
- } of sessions) {
281
- var deviceSessions = _this8._getEndToEndSessions(deviceKey) || {};
282
- delete deviceSessions[sessionId];
283
- if (Object.keys(deviceSessions).length === 0) {
284
- // No more sessions for this device.
285
- _this8.store.removeItem(keyEndToEndSessions(deviceKey));
286
- } else {
287
- setJsonItem(_this8.store, keyEndToEndSessions(deviceKey), deviceSessions);
288
- }
289
- }
290
- })();
291
- }
292
-
293
- // Inbound Group Sessions
294
-
295
- getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func) {
296
- func(getJsonItem(this.store, keyEndToEndInboundGroupSession(senderCurve25519Key, sessionId)), getJsonItem(this.store, keyEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId)));
297
- }
298
- getAllEndToEndInboundGroupSessions(txn, func) {
299
- for (var i = 0; i < this.store.length; ++i) {
300
- var key = this.store.key(i);
301
- if (key !== null && key !== void 0 && key.startsWith(KEY_INBOUND_SESSION_PREFIX)) {
302
- // we can't use split, as the components we are trying to split out
303
- // might themselves contain '/' characters. We rely on the
304
- // senderKey being a (32-byte) curve25519 key, base64-encoded
305
- // (hence 43 characters long).
306
-
307
- func({
308
- senderKey: key.slice(KEY_INBOUND_SESSION_PREFIX.length, KEY_INBOUND_SESSION_PREFIX.length + 43),
309
- sessionId: key.slice(KEY_INBOUND_SESSION_PREFIX.length + 44),
310
- sessionData: getJsonItem(this.store, key)
311
- });
312
- }
313
- }
314
- func(null);
315
- }
316
- addEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
317
- var existing = getJsonItem(this.store, keyEndToEndInboundGroupSession(senderCurve25519Key, sessionId));
318
- if (!existing) {
319
- this.storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn);
320
- }
321
- }
322
- storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
323
- setJsonItem(this.store, keyEndToEndInboundGroupSession(senderCurve25519Key, sessionId), sessionData);
324
- }
325
- storeEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId, sessionData, txn) {
326
- setJsonItem(this.store, keyEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId), sessionData);
327
- }
328
-
329
- /**
330
- * Count the number of Megolm sessions in the database.
331
- *
332
- * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
333
- *
334
- * @internal
335
- */
336
- countEndToEndInboundGroupSessions() {
337
- var _this9 = this;
338
- return _asyncToGenerator(function* () {
339
- var count = 0;
340
- for (var i = 0; i < _this9.store.length; ++i) {
341
- var key = _this9.store.key(i);
342
- if (key !== null && key !== void 0 && key.startsWith(KEY_INBOUND_SESSION_PREFIX)) {
343
- count += 1;
344
- }
345
- }
346
- return count;
347
- })();
348
- }
349
-
350
- /**
351
- * Fetch a batch of Megolm sessions from the database.
352
- *
353
- * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
354
- *
355
- * @internal
356
- */
357
- getEndToEndInboundGroupSessionsBatch() {
358
- var _this10 = this;
359
- return _asyncToGenerator(function* () {
360
- var sessionsNeedingBackup = getJsonItem(_this10.store, KEY_SESSIONS_NEEDING_BACKUP) || {};
361
- var result = [];
362
- for (var i = 0; i < _this10.store.length; ++i) {
363
- var key = _this10.store.key(i);
364
- if (key !== null && key !== void 0 && key.startsWith(KEY_INBOUND_SESSION_PREFIX)) {
365
- var key2 = key.slice(KEY_INBOUND_SESSION_PREFIX.length);
366
-
367
- // we can't use split, as the components we are trying to split out
368
- // might themselves contain '/' characters. We rely on the
369
- // senderKey being a (32-byte) curve25519 key, base64-encoded
370
- // (hence 43 characters long).
371
-
372
- result.push({
373
- senderKey: key2.slice(0, 43),
374
- sessionId: key2.slice(44),
375
- sessionData: getJsonItem(_this10.store, key),
376
- needsBackup: key2 in sessionsNeedingBackup
377
- });
378
- if (result.length >= SESSION_BATCH_SIZE) {
379
- return result;
380
- }
381
- }
382
- }
383
- if (result.length === 0) {
384
- // No sessions left.
385
- return null;
386
- }
387
-
388
- // There are fewer sessions than the batch size; return the final batch of sessions.
389
- return result;
390
- })();
391
- }
392
-
393
- /**
394
- * Delete a batch of Megolm sessions from the database.
395
- *
396
- * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
397
- *
398
- * @internal
399
- */
400
- deleteEndToEndInboundGroupSessionsBatch(sessions) {
401
- var _this11 = this;
402
- return _asyncToGenerator(function* () {
403
- for (var {
404
- senderKey,
405
- sessionId
406
- } of sessions) {
407
- var k = keyEndToEndInboundGroupSession(senderKey, sessionId);
408
- _this11.store.removeItem(k);
409
- }
410
- })();
411
- }
412
- getEndToEndDeviceData(txn, func) {
413
- func(getJsonItem(this.store, KEY_DEVICE_DATA));
414
- }
415
- storeEndToEndDeviceData(deviceData, txn) {
416
- setJsonItem(this.store, KEY_DEVICE_DATA, deviceData);
417
- }
418
- storeEndToEndRoom(roomId, roomInfo, txn) {
419
- setJsonItem(this.store, keyEndToEndRoomsPrefix(roomId), roomInfo);
420
- }
421
- getEndToEndRooms(txn, func) {
422
- var result = {};
423
- var prefix = keyEndToEndRoomsPrefix("");
424
- for (var i = 0; i < this.store.length; ++i) {
425
- var key = this.store.key(i);
426
- if (key !== null && key !== void 0 && key.startsWith(prefix)) {
427
- var roomId = key.slice(prefix.length);
428
- result[roomId] = getJsonItem(this.store, key);
429
- }
430
- }
431
- func(result);
432
- }
433
- getSessionsNeedingBackup(limit) {
434
- var _this12 = this;
435
- var sessionsNeedingBackup = getJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};
436
- var sessions = [];
437
- var _loop = function _loop() {
438
- if (Object.prototype.hasOwnProperty.call(sessionsNeedingBackup, session)) {
439
- // see getAllEndToEndInboundGroupSessions for the magic number explanations
440
- var senderKey = session.slice(0, 43);
441
- var sessionId = session.slice(44);
442
- _this12.getEndToEndInboundGroupSession(senderKey, sessionId, null, sessionData => {
443
- sessions.push({
444
- senderKey: senderKey,
445
- sessionId: sessionId,
446
- sessionData: sessionData
447
- });
448
- });
449
- if (limit && sessions.length >= limit) {
450
- return 1; // break
451
- }
452
- }
453
- };
454
- for (var session in sessionsNeedingBackup) {
455
- if (_loop()) break;
456
- }
457
- return Promise.resolve(sessions);
458
- }
459
- countSessionsNeedingBackup() {
460
- var sessionsNeedingBackup = getJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};
461
- return Promise.resolve(Object.keys(sessionsNeedingBackup).length);
462
- }
463
- unmarkSessionsNeedingBackup(sessions) {
464
- var sessionsNeedingBackup = getJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};
465
- for (var session of sessions) {
466
- delete sessionsNeedingBackup[session.senderKey + "/" + session.sessionId];
467
- }
468
- setJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP, sessionsNeedingBackup);
469
- return Promise.resolve();
470
- }
471
- markSessionsNeedingBackup(sessions) {
472
- var sessionsNeedingBackup = getJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};
473
- for (var session of sessions) {
474
- sessionsNeedingBackup[session.senderKey + "/" + session.sessionId] = true;
475
- }
476
- setJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP, sessionsNeedingBackup);
477
- return Promise.resolve();
478
- }
479
-
480
- /**
481
- * Delete all data from this store.
482
- *
483
- * @returns Promise which resolves when the store has been cleared.
484
- */
485
- deleteAllData() {
486
- this.store.removeItem(KEY_END_TO_END_ACCOUNT);
487
- return Promise.resolve();
488
- }
489
-
490
- // Olm account
491
-
492
- getAccount(txn, func) {
493
- var accountPickle = getJsonItem(this.store, KEY_END_TO_END_ACCOUNT);
494
- func(accountPickle);
495
- }
496
- storeAccount(txn, accountPickle) {
497
- setJsonItem(this.store, KEY_END_TO_END_ACCOUNT, accountPickle);
498
- }
499
- getCrossSigningKeys(txn, func) {
500
- var keys = getJsonItem(this.store, KEY_CROSS_SIGNING_KEYS);
501
- func(keys);
502
- }
503
- getSecretStorePrivateKey(txn, func, type) {
504
- var key = getJsonItem(this.store, E2E_PREFIX + "ssss_cache.".concat(type));
505
- func(key);
506
- }
507
- storeCrossSigningKeys(txn, keys) {
508
- setJsonItem(this.store, KEY_CROSS_SIGNING_KEYS, keys);
509
- }
510
- storeSecretStorePrivateKey(txn, type, key) {
511
- setJsonItem(this.store, E2E_PREFIX + "ssss_cache.".concat(type), key);
512
- }
513
- doTxn(mode, stores, func) {
514
- return Promise.resolve(func(null));
515
- }
516
- }
517
- function getJsonItem(store, key) {
518
- try {
519
- // if the key is absent, store.getItem() returns null, and
520
- // JSON.parse(null) === null, so this returns null.
521
- return JSON.parse(store.getItem(key));
522
- } catch (e) {
523
- logger.log("Error: Failed to get key %s: %s", key, e.message);
524
- logger.log(e.stack);
525
- }
526
- return null;
527
- }
528
- function setJsonItem(store, key, val) {
529
- store.setItem(key, JSON.stringify(val));
530
- }
531
- //# sourceMappingURL=localStorage-crypto-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"localStorage-crypto-store.js","names":["logger","MemoryCryptoStore","MigrationState","SESSION_BATCH_SIZE","safeSet","E2E_PREFIX","KEY_END_TO_END_MIGRATION_STATE","KEY_END_TO_END_ACCOUNT","KEY_CROSS_SIGNING_KEYS","KEY_NOTIFIED_ERROR_DEVICES","KEY_DEVICE_DATA","KEY_INBOUND_SESSION_PREFIX","KEY_INBOUND_SESSION_WITHHELD_PREFIX","KEY_ROOMS_PREFIX","KEY_SESSIONS_NEEDING_BACKUP","keyEndToEndSessions","deviceKey","keyEndToEndSessionProblems","keyEndToEndInboundGroupSession","senderKey","sessionId","keyEndToEndInboundGroupSessionWithheld","keyEndToEndRoomsPrefix","roomId","LocalStorageCryptoStore","exists","store","length","i","_store$key","key","startsWith","constructor","containsData","_this","_asyncToGenerator","getMigrationState","_this2","_getJsonItem","getJsonItem","NOT_STARTED","setMigrationState","migrationState","_this3","setJsonItem","countEndToEndSessions","txn","func","count","sessions","Object","keys","_getEndToEndSessions","fixedSessions","sid","val","entries","session","getEndToEndSession","getEndToEndSessions","getAllEndToEndSessions","_this$store$key","split","sess","values","storeEndToEndSession","sessionInfo","storeEndToEndSessionProblem","type","fixed","_this4","problems","push","time","Date","now","sort","a","b","getEndToEndSessionProblem","timestamp","_this5","lastProblem","problem","assign","filterOutNotifiedErrorDevices","devices","_this6","notifiedErrorDevices","ret","device","userId","deviceInfo","deviceId","getEndToEndSessionsBatch","_this7","result","_this7$store$key","deleteEndToEndSessionsBatch","_this8","deviceSessions","removeItem","getEndToEndInboundGroupSession","senderCurve25519Key","getAllEndToEndInboundGroupSessions","slice","sessionData","addEndToEndInboundGroupSession","existing","storeEndToEndInboundGroupSession","storeEndToEndInboundGroupSessionWithheld","countEndToEndInboundGroupSessions","_this9","getEndToEndInboundGroupSessionsBatch","_this10","sessionsNeedingBackup","key2","needsBackup","deleteEndToEndInboundGroupSessionsBatch","_this11","k","getEndToEndDeviceData","storeEndToEndDeviceData","deviceData","storeEndToEndRoom","roomInfo","getEndToEndRooms","prefix","getSessionsNeedingBackup","limit","_this12","_loop","prototype","hasOwnProperty","call","Promise","resolve","countSessionsNeedingBackup","unmarkSessionsNeedingBackup","markSessionsNeedingBackup","deleteAllData","getAccount","accountPickle","storeAccount","getCrossSigningKeys","getSecretStorePrivateKey","concat","storeCrossSigningKeys","storeSecretStorePrivateKey","doTxn","mode","stores","JSON","parse","getItem","e","log","message","stack","setItem","stringify"],"sources":["../../../src/crypto/store/localStorage-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 { logger } from \"../../logger.ts\";\nimport { MemoryCryptoStore } from \"./memory-crypto-store.ts\";\nimport {\n CryptoStore,\n IDeviceData,\n IProblem,\n ISession,\n SessionExtended,\n ISessionInfo,\n IWithheld,\n MigrationState,\n Mode,\n SecretStorePrivateKeys,\n SESSION_BATCH_SIZE,\n} from \"./base.ts\";\nimport { IOlmDevice } from \"../algorithms/megolm.ts\";\nimport { IRoomEncryption } from \"../RoomList.ts\";\nimport { InboundGroupSessionData } from \"../OlmDevice.ts\";\nimport { safeSet } from \"../../utils.ts\";\nimport { CrossSigningKeyInfo } from \"../../crypto-api/index.ts\";\n\n/**\n * Internal module. Partial localStorage backed storage for e2e.\n * This is not a full crypto store, just the in-memory store with\n * some things backed by localStorage. It exists because indexedDB\n * is broken in Firefox private mode or set to, \"will not remember\n * history\".\n */\n\nconst E2E_PREFIX = \"crypto.\";\nconst KEY_END_TO_END_MIGRATION_STATE = E2E_PREFIX + \"migration\";\nconst KEY_END_TO_END_ACCOUNT = E2E_PREFIX + \"account\";\nconst KEY_CROSS_SIGNING_KEYS = E2E_PREFIX + \"cross_signing_keys\";\nconst KEY_NOTIFIED_ERROR_DEVICES = E2E_PREFIX + \"notified_error_devices\";\nconst KEY_DEVICE_DATA = E2E_PREFIX + \"device_data\";\nconst KEY_INBOUND_SESSION_PREFIX = E2E_PREFIX + \"inboundgroupsessions/\";\nconst KEY_INBOUND_SESSION_WITHHELD_PREFIX = E2E_PREFIX + \"inboundgroupsessions.withheld/\";\nconst KEY_ROOMS_PREFIX = E2E_PREFIX + \"rooms/\";\nconst KEY_SESSIONS_NEEDING_BACKUP = E2E_PREFIX + \"sessionsneedingbackup\";\n\nfunction keyEndToEndSessions(deviceKey: string): string {\n return E2E_PREFIX + \"sessions/\" + deviceKey;\n}\n\nfunction keyEndToEndSessionProblems(deviceKey: string): string {\n return E2E_PREFIX + \"session.problems/\" + deviceKey;\n}\n\nfunction keyEndToEndInboundGroupSession(senderKey: string, sessionId: string): string {\n return KEY_INBOUND_SESSION_PREFIX + senderKey + \"/\" + sessionId;\n}\n\nfunction keyEndToEndInboundGroupSessionWithheld(senderKey: string, sessionId: string): string {\n return KEY_INBOUND_SESSION_WITHHELD_PREFIX + senderKey + \"/\" + sessionId;\n}\n\nfunction keyEndToEndRoomsPrefix(roomId: string): string {\n return KEY_ROOMS_PREFIX + roomId;\n}\n\nexport class LocalStorageCryptoStore extends MemoryCryptoStore implements CryptoStore {\n public static exists(store: Storage): boolean {\n const length = store.length;\n for (let i = 0; i < length; i++) {\n if (store.key(i)?.startsWith(E2E_PREFIX)) {\n return true;\n }\n }\n return false;\n }\n\n public constructor(private readonly store: Storage) {\n super();\n }\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 return LocalStorageCryptoStore.exists(this.store);\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 getJsonItem(this.store, KEY_END_TO_END_MIGRATION_STATE) ?? MigrationState.NOT_STARTED;\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 setJsonItem(this.store, KEY_END_TO_END_MIGRATION_STATE, migrationState);\n }\n\n // Olm Sessions\n\n public countEndToEndSessions(txn: unknown, func: (count: number) => void): void {\n let count = 0;\n for (let i = 0; i < this.store.length; ++i) {\n const key = this.store.key(i);\n if (key?.startsWith(keyEndToEndSessions(\"\"))) {\n const sessions = getJsonItem(this.store, key);\n count += Object.keys(sessions ?? {}).length;\n }\n }\n func(count);\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private _getEndToEndSessions(deviceKey: string): Record<string, ISessionInfo> {\n const sessions = getJsonItem(this.store, keyEndToEndSessions(deviceKey));\n const fixedSessions: Record<string, ISessionInfo> = {};\n\n // fix up any old sessions to be objects rather than just the base64 pickle\n for (const [sid, val] of Object.entries(sessions || {})) {\n if (typeof val === \"string\") {\n fixedSessions[sid] = {\n session: val,\n };\n } else {\n fixedSessions[sid] = val;\n }\n }\n\n return fixedSessions;\n }\n\n public getEndToEndSession(\n deviceKey: string,\n sessionId: string,\n txn: unknown,\n func: (session: ISessionInfo) => void,\n ): void {\n const sessions = this._getEndToEndSessions(deviceKey);\n func(sessions[sessionId] || {});\n }\n\n public getEndToEndSessions(\n deviceKey: string,\n txn: unknown,\n func: (sessions: { [sessionId: string]: ISessionInfo }) => void,\n ): void {\n func(this._getEndToEndSessions(deviceKey) || {});\n }\n\n public getAllEndToEndSessions(txn: unknown, func: (session: ISessionInfo) => void): void {\n for (let i = 0; i < this.store.length; ++i) {\n if (this.store.key(i)?.startsWith(keyEndToEndSessions(\"\"))) {\n const deviceKey = this.store.key(i)!.split(\"/\")[1];\n for (const sess of Object.values(this._getEndToEndSessions(deviceKey))) {\n func(sess);\n }\n }\n }\n }\n\n public storeEndToEndSession(deviceKey: string, sessionId: string, sessionInfo: ISessionInfo, txn: unknown): void {\n const sessions = this._getEndToEndSessions(deviceKey) || {};\n sessions[sessionId] = sessionInfo;\n setJsonItem(this.store, keyEndToEndSessions(deviceKey), sessions);\n }\n\n public async storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void> {\n const key = keyEndToEndSessionProblems(deviceKey);\n const problems = getJsonItem<IProblem[]>(this.store, key) || [];\n problems.push({ type, fixed, time: Date.now() });\n problems.sort((a, b) => {\n return a.time - b.time;\n });\n setJsonItem(this.store, key, problems);\n }\n\n public async getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null> {\n const key = keyEndToEndSessionProblems(deviceKey);\n const problems = getJsonItem<IProblem[]>(this.store, key) || [];\n if (!problems.length) {\n return null;\n }\n const lastProblem = problems[problems.length - 1];\n for (const problem of problems) {\n if (problem.time > timestamp) {\n return Object.assign({}, problem, { fixed: lastProblem.fixed });\n }\n }\n if (lastProblem.fixed) {\n return null;\n } else {\n return lastProblem;\n }\n }\n\n public async filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]> {\n const notifiedErrorDevices =\n getJsonItem<MemoryCryptoStore[\"notifiedErrorDevices\"]>(this.store, KEY_NOTIFIED_ERROR_DEVICES) || {};\n const ret: IOlmDevice[] = [];\n\n for (const device of devices) {\n const { userId, deviceInfo } = device;\n if (userId in notifiedErrorDevices) {\n if (!(deviceInfo.deviceId in notifiedErrorDevices[userId])) {\n ret.push(device);\n safeSet(notifiedErrorDevices[userId], deviceInfo.deviceId, true);\n }\n } else {\n ret.push(device);\n safeSet(notifiedErrorDevices, userId, { [deviceInfo.deviceId]: true });\n }\n }\n\n setJsonItem(this.store, KEY_NOTIFIED_ERROR_DEVICES, notifiedErrorDevices);\n\n return ret;\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 (let i = 0; i < this.store.length; ++i) {\n if (this.store.key(i)?.startsWith(keyEndToEndSessions(\"\"))) {\n const deviceKey = this.store.key(i)!.split(\"/\")[1];\n for (const session of Object.values(this._getEndToEndSessions(deviceKey))) {\n result.push(session);\n if (result.length >= SESSION_BATCH_SIZE) {\n return result;\n }\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._getEndToEndSessions(deviceKey) || {};\n delete deviceSessions[sessionId];\n if (Object.keys(deviceSessions).length === 0) {\n // No more sessions for this device.\n this.store.removeItem(keyEndToEndSessions(deviceKey));\n } else {\n setJsonItem(this.store, keyEndToEndSessions(deviceKey), deviceSessions);\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 func(\n getJsonItem(this.store, keyEndToEndInboundGroupSession(senderCurve25519Key, sessionId)),\n getJsonItem(this.store, keyEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId)),\n );\n }\n\n public getAllEndToEndInboundGroupSessions(txn: unknown, func: (session: ISession | null) => void): void {\n for (let i = 0; i < this.store.length; ++i) {\n const key = this.store.key(i);\n if (key?.startsWith(KEY_INBOUND_SESSION_PREFIX)) {\n // we can't use split, as the components we are trying to split out\n // might themselves contain '/' characters. We rely on the\n // senderKey being a (32-byte) curve25519 key, base64-encoded\n // (hence 43 characters long).\n\n func({\n senderKey: key.slice(KEY_INBOUND_SESSION_PREFIX.length, KEY_INBOUND_SESSION_PREFIX.length + 43),\n sessionId: key.slice(KEY_INBOUND_SESSION_PREFIX.length + 44),\n sessionData: getJsonItem(this.store, key)!,\n });\n }\n }\n func(null);\n }\n\n public addEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: unknown,\n ): void {\n const existing = getJsonItem(this.store, keyEndToEndInboundGroupSession(senderCurve25519Key, sessionId));\n if (!existing) {\n this.storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn);\n }\n }\n\n public storeEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: unknown,\n ): void {\n setJsonItem(this.store, keyEndToEndInboundGroupSession(senderCurve25519Key, sessionId), sessionData);\n }\n\n public storeEndToEndInboundGroupSessionWithheld(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: IWithheld,\n txn: unknown,\n ): void {\n setJsonItem(this.store, keyEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId), 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 let count = 0;\n for (let i = 0; i < this.store.length; ++i) {\n const key = this.store.key(i);\n if (key?.startsWith(KEY_INBOUND_SESSION_PREFIX)) {\n count += 1;\n }\n }\n return count;\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<SessionExtended[] | null> {\n const sessionsNeedingBackup = getJsonItem<string[]>(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};\n const result: SessionExtended[] = [];\n for (let i = 0; i < this.store.length; ++i) {\n const key = this.store.key(i);\n if (key?.startsWith(KEY_INBOUND_SESSION_PREFIX)) {\n const key2 = key.slice(KEY_INBOUND_SESSION_PREFIX.length);\n\n // we can't use split, as the components we are trying to split out\n // might themselves contain '/' characters. We rely on the\n // senderKey being a (32-byte) curve25519 key, base64-encoded\n // (hence 43 characters long).\n\n result.push({\n senderKey: key2.slice(0, 43),\n sessionId: key2.slice(44),\n sessionData: getJsonItem(this.store, key)!,\n needsBackup: key2 in sessionsNeedingBackup,\n });\n\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 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 = keyEndToEndInboundGroupSession(senderKey, sessionId);\n this.store.removeItem(k);\n }\n }\n\n public getEndToEndDeviceData(txn: unknown, func: (deviceData: IDeviceData | null) => void): void {\n func(getJsonItem(this.store, KEY_DEVICE_DATA));\n }\n\n public storeEndToEndDeviceData(deviceData: IDeviceData, txn: unknown): void {\n setJsonItem(this.store, KEY_DEVICE_DATA, deviceData);\n }\n\n public storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: unknown): void {\n setJsonItem(this.store, keyEndToEndRoomsPrefix(roomId), roomInfo);\n }\n\n public getEndToEndRooms(txn: unknown, func: (rooms: Record<string, IRoomEncryption>) => void): void {\n const result: Record<string, IRoomEncryption> = {};\n const prefix = keyEndToEndRoomsPrefix(\"\");\n\n for (let i = 0; i < this.store.length; ++i) {\n const key = this.store.key(i);\n if (key?.startsWith(prefix)) {\n const roomId = key.slice(prefix.length);\n result[roomId] = getJsonItem(this.store, key)!;\n }\n }\n func(result);\n }\n\n public getSessionsNeedingBackup(limit: number): Promise<ISession[]> {\n const sessionsNeedingBackup = getJsonItem<string[]>(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};\n const sessions: ISession[] = [];\n\n for (const session in sessionsNeedingBackup) {\n if (Object.prototype.hasOwnProperty.call(sessionsNeedingBackup, session)) {\n // see getAllEndToEndInboundGroupSessions for the magic number explanations\n const senderKey = session.slice(0, 43);\n const sessionId = session.slice(44);\n this.getEndToEndInboundGroupSession(senderKey, sessionId, null, (sessionData) => {\n sessions.push({\n senderKey: senderKey,\n sessionId: sessionId,\n sessionData: sessionData!,\n });\n });\n if (limit && sessions.length >= limit) {\n break;\n }\n }\n }\n return Promise.resolve(sessions);\n }\n\n public countSessionsNeedingBackup(): Promise<number> {\n const sessionsNeedingBackup = getJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};\n return Promise.resolve(Object.keys(sessionsNeedingBackup).length);\n }\n\n public unmarkSessionsNeedingBackup(sessions: ISession[]): Promise<void> {\n const sessionsNeedingBackup =\n getJsonItem<{\n [senderKeySessionId: string]: string;\n }>(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};\n for (const session of sessions) {\n delete sessionsNeedingBackup[session.senderKey + \"/\" + session.sessionId];\n }\n setJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP, sessionsNeedingBackup);\n return Promise.resolve();\n }\n\n public markSessionsNeedingBackup(sessions: ISession[]): Promise<void> {\n const sessionsNeedingBackup =\n getJsonItem<{\n [senderKeySessionId: string]: boolean;\n }>(this.store, KEY_SESSIONS_NEEDING_BACKUP) || {};\n for (const session of sessions) {\n sessionsNeedingBackup[session.senderKey + \"/\" + session.sessionId] = true;\n }\n setJsonItem(this.store, KEY_SESSIONS_NEEDING_BACKUP, sessionsNeedingBackup);\n return Promise.resolve();\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 this.store.removeItem(KEY_END_TO_END_ACCOUNT);\n return Promise.resolve();\n }\n\n // Olm account\n\n public getAccount(txn: unknown, func: (accountPickle: string | null) => void): void {\n const accountPickle = getJsonItem<string>(this.store, KEY_END_TO_END_ACCOUNT);\n func(accountPickle);\n }\n\n public storeAccount(txn: unknown, accountPickle: string): void {\n setJsonItem(this.store, KEY_END_TO_END_ACCOUNT, accountPickle);\n }\n\n public getCrossSigningKeys(txn: unknown, func: (keys: Record<string, CrossSigningKeyInfo> | null) => void): void {\n const keys = getJsonItem<Record<string, CrossSigningKeyInfo>>(this.store, KEY_CROSS_SIGNING_KEYS);\n func(keys);\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 key = getJsonItem<SecretStorePrivateKeys[K]>(this.store, E2E_PREFIX + `ssss_cache.${type}`);\n func(key);\n }\n\n public storeCrossSigningKeys(txn: unknown, keys: Record<string, CrossSigningKeyInfo>): void {\n setJsonItem(this.store, KEY_CROSS_SIGNING_KEYS, keys);\n }\n\n public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: unknown,\n type: K,\n key: SecretStorePrivateKeys[K],\n ): void {\n setJsonItem(this.store, E2E_PREFIX + `ssss_cache.${type}`, key);\n }\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\nfunction getJsonItem<T>(store: Storage, key: string): T | null {\n try {\n // if the key is absent, store.getItem() returns null, and\n // JSON.parse(null) === null, so this returns null.\n return JSON.parse(store.getItem(key)!);\n } catch (e) {\n logger.log(\"Error: Failed to get key %s: %s\", key, (<Error>e).message);\n logger.log((<Error>e).stack);\n }\n return null;\n}\n\nfunction setJsonItem<T>(store: Storage, key: string, val: T): void {\n store.setItem(key, JSON.stringify(val));\n}\n"],"mappings":"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","ignoreList":[]}