@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,1145 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
5
-
6
- Licensed under the Apache License, Version 2.0 (the "License");
7
- you may not use this file except in compliance with the License.
8
- You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
17
- */
18
-
19
- import { logger } from "../../logger.js";
20
- import { deepCompare } from "../../utils.js";
21
- import { MigrationState, SESSION_BATCH_SIZE, ACCOUNT_OBJECT_KEY_MIGRATION_STATE } from "./base.js";
22
- import { IndexedDBCryptoStore } from "./indexeddb-crypto-store.js";
23
- var PROFILE_TRANSACTIONS = false;
24
-
25
- /**
26
- * Implementation of a CryptoStore which is backed by an existing
27
- * IndexedDB connection. Generally you want IndexedDBCryptoStore
28
- * which connects to the database and defers to one of these.
29
- *
30
- * @internal
31
- */
32
- export class Backend {
33
- /**
34
- */
35
- constructor(db) {
36
- this.db = db;
37
- _defineProperty(this, "nextTxnId", 0);
38
- // make sure we close the db on `onversionchange` - otherwise
39
- // attempts to delete the database will block (and subsequent
40
- // attempts to re-create it will also block).
41
- db.onversionchange = () => {
42
- logger.log("versionchange for indexeddb ".concat(this.db.name, ": closing"));
43
- db.close();
44
- };
45
- }
46
- containsData() {
47
- return _asyncToGenerator(function* () {
48
- throw Error("Not implemented for Backend");
49
- })();
50
- }
51
- startup() {
52
- var _this = this;
53
- return _asyncToGenerator(function* () {
54
- // No work to do, as the startup is done by the caller (e.g IndexedDBCryptoStore)
55
- // by passing us a ready IDBDatabase instance
56
- return _this;
57
- })();
58
- }
59
- deleteAllData() {
60
- return _asyncToGenerator(function* () {
61
- throw Error("This is not implemented, call IDBFactory::deleteDatabase(dbName) instead.");
62
- })();
63
- }
64
-
65
- /**
66
- * Get data on how much of the libolm to Rust Crypto migration has been done.
67
- *
68
- * Implementation of {@link CryptoStore.getMigrationState}.
69
- */
70
- getMigrationState() {
71
- var _this2 = this;
72
- return _asyncToGenerator(function* () {
73
- var migrationState = MigrationState.NOT_STARTED;
74
- yield _this2.doTxn("readonly", [IndexedDBCryptoStore.STORE_ACCOUNT], txn => {
75
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
76
- var getReq = objectStore.get(ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
77
- getReq.onsuccess = () => {
78
- var _getReq$result;
79
- migrationState = (_getReq$result = getReq.result) !== null && _getReq$result !== void 0 ? _getReq$result : MigrationState.NOT_STARTED;
80
- };
81
- });
82
- return migrationState;
83
- })();
84
- }
85
-
86
- /**
87
- * Set data on how much of the libolm to Rust Crypto migration has been done.
88
- *
89
- * Implementation of {@link CryptoStore.setMigrationState}.
90
- */
91
- setMigrationState(migrationState) {
92
- var _this3 = this;
93
- return _asyncToGenerator(function* () {
94
- yield _this3.doTxn("readwrite", [IndexedDBCryptoStore.STORE_ACCOUNT], txn => {
95
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);
96
- objectStore.put(migrationState, ACCOUNT_OBJECT_KEY_MIGRATION_STATE);
97
- });
98
- })();
99
- }
100
-
101
- /**
102
- * Look for an existing outgoing room key request, and if none is found,
103
- * add a new one
104
- *
105
- *
106
- * @returns resolves to
107
- * {@link OutgoingRoomKeyRequest}: either the
108
- * same instance as passed in, or the existing one.
109
- */
110
- getOrAddOutgoingRoomKeyRequest(request) {
111
- var requestBody = request.requestBody;
112
- return new Promise((resolve, reject) => {
113
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readwrite");
114
- txn.onerror = reject;
115
-
116
- // first see if we already have an entry for this request.
117
- this._getOutgoingRoomKeyRequest(txn, requestBody, existing => {
118
- if (existing) {
119
- // this entry matches the request - return it.
120
- logger.log("already have key request outstanding for " + "".concat(requestBody.room_id, " / ").concat(requestBody.session_id, ": ") + "not sending another");
121
- resolve(existing);
122
- return;
123
- }
124
-
125
- // we got to the end of the list without finding a match
126
- // - add the new request.
127
- logger.log("enqueueing key request for ".concat(requestBody.room_id, " / ") + requestBody.session_id);
128
- txn.oncomplete = () => {
129
- resolve(request);
130
- };
131
- var store = txn.objectStore("outgoingRoomKeyRequests");
132
- store.add(request);
133
- });
134
- });
135
- }
136
-
137
- /**
138
- * Look for an existing room key request
139
- *
140
- * @param requestBody - existing request to look for
141
- *
142
- * @returns resolves to the matching
143
- * {@link OutgoingRoomKeyRequest}, or null if
144
- * not found
145
- */
146
- getOutgoingRoomKeyRequest(requestBody) {
147
- return new Promise((resolve, reject) => {
148
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readonly");
149
- txn.onerror = reject;
150
- this._getOutgoingRoomKeyRequest(txn, requestBody, existing => {
151
- resolve(existing);
152
- });
153
- });
154
- }
155
-
156
- /**
157
- * look for an existing room key request in the db
158
- *
159
- * @internal
160
- * @param txn - database transaction
161
- * @param requestBody - existing request to look for
162
- * @param callback - function to call with the results of the
163
- * search. Either passed a matching
164
- * {@link OutgoingRoomKeyRequest}, or null if
165
- * not found.
166
- */
167
- // eslint-disable-next-line @typescript-eslint/naming-convention
168
- _getOutgoingRoomKeyRequest(txn, requestBody, callback) {
169
- var store = txn.objectStore("outgoingRoomKeyRequests");
170
- var idx = store.index("session");
171
- var cursorReq = idx.openCursor([requestBody.room_id, requestBody.session_id]);
172
- cursorReq.onsuccess = () => {
173
- var cursor = cursorReq.result;
174
- if (!cursor) {
175
- // no match found
176
- callback(null);
177
- return;
178
- }
179
- var existing = cursor.value;
180
- if (deepCompare(existing.requestBody, requestBody)) {
181
- // got a match
182
- callback(existing);
183
- return;
184
- }
185
-
186
- // look at the next entry in the index
187
- cursor.continue();
188
- };
189
- }
190
-
191
- /**
192
- * Look for room key requests by state
193
- *
194
- * @param wantedStates - list of acceptable states
195
- *
196
- * @returns resolves to the a
197
- * {@link OutgoingRoomKeyRequest}, or null if
198
- * there are no pending requests in those states. If there are multiple
199
- * requests in those states, an arbitrary one is chosen.
200
- */
201
- getOutgoingRoomKeyRequestByState(wantedStates) {
202
- if (wantedStates.length === 0) {
203
- return Promise.resolve(null);
204
- }
205
-
206
- // this is a bit tortuous because we need to make sure we do the lookup
207
- // in a single transaction, to avoid having a race with the insertion
208
- // code.
209
-
210
- // index into the wantedStates array
211
- var stateIndex = 0;
212
- var result;
213
- function onsuccess() {
214
- var cursor = this.result;
215
- if (cursor) {
216
- // got a match
217
- result = cursor.value;
218
- return;
219
- }
220
-
221
- // try the next state in the list
222
- stateIndex++;
223
- if (stateIndex >= wantedStates.length) {
224
- // no matches
225
- return;
226
- }
227
- var wantedState = wantedStates[stateIndex];
228
- var cursorReq = this.source.openCursor(wantedState);
229
- cursorReq.onsuccess = onsuccess;
230
- }
231
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readonly");
232
- var store = txn.objectStore("outgoingRoomKeyRequests");
233
- var wantedState = wantedStates[stateIndex];
234
- var cursorReq = store.index("state").openCursor(wantedState);
235
- cursorReq.onsuccess = onsuccess;
236
- return promiseifyTxn(txn).then(() => result);
237
- }
238
-
239
- /**
240
- *
241
- * @returns All elements in a given state
242
- */
243
- getAllOutgoingRoomKeyRequestsByState(wantedState) {
244
- return new Promise((resolve, reject) => {
245
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readonly");
246
- var store = txn.objectStore("outgoingRoomKeyRequests");
247
- var index = store.index("state");
248
- var request = index.getAll(wantedState);
249
- request.onsuccess = () => resolve(request.result);
250
- request.onerror = () => reject(request.error);
251
- });
252
- }
253
- getOutgoingRoomKeyRequestsByTarget(userId, deviceId, wantedStates) {
254
- var stateIndex = 0;
255
- var results = [];
256
- function onsuccess() {
257
- var cursor = this.result;
258
- if (cursor) {
259
- var keyReq = cursor.value;
260
- if (keyReq.recipients.some(recipient => recipient.userId === userId && recipient.deviceId === deviceId)) {
261
- results.push(keyReq);
262
- }
263
- cursor.continue();
264
- } else {
265
- // try the next state in the list
266
- stateIndex++;
267
- if (stateIndex >= wantedStates.length) {
268
- // no matches
269
- return;
270
- }
271
- var _wantedState = wantedStates[stateIndex];
272
- var _cursorReq = this.source.openCursor(_wantedState);
273
- _cursorReq.onsuccess = onsuccess;
274
- }
275
- }
276
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readonly");
277
- var store = txn.objectStore("outgoingRoomKeyRequests");
278
- var wantedState = wantedStates[stateIndex];
279
- var cursorReq = store.index("state").openCursor(wantedState);
280
- cursorReq.onsuccess = onsuccess;
281
- return promiseifyTxn(txn).then(() => results);
282
- }
283
-
284
- /**
285
- * Look for an existing room key request by id and state, and update it if
286
- * found
287
- *
288
- * @param requestId - ID of request to update
289
- * @param expectedState - state we expect to find the request in
290
- * @param updates - name/value map of updates to apply
291
- *
292
- * @returns resolves to
293
- * {@link OutgoingRoomKeyRequest}
294
- * updated request, or null if no matching row was found
295
- */
296
- updateOutgoingRoomKeyRequest(requestId, expectedState, updates) {
297
- var result = null;
298
- function onsuccess() {
299
- var cursor = this.result;
300
- if (!cursor) {
301
- return;
302
- }
303
- var data = cursor.value;
304
- if (data.state != expectedState) {
305
- logger.warn("Cannot update room key request from ".concat(expectedState, " ") + "as it was already updated to ".concat(data.state));
306
- return;
307
- }
308
- Object.assign(data, updates);
309
- cursor.update(data);
310
- result = data;
311
- }
312
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readwrite");
313
- var cursorReq = txn.objectStore("outgoingRoomKeyRequests").openCursor(requestId);
314
- cursorReq.onsuccess = onsuccess;
315
- return promiseifyTxn(txn).then(() => result);
316
- }
317
-
318
- /**
319
- * Look for an existing room key request by id and state, and delete it if
320
- * found
321
- *
322
- * @param requestId - ID of request to update
323
- * @param expectedState - state we expect to find the request in
324
- *
325
- * @returns resolves once the operation is completed
326
- */
327
- deleteOutgoingRoomKeyRequest(requestId, expectedState) {
328
- var txn = this.db.transaction("outgoingRoomKeyRequests", "readwrite");
329
- var cursorReq = txn.objectStore("outgoingRoomKeyRequests").openCursor(requestId);
330
- cursorReq.onsuccess = () => {
331
- var cursor = cursorReq.result;
332
- if (!cursor) {
333
- return;
334
- }
335
- var data = cursor.value;
336
- if (data.state != expectedState) {
337
- logger.warn("Cannot delete room key request in state ".concat(data.state, " ") + "(expected ".concat(expectedState, ")"));
338
- return;
339
- }
340
- cursor.delete();
341
- };
342
- return promiseifyTxn(txn);
343
- }
344
-
345
- // Olm Account
346
-
347
- getAccount(txn, func) {
348
- var objectStore = txn.objectStore("account");
349
- var getReq = objectStore.get("-");
350
- getReq.onsuccess = function () {
351
- try {
352
- func(getReq.result || null);
353
- } catch (e) {
354
- abortWithException(txn, e);
355
- }
356
- };
357
- }
358
- storeAccount(txn, accountPickle) {
359
- var objectStore = txn.objectStore("account");
360
- objectStore.put(accountPickle, "-");
361
- }
362
- getCrossSigningKeys(txn, func) {
363
- var objectStore = txn.objectStore("account");
364
- var getReq = objectStore.get("crossSigningKeys");
365
- getReq.onsuccess = function () {
366
- try {
367
- func(getReq.result || null);
368
- } catch (e) {
369
- abortWithException(txn, e);
370
- }
371
- };
372
- }
373
- getSecretStorePrivateKey(txn, func, type) {
374
- var objectStore = txn.objectStore("account");
375
- var getReq = objectStore.get("ssss_cache:".concat(type));
376
- getReq.onsuccess = function () {
377
- try {
378
- func(getReq.result || null);
379
- } catch (e) {
380
- abortWithException(txn, e);
381
- }
382
- };
383
- }
384
- storeCrossSigningKeys(txn, keys) {
385
- var objectStore = txn.objectStore("account");
386
- objectStore.put(keys, "crossSigningKeys");
387
- }
388
- storeSecretStorePrivateKey(txn, type, key) {
389
- var objectStore = txn.objectStore("account");
390
- objectStore.put(key, "ssss_cache:".concat(type));
391
- }
392
-
393
- // Olm Sessions
394
-
395
- countEndToEndSessions(txn, func) {
396
- var objectStore = txn.objectStore("sessions");
397
- var countReq = objectStore.count();
398
- countReq.onsuccess = function () {
399
- try {
400
- func(countReq.result);
401
- } catch (e) {
402
- abortWithException(txn, e);
403
- }
404
- };
405
- }
406
- getEndToEndSessions(deviceKey, txn, func) {
407
- var objectStore = txn.objectStore("sessions");
408
- var idx = objectStore.index("deviceKey");
409
- var getReq = idx.openCursor(deviceKey);
410
- var results = {};
411
- getReq.onsuccess = function () {
412
- var cursor = getReq.result;
413
- if (cursor) {
414
- results[cursor.value.sessionId] = {
415
- session: cursor.value.session,
416
- lastReceivedMessageTs: cursor.value.lastReceivedMessageTs
417
- };
418
- cursor.continue();
419
- } else {
420
- try {
421
- func(results);
422
- } catch (e) {
423
- abortWithException(txn, e);
424
- }
425
- }
426
- };
427
- }
428
- getEndToEndSession(deviceKey, sessionId, txn, func) {
429
- var objectStore = txn.objectStore("sessions");
430
- var getReq = objectStore.get([deviceKey, sessionId]);
431
- getReq.onsuccess = function () {
432
- try {
433
- if (getReq.result) {
434
- func({
435
- session: getReq.result.session,
436
- lastReceivedMessageTs: getReq.result.lastReceivedMessageTs
437
- });
438
- } else {
439
- func(null);
440
- }
441
- } catch (e) {
442
- abortWithException(txn, e);
443
- }
444
- };
445
- }
446
- getAllEndToEndSessions(txn, func) {
447
- var objectStore = txn.objectStore("sessions");
448
- var getReq = objectStore.openCursor();
449
- getReq.onsuccess = function () {
450
- try {
451
- var cursor = getReq.result;
452
- if (cursor) {
453
- func(cursor.value);
454
- cursor.continue();
455
- } else {
456
- func(null);
457
- }
458
- } catch (e) {
459
- abortWithException(txn, e);
460
- }
461
- };
462
- }
463
- storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn) {
464
- var objectStore = txn.objectStore("sessions");
465
- objectStore.put({
466
- deviceKey,
467
- sessionId,
468
- session: sessionInfo.session,
469
- lastReceivedMessageTs: sessionInfo.lastReceivedMessageTs
470
- });
471
- }
472
- storeEndToEndSessionProblem(deviceKey, type, fixed) {
473
- var _this4 = this;
474
- return _asyncToGenerator(function* () {
475
- var txn = _this4.db.transaction("session_problems", "readwrite");
476
- var objectStore = txn.objectStore("session_problems");
477
- objectStore.put({
478
- deviceKey,
479
- type,
480
- fixed,
481
- time: Date.now()
482
- });
483
- yield promiseifyTxn(txn);
484
- })();
485
- }
486
- getEndToEndSessionProblem(deviceKey, timestamp) {
487
- var _this5 = this;
488
- return _asyncToGenerator(function* () {
489
- var result = null;
490
- var txn = _this5.db.transaction("session_problems", "readwrite");
491
- var objectStore = txn.objectStore("session_problems");
492
- var index = objectStore.index("deviceKey");
493
- var req = index.getAll(deviceKey);
494
- req.onsuccess = () => {
495
- var problems = req.result;
496
- if (!problems.length) {
497
- result = null;
498
- return;
499
- }
500
- problems.sort((a, b) => {
501
- return a.time - b.time;
502
- });
503
- var lastProblem = problems[problems.length - 1];
504
- for (var problem of problems) {
505
- if (problem.time > timestamp) {
506
- result = Object.assign({}, problem, {
507
- fixed: lastProblem.fixed
508
- });
509
- return;
510
- }
511
- }
512
- if (lastProblem.fixed) {
513
- result = null;
514
- } else {
515
- result = lastProblem;
516
- }
517
- };
518
- yield promiseifyTxn(txn);
519
- return result;
520
- })();
521
- }
522
-
523
- // FIXME: we should probably prune this when devices get deleted
524
- filterOutNotifiedErrorDevices(devices) {
525
- var _this6 = this;
526
- return _asyncToGenerator(function* () {
527
- var txn = _this6.db.transaction("notified_error_devices", "readwrite");
528
- var objectStore = txn.objectStore("notified_error_devices");
529
- var ret = [];
530
- yield Promise.all(devices.map(device => {
531
- return new Promise(resolve => {
532
- var {
533
- userId,
534
- deviceInfo
535
- } = device;
536
- var getReq = objectStore.get([userId, deviceInfo.deviceId]);
537
- getReq.onsuccess = function () {
538
- if (!getReq.result) {
539
- objectStore.put({
540
- userId,
541
- deviceId: deviceInfo.deviceId
542
- });
543
- ret.push(device);
544
- }
545
- resolve();
546
- };
547
- });
548
- }));
549
- return ret;
550
- })();
551
- }
552
-
553
- /**
554
- * Fetch a batch of Olm sessions from the database.
555
- *
556
- * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
557
- */
558
- getEndToEndSessionsBatch() {
559
- var _this7 = this;
560
- return _asyncToGenerator(function* () {
561
- var result = [];
562
- yield _this7.doTxn("readonly", [IndexedDBCryptoStore.STORE_SESSIONS], txn => {
563
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);
564
- var getReq = objectStore.openCursor();
565
- getReq.onsuccess = function () {
566
- try {
567
- var cursor = getReq.result;
568
- if (cursor) {
569
- result.push(cursor.value);
570
- if (result.length < SESSION_BATCH_SIZE) {
571
- cursor.continue();
572
- }
573
- }
574
- } catch (e) {
575
- abortWithException(txn, e);
576
- }
577
- };
578
- });
579
- if (result.length === 0) {
580
- // No sessions left.
581
- return null;
582
- }
583
- return result;
584
- })();
585
- }
586
-
587
- /**
588
- * Delete a batch of Olm sessions from the database.
589
- *
590
- * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
591
- *
592
- * @internal
593
- */
594
- deleteEndToEndSessionsBatch(sessions) {
595
- var _this8 = this;
596
- return _asyncToGenerator(function* () {
597
- yield _this8.doTxn("readwrite", [IndexedDBCryptoStore.STORE_SESSIONS], /*#__PURE__*/function () {
598
- var _ref = _asyncToGenerator(function* (txn) {
599
- try {
600
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);
601
- var _loop = function* _loop() {
602
- var req = objectStore.delete([deviceKey, sessionId]);
603
- yield new Promise(resolve => {
604
- req.onsuccess = resolve;
605
- });
606
- };
607
- for (var {
608
- deviceKey,
609
- sessionId
610
- } of sessions) {
611
- yield* _loop();
612
- }
613
- } catch (e) {
614
- abortWithException(txn, e);
615
- }
616
- });
617
- return function (_x) {
618
- return _ref.apply(this, arguments);
619
- };
620
- }());
621
- })();
622
- }
623
-
624
- // Inbound group sessions
625
-
626
- getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func) {
627
- var session = false;
628
- var withheld = false;
629
- var objectStore = txn.objectStore("inbound_group_sessions");
630
- var getReq = objectStore.get([senderCurve25519Key, sessionId]);
631
- getReq.onsuccess = function () {
632
- try {
633
- if (getReq.result) {
634
- session = getReq.result.session;
635
- } else {
636
- session = null;
637
- }
638
- if (withheld !== false) {
639
- func(session, withheld);
640
- }
641
- } catch (e) {
642
- abortWithException(txn, e);
643
- }
644
- };
645
- var withheldObjectStore = txn.objectStore("inbound_group_sessions_withheld");
646
- var withheldGetReq = withheldObjectStore.get([senderCurve25519Key, sessionId]);
647
- withheldGetReq.onsuccess = function () {
648
- try {
649
- if (withheldGetReq.result) {
650
- withheld = withheldGetReq.result.session;
651
- } else {
652
- withheld = null;
653
- }
654
- if (session !== false) {
655
- func(session, withheld);
656
- }
657
- } catch (e) {
658
- abortWithException(txn, e);
659
- }
660
- };
661
- }
662
- getAllEndToEndInboundGroupSessions(txn, func) {
663
- var objectStore = txn.objectStore("inbound_group_sessions");
664
- var getReq = objectStore.openCursor();
665
- getReq.onsuccess = function () {
666
- var cursor = getReq.result;
667
- if (cursor) {
668
- try {
669
- func({
670
- senderKey: cursor.value.senderCurve25519Key,
671
- sessionId: cursor.value.sessionId,
672
- sessionData: cursor.value.session
673
- });
674
- } catch (e) {
675
- abortWithException(txn, e);
676
- }
677
- cursor.continue();
678
- } else {
679
- try {
680
- func(null);
681
- } catch (e) {
682
- abortWithException(txn, e);
683
- }
684
- }
685
- };
686
- }
687
- addEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
688
- var objectStore = txn.objectStore("inbound_group_sessions");
689
- var addReq = objectStore.add({
690
- senderCurve25519Key,
691
- sessionId,
692
- session: sessionData
693
- });
694
- addReq.onerror = ev => {
695
- var _addReq$error;
696
- if (((_addReq$error = addReq.error) === null || _addReq$error === void 0 ? void 0 : _addReq$error.name) === "ConstraintError") {
697
- // This stops the error from triggering the txn's onerror
698
- ev.stopPropagation();
699
- // ...and this stops it from aborting the transaction
700
- ev.preventDefault();
701
- logger.log("Ignoring duplicate inbound group session: " + senderCurve25519Key + " / " + sessionId);
702
- } else {
703
- abortWithException(txn, new Error("Failed to add inbound group session: " + addReq.error));
704
- }
705
- };
706
- }
707
- storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
708
- var objectStore = txn.objectStore("inbound_group_sessions");
709
- objectStore.put({
710
- senderCurve25519Key,
711
- sessionId,
712
- session: sessionData
713
- });
714
- }
715
- storeEndToEndInboundGroupSessionWithheld(senderCurve25519Key, sessionId, sessionData, txn) {
716
- var objectStore = txn.objectStore("inbound_group_sessions_withheld");
717
- objectStore.put({
718
- senderCurve25519Key,
719
- sessionId,
720
- session: sessionData
721
- });
722
- }
723
-
724
- /**
725
- * Count the number of Megolm sessions in the database.
726
- *
727
- * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
728
- *
729
- * @internal
730
- */
731
- countEndToEndInboundGroupSessions() {
732
- var _this9 = this;
733
- return _asyncToGenerator(function* () {
734
- var result = 0;
735
- yield _this9.doTxn("readonly", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], txn => {
736
- var sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
737
- var countReq = sessionStore.count();
738
- countReq.onsuccess = () => {
739
- result = countReq.result;
740
- };
741
- });
742
- return result;
743
- })();
744
- }
745
-
746
- /**
747
- * Fetch a batch of Megolm sessions from the database.
748
- *
749
- * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
750
- */
751
- getEndToEndInboundGroupSessionsBatch() {
752
- var _this10 = this;
753
- return _asyncToGenerator(function* () {
754
- var result = [];
755
- yield _this10.doTxn("readonly", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS, IndexedDBCryptoStore.STORE_BACKUP], txn => {
756
- var sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
757
- var backupStore = txn.objectStore(IndexedDBCryptoStore.STORE_BACKUP);
758
- var getReq = sessionStore.openCursor();
759
- getReq.onsuccess = function () {
760
- try {
761
- var cursor = getReq.result;
762
- if (cursor) {
763
- var backupGetReq = backupStore.get(cursor.key);
764
- backupGetReq.onsuccess = () => {
765
- result.push({
766
- senderKey: cursor.value.senderCurve25519Key,
767
- sessionId: cursor.value.sessionId,
768
- sessionData: cursor.value.session,
769
- needsBackup: backupGetReq.result !== undefined
770
- });
771
- if (result.length < SESSION_BATCH_SIZE) {
772
- cursor.continue();
773
- }
774
- };
775
- }
776
- } catch (e) {
777
- abortWithException(txn, e);
778
- }
779
- };
780
- });
781
- if (result.length === 0) {
782
- // No sessions left.
783
- return null;
784
- }
785
- return result;
786
- })();
787
- }
788
-
789
- /**
790
- * Delete a batch of Megolm sessions from the database.
791
- *
792
- * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
793
- *
794
- * @internal
795
- */
796
- deleteEndToEndInboundGroupSessionsBatch(sessions) {
797
- var _this11 = this;
798
- return _asyncToGenerator(function* () {
799
- yield _this11.doTxn("readwrite", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], /*#__PURE__*/function () {
800
- var _ref2 = _asyncToGenerator(function* (txn) {
801
- try {
802
- var objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);
803
- var _loop2 = function* _loop2() {
804
- var req = objectStore.delete([senderKey, sessionId]);
805
- yield new Promise(resolve => {
806
- req.onsuccess = resolve;
807
- });
808
- };
809
- for (var {
810
- senderKey,
811
- sessionId
812
- } of sessions) {
813
- yield* _loop2();
814
- }
815
- } catch (e) {
816
- abortWithException(txn, e);
817
- }
818
- });
819
- return function (_x2) {
820
- return _ref2.apply(this, arguments);
821
- };
822
- }());
823
- })();
824
- }
825
- getEndToEndDeviceData(txn, func) {
826
- var objectStore = txn.objectStore("device_data");
827
- var getReq = objectStore.get("-");
828
- getReq.onsuccess = function () {
829
- try {
830
- func(getReq.result || null);
831
- } catch (e) {
832
- abortWithException(txn, e);
833
- }
834
- };
835
- }
836
- storeEndToEndDeviceData(deviceData, txn) {
837
- var objectStore = txn.objectStore("device_data");
838
- objectStore.put(deviceData, "-");
839
- }
840
- storeEndToEndRoom(roomId, roomInfo, txn) {
841
- var objectStore = txn.objectStore("rooms");
842
- objectStore.put(roomInfo, roomId);
843
- }
844
- getEndToEndRooms(txn, func) {
845
- var rooms = {};
846
- var objectStore = txn.objectStore("rooms");
847
- var getReq = objectStore.openCursor();
848
- getReq.onsuccess = function () {
849
- var cursor = getReq.result;
850
- if (cursor) {
851
- rooms[cursor.key] = cursor.value;
852
- cursor.continue();
853
- } else {
854
- try {
855
- func(rooms);
856
- } catch (e) {
857
- abortWithException(txn, e);
858
- }
859
- }
860
- };
861
- }
862
-
863
- // session backups
864
-
865
- getSessionsNeedingBackup(limit) {
866
- return new Promise((resolve, reject) => {
867
- var sessions = [];
868
- var txn = this.db.transaction(["sessions_needing_backup", "inbound_group_sessions"], "readonly");
869
- txn.onerror = reject;
870
- txn.oncomplete = function () {
871
- resolve(sessions);
872
- };
873
- var objectStore = txn.objectStore("sessions_needing_backup");
874
- var sessionStore = txn.objectStore("inbound_group_sessions");
875
- var getReq = objectStore.openCursor();
876
- getReq.onsuccess = function () {
877
- var cursor = getReq.result;
878
- if (cursor) {
879
- var sessionGetReq = sessionStore.get(cursor.key);
880
- sessionGetReq.onsuccess = function () {
881
- sessions.push({
882
- senderKey: sessionGetReq.result.senderCurve25519Key,
883
- sessionId: sessionGetReq.result.sessionId,
884
- sessionData: sessionGetReq.result.session
885
- });
886
- };
887
- if (!limit || sessions.length < limit) {
888
- cursor.continue();
889
- }
890
- }
891
- };
892
- });
893
- }
894
- countSessionsNeedingBackup(txn) {
895
- if (!txn) {
896
- txn = this.db.transaction("sessions_needing_backup", "readonly");
897
- }
898
- var objectStore = txn.objectStore("sessions_needing_backup");
899
- return new Promise((resolve, reject) => {
900
- var req = objectStore.count();
901
- req.onerror = reject;
902
- req.onsuccess = () => resolve(req.result);
903
- });
904
- }
905
- unmarkSessionsNeedingBackup(sessions, txn) {
906
- var _this12 = this;
907
- return _asyncToGenerator(function* () {
908
- if (!txn) {
909
- txn = _this12.db.transaction("sessions_needing_backup", "readwrite");
910
- }
911
- var objectStore = txn.objectStore("sessions_needing_backup");
912
- yield Promise.all(sessions.map(session => {
913
- return new Promise((resolve, reject) => {
914
- var req = objectStore.delete([session.senderKey, session.sessionId]);
915
- req.onsuccess = resolve;
916
- req.onerror = reject;
917
- });
918
- }));
919
- })();
920
- }
921
- markSessionsNeedingBackup(sessions, txn) {
922
- var _this13 = this;
923
- return _asyncToGenerator(function* () {
924
- if (!txn) {
925
- txn = _this13.db.transaction("sessions_needing_backup", "readwrite");
926
- }
927
- var objectStore = txn.objectStore("sessions_needing_backup");
928
- yield Promise.all(sessions.map(session => {
929
- return new Promise((resolve, reject) => {
930
- var req = objectStore.put({
931
- senderCurve25519Key: session.senderKey,
932
- sessionId: session.sessionId
933
- });
934
- req.onsuccess = resolve;
935
- req.onerror = reject;
936
- });
937
- }));
938
- })();
939
- }
940
- addSharedHistoryInboundGroupSession(roomId, senderKey, sessionId, txn) {
941
- if (!txn) {
942
- txn = this.db.transaction("shared_history_inbound_group_sessions", "readwrite");
943
- }
944
- var objectStore = txn.objectStore("shared_history_inbound_group_sessions");
945
- var req = objectStore.get([roomId]);
946
- req.onsuccess = () => {
947
- var {
948
- sessions
949
- } = req.result || {
950
- sessions: []
951
- };
952
- sessions.push([senderKey, sessionId]);
953
- objectStore.put({
954
- roomId,
955
- sessions
956
- });
957
- };
958
- }
959
- getSharedHistoryInboundGroupSessions(roomId, txn) {
960
- if (!txn) {
961
- txn = this.db.transaction("shared_history_inbound_group_sessions", "readonly");
962
- }
963
- var objectStore = txn.objectStore("shared_history_inbound_group_sessions");
964
- var req = objectStore.get([roomId]);
965
- return new Promise((resolve, reject) => {
966
- req.onsuccess = () => {
967
- var {
968
- sessions
969
- } = req.result || {
970
- sessions: []
971
- };
972
- resolve(sessions);
973
- };
974
- req.onerror = reject;
975
- });
976
- }
977
- addParkedSharedHistory(roomId, parkedData, txn) {
978
- if (!txn) {
979
- txn = this.db.transaction("parked_shared_history", "readwrite");
980
- }
981
- var objectStore = txn.objectStore("parked_shared_history");
982
- var req = objectStore.get([roomId]);
983
- req.onsuccess = () => {
984
- var {
985
- parked
986
- } = req.result || {
987
- parked: []
988
- };
989
- parked.push(parkedData);
990
- objectStore.put({
991
- roomId,
992
- parked
993
- });
994
- };
995
- }
996
- takeParkedSharedHistory(roomId, txn) {
997
- if (!txn) {
998
- txn = this.db.transaction("parked_shared_history", "readwrite");
999
- }
1000
- var cursorReq = txn.objectStore("parked_shared_history").openCursor(roomId);
1001
- return new Promise((resolve, reject) => {
1002
- cursorReq.onsuccess = () => {
1003
- var cursor = cursorReq.result;
1004
- if (!cursor) {
1005
- resolve([]);
1006
- return;
1007
- }
1008
- var data = cursor.value;
1009
- cursor.delete();
1010
- resolve(data);
1011
- };
1012
- cursorReq.onerror = reject;
1013
- });
1014
- }
1015
- doTxn(mode, stores, func) {
1016
- var log = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : logger;
1017
- var startTime;
1018
- var description;
1019
- if (PROFILE_TRANSACTIONS) {
1020
- var txnId = this.nextTxnId++;
1021
- startTime = Date.now();
1022
- description = "".concat(mode, " crypto store transaction ").concat(txnId, " in ").concat(stores);
1023
- log.debug("Starting ".concat(description));
1024
- }
1025
- var txn = this.db.transaction(stores, mode);
1026
- var promise = promiseifyTxn(txn);
1027
- var result = func(txn);
1028
- if (PROFILE_TRANSACTIONS) {
1029
- promise.then(() => {
1030
- var elapsedTime = Date.now() - startTime;
1031
- log.debug("Finished ".concat(description, ", took ").concat(elapsedTime, " ms"));
1032
- }, () => {
1033
- var elapsedTime = Date.now() - startTime;
1034
- log.error("Failed ".concat(description, ", took ").concat(elapsedTime, " ms"));
1035
- });
1036
- }
1037
- return promise.then(() => {
1038
- return result;
1039
- });
1040
- }
1041
- }
1042
- var DB_MIGRATIONS = [db => {
1043
- createDatabase(db);
1044
- }, db => {
1045
- db.createObjectStore("account");
1046
- }, db => {
1047
- var sessionsStore = db.createObjectStore("sessions", {
1048
- keyPath: ["deviceKey", "sessionId"]
1049
- });
1050
- sessionsStore.createIndex("deviceKey", "deviceKey");
1051
- }, db => {
1052
- db.createObjectStore("inbound_group_sessions", {
1053
- keyPath: ["senderCurve25519Key", "sessionId"]
1054
- });
1055
- }, db => {
1056
- db.createObjectStore("device_data");
1057
- }, db => {
1058
- db.createObjectStore("rooms");
1059
- }, db => {
1060
- db.createObjectStore("sessions_needing_backup", {
1061
- keyPath: ["senderCurve25519Key", "sessionId"]
1062
- });
1063
- }, db => {
1064
- db.createObjectStore("inbound_group_sessions_withheld", {
1065
- keyPath: ["senderCurve25519Key", "sessionId"]
1066
- });
1067
- }, db => {
1068
- var problemsStore = db.createObjectStore("session_problems", {
1069
- keyPath: ["deviceKey", "time"]
1070
- });
1071
- problemsStore.createIndex("deviceKey", "deviceKey");
1072
- db.createObjectStore("notified_error_devices", {
1073
- keyPath: ["userId", "deviceId"]
1074
- });
1075
- }, db => {
1076
- db.createObjectStore("shared_history_inbound_group_sessions", {
1077
- keyPath: ["roomId"]
1078
- });
1079
- }, db => {
1080
- db.createObjectStore("parked_shared_history", {
1081
- keyPath: ["roomId"]
1082
- });
1083
- }
1084
- // Expand as needed.
1085
- ];
1086
- export var VERSION = DB_MIGRATIONS.length;
1087
- export function upgradeDatabase(db, oldVersion) {
1088
- logger.log("Upgrading IndexedDBCryptoStore from version ".concat(oldVersion) + " to ".concat(VERSION));
1089
- DB_MIGRATIONS.forEach((migration, index) => {
1090
- if (oldVersion <= index) migration(db);
1091
- });
1092
- }
1093
- function createDatabase(db) {
1094
- var outgoingRoomKeyRequestsStore = db.createObjectStore("outgoingRoomKeyRequests", {
1095
- keyPath: "requestId"
1096
- });
1097
-
1098
- // we assume that the RoomKeyRequestBody will have room_id and session_id
1099
- // properties, to make the index efficient.
1100
- outgoingRoomKeyRequestsStore.createIndex("session", ["requestBody.room_id", "requestBody.session_id"]);
1101
- outgoingRoomKeyRequestsStore.createIndex("state", "state");
1102
- }
1103
- /*
1104
- * Aborts a transaction with a given exception
1105
- * The transaction promise will be rejected with this exception.
1106
- */
1107
- function abortWithException(txn, e) {
1108
- // We cheekily stick our exception onto the transaction object here
1109
- // We could alternatively make the thing we pass back to the app
1110
- // an object containing the transaction and exception.
1111
- txn._mx_abortexception = e;
1112
- try {
1113
- txn.abort();
1114
- } catch (_unused) {
1115
- // sometimes we won't be able to abort the transaction
1116
- // (ie. if it's aborted or completed)
1117
- }
1118
- }
1119
- function promiseifyTxn(txn) {
1120
- return new Promise((resolve, reject) => {
1121
- txn.oncomplete = () => {
1122
- if (txn._mx_abortexception !== undefined) {
1123
- reject(txn._mx_abortexception);
1124
- }
1125
- resolve(null);
1126
- };
1127
- txn.onerror = event => {
1128
- if (txn._mx_abortexception !== undefined) {
1129
- reject(txn._mx_abortexception);
1130
- } else {
1131
- logger.log("Error performing indexeddb txn", event);
1132
- reject(txn.error);
1133
- }
1134
- };
1135
- txn.onabort = event => {
1136
- if (txn._mx_abortexception !== undefined) {
1137
- reject(txn._mx_abortexception);
1138
- } else {
1139
- logger.log("Error performing indexeddb txn", event);
1140
- reject(txn.error);
1141
- }
1142
- };
1143
- });
1144
- }
1145
- //# sourceMappingURL=indexeddb-crypto-store-backend.js.map