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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (467) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/global.d.js +0 -2
  3. package/lib/@types/global.d.js.map +1 -1
  4. package/lib/browser-index.d.ts.map +1 -1
  5. package/lib/browser-index.js +0 -11
  6. package/lib/browser-index.js.map +1 -1
  7. package/lib/client.d.ts +2 -1176
  8. package/lib/client.d.ts.map +1 -1
  9. package/lib/client.js +346 -2717
  10. package/lib/client.js.map +1 -1
  11. package/lib/embedded.d.ts +0 -22
  12. package/lib/embedded.d.ts.map +1 -1
  13. package/lib/embedded.js +24 -166
  14. package/lib/embedded.js.map +1 -1
  15. package/lib/event-mapper.d.ts.map +1 -1
  16. package/lib/event-mapper.js +0 -4
  17. package/lib/event-mapper.js.map +1 -1
  18. package/lib/matrix.d.ts +0 -19
  19. package/lib/matrix.d.ts.map +1 -1
  20. package/lib/matrix.js +1 -26
  21. package/lib/matrix.js.map +1 -1
  22. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  23. package/lib/models/MSC3089Branch.js +0 -3
  24. package/lib/models/MSC3089Branch.js.map +1 -1
  25. package/lib/models/event.d.ts +0 -94
  26. package/lib/models/event.d.ts.map +1 -1
  27. package/lib/models/event.js +0 -274
  28. package/lib/models/event.js.map +1 -1
  29. package/lib/models/poll.d.ts.map +1 -1
  30. package/lib/models/poll.js +1 -5
  31. package/lib/models/poll.js.map +1 -1
  32. package/lib/models/relations-container.d.ts.map +1 -1
  33. package/lib/models/relations-container.js +1 -7
  34. package/lib/models/relations-container.js.map +1 -1
  35. package/lib/models/relations.d.ts +0 -1
  36. package/lib/models/relations.d.ts.map +1 -1
  37. package/lib/models/relations.js +0 -8
  38. package/lib/models/relations.js.map +1 -1
  39. package/lib/models/room-state.d.ts.map +1 -1
  40. package/lib/models/room-state.js +10 -26
  41. package/lib/models/room-state.js.map +1 -1
  42. package/lib/models/room.d.ts +0 -18
  43. package/lib/models/room.d.ts.map +1 -1
  44. package/lib/models/room.js +94 -148
  45. package/lib/models/room.js.map +1 -1
  46. package/lib/models/thread.d.ts.map +1 -1
  47. package/lib/models/thread.js +0 -1
  48. package/lib/models/thread.js.map +1 -1
  49. package/lib/sliding-sync-sdk.d.ts +2 -3
  50. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  51. package/lib/sliding-sync-sdk.js +41 -90
  52. package/lib/sliding-sync-sdk.js.map +1 -1
  53. package/lib/sync.d.ts +0 -12
  54. package/lib/sync.d.ts.map +1 -1
  55. package/lib/sync.js +1 -73
  56. package/lib/sync.js.map +1 -1
  57. package/lib/testing.d.ts +0 -48
  58. package/lib/testing.d.ts.map +1 -1
  59. package/lib/testing.js +0 -105
  60. package/lib/testing.js.map +1 -1
  61. package/package.json +1 -3
  62. package/src/@types/global.d.ts +0 -3
  63. package/src/browser-index.ts +0 -11
  64. package/src/client.ts +57 -2732
  65. package/src/embedded.ts +3 -130
  66. package/src/event-mapper.ts +0 -4
  67. package/src/matrix.ts +0 -28
  68. package/src/models/MSC3089Branch.ts +0 -3
  69. package/src/models/event.ts +0 -289
  70. package/src/models/poll.ts +0 -6
  71. package/src/models/relations-container.ts +1 -8
  72. package/src/models/relations.ts +0 -8
  73. package/src/models/room-state.ts +2 -8
  74. package/src/models/room.ts +0 -62
  75. package/src/models/thread.ts +0 -1
  76. package/src/sliding-sync-sdk.ts +2 -72
  77. package/src/sync.ts +1 -98
  78. package/src/testing.ts +0 -108
  79. package/lib/@types/crypto.d.ts +0 -47
  80. package/lib/@types/crypto.d.ts.map +0 -1
  81. package/lib/@types/crypto.js +0 -1
  82. package/lib/@types/crypto.js.map +0 -1
  83. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  84. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  85. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  86. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  87. package/lib/common-crypto/CryptoBackend.js +0 -73
  88. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  89. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  90. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  91. package/lib/common-crypto/key-passphrase.js +0 -33
  92. package/lib/common-crypto/key-passphrase.js.map +0 -1
  93. package/lib/crypto/CrossSigning.d.ts +0 -184
  94. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  95. package/lib/crypto/CrossSigning.js +0 -718
  96. package/lib/crypto/CrossSigning.js.map +0 -1
  97. package/lib/crypto/DeviceList.d.ts +0 -216
  98. package/lib/crypto/DeviceList.d.ts.map +0 -1
  99. package/lib/crypto/DeviceList.js +0 -892
  100. package/lib/crypto/DeviceList.js.map +0 -1
  101. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  102. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  103. package/lib/crypto/EncryptionSetup.js +0 -356
  104. package/lib/crypto/EncryptionSetup.js.map +0 -1
  105. package/lib/crypto/OlmDevice.d.ts +0 -457
  106. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  107. package/lib/crypto/OlmDevice.js +0 -1241
  108. package/lib/crypto/OlmDevice.js.map +0 -1
  109. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  110. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  111. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  112. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  113. package/lib/crypto/RoomList.d.ts +0 -26
  114. package/lib/crypto/RoomList.d.ts.map +0 -1
  115. package/lib/crypto/RoomList.js +0 -71
  116. package/lib/crypto/RoomList.js.map +0 -1
  117. package/lib/crypto/SecretSharing.d.ts +0 -24
  118. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  119. package/lib/crypto/SecretSharing.js +0 -194
  120. package/lib/crypto/SecretSharing.js.map +0 -1
  121. package/lib/crypto/SecretStorage.d.ts +0 -55
  122. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  123. package/lib/crypto/SecretStorage.js +0 -118
  124. package/lib/crypto/SecretStorage.js.map +0 -1
  125. package/lib/crypto/aes.d.ts +0 -6
  126. package/lib/crypto/aes.d.ts.map +0 -1
  127. package/lib/crypto/aes.js +0 -24
  128. package/lib/crypto/aes.js.map +0 -1
  129. package/lib/crypto/algorithms/base.d.ts +0 -156
  130. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  131. package/lib/crypto/algorithms/base.js +0 -187
  132. package/lib/crypto/algorithms/base.js.map +0 -1
  133. package/lib/crypto/algorithms/index.d.ts +0 -4
  134. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  135. package/lib/crypto/algorithms/index.js +0 -20
  136. package/lib/crypto/algorithms/index.js.map +0 -1
  137. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  138. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  139. package/lib/crypto/algorithms/megolm.js +0 -1822
  140. package/lib/crypto/algorithms/megolm.js.map +0 -1
  141. package/lib/crypto/algorithms/olm.d.ts +0 -5
  142. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  143. package/lib/crypto/algorithms/olm.js +0 -299
  144. package/lib/crypto/algorithms/olm.js.map +0 -1
  145. package/lib/crypto/api.d.ts +0 -32
  146. package/lib/crypto/api.d.ts.map +0 -1
  147. package/lib/crypto/api.js +0 -22
  148. package/lib/crypto/api.js.map +0 -1
  149. package/lib/crypto/backup.d.ts +0 -227
  150. package/lib/crypto/backup.d.ts.map +0 -1
  151. package/lib/crypto/backup.js +0 -824
  152. package/lib/crypto/backup.js.map +0 -1
  153. package/lib/crypto/crypto.d.ts +0 -3
  154. package/lib/crypto/crypto.d.ts.map +0 -1
  155. package/lib/crypto/crypto.js +0 -19
  156. package/lib/crypto/crypto.js.map +0 -1
  157. package/lib/crypto/dehydration.d.ts +0 -34
  158. package/lib/crypto/dehydration.d.ts.map +0 -1
  159. package/lib/crypto/dehydration.js +0 -252
  160. package/lib/crypto/dehydration.js.map +0 -1
  161. package/lib/crypto/device-converter.d.ts +0 -9
  162. package/lib/crypto/device-converter.d.ts.map +0 -1
  163. package/lib/crypto/device-converter.js +0 -42
  164. package/lib/crypto/device-converter.js.map +0 -1
  165. package/lib/crypto/deviceinfo.d.ts +0 -99
  166. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  167. package/lib/crypto/deviceinfo.js +0 -148
  168. package/lib/crypto/deviceinfo.js.map +0 -1
  169. package/lib/crypto/index.d.ts +0 -1209
  170. package/lib/crypto/index.d.ts.map +0 -1
  171. package/lib/crypto/index.js +0 -4097
  172. package/lib/crypto/index.js.map +0 -1
  173. package/lib/crypto/key_passphrase.d.ts +0 -14
  174. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  175. package/lib/crypto/key_passphrase.js +0 -44
  176. package/lib/crypto/key_passphrase.js.map +0 -1
  177. package/lib/crypto/keybackup.d.ts +0 -18
  178. package/lib/crypto/keybackup.d.ts.map +0 -1
  179. package/lib/crypto/keybackup.js +0 -1
  180. package/lib/crypto/keybackup.js.map +0 -1
  181. package/lib/crypto/olmlib.d.ts +0 -129
  182. package/lib/crypto/olmlib.d.ts.map +0 -1
  183. package/lib/crypto/olmlib.js +0 -492
  184. package/lib/crypto/olmlib.js.map +0 -1
  185. package/lib/crypto/recoverykey.d.ts +0 -2
  186. package/lib/crypto/recoverykey.d.ts.map +0 -1
  187. package/lib/crypto/recoverykey.js +0 -19
  188. package/lib/crypto/recoverykey.js.map +0 -1
  189. package/lib/crypto/store/base.d.ts +0 -252
  190. package/lib/crypto/store/base.d.ts.map +0 -1
  191. package/lib/crypto/store/base.js +0 -64
  192. package/lib/crypto/store/base.js.map +0 -1
  193. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  194. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  195. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  196. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  197. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  198. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  199. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  200. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  201. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  202. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  203. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  204. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  205. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  206. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  207. package/lib/crypto/store/memory-crypto-store.js +0 -622
  208. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  209. package/lib/crypto/verification/Base.d.ts +0 -105
  210. package/lib/crypto/verification/Base.d.ts.map +0 -1
  211. package/lib/crypto/verification/Base.js +0 -372
  212. package/lib/crypto/verification/Base.js.map +0 -1
  213. package/lib/crypto/verification/Error.d.ts +0 -35
  214. package/lib/crypto/verification/Error.d.ts.map +0 -1
  215. package/lib/crypto/verification/Error.js +0 -86
  216. package/lib/crypto/verification/Error.js.map +0 -1
  217. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  218. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  219. package/lib/crypto/verification/IllegalMethod.js +0 -43
  220. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  221. package/lib/crypto/verification/QRCode.d.ts +0 -51
  222. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  223. package/lib/crypto/verification/QRCode.js +0 -277
  224. package/lib/crypto/verification/QRCode.js.map +0 -1
  225. package/lib/crypto/verification/SAS.d.ts +0 -27
  226. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  227. package/lib/crypto/verification/SAS.js +0 -485
  228. package/lib/crypto/verification/SAS.js.map +0 -1
  229. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  230. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  231. package/lib/crypto/verification/SASDecimal.js +0 -34
  232. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  233. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  234. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  235. package/lib/crypto/verification/request/Channel.js +0 -1
  236. package/lib/crypto/verification/request/Channel.js.map +0 -1
  237. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  238. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  239. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  240. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  241. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  242. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  243. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  244. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  245. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  246. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  247. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  248. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  249. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  250. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  251. package/lib/crypto-api/CryptoEvent.js +0 -33
  252. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  253. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  254. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  255. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  256. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  257. package/lib/crypto-api/index.d.ts +0 -978
  258. package/lib/crypto-api/index.d.ts.map +0 -1
  259. package/lib/crypto-api/index.js +0 -304
  260. package/lib/crypto-api/index.js.map +0 -1
  261. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  262. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  263. package/lib/crypto-api/key-passphrase.js +0 -51
  264. package/lib/crypto-api/key-passphrase.js.map +0 -1
  265. package/lib/crypto-api/keybackup.d.ts +0 -88
  266. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  267. package/lib/crypto-api/keybackup.js +0 -1
  268. package/lib/crypto-api/keybackup.js.map +0 -1
  269. package/lib/crypto-api/recovery-key.d.ts +0 -11
  270. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  271. package/lib/crypto-api/recovery-key.js +0 -65
  272. package/lib/crypto-api/recovery-key.js.map +0 -1
  273. package/lib/crypto-api/verification.d.ts +0 -344
  274. package/lib/crypto-api/verification.d.ts.map +0 -1
  275. package/lib/crypto-api/verification.js +0 -91
  276. package/lib/crypto-api/verification.js.map +0 -1
  277. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  278. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  279. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  280. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  281. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  282. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  283. package/lib/rendezvous/RendezvousChannel.js +0 -1
  284. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  285. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  286. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  287. package/lib/rendezvous/RendezvousCode.js +0 -1
  288. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  289. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  290. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  291. package/lib/rendezvous/RendezvousError.js +0 -23
  292. package/lib/rendezvous/RendezvousError.js.map +0 -1
  293. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  294. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  295. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  296. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  297. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  298. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  299. package/lib/rendezvous/RendezvousIntent.js +0 -22
  300. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  301. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  302. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  303. package/lib/rendezvous/RendezvousTransport.js +0 -1
  304. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  305. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  306. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  307. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  308. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  309. package/lib/rendezvous/channels/index.d.ts +0 -2
  310. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  311. package/lib/rendezvous/channels/index.js +0 -18
  312. package/lib/rendezvous/channels/index.js.map +0 -1
  313. package/lib/rendezvous/index.d.ts +0 -10
  314. package/lib/rendezvous/index.d.ts.map +0 -1
  315. package/lib/rendezvous/index.js +0 -23
  316. package/lib/rendezvous/index.js.map +0 -1
  317. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  318. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  319. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  320. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  321. package/lib/rendezvous/transports/index.d.ts +0 -2
  322. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  323. package/lib/rendezvous/transports/index.js +0 -18
  324. package/lib/rendezvous/transports/index.js.map +0 -1
  325. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  326. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  327. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  328. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  329. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  330. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  331. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  332. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  333. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  334. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  335. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  336. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  337. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  338. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  339. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  340. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  341. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  342. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  343. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  344. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  345. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  346. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  347. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  348. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  349. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  350. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  351. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  352. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  353. package/lib/rust-crypto/backup.d.ts +0 -254
  354. package/lib/rust-crypto/backup.d.ts.map +0 -1
  355. package/lib/rust-crypto/backup.js +0 -837
  356. package/lib/rust-crypto/backup.js.map +0 -1
  357. package/lib/rust-crypto/constants.d.ts +0 -3
  358. package/lib/rust-crypto/constants.d.ts.map +0 -1
  359. package/lib/rust-crypto/constants.js +0 -19
  360. package/lib/rust-crypto/constants.js.map +0 -1
  361. package/lib/rust-crypto/device-converter.d.ts +0 -28
  362. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  363. package/lib/rust-crypto/device-converter.js +0 -123
  364. package/lib/rust-crypto/device-converter.js.map +0 -1
  365. package/lib/rust-crypto/index.d.ts +0 -61
  366. package/lib/rust-crypto/index.d.ts.map +0 -1
  367. package/lib/rust-crypto/index.js +0 -152
  368. package/lib/rust-crypto/index.js.map +0 -1
  369. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  370. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  371. package/lib/rust-crypto/libolm_migration.js +0 -459
  372. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  373. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  374. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  375. package/lib/rust-crypto/rust-crypto.js +0 -2016
  376. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  377. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  378. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  379. package/lib/rust-crypto/secret-storage.js +0 -63
  380. package/lib/rust-crypto/secret-storage.js.map +0 -1
  381. package/lib/rust-crypto/verification.d.ts +0 -319
  382. package/lib/rust-crypto/verification.d.ts.map +0 -1
  383. package/lib/rust-crypto/verification.js +0 -816
  384. package/lib/rust-crypto/verification.js.map +0 -1
  385. package/lib/secret-storage.d.ts +0 -370
  386. package/lib/secret-storage.d.ts.map +0 -1
  387. package/lib/secret-storage.js +0 -466
  388. package/lib/secret-storage.js.map +0 -1
  389. package/src/@types/crypto.ts +0 -73
  390. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  391. package/src/common-crypto/CryptoBackend.ts +0 -302
  392. package/src/common-crypto/README.md +0 -4
  393. package/src/common-crypto/key-passphrase.ts +0 -43
  394. package/src/crypto/CrossSigning.ts +0 -773
  395. package/src/crypto/DeviceList.ts +0 -989
  396. package/src/crypto/EncryptionSetup.ts +0 -351
  397. package/src/crypto/OlmDevice.ts +0 -1500
  398. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  399. package/src/crypto/RoomList.ts +0 -70
  400. package/src/crypto/SecretSharing.ts +0 -240
  401. package/src/crypto/SecretStorage.ts +0 -136
  402. package/src/crypto/aes.ts +0 -23
  403. package/src/crypto/algorithms/base.ts +0 -236
  404. package/src/crypto/algorithms/index.ts +0 -20
  405. package/src/crypto/algorithms/megolm.ts +0 -2216
  406. package/src/crypto/algorithms/olm.ts +0 -381
  407. package/src/crypto/api.ts +0 -70
  408. package/src/crypto/backup.ts +0 -922
  409. package/src/crypto/crypto.ts +0 -18
  410. package/src/crypto/dehydration.ts +0 -272
  411. package/src/crypto/device-converter.ts +0 -45
  412. package/src/crypto/deviceinfo.ts +0 -158
  413. package/src/crypto/index.ts +0 -4414
  414. package/src/crypto/key_passphrase.ts +0 -42
  415. package/src/crypto/keybackup.ts +0 -47
  416. package/src/crypto/olmlib.ts +0 -539
  417. package/src/crypto/recoverykey.ts +0 -18
  418. package/src/crypto/store/base.ts +0 -348
  419. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  420. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  421. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  422. package/src/crypto/store/memory-crypto-store.ts +0 -680
  423. package/src/crypto/verification/Base.ts +0 -409
  424. package/src/crypto/verification/Error.ts +0 -76
  425. package/src/crypto/verification/IllegalMethod.ts +0 -50
  426. package/src/crypto/verification/QRCode.ts +0 -310
  427. package/src/crypto/verification/SAS.ts +0 -494
  428. package/src/crypto/verification/SASDecimal.ts +0 -37
  429. package/src/crypto/verification/request/Channel.ts +0 -34
  430. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  431. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  432. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  433. package/src/crypto-api/CryptoEvent.ts +0 -93
  434. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  435. package/src/crypto-api/index.ts +0 -1175
  436. package/src/crypto-api/key-passphrase.ts +0 -58
  437. package/src/crypto-api/keybackup.ts +0 -115
  438. package/src/crypto-api/recovery-key.ts +0 -69
  439. package/src/crypto-api/verification.ts +0 -408
  440. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  441. package/src/rendezvous/RendezvousChannel.ts +0 -48
  442. package/src/rendezvous/RendezvousCode.ts +0 -25
  443. package/src/rendezvous/RendezvousError.ts +0 -26
  444. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  445. package/src/rendezvous/RendezvousIntent.ts +0 -20
  446. package/src/rendezvous/RendezvousTransport.ts +0 -58
  447. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  448. package/src/rendezvous/channels/index.ts +0 -17
  449. package/src/rendezvous/index.ts +0 -25
  450. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  451. package/src/rendezvous/transports/index.ts +0 -17
  452. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  453. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  454. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  455. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  456. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  457. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  458. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  459. package/src/rust-crypto/backup.ts +0 -881
  460. package/src/rust-crypto/constants.ts +0 -18
  461. package/src/rust-crypto/device-converter.ts +0 -128
  462. package/src/rust-crypto/index.ts +0 -237
  463. package/src/rust-crypto/libolm_migration.ts +0 -530
  464. package/src/rust-crypto/rust-crypto.ts +0 -2205
  465. package/src/rust-crypto/secret-storage.ts +0 -60
  466. package/src/rust-crypto/verification.ts +0 -830
  467. package/src/secret-storage.ts +0 -693
@@ -1,270 +0,0 @@
1
- /*
2
- Copyright 2024 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- import {
18
- Curve25519PublicKey,
19
- Ecies,
20
- EstablishedEcies,
21
- QrCodeData,
22
- QrCodeMode,
23
- } from "@matrix-org/matrix-sdk-crypto-wasm";
24
-
25
- import {
26
- ClientRendezvousFailureReason,
27
- MSC4108FailureReason,
28
- MSC4108Payload,
29
- RendezvousError,
30
- RendezvousFailureListener,
31
- } from "../index.ts";
32
- import { MSC4108RendezvousSession } from "../transports/MSC4108RendezvousSession.ts";
33
- import { logger } from "../../logger.ts";
34
-
35
- /**
36
- * Prototype of the unstable [MSC4108](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)
37
- * secure rendezvous session protocol.
38
- * @experimental Note that this is UNSTABLE and may have breaking changes without notice.
39
- * Imports @matrix-org/matrix-sdk-crypto-wasm so should be async-imported to avoid bundling the WASM into the main bundle.
40
- */
41
- export class MSC4108SecureChannel {
42
- private readonly secureChannel: Ecies;
43
- private establishedChannel?: EstablishedEcies;
44
- private connected = false;
45
-
46
- public constructor(
47
- private rendezvousSession: MSC4108RendezvousSession,
48
- private theirPublicKey?: Curve25519PublicKey,
49
- public onFailure?: RendezvousFailureListener,
50
- ) {
51
- this.secureChannel = new Ecies();
52
- }
53
-
54
- /**
55
- * Generate a QR code for the current session.
56
- * @param mode the mode to generate the QR code in, either `Login` or `Reciprocate`.
57
- * @param serverName the name of the homeserver to connect to, as defined by server discovery in the spec, required for `Reciprocate` mode.
58
- */
59
- public async generateCode(mode: QrCodeMode.Login): Promise<Uint8Array>;
60
- public async generateCode(mode: QrCodeMode.Reciprocate, serverName: string): Promise<Uint8Array>;
61
- public async generateCode(mode: QrCodeMode, serverName?: string): Promise<Uint8Array> {
62
- const { url } = this.rendezvousSession;
63
-
64
- if (!url) {
65
- throw new Error("No rendezvous session URL");
66
- }
67
-
68
- return new QrCodeData(
69
- this.secureChannel.public_key(),
70
- url,
71
- mode === QrCodeMode.Reciprocate ? serverName : undefined,
72
- ).toBytes();
73
- }
74
-
75
- /**
76
- * Returns the check code for the secure channel or undefined if not generated yet.
77
- */
78
- public getCheckCode(): string | undefined {
79
- const x = this.establishedChannel?.check_code();
80
-
81
- if (!x) {
82
- return undefined;
83
- }
84
- return Array.from(x.as_bytes())
85
- .map((b) => `${b % 10}`)
86
- .join("");
87
- }
88
-
89
- /**
90
- * Connects and establishes a secure channel with the other device.
91
- */
92
- public async connect(): Promise<void> {
93
- if (this.connected) {
94
- throw new Error("Channel already connected");
95
- }
96
-
97
- if (this.theirPublicKey) {
98
- // We are the scanning device
99
- const result = this.secureChannel.establish_outbound_channel(
100
- this.theirPublicKey,
101
- "MATRIX_QR_CODE_LOGIN_INITIATE",
102
- );
103
- this.establishedChannel = result.channel;
104
-
105
- /*
106
- Secure Channel step 4. Device S sends the initial message
107
-
108
- Nonce := 0
109
- SH := ECDH(Ss, Gp)
110
- EncKey := HKDF_SHA256(SH, "MATRIX_QR_CODE_LOGIN|" || Gp || "|" || Sp, 0, 32)
111
- TaggedCiphertext := ChaCha20Poly1305_Encrypt(EncKey, Nonce, "MATRIX_QR_CODE_LOGIN_INITIATE")
112
- Nonce := Nonce + 2
113
- LoginInitiateMessage := UnpaddedBase64(TaggedCiphertext) || "|" || UnpaddedBase64(Sp)
114
- */
115
- {
116
- logger.info("Sending LoginInitiateMessage");
117
- await this.rendezvousSession.send(result.initial_message);
118
- }
119
-
120
- /*
121
- Secure Channel step 6. Verification by Device S
122
-
123
- Nonce_G := 1
124
- (TaggedCiphertext, Sp) := Unpack(Message)
125
- Plaintext := ChaCha20Poly1305_Decrypt(EncKey, Nonce_G, TaggedCiphertext)
126
- Nonce_G := Nonce_G + 2
127
-
128
- unless Plaintext == "MATRIX_QR_CODE_LOGIN_OK":
129
- FAIL
130
- */
131
- {
132
- logger.info("Waiting for LoginOkMessage");
133
- const ciphertext = await this.rendezvousSession.receive();
134
-
135
- if (!ciphertext) {
136
- throw new RendezvousError(
137
- "No response from other device",
138
- MSC4108FailureReason.UnexpectedMessageReceived,
139
- );
140
- }
141
- const candidateLoginOkMessage = await this.decrypt(ciphertext);
142
-
143
- if (candidateLoginOkMessage !== "MATRIX_QR_CODE_LOGIN_OK") {
144
- throw new RendezvousError(
145
- "Invalid response from other device",
146
- ClientRendezvousFailureReason.InsecureChannelDetected,
147
- );
148
- }
149
-
150
- // Step 6 is now complete. We trust the channel
151
- }
152
- } else {
153
- /*
154
- Secure Channel step 5. Device G confirms
155
-
156
- Nonce_S := 0
157
- (TaggedCiphertext, Sp) := Unpack(LoginInitiateMessage)
158
- SH := ECDH(Gs, Sp)
159
- EncKey := HKDF_SHA256(SH, "MATRIX_QR_CODE_LOGIN|" || Gp || "|" || Sp, 0, 32)
160
- Plaintext := ChaCha20Poly1305_Decrypt(EncKey, Nonce_S, TaggedCiphertext)
161
- Nonce_S := Nonce_S + 2
162
- */
163
- // wait for the other side to send us their public key
164
- logger.info("Waiting for LoginInitiateMessage");
165
- const loginInitiateMessage = await this.rendezvousSession.receive();
166
- if (!loginInitiateMessage) {
167
- throw new Error("No response from other device");
168
- }
169
-
170
- const { channel, message: candidateLoginInitiateMessage } =
171
- this.secureChannel.establish_inbound_channel(loginInitiateMessage);
172
- this.establishedChannel = channel;
173
-
174
- if (candidateLoginInitiateMessage !== "MATRIX_QR_CODE_LOGIN_INITIATE") {
175
- throw new RendezvousError(
176
- "Invalid response from other device",
177
- ClientRendezvousFailureReason.InsecureChannelDetected,
178
- );
179
- }
180
- logger.info("LoginInitiateMessage received");
181
-
182
- logger.info("Sending LoginOkMessage");
183
- const loginOkMessage = await this.encrypt("MATRIX_QR_CODE_LOGIN_OK");
184
- await this.rendezvousSession.send(loginOkMessage);
185
-
186
- // Step 5 is complete. We don't yet trust the channel
187
-
188
- // next step will be for the user to confirm the check code on the other device
189
- }
190
-
191
- this.connected = true;
192
- }
193
-
194
- private async decrypt(ciphertext: string): Promise<string> {
195
- if (!this.establishedChannel) {
196
- throw new Error("Channel closed");
197
- }
198
-
199
- return this.establishedChannel.decrypt(ciphertext);
200
- }
201
-
202
- private async encrypt(plaintext: string): Promise<string> {
203
- if (!this.establishedChannel) {
204
- throw new Error("Channel closed");
205
- }
206
-
207
- return this.establishedChannel.encrypt(plaintext);
208
- }
209
-
210
- /**
211
- * Sends a payload securely to the other device.
212
- * @param payload the payload to encrypt and send
213
- */
214
- public async secureSend<T extends MSC4108Payload>(payload: T): Promise<void> {
215
- if (!this.connected) {
216
- throw new Error("Channel closed");
217
- }
218
-
219
- const stringifiedPayload = JSON.stringify(payload);
220
- logger.debug(`=> {"type": ${JSON.stringify(payload.type)}, ...}`);
221
-
222
- await this.rendezvousSession.send(await this.encrypt(stringifiedPayload));
223
- }
224
-
225
- /**
226
- * Receives an encrypted payload from the other device and decrypts it.
227
- */
228
- public async secureReceive<T extends MSC4108Payload>(): Promise<Partial<T> | undefined> {
229
- if (!this.establishedChannel) {
230
- throw new Error("Channel closed");
231
- }
232
-
233
- const ciphertext = await this.rendezvousSession.receive();
234
- if (!ciphertext) {
235
- return undefined;
236
- }
237
- const plaintext = await this.decrypt(ciphertext);
238
- const json = JSON.parse(plaintext);
239
-
240
- logger.debug(`<= {"type": ${JSON.stringify(json.type)}, ...}`);
241
- return json as Partial<T> | undefined;
242
- }
243
-
244
- /**
245
- * Closes the secure channel.
246
- */
247
- public async close(): Promise<void> {
248
- await this.rendezvousSession.close();
249
- }
250
-
251
- /**
252
- * Cancels the secure channel.
253
- * @param reason the reason for the cancellation
254
- */
255
- public async cancel(reason: MSC4108FailureReason | ClientRendezvousFailureReason): Promise<void> {
256
- try {
257
- await this.rendezvousSession.cancel(reason);
258
- this.onFailure?.(reason);
259
- } finally {
260
- await this.close();
261
- }
262
- }
263
-
264
- /**
265
- * Returns whether the rendezvous session has been cancelled.
266
- */
267
- public get cancelled(): boolean {
268
- return this.rendezvousSession.cancelled;
269
- }
270
- }
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright 2022 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- export * from "./MSC4108SecureChannel.ts";
@@ -1,25 +0,0 @@
1
- /*
2
- Copyright 2022 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- export * from "./MSC4108SignInWithQR.ts";
18
- export type * from "./RendezvousChannel.ts";
19
- export type * from "./RendezvousCode.ts";
20
- export * from "./RendezvousError.ts";
21
- export * from "./RendezvousFailureReason.ts";
22
- export * from "./RendezvousIntent.ts";
23
- export type * from "./RendezvousTransport.ts";
24
- export * from "./transports/index.ts";
25
- export * from "./channels/index.ts";
@@ -1,270 +0,0 @@
1
- /*
2
- Copyright 2024 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- import { logger } from "../../logger.ts";
18
- import { sleep } from "../../utils.ts";
19
- import { ClientRendezvousFailureReason, MSC4108FailureReason, RendezvousFailureListener } from "../index.ts";
20
- import { MatrixClient, Method } from "../../matrix.ts";
21
- import { ClientPrefix } from "../../http-api/index.ts";
22
-
23
- /**
24
- * Prototype of the unstable [MSC4108](https://github.com/matrix-org/matrix-spec-proposals/pull/4108)
25
- * insecure rendezvous session protocol.
26
- * @experimental Note that this is UNSTABLE and may have breaking changes without notice.
27
- */
28
- export class MSC4108RendezvousSession {
29
- public url?: string;
30
- private readonly client?: MatrixClient;
31
- private readonly fallbackRzServer?: string;
32
- private readonly fetchFn?: typeof globalThis.fetch;
33
- private readonly onFailure?: RendezvousFailureListener;
34
- private etag?: string;
35
- private expiresAt?: Date;
36
- private expiresTimer?: ReturnType<typeof setTimeout>;
37
- private _cancelled = false;
38
- private _ready = false;
39
-
40
- public constructor({
41
- onFailure,
42
- url,
43
- fetchFn,
44
- }: {
45
- fetchFn?: typeof globalThis.fetch;
46
- onFailure?: RendezvousFailureListener;
47
- url: string;
48
- });
49
- public constructor({
50
- onFailure,
51
- client,
52
- fallbackRzServer,
53
- fetchFn,
54
- }: {
55
- fetchFn?: typeof globalThis.fetch;
56
- onFailure?: RendezvousFailureListener;
57
- client?: MatrixClient;
58
- fallbackRzServer?: string;
59
- });
60
- public constructor({
61
- fetchFn,
62
- onFailure,
63
- url,
64
- client,
65
- fallbackRzServer,
66
- }: {
67
- fetchFn?: typeof globalThis.fetch;
68
- onFailure?: RendezvousFailureListener;
69
- url?: string;
70
- client?: MatrixClient;
71
- fallbackRzServer?: string;
72
- }) {
73
- this.fetchFn = fetchFn;
74
- this.onFailure = onFailure;
75
- this.client = client;
76
- this.fallbackRzServer = fallbackRzServer;
77
- this.url = url;
78
- }
79
-
80
- /**
81
- * Returns whether the channel is ready to be used.
82
- */
83
- public get ready(): boolean {
84
- return this._ready;
85
- }
86
-
87
- /**
88
- * Returns whether the channel has been cancelled.
89
- */
90
- public get cancelled(): boolean {
91
- return this._cancelled;
92
- }
93
-
94
- private fetch(resource: URL | string, options?: RequestInit): ReturnType<typeof globalThis.fetch> {
95
- if (this.fetchFn) {
96
- return this.fetchFn(resource, options);
97
- }
98
- return globalThis.fetch(resource, options);
99
- }
100
-
101
- private async getPostEndpoint(): Promise<string | undefined> {
102
- if (this.client) {
103
- try {
104
- if (await this.client.doesServerSupportUnstableFeature("org.matrix.msc4108")) {
105
- return this.client.http
106
- .getUrl("/org.matrix.msc4108/rendezvous", undefined, ClientPrefix.Unstable)
107
- .toString();
108
- }
109
- } catch (err) {
110
- logger.warn("Failed to get unstable features", err);
111
- }
112
- }
113
-
114
- return this.fallbackRzServer;
115
- }
116
-
117
- /**
118
- * Sends data via the rendezvous channel.
119
- * @param data the payload to send
120
- */
121
- public async send(data: string): Promise<void> {
122
- if (this._cancelled) {
123
- return;
124
- }
125
- const method = this.url ? Method.Put : Method.Post;
126
- const uri = this.url ?? (await this.getPostEndpoint());
127
-
128
- if (!uri) {
129
- throw new Error("Invalid rendezvous URI");
130
- }
131
-
132
- const headers: Record<string, string> = { "content-type": "text/plain" };
133
-
134
- // if we didn't create the rendezvous channel, we need to fetch the first etag if needed
135
- if (!this.etag && this.url) {
136
- await this.receive();
137
- }
138
-
139
- if (this.etag) {
140
- headers["if-match"] = this.etag;
141
- }
142
-
143
- logger.info(`=> ${method} ${uri} with ${data} if-match: ${this.etag}`);
144
-
145
- const res = await this.fetch(uri, { method, headers, body: data, redirect: "follow" });
146
- if (res.status === 404) {
147
- return this.cancel(ClientRendezvousFailureReason.Unknown);
148
- }
149
- this.etag = res.headers.get("etag") ?? undefined;
150
-
151
- logger.info(`Received etag: ${this.etag}`);
152
-
153
- if (method === Method.Post) {
154
- const expires = res.headers.get("expires");
155
- if (expires) {
156
- if (this.expiresTimer) {
157
- clearTimeout(this.expiresTimer);
158
- this.expiresTimer = undefined;
159
- }
160
- this.expiresAt = new Date(expires);
161
- this.expiresTimer = setTimeout(() => {
162
- this.expiresTimer = undefined;
163
- this.cancel(ClientRendezvousFailureReason.Expired);
164
- }, this.expiresAt.getTime() - Date.now());
165
- }
166
- // MSC4108: we expect a JSON response with a rendezvous URL
167
- const json = await res.json();
168
- if (typeof json.url !== "string") {
169
- throw new Error("No rendezvous URL given");
170
- }
171
- this.url = json.url;
172
- this._ready = true;
173
- }
174
- }
175
-
176
- /**
177
- * Receives data from the rendezvous channel.
178
- * @return the returned promise won't resolve until new data is acquired or the channel is closed either by the server or the other party.
179
- */
180
- public async receive(): Promise<string | undefined> {
181
- if (!this.url) {
182
- throw new Error("Rendezvous not set up");
183
- }
184
- // eslint-disable-next-line no-constant-condition
185
- while (true) {
186
- if (this._cancelled) {
187
- return undefined;
188
- }
189
-
190
- const headers: Record<string, string> = {};
191
- if (this.etag) {
192
- headers["if-none-match"] = this.etag;
193
- }
194
-
195
- logger.info(`=> GET ${this.url} if-none-match: ${this.etag}`);
196
- const poll = await this.fetch(this.url, { method: Method.Get, headers });
197
-
198
- if (poll.status === 404) {
199
- await this.cancel(ClientRendezvousFailureReason.Unknown);
200
- return undefined;
201
- }
202
-
203
- // rely on server expiring the channel rather than checking ourselves
204
-
205
- const etag = poll.headers.get("etag") ?? undefined;
206
- if (poll.headers.get("content-type") !== "text/plain") {
207
- this.etag = etag;
208
- } else if (poll.status === 200) {
209
- if (!etag) {
210
- // Some browsers & extensions block the ETag header for anti-tracking purposes
211
- // We try and detect this so the client can give the user a somewhat helpful message
212
- await this.cancel(ClientRendezvousFailureReason.ETagMissing);
213
- return undefined;
214
- }
215
-
216
- this.etag = etag;
217
- const text = await poll.text();
218
- logger.info(`Received: ${text} with etag ${this.etag}`);
219
- return text;
220
- }
221
- await sleep(1000);
222
- }
223
- }
224
-
225
- /**
226
- * Cancels the rendezvous channel.
227
- * If the reason is user_declined or user_cancelled then the channel will also be closed.
228
- * @param reason the reason to cancel with
229
- */
230
- public async cancel(reason: MSC4108FailureReason | ClientRendezvousFailureReason): Promise<void> {
231
- if (this._cancelled) return;
232
- if (this.expiresTimer) {
233
- clearTimeout(this.expiresTimer);
234
- this.expiresTimer = undefined;
235
- }
236
-
237
- if (
238
- reason === ClientRendezvousFailureReason.Unknown &&
239
- this.expiresAt &&
240
- this.expiresAt.getTime() < Date.now()
241
- ) {
242
- reason = ClientRendezvousFailureReason.Expired;
243
- }
244
-
245
- this._cancelled = true;
246
- this._ready = false;
247
- this.onFailure?.(reason);
248
-
249
- if (reason === ClientRendezvousFailureReason.UserDeclined || reason === MSC4108FailureReason.UserCancelled) {
250
- await this.close();
251
- }
252
- }
253
-
254
- /**
255
- * Closes the rendezvous channel.
256
- */
257
- public async close(): Promise<void> {
258
- if (this.expiresTimer) {
259
- clearTimeout(this.expiresTimer);
260
- this.expiresTimer = undefined;
261
- }
262
-
263
- if (!this.url) return;
264
- try {
265
- await this.fetch(this.url, { method: Method.Delete });
266
- } catch (e) {
267
- logger.warn(e);
268
- }
269
- }
270
- }
@@ -1,17 +0,0 @@
1
- /*
2
- Copyright 2022 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- export * from "./MSC4108RendezvousSession.ts";