@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 +0,0 @@
1
- {"version":3,"file":"indexeddb-crypto-store-backend.js","names":["logger","deepCompare","MigrationState","SESSION_BATCH_SIZE","ACCOUNT_OBJECT_KEY_MIGRATION_STATE","IndexedDBCryptoStore","PROFILE_TRANSACTIONS","Backend","constructor","db","_defineProperty","onversionchange","log","concat","name","close","containsData","_asyncToGenerator","Error","startup","_this","deleteAllData","getMigrationState","_this2","migrationState","NOT_STARTED","doTxn","STORE_ACCOUNT","txn","objectStore","getReq","get","onsuccess","_getReq$result","result","setMigrationState","_this3","put","getOrAddOutgoingRoomKeyRequest","request","requestBody","Promise","resolve","reject","transaction","onerror","_getOutgoingRoomKeyRequest","existing","room_id","session_id","oncomplete","store","add","getOutgoingRoomKeyRequest","callback","idx","index","cursorReq","openCursor","cursor","value","continue","getOutgoingRoomKeyRequestByState","wantedStates","length","stateIndex","wantedState","source","promiseifyTxn","then","getAllOutgoingRoomKeyRequestsByState","getAll","error","getOutgoingRoomKeyRequestsByTarget","userId","deviceId","results","keyReq","recipients","some","recipient","push","updateOutgoingRoomKeyRequest","requestId","expectedState","updates","data","state","warn","Object","assign","update","deleteOutgoingRoomKeyRequest","delete","getAccount","func","e","abortWithException","storeAccount","accountPickle","getCrossSigningKeys","getSecretStorePrivateKey","type","storeCrossSigningKeys","keys","storeSecretStorePrivateKey","key","countEndToEndSessions","countReq","count","getEndToEndSessions","deviceKey","sessionId","session","lastReceivedMessageTs","getEndToEndSession","getAllEndToEndSessions","storeEndToEndSession","sessionInfo","storeEndToEndSessionProblem","fixed","_this4","time","Date","now","getEndToEndSessionProblem","timestamp","_this5","req","problems","sort","a","b","lastProblem","problem","filterOutNotifiedErrorDevices","devices","_this6","ret","all","map","device","deviceInfo","getEndToEndSessionsBatch","_this7","STORE_SESSIONS","deleteEndToEndSessionsBatch","sessions","_this8","_ref","_loop","_x","apply","arguments","getEndToEndInboundGroupSession","senderCurve25519Key","withheld","withheldObjectStore","withheldGetReq","getAllEndToEndInboundGroupSessions","senderKey","sessionData","addEndToEndInboundGroupSession","addReq","ev","_addReq$error","stopPropagation","preventDefault","storeEndToEndInboundGroupSession","storeEndToEndInboundGroupSessionWithheld","countEndToEndInboundGroupSessions","_this9","STORE_INBOUND_GROUP_SESSIONS","sessionStore","getEndToEndInboundGroupSessionsBatch","_this10","STORE_BACKUP","backupStore","backupGetReq","needsBackup","undefined","deleteEndToEndInboundGroupSessionsBatch","_this11","_ref2","_loop2","_x2","getEndToEndDeviceData","storeEndToEndDeviceData","deviceData","storeEndToEndRoom","roomId","roomInfo","getEndToEndRooms","rooms","getSessionsNeedingBackup","limit","sessionGetReq","countSessionsNeedingBackup","unmarkSessionsNeedingBackup","_this12","markSessionsNeedingBackup","_this13","addSharedHistoryInboundGroupSession","getSharedHistoryInboundGroupSessions","addParkedSharedHistory","parkedData","parked","takeParkedSharedHistory","mode","stores","startTime","description","txnId","nextTxnId","debug","promise","elapsedTime","DB_MIGRATIONS","createDatabase","createObjectStore","sessionsStore","keyPath","createIndex","problemsStore","VERSION","upgradeDatabase","oldVersion","forEach","migration","outgoingRoomKeyRequestsStore","_mx_abortexception","abort","_unused","event","onabort"],"sources":["../../../src/crypto/store/indexeddb-crypto-store-backend.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, logger } from \"../../logger.ts\";\nimport { deepCompare } from \"../../utils.ts\";\nimport {\n CryptoStore,\n IDeviceData,\n IProblem,\n ISession,\n SessionExtended,\n ISessionInfo,\n IWithheld,\n MigrationState,\n Mode,\n OutgoingRoomKeyRequest,\n ParkedSharedHistory,\n SecretStorePrivateKeys,\n SESSION_BATCH_SIZE,\n ACCOUNT_OBJECT_KEY_MIGRATION_STATE,\n} from \"./base.ts\";\nimport { IRoomKeyRequestBody, IRoomKeyRequestRecipient } from \"../index.ts\";\nimport { IOlmDevice } from \"../algorithms/megolm.ts\";\nimport { IRoomEncryption } from \"../RoomList.ts\";\nimport { InboundGroupSessionData } from \"../OlmDevice.ts\";\nimport { IndexedDBCryptoStore } from \"./indexeddb-crypto-store.ts\";\nimport { CrossSigningKeyInfo } from \"../../crypto-api/index.ts\";\n\nconst PROFILE_TRANSACTIONS = false;\n\n/**\n * Implementation of a CryptoStore which is backed by an existing\n * IndexedDB connection. Generally you want IndexedDBCryptoStore\n * which connects to the database and defers to one of these.\n *\n * @internal\n */\nexport class Backend implements CryptoStore {\n private nextTxnId = 0;\n\n /**\n */\n public constructor(private db: IDBDatabase) {\n // make sure we close the db on `onversionchange` - otherwise\n // attempts to delete the database will block (and subsequent\n // attempts to re-create it will also block).\n db.onversionchange = (): void => {\n logger.log(`versionchange for indexeddb ${this.db.name}: closing`);\n db.close();\n };\n }\n\n public async containsData(): Promise<boolean> {\n throw Error(\"Not implemented for Backend\");\n }\n\n public async startup(): Promise<CryptoStore> {\n // No work to do, as the startup is done by the caller (e.g IndexedDBCryptoStore)\n // by passing us a ready IDBDatabase instance\n return this;\n }\n\n public async deleteAllData(): Promise<void> {\n throw Error(\"This is not implemented, call IDBFactory::deleteDatabase(dbName) instead.\");\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 public async getMigrationState(): Promise<MigrationState> {\n let migrationState = MigrationState.NOT_STARTED;\n await this.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);\n const getReq = objectStore.get(ACCOUNT_OBJECT_KEY_MIGRATION_STATE);\n getReq.onsuccess = (): void => {\n migrationState = getReq.result ?? MigrationState.NOT_STARTED;\n };\n });\n return migrationState;\n }\n\n /**\n * Set data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.setMigrationState}.\n */\n public async setMigrationState(migrationState: MigrationState): Promise<void> {\n await this.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);\n objectStore.put(migrationState, ACCOUNT_OBJECT_KEY_MIGRATION_STATE);\n });\n }\n\n /**\n * Look for an existing outgoing room key request, and if none is found,\n * add a new one\n *\n *\n * @returns resolves to\n * {@link OutgoingRoomKeyRequest}: either the\n * same instance as passed in, or the existing one.\n */\n public getOrAddOutgoingRoomKeyRequest(request: OutgoingRoomKeyRequest): Promise<OutgoingRoomKeyRequest> {\n const requestBody = request.requestBody;\n\n return new Promise((resolve, reject) => {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readwrite\");\n txn.onerror = reject;\n\n // first see if we already have an entry for this request.\n this._getOutgoingRoomKeyRequest(txn, requestBody, (existing) => {\n if (existing) {\n // this entry matches the request - return it.\n logger.log(\n `already have key request outstanding for ` +\n `${requestBody.room_id} / ${requestBody.session_id}: ` +\n `not sending another`,\n );\n resolve(existing);\n return;\n }\n\n // we got to the end of the list without finding a match\n // - add the new request.\n logger.log(`enqueueing key request for ${requestBody.room_id} / ` + requestBody.session_id);\n txn.oncomplete = (): void => {\n resolve(request);\n };\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n store.add(request);\n });\n });\n }\n\n /**\n * Look for an existing room key request\n *\n * @param requestBody - existing request to look for\n *\n * @returns resolves to the matching\n * {@link OutgoingRoomKeyRequest}, or null if\n * not found\n */\n public getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): Promise<OutgoingRoomKeyRequest | null> {\n return new Promise((resolve, reject) => {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n txn.onerror = reject;\n\n this._getOutgoingRoomKeyRequest(txn, requestBody, (existing) => {\n resolve(existing);\n });\n });\n }\n\n /**\n * look for an existing room key request in the db\n *\n * @internal\n * @param txn - database transaction\n * @param requestBody - existing request to look for\n * @param callback - function to call with the results of the\n * search. Either passed a matching\n * {@link OutgoingRoomKeyRequest}, or null if\n * not found.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private _getOutgoingRoomKeyRequest(\n txn: IDBTransaction,\n requestBody: IRoomKeyRequestBody,\n callback: (req: OutgoingRoomKeyRequest | null) => void,\n ): void {\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n\n const idx = store.index(\"session\");\n const cursorReq = idx.openCursor([requestBody.room_id, requestBody.session_id]);\n\n cursorReq.onsuccess = (): void => {\n const cursor = cursorReq.result;\n if (!cursor) {\n // no match found\n callback(null);\n return;\n }\n\n const existing = cursor.value;\n\n if (deepCompare(existing.requestBody, requestBody)) {\n // got a match\n callback(existing);\n return;\n }\n\n // look at the next entry in the index\n cursor.continue();\n };\n }\n\n /**\n * Look for room key requests by state\n *\n * @param wantedStates - list of acceptable states\n *\n * @returns resolves to the a\n * {@link OutgoingRoomKeyRequest}, or null if\n * there are no pending requests in those states. If there are multiple\n * requests in those states, an arbitrary one is chosen.\n */\n public getOutgoingRoomKeyRequestByState(wantedStates: number[]): Promise<OutgoingRoomKeyRequest | null> {\n if (wantedStates.length === 0) {\n return Promise.resolve(null);\n }\n\n // this is a bit tortuous because we need to make sure we do the lookup\n // in a single transaction, to avoid having a race with the insertion\n // code.\n\n // index into the wantedStates array\n let stateIndex = 0;\n let result: OutgoingRoomKeyRequest;\n\n function onsuccess(this: IDBRequest<IDBCursorWithValue | null>): void {\n const cursor = this.result;\n if (cursor) {\n // got a match\n result = cursor.value;\n return;\n }\n\n // try the next state in the list\n stateIndex++;\n if (stateIndex >= wantedStates.length) {\n // no matches\n return;\n }\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = (this.source as IDBIndex).openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n }\n\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = store.index(\"state\").openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n\n return promiseifyTxn(txn).then(() => result);\n }\n\n /**\n *\n * @returns All elements in a given state\n */\n public getAllOutgoingRoomKeyRequestsByState(wantedState: number): Promise<OutgoingRoomKeyRequest[]> {\n return new Promise((resolve, reject) => {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n const index = store.index(\"state\");\n const request = index.getAll(wantedState);\n\n request.onsuccess = (): void => resolve(request.result);\n request.onerror = (): void => reject(request.error);\n });\n }\n\n public getOutgoingRoomKeyRequestsByTarget(\n userId: string,\n deviceId: string,\n wantedStates: number[],\n ): Promise<OutgoingRoomKeyRequest[]> {\n let stateIndex = 0;\n const results: OutgoingRoomKeyRequest[] = [];\n\n function onsuccess(this: IDBRequest<IDBCursorWithValue | null>): void {\n const cursor = this.result;\n if (cursor) {\n const keyReq = cursor.value;\n if (\n keyReq.recipients.some(\n (recipient: IRoomKeyRequestRecipient) =>\n recipient.userId === userId && recipient.deviceId === deviceId,\n )\n ) {\n results.push(keyReq);\n }\n cursor.continue();\n } else {\n // try the next state in the list\n stateIndex++;\n if (stateIndex >= wantedStates.length) {\n // no matches\n return;\n }\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = (this.source as IDBIndex).openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n }\n }\n\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = store.index(\"state\").openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n\n return promiseifyTxn(txn).then(() => results);\n }\n\n /**\n * Look for an existing room key request by id and state, and update it if\n * found\n *\n * @param requestId - ID of request to update\n * @param expectedState - state we expect to find the request in\n * @param updates - name/value map of updates to apply\n *\n * @returns resolves to\n * {@link OutgoingRoomKeyRequest}\n * updated request, or null if no matching row was found\n */\n public updateOutgoingRoomKeyRequest(\n requestId: string,\n expectedState: number,\n updates: Partial<OutgoingRoomKeyRequest>,\n ): Promise<OutgoingRoomKeyRequest | null> {\n let result: OutgoingRoomKeyRequest | null = null;\n\n function onsuccess(this: IDBRequest<IDBCursorWithValue | null>): void {\n const cursor = this.result;\n if (!cursor) {\n return;\n }\n const data = cursor.value;\n if (data.state != expectedState) {\n logger.warn(\n `Cannot update room key request from ${expectedState} ` +\n `as it was already updated to ${data.state}`,\n );\n return;\n }\n Object.assign(data, updates);\n cursor.update(data);\n result = data;\n }\n\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readwrite\");\n const cursorReq = txn.objectStore(\"outgoingRoomKeyRequests\").openCursor(requestId);\n cursorReq.onsuccess = onsuccess;\n return promiseifyTxn(txn).then(() => result);\n }\n\n /**\n * Look for an existing room key request by id and state, and delete it if\n * found\n *\n * @param requestId - ID of request to update\n * @param expectedState - state we expect to find the request in\n *\n * @returns resolves once the operation is completed\n */\n public deleteOutgoingRoomKeyRequest(\n requestId: string,\n expectedState: number,\n ): Promise<OutgoingRoomKeyRequest | null> {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readwrite\");\n const cursorReq = txn.objectStore(\"outgoingRoomKeyRequests\").openCursor(requestId);\n cursorReq.onsuccess = (): void => {\n const cursor = cursorReq.result;\n if (!cursor) {\n return;\n }\n const data = cursor.value;\n if (data.state != expectedState) {\n logger.warn(`Cannot delete room key request in state ${data.state} ` + `(expected ${expectedState})`);\n return;\n }\n cursor.delete();\n };\n return promiseifyTxn<OutgoingRoomKeyRequest | null>(txn);\n }\n\n // Olm Account\n\n public getAccount(txn: IDBTransaction, func: (accountPickle: string | null) => void): void {\n const objectStore = txn.objectStore(\"account\");\n const getReq = objectStore.get(\"-\");\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeAccount(txn: IDBTransaction, accountPickle: string): void {\n const objectStore = txn.objectStore(\"account\");\n objectStore.put(accountPickle, \"-\");\n }\n\n public getCrossSigningKeys(\n txn: IDBTransaction,\n func: (keys: Record<string, CrossSigningKeyInfo> | null) => void,\n ): void {\n const objectStore = txn.objectStore(\"account\");\n const getReq = objectStore.get(\"crossSigningKeys\");\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: IDBTransaction,\n func: (key: SecretStorePrivateKeys[K] | null) => void,\n type: K,\n ): void {\n const objectStore = txn.objectStore(\"account\");\n const getReq = objectStore.get(`ssss_cache:${type}`);\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeCrossSigningKeys(txn: IDBTransaction, keys: Record<string, CrossSigningKeyInfo>): void {\n const objectStore = txn.objectStore(\"account\");\n objectStore.put(keys, \"crossSigningKeys\");\n }\n\n public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: IDBTransaction,\n type: K,\n key: SecretStorePrivateKeys[K],\n ): void {\n const objectStore = txn.objectStore(\"account\");\n objectStore.put(key, `ssss_cache:${type}`);\n }\n\n // Olm Sessions\n\n public countEndToEndSessions(txn: IDBTransaction, func: (count: number) => void): void {\n const objectStore = txn.objectStore(\"sessions\");\n const countReq = objectStore.count();\n countReq.onsuccess = function (): void {\n try {\n func(countReq.result);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getEndToEndSessions(\n deviceKey: string,\n txn: IDBTransaction,\n func: (sessions: { [sessionId: string]: ISessionInfo }) => void,\n ): void {\n const objectStore = txn.objectStore(\"sessions\");\n const idx = objectStore.index(\"deviceKey\");\n const getReq = idx.openCursor(deviceKey);\n const results: Parameters<Parameters<Backend[\"getEndToEndSessions\"]>[2]>[0] = {};\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n results[cursor.value.sessionId] = {\n session: cursor.value.session,\n lastReceivedMessageTs: cursor.value.lastReceivedMessageTs,\n };\n cursor.continue();\n } else {\n try {\n func(results);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n }\n };\n }\n\n public getEndToEndSession(\n deviceKey: string,\n sessionId: string,\n txn: IDBTransaction,\n func: (session: ISessionInfo | null) => void,\n ): void {\n const objectStore = txn.objectStore(\"sessions\");\n const getReq = objectStore.get([deviceKey, sessionId]);\n getReq.onsuccess = function (): void {\n try {\n if (getReq.result) {\n func({\n session: getReq.result.session,\n lastReceivedMessageTs: getReq.result.lastReceivedMessageTs,\n });\n } else {\n func(null);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getAllEndToEndSessions(txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void {\n const objectStore = txn.objectStore(\"sessions\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n try {\n const cursor = getReq.result;\n if (cursor) {\n func(cursor.value);\n cursor.continue();\n } else {\n func(null);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeEndToEndSession(\n deviceKey: string,\n sessionId: string,\n sessionInfo: ISessionInfo,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"sessions\");\n objectStore.put({\n deviceKey,\n sessionId,\n session: sessionInfo.session,\n lastReceivedMessageTs: sessionInfo.lastReceivedMessageTs,\n });\n }\n\n public async storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void> {\n const txn = this.db.transaction(\"session_problems\", \"readwrite\");\n const objectStore = txn.objectStore(\"session_problems\");\n objectStore.put({\n deviceKey,\n type,\n fixed,\n time: Date.now(),\n });\n await promiseifyTxn(txn);\n }\n\n public async getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null> {\n let result: IProblem | null = null;\n const txn = this.db.transaction(\"session_problems\", \"readwrite\");\n const objectStore = txn.objectStore(\"session_problems\");\n const index = objectStore.index(\"deviceKey\");\n const req = index.getAll(deviceKey);\n req.onsuccess = (): void => {\n const problems = req.result;\n if (!problems.length) {\n result = null;\n return;\n }\n problems.sort((a, b) => {\n return a.time - b.time;\n });\n const lastProblem = problems[problems.length - 1];\n for (const problem of problems) {\n if (problem.time > timestamp) {\n result = Object.assign({}, problem, { fixed: lastProblem.fixed });\n return;\n }\n }\n if (lastProblem.fixed) {\n result = null;\n } else {\n result = lastProblem;\n }\n };\n await promiseifyTxn(txn);\n return result;\n }\n\n // FIXME: we should probably prune this when devices get deleted\n public async filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]> {\n const txn = this.db.transaction(\"notified_error_devices\", \"readwrite\");\n const objectStore = txn.objectStore(\"notified_error_devices\");\n\n const ret: IOlmDevice[] = [];\n\n await Promise.all(\n devices.map((device) => {\n return new Promise<void>((resolve) => {\n const { userId, deviceInfo } = device;\n const getReq = objectStore.get([userId, deviceInfo.deviceId]);\n getReq.onsuccess = function (): void {\n if (!getReq.result) {\n objectStore.put({ userId, deviceId: deviceInfo.deviceId });\n ret.push(device);\n }\n resolve();\n };\n });\n }),\n );\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 public async getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]> {\n const result: ISessionInfo[] = [];\n await this.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_SESSIONS], (txn) => {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n try {\n const cursor = getReq.result;\n if (cursor) {\n result.push(cursor.value);\n if (result.length < SESSION_BATCH_SIZE) {\n cursor.continue();\n }\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n });\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\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 await this.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_SESSIONS], async (txn) => {\n try {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);\n for (const { deviceKey, sessionId } of sessions) {\n const req = objectStore.delete([deviceKey, sessionId]);\n await new Promise((resolve) => {\n req.onsuccess = resolve;\n });\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n });\n }\n\n // Inbound group sessions\n\n public getEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n txn: IDBTransaction,\n func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void,\n ): void {\n let session: InboundGroupSessionData | null | boolean = false;\n let withheld: IWithheld | null | boolean = false;\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n const getReq = objectStore.get([senderCurve25519Key, sessionId]);\n getReq.onsuccess = function (): void {\n try {\n if (getReq.result) {\n session = getReq.result.session;\n } else {\n session = null;\n }\n if (withheld !== false) {\n func(session as InboundGroupSessionData, withheld as IWithheld);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n\n const withheldObjectStore = txn.objectStore(\"inbound_group_sessions_withheld\");\n const withheldGetReq = withheldObjectStore.get([senderCurve25519Key, sessionId]);\n withheldGetReq.onsuccess = function (): void {\n try {\n if (withheldGetReq.result) {\n withheld = withheldGetReq.result.session;\n } else {\n withheld = null;\n }\n if (session !== false) {\n func(session as InboundGroupSessionData, withheld as IWithheld);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getAllEndToEndInboundGroupSessions(txn: IDBTransaction, func: (session: ISession | null) => void): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n try {\n func({\n senderKey: cursor.value.senderCurve25519Key,\n sessionId: cursor.value.sessionId,\n sessionData: cursor.value.session,\n });\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n cursor.continue();\n } else {\n try {\n func(null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n }\n };\n }\n\n public addEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n const addReq = objectStore.add({\n senderCurve25519Key,\n sessionId,\n session: sessionData,\n });\n addReq.onerror = (ev): void => {\n if (addReq.error?.name === \"ConstraintError\") {\n // This stops the error from triggering the txn's onerror\n ev.stopPropagation();\n // ...and this stops it from aborting the transaction\n ev.preventDefault();\n logger.log(\"Ignoring duplicate inbound group session: \" + senderCurve25519Key + \" / \" + sessionId);\n } else {\n abortWithException(txn, new Error(\"Failed to add inbound group session: \" + addReq.error));\n }\n };\n }\n\n public storeEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n objectStore.put({\n senderCurve25519Key,\n sessionId,\n session: sessionData,\n });\n }\n\n public storeEndToEndInboundGroupSessionWithheld(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: IWithheld,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions_withheld\");\n objectStore.put({\n senderCurve25519Key,\n sessionId,\n session: sessionData,\n });\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 result = 0;\n await this.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], (txn) => {\n const sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);\n const countReq = sessionStore.count();\n countReq.onsuccess = (): void => {\n result = countReq.result;\n };\n });\n return result;\n }\n\n /**\n * Fetch a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.\n */\n public async getEndToEndInboundGroupSessionsBatch(): Promise<null | SessionExtended[]> {\n const result: SessionExtended[] = [];\n await this.doTxn(\n \"readonly\",\n [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS, IndexedDBCryptoStore.STORE_BACKUP],\n (txn) => {\n const sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);\n const backupStore = txn.objectStore(IndexedDBCryptoStore.STORE_BACKUP);\n\n const getReq = sessionStore.openCursor();\n getReq.onsuccess = function (): void {\n try {\n const cursor = getReq.result;\n if (cursor) {\n const backupGetReq = backupStore.get(cursor.key);\n backupGetReq.onsuccess = (): void => {\n result.push({\n senderKey: cursor.value.senderCurve25519Key,\n sessionId: cursor.value.sessionId,\n sessionData: cursor.value.session,\n needsBackup: backupGetReq.result !== undefined,\n });\n if (result.length < SESSION_BATCH_SIZE) {\n cursor.continue();\n }\n };\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n },\n );\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\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 await this.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], async (txn) => {\n try {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);\n for (const { senderKey, sessionId } of sessions) {\n const req = objectStore.delete([senderKey, sessionId]);\n await new Promise((resolve) => {\n req.onsuccess = resolve;\n });\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n });\n }\n\n public getEndToEndDeviceData(txn: IDBTransaction, func: (deviceData: IDeviceData | null) => void): void {\n const objectStore = txn.objectStore(\"device_data\");\n const getReq = objectStore.get(\"-\");\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeEndToEndDeviceData(deviceData: IDeviceData, txn: IDBTransaction): void {\n const objectStore = txn.objectStore(\"device_data\");\n objectStore.put(deviceData, \"-\");\n }\n\n public storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: IDBTransaction): void {\n const objectStore = txn.objectStore(\"rooms\");\n objectStore.put(roomInfo, roomId);\n }\n\n public getEndToEndRooms(txn: IDBTransaction, func: (rooms: Record<string, IRoomEncryption>) => void): void {\n const rooms: Parameters<Parameters<Backend[\"getEndToEndRooms\"]>[1]>[0] = {};\n const objectStore = txn.objectStore(\"rooms\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n rooms[cursor.key as string] = cursor.value;\n cursor.continue();\n } else {\n try {\n func(rooms);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n }\n };\n }\n\n // session backups\n\n public getSessionsNeedingBackup(limit: number): Promise<ISession[]> {\n return new Promise((resolve, reject) => {\n const sessions: ISession[] = [];\n\n const txn = this.db.transaction([\"sessions_needing_backup\", \"inbound_group_sessions\"], \"readonly\");\n txn.onerror = reject;\n txn.oncomplete = function (): void {\n resolve(sessions);\n };\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n const sessionStore = txn.objectStore(\"inbound_group_sessions\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n const sessionGetReq = sessionStore.get(cursor.key);\n sessionGetReq.onsuccess = function (): void {\n sessions.push({\n senderKey: sessionGetReq.result.senderCurve25519Key,\n sessionId: sessionGetReq.result.sessionId,\n sessionData: sessionGetReq.result.session,\n });\n };\n if (!limit || sessions.length < limit) {\n cursor.continue();\n }\n }\n };\n });\n }\n\n public countSessionsNeedingBackup(txn?: IDBTransaction): Promise<number> {\n if (!txn) {\n txn = this.db.transaction(\"sessions_needing_backup\", \"readonly\");\n }\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n return new Promise((resolve, reject) => {\n const req = objectStore.count();\n req.onerror = reject;\n req.onsuccess = (): void => resolve(req.result);\n });\n }\n\n public async unmarkSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void> {\n if (!txn) {\n txn = this.db.transaction(\"sessions_needing_backup\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n await Promise.all(\n sessions.map((session) => {\n return new Promise((resolve, reject) => {\n const req = objectStore.delete([session.senderKey, session.sessionId]);\n req.onsuccess = resolve;\n req.onerror = reject;\n });\n }),\n );\n }\n\n public async markSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void> {\n if (!txn) {\n txn = this.db.transaction(\"sessions_needing_backup\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n await Promise.all(\n sessions.map((session) => {\n return new Promise((resolve, reject) => {\n const req = objectStore.put({\n senderCurve25519Key: session.senderKey,\n sessionId: session.sessionId,\n });\n req.onsuccess = resolve;\n req.onerror = reject;\n });\n }),\n );\n }\n\n public addSharedHistoryInboundGroupSession(\n roomId: string,\n senderKey: string,\n sessionId: string,\n txn?: IDBTransaction,\n ): void {\n if (!txn) {\n txn = this.db.transaction(\"shared_history_inbound_group_sessions\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"shared_history_inbound_group_sessions\");\n const req = objectStore.get([roomId]);\n req.onsuccess = (): void => {\n const { sessions } = req.result || { sessions: [] };\n sessions.push([senderKey, sessionId]);\n objectStore.put({ roomId, sessions });\n };\n }\n\n public getSharedHistoryInboundGroupSessions(\n roomId: string,\n txn?: IDBTransaction,\n ): Promise<[senderKey: string, sessionId: string][]> {\n if (!txn) {\n txn = this.db.transaction(\"shared_history_inbound_group_sessions\", \"readonly\");\n }\n const objectStore = txn.objectStore(\"shared_history_inbound_group_sessions\");\n const req = objectStore.get([roomId]);\n return new Promise((resolve, reject) => {\n req.onsuccess = (): void => {\n const { sessions } = req.result || { sessions: [] };\n resolve(sessions);\n };\n req.onerror = reject;\n });\n }\n\n public addParkedSharedHistory(roomId: string, parkedData: ParkedSharedHistory, txn?: IDBTransaction): void {\n if (!txn) {\n txn = this.db.transaction(\"parked_shared_history\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"parked_shared_history\");\n const req = objectStore.get([roomId]);\n req.onsuccess = (): void => {\n const { parked } = req.result || { parked: [] };\n parked.push(parkedData);\n objectStore.put({ roomId, parked });\n };\n }\n\n public takeParkedSharedHistory(roomId: string, txn?: IDBTransaction): Promise<ParkedSharedHistory[]> {\n if (!txn) {\n txn = this.db.transaction(\"parked_shared_history\", \"readwrite\");\n }\n const cursorReq = txn.objectStore(\"parked_shared_history\").openCursor(roomId);\n return new Promise((resolve, reject) => {\n cursorReq.onsuccess = (): void => {\n const cursor = cursorReq.result;\n if (!cursor) {\n resolve([]);\n return;\n }\n const data = cursor.value;\n cursor.delete();\n resolve(data);\n };\n cursorReq.onerror = reject;\n });\n }\n\n public doTxn<T>(\n mode: Mode,\n stores: string | string[],\n func: (txn: IDBTransaction) => T,\n log: Logger = logger,\n ): Promise<T> {\n let startTime: number;\n let description: string;\n if (PROFILE_TRANSACTIONS) {\n const txnId = this.nextTxnId++;\n startTime = Date.now();\n description = `${mode} crypto store transaction ${txnId} in ${stores}`;\n log.debug(`Starting ${description}`);\n }\n const txn = this.db.transaction(stores, mode);\n const promise = promiseifyTxn(txn);\n const result = func(txn);\n if (PROFILE_TRANSACTIONS) {\n promise.then(\n () => {\n const elapsedTime = Date.now() - startTime;\n log.debug(`Finished ${description}, took ${elapsedTime} ms`);\n },\n () => {\n const elapsedTime = Date.now() - startTime;\n log.error(`Failed ${description}, took ${elapsedTime} ms`);\n },\n );\n }\n return promise.then(() => {\n return result;\n });\n }\n}\n\ntype DbMigration = (db: IDBDatabase) => void;\nconst DB_MIGRATIONS: DbMigration[] = [\n (db): void => {\n createDatabase(db);\n },\n (db): void => {\n db.createObjectStore(\"account\");\n },\n (db): void => {\n const sessionsStore = db.createObjectStore(\"sessions\", {\n keyPath: [\"deviceKey\", \"sessionId\"],\n });\n sessionsStore.createIndex(\"deviceKey\", \"deviceKey\");\n },\n (db): void => {\n db.createObjectStore(\"inbound_group_sessions\", {\n keyPath: [\"senderCurve25519Key\", \"sessionId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"device_data\");\n },\n (db): void => {\n db.createObjectStore(\"rooms\");\n },\n (db): void => {\n db.createObjectStore(\"sessions_needing_backup\", {\n keyPath: [\"senderCurve25519Key\", \"sessionId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"inbound_group_sessions_withheld\", {\n keyPath: [\"senderCurve25519Key\", \"sessionId\"],\n });\n },\n (db): void => {\n const problemsStore = db.createObjectStore(\"session_problems\", {\n keyPath: [\"deviceKey\", \"time\"],\n });\n problemsStore.createIndex(\"deviceKey\", \"deviceKey\");\n\n db.createObjectStore(\"notified_error_devices\", {\n keyPath: [\"userId\", \"deviceId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"shared_history_inbound_group_sessions\", {\n keyPath: [\"roomId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"parked_shared_history\", {\n keyPath: [\"roomId\"],\n });\n },\n // Expand as needed.\n];\nexport const VERSION = DB_MIGRATIONS.length;\n\nexport function upgradeDatabase(db: IDBDatabase, oldVersion: number): void {\n logger.log(`Upgrading IndexedDBCryptoStore from version ${oldVersion}` + ` to ${VERSION}`);\n DB_MIGRATIONS.forEach((migration, index) => {\n if (oldVersion <= index) migration(db);\n });\n}\n\nfunction createDatabase(db: IDBDatabase): void {\n const outgoingRoomKeyRequestsStore = db.createObjectStore(\"outgoingRoomKeyRequests\", { keyPath: \"requestId\" });\n\n // we assume that the RoomKeyRequestBody will have room_id and session_id\n // properties, to make the index efficient.\n outgoingRoomKeyRequestsStore.createIndex(\"session\", [\"requestBody.room_id\", \"requestBody.session_id\"]);\n\n outgoingRoomKeyRequestsStore.createIndex(\"state\", \"state\");\n}\n\ninterface IWrappedIDBTransaction extends IDBTransaction {\n _mx_abortexception: Error; // eslint-disable-line camelcase\n}\n\n/*\n * Aborts a transaction with a given exception\n * The transaction promise will be rejected with this exception.\n */\nfunction abortWithException(txn: IDBTransaction, e: Error): void {\n // We cheekily stick our exception onto the transaction object here\n // We could alternatively make the thing we pass back to the app\n // an object containing the transaction and exception.\n (txn as IWrappedIDBTransaction)._mx_abortexception = e;\n try {\n txn.abort();\n } catch {\n // sometimes we won't be able to abort the transaction\n // (ie. if it's aborted or completed)\n }\n}\n\nfunction promiseifyTxn<T>(txn: IDBTransaction): Promise<T | null> {\n return new Promise((resolve, reject) => {\n txn.oncomplete = (): void => {\n if ((txn as IWrappedIDBTransaction)._mx_abortexception !== undefined) {\n reject((txn as IWrappedIDBTransaction)._mx_abortexception);\n }\n resolve(null);\n };\n txn.onerror = (event): void => {\n if ((txn as IWrappedIDBTransaction)._mx_abortexception !== undefined) {\n reject((txn as IWrappedIDBTransaction)._mx_abortexception);\n } else {\n logger.log(\"Error performing indexeddb txn\", event);\n reject(txn.error);\n }\n };\n txn.onabort = (event): void => {\n if ((txn as IWrappedIDBTransaction)._mx_abortexception !== undefined) {\n reject((txn as IWrappedIDBTransaction)._mx_abortexception);\n } else {\n logger.log(\"Error performing indexeddb txn\", event);\n reject(txn.error);\n }\n };\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,432 +0,0 @@
1
- import { Logger } from "../../logger.ts";
2
- import { CryptoStore, IDeviceData, IProblem, ISession, SessionExtended, ISessionInfo, IWithheld, MigrationState, Mode, OutgoingRoomKeyRequest, ParkedSharedHistory, SecretStorePrivateKeys } from "./base.ts";
3
- import { IRoomKeyRequestBody } from "../index.ts";
4
- import { IOlmDevice } from "../algorithms/megolm.ts";
5
- import { IRoomEncryption } from "../RoomList.ts";
6
- import { InboundGroupSessionData } from "../OlmDevice.ts";
7
- import { CrossSigningKeyInfo } from "../../crypto-api/index.ts";
8
- /**
9
- * An implementation of CryptoStore, which is normally backed by an indexeddb,
10
- * but with fallback to MemoryCryptoStore.
11
- */
12
- export declare class IndexedDBCryptoStore implements CryptoStore {
13
- private readonly indexedDB;
14
- private readonly dbName;
15
- static STORE_ACCOUNT: string;
16
- static STORE_SESSIONS: string;
17
- static STORE_INBOUND_GROUP_SESSIONS: string;
18
- static STORE_INBOUND_GROUP_SESSIONS_WITHHELD: string;
19
- static STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS: string;
20
- static STORE_PARKED_SHARED_HISTORY: string;
21
- static STORE_DEVICE_DATA: string;
22
- static STORE_ROOMS: string;
23
- static STORE_BACKUP: string;
24
- static exists(indexedDB: IDBFactory, dbName: string): Promise<boolean>;
25
- /**
26
- * Utility to check if a legacy crypto store exists and has not been migrated.
27
- * Returns true if the store exists and has not been migrated, false otherwise.
28
- */
29
- static existsAndIsNotMigrated(indexedDb: IDBFactory, dbName: string): Promise<boolean>;
30
- private backendPromise?;
31
- private backend?;
32
- /**
33
- * Create a new IndexedDBCryptoStore
34
- *
35
- * @param indexedDB - global indexedDB instance
36
- * @param dbName - name of db to connect to
37
- */
38
- constructor(indexedDB: IDBFactory, dbName: string);
39
- /**
40
- * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
41
- *
42
- * Implementation of {@link CryptoStore.containsData}.
43
- *
44
- * @internal
45
- */
46
- containsData(): Promise<boolean>;
47
- /**
48
- * Ensure the database exists and is up-to-date, or fall back to
49
- * a local storage or in-memory store.
50
- *
51
- * This must be called before the store can be used.
52
- *
53
- * @returns resolves to either an IndexedDBCryptoStoreBackend.Backend,
54
- * or a MemoryCryptoStore
55
- */
56
- startup(): Promise<CryptoStore>;
57
- /**
58
- * Delete all data from this store.
59
- *
60
- * @returns resolves when the store has been cleared.
61
- */
62
- deleteAllData(): Promise<void>;
63
- /**
64
- * Get data on how much of the libolm to Rust Crypto migration has been done.
65
- *
66
- * Implementation of {@link CryptoStore.getMigrationState}.
67
- *
68
- * @internal
69
- */
70
- getMigrationState(): Promise<MigrationState>;
71
- /**
72
- * Set data on how much of the libolm to Rust Crypto migration has been done.
73
- *
74
- * Implementation of {@link CryptoStore.setMigrationState}.
75
- *
76
- * @internal
77
- */
78
- setMigrationState(migrationState: MigrationState): Promise<void>;
79
- /**
80
- * Look for an existing outgoing room key request, and if none is found,
81
- * add a new one
82
- *
83
- *
84
- * @returns resolves to
85
- * {@link OutgoingRoomKeyRequest}: either the
86
- * same instance as passed in, or the existing one.
87
- */
88
- getOrAddOutgoingRoomKeyRequest(request: OutgoingRoomKeyRequest): Promise<OutgoingRoomKeyRequest>;
89
- /**
90
- * Look for an existing room key request
91
- *
92
- * @param requestBody - existing request to look for
93
- *
94
- * @returns resolves to the matching
95
- * {@link OutgoingRoomKeyRequest}, or null if
96
- * not found
97
- */
98
- getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): Promise<OutgoingRoomKeyRequest | null>;
99
- /**
100
- * Look for room key requests by state
101
- *
102
- * @param wantedStates - list of acceptable states
103
- *
104
- * @returns resolves to the a
105
- * {@link OutgoingRoomKeyRequest}, or null if
106
- * there are no pending requests in those states. If there are multiple
107
- * requests in those states, an arbitrary one is chosen.
108
- */
109
- getOutgoingRoomKeyRequestByState(wantedStates: number[]): Promise<OutgoingRoomKeyRequest | null>;
110
- /**
111
- * Look for room key requests by state –
112
- * unlike above, return a list of all entries in one state.
113
- *
114
- * @returns Returns an array of requests in the given state
115
- */
116
- getAllOutgoingRoomKeyRequestsByState(wantedState: number): Promise<OutgoingRoomKeyRequest[]>;
117
- /**
118
- * Look for room key requests by target device and state
119
- *
120
- * @param userId - Target user ID
121
- * @param deviceId - Target device ID
122
- * @param wantedStates - list of acceptable states
123
- *
124
- * @returns resolves to a list of all the
125
- * {@link OutgoingRoomKeyRequest}
126
- */
127
- getOutgoingRoomKeyRequestsByTarget(userId: string, deviceId: string, wantedStates: number[]): Promise<OutgoingRoomKeyRequest[]>;
128
- /**
129
- * Look for an existing room key request by id and state, and update it if
130
- * found
131
- *
132
- * @param requestId - ID of request to update
133
- * @param expectedState - state we expect to find the request in
134
- * @param updates - name/value map of updates to apply
135
- *
136
- * @returns resolves to
137
- * {@link OutgoingRoomKeyRequest}
138
- * updated request, or null if no matching row was found
139
- */
140
- updateOutgoingRoomKeyRequest(requestId: string, expectedState: number, updates: Partial<OutgoingRoomKeyRequest>): Promise<OutgoingRoomKeyRequest | null>;
141
- /**
142
- * Look for an existing room key request by id and state, and delete it if
143
- * found
144
- *
145
- * @param requestId - ID of request to update
146
- * @param expectedState - state we expect to find the request in
147
- *
148
- * @returns resolves once the operation is completed
149
- */
150
- deleteOutgoingRoomKeyRequest(requestId: string, expectedState: number): Promise<OutgoingRoomKeyRequest | null>;
151
- getAccount(txn: IDBTransaction, func: (accountPickle: string | null) => void): void;
152
- /**
153
- * Write the account pickle to the store.
154
- * This requires an active transaction. See doTxn().
155
- *
156
- * @param txn - An active transaction. See doTxn().
157
- * @param accountPickle - The new account pickle to store.
158
- */
159
- storeAccount(txn: IDBTransaction, accountPickle: string): void;
160
- /**
161
- * Get the public part of the cross-signing keys (eg. self-signing key,
162
- * user signing key).
163
- *
164
- * @param txn - An active transaction. See doTxn().
165
- * @param func - Called with the account keys object:
166
- * `{ key_type: base64 encoded seed }` where key type = user_signing_key_seed or self_signing_key_seed
167
- */
168
- getCrossSigningKeys(txn: IDBTransaction, func: (keys: Record<string, CrossSigningKeyInfo> | null) => void): void;
169
- /**
170
- * @param txn - An active transaction. See doTxn().
171
- * @param func - Called with the private key
172
- * @param type - A key type
173
- */
174
- getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(txn: IDBTransaction, func: (key: SecretStorePrivateKeys[K] | null) => void, type: K): void;
175
- /**
176
- * Write the cross-signing keys back to the store
177
- *
178
- * @param txn - An active transaction. See doTxn().
179
- * @param keys - keys object as getCrossSigningKeys()
180
- */
181
- storeCrossSigningKeys(txn: IDBTransaction, keys: Record<string, CrossSigningKeyInfo>): void;
182
- /**
183
- * Write the cross-signing private keys back to the store
184
- *
185
- * @param txn - An active transaction. See doTxn().
186
- * @param type - The type of cross-signing private key to store
187
- * @param key - keys object as getCrossSigningKeys()
188
- */
189
- storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(txn: IDBTransaction, type: K, key: SecretStorePrivateKeys[K]): void;
190
- /**
191
- * Returns the number of end-to-end sessions in the store
192
- * @param txn - An active transaction. See doTxn().
193
- * @param func - Called with the count of sessions
194
- */
195
- countEndToEndSessions(txn: IDBTransaction, func: (count: number) => void): void;
196
- /**
197
- * Retrieve a specific end-to-end session between the logged-in user
198
- * and another device.
199
- * @param deviceKey - The public key of the other device.
200
- * @param sessionId - The ID of the session to retrieve
201
- * @param txn - An active transaction. See doTxn().
202
- * @param func - Called with A map from sessionId
203
- * to session information object with 'session' key being the
204
- * Base64 end-to-end session and lastReceivedMessageTs being the
205
- * timestamp in milliseconds at which the session last received
206
- * a message.
207
- */
208
- getEndToEndSession(deviceKey: string, sessionId: string, txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void;
209
- /**
210
- * Retrieve the end-to-end sessions between the logged-in user and another
211
- * device.
212
- * @param deviceKey - The public key of the other device.
213
- * @param txn - An active transaction. See doTxn().
214
- * @param func - Called with A map from sessionId
215
- * to session information object with 'session' key being the
216
- * Base64 end-to-end session and lastReceivedMessageTs being the
217
- * timestamp in milliseconds at which the session last received
218
- * a message.
219
- */
220
- getEndToEndSessions(deviceKey: string, txn: IDBTransaction, func: (sessions: {
221
- [sessionId: string]: ISessionInfo;
222
- }) => void): void;
223
- /**
224
- * Retrieve all end-to-end sessions
225
- * @param txn - An active transaction. See doTxn().
226
- * @param func - Called one for each session with
227
- * an object with, deviceKey, lastReceivedMessageTs, sessionId
228
- * and session keys.
229
- */
230
- getAllEndToEndSessions(txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void;
231
- /**
232
- * Store a session between the logged-in user and another device
233
- * @param deviceKey - The public key of the other device.
234
- * @param sessionId - The ID for this end-to-end session.
235
- * @param sessionInfo - Session information object
236
- * @param txn - An active transaction. See doTxn().
237
- */
238
- storeEndToEndSession(deviceKey: string, sessionId: string, sessionInfo: ISessionInfo, txn: IDBTransaction): void;
239
- storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void>;
240
- getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null>;
241
- filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]>;
242
- /**
243
- * Count the number of Megolm sessions in the database.
244
- *
245
- * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
246
- *
247
- * @internal
248
- */
249
- countEndToEndInboundGroupSessions(): Promise<number>;
250
- /**
251
- * Fetch a batch of Olm sessions from the database.
252
- *
253
- * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
254
- *
255
- * @internal
256
- */
257
- getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]>;
258
- /**
259
- * Delete a batch of Olm sessions from the database.
260
- *
261
- * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
262
- *
263
- * @internal
264
- */
265
- deleteEndToEndSessionsBatch(sessions: {
266
- deviceKey: string;
267
- sessionId: string;
268
- }[]): Promise<void>;
269
- /**
270
- * Retrieve the end-to-end inbound group session for a given
271
- * server key and session ID
272
- * @param senderCurve25519Key - The sender's curve 25519 key
273
- * @param sessionId - The ID of the session
274
- * @param txn - An active transaction. See doTxn().
275
- * @param func - Called with A map from sessionId
276
- * to Base64 end-to-end session.
277
- */
278
- getEndToEndInboundGroupSession(senderCurve25519Key: string, sessionId: string, txn: IDBTransaction, func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void): void;
279
- /**
280
- * Fetches all inbound group sessions in the store
281
- * @param txn - An active transaction. See doTxn().
282
- * @param func - Called once for each group session
283
- * in the store with an object having keys `{senderKey, sessionId, sessionData}`,
284
- * then once with null to indicate the end of the list.
285
- */
286
- getAllEndToEndInboundGroupSessions(txn: IDBTransaction, func: (session: ISession | null) => void): void;
287
- /**
288
- * Adds an end-to-end inbound group session to the store.
289
- * If there already exists an inbound group session with the same
290
- * senderCurve25519Key and sessionID, the session will not be added.
291
- * @param senderCurve25519Key - The sender's curve 25519 key
292
- * @param sessionId - The ID of the session
293
- * @param sessionData - The session data structure
294
- * @param txn - An active transaction. See doTxn().
295
- */
296
- addEndToEndInboundGroupSession(senderCurve25519Key: string, sessionId: string, sessionData: InboundGroupSessionData, txn: IDBTransaction): void;
297
- /**
298
- * Writes an end-to-end inbound group session to the store.
299
- * If there already exists an inbound group session with the same
300
- * senderCurve25519Key and sessionID, it will be overwritten.
301
- * @param senderCurve25519Key - The sender's curve 25519 key
302
- * @param sessionId - The ID of the session
303
- * @param sessionData - The session data structure
304
- * @param txn - An active transaction. See doTxn().
305
- */
306
- storeEndToEndInboundGroupSession(senderCurve25519Key: string, sessionId: string, sessionData: InboundGroupSessionData, txn: IDBTransaction): void;
307
- storeEndToEndInboundGroupSessionWithheld(senderCurve25519Key: string, sessionId: string, sessionData: IWithheld, txn: IDBTransaction): void;
308
- /**
309
- * Fetch a batch of Megolm sessions from the database.
310
- *
311
- * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
312
- *
313
- * @internal
314
- */
315
- getEndToEndInboundGroupSessionsBatch(): Promise<SessionExtended[] | null>;
316
- /**
317
- * Delete a batch of Megolm sessions from the database.
318
- *
319
- * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
320
- *
321
- * @internal
322
- */
323
- deleteEndToEndInboundGroupSessionsBatch(sessions: {
324
- senderKey: string;
325
- sessionId: string;
326
- }[]): Promise<void>;
327
- /**
328
- * Store the state of all tracked devices
329
- * This contains devices for each user, a tracking state for each user
330
- * and a sync token matching the point in time the snapshot represents.
331
- * These all need to be written out in full each time such that the snapshot
332
- * is always consistent, so they are stored in one object.
333
- *
334
- * @param txn - An active transaction. See doTxn().
335
- */
336
- storeEndToEndDeviceData(deviceData: IDeviceData, txn: IDBTransaction): void;
337
- /**
338
- * Get the state of all tracked devices
339
- *
340
- * @param txn - An active transaction. See doTxn().
341
- * @param func - Function called with the
342
- * device data
343
- */
344
- getEndToEndDeviceData(txn: IDBTransaction, func: (deviceData: IDeviceData | null) => void): void;
345
- /**
346
- * Store the end-to-end state for a room.
347
- * @param roomId - The room's ID.
348
- * @param roomInfo - The end-to-end info for the room.
349
- * @param txn - An active transaction. See doTxn().
350
- */
351
- storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: IDBTransaction): void;
352
- /**
353
- * Get an object of `roomId->roomInfo` for all e2e rooms in the store
354
- * @param txn - An active transaction. See doTxn().
355
- * @param func - Function called with the end-to-end encrypted rooms
356
- */
357
- getEndToEndRooms(txn: IDBTransaction, func: (rooms: Record<string, IRoomEncryption>) => void): void;
358
- /**
359
- * Get the inbound group sessions that need to be backed up.
360
- * @param limit - The maximum number of sessions to retrieve. 0
361
- * for no limit.
362
- * @returns resolves to an array of inbound group sessions
363
- */
364
- getSessionsNeedingBackup(limit: number): Promise<ISession[]>;
365
- /**
366
- * Count the inbound group sessions that need to be backed up.
367
- * @param txn - An active transaction. See doTxn(). (optional)
368
- * @returns resolves to the number of sessions
369
- */
370
- countSessionsNeedingBackup(txn?: IDBTransaction): Promise<number>;
371
- /**
372
- * Unmark sessions as needing to be backed up.
373
- * @param sessions - The sessions that need to be backed up.
374
- * @param txn - An active transaction. See doTxn(). (optional)
375
- * @returns resolves when the sessions are unmarked
376
- */
377
- unmarkSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void>;
378
- /**
379
- * Mark sessions as needing to be backed up.
380
- * @param sessions - The sessions that need to be backed up.
381
- * @param txn - An active transaction. See doTxn(). (optional)
382
- * @returns resolves when the sessions are marked
383
- */
384
- markSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void>;
385
- /**
386
- * Add a shared-history group session for a room.
387
- * @param roomId - The room that the key belongs to
388
- * @param senderKey - The sender's curve 25519 key
389
- * @param sessionId - The ID of the session
390
- * @param txn - An active transaction. See doTxn(). (optional)
391
- */
392
- addSharedHistoryInboundGroupSession(roomId: string, senderKey: string, sessionId: string, txn?: IDBTransaction): void;
393
- /**
394
- * Get the shared-history group session for a room.
395
- * @param roomId - The room that the key belongs to
396
- * @param txn - An active transaction. See doTxn(). (optional)
397
- * @returns Promise which resolves to an array of [senderKey, sessionId]
398
- */
399
- getSharedHistoryInboundGroupSessions(roomId: string, txn?: IDBTransaction): Promise<[senderKey: string, sessionId: string][]>;
400
- /**
401
- * Park a shared-history group session for a room we may be invited to later.
402
- */
403
- addParkedSharedHistory(roomId: string, parkedData: ParkedSharedHistory, txn?: IDBTransaction): void;
404
- /**
405
- * Pop out all shared-history group sessions for a room.
406
- */
407
- takeParkedSharedHistory(roomId: string, txn?: IDBTransaction): Promise<ParkedSharedHistory[]>;
408
- /**
409
- * Perform a transaction on the crypto store. Any store methods
410
- * that require a transaction (txn) object to be passed in may
411
- * only be called within a callback of either this function or
412
- * one of the store functions operating on the same transaction.
413
- *
414
- * @param mode - 'readwrite' if you need to call setter
415
- * functions with this transaction. Otherwise, 'readonly'.
416
- * @param stores - List IndexedDBCryptoStore.STORE_*
417
- * options representing all types of object that will be
418
- * accessed or written to with this transaction.
419
- * @param func - Function called with the
420
- * transaction object: an opaque object that should be passed
421
- * to store functions.
422
- * @param log - A possibly customised log
423
- * @returns Promise that resolves with the result of the `func`
424
- * when the transaction is complete. If the backend is
425
- * async (ie. the indexeddb backend) any of the callback
426
- * functions throwing an exception will cause this promise to
427
- * reject with that exception. On synchronous backends, the
428
- * exception will propagate to the caller of the getFoo method.
429
- */
430
- doTxn<T>(mode: Mode, stores: Iterable<string>, func: (txn: IDBTransaction) => T, log?: Logger): Promise<T>;
431
- }
432
- //# sourceMappingURL=indexeddb-crypto-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indexeddb-crypto-store.d.ts","sourceRoot":"","sources":["../../../src/crypto/store/indexeddb-crypto-store.ts"],"names":[],"mappings":"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"}