@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
@@ -1,937 +0,0 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2018 - 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 { errorFactory, errorFromEvent, newUnexpectedMessageError, newUnknownMethodError } from "../Error.js";
21
- import { QRCodeData, SCAN_QR_CODE_METHOD } from "../QRCode.js";
22
- import { EventType } from "../../../@types/event.js";
23
- import { TypedEventEmitter } from "../../../models/typed-event-emitter.js";
24
- import { canAcceptVerificationRequest, VerificationPhase as Phase, VerificationRequestEvent } from "../../../crypto-api/verification.js";
25
-
26
- // backwards-compatibility exports
27
- export { VerificationPhase as Phase, VerificationRequestEvent } from "../../../crypto-api/verification.js";
28
-
29
- // How long after the event's timestamp that the request times out
30
- var TIMEOUT_FROM_EVENT_TS = 10 * 60 * 1000; // 10 minutes
31
-
32
- // How long after we receive the event that the request times out
33
- var TIMEOUT_FROM_EVENT_RECEIPT = 2 * 60 * 1000; // 2 minutes
34
-
35
- // to avoid almost expired verification notifications
36
- // from showing a notification and almost immediately
37
- // disappearing, also ignore verification requests that
38
- // are this amount of time away from expiring.
39
- var VERIFICATION_REQUEST_MARGIN = 3 * 1000; // 3 seconds
40
-
41
- export var EVENT_PREFIX = "m.key.verification.";
42
- export var REQUEST_TYPE = EVENT_PREFIX + "request";
43
- export var START_TYPE = EVENT_PREFIX + "start";
44
- export var CANCEL_TYPE = EVENT_PREFIX + "cancel";
45
- export var DONE_TYPE = EVENT_PREFIX + "done";
46
- export var READY_TYPE = EVENT_PREFIX + "ready";
47
-
48
- // Legacy export fields
49
- export var PHASE_UNSENT = Phase.Unsent;
50
- export var PHASE_REQUESTED = Phase.Requested;
51
- export var PHASE_READY = Phase.Ready;
52
- export var PHASE_STARTED = Phase.Started;
53
- export var PHASE_CANCELLED = Phase.Cancelled;
54
- export var PHASE_DONE = Phase.Done;
55
- /**
56
- * State machine for verification requests.
57
- * Things that differ based on what channel is used to
58
- * send and receive verification events are put in `InRoomChannel` or `ToDeviceChannel`.
59
- *
60
- * @deprecated Avoid direct references: instead prefer {@link Crypto.VerificationRequest}.
61
- */
62
- export class VerificationRequest extends TypedEventEmitter {
63
- constructor(channel, verificationMethods, client) {
64
- var _this;
65
- super();
66
- _this = this;
67
- this.channel = channel;
68
- this.verificationMethods = verificationMethods;
69
- this.client = client;
70
- _defineProperty(this, "eventsByUs", new Map());
71
- _defineProperty(this, "eventsByThem", new Map());
72
- _defineProperty(this, "_observeOnly", false);
73
- _defineProperty(this, "timeoutTimer", null);
74
- _defineProperty(this, "_accepting", false);
75
- _defineProperty(this, "_declining", false);
76
- _defineProperty(this, "verifierHasFinished", false);
77
- _defineProperty(this, "_cancelled", false);
78
- _defineProperty(this, "_chosenMethod", null);
79
- // we keep a copy of the QR Code data (including other user master key) around
80
- // for QR reciprocate verification, to protect against
81
- // cross-signing identity reset between the .ready and .start event
82
- // and signing the wrong key after .start
83
- _defineProperty(this, "_qrCodeData", null);
84
- // The timestamp when we received the request event from the other side
85
- _defineProperty(this, "requestReceivedAt", null);
86
- _defineProperty(this, "commonMethods", []);
87
- _defineProperty(this, "_phase", void 0);
88
- _defineProperty(this, "_cancellingUserId", void 0);
89
- // Used in tests only
90
- _defineProperty(this, "_verifier", void 0);
91
- _defineProperty(this, "cancelOnTimeout", /*#__PURE__*/_asyncToGenerator(function* () {
92
- try {
93
- if (_this.initiatedByMe) {
94
- yield _this.cancel({
95
- reason: "Other party didn't accept in time",
96
- code: "m.timeout"
97
- });
98
- } else {
99
- yield _this.cancel({
100
- reason: "User didn't accept in time",
101
- code: "m.timeout"
102
- });
103
- }
104
- } catch (err) {
105
- logger.error("Error while cancelling verification request", err);
106
- }
107
- }));
108
- this.channel.request = this;
109
- this.setPhase(PHASE_UNSENT, false);
110
- }
111
-
112
- /**
113
- * Stateless validation logic not specific to the channel.
114
- * Invoked by the same static method in either channel.
115
- * @param type - the "symbolic" event type, as returned by the `getEventType` function on the channel.
116
- * @param event - the event to validate. Don't call getType() on it but use the `type` parameter instead.
117
- * @param client - the client to get the current user and device id from
118
- * @returns whether the event is valid and should be passed to handleEvent
119
- */
120
- static validateEvent(type, event, client) {
121
- var content = event.getContent();
122
- if (!type || !type.startsWith(EVENT_PREFIX)) {
123
- return false;
124
- }
125
-
126
- // from here on we're fairly sure that this is supposed to be
127
- // part of a verification request, so be noisy when rejecting something
128
- if (!content) {
129
- logger.log("VerificationRequest: validateEvent: no content");
130
- return false;
131
- }
132
- if (type === REQUEST_TYPE || type === READY_TYPE) {
133
- if (!Array.isArray(content.methods)) {
134
- logger.log("VerificationRequest: validateEvent: " + "fail because methods");
135
- return false;
136
- }
137
- }
138
- if (type === REQUEST_TYPE || type === READY_TYPE || type === START_TYPE) {
139
- if (typeof content.from_device !== "string" || content.from_device.length === 0) {
140
- logger.log("VerificationRequest: validateEvent: " + "fail because from_device");
141
- return false;
142
- }
143
- }
144
- return true;
145
- }
146
-
147
- /**
148
- * Unique ID for this verification request.
149
- *
150
- * An ID isn't assigned until the first message is sent, so this may be `undefined` in the early phases.
151
- */
152
- get transactionId() {
153
- return this.channel.transactionId;
154
- }
155
-
156
- /**
157
- * For an in-room verification, the ID of the room.
158
- */
159
- get roomId() {
160
- return this.channel.roomId;
161
- }
162
- get invalid() {
163
- return this.phase === PHASE_UNSENT;
164
- }
165
-
166
- /** returns whether the phase is PHASE_REQUESTED */
167
- get requested() {
168
- return this.phase === PHASE_REQUESTED;
169
- }
170
-
171
- /** returns whether the phase is PHASE_CANCELLED */
172
- get cancelled() {
173
- return this.phase === PHASE_CANCELLED;
174
- }
175
-
176
- /** returns whether the phase is PHASE_READY */
177
- get ready() {
178
- return this.phase === PHASE_READY;
179
- }
180
-
181
- /** returns whether the phase is PHASE_STARTED */
182
- get started() {
183
- return this.phase === PHASE_STARTED;
184
- }
185
-
186
- /** returns whether the phase is PHASE_DONE */
187
- get done() {
188
- return this.phase === PHASE_DONE;
189
- }
190
-
191
- /** once the phase is PHASE_STARTED (and !initiatedByMe) or PHASE_READY: common methods supported by both sides */
192
- get methods() {
193
- return this.commonMethods;
194
- }
195
-
196
- /** the method picked in the .start event */
197
- get chosenMethod() {
198
- return this._chosenMethod;
199
- }
200
- calculateEventTimeout(event) {
201
- var effectiveExpiresAt = this.channel.getTimestamp(event) + TIMEOUT_FROM_EVENT_TS;
202
- if (this.requestReceivedAt && !this.initiatedByMe && this.phase <= PHASE_REQUESTED) {
203
- var expiresAtByReceipt = this.requestReceivedAt + TIMEOUT_FROM_EVENT_RECEIPT;
204
- effectiveExpiresAt = Math.min(effectiveExpiresAt, expiresAtByReceipt);
205
- }
206
- return Math.max(0, effectiveExpiresAt - Date.now());
207
- }
208
-
209
- /** The current remaining amount of ms before the request should be automatically cancelled */
210
- get timeout() {
211
- var requestEvent = this.getEventByEither(REQUEST_TYPE);
212
- if (requestEvent) {
213
- return this.calculateEventTimeout(requestEvent);
214
- }
215
- return 0;
216
- }
217
-
218
- /**
219
- * The key verification request event.
220
- * @returns The request event, or falsey if not found.
221
- */
222
- get requestEvent() {
223
- return this.getEventByEither(REQUEST_TYPE);
224
- }
225
-
226
- /** current phase of the request. Some properties might only be defined in a current phase. */
227
- get phase() {
228
- return this._phase;
229
- }
230
-
231
- /** The verifier to do the actual verification, once the method has been established. Only defined when the `phase` is PHASE_STARTED. */
232
- get verifier() {
233
- return this._verifier;
234
- }
235
- get canAccept() {
236
- return canAcceptVerificationRequest(this);
237
- }
238
- get accepting() {
239
- return this._accepting;
240
- }
241
- get declining() {
242
- return this._declining;
243
- }
244
-
245
- /** whether this request has sent it's initial event and needs more events to complete */
246
- get pending() {
247
- return !this.observeOnly && this._phase !== PHASE_DONE && this._phase !== PHASE_CANCELLED;
248
- }
249
-
250
- /** Only set after a .ready if the other party can scan a QR code
251
- *
252
- * @deprecated Prefer `generateQRCode`.
253
- */
254
- get qrCodeData() {
255
- return this._qrCodeData;
256
- }
257
-
258
- /**
259
- * Get the data for a QR code allowing the other device to verify this one, if it supports it.
260
- *
261
- * Only set after a .ready if the other party can scan a QR code, otherwise undefined.
262
- *
263
- * @deprecated Prefer `generateQRCode`.
264
- */
265
- getQRCodeBytes() {
266
- var _this$_qrCodeData;
267
- return (_this$_qrCodeData = this._qrCodeData) === null || _this$_qrCodeData === void 0 ? void 0 : _this$_qrCodeData.getBuffer();
268
- }
269
-
270
- /**
271
- * Generate the data for a QR code allowing the other device to verify this one, if it supports it.
272
- *
273
- * Only returns data once `phase` is `Ready` and the other party can scan a QR code;
274
- * otherwise returns `undefined`.
275
- */
276
- generateQRCode() {
277
- var _this2 = this;
278
- return _asyncToGenerator(function* () {
279
- return _this2.getQRCodeBytes();
280
- })();
281
- }
282
-
283
- /** Checks whether the other party supports a given verification method.
284
- * This is useful when setting up the QR code UI, as it is somewhat asymmetrical:
285
- * if the other party supports SCAN_QR, we should show a QR code in the UI, and vice versa.
286
- * For methods that need to be supported by both ends, use the `methods` property.
287
- * @param method - the method to check
288
- * @param force - to check even if the phase is not ready or started yet, internal usage
289
- * @returns whether or not the other party said the supported the method */
290
- otherPartySupportsMethod(method) {
291
- var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
292
- if (!force && !this.ready && !this.started) {
293
- return false;
294
- }
295
- var theirMethodEvent = this.eventsByThem.get(REQUEST_TYPE) || this.eventsByThem.get(READY_TYPE);
296
- if (!theirMethodEvent) {
297
- // if we started straight away with .start event,
298
- // we are assuming that the other side will support the
299
- // chosen method, so return true for that.
300
- if (this.started && this.initiatedByMe) {
301
- var myStartEvent = this.eventsByUs.get(START_TYPE);
302
- var _content = myStartEvent && myStartEvent.getContent();
303
- var myStartMethod = _content && _content.method;
304
- return method == myStartMethod;
305
- }
306
- return false;
307
- }
308
- var content = theirMethodEvent.getContent();
309
- if (!content) {
310
- return false;
311
- }
312
- var {
313
- methods
314
- } = content;
315
- if (!Array.isArray(methods)) {
316
- return false;
317
- }
318
- return methods.includes(method);
319
- }
320
-
321
- /** Whether this request was initiated by the syncing user.
322
- * For InRoomChannel, this is who sent the .request event.
323
- * For ToDeviceChannel, this is who sent the .start event
324
- */
325
- get initiatedByMe() {
326
- // event created by us but no remote echo has been received yet
327
- var noEventsYet = this.eventsByUs.size + this.eventsByThem.size === 0;
328
- if (this._phase === PHASE_UNSENT && noEventsYet) {
329
- return true;
330
- }
331
- var hasMyRequest = this.eventsByUs.has(REQUEST_TYPE);
332
- var hasTheirRequest = this.eventsByThem.has(REQUEST_TYPE);
333
- if (hasMyRequest && !hasTheirRequest) {
334
- return true;
335
- }
336
- if (!hasMyRequest && hasTheirRequest) {
337
- return false;
338
- }
339
- var hasMyStart = this.eventsByUs.has(START_TYPE);
340
- var hasTheirStart = this.eventsByThem.has(START_TYPE);
341
- if (hasMyStart && !hasTheirStart) {
342
- return true;
343
- }
344
- return false;
345
- }
346
-
347
- /** The id of the user that initiated the request */
348
- get requestingUserId() {
349
- if (this.initiatedByMe) {
350
- return this.client.getUserId();
351
- } else {
352
- return this.otherUserId;
353
- }
354
- }
355
-
356
- /** The id of the user that (will) receive(d) the request */
357
- get receivingUserId() {
358
- if (this.initiatedByMe) {
359
- return this.otherUserId;
360
- } else {
361
- return this.client.getUserId();
362
- }
363
- }
364
-
365
- /** The user id of the other party in this request */
366
- get otherUserId() {
367
- return this.channel.userId;
368
- }
369
-
370
- /** The device id of the other party in this request, for requests happening over to-device messages only. */
371
- get otherDeviceId() {
372
- return this.channel.deviceId;
373
- }
374
- get isSelfVerification() {
375
- return this.client.getUserId() === this.otherUserId;
376
- }
377
-
378
- /**
379
- * The id of the user that cancelled the request,
380
- * only defined when phase is PHASE_CANCELLED
381
- */
382
- get cancellingUserId() {
383
- var myCancel = this.eventsByUs.get(CANCEL_TYPE);
384
- var theirCancel = this.eventsByThem.get(CANCEL_TYPE);
385
- if (myCancel && (!theirCancel || myCancel.getId() < theirCancel.getId())) {
386
- return myCancel.getSender();
387
- }
388
- if (theirCancel) {
389
- return theirCancel.getSender();
390
- }
391
- return undefined;
392
- }
393
-
394
- /**
395
- * The cancellation code e.g m.user which is responsible for cancelling this verification
396
- */
397
- get cancellationCode() {
398
- var ev = this.getEventByEither(CANCEL_TYPE);
399
- return ev ? ev.getContent().code : null;
400
- }
401
- get observeOnly() {
402
- return this._observeOnly;
403
- }
404
-
405
- /**
406
- * Gets which device the verification should be started with
407
- * given the events sent so far in the verification. This is the
408
- * same algorithm used to determine which device to send the
409
- * verification to when no specific device is specified.
410
- * @returns The device information
411
- */
412
- get targetDevice() {
413
- var theirFirstEvent = this.eventsByThem.get(REQUEST_TYPE) || this.eventsByThem.get(READY_TYPE) || this.eventsByThem.get(START_TYPE);
414
- var theirFirstContent = theirFirstEvent === null || theirFirstEvent === void 0 ? void 0 : theirFirstEvent.getContent();
415
- var fromDevice = theirFirstContent === null || theirFirstContent === void 0 ? void 0 : theirFirstContent.from_device;
416
- return {
417
- userId: this.otherUserId,
418
- deviceId: fromDevice
419
- };
420
- }
421
-
422
- /* Start the key verification, creating a verifier and sending a .start event.
423
- * If no previous events have been sent, pass in `targetDevice` to set who to direct this request to.
424
- * @param method - the name of the verification method to use.
425
- * @param targetDevice.userId the id of the user to direct this request to
426
- * @param targetDevice.deviceId the id of the device to direct this request to
427
- * @returns the verifier of the given method
428
- */
429
- beginKeyVerification(method) {
430
- var targetDevice = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
431
- // need to allow also when unsent in case of to_device
432
- if (!this.observeOnly && !this._verifier) {
433
- var validStartPhase = this.phase === PHASE_REQUESTED || this.phase === PHASE_READY || this.phase === PHASE_UNSENT && this.channel.canCreateRequest(START_TYPE);
434
- if (validStartPhase) {
435
- // when called on a request that was initiated with .request event
436
- // check the method is supported by both sides
437
- if (this.commonMethods.length && !this.commonMethods.includes(method)) {
438
- throw newUnknownMethodError();
439
- }
440
- this._verifier = this.createVerifier(method, null, targetDevice);
441
- if (!this._verifier) {
442
- throw newUnknownMethodError();
443
- }
444
- this._chosenMethod = method;
445
- }
446
- }
447
- return this._verifier;
448
- }
449
- startVerification(method) {
450
- var _this3 = this;
451
- return _asyncToGenerator(function* () {
452
- var verifier = _this3.beginKeyVerification(method);
453
- // kick off the verification in the background, but *don't* wait for to complete: we need to return the `Verifier`.
454
- verifier.verify();
455
- return verifier;
456
- })();
457
- }
458
- scanQRCode(qrCodeData) {
459
- throw new Error("QR code scanning not supported by legacy crypto");
460
- }
461
-
462
- /**
463
- * sends the initial .request event.
464
- * @returns resolves when the event has been sent.
465
- */
466
- sendRequest() {
467
- var _this4 = this;
468
- return _asyncToGenerator(function* () {
469
- if (!_this4.observeOnly && _this4._phase === PHASE_UNSENT) {
470
- var methods = [..._this4.verificationMethods.keys()];
471
- yield _this4.channel.send(REQUEST_TYPE, {
472
- methods
473
- });
474
- }
475
- })();
476
- }
477
-
478
- /**
479
- * Cancels the request, sending a cancellation to the other party
480
- * @param params
481
- * @param params.reason - the error reason to send the cancellation with
482
- * @param params.code - the error code to send the cancellation with
483
- * @returns resolves when the event has been sent.
484
- */
485
- cancel() {
486
- var _arguments = arguments,
487
- _this5 = this;
488
- return _asyncToGenerator(function* () {
489
- var {
490
- reason = "User declined",
491
- code = "m.user"
492
- } = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
493
- if (!_this5.observeOnly && _this5._phase !== PHASE_CANCELLED) {
494
- _this5._declining = true;
495
- _this5.emit(VerificationRequestEvent.Change);
496
- if (_this5._verifier) {
497
- return _this5._verifier.cancel(errorFactory(code, reason)());
498
- } else {
499
- _this5._cancellingUserId = _this5.client.getUserId();
500
- yield _this5.channel.send(CANCEL_TYPE, {
501
- code,
502
- reason
503
- });
504
- }
505
- }
506
- })();
507
- }
508
-
509
- /**
510
- * Accepts the request, sending a .ready event to the other party
511
- * @returns resolves when the event has been sent.
512
- */
513
- accept() {
514
- var _this6 = this;
515
- return _asyncToGenerator(function* () {
516
- if (!_this6.observeOnly && _this6.phase === PHASE_REQUESTED && !_this6.initiatedByMe) {
517
- var methods = [..._this6.verificationMethods.keys()];
518
- _this6._accepting = true;
519
- _this6.emit(VerificationRequestEvent.Change);
520
- yield _this6.channel.send(READY_TYPE, {
521
- methods
522
- });
523
- }
524
- })();
525
- }
526
-
527
- /**
528
- * Can be used to listen for state changes until the callback returns true.
529
- * @param fn - callback to evaluate whether the request is in the desired state.
530
- * Takes the request as an argument.
531
- * @returns that resolves once the callback returns true
532
- * @throws Error when the request is cancelled
533
- */
534
- waitFor(fn) {
535
- return new Promise((resolve, reject) => {
536
- var check = () => {
537
- var handled = false;
538
- if (fn(this)) {
539
- resolve(this);
540
- handled = true;
541
- } else if (this.cancelled) {
542
- reject(new Error("cancelled"));
543
- handled = true;
544
- }
545
- if (handled) {
546
- this.off(VerificationRequestEvent.Change, check);
547
- }
548
- return handled;
549
- };
550
- if (!check()) {
551
- this.on(VerificationRequestEvent.Change, check);
552
- }
553
- });
554
- }
555
- setPhase(phase) {
556
- var notify = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
557
- this._phase = phase;
558
- if (notify) {
559
- this.emit(VerificationRequestEvent.Change);
560
- }
561
- }
562
- getEventByEither(type) {
563
- return this.eventsByThem.get(type) || this.eventsByUs.get(type);
564
- }
565
- getEventBy(type) {
566
- var byThem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
567
- if (byThem) {
568
- return this.eventsByThem.get(type);
569
- } else {
570
- return this.eventsByUs.get(type);
571
- }
572
- }
573
- calculatePhaseTransitions() {
574
- var transitions = [{
575
- phase: PHASE_UNSENT
576
- }];
577
- var phase = () => transitions[transitions.length - 1].phase;
578
-
579
- // always pass by .request first to be sure channel.userId has been set
580
- var hasRequestByThem = this.eventsByThem.has(REQUEST_TYPE);
581
- var requestEvent = this.getEventBy(REQUEST_TYPE, hasRequestByThem);
582
- if (requestEvent) {
583
- transitions.push({
584
- phase: PHASE_REQUESTED,
585
- event: requestEvent
586
- });
587
- }
588
- var readyEvent = requestEvent && this.getEventBy(READY_TYPE, !hasRequestByThem);
589
- if (readyEvent && phase() === PHASE_REQUESTED) {
590
- transitions.push({
591
- phase: PHASE_READY,
592
- event: readyEvent
593
- });
594
- }
595
- var startEvent;
596
- if (readyEvent || !requestEvent) {
597
- var theirStartEvent = this.eventsByThem.get(START_TYPE);
598
- var ourStartEvent = this.eventsByUs.get(START_TYPE);
599
- // any party can send .start after a .ready or unsent
600
- if (theirStartEvent && ourStartEvent) {
601
- startEvent = theirStartEvent.getSender() < ourStartEvent.getSender() ? theirStartEvent : ourStartEvent;
602
- } else {
603
- startEvent = theirStartEvent ? theirStartEvent : ourStartEvent;
604
- }
605
- } else {
606
- startEvent = this.getEventBy(START_TYPE, !hasRequestByThem);
607
- }
608
- if (startEvent) {
609
- var fromRequestPhase = phase() === PHASE_REQUESTED && (requestEvent === null || requestEvent === void 0 ? void 0 : requestEvent.getSender()) !== startEvent.getSender();
610
- var fromUnsentPhase = phase() === PHASE_UNSENT && this.channel.canCreateRequest(START_TYPE);
611
- if (fromRequestPhase || phase() === PHASE_READY || fromUnsentPhase) {
612
- transitions.push({
613
- phase: PHASE_STARTED,
614
- event: startEvent
615
- });
616
- }
617
- }
618
- var ourDoneEvent = this.eventsByUs.get(DONE_TYPE);
619
- if (this.verifierHasFinished || ourDoneEvent && phase() === PHASE_STARTED) {
620
- transitions.push({
621
- phase: PHASE_DONE
622
- });
623
- }
624
- var cancelEvent = this.getEventByEither(CANCEL_TYPE);
625
- if ((this._cancelled || cancelEvent) && phase() !== PHASE_DONE) {
626
- transitions.push({
627
- phase: PHASE_CANCELLED,
628
- event: cancelEvent
629
- });
630
- return transitions;
631
- }
632
- return transitions;
633
- }
634
- transitionToPhase(transition) {
635
- var {
636
- phase,
637
- event
638
- } = transition;
639
- // get common methods
640
- if (phase === PHASE_REQUESTED || phase === PHASE_READY) {
641
- if (!this.wasSentByOwnDevice(event)) {
642
- var content = event.getContent();
643
- this.commonMethods = content.methods.filter(m => this.verificationMethods.has(m));
644
- }
645
- }
646
- // detect if we're not a party in the request, and we should just observe
647
- if (!this.observeOnly) {
648
- // if requested or accepted by one of my other devices
649
- if (phase === PHASE_REQUESTED || phase === PHASE_STARTED || phase === PHASE_READY) {
650
- if (this.channel.receiveStartFromOtherDevices && this.wasSentByOwnUser(event) && !this.wasSentByOwnDevice(event)) {
651
- this._observeOnly = true;
652
- }
653
- }
654
- }
655
- // create verifier
656
- if (phase === PHASE_STARTED) {
657
- var {
658
- method
659
- } = event.getContent();
660
- if (!this._verifier && !this.observeOnly) {
661
- this._verifier = this.createVerifier(method, event);
662
- if (!this._verifier) {
663
- this.cancel({
664
- code: "m.unknown_method",
665
- reason: "Unknown method: ".concat(method)
666
- });
667
- } else {
668
- this._chosenMethod = method;
669
- }
670
- }
671
- }
672
- }
673
- applyPhaseTransitions() {
674
- var transitions = this.calculatePhaseTransitions();
675
- var existingIdx = transitions.findIndex(t => t.phase === this.phase);
676
- // trim off phases we already went through, if any
677
- var newTransitions = transitions.slice(existingIdx + 1);
678
- // transition to all new phases
679
- for (var transition of newTransitions) {
680
- this.transitionToPhase(transition);
681
- }
682
- return newTransitions;
683
- }
684
- isWinningStartRace(newEvent) {
685
- if (newEvent.getType() !== START_TYPE) {
686
- return false;
687
- }
688
- var oldEvent = this._verifier.startEvent;
689
- var oldRaceIdentifier;
690
- if (this.isSelfVerification) {
691
- // if the verifier does not have a startEvent,
692
- // it is because it's still sending and we are on the initator side
693
- // we know we are sending a .start event because we already
694
- // have a verifier (checked in calling method)
695
- if (oldEvent) {
696
- var oldContent = oldEvent.getContent();
697
- oldRaceIdentifier = oldContent && oldContent.from_device;
698
- } else {
699
- oldRaceIdentifier = this.client.getDeviceId();
700
- }
701
- } else {
702
- if (oldEvent) {
703
- oldRaceIdentifier = oldEvent.getSender();
704
- } else {
705
- oldRaceIdentifier = this.client.getUserId();
706
- }
707
- }
708
- var newRaceIdentifier;
709
- if (this.isSelfVerification) {
710
- var newContent = newEvent.getContent();
711
- newRaceIdentifier = newContent && newContent.from_device;
712
- } else {
713
- newRaceIdentifier = newEvent.getSender();
714
- }
715
- return newRaceIdentifier < oldRaceIdentifier;
716
- }
717
- hasEventId(eventId) {
718
- for (var event of this.eventsByUs.values()) {
719
- if (event.getId() === eventId) {
720
- return true;
721
- }
722
- }
723
- for (var _event of this.eventsByThem.values()) {
724
- if (_event.getId() === eventId) {
725
- return true;
726
- }
727
- }
728
- return false;
729
- }
730
-
731
- /**
732
- * Changes the state of the request and verifier in response to a key verification event.
733
- * @param type - the "symbolic" event type, as returned by the `getEventType` function on the channel.
734
- * @param event - the event to handle. Don't call getType() on it but use the `type` parameter instead.
735
- * @param isLiveEvent - whether this is an even received through sync or not
736
- * @param isRemoteEcho - whether this is the remote echo of an event sent by the same device
737
- * @param isSentByUs - whether this event is sent by a party that can accept and/or observe the request like one of our peers.
738
- * For InRoomChannel this means any device for the syncing user. For ToDeviceChannel, just the syncing device.
739
- * @returns a promise that resolves when any requests as an answer to the passed-in event are sent.
740
- */
741
- handleEvent(type, event, isLiveEvent, isRemoteEcho, isSentByUs) {
742
- var _this7 = this;
743
- return _asyncToGenerator(function* () {
744
- // if reached phase cancelled or done, ignore anything else that comes
745
- if (_this7.done || _this7.cancelled) {
746
- return;
747
- }
748
- var wasObserveOnly = _this7._observeOnly;
749
- _this7.adjustObserveOnly(event, isLiveEvent);
750
- if (!_this7.observeOnly && !isRemoteEcho) {
751
- if (yield _this7.cancelOnError(type, event)) {
752
- return;
753
- }
754
- }
755
-
756
- // This assumes verification won't need to send an event with
757
- // the same type for the same party twice.
758
- // This is true for QR and SAS verification, and was
759
- // added here to prevent verification getting cancelled
760
- // when the server duplicates an event (https://github.com/matrix-org/synapse/issues/3365)
761
- var isDuplicateEvent = isSentByUs ? _this7.eventsByUs.has(type) : _this7.eventsByThem.has(type);
762
- if (isDuplicateEvent) {
763
- return;
764
- }
765
- var oldPhase = _this7.phase;
766
- _this7.addEvent(type, event, isSentByUs);
767
-
768
- // this will create if needed the verifier so needs to happen before calling it
769
- var newTransitions = _this7.applyPhaseTransitions();
770
- try {
771
- // only pass events from the other side to the verifier,
772
- // no remote echos of our own events
773
- if (_this7._verifier && !_this7.observeOnly) {
774
- var newEventWinsRace = _this7.isWinningStartRace(event);
775
- if (_this7._verifier.canSwitchStartEvent(event) && newEventWinsRace) {
776
- _this7._verifier.switchStartEvent(event);
777
- } else if (!isRemoteEcho) {
778
- var _this7$_verifier$even;
779
- if (type === CANCEL_TYPE || (_this7$_verifier$even = _this7._verifier.events) !== null && _this7$_verifier$even !== void 0 && _this7$_verifier$even.includes(type)) {
780
- _this7._verifier.handleEvent(event);
781
- }
782
- }
783
- }
784
- if (newTransitions.length) {
785
- // create QRCodeData if the other side can scan
786
- // important this happens before emitting a phase change,
787
- // so listeners can rely on it being there already
788
- // We only do this for live events because it is important that
789
- // we sign the keys that were in the QR code, and not the keys
790
- // we happen to have at some later point in time.
791
- if (isLiveEvent && newTransitions.some(t => t.phase === PHASE_READY)) {
792
- var shouldGenerateQrCode = _this7.otherPartySupportsMethod(SCAN_QR_CODE_METHOD, true);
793
- if (shouldGenerateQrCode) {
794
- _this7._qrCodeData = yield QRCodeData.create(_this7, _this7.client);
795
- }
796
- }
797
- var lastTransition = newTransitions[newTransitions.length - 1];
798
- var {
799
- phase
800
- } = lastTransition;
801
- _this7.setupTimeout(phase);
802
- // set phase as last thing as this emits the "change" event
803
- _this7.setPhase(phase);
804
- } else if (_this7._observeOnly !== wasObserveOnly) {
805
- _this7.emit(VerificationRequestEvent.Change);
806
- }
807
- } finally {
808
- // log events we processed so we can see from rageshakes what events were added to a request
809
- logger.log("Verification request ".concat(_this7.channel.transactionId, ": ") + "".concat(type, " event with id:").concat(event.getId(), ", ") + "content:".concat(JSON.stringify(event.getContent()), " ") + "deviceId:".concat(_this7.channel.deviceId, ", ") + "sender:".concat(event.getSender(), ", isSentByUs:").concat(isSentByUs, ", ") + "isLiveEvent:".concat(isLiveEvent, ", isRemoteEcho:").concat(isRemoteEcho, ", ") + "phase:".concat(oldPhase, "=>").concat(_this7.phase, ", ") + "observeOnly:".concat(wasObserveOnly, "=>").concat(_this7._observeOnly));
810
- }
811
- })();
812
- }
813
- setupTimeout(phase) {
814
- var shouldTimeout = !this.timeoutTimer && !this.observeOnly && phase === PHASE_REQUESTED;
815
- if (shouldTimeout) {
816
- this.timeoutTimer = setTimeout(this.cancelOnTimeout, this.timeout);
817
- }
818
- if (this.timeoutTimer) {
819
- var shouldClear = phase === PHASE_STARTED || phase === PHASE_READY || phase === PHASE_DONE || phase === PHASE_CANCELLED;
820
- if (shouldClear) {
821
- clearTimeout(this.timeoutTimer);
822
- this.timeoutTimer = null;
823
- }
824
- }
825
- }
826
- cancelOnError(type, event) {
827
- var _this8 = this;
828
- return _asyncToGenerator(function* () {
829
- if (type === START_TYPE) {
830
- var method = event.getContent().method;
831
- if (!_this8.verificationMethods.has(method)) {
832
- yield _this8.cancel(errorFromEvent(newUnknownMethodError()));
833
- return true;
834
- }
835
- }
836
- var isUnexpectedRequest = type === REQUEST_TYPE && _this8.phase !== PHASE_UNSENT;
837
- var isUnexpectedReady = type === READY_TYPE && _this8.phase !== PHASE_REQUESTED && _this8.phase !== PHASE_STARTED;
838
- // only if phase has passed from PHASE_UNSENT should we cancel, because events
839
- // are allowed to come in in any order (at least with InRoomChannel). So we only know
840
- // we're dealing with a valid request we should participate in once we've moved to PHASE_REQUESTED.
841
- // Before that, we could be looking at somebody else's verification request and we just
842
- // happen to be in the room
843
- if (_this8.phase !== PHASE_UNSENT && (isUnexpectedRequest || isUnexpectedReady)) {
844
- logger.warn("Cancelling, unexpected ".concat(type, " verification ") + "event from ".concat(event.getSender()));
845
- var reason = "Unexpected ".concat(type, " event in phase ").concat(_this8.phase);
846
- yield _this8.cancel(errorFromEvent(newUnexpectedMessageError({
847
- reason
848
- })));
849
- return true;
850
- }
851
- return false;
852
- })();
853
- }
854
- adjustObserveOnly(event) {
855
- var isLiveEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
856
- // don't send out events for historical requests
857
- if (!isLiveEvent) {
858
- this._observeOnly = true;
859
- }
860
- if (this.calculateEventTimeout(event) < VERIFICATION_REQUEST_MARGIN) {
861
- this._observeOnly = true;
862
- }
863
- }
864
- addEvent(type, event) {
865
- var isSentByUs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
866
- if (isSentByUs) {
867
- this.eventsByUs.set(type, event);
868
- } else {
869
- this.eventsByThem.set(type, event);
870
- }
871
-
872
- // once we know the userId of the other party (from the .request event)
873
- // see if any event by anyone else crept into this.eventsByThem
874
- if (type === REQUEST_TYPE) {
875
- for (var [_type, _event2] of this.eventsByThem.entries()) {
876
- if (_event2.getSender() !== this.otherUserId) {
877
- this.eventsByThem.delete(_type);
878
- }
879
- }
880
- // also remember when we received the request event
881
- this.requestReceivedAt = Date.now();
882
- }
883
- }
884
- createVerifier(method) {
885
- var startEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
886
- var targetDevice = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
887
- if (!targetDevice) {
888
- targetDevice = this.targetDevice;
889
- }
890
- var {
891
- userId,
892
- deviceId
893
- } = targetDevice;
894
- var VerifierCtor = this.verificationMethods.get(method);
895
- if (!VerifierCtor) {
896
- logger.warn("could not find verifier constructor for method", method);
897
- return;
898
- }
899
- return new VerifierCtor(this.channel, this.client, userId, deviceId, startEvent, this);
900
- }
901
- wasSentByOwnUser(event) {
902
- return (event === null || event === void 0 ? void 0 : event.getSender()) === this.client.getUserId();
903
- }
904
-
905
- // only for .request, .ready or .start
906
- wasSentByOwnDevice(event) {
907
- if (!this.wasSentByOwnUser(event)) {
908
- return false;
909
- }
910
- var content = event.getContent();
911
- if (!content || content.from_device !== this.client.getDeviceId()) {
912
- return false;
913
- }
914
- return true;
915
- }
916
- onVerifierCancelled() {
917
- this._cancelled = true;
918
- // move to cancelled phase
919
- var newTransitions = this.applyPhaseTransitions();
920
- if (newTransitions.length) {
921
- this.setPhase(newTransitions[newTransitions.length - 1].phase);
922
- }
923
- }
924
- onVerifierFinished() {
925
- this.channel.send(EventType.KeyVerificationDone, {});
926
- this.verifierHasFinished = true;
927
- // move to .done phase
928
- var newTransitions = this.applyPhaseTransitions();
929
- if (newTransitions.length) {
930
- this.setPhase(newTransitions[newTransitions.length - 1].phase);
931
- }
932
- }
933
- getEventFromOtherParty(type) {
934
- return this.eventsByThem.get(type);
935
- }
936
- }
937
- //# sourceMappingURL=VerificationRequest.js.map