@unwanted/matrix-sdk-mini 34.12.0 → 34.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (698) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/event.d.ts +0 -19
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js.map +1 -1
  5. package/lib/@types/global.d.js +0 -2
  6. package/lib/@types/global.d.js.map +1 -1
  7. package/lib/autodiscovery.d.ts +1 -1
  8. package/lib/autodiscovery.d.ts.map +1 -1
  9. package/lib/autodiscovery.js.map +1 -1
  10. package/lib/base64.d.ts +3 -6
  11. package/lib/base64.d.ts.map +1 -1
  12. package/lib/base64.js +43 -36
  13. package/lib/base64.js.map +1 -1
  14. package/lib/browser-index.d.ts.map +1 -1
  15. package/lib/browser-index.js +0 -11
  16. package/lib/browser-index.js.map +1 -1
  17. package/lib/client.d.ts +2 -1298
  18. package/lib/client.d.ts.map +1 -1
  19. package/lib/client.js +348 -2967
  20. package/lib/client.js.map +1 -1
  21. package/lib/digest.d.ts +2 -2
  22. package/lib/digest.d.ts.map +1 -1
  23. package/lib/digest.js +2 -2
  24. package/lib/digest.js.map +1 -1
  25. package/lib/embedded.d.ts +0 -22
  26. package/lib/embedded.d.ts.map +1 -1
  27. package/lib/embedded.js +58 -168
  28. package/lib/embedded.js.map +1 -1
  29. package/lib/event-mapper.d.ts.map +1 -1
  30. package/lib/event-mapper.js +0 -4
  31. package/lib/event-mapper.js.map +1 -1
  32. package/lib/matrix.d.ts +0 -25
  33. package/lib/matrix.d.ts.map +1 -1
  34. package/lib/matrix.js +1 -30
  35. package/lib/matrix.js.map +1 -1
  36. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  37. package/lib/models/MSC3089Branch.js +0 -3
  38. package/lib/models/MSC3089Branch.js.map +1 -1
  39. package/lib/models/event-timeline-set.d.ts +6 -10
  40. package/lib/models/event-timeline-set.d.ts.map +1 -1
  41. package/lib/models/event-timeline-set.js +28 -36
  42. package/lib/models/event-timeline-set.js.map +1 -1
  43. package/lib/models/event-timeline.d.ts +7 -2
  44. package/lib/models/event-timeline.d.ts.map +1 -1
  45. package/lib/models/event-timeline.js +8 -9
  46. package/lib/models/event-timeline.js.map +1 -1
  47. package/lib/models/event.d.ts +1 -95
  48. package/lib/models/event.d.ts.map +1 -1
  49. package/lib/models/event.js +11 -281
  50. package/lib/models/event.js.map +1 -1
  51. package/lib/models/poll.d.ts.map +1 -1
  52. package/lib/models/poll.js +1 -5
  53. package/lib/models/poll.js.map +1 -1
  54. package/lib/models/relations-container.d.ts.map +1 -1
  55. package/lib/models/relations-container.js +1 -7
  56. package/lib/models/relations-container.js.map +1 -1
  57. package/lib/models/relations.d.ts +0 -1
  58. package/lib/models/relations.d.ts.map +1 -1
  59. package/lib/models/relations.js +0 -8
  60. package/lib/models/relations.js.map +1 -1
  61. package/lib/models/room-state.d.ts +2 -13
  62. package/lib/models/room-state.d.ts.map +1 -1
  63. package/lib/models/room-state.js +12 -56
  64. package/lib/models/room-state.js.map +1 -1
  65. package/lib/models/room.d.ts +2 -20
  66. package/lib/models/room.d.ts.map +1 -1
  67. package/lib/models/room.js +121 -162
  68. package/lib/models/room.js.map +1 -1
  69. package/lib/models/thread.d.ts.map +1 -1
  70. package/lib/models/thread.js +5 -4
  71. package/lib/models/thread.js.map +1 -1
  72. package/lib/sliding-sync-sdk.d.ts +3 -4
  73. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  74. package/lib/sliding-sync-sdk.js +55 -102
  75. package/lib/sliding-sync-sdk.js.map +1 -1
  76. package/lib/sliding-sync.js +9 -6
  77. package/lib/sliding-sync.js.map +1 -1
  78. package/lib/store/indexeddb.d.ts +1 -1
  79. package/lib/store/indexeddb.d.ts.map +1 -1
  80. package/lib/store/indexeddb.js.map +1 -1
  81. package/lib/sync-accumulator.d.ts +6 -4
  82. package/lib/sync-accumulator.d.ts.map +1 -1
  83. package/lib/sync-accumulator.js +23 -12
  84. package/lib/sync-accumulator.js.map +1 -1
  85. package/lib/sync.d.ts +10 -13
  86. package/lib/sync.d.ts.map +1 -1
  87. package/lib/sync.js +94 -115
  88. package/lib/sync.js.map +1 -1
  89. package/lib/testing.d.ts +0 -48
  90. package/lib/testing.d.ts.map +1 -1
  91. package/lib/testing.js +0 -105
  92. package/lib/testing.js.map +1 -1
  93. package/lib/types.d.ts +0 -1
  94. package/lib/types.d.ts.map +1 -1
  95. package/lib/types.js.map +1 -1
  96. package/package.json +10 -11
  97. package/src/@types/event.ts +2 -36
  98. package/src/@types/global.d.ts +21 -4
  99. package/src/autodiscovery.ts +1 -1
  100. package/src/base64.ts +38 -40
  101. package/src/browser-index.ts +0 -11
  102. package/src/client.ts +68 -3087
  103. package/src/digest.ts +3 -3
  104. package/src/embedded.ts +38 -134
  105. package/src/event-mapper.ts +0 -4
  106. package/src/matrix.ts +0 -41
  107. package/src/models/MSC3089Branch.ts +0 -3
  108. package/src/models/event-timeline-set.ts +17 -38
  109. package/src/models/event-timeline.ts +10 -5
  110. package/src/models/event.ts +8 -295
  111. package/src/models/poll.ts +0 -6
  112. package/src/models/relations-container.ts +1 -8
  113. package/src/models/relations.ts +0 -8
  114. package/src/models/room-state.ts +4 -37
  115. package/src/models/room.ts +18 -68
  116. package/src/models/thread.ts +4 -3
  117. package/src/sliding-sync-sdk.ts +10 -83
  118. package/src/sliding-sync.ts +6 -6
  119. package/src/store/indexeddb.ts +1 -1
  120. package/src/sync-accumulator.ts +33 -16
  121. package/src/sync.ts +112 -143
  122. package/src/testing.ts +0 -108
  123. package/src/types.ts +0 -1
  124. package/CHANGELOG.md +0 -5910
  125. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
  126. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
  127. package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
  128. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
  129. package/lib/@types/crypto.d.ts +0 -47
  130. package/lib/@types/crypto.d.ts.map +0 -1
  131. package/lib/@types/crypto.js +0 -1
  132. package/lib/@types/crypto.js.map +0 -1
  133. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  134. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  135. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  136. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  137. package/lib/common-crypto/CryptoBackend.js +0 -73
  138. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  139. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  140. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  141. package/lib/common-crypto/key-passphrase.js +0 -33
  142. package/lib/common-crypto/key-passphrase.js.map +0 -1
  143. package/lib/crypto/CrossSigning.d.ts +0 -184
  144. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  145. package/lib/crypto/CrossSigning.js +0 -718
  146. package/lib/crypto/CrossSigning.js.map +0 -1
  147. package/lib/crypto/DeviceList.d.ts +0 -216
  148. package/lib/crypto/DeviceList.d.ts.map +0 -1
  149. package/lib/crypto/DeviceList.js +0 -892
  150. package/lib/crypto/DeviceList.js.map +0 -1
  151. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  152. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  153. package/lib/crypto/EncryptionSetup.js +0 -356
  154. package/lib/crypto/EncryptionSetup.js.map +0 -1
  155. package/lib/crypto/OlmDevice.d.ts +0 -457
  156. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  157. package/lib/crypto/OlmDevice.js +0 -1241
  158. package/lib/crypto/OlmDevice.js.map +0 -1
  159. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  160. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  161. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  162. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  163. package/lib/crypto/RoomList.d.ts +0 -26
  164. package/lib/crypto/RoomList.d.ts.map +0 -1
  165. package/lib/crypto/RoomList.js +0 -71
  166. package/lib/crypto/RoomList.js.map +0 -1
  167. package/lib/crypto/SecretSharing.d.ts +0 -24
  168. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  169. package/lib/crypto/SecretSharing.js +0 -194
  170. package/lib/crypto/SecretSharing.js.map +0 -1
  171. package/lib/crypto/SecretStorage.d.ts +0 -55
  172. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  173. package/lib/crypto/SecretStorage.js +0 -118
  174. package/lib/crypto/SecretStorage.js.map +0 -1
  175. package/lib/crypto/aes.d.ts +0 -6
  176. package/lib/crypto/aes.d.ts.map +0 -1
  177. package/lib/crypto/aes.js +0 -24
  178. package/lib/crypto/aes.js.map +0 -1
  179. package/lib/crypto/algorithms/base.d.ts +0 -156
  180. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  181. package/lib/crypto/algorithms/base.js +0 -187
  182. package/lib/crypto/algorithms/base.js.map +0 -1
  183. package/lib/crypto/algorithms/index.d.ts +0 -4
  184. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  185. package/lib/crypto/algorithms/index.js +0 -20
  186. package/lib/crypto/algorithms/index.js.map +0 -1
  187. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  188. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  189. package/lib/crypto/algorithms/megolm.js +0 -1822
  190. package/lib/crypto/algorithms/megolm.js.map +0 -1
  191. package/lib/crypto/algorithms/olm.d.ts +0 -5
  192. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  193. package/lib/crypto/algorithms/olm.js +0 -299
  194. package/lib/crypto/algorithms/olm.js.map +0 -1
  195. package/lib/crypto/api.d.ts +0 -32
  196. package/lib/crypto/api.d.ts.map +0 -1
  197. package/lib/crypto/api.js +0 -22
  198. package/lib/crypto/api.js.map +0 -1
  199. package/lib/crypto/backup.d.ts +0 -227
  200. package/lib/crypto/backup.d.ts.map +0 -1
  201. package/lib/crypto/backup.js +0 -824
  202. package/lib/crypto/backup.js.map +0 -1
  203. package/lib/crypto/crypto.d.ts +0 -3
  204. package/lib/crypto/crypto.d.ts.map +0 -1
  205. package/lib/crypto/crypto.js +0 -19
  206. package/lib/crypto/crypto.js.map +0 -1
  207. package/lib/crypto/dehydration.d.ts +0 -34
  208. package/lib/crypto/dehydration.d.ts.map +0 -1
  209. package/lib/crypto/dehydration.js +0 -252
  210. package/lib/crypto/dehydration.js.map +0 -1
  211. package/lib/crypto/device-converter.d.ts +0 -9
  212. package/lib/crypto/device-converter.d.ts.map +0 -1
  213. package/lib/crypto/device-converter.js +0 -42
  214. package/lib/crypto/device-converter.js.map +0 -1
  215. package/lib/crypto/deviceinfo.d.ts +0 -99
  216. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  217. package/lib/crypto/deviceinfo.js +0 -148
  218. package/lib/crypto/deviceinfo.js.map +0 -1
  219. package/lib/crypto/index.d.ts +0 -1210
  220. package/lib/crypto/index.d.ts.map +0 -1
  221. package/lib/crypto/index.js +0 -4101
  222. package/lib/crypto/index.js.map +0 -1
  223. package/lib/crypto/key_passphrase.d.ts +0 -14
  224. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  225. package/lib/crypto/key_passphrase.js +0 -44
  226. package/lib/crypto/key_passphrase.js.map +0 -1
  227. package/lib/crypto/keybackup.d.ts +0 -18
  228. package/lib/crypto/keybackup.d.ts.map +0 -1
  229. package/lib/crypto/keybackup.js +0 -1
  230. package/lib/crypto/keybackup.js.map +0 -1
  231. package/lib/crypto/olmlib.d.ts +0 -129
  232. package/lib/crypto/olmlib.d.ts.map +0 -1
  233. package/lib/crypto/olmlib.js +0 -492
  234. package/lib/crypto/olmlib.js.map +0 -1
  235. package/lib/crypto/recoverykey.d.ts +0 -2
  236. package/lib/crypto/recoverykey.d.ts.map +0 -1
  237. package/lib/crypto/recoverykey.js +0 -19
  238. package/lib/crypto/recoverykey.js.map +0 -1
  239. package/lib/crypto/store/base.d.ts +0 -252
  240. package/lib/crypto/store/base.d.ts.map +0 -1
  241. package/lib/crypto/store/base.js +0 -64
  242. package/lib/crypto/store/base.js.map +0 -1
  243. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  244. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  245. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  246. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  247. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  248. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  249. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  250. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  251. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  252. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  253. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  254. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  255. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  256. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  257. package/lib/crypto/store/memory-crypto-store.js +0 -622
  258. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  259. package/lib/crypto/verification/Base.d.ts +0 -105
  260. package/lib/crypto/verification/Base.d.ts.map +0 -1
  261. package/lib/crypto/verification/Base.js +0 -372
  262. package/lib/crypto/verification/Base.js.map +0 -1
  263. package/lib/crypto/verification/Error.d.ts +0 -35
  264. package/lib/crypto/verification/Error.d.ts.map +0 -1
  265. package/lib/crypto/verification/Error.js +0 -86
  266. package/lib/crypto/verification/Error.js.map +0 -1
  267. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  268. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  269. package/lib/crypto/verification/IllegalMethod.js +0 -43
  270. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  271. package/lib/crypto/verification/QRCode.d.ts +0 -51
  272. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  273. package/lib/crypto/verification/QRCode.js +0 -277
  274. package/lib/crypto/verification/QRCode.js.map +0 -1
  275. package/lib/crypto/verification/SAS.d.ts +0 -27
  276. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  277. package/lib/crypto/verification/SAS.js +0 -485
  278. package/lib/crypto/verification/SAS.js.map +0 -1
  279. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  280. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  281. package/lib/crypto/verification/SASDecimal.js +0 -34
  282. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  283. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  284. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  285. package/lib/crypto/verification/request/Channel.js +0 -1
  286. package/lib/crypto/verification/request/Channel.js.map +0 -1
  287. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  288. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  289. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  290. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  291. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  292. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  293. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  294. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  295. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  296. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  297. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  298. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  299. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  300. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  301. package/lib/crypto-api/CryptoEvent.js +0 -33
  302. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  303. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  304. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  305. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  306. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  307. package/lib/crypto-api/index.d.ts +0 -978
  308. package/lib/crypto-api/index.d.ts.map +0 -1
  309. package/lib/crypto-api/index.js +0 -304
  310. package/lib/crypto-api/index.js.map +0 -1
  311. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  312. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  313. package/lib/crypto-api/key-passphrase.js +0 -51
  314. package/lib/crypto-api/key-passphrase.js.map +0 -1
  315. package/lib/crypto-api/keybackup.d.ts +0 -88
  316. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  317. package/lib/crypto-api/keybackup.js +0 -1
  318. package/lib/crypto-api/keybackup.js.map +0 -1
  319. package/lib/crypto-api/recovery-key.d.ts +0 -11
  320. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  321. package/lib/crypto-api/recovery-key.js +0 -65
  322. package/lib/crypto-api/recovery-key.js.map +0 -1
  323. package/lib/crypto-api/verification.d.ts +0 -344
  324. package/lib/crypto-api/verification.d.ts.map +0 -1
  325. package/lib/crypto-api/verification.js +0 -91
  326. package/lib/crypto-api/verification.js.map +0 -1
  327. package/lib/matrixrtc/CallMembership.d.ts +0 -66
  328. package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
  329. package/lib/matrixrtc/CallMembership.js +0 -197
  330. package/lib/matrixrtc/CallMembership.js.map +0 -1
  331. package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
  332. package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
  333. package/lib/matrixrtc/LivekitFocus.js +0 -20
  334. package/lib/matrixrtc/LivekitFocus.js.map +0 -1
  335. package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
  336. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
  337. package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
  338. package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
  339. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
  340. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
  341. package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
  342. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
  343. package/lib/matrixrtc/focus.d.ts +0 -10
  344. package/lib/matrixrtc/focus.d.ts.map +0 -1
  345. package/lib/matrixrtc/focus.js +0 -1
  346. package/lib/matrixrtc/focus.js.map +0 -1
  347. package/lib/matrixrtc/index.d.ts +0 -7
  348. package/lib/matrixrtc/index.d.ts.map +0 -1
  349. package/lib/matrixrtc/index.js +0 -21
  350. package/lib/matrixrtc/index.js.map +0 -1
  351. package/lib/matrixrtc/types.d.ts +0 -19
  352. package/lib/matrixrtc/types.d.ts.map +0 -1
  353. package/lib/matrixrtc/types.js +0 -1
  354. package/lib/matrixrtc/types.js.map +0 -1
  355. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  356. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  357. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  358. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  359. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  360. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  361. package/lib/rendezvous/RendezvousChannel.js +0 -1
  362. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  363. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  364. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  365. package/lib/rendezvous/RendezvousCode.js +0 -1
  366. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  367. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  368. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  369. package/lib/rendezvous/RendezvousError.js +0 -23
  370. package/lib/rendezvous/RendezvousError.js.map +0 -1
  371. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  372. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  373. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  374. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  375. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  376. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  377. package/lib/rendezvous/RendezvousIntent.js +0 -22
  378. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  379. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  380. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  381. package/lib/rendezvous/RendezvousTransport.js +0 -1
  382. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  383. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  384. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  385. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  386. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  387. package/lib/rendezvous/channels/index.d.ts +0 -2
  388. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  389. package/lib/rendezvous/channels/index.js +0 -18
  390. package/lib/rendezvous/channels/index.js.map +0 -1
  391. package/lib/rendezvous/index.d.ts +0 -10
  392. package/lib/rendezvous/index.d.ts.map +0 -1
  393. package/lib/rendezvous/index.js +0 -23
  394. package/lib/rendezvous/index.js.map +0 -1
  395. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  396. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  397. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  398. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  399. package/lib/rendezvous/transports/index.d.ts +0 -2
  400. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  401. package/lib/rendezvous/transports/index.js +0 -18
  402. package/lib/rendezvous/transports/index.js.map +0 -1
  403. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  404. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  405. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  406. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  407. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  408. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  409. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  410. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  411. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  412. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  413. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  414. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  415. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  416. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  417. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  418. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  419. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  420. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  421. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  422. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  423. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  424. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  425. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  426. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  427. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  428. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  429. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  430. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  431. package/lib/rust-crypto/backup.d.ts +0 -254
  432. package/lib/rust-crypto/backup.d.ts.map +0 -1
  433. package/lib/rust-crypto/backup.js +0 -837
  434. package/lib/rust-crypto/backup.js.map +0 -1
  435. package/lib/rust-crypto/constants.d.ts +0 -3
  436. package/lib/rust-crypto/constants.d.ts.map +0 -1
  437. package/lib/rust-crypto/constants.js +0 -19
  438. package/lib/rust-crypto/constants.js.map +0 -1
  439. package/lib/rust-crypto/device-converter.d.ts +0 -28
  440. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  441. package/lib/rust-crypto/device-converter.js +0 -123
  442. package/lib/rust-crypto/device-converter.js.map +0 -1
  443. package/lib/rust-crypto/index.d.ts +0 -61
  444. package/lib/rust-crypto/index.d.ts.map +0 -1
  445. package/lib/rust-crypto/index.js +0 -152
  446. package/lib/rust-crypto/index.js.map +0 -1
  447. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  448. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  449. package/lib/rust-crypto/libolm_migration.js +0 -459
  450. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  451. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  452. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  453. package/lib/rust-crypto/rust-crypto.js +0 -2016
  454. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  455. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  456. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  457. package/lib/rust-crypto/secret-storage.js +0 -63
  458. package/lib/rust-crypto/secret-storage.js.map +0 -1
  459. package/lib/rust-crypto/verification.d.ts +0 -319
  460. package/lib/rust-crypto/verification.d.ts.map +0 -1
  461. package/lib/rust-crypto/verification.js +0 -816
  462. package/lib/rust-crypto/verification.js.map +0 -1
  463. package/lib/secret-storage.d.ts +0 -370
  464. package/lib/secret-storage.d.ts.map +0 -1
  465. package/lib/secret-storage.js +0 -466
  466. package/lib/secret-storage.js.map +0 -1
  467. package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
  468. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
  469. package/lib/utils/decryptAESSecretStorageItem.js +0 -50
  470. package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
  471. package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
  472. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
  473. package/lib/utils/encryptAESSecretStorageItem.js +0 -68
  474. package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
  475. package/lib/utils/internal/deriveKeys.d.ts +0 -10
  476. package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
  477. package/lib/utils/internal/deriveKeys.js +0 -60
  478. package/lib/utils/internal/deriveKeys.js.map +0 -1
  479. package/lib/webrtc/audioContext.d.ts +0 -15
  480. package/lib/webrtc/audioContext.d.ts.map +0 -1
  481. package/lib/webrtc/audioContext.js +0 -46
  482. package/lib/webrtc/audioContext.js.map +0 -1
  483. package/lib/webrtc/call.d.ts +0 -560
  484. package/lib/webrtc/call.d.ts.map +0 -1
  485. package/lib/webrtc/call.js +0 -2541
  486. package/lib/webrtc/call.js.map +0 -1
  487. package/lib/webrtc/callEventHandler.d.ts +0 -37
  488. package/lib/webrtc/callEventHandler.d.ts.map +0 -1
  489. package/lib/webrtc/callEventHandler.js +0 -344
  490. package/lib/webrtc/callEventHandler.js.map +0 -1
  491. package/lib/webrtc/callEventTypes.d.ts +0 -73
  492. package/lib/webrtc/callEventTypes.d.ts.map +0 -1
  493. package/lib/webrtc/callEventTypes.js +0 -13
  494. package/lib/webrtc/callEventTypes.js.map +0 -1
  495. package/lib/webrtc/callFeed.d.ts +0 -128
  496. package/lib/webrtc/callFeed.d.ts.map +0 -1
  497. package/lib/webrtc/callFeed.js +0 -289
  498. package/lib/webrtc/callFeed.js.map +0 -1
  499. package/lib/webrtc/groupCall.d.ts +0 -323
  500. package/lib/webrtc/groupCall.d.ts.map +0 -1
  501. package/lib/webrtc/groupCall.js +0 -1337
  502. package/lib/webrtc/groupCall.js.map +0 -1
  503. package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
  504. package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
  505. package/lib/webrtc/groupCallEventHandler.js +0 -178
  506. package/lib/webrtc/groupCallEventHandler.js.map +0 -1
  507. package/lib/webrtc/mediaHandler.d.ts +0 -89
  508. package/lib/webrtc/mediaHandler.d.ts.map +0 -1
  509. package/lib/webrtc/mediaHandler.js +0 -437
  510. package/lib/webrtc/mediaHandler.js.map +0 -1
  511. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
  512. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
  513. package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
  514. package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
  515. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
  516. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
  517. package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
  518. package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
  519. package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
  520. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
  521. package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
  522. package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
  523. package/lib/webrtc/stats/connectionStats.d.ts +0 -28
  524. package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
  525. package/lib/webrtc/stats/connectionStats.js +0 -26
  526. package/lib/webrtc/stats/connectionStats.js.map +0 -1
  527. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
  528. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
  529. package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
  530. package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
  531. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
  532. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
  533. package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
  534. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
  535. package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
  536. package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
  537. package/lib/webrtc/stats/groupCallStats.js +0 -78
  538. package/lib/webrtc/stats/groupCallStats.js.map +0 -1
  539. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
  540. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
  541. package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
  542. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
  543. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
  544. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
  545. package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
  546. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
  547. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
  548. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
  549. package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
  550. package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
  551. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
  552. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
  553. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
  554. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
  555. package/lib/webrtc/stats/statsReport.d.ts +0 -99
  556. package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
  557. package/lib/webrtc/stats/statsReport.js +0 -32
  558. package/lib/webrtc/stats/statsReport.js.map +0 -1
  559. package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
  560. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
  561. package/lib/webrtc/stats/statsReportEmitter.js +0 -33
  562. package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
  563. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
  564. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
  565. package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
  566. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
  567. package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
  568. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
  569. package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
  570. package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
  571. package/lib/webrtc/stats/transportStats.d.ts +0 -11
  572. package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
  573. package/lib/webrtc/stats/transportStats.js +0 -1
  574. package/lib/webrtc/stats/transportStats.js.map +0 -1
  575. package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
  576. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
  577. package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
  578. package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
  579. package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
  580. package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
  581. package/lib/webrtc/stats/valueFormatter.js +0 -25
  582. package/lib/webrtc/stats/valueFormatter.js.map +0 -1
  583. package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
  584. package/src/@types/crypto.ts +0 -73
  585. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  586. package/src/common-crypto/CryptoBackend.ts +0 -302
  587. package/src/common-crypto/README.md +0 -4
  588. package/src/common-crypto/key-passphrase.ts +0 -43
  589. package/src/crypto/CrossSigning.ts +0 -773
  590. package/src/crypto/DeviceList.ts +0 -989
  591. package/src/crypto/EncryptionSetup.ts +0 -351
  592. package/src/crypto/OlmDevice.ts +0 -1500
  593. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  594. package/src/crypto/RoomList.ts +0 -70
  595. package/src/crypto/SecretSharing.ts +0 -240
  596. package/src/crypto/SecretStorage.ts +0 -136
  597. package/src/crypto/aes.ts +0 -23
  598. package/src/crypto/algorithms/base.ts +0 -236
  599. package/src/crypto/algorithms/index.ts +0 -20
  600. package/src/crypto/algorithms/megolm.ts +0 -2216
  601. package/src/crypto/algorithms/olm.ts +0 -381
  602. package/src/crypto/api.ts +0 -70
  603. package/src/crypto/backup.ts +0 -922
  604. package/src/crypto/crypto.ts +0 -18
  605. package/src/crypto/dehydration.ts +0 -272
  606. package/src/crypto/device-converter.ts +0 -45
  607. package/src/crypto/deviceinfo.ts +0 -158
  608. package/src/crypto/index.ts +0 -4418
  609. package/src/crypto/key_passphrase.ts +0 -42
  610. package/src/crypto/keybackup.ts +0 -47
  611. package/src/crypto/olmlib.ts +0 -539
  612. package/src/crypto/recoverykey.ts +0 -18
  613. package/src/crypto/store/base.ts +0 -348
  614. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  615. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  616. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  617. package/src/crypto/store/memory-crypto-store.ts +0 -680
  618. package/src/crypto/verification/Base.ts +0 -409
  619. package/src/crypto/verification/Error.ts +0 -76
  620. package/src/crypto/verification/IllegalMethod.ts +0 -50
  621. package/src/crypto/verification/QRCode.ts +0 -310
  622. package/src/crypto/verification/SAS.ts +0 -494
  623. package/src/crypto/verification/SASDecimal.ts +0 -37
  624. package/src/crypto/verification/request/Channel.ts +0 -34
  625. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  626. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  627. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  628. package/src/crypto-api/CryptoEvent.ts +0 -93
  629. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  630. package/src/crypto-api/index.ts +0 -1175
  631. package/src/crypto-api/key-passphrase.ts +0 -58
  632. package/src/crypto-api/keybackup.ts +0 -115
  633. package/src/crypto-api/recovery-key.ts +0 -69
  634. package/src/crypto-api/verification.ts +0 -408
  635. package/src/matrixrtc/CallMembership.ts +0 -247
  636. package/src/matrixrtc/LivekitFocus.ts +0 -39
  637. package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
  638. package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
  639. package/src/matrixrtc/focus.ts +0 -25
  640. package/src/matrixrtc/index.ts +0 -22
  641. package/src/matrixrtc/types.ts +0 -36
  642. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  643. package/src/rendezvous/RendezvousChannel.ts +0 -48
  644. package/src/rendezvous/RendezvousCode.ts +0 -25
  645. package/src/rendezvous/RendezvousError.ts +0 -26
  646. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  647. package/src/rendezvous/RendezvousIntent.ts +0 -20
  648. package/src/rendezvous/RendezvousTransport.ts +0 -58
  649. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  650. package/src/rendezvous/channels/index.ts +0 -17
  651. package/src/rendezvous/index.ts +0 -25
  652. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  653. package/src/rendezvous/transports/index.ts +0 -17
  654. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  655. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  656. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  657. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  658. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  659. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  660. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  661. package/src/rust-crypto/backup.ts +0 -881
  662. package/src/rust-crypto/constants.ts +0 -18
  663. package/src/rust-crypto/device-converter.ts +0 -128
  664. package/src/rust-crypto/index.ts +0 -237
  665. package/src/rust-crypto/libolm_migration.ts +0 -530
  666. package/src/rust-crypto/rust-crypto.ts +0 -2205
  667. package/src/rust-crypto/secret-storage.ts +0 -60
  668. package/src/rust-crypto/verification.ts +0 -830
  669. package/src/secret-storage.ts +0 -693
  670. package/src/utils/decryptAESSecretStorageItem.ts +0 -54
  671. package/src/utils/encryptAESSecretStorageItem.ts +0 -73
  672. package/src/utils/internal/deriveKeys.ts +0 -63
  673. package/src/webrtc/audioContext.ts +0 -44
  674. package/src/webrtc/call.ts +0 -3074
  675. package/src/webrtc/callEventHandler.ts +0 -425
  676. package/src/webrtc/callEventTypes.ts +0 -93
  677. package/src/webrtc/callFeed.ts +0 -364
  678. package/src/webrtc/groupCall.ts +0 -1735
  679. package/src/webrtc/groupCallEventHandler.ts +0 -234
  680. package/src/webrtc/mediaHandler.ts +0 -484
  681. package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
  682. package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
  683. package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
  684. package/src/webrtc/stats/connectionStats.ts +0 -47
  685. package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
  686. package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
  687. package/src/webrtc/stats/groupCallStats.ts +0 -93
  688. package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
  689. package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
  690. package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
  691. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
  692. package/src/webrtc/stats/statsReport.ts +0 -133
  693. package/src/webrtc/stats/statsReportEmitter.ts +0 -49
  694. package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
  695. package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
  696. package/src/webrtc/stats/transportStats.ts +0 -26
  697. package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
  698. package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -86,17 +86,11 @@ export class RelationsContainer {
86
86
  var relation = event.getRelation();
87
87
  if (!relation) return;
88
88
  var onEventDecrypted = () => {
89
- if (event.isDecryptionFailure()) {
90
- // This could for example happen if the encryption keys are not yet available.
91
- // The event may still be decrypted later. Register the listener again.
92
- event.once(MatrixEventEvent.Decrypted, onEventDecrypted);
93
- return;
94
- }
95
89
  this.aggregateChildEvent(event, timelineSet);
96
90
  };
97
91
 
98
92
  // If the event is currently encrypted, wait until it has been decrypted.
99
- if (event.isBeingDecrypted() || event.shouldAttemptDecryption()) {
93
+ if (event.shouldAttemptDecryption()) {
100
94
  event.once(MatrixEventEvent.Decrypted, onEventDecrypted);
101
95
  return;
102
96
  }
@@ -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":";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,IAAIZ,KAAK,CAACa,mBAAmB,CAAC,CAAC,EAAE;QAC7B;QACA;QACAb,KAAK,CAACc,IAAI,CAACtC,gBAAgB,CAACuC,SAAS,EAAEH,gBAAgB,CAAC;QACxD;MACJ;MAEA,IAAI,CAACP,mBAAmB,CAACL,KAAK,EAAEM,WAAW,CAAC;IAChD,CAAC;;IAED;IACA,IAAIN,KAAK,CAACgB,gBAAgB,CAAC,CAAC,IAAIhB,KAAK,CAACiB,uBAAuB,CAAC,CAAC,EAAE;MAC7DjB,KAAK,CAACc,IAAI,CAACtC,gBAAgB,CAACuC,SAAS,EAAEH,gBAAgB,CAAC;MACxD;IACJ;IAEA,IAAM;MAAEM,QAAQ,EAAEC,gBAAgB;MAAEC,QAAQ,EAAEnC;IAAa,CAAC,GAAGyB,QAAQ;IACvE,IAAMxB,SAAS,GAAGc,KAAK,CAACqB,OAAO,CAAC,CAAC;IAEjC,IAAI5B,iBAAiB,GAAG,IAAI,CAACL,SAAS,CAACC,GAAG,CAAC8B,gBAAiB,CAAC;IAC7D,IAAI,CAAC1B,iBAAiB,EAAE;MACpBA,iBAAiB,GAAG,IAAIX,GAAG,CAA4D,CAAC;MACxF,IAAI,CAACM,SAAS,CAACkC,GAAG,CAACH,gBAAgB,EAAG1B,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,CAAC6B,GAAG,CAACrC,YAAY,EAAGiB,oBAAoB,CAAC;IAC9D;IAEA,IAAIC,sBAAsB,GAAGD,oBAAoB,CAACb,GAAG,CAACH,SAAS,CAAC;IAChE,IAAI,CAACiB,sBAAsB,EAAE;MAAA,IAAAoB,UAAA,EAAAC,IAAA,EAAAC,qBAAA;MACzBtB,sBAAsB,GAAG,IAAI7B,SAAS,CAACW,YAAY,EAAGC,SAAS,EAAE,IAAI,CAACP,MAAM,CAAC;MAC7EuB,oBAAoB,CAACoB,GAAG,CAACpC,SAAS,EAAEiB,sBAAsB,CAAC;MAE3D,IAAMvB,KAAI,IAAA2C,UAAA,GAAG,IAAI,CAAC3C,IAAI,cAAA2C,UAAA,cAAAA,UAAA,GAAIjB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE1B,IAAI;MAC3C,IAAM8C,cAAc,IAAAF,IAAA,IAAAC,qBAAA,GAChBnB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEqB,aAAa,CAACR,gBAAiB,CAAC,cAAAM,qBAAA,cAAAA,qBAAA,GAC7C7C,KAAI,aAAJA,KAAI,uBAAJA,KAAI,CAAE+C,aAAa,CAACR,gBAAiB,CAAC,cAAAK,IAAA,cAAAA,IAAA,GACtC5C,KAAI,aAAJA,KAAI,uBAAJA,KAAI,CAAEgD,eAAe,CAACT,gBAAiB,CAAC;MAC5C,IAAIO,cAAc,EAAE;QAChBvB,sBAAsB,CAACC,cAAc,CAACsB,cAAc,CAAC;MACzD;IACJ;IAEAvB,sBAAsB,CAAC0B,QAAQ,CAAC7B,KAAK,CAAC;EAC1C;AACJ","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":"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","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":[]}
@@ -109,7 +109,6 @@ type KeysMatching<T, V> = {
109
109
  export declare class RoomState extends TypedEventEmitter<EmittedEvents, EventHandlerMap> {
110
110
  readonly roomId: string;
111
111
  private oobMemberFlags;
112
- readonly isStartTimelineState: boolean;
113
112
  readonly reEmitter: TypedReEmitter<EmittedEvents, EventHandlerMap>;
114
113
  private sentinels;
115
114
  private displayNameToUserIds;
@@ -152,20 +151,10 @@ export declare class RoomState extends TypedEventEmitter<EmittedEvents, EventHan
152
151
  * As the timeline might get reset while they are loading, this state needs to be inherited
153
152
  * and shared when the room state is cloned for the new timeline.
154
153
  * This should only be passed from clone.
155
- * @param isStartTimelineState - Optional. This state is marked as a start state.
156
- * This is used to skip state insertions that are
157
- * in the wrong order. The order is determined by the `replaces_state` id.
158
- *
159
- * Example:
160
- * A current state events `replaces_state` value is `1`.
161
- * Trying to insert a state event with `event_id` `1` in its place would fail if isStartTimelineState = false.
162
- *
163
- * A current state events `event_id` is `2`.
164
- * Trying to insert a state event where its `replaces_state` value is `2` would fail if isStartTimelineState = true.
165
154
  */
166
155
  constructor(roomId: string, oobMemberFlags?: {
167
156
  status: OobStatus;
168
- }, isStartTimelineState?: boolean);
157
+ });
169
158
  /**
170
159
  * Returns the number of joined members in this room
171
160
  * This method caches the result.
@@ -256,7 +245,7 @@ export declare class RoomState extends TypedEventEmitter<EmittedEvents, EventHan
256
245
  * Fires {@link RoomStateEvent.Events}
257
246
  * Fires {@link RoomStateEvent.Marker}
258
247
  */
259
- setStateEvents(stateEvents: MatrixEvent[], options?: IMarkerFoundOptions): void;
248
+ setStateEvents(stateEvents: MatrixEvent[], markerFoundOptions?: IMarkerFoundOptions): void;
260
249
  processBeaconEvents(events: MatrixEvent[], matrixClient: MatrixClient): Promise<void>;
261
250
  /**
262
251
  * Looks up a member by the given userId, and if it doesn't exist,
@@ -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";
@@ -71,27 +70,15 @@ export class RoomState extends TypedEventEmitter {
71
70
  * As the timeline might get reset while they are loading, this state needs to be inherited
72
71
  * and shared when the room state is cloned for the new timeline.
73
72
  * This should only be passed from clone.
74
- * @param isStartTimelineState - Optional. This state is marked as a start state.
75
- * This is used to skip state insertions that are
76
- * in the wrong order. The order is determined by the `replaces_state` id.
77
- *
78
- * Example:
79
- * A current state events `replaces_state` value is `1`.
80
- * Trying to insert a state event with `event_id` `1` in its place would fail if isStartTimelineState = false.
81
- *
82
- * A current state events `event_id` is `2`.
83
- * Trying to insert a state event where its `replaces_state` value is `2` would fail if isStartTimelineState = true.
84
73
  */
85
74
 
86
75
  constructor(roomId) {
87
76
  var oobMemberFlags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
88
77
  status: OobStatus.NotStarted
89
78
  };
90
- var isStartTimelineState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
91
79
  super();
92
80
  this.roomId = roomId;
93
81
  this.oobMemberFlags = oobMemberFlags;
94
- this.isStartTimelineState = isStartTimelineState;
95
82
  _defineProperty(this, "reEmitter", new TypedReEmitter(this));
96
83
  _defineProperty(this, "sentinels", {});
97
84
  // userId: RoomMember
@@ -326,32 +313,16 @@ export class RoomState extends TypedEventEmitter {
326
313
  * Fires {@link RoomStateEvent.Events}
327
314
  * Fires {@link RoomStateEvent.Marker}
328
315
  */
329
- setStateEvents(stateEvents, options) {
316
+ setStateEvents(stateEvents, markerFoundOptions) {
330
317
  this.updateModifiedTime();
331
318
 
332
319
  // update the core event dict
333
320
  stateEvents.forEach(event => {
334
- var _lastStateEvent$event, _event$event$unsigned;
335
321
  if (event.getRoomId() !== this.roomId || !event.isState()) return;
336
322
  if (M_BEACON_INFO.matches(event.getType())) {
337
323
  this.setBeacon(event);
338
324
  }
339
325
  var lastStateEvent = this.getStateEventMatching(event);
340
-
341
- // Safety measure to not update the room (and emit the update) with older state.
342
- // The sync loop really should not send old events but it does very regularly.
343
- // Logging on return in those two conditions results in a large amount of logging. (on startup and when running element)
344
- var lastReplaceId = lastStateEvent === null || lastStateEvent === void 0 || (_lastStateEvent$event = lastStateEvent.event.unsigned) === null || _lastStateEvent$event === void 0 ? void 0 : _lastStateEvent$event.replaces_state;
345
- var lastId = lastStateEvent === null || lastStateEvent === void 0 ? void 0 : lastStateEvent.event.event_id;
346
- var newReplaceId = (_event$event$unsigned = event.event.unsigned) === null || _event$event$unsigned === void 0 ? void 0 : _event$event$unsigned.replaces_state;
347
- var newId = event.event.event_id;
348
- if (this.isStartTimelineState) {
349
- // Add an event to the start of the timeline. Its replace id should not be the same as the one of the current/last start state event.
350
- if (newReplaceId && lastId && newReplaceId === lastId) return;
351
- } else {
352
- // Add an event to the end of the timeline. It should not be the same as the one replaced by the current/last end state event.
353
- if (lastReplaceId && newId && lastReplaceId === newId) return;
354
- }
355
326
  this.setStateEvent(event);
356
327
  if (event.getType() === EventType.RoomMember) {
357
328
  var _event$getContent$dis;
@@ -402,7 +373,7 @@ export class RoomState extends TypedEventEmitter {
402
373
  // assume all our sentinels are now out-of-date
403
374
  this.sentinels = {};
404
375
  } else if (UNSTABLE_MSC2716_MARKER.matches(event.getType())) {
405
- this.emit(RoomStateEvent.Marker, event, options);
376
+ this.emit(RoomStateEvent.Marker, event, markerFoundOptions);
406
377
  }
407
378
  });
408
379
  this.emit(RoomStateEvent.Update, this);
@@ -428,32 +399,17 @@ export class RoomState extends TypedEventEmitter {
428
399
  beacon.addLocations([event]);
429
400
  }
430
401
  };
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
402
  for (var event of events) {
455
- _ret = yield* _loop(event);
456
- if (_ret) return _ret.v;
403
+ var _event$getRelation;
404
+ var relatedToEventId = (_event$getRelation = event.getRelation()) === null || _event$getRelation === void 0 ? void 0 : _event$getRelation.event_id;
405
+ // not related to a beacon we know about; discard
406
+ if (!relatedToEventId || !beaconByEventIdDict[relatedToEventId]) return;
407
+ if (!M_BEACON.matches(event.getType()) && !event.isEncrypted()) return;
408
+ try {
409
+ processBeaconRelation(relatedToEventId, event);
410
+ } catch (_unused) {
411
+ //
412
+ }
457
413
  }
458
414
  })();
459
415
  }