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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (492) 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 -1221
  8. package/lib/client.d.ts.map +1 -1
  9. package/lib/client.js +331 -2821
  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/lib/types.d.ts +0 -1
  62. package/lib/types.d.ts.map +1 -1
  63. package/lib/types.js.map +1 -1
  64. package/package.json +1 -3
  65. package/src/@types/global.d.ts +0 -3
  66. package/src/browser-index.ts +0 -11
  67. package/src/client.ts +60 -2882
  68. package/src/embedded.ts +3 -130
  69. package/src/event-mapper.ts +0 -4
  70. package/src/matrix.ts +0 -28
  71. package/src/models/MSC3089Branch.ts +0 -3
  72. package/src/models/event.ts +0 -289
  73. package/src/models/poll.ts +0 -6
  74. package/src/models/relations-container.ts +1 -8
  75. package/src/models/relations.ts +0 -8
  76. package/src/models/room-state.ts +2 -8
  77. package/src/models/room.ts +0 -62
  78. package/src/models/thread.ts +0 -1
  79. package/src/sliding-sync-sdk.ts +2 -72
  80. package/src/sync.ts +1 -98
  81. package/src/testing.ts +0 -108
  82. package/src/types.ts +0 -1
  83. package/CHANGELOG.md +0 -5910
  84. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
  85. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
  86. package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
  87. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
  88. package/lib/@types/crypto.d.ts +0 -47
  89. package/lib/@types/crypto.d.ts.map +0 -1
  90. package/lib/@types/crypto.js +0 -1
  91. package/lib/@types/crypto.js.map +0 -1
  92. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  93. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  94. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  95. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  96. package/lib/common-crypto/CryptoBackend.js +0 -73
  97. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  98. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  99. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  100. package/lib/common-crypto/key-passphrase.js +0 -33
  101. package/lib/common-crypto/key-passphrase.js.map +0 -1
  102. package/lib/crypto/CrossSigning.d.ts +0 -184
  103. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  104. package/lib/crypto/CrossSigning.js +0 -718
  105. package/lib/crypto/CrossSigning.js.map +0 -1
  106. package/lib/crypto/DeviceList.d.ts +0 -216
  107. package/lib/crypto/DeviceList.d.ts.map +0 -1
  108. package/lib/crypto/DeviceList.js +0 -892
  109. package/lib/crypto/DeviceList.js.map +0 -1
  110. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  111. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  112. package/lib/crypto/EncryptionSetup.js +0 -356
  113. package/lib/crypto/EncryptionSetup.js.map +0 -1
  114. package/lib/crypto/OlmDevice.d.ts +0 -457
  115. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  116. package/lib/crypto/OlmDevice.js +0 -1241
  117. package/lib/crypto/OlmDevice.js.map +0 -1
  118. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  119. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  120. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  121. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  122. package/lib/crypto/RoomList.d.ts +0 -26
  123. package/lib/crypto/RoomList.d.ts.map +0 -1
  124. package/lib/crypto/RoomList.js +0 -71
  125. package/lib/crypto/RoomList.js.map +0 -1
  126. package/lib/crypto/SecretSharing.d.ts +0 -24
  127. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  128. package/lib/crypto/SecretSharing.js +0 -194
  129. package/lib/crypto/SecretSharing.js.map +0 -1
  130. package/lib/crypto/SecretStorage.d.ts +0 -55
  131. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  132. package/lib/crypto/SecretStorage.js +0 -118
  133. package/lib/crypto/SecretStorage.js.map +0 -1
  134. package/lib/crypto/aes.d.ts +0 -6
  135. package/lib/crypto/aes.d.ts.map +0 -1
  136. package/lib/crypto/aes.js +0 -24
  137. package/lib/crypto/aes.js.map +0 -1
  138. package/lib/crypto/algorithms/base.d.ts +0 -156
  139. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  140. package/lib/crypto/algorithms/base.js +0 -187
  141. package/lib/crypto/algorithms/base.js.map +0 -1
  142. package/lib/crypto/algorithms/index.d.ts +0 -4
  143. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  144. package/lib/crypto/algorithms/index.js +0 -20
  145. package/lib/crypto/algorithms/index.js.map +0 -1
  146. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  147. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  148. package/lib/crypto/algorithms/megolm.js +0 -1822
  149. package/lib/crypto/algorithms/megolm.js.map +0 -1
  150. package/lib/crypto/algorithms/olm.d.ts +0 -5
  151. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  152. package/lib/crypto/algorithms/olm.js +0 -299
  153. package/lib/crypto/algorithms/olm.js.map +0 -1
  154. package/lib/crypto/api.d.ts +0 -32
  155. package/lib/crypto/api.d.ts.map +0 -1
  156. package/lib/crypto/api.js +0 -22
  157. package/lib/crypto/api.js.map +0 -1
  158. package/lib/crypto/backup.d.ts +0 -227
  159. package/lib/crypto/backup.d.ts.map +0 -1
  160. package/lib/crypto/backup.js +0 -824
  161. package/lib/crypto/backup.js.map +0 -1
  162. package/lib/crypto/crypto.d.ts +0 -3
  163. package/lib/crypto/crypto.d.ts.map +0 -1
  164. package/lib/crypto/crypto.js +0 -19
  165. package/lib/crypto/crypto.js.map +0 -1
  166. package/lib/crypto/dehydration.d.ts +0 -34
  167. package/lib/crypto/dehydration.d.ts.map +0 -1
  168. package/lib/crypto/dehydration.js +0 -252
  169. package/lib/crypto/dehydration.js.map +0 -1
  170. package/lib/crypto/device-converter.d.ts +0 -9
  171. package/lib/crypto/device-converter.d.ts.map +0 -1
  172. package/lib/crypto/device-converter.js +0 -42
  173. package/lib/crypto/device-converter.js.map +0 -1
  174. package/lib/crypto/deviceinfo.d.ts +0 -99
  175. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  176. package/lib/crypto/deviceinfo.js +0 -148
  177. package/lib/crypto/deviceinfo.js.map +0 -1
  178. package/lib/crypto/index.d.ts +0 -1209
  179. package/lib/crypto/index.d.ts.map +0 -1
  180. package/lib/crypto/index.js +0 -4097
  181. package/lib/crypto/index.js.map +0 -1
  182. package/lib/crypto/key_passphrase.d.ts +0 -14
  183. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  184. package/lib/crypto/key_passphrase.js +0 -44
  185. package/lib/crypto/key_passphrase.js.map +0 -1
  186. package/lib/crypto/keybackup.d.ts +0 -18
  187. package/lib/crypto/keybackup.d.ts.map +0 -1
  188. package/lib/crypto/keybackup.js +0 -1
  189. package/lib/crypto/keybackup.js.map +0 -1
  190. package/lib/crypto/olmlib.d.ts +0 -129
  191. package/lib/crypto/olmlib.d.ts.map +0 -1
  192. package/lib/crypto/olmlib.js +0 -492
  193. package/lib/crypto/olmlib.js.map +0 -1
  194. package/lib/crypto/recoverykey.d.ts +0 -2
  195. package/lib/crypto/recoverykey.d.ts.map +0 -1
  196. package/lib/crypto/recoverykey.js +0 -19
  197. package/lib/crypto/recoverykey.js.map +0 -1
  198. package/lib/crypto/store/base.d.ts +0 -252
  199. package/lib/crypto/store/base.d.ts.map +0 -1
  200. package/lib/crypto/store/base.js +0 -64
  201. package/lib/crypto/store/base.js.map +0 -1
  202. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  203. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  204. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  205. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  206. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  207. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  208. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  209. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  210. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  211. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  212. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  213. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  214. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  215. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  216. package/lib/crypto/store/memory-crypto-store.js +0 -622
  217. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  218. package/lib/crypto/verification/Base.d.ts +0 -105
  219. package/lib/crypto/verification/Base.d.ts.map +0 -1
  220. package/lib/crypto/verification/Base.js +0 -372
  221. package/lib/crypto/verification/Base.js.map +0 -1
  222. package/lib/crypto/verification/Error.d.ts +0 -35
  223. package/lib/crypto/verification/Error.d.ts.map +0 -1
  224. package/lib/crypto/verification/Error.js +0 -86
  225. package/lib/crypto/verification/Error.js.map +0 -1
  226. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  227. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  228. package/lib/crypto/verification/IllegalMethod.js +0 -43
  229. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  230. package/lib/crypto/verification/QRCode.d.ts +0 -51
  231. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  232. package/lib/crypto/verification/QRCode.js +0 -277
  233. package/lib/crypto/verification/QRCode.js.map +0 -1
  234. package/lib/crypto/verification/SAS.d.ts +0 -27
  235. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  236. package/lib/crypto/verification/SAS.js +0 -485
  237. package/lib/crypto/verification/SAS.js.map +0 -1
  238. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  239. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  240. package/lib/crypto/verification/SASDecimal.js +0 -34
  241. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  242. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  243. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  244. package/lib/crypto/verification/request/Channel.js +0 -1
  245. package/lib/crypto/verification/request/Channel.js.map +0 -1
  246. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  247. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  248. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  249. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  250. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  251. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  252. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  253. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  254. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  255. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  256. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  257. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  258. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  259. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  260. package/lib/crypto-api/CryptoEvent.js +0 -33
  261. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  262. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  263. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  264. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  265. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  266. package/lib/crypto-api/index.d.ts +0 -978
  267. package/lib/crypto-api/index.d.ts.map +0 -1
  268. package/lib/crypto-api/index.js +0 -304
  269. package/lib/crypto-api/index.js.map +0 -1
  270. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  271. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  272. package/lib/crypto-api/key-passphrase.js +0 -51
  273. package/lib/crypto-api/key-passphrase.js.map +0 -1
  274. package/lib/crypto-api/keybackup.d.ts +0 -88
  275. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  276. package/lib/crypto-api/keybackup.js +0 -1
  277. package/lib/crypto-api/keybackup.js.map +0 -1
  278. package/lib/crypto-api/recovery-key.d.ts +0 -11
  279. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  280. package/lib/crypto-api/recovery-key.js +0 -65
  281. package/lib/crypto-api/recovery-key.js.map +0 -1
  282. package/lib/crypto-api/verification.d.ts +0 -344
  283. package/lib/crypto-api/verification.d.ts.map +0 -1
  284. package/lib/crypto-api/verification.js +0 -91
  285. package/lib/crypto-api/verification.js.map +0 -1
  286. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  287. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  288. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  289. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  290. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  291. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  292. package/lib/rendezvous/RendezvousChannel.js +0 -1
  293. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  294. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  295. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  296. package/lib/rendezvous/RendezvousCode.js +0 -1
  297. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  298. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  299. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  300. package/lib/rendezvous/RendezvousError.js +0 -23
  301. package/lib/rendezvous/RendezvousError.js.map +0 -1
  302. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  303. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  304. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  305. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  306. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  307. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  308. package/lib/rendezvous/RendezvousIntent.js +0 -22
  309. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  310. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  311. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  312. package/lib/rendezvous/RendezvousTransport.js +0 -1
  313. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  314. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  315. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  316. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  317. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  318. package/lib/rendezvous/channels/index.d.ts +0 -2
  319. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  320. package/lib/rendezvous/channels/index.js +0 -18
  321. package/lib/rendezvous/channels/index.js.map +0 -1
  322. package/lib/rendezvous/index.d.ts +0 -10
  323. package/lib/rendezvous/index.d.ts.map +0 -1
  324. package/lib/rendezvous/index.js +0 -23
  325. package/lib/rendezvous/index.js.map +0 -1
  326. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  327. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  328. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  329. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  330. package/lib/rendezvous/transports/index.d.ts +0 -2
  331. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  332. package/lib/rendezvous/transports/index.js +0 -18
  333. package/lib/rendezvous/transports/index.js.map +0 -1
  334. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  335. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  336. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  337. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  338. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  339. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  340. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  341. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  342. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  343. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  344. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  345. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  346. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  347. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  348. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  349. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  350. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  351. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  352. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  353. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  354. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  355. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  356. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  357. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  358. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  359. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  360. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  361. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  362. package/lib/rust-crypto/backup.d.ts +0 -254
  363. package/lib/rust-crypto/backup.d.ts.map +0 -1
  364. package/lib/rust-crypto/backup.js +0 -837
  365. package/lib/rust-crypto/backup.js.map +0 -1
  366. package/lib/rust-crypto/constants.d.ts +0 -3
  367. package/lib/rust-crypto/constants.d.ts.map +0 -1
  368. package/lib/rust-crypto/constants.js +0 -19
  369. package/lib/rust-crypto/constants.js.map +0 -1
  370. package/lib/rust-crypto/device-converter.d.ts +0 -28
  371. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  372. package/lib/rust-crypto/device-converter.js +0 -123
  373. package/lib/rust-crypto/device-converter.js.map +0 -1
  374. package/lib/rust-crypto/index.d.ts +0 -61
  375. package/lib/rust-crypto/index.d.ts.map +0 -1
  376. package/lib/rust-crypto/index.js +0 -152
  377. package/lib/rust-crypto/index.js.map +0 -1
  378. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  379. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  380. package/lib/rust-crypto/libolm_migration.js +0 -459
  381. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  382. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  383. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  384. package/lib/rust-crypto/rust-crypto.js +0 -2016
  385. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  386. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  387. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  388. package/lib/rust-crypto/secret-storage.js +0 -63
  389. package/lib/rust-crypto/secret-storage.js.map +0 -1
  390. package/lib/rust-crypto/verification.d.ts +0 -319
  391. package/lib/rust-crypto/verification.d.ts.map +0 -1
  392. package/lib/rust-crypto/verification.js +0 -816
  393. package/lib/rust-crypto/verification.js.map +0 -1
  394. package/lib/secret-storage.d.ts +0 -370
  395. package/lib/secret-storage.d.ts.map +0 -1
  396. package/lib/secret-storage.js +0 -466
  397. package/lib/secret-storage.js.map +0 -1
  398. package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
  399. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
  400. package/lib/utils/decryptAESSecretStorageItem.js +0 -50
  401. package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
  402. package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
  403. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
  404. package/lib/utils/encryptAESSecretStorageItem.js +0 -68
  405. package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
  406. package/lib/utils/internal/deriveKeys.d.ts +0 -10
  407. package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
  408. package/lib/utils/internal/deriveKeys.js +0 -60
  409. package/lib/utils/internal/deriveKeys.js.map +0 -1
  410. package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
  411. package/src/@types/crypto.ts +0 -73
  412. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  413. package/src/common-crypto/CryptoBackend.ts +0 -302
  414. package/src/common-crypto/README.md +0 -4
  415. package/src/common-crypto/key-passphrase.ts +0 -43
  416. package/src/crypto/CrossSigning.ts +0 -773
  417. package/src/crypto/DeviceList.ts +0 -989
  418. package/src/crypto/EncryptionSetup.ts +0 -351
  419. package/src/crypto/OlmDevice.ts +0 -1500
  420. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  421. package/src/crypto/RoomList.ts +0 -70
  422. package/src/crypto/SecretSharing.ts +0 -240
  423. package/src/crypto/SecretStorage.ts +0 -136
  424. package/src/crypto/aes.ts +0 -23
  425. package/src/crypto/algorithms/base.ts +0 -236
  426. package/src/crypto/algorithms/index.ts +0 -20
  427. package/src/crypto/algorithms/megolm.ts +0 -2216
  428. package/src/crypto/algorithms/olm.ts +0 -381
  429. package/src/crypto/api.ts +0 -70
  430. package/src/crypto/backup.ts +0 -922
  431. package/src/crypto/crypto.ts +0 -18
  432. package/src/crypto/dehydration.ts +0 -272
  433. package/src/crypto/device-converter.ts +0 -45
  434. package/src/crypto/deviceinfo.ts +0 -158
  435. package/src/crypto/index.ts +0 -4414
  436. package/src/crypto/key_passphrase.ts +0 -42
  437. package/src/crypto/keybackup.ts +0 -47
  438. package/src/crypto/olmlib.ts +0 -539
  439. package/src/crypto/recoverykey.ts +0 -18
  440. package/src/crypto/store/base.ts +0 -348
  441. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  442. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  443. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  444. package/src/crypto/store/memory-crypto-store.ts +0 -680
  445. package/src/crypto/verification/Base.ts +0 -409
  446. package/src/crypto/verification/Error.ts +0 -76
  447. package/src/crypto/verification/IllegalMethod.ts +0 -50
  448. package/src/crypto/verification/QRCode.ts +0 -310
  449. package/src/crypto/verification/SAS.ts +0 -494
  450. package/src/crypto/verification/SASDecimal.ts +0 -37
  451. package/src/crypto/verification/request/Channel.ts +0 -34
  452. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  453. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  454. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  455. package/src/crypto-api/CryptoEvent.ts +0 -93
  456. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  457. package/src/crypto-api/index.ts +0 -1175
  458. package/src/crypto-api/key-passphrase.ts +0 -58
  459. package/src/crypto-api/keybackup.ts +0 -115
  460. package/src/crypto-api/recovery-key.ts +0 -69
  461. package/src/crypto-api/verification.ts +0 -408
  462. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  463. package/src/rendezvous/RendezvousChannel.ts +0 -48
  464. package/src/rendezvous/RendezvousCode.ts +0 -25
  465. package/src/rendezvous/RendezvousError.ts +0 -26
  466. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  467. package/src/rendezvous/RendezvousIntent.ts +0 -20
  468. package/src/rendezvous/RendezvousTransport.ts +0 -58
  469. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  470. package/src/rendezvous/channels/index.ts +0 -17
  471. package/src/rendezvous/index.ts +0 -25
  472. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  473. package/src/rendezvous/transports/index.ts +0 -17
  474. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  475. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  476. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  477. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  478. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  479. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  480. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  481. package/src/rust-crypto/backup.ts +0 -881
  482. package/src/rust-crypto/constants.ts +0 -18
  483. package/src/rust-crypto/device-converter.ts +0 -128
  484. package/src/rust-crypto/index.ts +0 -237
  485. package/src/rust-crypto/libolm_migration.ts +0 -530
  486. package/src/rust-crypto/rust-crypto.ts +0 -2205
  487. package/src/rust-crypto/secret-storage.ts +0 -60
  488. package/src/rust-crypto/verification.ts +0 -830
  489. package/src/secret-storage.ts +0 -693
  490. package/src/utils/decryptAESSecretStorageItem.ts +0 -54
  491. package/src/utils/encryptAESSecretStorageItem.ts +0 -73
  492. package/src/utils/internal/deriveKeys.ts +0 -63
package/src/embedded.ts CHANGED
@@ -30,14 +30,14 @@ import {
30
30
  IWidgetApiResponseData,
31
31
  } from "matrix-widget-api";
32
32
 
33
- import { MatrixEvent, IEvent, IContent, EventStatus } from "./models/event.ts";
33
+ import { MatrixEvent, IEvent, IContent } from "./models/event.ts";
34
34
  import {
35
35
  ISendEventResponse,
36
36
  SendDelayedEventRequestOpts,
37
37
  SendDelayedEventResponse,
38
38
  UpdateDelayedEventAction,
39
39
  } from "./@types/requests.ts";
40
- import { EventType, StateEvents } from "./@types/event.ts";
40
+ import { StateEvents } from "./@types/event.ts";
41
41
  import { logger } from "./logger.ts";
42
42
  import {
43
43
  MatrixClient,
@@ -54,8 +54,6 @@ import { MatrixError } from "./http-api/errors.ts";
54
54
  import { User } from "./models/user.ts";
55
55
  import { Room } from "./models/room.ts";
56
56
  import { ToDeviceBatch, ToDevicePayload } from "./models/ToDeviceMessage.ts";
57
- import { DeviceInfo } from "./crypto/deviceinfo.ts";
58
- import { IOlmDevice } from "./crypto/algorithms/megolm.ts";
59
57
  import { MapWithDefault, recursiveMapToObject } from "./utils.ts";
60
58
  import { TypedEventEmitter } from "./matrix.ts";
61
59
 
@@ -266,7 +264,7 @@ export class RoomWidgetClient extends MatrixClient {
266
264
  // still has some valuable helper methods that we make use of, so we
267
265
  // instantiate it anyways
268
266
  if (opts.slidingSync) {
269
- this.syncApi = new SlidingSyncSdk(opts.slidingSync, this, opts, this.buildSyncApiOptions());
267
+ this.syncApi = new SlidingSyncSdk(opts.slidingSync, this, opts);
270
268
  } else {
271
269
  this.syncApi = new SyncApi(this, opts, this.buildSyncApiOptions());
272
270
  }
@@ -301,9 +299,6 @@ export class RoomWidgetClient extends MatrixClient {
301
299
 
302
300
  this.setSyncState(SyncState.Syncing);
303
301
  logger.info("Finished backfilling events");
304
-
305
- // Watch for TURN servers, if requested
306
- if (this.capabilities.turnServers) this.watchTurnServers();
307
302
  }
308
303
 
309
304
  public stopClient(): void {
@@ -319,60 +314,6 @@ export class RoomWidgetClient extends MatrixClient {
319
314
  throw new Error(`Unknown room: ${roomIdOrAlias}`);
320
315
  }
321
316
 
322
- protected async encryptAndSendEvent(room: Room, event: MatrixEvent): Promise<ISendEventResponse>;
323
- protected async encryptAndSendEvent(
324
- room: Room,
325
- event: MatrixEvent,
326
- delayOpts: SendDelayedEventRequestOpts,
327
- ): Promise<SendDelayedEventResponse>;
328
- protected async encryptAndSendEvent(
329
- room: Room,
330
- event: MatrixEvent,
331
- delayOpts?: SendDelayedEventRequestOpts,
332
- ): Promise<ISendEventResponse | SendDelayedEventResponse> {
333
- // We need to extend the content with the redacts parameter
334
- // The js sdk uses event.redacts but the widget api uses event.content.redacts
335
- // This will be converted back to event.redacts in the widget driver.
336
- const content = event.event.redacts
337
- ? { ...event.getContent(), redacts: event.event.redacts }
338
- : event.getContent();
339
-
340
- // Delayed event special case.
341
- if (delayOpts) {
342
- // TODO: updatePendingEvent for delayed events?
343
- const response = await this.widgetApi.sendRoomEvent(
344
- event.getType(),
345
- content,
346
- room.roomId,
347
- "delay" in delayOpts ? delayOpts.delay : undefined,
348
- "parent_delay_id" in delayOpts ? delayOpts.parent_delay_id : undefined,
349
- );
350
- return this.validateSendDelayedEventResponse(response);
351
- }
352
-
353
- const txId = event.getTxnId();
354
- // Add the txnId to the pending list (still with unknown evID)
355
- if (txId) this.pendingSendingEventsTxId.push({ type: event.getType(), id: undefined, txId });
356
-
357
- let response: ISendEventFromWidgetResponseData;
358
- try {
359
- response = await this.widgetApi.sendRoomEvent(event.getType(), content, room.roomId);
360
- } catch (e) {
361
- this.updatePendingEventStatus(room, event, EventStatus.NOT_SENT);
362
- throw e;
363
- }
364
- // This also checks for an event id on the response
365
- room.updatePendingEvent(event, EventStatus.SENT, response.event_id);
366
-
367
- // Update the pending events list with the eventId
368
- this.pendingSendingEventsTxId.forEach((p) => {
369
- if (p.txId === txId) p.id = response.event_id;
370
- });
371
- this.eventEmitter.emit(RoomWidgetClientEvent.PendingEventsChanged);
372
-
373
- return { event_id: response.event_id! };
374
- }
375
-
376
317
  public async sendStateEvent(
377
318
  roomId: string,
378
319
  eventType: string,
@@ -458,46 +399,6 @@ export class RoomWidgetClient extends MatrixClient {
458
399
  await this.widgetApi.sendToDevice(eventType, false, recursiveMapToObject(contentMap));
459
400
  }
460
401
 
461
- public async encryptAndSendToDevices(userDeviceInfoArr: IOlmDevice<DeviceInfo>[], payload: object): Promise<void> {
462
- // map: user Id → device Id → payload
463
- const contentMap: MapWithDefault<string, Map<string, object>> = new MapWithDefault(() => new Map());
464
- for (const {
465
- userId,
466
- deviceInfo: { deviceId },
467
- } of userDeviceInfoArr) {
468
- contentMap.getOrCreate(userId).set(deviceId, payload);
469
- }
470
-
471
- await this.widgetApi.sendToDevice((payload as { type: string }).type, true, recursiveMapToObject(contentMap));
472
- }
473
-
474
- /**
475
- * Send an event to a specific list of devices via the widget API. Optionally encrypts the event.
476
- *
477
- * If you are using a full MatrixClient you would be calling {@link MatrixClient.getCrypto().encryptToDeviceMessages()} followed
478
- * by {@link MatrixClient.queueToDevice}.
479
- *
480
- * However, this is combined into a single step when running as an embedded widget client. So, we expose this method for those
481
- * that need it.
482
- *
483
- * @param eventType - Type of the event to send.
484
- * @param encrypted - Whether the event should be encrypted.
485
- * @param contentMap - The content to send. Map from user_id to device_id to content object.
486
- */
487
- public async sendToDeviceViaWidgetApi(
488
- eventType: string,
489
- encrypted: boolean,
490
- contentMap: SendToDeviceContentMap,
491
- ): Promise<void> {
492
- await this.widgetApi.sendToDevice(eventType, encrypted, recursiveMapToObject(contentMap));
493
- }
494
-
495
- // Overridden since we get TURN servers automatically over the widget API,
496
- // and this method would otherwise complain about missing an access token
497
- public async checkTurnServers(): Promise<boolean> {
498
- return this.turnServers.length > 0;
499
- }
500
-
501
402
  // Overridden since we 'sync' manually without the sync API
502
403
  public getSyncState(): SyncState | null {
503
404
  return this.syncState;
@@ -585,39 +486,11 @@ export class RoomWidgetClient extends MatrixClient {
585
486
  sender: ev.detail.data.sender,
586
487
  content: ev.detail.data.content as IContent,
587
488
  });
588
- // Mark the event as encrypted if it was, using fake contents and keys since those are unknown to us
589
- if (ev.detail.data.encrypted) event.makeEncrypted(EventType.RoomMessageEncrypted, {}, "", "");
590
489
 
591
490
  this.emit(ClientEvent.ToDeviceEvent, event);
592
491
  this.setSyncState(SyncState.Syncing);
593
492
  await this.ack(ev);
594
493
  };
595
-
596
- private async watchTurnServers(): Promise<void> {
597
- const servers = this.widgetApi.getTurnServers();
598
- const onClientStopped = (): void => {
599
- servers.return(undefined);
600
- };
601
- this.lifecycle!.signal.addEventListener("abort", onClientStopped);
602
-
603
- try {
604
- for await (const server of servers) {
605
- this.turnServers = [
606
- {
607
- urls: server.uris,
608
- username: server.username,
609
- credential: server.password,
610
- },
611
- ];
612
- this.emit(ClientEvent.TurnServers, this.turnServers);
613
- logger.log(`Received TURN server: ${server.uris}`);
614
- }
615
- } catch (e) {
616
- logger.warn("Error watching TURN servers", e);
617
- } finally {
618
- this.lifecycle!.signal.removeEventListener("abort", onClientStopped);
619
- }
620
- }
621
494
  }
622
495
 
623
496
  function processAndThrow(error: unknown): never {
@@ -31,7 +31,6 @@ export interface MapperOpts {
31
31
 
32
32
  export function eventMapperFor(client: MatrixClient, options: MapperOpts): EventMapper {
33
33
  let preventReEmit = Boolean(options.preventReEmit);
34
- const decrypt = options.decrypt !== false;
35
34
 
36
35
  function mapper(plainOldJsObject: Partial<IEvent>): MatrixEvent {
37
36
  if (options.toDevice) {
@@ -81,9 +80,6 @@ export function eventMapperFor(client: MatrixClient, options: MapperOpts): Event
81
80
  if (!preventReEmit) {
82
81
  client.reEmitter.reEmit(event, [MatrixEventEvent.Decrypted]);
83
82
  }
84
- if (decrypt) {
85
- client.decryptEventIfNeeded(event);
86
- }
87
83
  }
88
84
 
89
85
  if (!preventReEmit) {
package/src/matrix.ts CHANGED
@@ -16,12 +16,10 @@ limitations under the License.
16
16
 
17
17
  import { WidgetApi } from "matrix-widget-api";
18
18
 
19
- import { MemoryCryptoStore } from "./crypto/store/memory-crypto-store.ts";
20
19
  import { MemoryStore } from "./store/memory.ts";
21
20
  import { MatrixScheduler } from "./scheduler.ts";
22
21
  import { MatrixClient, ICreateClientOpts } from "./client.ts";
23
22
  import { RoomWidgetClient, ICapabilities } from "./embedded.ts";
24
- import { CryptoStore } from "./crypto/store/base.ts";
25
23
 
26
24
  export * from "./client.ts";
27
25
  export * from "./serverCapabilities.ts";
@@ -52,10 +50,6 @@ export * from "./interactive-auth.ts";
52
50
  export * from "./service-types.ts";
53
51
  export * from "./store/memory.ts";
54
52
  export * from "./store/indexeddb.ts";
55
- export * from "./crypto/store/memory-crypto-store.ts";
56
- export * from "./crypto/store/localStorage-crypto-store.ts";
57
- export * from "./crypto/store/indexeddb-crypto-store.ts";
58
- export type { OutgoingRoomKeyRequest } from "./crypto/store/base.ts";
59
53
  export * from "./content-repo.ts";
60
54
  export type * from "./@types/common.ts";
61
55
  export type * from "./@types/uia.ts";
@@ -73,7 +67,6 @@ export * from "./@types/polls.ts";
73
67
  export type * from "./@types/local_notifications.ts";
74
68
  export type * from "./@types/registration.ts";
75
69
  export * from "./@types/read_receipts.ts";
76
- export type * from "./@types/crypto.ts";
77
70
  export * from "./@types/extensible_events.ts";
78
71
  export type * from "./@types/IIdentityServerProvider.ts";
79
72
  export * from "./@types/membership.ts";
@@ -81,13 +74,7 @@ export * from "./models/room-summary.ts";
81
74
  export * from "./models/event-status.ts";
82
75
  export type { RoomSummary } from "./client.ts";
83
76
  export * as ContentHelpers from "./content-helpers.ts";
84
- export * as SecretStorage from "./secret-storage.ts";
85
- export type { ICryptoCallbacks } from "./crypto/index.ts"; // used to be located here
86
77
 
87
- export {
88
- /** @deprecated Use {@link Crypto.CryptoEvent} instead */
89
- CryptoEvent,
90
- } from "./crypto/index.ts";
91
78
  export { SyncState, SetPresence } from "./sync.ts";
92
79
  export type { ISyncStateData as SyncStateData } from "./sync.ts";
93
80
  export { SlidingSyncEvent } from "./sliding-sync.ts";
@@ -99,20 +86,6 @@ export type { ISSOFlow as SSOFlow, LoginFlow } from "./@types/auth.ts";
99
86
  export type { IHierarchyRelation as HierarchyRelation, IHierarchyRoom as HierarchyRoom } from "./@types/spaces.ts";
100
87
  export { LocationAssetType } from "./@types/location.ts";
101
88
 
102
- /** @deprecated Backwards-compatibility re-export. Import from `crypto-api` directly. */
103
- export * as Crypto from "./crypto-api/index.ts";
104
-
105
- let cryptoStoreFactory = (): CryptoStore => new MemoryCryptoStore();
106
-
107
- /**
108
- * Configure a different factory to be used for creating crypto stores
109
- *
110
- * @param fac - a function which will return a new `CryptoStore`
111
- */
112
- export function setCryptoStoreFactory(fac: () => CryptoStore): void {
113
- cryptoStoreFactory = fac;
114
- }
115
-
116
89
  function amendClientOpts(opts: ICreateClientOpts): ICreateClientOpts {
117
90
  opts.store =
118
91
  opts.store ??
@@ -120,7 +93,6 @@ function amendClientOpts(opts: ICreateClientOpts): ICreateClientOpts {
120
93
  localStorage: globalThis.localStorage,
121
94
  });
122
95
  opts.scheduler = opts.scheduler ?? new MatrixScheduler();
123
- opts.cryptoStore = opts.cryptoStore ?? cryptoStoreFactory();
124
96
 
125
97
  return opts;
126
98
  }
@@ -177,9 +177,6 @@ export class MSC3089Branch {
177
177
 
178
178
  if (!event) throw new Error("Failed to find event");
179
179
 
180
- // Sometimes the event isn't decrypted for us, so do that.
181
- await this.client.decryptEventIfNeeded(event);
182
-
183
180
  return event;
184
181
  }
185
182
 
@@ -21,9 +21,6 @@ limitations under the License.
21
21
 
22
22
  import { ExtensibleEvent, ExtensibleEvents, Optional } from "matrix-events-sdk";
23
23
 
24
- import type { IEventDecryptionResult } from "../@types/crypto.ts";
25
- import { logger } from "../logger.ts";
26
- import { VerificationRequest } from "../crypto/verification/request/VerificationRequest.ts";
27
24
  import {
28
25
  EVENT_VISIBILITY_CHANGE_TYPE,
29
26
  EventType,
@@ -33,7 +30,6 @@ import {
33
30
  UNSIGNED_THREAD_ID_FIELD,
34
31
  UNSIGNED_MEMBERSHIP_FIELD,
35
32
  } from "../@types/event.ts";
36
- import { Crypto } from "../crypto/index.ts";
37
33
  import { deepSortedObjectEntries, internaliseString } from "../utils.ts";
38
34
  import { RoomMember } from "./room-member.ts";
39
35
  import { Thread, THREAD_RELATION_TYPE, ThreadEvent, ThreadEventHandlerMap } from "./thread.ts";
@@ -42,12 +38,10 @@ import { TypedReEmitter } from "../ReEmitter.ts";
42
38
  import { MatrixError } from "../http-api/index.ts";
43
39
  import { TypedEventEmitter } from "./typed-event-emitter.ts";
44
40
  import { EventStatus } from "./event-status.ts";
45
- import { CryptoBackend, DecryptionError } from "../common-crypto/CryptoBackend.ts";
46
41
  import { IAnnotatedPushRule } from "../@types/PushRules.ts";
47
42
  import { Room } from "./room.ts";
48
43
  import { EventTimeline } from "./event-timeline.ts";
49
44
  import { Membership } from "../@types/membership.ts";
50
- import { DecryptionFailureCode } from "../crypto-api/index.ts";
51
45
 
52
46
  export { EventStatus } from "./event-status.ts";
53
47
 
@@ -266,9 +260,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
266
260
  private _hasCachedExtEv = false;
267
261
  private _cachedExtEv: Optional<ExtensibleEvent> = undefined;
268
262
 
269
- /** If we failed to decrypt this event, the reason for the failure. Otherwise, `null`. */
270
- private _decryptionFailureReason: DecryptionFailureCode | null = null;
271
-
272
263
  /* curve25519 key which we believe belongs to the sender of the event. See
273
264
  * getSenderKey()
274
265
  */
@@ -289,17 +280,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
289
280
  */
290
281
  private untrusted: boolean | null = null;
291
282
 
292
- /* if we have a process decrypting this event, a Promise which resolves
293
- * when it is finished. Normally null.
294
- */
295
- private decryptionPromise: Promise<void> | null = null;
296
-
297
- /* flag to indicate if we should retry decrypting this event after the
298
- * first attempt (eg, we have received new data which means that a second
299
- * attempt may succeed)
300
- */
301
- private retryDecryption = false;
302
-
303
283
  /* The txnId with which this event was sent if it was during this session,
304
284
  * allows for a unique ID which does not change when the event comes back down sync.
305
285
  */
@@ -357,12 +337,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
357
337
  */
358
338
  public forwardLooking = true;
359
339
 
360
- /* If the event is a `m.key.verification.request` (or to_device `m.key.verification.start`) event,
361
- * `Crypto` will set this the `VerificationRequest` for the event
362
- * so it can be easily accessed from the timeline.
363
- */
364
- public verificationRequest?: VerificationRequest;
365
-
366
340
  private readonly reEmitter: TypedReEmitter<MatrixEventEmittedEvents, MatrixEventHandlerMap>;
367
341
 
368
342
  /**
@@ -714,154 +688,14 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
714
688
  return UNSIGNED_MEMBERSHIP_FIELD.findIn<Membership | string>(unsigned);
715
689
  }
716
690
 
717
- /**
718
- * Replace the content of this event with encrypted versions.
719
- * (This is used when sending an event; it should not be used by applications).
720
- *
721
- * @internal
722
- *
723
- * @param cryptoType - type of the encrypted event - typically
724
- * <tt>"m.room.encrypted"</tt>
725
- *
726
- * @param cryptoContent - raw 'content' for the encrypted event.
727
- *
728
- * @param senderCurve25519Key - curve25519 key to record for the
729
- * sender of this event.
730
- * See {@link MatrixEvent#getSenderKey}.
731
- *
732
- * @param claimedEd25519Key - claimed ed25519 key to record for the
733
- * sender if this event.
734
- * See {@link MatrixEvent#getClaimedEd25519Key}
735
- */
736
- public makeEncrypted(
737
- cryptoType: string,
738
- cryptoContent: object,
739
- senderCurve25519Key: string,
740
- claimedEd25519Key: string,
741
- ): void {
742
- // keep the plain-text data for 'view source'
743
- this.clearEvent = {
744
- type: this.event.type!,
745
- content: this.event.content!,
746
- };
747
- this.event.type = cryptoType;
748
- this.event.content = cryptoContent;
749
- this.senderCurve25519Key = senderCurve25519Key;
750
- this.claimedEd25519Key = claimedEd25519Key;
751
- }
752
-
753
- /**
754
- * Check if this event is currently being decrypted.
755
- *
756
- * @returns True if this event is currently being decrypted, else false.
757
- */
758
- public isBeingDecrypted(): boolean {
759
- return this.decryptionPromise != null;
760
- }
761
-
762
- public getDecryptionPromise(): Promise<void> | null {
763
- return this.decryptionPromise;
764
- }
765
-
766
- /**
767
- * Check if this event is an encrypted event which we failed to decrypt
768
- *
769
- * (This implies that we might retry decryption at some point in the future)
770
- *
771
- * @returns True if this event is an encrypted event which we
772
- * couldn't decrypt.
773
- */
774
- public isDecryptionFailure(): boolean {
775
- return this._decryptionFailureReason !== null;
776
- }
777
-
778
- /** If we failed to decrypt this event, the reason for the failure. Otherwise, `null`. */
779
- public get decryptionFailureReason(): DecryptionFailureCode | null {
780
- return this._decryptionFailureReason;
781
- }
782
-
783
- /**
784
- * True if this event is an encrypted event which we failed to decrypt, the receiver's device is unverified and
785
- * the sender has disabled encrypting to unverified devices.
786
- *
787
- * @deprecated: Prefer `event.decryptionFailureReason === DecryptionFailureCode.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE`.
788
- */
789
- public get isEncryptedDisabledForUnverifiedDevices(): boolean {
790
- return this.decryptionFailureReason === DecryptionFailureCode.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE;
791
- }
792
-
793
691
  public shouldAttemptDecryption(): boolean {
794
692
  if (this.isRedacted()) return false;
795
- if (this.isBeingDecrypted()) return false;
796
693
  if (this.clearEvent) return false;
797
694
  if (!this.isEncrypted()) return false;
798
695
 
799
696
  return true;
800
697
  }
801
698
 
802
- /**
803
- * Start the process of trying to decrypt this event.
804
- *
805
- * (This is used within the SDK: it isn't intended for use by applications)
806
- *
807
- * @internal
808
- *
809
- * @param crypto - crypto module
810
- *
811
- * @returns promise which resolves (to undefined) when the decryption
812
- * attempt is completed.
813
- */
814
- public async attemptDecryption(crypto: CryptoBackend, options: IDecryptOptions = {}): Promise<void> {
815
- // start with a couple of sanity checks.
816
- if (!this.isEncrypted()) {
817
- throw new Error("Attempt to decrypt event which isn't encrypted");
818
- }
819
-
820
- const alreadyDecrypted = this.clearEvent && !this.isDecryptionFailure();
821
- const forceRedecrypt = options.forceRedecryptIfUntrusted && this.isKeySourceUntrusted();
822
- if (alreadyDecrypted && !forceRedecrypt) {
823
- // we may want to just ignore this? let's start with rejecting it.
824
- throw new Error("Attempt to decrypt event which has already been decrypted");
825
- }
826
-
827
- // if we already have a decryption attempt in progress, then it may
828
- // fail because it was using outdated info. We now have reason to
829
- // succeed where it failed before, but we don't want to have multiple
830
- // attempts going at the same time, so just set a flag that says we have
831
- // new info.
832
- //
833
- if (this.decryptionPromise) {
834
- logger.log(`Event ${this.getId()} already being decrypted; queueing a retry`);
835
- this.retryDecryption = true;
836
- return this.decryptionPromise;
837
- }
838
-
839
- this.decryptionPromise = this.decryptionLoop(crypto, options);
840
- return this.decryptionPromise;
841
- }
842
-
843
- /**
844
- * Cancel any room key request for this event and resend another.
845
- *
846
- * @param crypto - crypto module
847
- * @param userId - the user who received this event
848
- *
849
- * @returns a promise that resolves when the request is queued
850
- */
851
- public cancelAndResendKeyRequest(crypto: Crypto, userId: string): Promise<void> {
852
- const wireContent = this.getWireContent();
853
- return crypto.requestRoomKey(
854
- {
855
- algorithm: wireContent.algorithm,
856
- room_id: this.getRoomId()!,
857
- session_id: wireContent.session_id,
858
- sender_key: wireContent.sender_key,
859
- },
860
- this.getKeyRequestRecipients(userId),
861
- true,
862
- );
863
- }
864
-
865
699
  /**
866
700
  * Calculate the recipients for keyshare requests.
867
701
  *
@@ -881,125 +715,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
881
715
  return recipients;
882
716
  }
883
717
 
884
- private async decryptionLoop(crypto: CryptoBackend, options: IDecryptOptions = {}): Promise<void> {
885
- // make sure that this method never runs completely synchronously.
886
- // (doing so would mean that we would clear decryptionPromise *before*
887
- // it is set in attemptDecryption - and hence end up with a stuck
888
- // `decryptionPromise`).
889
- await Promise.resolve();
890
-
891
- // eslint-disable-next-line no-constant-condition
892
- while (true) {
893
- this.retryDecryption = false;
894
-
895
- let err: Error | undefined = undefined;
896
- try {
897
- const res = await crypto.decryptEvent(this);
898
- if (options.isRetry === true) {
899
- logger.info(`Decrypted event on retry (${this.getDetails()})`);
900
- }
901
- this.setClearData(res);
902
- this._decryptionFailureReason = null;
903
- } catch (e) {
904
- const detailedError = e instanceof DecryptionError ? (<DecryptionError>e).detailedString : String(e);
905
-
906
- err = e as Error;
907
-
908
- // see if we have a retry queued.
909
- //
910
- // NB: make sure to keep this check in the same tick of the
911
- // event loop as `decryptionPromise = null` below - otherwise we
912
- // risk a race:
913
- //
914
- // * A: we check retryDecryption here and see that it is
915
- // false
916
- // * B: we get a second call to attemptDecryption, which sees
917
- // that decryptionPromise is set so sets
918
- // retryDecryption
919
- // * A: we continue below, clear decryptionPromise, and
920
- // never do the retry.
921
- //
922
- if (this.retryDecryption) {
923
- // decryption error, but we have a retry queued.
924
- logger.log(`Error decrypting event (${this.getDetails()}), but retrying: ${detailedError}`);
925
- continue;
926
- }
927
-
928
- // decryption error, no retries queued. Warn about the error and
929
- // set it to m.bad.encrypted.
930
- //
931
- // the detailedString already includes the name and message of the error, and the stack isn't much use,
932
- // so we don't bother to log `e` separately.
933
- logger.warn(`Error decrypting event (${this.getDetails()}): ${detailedError}`);
934
-
935
- this.setClearDataForDecryptionFailure(String(e));
936
- this._decryptionFailureReason =
937
- e instanceof DecryptionError ? (<DecryptionError>e).code : DecryptionFailureCode.UNKNOWN_ERROR;
938
- }
939
-
940
- // Make sure we clear 'decryptionPromise' before sending the 'Event.decrypted' event,
941
- // otherwise the app will be confused to see `isBeingDecrypted` still set when
942
- // there isn't an `Event.decrypted` on the way.
943
- //
944
- // see also notes on retryDecryption above.
945
- //
946
- this.decryptionPromise = null;
947
- this.retryDecryption = false;
948
-
949
- // Before we emit the event, clear the push actions so that they can be recalculated
950
- // by relevant code. We do this because the clear event has now changed, making it
951
- // so that existing rules can be re-run over the applicable properties. Stuff like
952
- // highlighting when the user's name is mentioned rely on this happening. We also want
953
- // to set the push actions before emitting so that any notification listeners don't
954
- // pick up the wrong contents.
955
- this.setPushDetails();
956
-
957
- if (options.emit !== false) {
958
- this.emit(MatrixEventEvent.Decrypted, this, err);
959
- }
960
-
961
- return;
962
- }
963
- }
964
-
965
- /**
966
- * Update the cleartext data on this event.
967
- *
968
- * (This is used after decrypting an event; it should not be used by applications).
969
- *
970
- * @internal
971
- *
972
- * @param decryptionResult - the decryption result, including the plaintext and some key info
973
- */
974
- private setClearData(decryptionResult: IEventDecryptionResult): void {
975
- this.clearEvent = decryptionResult.clearEvent;
976
- this.senderCurve25519Key = decryptionResult.senderCurve25519Key ?? null;
977
- this.claimedEd25519Key = decryptionResult.claimedEd25519Key ?? null;
978
- this.forwardingCurve25519KeyChain = decryptionResult.forwardingCurve25519KeyChain || [];
979
- this.untrusted = decryptionResult.untrusted || false;
980
- this.invalidateExtensibleEvent();
981
- }
982
-
983
- /**
984
- * Update the cleartext data on this event after a decryption failure.
985
- *
986
- * @param reason - the textual reason for the failure
987
- */
988
- private setClearDataForDecryptionFailure(reason: string): void {
989
- this.clearEvent = {
990
- type: EventType.RoomMessage,
991
- content: {
992
- msgtype: "m.bad.encrypted",
993
- body: `** Unable to decrypt: ${reason} **`,
994
- },
995
- };
996
- this.senderCurve25519Key = null;
997
- this.claimedEd25519Key = null;
998
- this.forwardingCurve25519KeyChain = [];
999
- this.untrusted = false;
1000
- this.invalidateExtensibleEvent();
1001
- }
1002
-
1003
718
  /**
1004
719
  * Gets the cleartext content for this event. If the event is not encrypted,
1005
720
  * or encryption has not been completed, this will return null.
@@ -1669,10 +1384,6 @@ export class MatrixEvent extends TypedEventEmitter<MatrixEventEmittedEvents, Mat
1669
1384
  };
1670
1385
  }
1671
1386
 
1672
- public setVerificationRequest(request: VerificationRequest): void {
1673
- this.verificationRequest = request;
1674
- }
1675
-
1676
1387
  public setTxnId(txnId: string): void {
1677
1388
  this.txnId = txnId;
1678
1389
  }
@@ -48,9 +48,6 @@ const filterResponseRelations = (
48
48
  responseEvents: MatrixEvent[];
49
49
  } => {
50
50
  const responseEvents = relationEvents.filter((event) => {
51
- if (event.isDecryptionFailure()) {
52
- return;
53
- }
54
51
  return (
55
52
  M_POLL_RESPONSE.matches(event.getType()) &&
56
53
  // From MSC3381:
@@ -172,8 +169,6 @@ export class Poll extends TypedEventEmitter<Exclude<PollEvent, PollEvent.New>, P
172
169
  },
173
170
  );
174
171
 
175
- await Promise.all(allRelations.events.map((event) => this.matrixClient.decryptEventIfNeeded(event)));
176
-
177
172
  const responses =
178
173
  this.responses ||
179
174
  new Relations("m.reference", M_POLL_RESPONSE.name, this.matrixClient, [M_POLL_RESPONSE.altName!]);
@@ -235,7 +230,6 @@ export class Poll extends TypedEventEmitter<Exclude<PollEvent, PollEvent.New>, P
235
230
 
236
231
  private countUndecryptableEvents = (events: MatrixEvent[]): void => {
237
232
  const undecryptableEventIds = events
238
- .filter((event) => event.isDecryptionFailure())
239
233
  .map((event) => event.getId()!);
240
234
 
241
235
  const previousCount = this.undecryptableRelationsCount;