@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 +1 @@
1
- {"version":3,"file":"relations-container.js","names":["Relations","EventStatus","MatrixEventEvent","RelationsContainer","constructor","client","room","_defineProperty","Map","getChildEventsForEvent","eventId","relationType","eventType","_this$relations$get","relations","get","getAllChildEventsForEvent","parentEventId","_this$relations$get2","relationsForEvent","events","relationsRecord","values","push","getRelations","aggregateParentEvent","event","getId","relationsWithRelType","relationsWithEventType","setTargetEvent","aggregateChildEvent","timelineSet","isRedacted","status","CANCELLED","relation","getRelation","onEventDecrypted","isDecryptionFailure","once","Decrypted","isBeingDecrypted","shouldAttemptDecryption","event_id","relatesToEventId","rel_type","getType","set","_this$room","_ref","_timelineSet$findEven","relatesToEvent","findEventById","getPendingEvent","addEvent"],"sources":["../../src/models/relations-container.ts"],"sourcesContent":["/*\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { Relations } from \"./relations.ts\";\nimport { EventType, RelationType } from \"../@types/event.ts\";\nimport { EventStatus, MatrixEvent, MatrixEventEvent } from \"./event.ts\";\nimport { EventTimelineSet } from \"./event-timeline-set.ts\";\nimport { MatrixClient } from \"../client.ts\";\nimport { Room } from \"./room.ts\";\n\nexport class RelationsContainer {\n // A tree of objects to access a set of related children for an event, as in:\n // this.relations.get(parentEventId).get(relationType).get(relationEventType)\n private relations = new Map<string, Map<RelationType | string, Map<EventType | string, Relations>>>();\n\n public constructor(\n private readonly client: MatrixClient,\n private readonly room?: Room,\n ) {}\n\n /**\n * Get a collection of child events to a given event in this timeline set.\n *\n * @param eventId - The ID of the event that you'd like to access child events for.\n * For example, with annotations, this would be the ID of the event being annotated.\n * @param relationType - The type of relationship involved, such as \"m.annotation\", \"m.reference\", \"m.replace\", etc.\n * @param eventType - The relation event's type, such as \"m.reaction\", etc.\n * @throws If `eventId</code>, <code>relationType</code> or <code>eventType`\n * are not valid.\n *\n * @returns\n * A container for relation events or undefined if there are no relation events for\n * the relationType.\n */\n public getChildEventsForEvent(\n eventId: string,\n relationType: RelationType | string,\n eventType: EventType | string,\n ): Relations | undefined {\n return this.relations.get(eventId)?.get(relationType)?.get(eventType);\n }\n\n public getAllChildEventsForEvent(parentEventId: string): MatrixEvent[] {\n const relationsForEvent =\n this.relations.get(parentEventId) ?? new Map<RelationType | string, Map<EventType | string, Relations>>();\n const events: MatrixEvent[] = [];\n for (const relationsRecord of relationsForEvent.values()) {\n for (const relations of relationsRecord.values()) {\n events.push(...relations.getRelations());\n }\n }\n return events;\n }\n\n /**\n * Set an event as the target event if any Relations exist for it already.\n * Child events can point to other child events as their parent, so this method may be\n * called for events which are also logically child events.\n *\n * @param event - The event to check as relation target.\n */\n public aggregateParentEvent(event: MatrixEvent): void {\n const relationsForEvent = this.relations.get(event.getId()!);\n if (!relationsForEvent) return;\n\n for (const relationsWithRelType of relationsForEvent.values()) {\n for (const relationsWithEventType of relationsWithRelType.values()) {\n relationsWithEventType.setTargetEvent(event);\n }\n }\n }\n\n /**\n * Add relation events to the relevant relation collection.\n *\n * @param event - The new child event to be aggregated.\n * @param timelineSet - The event timeline set within which to search for the related event if any.\n */\n public aggregateChildEvent(event: MatrixEvent, timelineSet?: EventTimelineSet): void {\n if (event.isRedacted() || event.status === EventStatus.CANCELLED) {\n return;\n }\n\n const relation = event.getRelation();\n if (!relation) return;\n\n const onEventDecrypted = (): void => {\n if (event.isDecryptionFailure()) {\n // This could for example happen if the encryption keys are not yet available.\n // The event may still be decrypted later. Register the listener again.\n event.once(MatrixEventEvent.Decrypted, onEventDecrypted);\n return;\n }\n\n this.aggregateChildEvent(event, timelineSet);\n };\n\n // If the event is currently encrypted, wait until it has been decrypted.\n if (event.isBeingDecrypted() || event.shouldAttemptDecryption()) {\n event.once(MatrixEventEvent.Decrypted, onEventDecrypted);\n return;\n }\n\n const { event_id: relatesToEventId, rel_type: relationType } = relation;\n const eventType = event.getType();\n\n let relationsForEvent = this.relations.get(relatesToEventId!);\n if (!relationsForEvent) {\n relationsForEvent = new Map<RelationType | string, Map<EventType | string, Relations>>();\n this.relations.set(relatesToEventId!, relationsForEvent);\n }\n\n let relationsWithRelType = relationsForEvent.get(relationType!);\n if (!relationsWithRelType) {\n relationsWithRelType = new Map<EventType | string, Relations>();\n relationsForEvent.set(relationType!, relationsWithRelType);\n }\n\n let relationsWithEventType = relationsWithRelType.get(eventType);\n if (!relationsWithEventType) {\n relationsWithEventType = new Relations(relationType!, eventType, this.client);\n relationsWithRelType.set(eventType, relationsWithEventType);\n\n const room = this.room ?? timelineSet?.room;\n const relatesToEvent =\n timelineSet?.findEventById(relatesToEventId!) ??\n room?.findEventById(relatesToEventId!) ??\n room?.getPendingEvent(relatesToEventId!);\n if (relatesToEvent) {\n relationsWithEventType.setTargetEvent(relatesToEvent);\n }\n }\n\n relationsWithEventType.addEvent(event);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"relations-container.js","names":["Relations","EventStatus","MatrixEventEvent","RelationsContainer","constructor","client","room","_defineProperty","Map","getChildEventsForEvent","eventId","relationType","eventType","_this$relations$get","relations","get","getAllChildEventsForEvent","parentEventId","_this$relations$get2","relationsForEvent","events","relationsRecord","values","push","getRelations","aggregateParentEvent","event","getId","relationsWithRelType","relationsWithEventType","setTargetEvent","aggregateChildEvent","timelineSet","isRedacted","status","CANCELLED","relation","getRelation","onEventDecrypted","shouldAttemptDecryption","once","Decrypted","event_id","relatesToEventId","rel_type","getType","set","_this$room","_ref","_timelineSet$findEven","relatesToEvent","findEventById","getPendingEvent","addEvent"],"sources":["../../src/models/relations-container.ts"],"sourcesContent":["/*\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { Relations } from \"./relations.ts\";\nimport { EventType, RelationType } from \"../@types/event.ts\";\nimport { EventStatus, MatrixEvent, MatrixEventEvent } from \"./event.ts\";\nimport { EventTimelineSet } from \"./event-timeline-set.ts\";\nimport { MatrixClient } from \"../client.ts\";\nimport { Room } from \"./room.ts\";\n\nexport class RelationsContainer {\n // A tree of objects to access a set of related children for an event, as in:\n // this.relations.get(parentEventId).get(relationType).get(relationEventType)\n private relations = new Map<string, Map<RelationType | string, Map<EventType | string, Relations>>>();\n\n public constructor(\n private readonly client: MatrixClient,\n private readonly room?: Room,\n ) {}\n\n /**\n * Get a collection of child events to a given event in this timeline set.\n *\n * @param eventId - The ID of the event that you'd like to access child events for.\n * For example, with annotations, this would be the ID of the event being annotated.\n * @param relationType - The type of relationship involved, such as \"m.annotation\", \"m.reference\", \"m.replace\", etc.\n * @param eventType - The relation event's type, such as \"m.reaction\", etc.\n * @throws If `eventId</code>, <code>relationType</code> or <code>eventType`\n * are not valid.\n *\n * @returns\n * A container for relation events or undefined if there are no relation events for\n * the relationType.\n */\n public getChildEventsForEvent(\n eventId: string,\n relationType: RelationType | string,\n eventType: EventType | string,\n ): Relations | undefined {\n return this.relations.get(eventId)?.get(relationType)?.get(eventType);\n }\n\n public getAllChildEventsForEvent(parentEventId: string): MatrixEvent[] {\n const relationsForEvent =\n this.relations.get(parentEventId) ?? new Map<RelationType | string, Map<EventType | string, Relations>>();\n const events: MatrixEvent[] = [];\n for (const relationsRecord of relationsForEvent.values()) {\n for (const relations of relationsRecord.values()) {\n events.push(...relations.getRelations());\n }\n }\n return events;\n }\n\n /**\n * Set an event as the target event if any Relations exist for it already.\n * Child events can point to other child events as their parent, so this method may be\n * called for events which are also logically child events.\n *\n * @param event - The event to check as relation target.\n */\n public aggregateParentEvent(event: MatrixEvent): void {\n const relationsForEvent = this.relations.get(event.getId()!);\n if (!relationsForEvent) return;\n\n for (const relationsWithRelType of relationsForEvent.values()) {\n for (const relationsWithEventType of relationsWithRelType.values()) {\n relationsWithEventType.setTargetEvent(event);\n }\n }\n }\n\n /**\n * Add relation events to the relevant relation collection.\n *\n * @param event - The new child event to be aggregated.\n * @param timelineSet - The event timeline set within which to search for the related event if any.\n */\n public aggregateChildEvent(event: MatrixEvent, timelineSet?: EventTimelineSet): void {\n if (event.isRedacted() || event.status === EventStatus.CANCELLED) {\n return;\n }\n\n const relation = event.getRelation();\n if (!relation) return;\n\n const onEventDecrypted = (): void => {\n this.aggregateChildEvent(event, timelineSet);\n };\n\n // If the event is currently encrypted, wait until it has been decrypted.\n if (event.shouldAttemptDecryption()) {\n event.once(MatrixEventEvent.Decrypted, onEventDecrypted);\n return;\n }\n\n const { event_id: relatesToEventId, rel_type: relationType } = relation;\n const eventType = event.getType();\n\n let relationsForEvent = this.relations.get(relatesToEventId!);\n if (!relationsForEvent) {\n relationsForEvent = new Map<RelationType | string, Map<EventType | string, Relations>>();\n this.relations.set(relatesToEventId!, relationsForEvent);\n }\n\n let relationsWithRelType = relationsForEvent.get(relationType!);\n if (!relationsWithRelType) {\n relationsWithRelType = new Map<EventType | string, Relations>();\n relationsForEvent.set(relationType!, relationsWithRelType);\n }\n\n let relationsWithEventType = relationsWithRelType.get(eventType);\n if (!relationsWithEventType) {\n relationsWithEventType = new Relations(relationType!, eventType, this.client);\n relationsWithRelType.set(eventType, relationsWithEventType);\n\n const room = this.room ?? timelineSet?.room;\n const relatesToEvent =\n timelineSet?.findEventById(relatesToEventId!) ??\n room?.findEventById(relatesToEventId!) ??\n room?.getPendingEvent(relatesToEventId!);\n if (relatesToEvent) {\n relationsWithEventType.setTargetEvent(relatesToEvent);\n }\n }\n\n relationsWithEventType.addEvent(event);\n }\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,SAAS,QAAQ,gBAAgB;AAE1C,SAASC,WAAW,EAAeC,gBAAgB,QAAQ,YAAY;AAKvE,OAAO,MAAMC,kBAAkB,CAAC;EAKrBC,WAAWA,CACGC,MAAoB,EACpBC,IAAW,EAC9B;IAAA,KAFmBD,MAAoB,GAApBA,MAAoB;IAAA,KACpBC,IAAW,GAAXA,IAAW;IANhC;IACA;IAAAC,eAAA,oBACoB,IAAIC,GAAG,CAAyE,CAAC;EAKlG;;EAEH;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACWC,sBAAsBA,CACzBC,OAAe,EACfC,YAAmC,EACnCC,SAA6B,EACR;IAAA,IAAAC,mBAAA;IACrB,QAAAA,mBAAA,GAAO,IAAI,CAACC,SAAS,CAACC,GAAG,CAACL,OAAO,CAAC,cAAAG,mBAAA,gBAAAA,mBAAA,GAA3BA,mBAAA,CAA6BE,GAAG,CAACJ,YAAY,CAAC,cAAAE,mBAAA,uBAA9CA,mBAAA,CAAgDE,GAAG,CAACH,SAAS,CAAC;EACzE;EAEOI,yBAAyBA,CAACC,aAAqB,EAAiB;IAAA,IAAAC,oBAAA;IACnE,IAAMC,iBAAiB,IAAAD,oBAAA,GACnB,IAAI,CAACJ,SAAS,CAACC,GAAG,CAACE,aAAa,CAAC,cAAAC,oBAAA,cAAAA,oBAAA,GAAI,IAAIV,GAAG,CAA4D,CAAC;IAC7G,IAAMY,MAAqB,GAAG,EAAE;IAChC,KAAK,IAAMC,eAAe,IAAIF,iBAAiB,CAACG,MAAM,CAAC,CAAC,EAAE;MACtD,KAAK,IAAMR,SAAS,IAAIO,eAAe,CAACC,MAAM,CAAC,CAAC,EAAE;QAC9CF,MAAM,CAACG,IAAI,CAAC,GAAGT,SAAS,CAACU,YAAY,CAAC,CAAC,CAAC;MAC5C;IACJ;IACA,OAAOJ,MAAM;EACjB;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACWK,oBAAoBA,CAACC,KAAkB,EAAQ;IAClD,IAAMP,iBAAiB,GAAG,IAAI,CAACL,SAAS,CAACC,GAAG,CAACW,KAAK,CAACC,KAAK,CAAC,CAAE,CAAC;IAC5D,IAAI,CAACR,iBAAiB,EAAE;IAExB,KAAK,IAAMS,oBAAoB,IAAIT,iBAAiB,CAACG,MAAM,CAAC,CAAC,EAAE;MAC3D,KAAK,IAAMO,sBAAsB,IAAID,oBAAoB,CAACN,MAAM,CAAC,CAAC,EAAE;QAChEO,sBAAsB,CAACC,cAAc,CAACJ,KAAK,CAAC;MAChD;IACJ;EACJ;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACWK,mBAAmBA,CAACL,KAAkB,EAAEM,WAA8B,EAAQ;IACjF,IAAIN,KAAK,CAACO,UAAU,CAAC,CAAC,IAAIP,KAAK,CAACQ,MAAM,KAAKjC,WAAW,CAACkC,SAAS,EAAE;MAC9D;IACJ;IAEA,IAAMC,QAAQ,GAAGV,KAAK,CAACW,WAAW,CAAC,CAAC;IACpC,IAAI,CAACD,QAAQ,EAAE;IAEf,IAAME,gBAAgB,GAAGA,CAAA,KAAY;MACjC,IAAI,CAACP,mBAAmB,CAACL,KAAK,EAAEM,WAAW,CAAC;IAChD,CAAC;;IAED;IACA,IAAIN,KAAK,CAACa,uBAAuB,CAAC,CAAC,EAAE;MACjCb,KAAK,CAACc,IAAI,CAACtC,gBAAgB,CAACuC,SAAS,EAAEH,gBAAgB,CAAC;MACxD;IACJ;IAEA,IAAM;MAAEI,QAAQ,EAAEC,gBAAgB;MAAEC,QAAQ,EAAEjC;IAAa,CAAC,GAAGyB,QAAQ;IACvE,IAAMxB,SAAS,GAAGc,KAAK,CAACmB,OAAO,CAAC,CAAC;IAEjC,IAAI1B,iBAAiB,GAAG,IAAI,CAACL,SAAS,CAACC,GAAG,CAAC4B,gBAAiB,CAAC;IAC7D,IAAI,CAACxB,iBAAiB,EAAE;MACpBA,iBAAiB,GAAG,IAAIX,GAAG,CAA4D,CAAC;MACxF,IAAI,CAACM,SAAS,CAACgC,GAAG,CAACH,gBAAgB,EAAGxB,iBAAiB,CAAC;IAC5D;IAEA,IAAIS,oBAAoB,GAAGT,iBAAiB,CAACJ,GAAG,CAACJ,YAAa,CAAC;IAC/D,IAAI,CAACiB,oBAAoB,EAAE;MACvBA,oBAAoB,GAAG,IAAIpB,GAAG,CAAgC,CAAC;MAC/DW,iBAAiB,CAAC2B,GAAG,CAACnC,YAAY,EAAGiB,oBAAoB,CAAC;IAC9D;IAEA,IAAIC,sBAAsB,GAAGD,oBAAoB,CAACb,GAAG,CAACH,SAAS,CAAC;IAChE,IAAI,CAACiB,sBAAsB,EAAE;MAAA,IAAAkB,UAAA,EAAAC,IAAA,EAAAC,qBAAA;MACzBpB,sBAAsB,GAAG,IAAI7B,SAAS,CAACW,YAAY,EAAGC,SAAS,EAAE,IAAI,CAACP,MAAM,CAAC;MAC7EuB,oBAAoB,CAACkB,GAAG,CAAClC,SAAS,EAAEiB,sBAAsB,CAAC;MAE3D,IAAMvB,KAAI,IAAAyC,UAAA,GAAG,IAAI,CAACzC,IAAI,cAAAyC,UAAA,cAAAA,UAAA,GAAIf,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE1B,IAAI;MAC3C,IAAM4C,cAAc,IAAAF,IAAA,IAAAC,qBAAA,GAChBjB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmB,aAAa,CAACR,gBAAiB,CAAC,cAAAM,qBAAA,cAAAA,qBAAA,GAC7C3C,KAAI,aAAJA,KAAI,uBAAJA,KAAI,CAAE6C,aAAa,CAACR,gBAAiB,CAAC,cAAAK,IAAA,cAAAA,IAAA,GACtC1C,KAAI,aAAJA,KAAI,uBAAJA,KAAI,CAAE8C,eAAe,CAACT,gBAAiB,CAAC;MAC5C,IAAIO,cAAc,EAAE;QAChBrB,sBAAsB,CAACC,cAAc,CAACoB,cAAc,CAAC;MACzD;IACJ;IAEArB,sBAAsB,CAACwB,QAAQ,CAAC3B,KAAK,CAAC;EAC1C;AACJ","ignoreList":[]}
@@ -32,7 +32,6 @@ export declare class Relations extends TypedEventEmitter<RelationsEvent, EventHa
32
32
  private sortedAnnotationsByKey;
33
33
  private targetEvent;
34
34
  private creationEmitted;
35
- private readonly client;
36
35
  /**
37
36
  * @param relationType - The type of relation involved, such as "m.annotation", "m.reference", "m.replace", etc.
38
37
  * @param eventType - The relation event's type, such as "m.reaction", etc.
@@ -1 +1 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/models/relations.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAoC,WAAW,EAAoB,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,oBAAY,cAAc;IACtB,GAAG,kBAAkB;IACrB,MAAM,qBAAqB;IAC3B,SAAS,wBAAwB;CACpC;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACnD,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5D,CAAC;AAKF;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC;aAiBzD,YAAY,EAAE,YAAY,GAAG,MAAM;aACnC,SAAS,EAAE,MAAM;aAEjB,aAAa,CAAC,EAAE,MAAM,EAAE;IAnB5C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,mBAAmB,CAAwC;IACnE,OAAO,CAAC,sBAAsB,CAAoC;IAClE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;;;;OAKG;gBAEiB,YAAY,EAAE,YAAY,GAAG,MAAM,EACnC,SAAS,EAAE,MAAM,EACjC,MAAM,EAAE,YAAY,GAAG,IAAI,EACX,aAAa,CAAC,EAAE,MAAM,EAAE,YAAA;IAM5C;;;;OAIG;IACU,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CxD;;;;OAIG;IACU,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAYnB;IAEF;;;;;;;;OAQG;IACI,YAAY,IAAI,WAAW,EAAE;IAIpC,OAAO,CAAC,0BAA0B;IA2BlC,OAAO,CAAC,+BAA+B;IAuBvC;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB,CAkBvB;IAEF;;;;;;;;OAQG;IACI,yBAAyB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,IAAI;IASvE;;;;;;;OAOG;IACI,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IASxE;;;;;OAKG;IACU,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA0CjD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D,OAAO,CAAC,gBAAgB;CAY3B"}
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/models/relations.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAoC,WAAW,EAAoB,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,oBAAY,cAAc;IACtB,GAAG,kBAAkB;IACrB,MAAM,qBAAqB;IAC3B,SAAS,wBAAwB;CACpC;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACnD,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5D,CAAC;AAKF;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC;aAgBzD,YAAY,EAAE,YAAY,GAAG,MAAM;aACnC,SAAS,EAAE,MAAM;aAEjB,aAAa,CAAC,EAAE,MAAM,EAAE;IAlB5C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,gBAAgB,CAAwC;IAChE,OAAO,CAAC,mBAAmB,CAAwC;IACnE,OAAO,CAAC,sBAAsB,CAAoC;IAClE,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,eAAe,CAAS;IAEhC;;;;;OAKG;gBAEiB,YAAY,EAAE,YAAY,GAAG,MAAM,EACnC,SAAS,EAAE,MAAM,EACjC,MAAM,EAAE,YAAY,GAAG,IAAI,EACX,aAAa,CAAC,EAAE,MAAM,EAAE,YAAA;IAK5C;;;;OAIG;IACU,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CxD;;;;OAIG;IACU,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB3D;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAYnB;IAEF;;;;;;;;OAQG;IACI,YAAY,IAAI,WAAW,EAAE;IAIpC,OAAO,CAAC,0BAA0B;IA2BlC,OAAO,CAAC,+BAA+B;IAuBvC;;;;;;;;;OASG;IACH,OAAO,CAAC,iBAAiB,CAkBvB;IAEF;;;;;;;;OAQG;IACI,yBAAyB,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,IAAI;IASvE;;;;;;;OAOG;IACI,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IASxE;;;;;OAKG;IACU,kBAAkB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoCjD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB9D,OAAO,CAAC,gBAAgB;CAY3B"}
@@ -20,7 +20,6 @@ import { EventStatus, MatrixEventEvent } from "./event.js";
20
20
  import { logger } from "../logger.js";
21
21
  import { RelationType } from "../@types/event.js";
22
22
  import { TypedEventEmitter } from "./typed-event-emitter.js";
23
- import { Room } from "./room.js";
24
23
  export var RelationsEvent = /*#__PURE__*/function (RelationsEvent) {
25
24
  RelationsEvent["Add"] = "Relations.add";
26
25
  RelationsEvent["Remove"] = "Relations.remove";
@@ -61,7 +60,6 @@ export class Relations extends TypedEventEmitter {
61
60
  _defineProperty(this, "sortedAnnotationsByKey", []);
62
61
  _defineProperty(this, "targetEvent", null);
63
62
  _defineProperty(this, "creationEmitted", false);
64
- _defineProperty(this, "client", void 0);
65
63
  /**
66
64
  * Listens for event status changes to remove cancelled events.
67
65
  *
@@ -111,7 +109,6 @@ export class Relations extends TypedEventEmitter {
111
109
  return _ref.apply(this, arguments);
112
110
  };
113
111
  }());
114
- this.client = client instanceof Room ? client.client : client;
115
112
  }
116
113
 
117
114
  /**
@@ -308,11 +305,6 @@ export class Relations extends TypedEventEmitter {
308
305
  }
309
306
  return event;
310
307
  }, null);
311
- if (lastReplacement !== null && lastReplacement !== void 0 && lastReplacement.shouldAttemptDecryption() && _this4.client.isCryptoEnabled()) {
312
- yield lastReplacement.attemptDecryption(_this4.client.crypto);
313
- } else if (lastReplacement !== null && lastReplacement !== void 0 && lastReplacement.isBeingDecrypted()) {
314
- yield lastReplacement.getDecryptionPromise();
315
- }
316
308
  return lastReplacement;
317
309
  })();
318
310
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","names":["EventStatus","MatrixEventEvent","logger","RelationType","TypedEventEmitter","Room","RelationsEvent","matchesEventType","eventType","targetEventType","altTargetEventTypes","arguments","length","undefined","includes","Relations","constructor","relationType","client","altEventTypes","_this","this","_defineProperty","Set","event","status","isSending","removeListener","Status","onEventStatus","CANCELLED","removeEvent","_ref","_asyncToGenerator","redactedEvent","relations","has","delete","Annotation","removeAnnotationFromAggregation","Replace","targetEvent","isState","lastReplacement","getLastReplacement","makeReplaced","BeforeRedaction","onBeforeRedaction","emit","Redaction","_x","apply","addEvent","_this2","relationEventIds","getId","relation","getRelation","error","rel_type","getType","on","add","addAnnotationToAggregation","Add","maybeEmitCreated","_this3","Remove","getRelations","_event$getRelation","key","eventsForKey","annotationsByKey","sortedAnnotationsByKey","push","sort","a","b","aEvents","bEvents","size","sender","getSender","eventsFromSender","annotationsBySender","_event$getRelation2","getSortedAnnotationsByKey","getAnnotationsBySender","_this4","replaceRelation","getServerAggregatedRelation","minTs","origin_server_ts","reduce","last","getTs","shouldAttemptDecryption","isCryptoEnabled","attemptDecryption","crypto","isBeingDecrypted","getDecryptionPromise","setTargetEvent","_this5","replacement","creationEmitted","RelationsCreated"],"sources":["../../src/models/relations.ts"],"sourcesContent":["/*\nCopyright 2019, 2021, 2023 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { EventStatus, IAggregatedRelation, MatrixEvent, MatrixEventEvent } from \"./event.ts\";\nimport { logger } from \"../logger.ts\";\nimport { RelationType } from \"../@types/event.ts\";\nimport { TypedEventEmitter } from \"./typed-event-emitter.ts\";\nimport { MatrixClient } from \"../client.ts\";\nimport { Room } from \"./room.ts\";\n\nexport enum RelationsEvent {\n Add = \"Relations.add\",\n Remove = \"Relations.remove\",\n Redaction = \"Relations.redaction\",\n}\n\nexport type EventHandlerMap = {\n [RelationsEvent.Add]: (event: MatrixEvent) => void;\n [RelationsEvent.Remove]: (event: MatrixEvent) => void;\n [RelationsEvent.Redaction]: (event: MatrixEvent) => void;\n};\n\nconst matchesEventType = (eventType: string, targetEventType: string, altTargetEventTypes: string[] = []): boolean =>\n [targetEventType, ...altTargetEventTypes].includes(eventType);\n\n/**\n * A container for relation events that supports easy access to common ways of\n * aggregating such events. Each instance holds events that of a single relation\n * type and event type. All of the events also relate to the same original event.\n *\n * The typical way to get one of these containers is via\n * EventTimelineSet#getRelationsForEvent.\n */\nexport class Relations extends TypedEventEmitter<RelationsEvent, EventHandlerMap> {\n private relationEventIds = new Set<string>();\n private relations = new Set<MatrixEvent>();\n private annotationsByKey: Record<string, Set<MatrixEvent>> = {};\n private annotationsBySender: Record<string, Set<MatrixEvent>> = {};\n private sortedAnnotationsByKey: [string, Set<MatrixEvent>][] = [];\n private targetEvent: MatrixEvent | null = null;\n private creationEmitted = false;\n private readonly client: MatrixClient;\n\n /**\n * @param relationType - The type of relation involved, such as \"m.annotation\", \"m.reference\", \"m.replace\", etc.\n * @param eventType - The relation event's type, such as \"m.reaction\", etc.\n * @param client - The client which created this instance. For backwards compatibility also accepts a Room.\n * @param altEventTypes - alt event types for relation events, for example to support unstable prefixed event types\n */\n public constructor(\n public readonly relationType: RelationType | string,\n public readonly eventType: string,\n client: MatrixClient | Room,\n public readonly altEventTypes?: string[],\n ) {\n super();\n this.client = client instanceof Room ? client.client : client;\n }\n\n /**\n * Add relation events to this collection.\n *\n * @param event - The new relation event to be added.\n */\n public async addEvent(event: MatrixEvent): Promise<void> {\n if (this.relationEventIds.has(event.getId()!)) {\n return;\n }\n\n const relation = event.getRelation();\n if (!relation) {\n logger.error(\"Event must have relation info\");\n return;\n }\n\n const relationType = relation.rel_type;\n const eventType = event.getType();\n\n if (this.relationType !== relationType || !matchesEventType(eventType, this.eventType, this.altEventTypes)) {\n logger.error(\"Event relation info doesn't match this container\");\n return;\n }\n\n // If the event is in the process of being sent, listen for cancellation\n // so we can remove the event from the collection.\n if (event.isSending()) {\n event.on(MatrixEventEvent.Status, this.onEventStatus);\n }\n\n this.relations.add(event);\n this.relationEventIds.add(event.getId()!);\n\n if (this.relationType === RelationType.Annotation) {\n this.addAnnotationToAggregation(event);\n } else if (this.relationType === RelationType.Replace && this.targetEvent && !this.targetEvent.isState()) {\n const lastReplacement = await this.getLastReplacement();\n this.targetEvent.makeReplaced(lastReplacement!);\n }\n\n event.on(MatrixEventEvent.BeforeRedaction, this.onBeforeRedaction);\n\n this.emit(RelationsEvent.Add, event);\n\n this.maybeEmitCreated();\n }\n\n /**\n * Remove relation event from this collection.\n *\n * @param event - The relation event to remove.\n */\n public async removeEvent(event: MatrixEvent): Promise<void> {\n if (!this.relations.has(event)) {\n return;\n }\n\n this.relations.delete(event);\n\n if (this.relationType === RelationType.Annotation) {\n this.removeAnnotationFromAggregation(event);\n } else if (this.relationType === RelationType.Replace && this.targetEvent && !this.targetEvent.isState()) {\n const lastReplacement = await this.getLastReplacement();\n this.targetEvent.makeReplaced(lastReplacement!);\n }\n\n this.emit(RelationsEvent.Remove, event);\n }\n\n /**\n * Listens for event status changes to remove cancelled events.\n *\n * @param event - The event whose status has changed\n * @param status - The new status\n */\n private onEventStatus = (event: MatrixEvent, status: EventStatus | null): void => {\n if (!event.isSending()) {\n // Sending is done, so we don't need to listen anymore\n event.removeListener(MatrixEventEvent.Status, this.onEventStatus);\n return;\n }\n if (status !== EventStatus.CANCELLED) {\n return;\n }\n // Event was cancelled, remove from the collection\n event.removeListener(MatrixEventEvent.Status, this.onEventStatus);\n this.removeEvent(event);\n };\n\n /**\n * Get all relation events in this collection.\n *\n * These are currently in the order of insertion to this collection, which\n * won't match timeline order in the case of scrollback.\n * TODO: Tweak `addEvent` to insert correctly for scrollback.\n *\n * Relation events in insertion order.\n */\n public getRelations(): MatrixEvent[] {\n return [...this.relations];\n }\n\n private addAnnotationToAggregation(event: MatrixEvent): void {\n const { key } = event.getRelation() ?? {};\n if (!key) return;\n\n let eventsForKey = this.annotationsByKey[key];\n if (!eventsForKey) {\n eventsForKey = this.annotationsByKey[key] = new Set();\n this.sortedAnnotationsByKey.push([key, eventsForKey]);\n }\n // Add the new event to the set for this key\n eventsForKey.add(event);\n // Re-sort the [key, events] pairs in descending order of event count\n this.sortedAnnotationsByKey.sort((a, b) => {\n const aEvents = a[1];\n const bEvents = b[1];\n return bEvents.size - aEvents.size;\n });\n\n const sender = event.getSender()!;\n let eventsFromSender = this.annotationsBySender[sender];\n if (!eventsFromSender) {\n eventsFromSender = this.annotationsBySender[sender] = new Set();\n }\n // Add the new event to the set for this sender\n eventsFromSender.add(event);\n }\n\n private removeAnnotationFromAggregation(event: MatrixEvent): void {\n const { key } = event.getRelation() ?? {};\n if (!key) return;\n\n const eventsForKey = this.annotationsByKey[key];\n if (eventsForKey) {\n eventsForKey.delete(event);\n\n // Re-sort the [key, events] pairs in descending order of event count\n this.sortedAnnotationsByKey.sort((a, b) => {\n const aEvents = a[1];\n const bEvents = b[1];\n return bEvents.size - aEvents.size;\n });\n }\n\n const sender = event.getSender()!;\n const eventsFromSender = this.annotationsBySender[sender];\n if (eventsFromSender) {\n eventsFromSender.delete(event);\n }\n }\n\n /**\n * For relations that have been redacted, we want to remove them from\n * aggregation data sets and emit an update event.\n *\n * To do so, we listen for `Event.beforeRedaction`, which happens:\n * - after the server accepted the redaction and remote echoed back to us\n * - before the original event has been marked redacted in the client\n *\n * @param redactedEvent - The original relation event that is about to be redacted.\n */\n private onBeforeRedaction = async (redactedEvent: MatrixEvent): Promise<void> => {\n if (!this.relations.has(redactedEvent)) {\n return;\n }\n\n this.relations.delete(redactedEvent);\n\n if (this.relationType === RelationType.Annotation) {\n // Remove the redacted annotation from aggregation by key\n this.removeAnnotationFromAggregation(redactedEvent);\n } else if (this.relationType === RelationType.Replace && this.targetEvent && !this.targetEvent.isState()) {\n const lastReplacement = await this.getLastReplacement();\n this.targetEvent.makeReplaced(lastReplacement!);\n }\n\n redactedEvent.removeListener(MatrixEventEvent.BeforeRedaction, this.onBeforeRedaction);\n\n this.emit(RelationsEvent.Redaction, redactedEvent);\n };\n\n /**\n * Get all events in this collection grouped by key and sorted by descending\n * event count in each group.\n *\n * This is currently only supported for the annotation relation type.\n *\n * An array of [key, events] pairs sorted by descending event count.\n * The events are stored in a Set (which preserves insertion order).\n */\n public getSortedAnnotationsByKey(): [string, Set<MatrixEvent>][] | null {\n if (this.relationType !== RelationType.Annotation) {\n // Other relation types are not grouped currently.\n return null;\n }\n\n return this.sortedAnnotationsByKey;\n }\n\n /**\n * Get all events in this collection grouped by sender.\n *\n * This is currently only supported for the annotation relation type.\n *\n * An object with each relation sender as a key and the matching Set of\n * events for that sender as a value.\n */\n public getAnnotationsBySender(): Record<string, Set<MatrixEvent>> | null {\n if (this.relationType !== RelationType.Annotation) {\n // Other relation types are not grouped currently.\n return null;\n }\n\n return this.annotationsBySender;\n }\n\n /**\n * Returns the most recent (and allowed) m.replace relation, if any.\n *\n * This is currently only supported for the m.replace relation type,\n * once the target event is known, see `addEvent`.\n */\n public async getLastReplacement(): Promise<MatrixEvent | null> {\n if (this.relationType !== RelationType.Replace) {\n // Aggregating on last only makes sense for this relation type\n return null;\n }\n if (!this.targetEvent) {\n // Don't know which replacements to accept yet.\n // This method shouldn't be called before the original\n // event is known anyway.\n return null;\n }\n\n // the all-knowning server tells us that the event at some point had\n // this timestamp for its replacement, so any following replacement should definitely not be less\n const replaceRelation = this.targetEvent.getServerAggregatedRelation<IAggregatedRelation>(RelationType.Replace);\n const minTs = replaceRelation?.origin_server_ts;\n\n const lastReplacement = this.getRelations().reduce<MatrixEvent | null>((last, event) => {\n if (event.getSender() !== this.targetEvent!.getSender()) {\n return last;\n }\n if (minTs && minTs > event.getTs()) {\n return last;\n }\n if (last && last.getTs() > event.getTs()) {\n return last;\n }\n return event;\n }, null);\n\n if (lastReplacement?.shouldAttemptDecryption() && this.client.isCryptoEnabled()) {\n await lastReplacement.attemptDecryption(this.client.crypto!);\n } else if (lastReplacement?.isBeingDecrypted()) {\n await lastReplacement.getDecryptionPromise();\n }\n\n return lastReplacement;\n }\n\n /*\n * @param targetEvent - the event the relations are related to.\n */\n public async setTargetEvent(event: MatrixEvent): Promise<void> {\n if (this.targetEvent) {\n return;\n }\n this.targetEvent = event;\n\n if (this.relationType === RelationType.Replace && !this.targetEvent.isState()) {\n const replacement = await this.getLastReplacement();\n // this is the initial update, so only call it if we already have something\n // to not emit Event.replaced needlessly\n if (replacement) {\n this.targetEvent.makeReplaced(replacement);\n }\n }\n\n this.maybeEmitCreated();\n }\n\n private maybeEmitCreated(): void {\n if (this.creationEmitted) {\n return;\n }\n // Only emit we're \"created\" once we have a target event instance _and_\n // at least one related event.\n if (!this.targetEvent || !this.relations.size) {\n return;\n }\n this.creationEmitted = true;\n this.targetEvent.emit(MatrixEventEvent.RelationsCreated, this.relationType, this.eventType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"relations.js","names":["EventStatus","MatrixEventEvent","logger","RelationType","TypedEventEmitter","RelationsEvent","matchesEventType","eventType","targetEventType","altTargetEventTypes","arguments","length","undefined","includes","Relations","constructor","relationType","client","altEventTypes","_this","this","_defineProperty","Set","event","status","isSending","removeListener","Status","onEventStatus","CANCELLED","removeEvent","_ref","_asyncToGenerator","redactedEvent","relations","has","delete","Annotation","removeAnnotationFromAggregation","Replace","targetEvent","isState","lastReplacement","getLastReplacement","makeReplaced","BeforeRedaction","onBeforeRedaction","emit","Redaction","_x","apply","addEvent","_this2","relationEventIds","getId","relation","getRelation","error","rel_type","getType","on","add","addAnnotationToAggregation","Add","maybeEmitCreated","_this3","Remove","getRelations","_event$getRelation","key","eventsForKey","annotationsByKey","sortedAnnotationsByKey","push","sort","a","b","aEvents","bEvents","size","sender","getSender","eventsFromSender","annotationsBySender","_event$getRelation2","getSortedAnnotationsByKey","getAnnotationsBySender","_this4","replaceRelation","getServerAggregatedRelation","minTs","origin_server_ts","reduce","last","getTs","setTargetEvent","_this5","replacement","creationEmitted","RelationsCreated"],"sources":["../../src/models/relations.ts"],"sourcesContent":["/*\nCopyright 2019, 2021, 2023 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { EventStatus, IAggregatedRelation, MatrixEvent, MatrixEventEvent } from \"./event.ts\";\nimport { logger } from \"../logger.ts\";\nimport { RelationType } from \"../@types/event.ts\";\nimport { TypedEventEmitter } from \"./typed-event-emitter.ts\";\nimport { MatrixClient } from \"../client.ts\";\nimport { Room } from \"./room.ts\";\n\nexport enum RelationsEvent {\n Add = \"Relations.add\",\n Remove = \"Relations.remove\",\n Redaction = \"Relations.redaction\",\n}\n\nexport type EventHandlerMap = {\n [RelationsEvent.Add]: (event: MatrixEvent) => void;\n [RelationsEvent.Remove]: (event: MatrixEvent) => void;\n [RelationsEvent.Redaction]: (event: MatrixEvent) => void;\n};\n\nconst matchesEventType = (eventType: string, targetEventType: string, altTargetEventTypes: string[] = []): boolean =>\n [targetEventType, ...altTargetEventTypes].includes(eventType);\n\n/**\n * A container for relation events that supports easy access to common ways of\n * aggregating such events. Each instance holds events that of a single relation\n * type and event type. All of the events also relate to the same original event.\n *\n * The typical way to get one of these containers is via\n * EventTimelineSet#getRelationsForEvent.\n */\nexport class Relations extends TypedEventEmitter<RelationsEvent, EventHandlerMap> {\n private relationEventIds = new Set<string>();\n private relations = new Set<MatrixEvent>();\n private annotationsByKey: Record<string, Set<MatrixEvent>> = {};\n private annotationsBySender: Record<string, Set<MatrixEvent>> = {};\n private sortedAnnotationsByKey: [string, Set<MatrixEvent>][] = [];\n private targetEvent: MatrixEvent | null = null;\n private creationEmitted = false;\n\n /**\n * @param relationType - The type of relation involved, such as \"m.annotation\", \"m.reference\", \"m.replace\", etc.\n * @param eventType - The relation event's type, such as \"m.reaction\", etc.\n * @param client - The client which created this instance. For backwards compatibility also accepts a Room.\n * @param altEventTypes - alt event types for relation events, for example to support unstable prefixed event types\n */\n public constructor(\n public readonly relationType: RelationType | string,\n public readonly eventType: string,\n client: MatrixClient | Room,\n public readonly altEventTypes?: string[],\n ) {\n super();\n }\n\n /**\n * Add relation events to this collection.\n *\n * @param event - The new relation event to be added.\n */\n public async addEvent(event: MatrixEvent): Promise<void> {\n if (this.relationEventIds.has(event.getId()!)) {\n return;\n }\n\n const relation = event.getRelation();\n if (!relation) {\n logger.error(\"Event must have relation info\");\n return;\n }\n\n const relationType = relation.rel_type;\n const eventType = event.getType();\n\n if (this.relationType !== relationType || !matchesEventType(eventType, this.eventType, this.altEventTypes)) {\n logger.error(\"Event relation info doesn't match this container\");\n return;\n }\n\n // If the event is in the process of being sent, listen for cancellation\n // so we can remove the event from the collection.\n if (event.isSending()) {\n event.on(MatrixEventEvent.Status, this.onEventStatus);\n }\n\n this.relations.add(event);\n this.relationEventIds.add(event.getId()!);\n\n if (this.relationType === RelationType.Annotation) {\n this.addAnnotationToAggregation(event);\n } else if (this.relationType === RelationType.Replace && this.targetEvent && !this.targetEvent.isState()) {\n const lastReplacement = await this.getLastReplacement();\n this.targetEvent.makeReplaced(lastReplacement!);\n }\n\n event.on(MatrixEventEvent.BeforeRedaction, this.onBeforeRedaction);\n\n this.emit(RelationsEvent.Add, event);\n\n this.maybeEmitCreated();\n }\n\n /**\n * Remove relation event from this collection.\n *\n * @param event - The relation event to remove.\n */\n public async removeEvent(event: MatrixEvent): Promise<void> {\n if (!this.relations.has(event)) {\n return;\n }\n\n this.relations.delete(event);\n\n if (this.relationType === RelationType.Annotation) {\n this.removeAnnotationFromAggregation(event);\n } else if (this.relationType === RelationType.Replace && this.targetEvent && !this.targetEvent.isState()) {\n const lastReplacement = await this.getLastReplacement();\n this.targetEvent.makeReplaced(lastReplacement!);\n }\n\n this.emit(RelationsEvent.Remove, event);\n }\n\n /**\n * Listens for event status changes to remove cancelled events.\n *\n * @param event - The event whose status has changed\n * @param status - The new status\n */\n private onEventStatus = (event: MatrixEvent, status: EventStatus | null): void => {\n if (!event.isSending()) {\n // Sending is done, so we don't need to listen anymore\n event.removeListener(MatrixEventEvent.Status, this.onEventStatus);\n return;\n }\n if (status !== EventStatus.CANCELLED) {\n return;\n }\n // Event was cancelled, remove from the collection\n event.removeListener(MatrixEventEvent.Status, this.onEventStatus);\n this.removeEvent(event);\n };\n\n /**\n * Get all relation events in this collection.\n *\n * These are currently in the order of insertion to this collection, which\n * won't match timeline order in the case of scrollback.\n * TODO: Tweak `addEvent` to insert correctly for scrollback.\n *\n * Relation events in insertion order.\n */\n public getRelations(): MatrixEvent[] {\n return [...this.relations];\n }\n\n private addAnnotationToAggregation(event: MatrixEvent): void {\n const { key } = event.getRelation() ?? {};\n if (!key) return;\n\n let eventsForKey = this.annotationsByKey[key];\n if (!eventsForKey) {\n eventsForKey = this.annotationsByKey[key] = new Set();\n this.sortedAnnotationsByKey.push([key, eventsForKey]);\n }\n // Add the new event to the set for this key\n eventsForKey.add(event);\n // Re-sort the [key, events] pairs in descending order of event count\n this.sortedAnnotationsByKey.sort((a, b) => {\n const aEvents = a[1];\n const bEvents = b[1];\n return bEvents.size - aEvents.size;\n });\n\n const sender = event.getSender()!;\n let eventsFromSender = this.annotationsBySender[sender];\n if (!eventsFromSender) {\n eventsFromSender = this.annotationsBySender[sender] = new Set();\n }\n // Add the new event to the set for this sender\n eventsFromSender.add(event);\n }\n\n private removeAnnotationFromAggregation(event: MatrixEvent): void {\n const { key } = event.getRelation() ?? {};\n if (!key) return;\n\n const eventsForKey = this.annotationsByKey[key];\n if (eventsForKey) {\n eventsForKey.delete(event);\n\n // Re-sort the [key, events] pairs in descending order of event count\n this.sortedAnnotationsByKey.sort((a, b) => {\n const aEvents = a[1];\n const bEvents = b[1];\n return bEvents.size - aEvents.size;\n });\n }\n\n const sender = event.getSender()!;\n const eventsFromSender = this.annotationsBySender[sender];\n if (eventsFromSender) {\n eventsFromSender.delete(event);\n }\n }\n\n /**\n * For relations that have been redacted, we want to remove them from\n * aggregation data sets and emit an update event.\n *\n * To do so, we listen for `Event.beforeRedaction`, which happens:\n * - after the server accepted the redaction and remote echoed back to us\n * - before the original event has been marked redacted in the client\n *\n * @param redactedEvent - The original relation event that is about to be redacted.\n */\n private onBeforeRedaction = async (redactedEvent: MatrixEvent): Promise<void> => {\n if (!this.relations.has(redactedEvent)) {\n return;\n }\n\n this.relations.delete(redactedEvent);\n\n if (this.relationType === RelationType.Annotation) {\n // Remove the redacted annotation from aggregation by key\n this.removeAnnotationFromAggregation(redactedEvent);\n } else if (this.relationType === RelationType.Replace && this.targetEvent && !this.targetEvent.isState()) {\n const lastReplacement = await this.getLastReplacement();\n this.targetEvent.makeReplaced(lastReplacement!);\n }\n\n redactedEvent.removeListener(MatrixEventEvent.BeforeRedaction, this.onBeforeRedaction);\n\n this.emit(RelationsEvent.Redaction, redactedEvent);\n };\n\n /**\n * Get all events in this collection grouped by key and sorted by descending\n * event count in each group.\n *\n * This is currently only supported for the annotation relation type.\n *\n * An array of [key, events] pairs sorted by descending event count.\n * The events are stored in a Set (which preserves insertion order).\n */\n public getSortedAnnotationsByKey(): [string, Set<MatrixEvent>][] | null {\n if (this.relationType !== RelationType.Annotation) {\n // Other relation types are not grouped currently.\n return null;\n }\n\n return this.sortedAnnotationsByKey;\n }\n\n /**\n * Get all events in this collection grouped by sender.\n *\n * This is currently only supported for the annotation relation type.\n *\n * An object with each relation sender as a key and the matching Set of\n * events for that sender as a value.\n */\n public getAnnotationsBySender(): Record<string, Set<MatrixEvent>> | null {\n if (this.relationType !== RelationType.Annotation) {\n // Other relation types are not grouped currently.\n return null;\n }\n\n return this.annotationsBySender;\n }\n\n /**\n * Returns the most recent (and allowed) m.replace relation, if any.\n *\n * This is currently only supported for the m.replace relation type,\n * once the target event is known, see `addEvent`.\n */\n public async getLastReplacement(): Promise<MatrixEvent | null> {\n if (this.relationType !== RelationType.Replace) {\n // Aggregating on last only makes sense for this relation type\n return null;\n }\n if (!this.targetEvent) {\n // Don't know which replacements to accept yet.\n // This method shouldn't be called before the original\n // event is known anyway.\n return null;\n }\n\n // the all-knowning server tells us that the event at some point had\n // this timestamp for its replacement, so any following replacement should definitely not be less\n const replaceRelation = this.targetEvent.getServerAggregatedRelation<IAggregatedRelation>(RelationType.Replace);\n const minTs = replaceRelation?.origin_server_ts;\n\n const lastReplacement = this.getRelations().reduce<MatrixEvent | null>((last, event) => {\n if (event.getSender() !== this.targetEvent!.getSender()) {\n return last;\n }\n if (minTs && minTs > event.getTs()) {\n return last;\n }\n if (last && last.getTs() > event.getTs()) {\n return last;\n }\n return event;\n }, null);\n\n return lastReplacement;\n }\n\n /*\n * @param targetEvent - the event the relations are related to.\n */\n public async setTargetEvent(event: MatrixEvent): Promise<void> {\n if (this.targetEvent) {\n return;\n }\n this.targetEvent = event;\n\n if (this.relationType === RelationType.Replace && !this.targetEvent.isState()) {\n const replacement = await this.getLastReplacement();\n // this is the initial update, so only call it if we already have something\n // to not emit Event.replaced needlessly\n if (replacement) {\n this.targetEvent.makeReplaced(replacement);\n }\n }\n\n this.maybeEmitCreated();\n }\n\n private maybeEmitCreated(): void {\n if (this.creationEmitted) {\n return;\n }\n // Only emit we're \"created\" once we have a target event instance _and_\n // at least one related event.\n if (!this.targetEvent || !this.relations.size) {\n return;\n }\n this.creationEmitted = true;\n this.targetEvent.emit(MatrixEventEvent.RelationsCreated, this.relationType, this.eventType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"room-state.d.ts","sourceRoot":"","sources":["../../src/models/room-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room-state.d.ts","sourceRoot":"","sources":["../../src/models/room-state.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,6 @@ import { RoomMember } from "./room-member.js";
20
20
  import { logger } from "../logger.js";
21
21
  import { isNumber, removeHiddenChars } from "../utils.js";
22
22
  import { EventType, UNSTABLE_MSC2716_MARKER } from "../@types/event.js";
23
- import { MatrixEventEvent } from "./event.js";
24
23
  import { GuestAccess, HistoryVisibility, JoinRule } from "../@types/partials.js";
25
24
  import { TypedEventEmitter } from "./typed-event-emitter.js";
26
25
  import { Beacon, BeaconEvent, getBeaconInfoIdentifier } from "./beacon.js";
@@ -428,32 +427,17 @@ export class RoomState extends TypedEventEmitter {
428
427
  beacon.addLocations([event]);
429
428
  }
430
429
  };
431
- var _loop = function* _loop(event) {
432
- var _event$getRelation;
433
- var relatedToEventId = (_event$getRelation = event.getRelation()) === null || _event$getRelation === void 0 ? void 0 : _event$getRelation.event_id;
434
- // not related to a beacon we know about; discard
435
- if (!relatedToEventId || !beaconByEventIdDict[relatedToEventId]) return {
436
- v: void 0
437
- };
438
- if (!M_BEACON.matches(event.getType()) && !event.isEncrypted()) return {
439
- v: void 0
440
- };
441
- try {
442
- yield matrixClient.decryptEventIfNeeded(event);
443
- processBeaconRelation(relatedToEventId, event);
444
- } catch (_unused) {
445
- if (event.isDecryptionFailure()) {
446
- // add an event listener for once the event is decrypted.
447
- event.once(MatrixEventEvent.Decrypted, /*#__PURE__*/_asyncToGenerator(function* () {
448
- processBeaconRelation(relatedToEventId, event);
449
- }));
450
- }
451
- }
452
- },
453
- _ret;
454
430
  for (var event of events) {
455
- _ret = yield* _loop(event);
456
- if (_ret) return _ret.v;
431
+ var _event$getRelation;
432
+ var relatedToEventId = (_event$getRelation = event.getRelation()) === null || _event$getRelation === void 0 ? void 0 : _event$getRelation.event_id;
433
+ // not related to a beacon we know about; discard
434
+ if (!relatedToEventId || !beaconByEventIdDict[relatedToEventId]) return;
435
+ if (!M_BEACON.matches(event.getType()) && !event.isEncrypted()) return;
436
+ try {
437
+ processBeaconRelation(relatedToEventId, event);
438
+ } catch (_unused) {
439
+ //
440
+ }
457
441
  }
458
442
  })();
459
443
  }