@unwanted/matrix-sdk-mini 34.12.0-2 → 34.12.0-3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (467) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/global.d.js +0 -2
  3. package/lib/@types/global.d.js.map +1 -1
  4. package/lib/browser-index.d.ts.map +1 -1
  5. package/lib/browser-index.js +0 -11
  6. package/lib/browser-index.js.map +1 -1
  7. package/lib/client.d.ts +2 -1176
  8. package/lib/client.d.ts.map +1 -1
  9. package/lib/client.js +346 -2717
  10. package/lib/client.js.map +1 -1
  11. package/lib/embedded.d.ts +0 -22
  12. package/lib/embedded.d.ts.map +1 -1
  13. package/lib/embedded.js +24 -166
  14. package/lib/embedded.js.map +1 -1
  15. package/lib/event-mapper.d.ts.map +1 -1
  16. package/lib/event-mapper.js +0 -4
  17. package/lib/event-mapper.js.map +1 -1
  18. package/lib/matrix.d.ts +0 -19
  19. package/lib/matrix.d.ts.map +1 -1
  20. package/lib/matrix.js +1 -26
  21. package/lib/matrix.js.map +1 -1
  22. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  23. package/lib/models/MSC3089Branch.js +0 -3
  24. package/lib/models/MSC3089Branch.js.map +1 -1
  25. package/lib/models/event.d.ts +0 -94
  26. package/lib/models/event.d.ts.map +1 -1
  27. package/lib/models/event.js +0 -274
  28. package/lib/models/event.js.map +1 -1
  29. package/lib/models/poll.d.ts.map +1 -1
  30. package/lib/models/poll.js +1 -5
  31. package/lib/models/poll.js.map +1 -1
  32. package/lib/models/relations-container.d.ts.map +1 -1
  33. package/lib/models/relations-container.js +1 -7
  34. package/lib/models/relations-container.js.map +1 -1
  35. package/lib/models/relations.d.ts +0 -1
  36. package/lib/models/relations.d.ts.map +1 -1
  37. package/lib/models/relations.js +0 -8
  38. package/lib/models/relations.js.map +1 -1
  39. package/lib/models/room-state.d.ts.map +1 -1
  40. package/lib/models/room-state.js +10 -26
  41. package/lib/models/room-state.js.map +1 -1
  42. package/lib/models/room.d.ts +0 -18
  43. package/lib/models/room.d.ts.map +1 -1
  44. package/lib/models/room.js +94 -148
  45. package/lib/models/room.js.map +1 -1
  46. package/lib/models/thread.d.ts.map +1 -1
  47. package/lib/models/thread.js +0 -1
  48. package/lib/models/thread.js.map +1 -1
  49. package/lib/sliding-sync-sdk.d.ts +2 -3
  50. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  51. package/lib/sliding-sync-sdk.js +41 -90
  52. package/lib/sliding-sync-sdk.js.map +1 -1
  53. package/lib/sync.d.ts +0 -12
  54. package/lib/sync.d.ts.map +1 -1
  55. package/lib/sync.js +1 -73
  56. package/lib/sync.js.map +1 -1
  57. package/lib/testing.d.ts +0 -48
  58. package/lib/testing.d.ts.map +1 -1
  59. package/lib/testing.js +0 -105
  60. package/lib/testing.js.map +1 -1
  61. package/package.json +1 -3
  62. package/src/@types/global.d.ts +0 -3
  63. package/src/browser-index.ts +0 -11
  64. package/src/client.ts +57 -2732
  65. package/src/embedded.ts +3 -130
  66. package/src/event-mapper.ts +0 -4
  67. package/src/matrix.ts +0 -28
  68. package/src/models/MSC3089Branch.ts +0 -3
  69. package/src/models/event.ts +0 -289
  70. package/src/models/poll.ts +0 -6
  71. package/src/models/relations-container.ts +1 -8
  72. package/src/models/relations.ts +0 -8
  73. package/src/models/room-state.ts +2 -8
  74. package/src/models/room.ts +0 -62
  75. package/src/models/thread.ts +0 -1
  76. package/src/sliding-sync-sdk.ts +2 -72
  77. package/src/sync.ts +1 -98
  78. package/src/testing.ts +0 -108
  79. package/lib/@types/crypto.d.ts +0 -47
  80. package/lib/@types/crypto.d.ts.map +0 -1
  81. package/lib/@types/crypto.js +0 -1
  82. package/lib/@types/crypto.js.map +0 -1
  83. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  84. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  85. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  86. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  87. package/lib/common-crypto/CryptoBackend.js +0 -73
  88. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  89. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  90. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  91. package/lib/common-crypto/key-passphrase.js +0 -33
  92. package/lib/common-crypto/key-passphrase.js.map +0 -1
  93. package/lib/crypto/CrossSigning.d.ts +0 -184
  94. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  95. package/lib/crypto/CrossSigning.js +0 -718
  96. package/lib/crypto/CrossSigning.js.map +0 -1
  97. package/lib/crypto/DeviceList.d.ts +0 -216
  98. package/lib/crypto/DeviceList.d.ts.map +0 -1
  99. package/lib/crypto/DeviceList.js +0 -892
  100. package/lib/crypto/DeviceList.js.map +0 -1
  101. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  102. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  103. package/lib/crypto/EncryptionSetup.js +0 -356
  104. package/lib/crypto/EncryptionSetup.js.map +0 -1
  105. package/lib/crypto/OlmDevice.d.ts +0 -457
  106. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  107. package/lib/crypto/OlmDevice.js +0 -1241
  108. package/lib/crypto/OlmDevice.js.map +0 -1
  109. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  110. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  111. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  112. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  113. package/lib/crypto/RoomList.d.ts +0 -26
  114. package/lib/crypto/RoomList.d.ts.map +0 -1
  115. package/lib/crypto/RoomList.js +0 -71
  116. package/lib/crypto/RoomList.js.map +0 -1
  117. package/lib/crypto/SecretSharing.d.ts +0 -24
  118. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  119. package/lib/crypto/SecretSharing.js +0 -194
  120. package/lib/crypto/SecretSharing.js.map +0 -1
  121. package/lib/crypto/SecretStorage.d.ts +0 -55
  122. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  123. package/lib/crypto/SecretStorage.js +0 -118
  124. package/lib/crypto/SecretStorage.js.map +0 -1
  125. package/lib/crypto/aes.d.ts +0 -6
  126. package/lib/crypto/aes.d.ts.map +0 -1
  127. package/lib/crypto/aes.js +0 -24
  128. package/lib/crypto/aes.js.map +0 -1
  129. package/lib/crypto/algorithms/base.d.ts +0 -156
  130. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  131. package/lib/crypto/algorithms/base.js +0 -187
  132. package/lib/crypto/algorithms/base.js.map +0 -1
  133. package/lib/crypto/algorithms/index.d.ts +0 -4
  134. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  135. package/lib/crypto/algorithms/index.js +0 -20
  136. package/lib/crypto/algorithms/index.js.map +0 -1
  137. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  138. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  139. package/lib/crypto/algorithms/megolm.js +0 -1822
  140. package/lib/crypto/algorithms/megolm.js.map +0 -1
  141. package/lib/crypto/algorithms/olm.d.ts +0 -5
  142. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  143. package/lib/crypto/algorithms/olm.js +0 -299
  144. package/lib/crypto/algorithms/olm.js.map +0 -1
  145. package/lib/crypto/api.d.ts +0 -32
  146. package/lib/crypto/api.d.ts.map +0 -1
  147. package/lib/crypto/api.js +0 -22
  148. package/lib/crypto/api.js.map +0 -1
  149. package/lib/crypto/backup.d.ts +0 -227
  150. package/lib/crypto/backup.d.ts.map +0 -1
  151. package/lib/crypto/backup.js +0 -824
  152. package/lib/crypto/backup.js.map +0 -1
  153. package/lib/crypto/crypto.d.ts +0 -3
  154. package/lib/crypto/crypto.d.ts.map +0 -1
  155. package/lib/crypto/crypto.js +0 -19
  156. package/lib/crypto/crypto.js.map +0 -1
  157. package/lib/crypto/dehydration.d.ts +0 -34
  158. package/lib/crypto/dehydration.d.ts.map +0 -1
  159. package/lib/crypto/dehydration.js +0 -252
  160. package/lib/crypto/dehydration.js.map +0 -1
  161. package/lib/crypto/device-converter.d.ts +0 -9
  162. package/lib/crypto/device-converter.d.ts.map +0 -1
  163. package/lib/crypto/device-converter.js +0 -42
  164. package/lib/crypto/device-converter.js.map +0 -1
  165. package/lib/crypto/deviceinfo.d.ts +0 -99
  166. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  167. package/lib/crypto/deviceinfo.js +0 -148
  168. package/lib/crypto/deviceinfo.js.map +0 -1
  169. package/lib/crypto/index.d.ts +0 -1209
  170. package/lib/crypto/index.d.ts.map +0 -1
  171. package/lib/crypto/index.js +0 -4097
  172. package/lib/crypto/index.js.map +0 -1
  173. package/lib/crypto/key_passphrase.d.ts +0 -14
  174. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  175. package/lib/crypto/key_passphrase.js +0 -44
  176. package/lib/crypto/key_passphrase.js.map +0 -1
  177. package/lib/crypto/keybackup.d.ts +0 -18
  178. package/lib/crypto/keybackup.d.ts.map +0 -1
  179. package/lib/crypto/keybackup.js +0 -1
  180. package/lib/crypto/keybackup.js.map +0 -1
  181. package/lib/crypto/olmlib.d.ts +0 -129
  182. package/lib/crypto/olmlib.d.ts.map +0 -1
  183. package/lib/crypto/olmlib.js +0 -492
  184. package/lib/crypto/olmlib.js.map +0 -1
  185. package/lib/crypto/recoverykey.d.ts +0 -2
  186. package/lib/crypto/recoverykey.d.ts.map +0 -1
  187. package/lib/crypto/recoverykey.js +0 -19
  188. package/lib/crypto/recoverykey.js.map +0 -1
  189. package/lib/crypto/store/base.d.ts +0 -252
  190. package/lib/crypto/store/base.d.ts.map +0 -1
  191. package/lib/crypto/store/base.js +0 -64
  192. package/lib/crypto/store/base.js.map +0 -1
  193. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  194. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  195. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  196. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  197. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  198. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  199. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  200. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  201. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  202. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  203. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  204. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  205. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  206. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  207. package/lib/crypto/store/memory-crypto-store.js +0 -622
  208. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  209. package/lib/crypto/verification/Base.d.ts +0 -105
  210. package/lib/crypto/verification/Base.d.ts.map +0 -1
  211. package/lib/crypto/verification/Base.js +0 -372
  212. package/lib/crypto/verification/Base.js.map +0 -1
  213. package/lib/crypto/verification/Error.d.ts +0 -35
  214. package/lib/crypto/verification/Error.d.ts.map +0 -1
  215. package/lib/crypto/verification/Error.js +0 -86
  216. package/lib/crypto/verification/Error.js.map +0 -1
  217. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  218. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  219. package/lib/crypto/verification/IllegalMethod.js +0 -43
  220. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  221. package/lib/crypto/verification/QRCode.d.ts +0 -51
  222. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  223. package/lib/crypto/verification/QRCode.js +0 -277
  224. package/lib/crypto/verification/QRCode.js.map +0 -1
  225. package/lib/crypto/verification/SAS.d.ts +0 -27
  226. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  227. package/lib/crypto/verification/SAS.js +0 -485
  228. package/lib/crypto/verification/SAS.js.map +0 -1
  229. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  230. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  231. package/lib/crypto/verification/SASDecimal.js +0 -34
  232. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  233. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  234. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  235. package/lib/crypto/verification/request/Channel.js +0 -1
  236. package/lib/crypto/verification/request/Channel.js.map +0 -1
  237. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  238. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  239. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  240. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  241. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  242. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  243. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  244. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  245. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  246. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  247. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  248. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  249. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  250. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  251. package/lib/crypto-api/CryptoEvent.js +0 -33
  252. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  253. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  254. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  255. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  256. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  257. package/lib/crypto-api/index.d.ts +0 -978
  258. package/lib/crypto-api/index.d.ts.map +0 -1
  259. package/lib/crypto-api/index.js +0 -304
  260. package/lib/crypto-api/index.js.map +0 -1
  261. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  262. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  263. package/lib/crypto-api/key-passphrase.js +0 -51
  264. package/lib/crypto-api/key-passphrase.js.map +0 -1
  265. package/lib/crypto-api/keybackup.d.ts +0 -88
  266. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  267. package/lib/crypto-api/keybackup.js +0 -1
  268. package/lib/crypto-api/keybackup.js.map +0 -1
  269. package/lib/crypto-api/recovery-key.d.ts +0 -11
  270. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  271. package/lib/crypto-api/recovery-key.js +0 -65
  272. package/lib/crypto-api/recovery-key.js.map +0 -1
  273. package/lib/crypto-api/verification.d.ts +0 -344
  274. package/lib/crypto-api/verification.d.ts.map +0 -1
  275. package/lib/crypto-api/verification.js +0 -91
  276. package/lib/crypto-api/verification.js.map +0 -1
  277. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  278. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  279. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  280. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  281. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  282. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  283. package/lib/rendezvous/RendezvousChannel.js +0 -1
  284. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  285. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  286. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  287. package/lib/rendezvous/RendezvousCode.js +0 -1
  288. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  289. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  290. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  291. package/lib/rendezvous/RendezvousError.js +0 -23
  292. package/lib/rendezvous/RendezvousError.js.map +0 -1
  293. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  294. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  295. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  296. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  297. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  298. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  299. package/lib/rendezvous/RendezvousIntent.js +0 -22
  300. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  301. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  302. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  303. package/lib/rendezvous/RendezvousTransport.js +0 -1
  304. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  305. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  306. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  307. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  308. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  309. package/lib/rendezvous/channels/index.d.ts +0 -2
  310. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  311. package/lib/rendezvous/channels/index.js +0 -18
  312. package/lib/rendezvous/channels/index.js.map +0 -1
  313. package/lib/rendezvous/index.d.ts +0 -10
  314. package/lib/rendezvous/index.d.ts.map +0 -1
  315. package/lib/rendezvous/index.js +0 -23
  316. package/lib/rendezvous/index.js.map +0 -1
  317. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  318. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  319. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  320. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  321. package/lib/rendezvous/transports/index.d.ts +0 -2
  322. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  323. package/lib/rendezvous/transports/index.js +0 -18
  324. package/lib/rendezvous/transports/index.js.map +0 -1
  325. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  326. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  327. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  328. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  329. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  330. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  331. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  332. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  333. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  334. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  335. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  336. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  337. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  338. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  339. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  340. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  341. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  342. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  343. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  344. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  345. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  346. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  347. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  348. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  349. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  350. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  351. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  352. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  353. package/lib/rust-crypto/backup.d.ts +0 -254
  354. package/lib/rust-crypto/backup.d.ts.map +0 -1
  355. package/lib/rust-crypto/backup.js +0 -837
  356. package/lib/rust-crypto/backup.js.map +0 -1
  357. package/lib/rust-crypto/constants.d.ts +0 -3
  358. package/lib/rust-crypto/constants.d.ts.map +0 -1
  359. package/lib/rust-crypto/constants.js +0 -19
  360. package/lib/rust-crypto/constants.js.map +0 -1
  361. package/lib/rust-crypto/device-converter.d.ts +0 -28
  362. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  363. package/lib/rust-crypto/device-converter.js +0 -123
  364. package/lib/rust-crypto/device-converter.js.map +0 -1
  365. package/lib/rust-crypto/index.d.ts +0 -61
  366. package/lib/rust-crypto/index.d.ts.map +0 -1
  367. package/lib/rust-crypto/index.js +0 -152
  368. package/lib/rust-crypto/index.js.map +0 -1
  369. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  370. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  371. package/lib/rust-crypto/libolm_migration.js +0 -459
  372. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  373. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  374. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  375. package/lib/rust-crypto/rust-crypto.js +0 -2016
  376. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  377. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  378. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  379. package/lib/rust-crypto/secret-storage.js +0 -63
  380. package/lib/rust-crypto/secret-storage.js.map +0 -1
  381. package/lib/rust-crypto/verification.d.ts +0 -319
  382. package/lib/rust-crypto/verification.d.ts.map +0 -1
  383. package/lib/rust-crypto/verification.js +0 -816
  384. package/lib/rust-crypto/verification.js.map +0 -1
  385. package/lib/secret-storage.d.ts +0 -370
  386. package/lib/secret-storage.d.ts.map +0 -1
  387. package/lib/secret-storage.js +0 -466
  388. package/lib/secret-storage.js.map +0 -1
  389. package/src/@types/crypto.ts +0 -73
  390. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  391. package/src/common-crypto/CryptoBackend.ts +0 -302
  392. package/src/common-crypto/README.md +0 -4
  393. package/src/common-crypto/key-passphrase.ts +0 -43
  394. package/src/crypto/CrossSigning.ts +0 -773
  395. package/src/crypto/DeviceList.ts +0 -989
  396. package/src/crypto/EncryptionSetup.ts +0 -351
  397. package/src/crypto/OlmDevice.ts +0 -1500
  398. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  399. package/src/crypto/RoomList.ts +0 -70
  400. package/src/crypto/SecretSharing.ts +0 -240
  401. package/src/crypto/SecretStorage.ts +0 -136
  402. package/src/crypto/aes.ts +0 -23
  403. package/src/crypto/algorithms/base.ts +0 -236
  404. package/src/crypto/algorithms/index.ts +0 -20
  405. package/src/crypto/algorithms/megolm.ts +0 -2216
  406. package/src/crypto/algorithms/olm.ts +0 -381
  407. package/src/crypto/api.ts +0 -70
  408. package/src/crypto/backup.ts +0 -922
  409. package/src/crypto/crypto.ts +0 -18
  410. package/src/crypto/dehydration.ts +0 -272
  411. package/src/crypto/device-converter.ts +0 -45
  412. package/src/crypto/deviceinfo.ts +0 -158
  413. package/src/crypto/index.ts +0 -4414
  414. package/src/crypto/key_passphrase.ts +0 -42
  415. package/src/crypto/keybackup.ts +0 -47
  416. package/src/crypto/olmlib.ts +0 -539
  417. package/src/crypto/recoverykey.ts +0 -18
  418. package/src/crypto/store/base.ts +0 -348
  419. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  420. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  421. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  422. package/src/crypto/store/memory-crypto-store.ts +0 -680
  423. package/src/crypto/verification/Base.ts +0 -409
  424. package/src/crypto/verification/Error.ts +0 -76
  425. package/src/crypto/verification/IllegalMethod.ts +0 -50
  426. package/src/crypto/verification/QRCode.ts +0 -310
  427. package/src/crypto/verification/SAS.ts +0 -494
  428. package/src/crypto/verification/SASDecimal.ts +0 -37
  429. package/src/crypto/verification/request/Channel.ts +0 -34
  430. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  431. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  432. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  433. package/src/crypto-api/CryptoEvent.ts +0 -93
  434. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  435. package/src/crypto-api/index.ts +0 -1175
  436. package/src/crypto-api/key-passphrase.ts +0 -58
  437. package/src/crypto-api/keybackup.ts +0 -115
  438. package/src/crypto-api/recovery-key.ts +0 -69
  439. package/src/crypto-api/verification.ts +0 -408
  440. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  441. package/src/rendezvous/RendezvousChannel.ts +0 -48
  442. package/src/rendezvous/RendezvousCode.ts +0 -25
  443. package/src/rendezvous/RendezvousError.ts +0 -26
  444. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  445. package/src/rendezvous/RendezvousIntent.ts +0 -20
  446. package/src/rendezvous/RendezvousTransport.ts +0 -58
  447. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  448. package/src/rendezvous/channels/index.ts +0 -17
  449. package/src/rendezvous/index.ts +0 -25
  450. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  451. package/src/rendezvous/transports/index.ts +0 -17
  452. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  453. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  454. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  455. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  456. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  457. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  458. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  459. package/src/rust-crypto/backup.ts +0 -881
  460. package/src/rust-crypto/constants.ts +0 -18
  461. package/src/rust-crypto/device-converter.ts +0 -128
  462. package/src/rust-crypto/index.ts +0 -237
  463. package/src/rust-crypto/libolm_migration.ts +0 -530
  464. package/src/rust-crypto/rust-crypto.ts +0 -2205
  465. package/src/rust-crypto/secret-storage.ts +0 -60
  466. package/src/rust-crypto/verification.ts +0 -830
  467. package/src/secret-storage.ts +0 -693
@@ -1,845 +0,0 @@
1
- /*
2
- Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- import { logger, Logger } from "../../logger.ts";
18
- import { LocalStorageCryptoStore } from "./localStorage-crypto-store.ts";
19
- import { MemoryCryptoStore } from "./memory-crypto-store.ts";
20
- import * as IndexedDBCryptoStoreBackend from "./indexeddb-crypto-store-backend.ts";
21
- import { InvalidCryptoStoreError, InvalidCryptoStoreState } from "../../errors.ts";
22
- import * as IndexedDBHelpers from "../../indexeddb-helpers.ts";
23
- import {
24
- CryptoStore,
25
- IDeviceData,
26
- IProblem,
27
- ISession,
28
- SessionExtended,
29
- ISessionInfo,
30
- IWithheld,
31
- MigrationState,
32
- Mode,
33
- OutgoingRoomKeyRequest,
34
- ParkedSharedHistory,
35
- SecretStorePrivateKeys,
36
- ACCOUNT_OBJECT_KEY_MIGRATION_STATE,
37
- } from "./base.ts";
38
- import { IRoomKeyRequestBody } from "../index.ts";
39
- import { IOlmDevice } from "../algorithms/megolm.ts";
40
- import { IRoomEncryption } from "../RoomList.ts";
41
- import { InboundGroupSessionData } from "../OlmDevice.ts";
42
- import { CrossSigningKeyInfo } from "../../crypto-api/index.ts";
43
-
44
- /*
45
- * Internal module. indexeddb storage for e2e.
46
- */
47
-
48
- /**
49
- * An implementation of CryptoStore, which is normally backed by an indexeddb,
50
- * but with fallback to MemoryCryptoStore.
51
- */
52
- export class IndexedDBCryptoStore implements CryptoStore {
53
- public static STORE_ACCOUNT = "account";
54
- public static STORE_SESSIONS = "sessions";
55
- public static STORE_INBOUND_GROUP_SESSIONS = "inbound_group_sessions";
56
- public static STORE_INBOUND_GROUP_SESSIONS_WITHHELD = "inbound_group_sessions_withheld";
57
- public static STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS = "shared_history_inbound_group_sessions";
58
- public static STORE_PARKED_SHARED_HISTORY = "parked_shared_history";
59
- public static STORE_DEVICE_DATA = "device_data";
60
- public static STORE_ROOMS = "rooms";
61
- public static STORE_BACKUP = "sessions_needing_backup";
62
-
63
- public static exists(indexedDB: IDBFactory, dbName: string): Promise<boolean> {
64
- return IndexedDBHelpers.exists(indexedDB, dbName);
65
- }
66
-
67
- /**
68
- * Utility to check if a legacy crypto store exists and has not been migrated.
69
- * Returns true if the store exists and has not been migrated, false otherwise.
70
- */
71
- public static existsAndIsNotMigrated(indexedDb: IDBFactory, dbName: string): Promise<boolean> {
72
- return new Promise<boolean>((resolve, reject) => {
73
- let exists = true;
74
- const openDBRequest = indexedDb.open(dbName);
75
- openDBRequest.onupgradeneeded = (): void => {
76
- // Since we did not provide an explicit version when opening, this event
77
- // should only fire if the DB did not exist before at any version.
78
- exists = false;
79
- };
80
- openDBRequest.onblocked = (): void => reject(openDBRequest.error);
81
- openDBRequest.onsuccess = (): void => {
82
- const db = openDBRequest.result;
83
- if (!exists) {
84
- db.close();
85
- // The DB did not exist before, but has been created as part of this
86
- // existence check. Delete it now to restore previous state. Delete can
87
- // actually take a while to complete in some browsers, so don't wait for
88
- // it. This won't block future open calls that a store might issue next to
89
- // properly set up the DB.
90
- indexedDb.deleteDatabase(dbName);
91
- resolve(false);
92
- } else {
93
- const tx = db.transaction([IndexedDBCryptoStore.STORE_ACCOUNT], "readonly");
94
- const objectStore = tx.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
95
- const getReq = objectStore.get(ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
96
-
97
- getReq.onsuccess = (): void => {
98
- const migrationState = getReq.result ?? MigrationState.NOT_STARTED;
99
- resolve(migrationState === MigrationState.NOT_STARTED);
100
- };
101
-
102
- getReq.onerror = (): void => {
103
- reject(getReq.error);
104
- };
105
-
106
- db.close();
107
- }
108
- };
109
- openDBRequest.onerror = (): void => reject(openDBRequest.error);
110
- });
111
- }
112
-
113
- private backendPromise?: Promise<CryptoStore>;
114
- private backend?: CryptoStore;
115
-
116
- /**
117
- * Create a new IndexedDBCryptoStore
118
- *
119
- * @param indexedDB - global indexedDB instance
120
- * @param dbName - name of db to connect to
121
- */
122
- public constructor(
123
- private readonly indexedDB: IDBFactory,
124
- private readonly dbName: string,
125
- ) {}
126
-
127
- /**
128
- * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
129
- *
130
- * Implementation of {@link CryptoStore.containsData}.
131
- *
132
- * @internal
133
- */
134
- public async containsData(): Promise<boolean> {
135
- return IndexedDBCryptoStore.exists(this.indexedDB, this.dbName);
136
- }
137
-
138
- /**
139
- * Ensure the database exists and is up-to-date, or fall back to
140
- * a local storage or in-memory store.
141
- *
142
- * This must be called before the store can be used.
143
- *
144
- * @returns resolves to either an IndexedDBCryptoStoreBackend.Backend,
145
- * or a MemoryCryptoStore
146
- */
147
- public startup(): Promise<CryptoStore> {
148
- if (this.backendPromise) {
149
- return this.backendPromise;
150
- }
151
-
152
- this.backendPromise = new Promise<CryptoStore>((resolve, reject) => {
153
- if (!this.indexedDB) {
154
- reject(new Error("no indexeddb support available"));
155
- return;
156
- }
157
-
158
- logger.log(`connecting to indexeddb ${this.dbName}`);
159
-
160
- const req = this.indexedDB.open(this.dbName, IndexedDBCryptoStoreBackend.VERSION);
161
-
162
- req.onupgradeneeded = (ev): void => {
163
- const db = req.result;
164
- const oldVersion = ev.oldVersion;
165
- IndexedDBCryptoStoreBackend.upgradeDatabase(db, oldVersion);
166
- };
167
-
168
- req.onblocked = (): void => {
169
- logger.log(`can't yet open IndexedDBCryptoStore because it is open elsewhere`);
170
- };
171
-
172
- req.onerror = (ev): void => {
173
- logger.log("Error connecting to indexeddb", ev);
174
- reject(req.error);
175
- };
176
-
177
- req.onsuccess = (): void => {
178
- const db = req.result;
179
-
180
- logger.log(`connected to indexeddb ${this.dbName}`);
181
- resolve(new IndexedDBCryptoStoreBackend.Backend(db));
182
- };
183
- })
184
- .then((backend) => {
185
- // Edge has IndexedDB but doesn't support compund keys which we use fairly extensively.
186
- // Try a dummy query which will fail if the browser doesn't support compund keys, so
187
- // we can fall back to a different backend.
188
- return backend
189
- .doTxn(
190
- "readonly",
191
- [
192
- IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS,
193
- IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS_WITHHELD,
194
- ],
195
- (txn) => {
196
- backend.getEndToEndInboundGroupSession("", "", txn, () => {});
197
- },
198
- )
199
- .then(() => backend);
200
- })
201
- .catch((e) => {
202
- if (e.name === "VersionError") {
203
- logger.warn("Crypto DB is too new for us to use!", e);
204
- // don't fall back to a different store: the user has crypto data
205
- // in this db so we should use it or nothing at all.
206
- throw new InvalidCryptoStoreError(InvalidCryptoStoreState.TooNew);
207
- }
208
- logger.warn(
209
- `unable to connect to indexeddb ${this.dbName}` + `: falling back to localStorage store: ${e}`,
210
- );
211
-
212
- try {
213
- return new LocalStorageCryptoStore(globalThis.localStorage);
214
- } catch (e) {
215
- logger.warn(`unable to open localStorage: falling back to in-memory store: ${e}`);
216
- return new MemoryCryptoStore();
217
- }
218
- })
219
- .then((backend) => {
220
- this.backend = backend;
221
- return backend;
222
- });
223
-
224
- return this.backendPromise;
225
- }
226
-
227
- /**
228
- * Delete all data from this store.
229
- *
230
- * @returns resolves when the store has been cleared.
231
- */
232
- public deleteAllData(): Promise<void> {
233
- return new Promise<void>((resolve, reject) => {
234
- if (!this.indexedDB) {
235
- reject(new Error("no indexeddb support available"));
236
- return;
237
- }
238
-
239
- logger.log(`Removing indexeddb instance: ${this.dbName}`);
240
- const req = this.indexedDB.deleteDatabase(this.dbName);
241
-
242
- req.onblocked = (): void => {
243
- logger.log(`can't yet delete IndexedDBCryptoStore because it is open elsewhere`);
244
- };
245
-
246
- req.onerror = (ev): void => {
247
- logger.log("Error deleting data from indexeddb", ev);
248
- reject(req.error);
249
- };
250
-
251
- req.onsuccess = (): void => {
252
- logger.log(`Removed indexeddb instance: ${this.dbName}`);
253
- resolve();
254
- };
255
- }).catch((e) => {
256
- // in firefox, with indexedDB disabled, this fails with a
257
- // DOMError. We treat this as non-fatal, so that people can
258
- // still use the app.
259
- logger.warn(`unable to delete IndexedDBCryptoStore: ${e}`);
260
- });
261
- }
262
-
263
- /**
264
- * Get data on how much of the libolm to Rust Crypto migration has been done.
265
- *
266
- * Implementation of {@link CryptoStore.getMigrationState}.
267
- *
268
- * @internal
269
- */
270
- public getMigrationState(): Promise<MigrationState> {
271
- return this.backend!.getMigrationState();
272
- }
273
-
274
- /**
275
- * Set data on how much of the libolm to Rust Crypto migration has been done.
276
- *
277
- * Implementation of {@link CryptoStore.setMigrationState}.
278
- *
279
- * @internal
280
- */
281
- public setMigrationState(migrationState: MigrationState): Promise<void> {
282
- return this.backend!.setMigrationState(migrationState);
283
- }
284
-
285
- /**
286
- * Look for an existing outgoing room key request, and if none is found,
287
- * add a new one
288
- *
289
- *
290
- * @returns resolves to
291
- * {@link OutgoingRoomKeyRequest}: either the
292
- * same instance as passed in, or the existing one.
293
- */
294
- public getOrAddOutgoingRoomKeyRequest(request: OutgoingRoomKeyRequest): Promise<OutgoingRoomKeyRequest> {
295
- return this.backend!.getOrAddOutgoingRoomKeyRequest(request);
296
- }
297
-
298
- /**
299
- * Look for an existing room key request
300
- *
301
- * @param requestBody - existing request to look for
302
- *
303
- * @returns resolves to the matching
304
- * {@link OutgoingRoomKeyRequest}, or null if
305
- * not found
306
- */
307
- public getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): Promise<OutgoingRoomKeyRequest | null> {
308
- return this.backend!.getOutgoingRoomKeyRequest(requestBody);
309
- }
310
-
311
- /**
312
- * Look for room key requests by state
313
- *
314
- * @param wantedStates - list of acceptable states
315
- *
316
- * @returns resolves to the a
317
- * {@link OutgoingRoomKeyRequest}, or null if
318
- * there are no pending requests in those states. If there are multiple
319
- * requests in those states, an arbitrary one is chosen.
320
- */
321
- public getOutgoingRoomKeyRequestByState(wantedStates: number[]): Promise<OutgoingRoomKeyRequest | null> {
322
- return this.backend!.getOutgoingRoomKeyRequestByState(wantedStates);
323
- }
324
-
325
- /**
326
- * Look for room key requests by state –
327
- * unlike above, return a list of all entries in one state.
328
- *
329
- * @returns Returns an array of requests in the given state
330
- */
331
- public getAllOutgoingRoomKeyRequestsByState(wantedState: number): Promise<OutgoingRoomKeyRequest[]> {
332
- return this.backend!.getAllOutgoingRoomKeyRequestsByState(wantedState);
333
- }
334
-
335
- /**
336
- * Look for room key requests by target device and state
337
- *
338
- * @param userId - Target user ID
339
- * @param deviceId - Target device ID
340
- * @param wantedStates - list of acceptable states
341
- *
342
- * @returns resolves to a list of all the
343
- * {@link OutgoingRoomKeyRequest}
344
- */
345
- public getOutgoingRoomKeyRequestsByTarget(
346
- userId: string,
347
- deviceId: string,
348
- wantedStates: number[],
349
- ): Promise<OutgoingRoomKeyRequest[]> {
350
- return this.backend!.getOutgoingRoomKeyRequestsByTarget(userId, deviceId, wantedStates);
351
- }
352
-
353
- /**
354
- * Look for an existing room key request by id and state, and update it if
355
- * found
356
- *
357
- * @param requestId - ID of request to update
358
- * @param expectedState - state we expect to find the request in
359
- * @param updates - name/value map of updates to apply
360
- *
361
- * @returns resolves to
362
- * {@link OutgoingRoomKeyRequest}
363
- * updated request, or null if no matching row was found
364
- */
365
- public updateOutgoingRoomKeyRequest(
366
- requestId: string,
367
- expectedState: number,
368
- updates: Partial<OutgoingRoomKeyRequest>,
369
- ): Promise<OutgoingRoomKeyRequest | null> {
370
- return this.backend!.updateOutgoingRoomKeyRequest(requestId, expectedState, updates);
371
- }
372
-
373
- /**
374
- * Look for an existing room key request by id and state, and delete it if
375
- * found
376
- *
377
- * @param requestId - ID of request to update
378
- * @param expectedState - state we expect to find the request in
379
- *
380
- * @returns resolves once the operation is completed
381
- */
382
- public deleteOutgoingRoomKeyRequest(
383
- requestId: string,
384
- expectedState: number,
385
- ): Promise<OutgoingRoomKeyRequest | null> {
386
- return this.backend!.deleteOutgoingRoomKeyRequest(requestId, expectedState);
387
- }
388
-
389
- // Olm Account
390
-
391
- /*
392
- * Get the account pickle from the store.
393
- * This requires an active transaction. See doTxn().
394
- *
395
- * @param txn - An active transaction. See doTxn().
396
- * @param func - Called with the account pickle
397
- */
398
- public getAccount(txn: IDBTransaction, func: (accountPickle: string | null) => void): void {
399
- this.backend!.getAccount(txn, func);
400
- }
401
-
402
- /**
403
- * Write the account pickle to the store.
404
- * This requires an active transaction. See doTxn().
405
- *
406
- * @param txn - An active transaction. See doTxn().
407
- * @param accountPickle - The new account pickle to store.
408
- */
409
- public storeAccount(txn: IDBTransaction, accountPickle: string): void {
410
- this.backend!.storeAccount(txn, accountPickle);
411
- }
412
-
413
- /**
414
- * Get the public part of the cross-signing keys (eg. self-signing key,
415
- * user signing key).
416
- *
417
- * @param txn - An active transaction. See doTxn().
418
- * @param func - Called with the account keys object:
419
- * `{ key_type: base64 encoded seed }` where key type = user_signing_key_seed or self_signing_key_seed
420
- */
421
- public getCrossSigningKeys(
422
- txn: IDBTransaction,
423
- func: (keys: Record<string, CrossSigningKeyInfo> | null) => void,
424
- ): void {
425
- this.backend!.getCrossSigningKeys(txn, func);
426
- }
427
-
428
- /**
429
- * @param txn - An active transaction. See doTxn().
430
- * @param func - Called with the private key
431
- * @param type - A key type
432
- */
433
- public getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(
434
- txn: IDBTransaction,
435
- func: (key: SecretStorePrivateKeys[K] | null) => void,
436
- type: K,
437
- ): void {
438
- this.backend!.getSecretStorePrivateKey(txn, func, type);
439
- }
440
-
441
- /**
442
- * Write the cross-signing keys back to the store
443
- *
444
- * @param txn - An active transaction. See doTxn().
445
- * @param keys - keys object as getCrossSigningKeys()
446
- */
447
- public storeCrossSigningKeys(txn: IDBTransaction, keys: Record<string, CrossSigningKeyInfo>): void {
448
- this.backend!.storeCrossSigningKeys(txn, keys);
449
- }
450
-
451
- /**
452
- * Write the cross-signing private keys back to the store
453
- *
454
- * @param txn - An active transaction. See doTxn().
455
- * @param type - The type of cross-signing private key to store
456
- * @param key - keys object as getCrossSigningKeys()
457
- */
458
- public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(
459
- txn: IDBTransaction,
460
- type: K,
461
- key: SecretStorePrivateKeys[K],
462
- ): void {
463
- this.backend!.storeSecretStorePrivateKey(txn, type, key);
464
- }
465
-
466
- // Olm sessions
467
-
468
- /**
469
- * Returns the number of end-to-end sessions in the store
470
- * @param txn - An active transaction. See doTxn().
471
- * @param func - Called with the count of sessions
472
- */
473
- public countEndToEndSessions(txn: IDBTransaction, func: (count: number) => void): void {
474
- this.backend!.countEndToEndSessions(txn, func);
475
- }
476
-
477
- /**
478
- * Retrieve a specific end-to-end session between the logged-in user
479
- * and another device.
480
- * @param deviceKey - The public key of the other device.
481
- * @param sessionId - The ID of the session to retrieve
482
- * @param txn - An active transaction. See doTxn().
483
- * @param func - Called with A map from sessionId
484
- * to session information object with 'session' key being the
485
- * Base64 end-to-end session and lastReceivedMessageTs being the
486
- * timestamp in milliseconds at which the session last received
487
- * a message.
488
- */
489
- public getEndToEndSession(
490
- deviceKey: string,
491
- sessionId: string,
492
- txn: IDBTransaction,
493
- func: (session: ISessionInfo | null) => void,
494
- ): void {
495
- this.backend!.getEndToEndSession(deviceKey, sessionId, txn, func);
496
- }
497
-
498
- /**
499
- * Retrieve the end-to-end sessions between the logged-in user and another
500
- * device.
501
- * @param deviceKey - The public key of the other device.
502
- * @param txn - An active transaction. See doTxn().
503
- * @param func - Called with A map from sessionId
504
- * to session information object with 'session' key being the
505
- * Base64 end-to-end session and lastReceivedMessageTs being the
506
- * timestamp in milliseconds at which the session last received
507
- * a message.
508
- */
509
- public getEndToEndSessions(
510
- deviceKey: string,
511
- txn: IDBTransaction,
512
- func: (sessions: { [sessionId: string]: ISessionInfo }) => void,
513
- ): void {
514
- this.backend!.getEndToEndSessions(deviceKey, txn, func);
515
- }
516
-
517
- /**
518
- * Retrieve all end-to-end sessions
519
- * @param txn - An active transaction. See doTxn().
520
- * @param func - Called one for each session with
521
- * an object with, deviceKey, lastReceivedMessageTs, sessionId
522
- * and session keys.
523
- */
524
- public getAllEndToEndSessions(txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void {
525
- this.backend!.getAllEndToEndSessions(txn, func);
526
- }
527
-
528
- /**
529
- * Store a session between the logged-in user and another device
530
- * @param deviceKey - The public key of the other device.
531
- * @param sessionId - The ID for this end-to-end session.
532
- * @param sessionInfo - Session information object
533
- * @param txn - An active transaction. See doTxn().
534
- */
535
- public storeEndToEndSession(
536
- deviceKey: string,
537
- sessionId: string,
538
- sessionInfo: ISessionInfo,
539
- txn: IDBTransaction,
540
- ): void {
541
- this.backend!.storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn);
542
- }
543
-
544
- public storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void> {
545
- return this.backend!.storeEndToEndSessionProblem(deviceKey, type, fixed);
546
- }
547
-
548
- public getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null> {
549
- return this.backend!.getEndToEndSessionProblem(deviceKey, timestamp);
550
- }
551
-
552
- public filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]> {
553
- return this.backend!.filterOutNotifiedErrorDevices(devices);
554
- }
555
-
556
- /**
557
- * Count the number of Megolm sessions in the database.
558
- *
559
- * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
560
- *
561
- * @internal
562
- */
563
- public countEndToEndInboundGroupSessions(): Promise<number> {
564
- return this.backend!.countEndToEndInboundGroupSessions();
565
- }
566
-
567
- /**
568
- * Fetch a batch of Olm sessions from the database.
569
- *
570
- * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
571
- *
572
- * @internal
573
- */
574
- public getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]> {
575
- return this.backend!.getEndToEndSessionsBatch();
576
- }
577
-
578
- /**
579
- * Delete a batch of Olm sessions from the database.
580
- *
581
- * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
582
- *
583
- * @internal
584
- */
585
- public deleteEndToEndSessionsBatch(sessions: { deviceKey: string; sessionId: string }[]): Promise<void> {
586
- return this.backend!.deleteEndToEndSessionsBatch(sessions);
587
- }
588
-
589
- // Inbound group sessions
590
-
591
- /**
592
- * Retrieve the end-to-end inbound group session for a given
593
- * server key and session ID
594
- * @param senderCurve25519Key - The sender's curve 25519 key
595
- * @param sessionId - The ID of the session
596
- * @param txn - An active transaction. See doTxn().
597
- * @param func - Called with A map from sessionId
598
- * to Base64 end-to-end session.
599
- */
600
- public getEndToEndInboundGroupSession(
601
- senderCurve25519Key: string,
602
- sessionId: string,
603
- txn: IDBTransaction,
604
- func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void,
605
- ): void {
606
- this.backend!.getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func);
607
- }
608
-
609
- /**
610
- * Fetches all inbound group sessions in the store
611
- * @param txn - An active transaction. See doTxn().
612
- * @param func - Called once for each group session
613
- * in the store with an object having keys `{senderKey, sessionId, sessionData}`,
614
- * then once with null to indicate the end of the list.
615
- */
616
- public getAllEndToEndInboundGroupSessions(txn: IDBTransaction, func: (session: ISession | null) => void): void {
617
- this.backend!.getAllEndToEndInboundGroupSessions(txn, func);
618
- }
619
-
620
- /**
621
- * Adds an end-to-end inbound group session to the store.
622
- * If there already exists an inbound group session with the same
623
- * senderCurve25519Key and sessionID, the session will not be added.
624
- * @param senderCurve25519Key - The sender's curve 25519 key
625
- * @param sessionId - The ID of the session
626
- * @param sessionData - The session data structure
627
- * @param txn - An active transaction. See doTxn().
628
- */
629
- public addEndToEndInboundGroupSession(
630
- senderCurve25519Key: string,
631
- sessionId: string,
632
- sessionData: InboundGroupSessionData,
633
- txn: IDBTransaction,
634
- ): void {
635
- this.backend!.addEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn);
636
- }
637
-
638
- /**
639
- * Writes an end-to-end inbound group session to the store.
640
- * If there already exists an inbound group session with the same
641
- * senderCurve25519Key and sessionID, it will be overwritten.
642
- * @param senderCurve25519Key - The sender's curve 25519 key
643
- * @param sessionId - The ID of the session
644
- * @param sessionData - The session data structure
645
- * @param txn - An active transaction. See doTxn().
646
- */
647
- public storeEndToEndInboundGroupSession(
648
- senderCurve25519Key: string,
649
- sessionId: string,
650
- sessionData: InboundGroupSessionData,
651
- txn: IDBTransaction,
652
- ): void {
653
- this.backend!.storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn);
654
- }
655
-
656
- public storeEndToEndInboundGroupSessionWithheld(
657
- senderCurve25519Key: string,
658
- sessionId: string,
659
- sessionData: IWithheld,
660
- txn: IDBTransaction,
661
- ): void {
662
- this.backend!.storeEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId, sessionData, txn);
663
- }
664
-
665
- /**
666
- * Fetch a batch of Megolm sessions from the database.
667
- *
668
- * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
669
- *
670
- * @internal
671
- */
672
- public getEndToEndInboundGroupSessionsBatch(): Promise<SessionExtended[] | null> {
673
- return this.backend!.getEndToEndInboundGroupSessionsBatch();
674
- }
675
-
676
- /**
677
- * Delete a batch of Megolm sessions from the database.
678
- *
679
- * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
680
- *
681
- * @internal
682
- */
683
- public deleteEndToEndInboundGroupSessionsBatch(
684
- sessions: { senderKey: string; sessionId: string }[],
685
- ): Promise<void> {
686
- return this.backend!.deleteEndToEndInboundGroupSessionsBatch(sessions);
687
- }
688
-
689
- // End-to-end device tracking
690
-
691
- /**
692
- * Store the state of all tracked devices
693
- * This contains devices for each user, a tracking state for each user
694
- * and a sync token matching the point in time the snapshot represents.
695
- * These all need to be written out in full each time such that the snapshot
696
- * is always consistent, so they are stored in one object.
697
- *
698
- * @param txn - An active transaction. See doTxn().
699
- */
700
- public storeEndToEndDeviceData(deviceData: IDeviceData, txn: IDBTransaction): void {
701
- this.backend!.storeEndToEndDeviceData(deviceData, txn);
702
- }
703
-
704
- /**
705
- * Get the state of all tracked devices
706
- *
707
- * @param txn - An active transaction. See doTxn().
708
- * @param func - Function called with the
709
- * device data
710
- */
711
- public getEndToEndDeviceData(txn: IDBTransaction, func: (deviceData: IDeviceData | null) => void): void {
712
- this.backend!.getEndToEndDeviceData(txn, func);
713
- }
714
-
715
- // End to End Rooms
716
-
717
- /**
718
- * Store the end-to-end state for a room.
719
- * @param roomId - The room's ID.
720
- * @param roomInfo - The end-to-end info for the room.
721
- * @param txn - An active transaction. See doTxn().
722
- */
723
- public storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: IDBTransaction): void {
724
- this.backend!.storeEndToEndRoom(roomId, roomInfo, txn);
725
- }
726
-
727
- /**
728
- * Get an object of `roomId->roomInfo` for all e2e rooms in the store
729
- * @param txn - An active transaction. See doTxn().
730
- * @param func - Function called with the end-to-end encrypted rooms
731
- */
732
- public getEndToEndRooms(txn: IDBTransaction, func: (rooms: Record<string, IRoomEncryption>) => void): void {
733
- this.backend!.getEndToEndRooms(txn, func);
734
- }
735
-
736
- // session backups
737
-
738
- /**
739
- * Get the inbound group sessions that need to be backed up.
740
- * @param limit - The maximum number of sessions to retrieve. 0
741
- * for no limit.
742
- * @returns resolves to an array of inbound group sessions
743
- */
744
- public getSessionsNeedingBackup(limit: number): Promise<ISession[]> {
745
- return this.backend!.getSessionsNeedingBackup(limit);
746
- }
747
-
748
- /**
749
- * Count the inbound group sessions that need to be backed up.
750
- * @param txn - An active transaction. See doTxn(). (optional)
751
- * @returns resolves to the number of sessions
752
- */
753
- public countSessionsNeedingBackup(txn?: IDBTransaction): Promise<number> {
754
- return this.backend!.countSessionsNeedingBackup(txn);
755
- }
756
-
757
- /**
758
- * Unmark sessions as needing to be backed up.
759
- * @param sessions - The sessions that need to be backed up.
760
- * @param txn - An active transaction. See doTxn(). (optional)
761
- * @returns resolves when the sessions are unmarked
762
- */
763
- public unmarkSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void> {
764
- return this.backend!.unmarkSessionsNeedingBackup(sessions, txn);
765
- }
766
-
767
- /**
768
- * Mark sessions as needing to be backed up.
769
- * @param sessions - The sessions that need to be backed up.
770
- * @param txn - An active transaction. See doTxn(). (optional)
771
- * @returns resolves when the sessions are marked
772
- */
773
- public markSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void> {
774
- return this.backend!.markSessionsNeedingBackup(sessions, txn);
775
- }
776
-
777
- /**
778
- * Add a shared-history group session for a room.
779
- * @param roomId - The room that the key belongs to
780
- * @param senderKey - The sender's curve 25519 key
781
- * @param sessionId - The ID of the session
782
- * @param txn - An active transaction. See doTxn(). (optional)
783
- */
784
- public addSharedHistoryInboundGroupSession(
785
- roomId: string,
786
- senderKey: string,
787
- sessionId: string,
788
- txn?: IDBTransaction,
789
- ): void {
790
- this.backend!.addSharedHistoryInboundGroupSession(roomId, senderKey, sessionId, txn);
791
- }
792
-
793
- /**
794
- * Get the shared-history group session for a room.
795
- * @param roomId - The room that the key belongs to
796
- * @param txn - An active transaction. See doTxn(). (optional)
797
- * @returns Promise which resolves to an array of [senderKey, sessionId]
798
- */
799
- public getSharedHistoryInboundGroupSessions(
800
- roomId: string,
801
- txn?: IDBTransaction,
802
- ): Promise<[senderKey: string, sessionId: string][]> {
803
- return this.backend!.getSharedHistoryInboundGroupSessions(roomId, txn);
804
- }
805
-
806
- /**
807
- * Park a shared-history group session for a room we may be invited to later.
808
- */
809
- public addParkedSharedHistory(roomId: string, parkedData: ParkedSharedHistory, txn?: IDBTransaction): void {
810
- this.backend!.addParkedSharedHistory(roomId, parkedData, txn);
811
- }
812
-
813
- /**
814
- * Pop out all shared-history group sessions for a room.
815
- */
816
- public takeParkedSharedHistory(roomId: string, txn?: IDBTransaction): Promise<ParkedSharedHistory[]> {
817
- return this.backend!.takeParkedSharedHistory(roomId, txn);
818
- }
819
-
820
- /**
821
- * Perform a transaction on the crypto store. Any store methods
822
- * that require a transaction (txn) object to be passed in may
823
- * only be called within a callback of either this function or
824
- * one of the store functions operating on the same transaction.
825
- *
826
- * @param mode - 'readwrite' if you need to call setter
827
- * functions with this transaction. Otherwise, 'readonly'.
828
- * @param stores - List IndexedDBCryptoStore.STORE_*
829
- * options representing all types of object that will be
830
- * accessed or written to with this transaction.
831
- * @param func - Function called with the
832
- * transaction object: an opaque object that should be passed
833
- * to store functions.
834
- * @param log - A possibly customised log
835
- * @returns Promise that resolves with the result of the `func`
836
- * when the transaction is complete. If the backend is
837
- * async (ie. the indexeddb backend) any of the callback
838
- * functions throwing an exception will cause this promise to
839
- * reject with that exception. On synchronous backends, the
840
- * exception will propagate to the caller of the getFoo method.
841
- */
842
- public doTxn<T>(mode: Mode, stores: Iterable<string>, func: (txn: IDBTransaction) => T, log?: Logger): Promise<T> {
843
- return this.backend!.doTxn<T>(mode, stores, func as (txn: unknown) => T, log);
844
- }
845
- }