matrix-js-sdk 41.8.0 → 41.9.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 (458) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/lib/@types/AESEncryptedSecretStoragePayload.js +3 -1
  4. package/lib/@types/IIdentityServerProvider.js +3 -1
  5. package/lib/@types/PushRules.js +7 -7
  6. package/lib/@types/PushRules.js.map +1 -1
  7. package/lib/@types/auth.js +4 -4
  8. package/lib/@types/auth.js.map +1 -1
  9. package/lib/@types/beacon.js +2 -2
  10. package/lib/@types/beacon.js.map +1 -1
  11. package/lib/@types/common.js +3 -1
  12. package/lib/@types/crypto.js +3 -1
  13. package/lib/@types/event.js +20 -20
  14. package/lib/@types/event.js.map +1 -1
  15. package/lib/@types/events.js +3 -1
  16. package/lib/@types/extensible_events.js +6 -6
  17. package/lib/@types/extensible_events.js.map +1 -1
  18. package/lib/@types/global.d.js.map +1 -1
  19. package/lib/@types/json.js +3 -1
  20. package/lib/@types/local_notifications.js +3 -1
  21. package/lib/@types/location.js +4 -4
  22. package/lib/@types/location.js.map +1 -1
  23. package/lib/@types/matrix-sdk-crypto-wasm.d.js +3 -1
  24. package/lib/@types/media.js +3 -1
  25. package/lib/@types/membership.js +1 -1
  26. package/lib/@types/membership.js.map +1 -1
  27. package/lib/@types/partials.js +6 -6
  28. package/lib/@types/partials.js.map +1 -1
  29. package/lib/@types/polls.js +5 -5
  30. package/lib/@types/polls.js.map +1 -1
  31. package/lib/@types/read_receipts.js +2 -2
  32. package/lib/@types/read_receipts.js.map +1 -1
  33. package/lib/@types/registration.js +3 -1
  34. package/lib/@types/requests.js +1 -1
  35. package/lib/@types/requests.js.map +1 -1
  36. package/lib/@types/retention.js +1 -1
  37. package/lib/@types/retention.js.map +1 -1
  38. package/lib/@types/search.js +1 -1
  39. package/lib/@types/search.js.map +1 -1
  40. package/lib/@types/signed.js +3 -1
  41. package/lib/@types/spaces.js +3 -1
  42. package/lib/@types/state_events.js +3 -1
  43. package/lib/@types/synapse.js +3 -1
  44. package/lib/@types/sync.js +1 -1
  45. package/lib/@types/sync.js.map +1 -1
  46. package/lib/@types/threepids.js +1 -1
  47. package/lib/@types/threepids.js.map +1 -1
  48. package/lib/@types/topic.js +1 -1
  49. package/lib/@types/topic.js.map +1 -1
  50. package/lib/@types/uia.js +3 -1
  51. package/lib/NamespacedValue.js +8 -8
  52. package/lib/NamespacedValue.js.map +1 -1
  53. package/lib/ReEmitter.js +9 -16
  54. package/lib/ReEmitter.js.map +1 -1
  55. package/lib/ToDeviceMessageQueue.js +49 -57
  56. package/lib/ToDeviceMessageQueue.js.map +1 -1
  57. package/lib/autodiscovery.js +232 -247
  58. package/lib/autodiscovery.js.map +1 -1
  59. package/lib/base64.js +1 -1
  60. package/lib/base64.js.map +1 -1
  61. package/lib/browser-index.d.ts +2 -2
  62. package/lib/browser-index.d.ts.map +1 -1
  63. package/lib/browser-index.js +5 -5
  64. package/lib/browser-index.js.map +1 -1
  65. package/lib/capabilityPoller.js +19 -22
  66. package/lib/capabilityPoller.js.map +1 -1
  67. package/lib/client.d.ts +2 -8
  68. package/lib/client.d.ts.map +1 -1
  69. package/lib/client.js +2043 -2487
  70. package/lib/client.js.map +1 -1
  71. package/lib/common-crypto/CryptoBackend.js +2 -2
  72. package/lib/common-crypto/CryptoBackend.js.map +1 -1
  73. package/lib/common-crypto/key-passphrase.js.map +1 -1
  74. package/lib/content-helpers.js +43 -48
  75. package/lib/content-helpers.js.map +1 -1
  76. package/lib/content-repo.js +14 -24
  77. package/lib/content-repo.js.map +1 -1
  78. package/lib/crypto/store/base.js +6 -6
  79. package/lib/crypto/store/base.js.map +1 -1
  80. package/lib/crypto/store/indexeddb-crypto-store-backend.js +190 -238
  81. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
  82. package/lib/crypto/store/indexeddb-crypto-store.js +25 -30
  83. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
  84. package/lib/crypto/store/localStorage-crypto-store.js +113 -145
  85. package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
  86. package/lib/crypto/store/memory-crypto-store.js +74 -105
  87. package/lib/crypto/store/memory-crypto-store.js.map +1 -1
  88. package/lib/crypto-api/CryptoEvent.js +1 -1
  89. package/lib/crypto-api/CryptoEvent.js.map +1 -1
  90. package/lib/crypto-api/CryptoEventHandlerMap.js +3 -1
  91. package/lib/crypto-api/index.d.ts +15 -6
  92. package/lib/crypto-api/index.d.ts.map +1 -1
  93. package/lib/crypto-api/index.js +22 -22
  94. package/lib/crypto-api/index.js.map +1 -1
  95. package/lib/crypto-api/key-passphrase.js +15 -23
  96. package/lib/crypto-api/key-passphrase.js.map +1 -1
  97. package/lib/crypto-api/keybackup.js +3 -1
  98. package/lib/crypto-api/recovery-key.js +11 -12
  99. package/lib/crypto-api/recovery-key.js.map +1 -1
  100. package/lib/crypto-api/verification.js +3 -3
  101. package/lib/crypto-api/verification.js.map +1 -1
  102. package/lib/digest.js +7 -14
  103. package/lib/digest.js.map +1 -1
  104. package/lib/embedded.d.ts.map +1 -1
  105. package/lib/embedded.js +380 -505
  106. package/lib/embedded.js.map +1 -1
  107. package/lib/errors.js +2 -2
  108. package/lib/errors.js.map +1 -1
  109. package/lib/event-mapper.js +10 -12
  110. package/lib/event-mapper.js.map +1 -1
  111. package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -1
  112. package/lib/extensible_events_v1/InvalidEventError.js.map +1 -1
  113. package/lib/extensible_events_v1/MessageEvent.js +11 -13
  114. package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
  115. package/lib/extensible_events_v1/PollEndEvent.js +3 -4
  116. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
  117. package/lib/extensible_events_v1/PollResponseEvent.js +5 -6
  118. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
  119. package/lib/extensible_events_v1/PollStartEvent.js +8 -10
  120. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
  121. package/lib/extensible_events_v1/utilities.js.map +1 -1
  122. package/lib/feature.js +18 -31
  123. package/lib/feature.js.map +1 -1
  124. package/lib/filter-component.d.ts.map +1 -1
  125. package/lib/filter-component.js +20 -26
  126. package/lib/filter-component.js.map +1 -1
  127. package/lib/filter.js +14 -17
  128. package/lib/filter.js.map +1 -1
  129. package/lib/http-api/errors.js +28 -43
  130. package/lib/http-api/errors.js.map +1 -1
  131. package/lib/http-api/fetch.js +141 -159
  132. package/lib/http-api/fetch.js.map +1 -1
  133. package/lib/http-api/index.js +17 -20
  134. package/lib/http-api/index.js.map +1 -1
  135. package/lib/http-api/interface.js +1 -1
  136. package/lib/http-api/interface.js.map +1 -1
  137. package/lib/http-api/method.js +1 -1
  138. package/lib/http-api/method.js.map +1 -1
  139. package/lib/http-api/prefix.js +3 -3
  140. package/lib/http-api/prefix.js.map +1 -1
  141. package/lib/http-api/refresh.js +74 -94
  142. package/lib/http-api/refresh.js.map +1 -1
  143. package/lib/http-api/utils.d.ts +1 -1
  144. package/lib/http-api/utils.d.ts.map +1 -1
  145. package/lib/http-api/utils.js +34 -42
  146. package/lib/http-api/utils.js.map +1 -1
  147. package/lib/index.js.map +1 -1
  148. package/lib/indexeddb-helpers.js +3 -3
  149. package/lib/indexeddb-helpers.js.map +1 -1
  150. package/lib/indexeddb-worker.js.map +1 -1
  151. package/lib/interactive-auth.d.ts +5 -5
  152. package/lib/interactive-auth.d.ts.map +1 -1
  153. package/lib/interactive-auth.js +172 -204
  154. package/lib/interactive-auth.js.map +1 -1
  155. package/lib/logger.js +21 -57
  156. package/lib/logger.js.map +1 -1
  157. package/lib/matrix.js +7 -11
  158. package/lib/matrix.js.map +1 -1
  159. package/lib/matrixrtc/CallMembership.js +80 -74
  160. package/lib/matrixrtc/CallMembership.js.map +1 -1
  161. package/lib/matrixrtc/EncryptionManager.js +1 -1
  162. package/lib/matrixrtc/EncryptionManager.js.map +1 -1
  163. package/lib/matrixrtc/IKeyTransport.js +1 -1
  164. package/lib/matrixrtc/IKeyTransport.js.map +1 -1
  165. package/lib/matrixrtc/IMembershipManager.js +1 -1
  166. package/lib/matrixrtc/IMembershipManager.js.map +1 -1
  167. package/lib/matrixrtc/LivekitTransport.d.ts +1 -1
  168. package/lib/matrixrtc/LivekitTransport.js +4 -4
  169. package/lib/matrixrtc/LivekitTransport.js.map +1 -1
  170. package/lib/matrixrtc/MatrixRTCSession.js +137 -187
  171. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  172. package/lib/matrixrtc/MatrixRTCSessionManager.js +36 -41
  173. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
  174. package/lib/matrixrtc/MembershipManager.js +332 -378
  175. package/lib/matrixrtc/MembershipManager.js.map +1 -1
  176. package/lib/matrixrtc/MembershipManagerActionScheduler.js +54 -63
  177. package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -1
  178. package/lib/matrixrtc/RTCEncryptionManager.js +119 -143
  179. package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
  180. package/lib/matrixrtc/ToDeviceKeyTransport.js +53 -58
  181. package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -1
  182. package/lib/matrixrtc/index.js.map +1 -1
  183. package/lib/matrixrtc/membershipData/common.js +1 -1
  184. package/lib/matrixrtc/membershipData/common.js.map +1 -1
  185. package/lib/matrixrtc/membershipData/index.js.map +1 -1
  186. package/lib/matrixrtc/membershipData/rtc.js +15 -23
  187. package/lib/matrixrtc/membershipData/rtc.js.map +1 -1
  188. package/lib/matrixrtc/membershipData/session.js +4 -5
  189. package/lib/matrixrtc/membershipData/session.js.map +1 -1
  190. package/lib/matrixrtc/types.js +4 -6
  191. package/lib/matrixrtc/types.js.map +1 -1
  192. package/lib/matrixrtc/utils.js +4 -11
  193. package/lib/matrixrtc/utils.js.map +1 -1
  194. package/lib/models/MSC3089Branch.js +91 -116
  195. package/lib/models/MSC3089Branch.js.map +1 -1
  196. package/lib/models/MSC3089TreeSpace.js +209 -245
  197. package/lib/models/MSC3089TreeSpace.js.map +1 -1
  198. package/lib/models/ToDeviceMessage.js +3 -1
  199. package/lib/models/beacon.js +14 -13
  200. package/lib/models/beacon.js.map +1 -1
  201. package/lib/models/compare-event-ordering.js +13 -13
  202. package/lib/models/compare-event-ordering.js.map +1 -1
  203. package/lib/models/device.js +3 -3
  204. package/lib/models/device.js.map +1 -1
  205. package/lib/models/event-context.js +5 -8
  206. package/lib/models/event-context.js.map +1 -1
  207. package/lib/models/event-status.js +1 -1
  208. package/lib/models/event-status.js.map +1 -1
  209. package/lib/models/event-timeline-set.js +88 -94
  210. package/lib/models/event-timeline-set.js.map +1 -1
  211. package/lib/models/event-timeline.js +28 -30
  212. package/lib/models/event-timeline.js.map +1 -1
  213. package/lib/models/event.js +182 -226
  214. package/lib/models/event.js.map +1 -1
  215. package/lib/models/invites-ignorer-types.js +4 -4
  216. package/lib/models/invites-ignorer-types.js.map +1 -1
  217. package/lib/models/invites-ignorer.js +159 -179
  218. package/lib/models/invites-ignorer.js.map +1 -1
  219. package/lib/models/poll.js +71 -81
  220. package/lib/models/poll.js.map +1 -1
  221. package/lib/models/profile-keys.js +2 -2
  222. package/lib/models/profile-keys.js.map +1 -1
  223. package/lib/models/read-receipt.js +40 -56
  224. package/lib/models/read-receipt.js.map +1 -1
  225. package/lib/models/related-relations.js.map +1 -1
  226. package/lib/models/relations-container.js +22 -23
  227. package/lib/models/relations-container.js.map +1 -1
  228. package/lib/models/relations.js +133 -159
  229. package/lib/models/relations.js.map +1 -1
  230. package/lib/models/room-member.js +24 -29
  231. package/lib/models/room-member.js.map +1 -1
  232. package/lib/models/room-receipts.js +29 -43
  233. package/lib/models/room-receipts.js.map +1 -1
  234. package/lib/models/room-retention.js +74 -83
  235. package/lib/models/room-retention.js.map +1 -1
  236. package/lib/models/room-state.js +143 -172
  237. package/lib/models/room-state.js.map +1 -1
  238. package/lib/models/room-sticky-events.d.ts +1 -0
  239. package/lib/models/room-sticky-events.d.ts.map +1 -1
  240. package/lib/models/room-sticky-events.js +45 -65
  241. package/lib/models/room-sticky-events.js.map +1 -1
  242. package/lib/models/room-summary.js.map +1 -1
  243. package/lib/models/room.d.ts.map +1 -1
  244. package/lib/models/room.js +765 -909
  245. package/lib/models/room.js.map +1 -1
  246. package/lib/models/search-result.js +5 -5
  247. package/lib/models/search-result.js.map +1 -1
  248. package/lib/models/thread.js +225 -285
  249. package/lib/models/thread.js.map +1 -1
  250. package/lib/models/typed-event-emitter.js +7 -18
  251. package/lib/models/typed-event-emitter.js.map +1 -1
  252. package/lib/models/user.js +8 -8
  253. package/lib/models/user.js.map +1 -1
  254. package/lib/oidc/authorize.js +208 -241
  255. package/lib/oidc/authorize.js.map +1 -1
  256. package/lib/oidc/discovery.js +23 -36
  257. package/lib/oidc/discovery.js.map +1 -1
  258. package/lib/oidc/error.js +1 -1
  259. package/lib/oidc/error.js.map +1 -1
  260. package/lib/oidc/index.js +1 -0
  261. package/lib/oidc/index.js.map +1 -1
  262. package/lib/oidc/register.js +60 -66
  263. package/lib/oidc/register.js.map +1 -1
  264. package/lib/oidc/tokenRefresher.js +77 -91
  265. package/lib/oidc/tokenRefresher.js.map +1 -1
  266. package/lib/oidc/validate.js +18 -18
  267. package/lib/oidc/validate.js.map +1 -1
  268. package/lib/pushprocessor.js +71 -82
  269. package/lib/pushprocessor.js.map +1 -1
  270. package/lib/randomstring.js +9 -9
  271. package/lib/randomstring.js.map +1 -1
  272. package/lib/realtime-callbacks.js +25 -28
  273. package/lib/realtime-callbacks.js.map +1 -1
  274. package/lib/receipt-accumulator.d.ts +2 -0
  275. package/lib/receipt-accumulator.d.ts.map +1 -1
  276. package/lib/receipt-accumulator.js +14 -22
  277. package/lib/receipt-accumulator.js.map +1 -1
  278. package/lib/rendezvous/MSC4108SignInWithQR.js +271 -302
  279. package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -1
  280. package/lib/rendezvous/RendezvousChannel.js +3 -1
  281. package/lib/rendezvous/RendezvousCode.js +3 -1
  282. package/lib/rendezvous/RendezvousError.js.map +1 -1
  283. package/lib/rendezvous/RendezvousFailureReason.js +2 -2
  284. package/lib/rendezvous/RendezvousFailureReason.js.map +1 -1
  285. package/lib/rendezvous/RendezvousIntent.js +1 -1
  286. package/lib/rendezvous/RendezvousIntent.js.map +1 -1
  287. package/lib/rendezvous/RendezvousTransport.js +3 -1
  288. package/lib/rendezvous/channels/MSC4108SecureChannel.js +123 -147
  289. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
  290. package/lib/rendezvous/index.js +44 -69
  291. package/lib/rendezvous/index.js.map +1 -1
  292. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +1 -1
  293. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +134 -152
  294. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
  295. package/lib/retentionPolicy.js +6 -9
  296. package/lib/retentionPolicy.js.map +1 -1
  297. package/lib/room-hierarchy.js +52 -60
  298. package/lib/room-hierarchy.js.map +1 -1
  299. package/lib/rust-crypto/CrossSigningIdentity.js +94 -104
  300. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
  301. package/lib/rust-crypto/DehydratedDeviceManager.js +157 -190
  302. package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -1
  303. package/lib/rust-crypto/KeyClaimManager.js +18 -22
  304. package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
  305. package/lib/rust-crypto/OutgoingRequestProcessor.js +109 -139
  306. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
  307. package/lib/rust-crypto/OutgoingRequestsManager.js +66 -80
  308. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
  309. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +1 -1
  310. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +196 -224
  311. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -1
  312. package/lib/rust-crypto/RoomEncryptor.js +127 -143
  313. package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
  314. package/lib/rust-crypto/backup.js +453 -549
  315. package/lib/rust-crypto/backup.js.map +1 -1
  316. package/lib/rust-crypto/constants.js +1 -1
  317. package/lib/rust-crypto/constants.js.map +1 -1
  318. package/lib/rust-crypto/device-converter.js +15 -28
  319. package/lib/rust-crypto/device-converter.js.map +1 -1
  320. package/lib/rust-crypto/index.js +103 -116
  321. package/lib/rust-crypto/index.js.map +1 -1
  322. package/lib/rust-crypto/libolm_migration.js +303 -365
  323. package/lib/rust-crypto/libolm_migration.js.map +1 -1
  324. package/lib/rust-crypto/rust-crypto.d.ts +5 -1
  325. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
  326. package/lib/rust-crypto/rust-crypto.js +1067 -1332
  327. package/lib/rust-crypto/rust-crypto.js.map +1 -1
  328. package/lib/rust-crypto/secret-storage.js +12 -25
  329. package/lib/rust-crypto/secret-storage.js.map +1 -1
  330. package/lib/rust-crypto/verification.js +137 -189
  331. package/lib/rust-crypto/verification.js.map +1 -1
  332. package/lib/scheduler.js +44 -19
  333. package/lib/scheduler.js.map +1 -1
  334. package/lib/secret-storage.js +179 -213
  335. package/lib/secret-storage.js.map +1 -1
  336. package/lib/serverCapabilities.js +6 -9
  337. package/lib/serverCapabilities.js.map +1 -1
  338. package/lib/service-types.js +1 -1
  339. package/lib/service-types.js.map +1 -1
  340. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  341. package/lib/sliding-sync-sdk.js +368 -424
  342. package/lib/sliding-sync-sdk.js.map +1 -1
  343. package/lib/sliding-sync.js +135 -171
  344. package/lib/sliding-sync.js.map +1 -1
  345. package/lib/store/index.js +3 -1
  346. package/lib/store/indexeddb-backend.js +3 -1
  347. package/lib/store/indexeddb-local-backend.js +194 -253
  348. package/lib/store/indexeddb-local-backend.js.map +1 -1
  349. package/lib/store/indexeddb-remote-backend.js +33 -63
  350. package/lib/store/indexeddb-remote-backend.js.map +1 -1
  351. package/lib/store/indexeddb-store-worker.js +22 -23
  352. package/lib/store/indexeddb-store-worker.js.map +1 -1
  353. package/lib/store/indexeddb.js +44 -71
  354. package/lib/store/indexeddb.js.map +1 -1
  355. package/lib/store/local-storage-events-emitter.js +2 -2
  356. package/lib/store/local-storage-events-emitter.js.map +1 -1
  357. package/lib/store/memory.js +34 -57
  358. package/lib/store/memory.js.map +1 -1
  359. package/lib/store/stub.js +22 -35
  360. package/lib/store/stub.js.map +1 -1
  361. package/lib/sync-accumulator.js +54 -66
  362. package/lib/sync-accumulator.js.map +1 -1
  363. package/lib/sync.d.ts.map +1 -1
  364. package/lib/sync.js +905 -998
  365. package/lib/sync.js.map +1 -1
  366. package/lib/testing.js +63 -105
  367. package/lib/testing.js.map +1 -1
  368. package/lib/thread-utils.js +1 -4
  369. package/lib/thread-utils.js.map +1 -1
  370. package/lib/timeline-window.js +89 -102
  371. package/lib/timeline-window.js.map +1 -1
  372. package/lib/types.js +1 -1
  373. package/lib/types.js.map +1 -1
  374. package/lib/utils/decryptAESSecretStorageItem.js +14 -25
  375. package/lib/utils/decryptAESSecretStorageItem.js.map +1 -1
  376. package/lib/utils/encryptAESSecretStorageItem.js +27 -38
  377. package/lib/utils/encryptAESSecretStorageItem.js.map +1 -1
  378. package/lib/utils/internal/deriveKeys.js +25 -32
  379. package/lib/utils/internal/deriveKeys.js.map +1 -1
  380. package/lib/utils/roomVersion.js +1 -1
  381. package/lib/utils/roomVersion.js.map +1 -1
  382. package/lib/utils.js +83 -135
  383. package/lib/utils.js.map +1 -1
  384. package/lib/version-support.js +3 -3
  385. package/lib/version-support.js.map +1 -1
  386. package/lib/webrtc/audioContext.js +5 -6
  387. package/lib/webrtc/audioContext.js.map +1 -1
  388. package/lib/webrtc/call.js +1081 -1250
  389. package/lib/webrtc/call.js.map +1 -1
  390. package/lib/webrtc/callEventHandler.js +202 -214
  391. package/lib/webrtc/callEventHandler.js.map +1 -1
  392. package/lib/webrtc/callEventTypes.js +2 -2
  393. package/lib/webrtc/callEventTypes.js.map +1 -1
  394. package/lib/webrtc/callFeed.js +18 -20
  395. package/lib/webrtc/callFeed.js.map +1 -1
  396. package/lib/webrtc/groupCall.js +513 -602
  397. package/lib/webrtc/groupCall.js.map +1 -1
  398. package/lib/webrtc/groupCallEventHandler.js +59 -62
  399. package/lib/webrtc/groupCallEventHandler.js.map +1 -1
  400. package/lib/webrtc/mediaHandler.js +198 -232
  401. package/lib/webrtc/mediaHandler.js.map +1 -1
  402. package/lib/webrtc/stats/callFeedStatsReporter.js +16 -20
  403. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
  404. package/lib/webrtc/stats/callStatsReportGatherer.js +67 -75
  405. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  406. package/lib/webrtc/stats/callStatsReportSummary.js +3 -1
  407. package/lib/webrtc/stats/connectionStats.js.map +1 -1
  408. package/lib/webrtc/stats/connectionStatsBuilder.js +2 -2
  409. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
  410. package/lib/webrtc/stats/connectionStatsReportBuilder.js +20 -24
  411. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
  412. package/lib/webrtc/stats/groupCallStats.js +6 -8
  413. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  414. package/lib/webrtc/stats/media/mediaSsrcHandler.js +7 -8
  415. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
  416. package/lib/webrtc/stats/media/mediaTrackHandler.js +7 -9
  417. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
  418. package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
  419. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  420. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +7 -7
  421. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  422. package/lib/webrtc/stats/statsReport.js +1 -1
  423. package/lib/webrtc/stats/statsReport.js.map +1 -1
  424. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
  425. package/lib/webrtc/stats/summaryStatsReportGatherer.js +14 -14
  426. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -1
  427. package/lib/webrtc/stats/trackStatsBuilder.js +32 -34
  428. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
  429. package/lib/webrtc/stats/transportStats.js +3 -1
  430. package/lib/webrtc/stats/transportStatsBuilder.js +9 -9
  431. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
  432. package/lib/webrtc/stats/valueFormatter.js +1 -1
  433. package/lib/webrtc/stats/valueFormatter.js.map +1 -1
  434. package/package.json +18 -33
  435. package/src/@types/global.d.ts +2 -2
  436. package/src/ToDeviceMessageQueue.ts +2 -2
  437. package/src/browser-index.ts +4 -4
  438. package/src/client.ts +15 -20
  439. package/src/crypto-api/index.ts +17 -6
  440. package/src/embedded.ts +4 -6
  441. package/src/filter-component.ts +1 -0
  442. package/src/http-api/utils.ts +1 -1
  443. package/src/interactive-auth.ts +11 -5
  444. package/src/matrixrtc/LivekitTransport.ts +1 -1
  445. package/src/matrixrtc/MatrixRTCSession.ts +1 -1
  446. package/src/models/MSC3089Branch.ts +1 -1
  447. package/src/models/room-sticky-events.ts +1 -0
  448. package/src/models/room.ts +9 -11
  449. package/src/receipt-accumulator.ts +2 -0
  450. package/src/rendezvous/index.ts +1 -1
  451. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +2 -2
  452. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +1 -1
  453. package/src/rust-crypto/index.ts +6 -6
  454. package/src/rust-crypto/rust-crypto.ts +31 -7
  455. package/src/rust-crypto/verification.ts +1 -1
  456. package/src/sliding-sync-sdk.ts +5 -7
  457. package/src/store/indexeddb-local-backend.ts +3 -3
  458. package/src/sync.ts +6 -8
@@ -1 +1 @@
1
- {"version":3,"file":"event-context.js","names":["Direction","EventContext","constructor","ourEvent","_defineProperty","Backward","Forward","timeline","getEvent","ourEventIndex","getTimeline","getOurEventIndex","getPaginateToken","backwards","arguments","length","undefined","paginateTokens","setPaginateToken","token","addEvents","events","atStart","concat"],"sources":["../../src/models/event-context.ts"],"sourcesContent":["/*\nCopyright 2015 - 2021 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 { type MatrixEvent } from \"./event.ts\";\nimport { Direction } from \"./event-timeline.ts\";\n\nexport class EventContext {\n private timeline: MatrixEvent[];\n private ourEventIndex = 0;\n private paginateTokens: Record<Direction, string | null> = {\n [Direction.Backward]: null,\n [Direction.Forward]: null,\n };\n\n /**\n * Construct a new EventContext\n *\n * An eventcontext is used for circumstances such as search results, when we\n * have a particular event of interest, and a bunch of events before and after\n * it.\n *\n * It also stores pagination tokens for going backwards and forwards in the\n * timeline.\n *\n * @param ourEvent - the event at the centre of this context\n */\n public constructor(public readonly ourEvent: MatrixEvent) {\n this.timeline = [ourEvent];\n }\n\n /**\n * Get the main event of interest\n *\n * This is a convenience function for getTimeline()[getOurEventIndex()].\n *\n * @returns The event at the centre of this context.\n */\n public getEvent(): MatrixEvent {\n return this.timeline[this.ourEventIndex];\n }\n\n /**\n * Get the list of events in this context\n *\n * @returns An array of MatrixEvents\n */\n public getTimeline(): MatrixEvent[] {\n return this.timeline;\n }\n\n /**\n * Get the index in the timeline of our event\n */\n public getOurEventIndex(): number {\n return this.ourEventIndex;\n }\n\n /**\n * Get a pagination token.\n *\n * @param backwards - true to get the pagination token for going\n */\n public getPaginateToken(backwards = false): string | null {\n return this.paginateTokens[backwards ? Direction.Backward : Direction.Forward];\n }\n\n /**\n * Set a pagination token.\n *\n * Generally this will be used only by the matrix js sdk.\n *\n * @param token - pagination token\n * @param backwards - true to set the pagination token for going\n * backwards in time\n */\n public setPaginateToken(token?: string, backwards = false): void {\n this.paginateTokens[backwards ? Direction.Backward : Direction.Forward] = token ?? null;\n }\n\n /**\n * Add more events to the timeline\n *\n * @param events - new events, in timeline order\n * @param atStart - true to insert new events at the start\n */\n public addEvents(events: MatrixEvent[], atStart = false): void {\n // TODO: should we share logic with Room.addEventsToTimeline?\n // Should Room even use EventContext?\n\n if (atStart) {\n this.timeline = events.concat(this.timeline);\n this.ourEventIndex += events.length;\n } else {\n this.timeline = this.timeline.concat(events);\n }\n }\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAMC,YAAY,CAAC;EAQtB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACWC,WAAWA,CAAiBC,QAAqB,EAAE;IAAA,KAAvBA,QAAqB,GAArBA,QAAqB;IAAAC,eAAA;IAAAA,eAAA,wBAlBhC,CAAC;IAAAA,eAAA,yBACkC;MACvD,CAACJ,SAAS,CAACK,QAAQ,GAAG,IAAI;MAC1B,CAACL,SAAS,CAACM,OAAO,GAAG;IACzB,CAAC;IAeG,IAAI,CAACC,QAAQ,GAAG,CAACJ,QAAQ,CAAC;EAC9B;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACWK,QAAQA,CAAA,EAAgB;IAC3B,OAAO,IAAI,CAACD,QAAQ,CAAC,IAAI,CAACE,aAAa,CAAC;EAC5C;;EAEA;AACJ;AACA;AACA;AACA;EACWC,WAAWA,CAAA,EAAkB;IAChC,OAAO,IAAI,CAACH,QAAQ;EACxB;;EAEA;AACJ;AACA;EACWI,gBAAgBA,CAAA,EAAW;IAC9B,OAAO,IAAI,CAACF,aAAa;EAC7B;;EAEA;AACJ;AACA;AACA;AACA;EACWG,gBAAgBA,CAAA,EAAmC;IAAA,IAAlCC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACrC,OAAO,IAAI,CAACG,cAAc,CAACJ,SAAS,GAAGb,SAAS,CAACK,QAAQ,GAAGL,SAAS,CAACM,OAAO,CAAC;EAClF;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACWY,gBAAgBA,CAACC,KAAc,EAA2B;IAAA,IAAzBN,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACrD,IAAI,CAACG,cAAc,CAACJ,SAAS,GAAGb,SAAS,CAACK,QAAQ,GAAGL,SAAS,CAACM,OAAO,CAAC,GAAGa,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,IAAI;EAC3F;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACWC,SAASA,CAACC,MAAqB,EAAyB;IAAA,IAAvBC,OAAO,GAAAR,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACnD;IACA;;IAEA,IAAIQ,OAAO,EAAE;MACT,IAAI,CAACf,QAAQ,GAAGc,MAAM,CAACE,MAAM,CAAC,IAAI,CAAChB,QAAQ,CAAC;MAC5C,IAAI,CAACE,aAAa,IAAIY,MAAM,CAACN,MAAM;IACvC,CAAC,MAAM;MACH,IAAI,CAACR,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACgB,MAAM,CAACF,MAAM,CAAC;IAChD;EACJ;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"event-context.js","names":[],"sources":["../../src/models/event-context.ts"],"sourcesContent":["/*\nCopyright 2015 - 2021 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 { type MatrixEvent } from \"./event.ts\";\nimport { Direction } from \"./event-timeline.ts\";\n\nexport class EventContext {\n private timeline: MatrixEvent[];\n private ourEventIndex = 0;\n private paginateTokens: Record<Direction, string | null> = {\n [Direction.Backward]: null,\n [Direction.Forward]: null,\n };\n\n /**\n * Construct a new EventContext\n *\n * An eventcontext is used for circumstances such as search results, when we\n * have a particular event of interest, and a bunch of events before and after\n * it.\n *\n * It also stores pagination tokens for going backwards and forwards in the\n * timeline.\n *\n * @param ourEvent - the event at the centre of this context\n */\n public constructor(public readonly ourEvent: MatrixEvent) {\n this.timeline = [ourEvent];\n }\n\n /**\n * Get the main event of interest\n *\n * This is a convenience function for getTimeline()[getOurEventIndex()].\n *\n * @returns The event at the centre of this context.\n */\n public getEvent(): MatrixEvent {\n return this.timeline[this.ourEventIndex];\n }\n\n /**\n * Get the list of events in this context\n *\n * @returns An array of MatrixEvents\n */\n public getTimeline(): MatrixEvent[] {\n return this.timeline;\n }\n\n /**\n * Get the index in the timeline of our event\n */\n public getOurEventIndex(): number {\n return this.ourEventIndex;\n }\n\n /**\n * Get a pagination token.\n *\n * @param backwards - true to get the pagination token for going\n */\n public getPaginateToken(backwards = false): string | null {\n return this.paginateTokens[backwards ? Direction.Backward : Direction.Forward];\n }\n\n /**\n * Set a pagination token.\n *\n * Generally this will be used only by the matrix js sdk.\n *\n * @param token - pagination token\n * @param backwards - true to set the pagination token for going\n * backwards in time\n */\n public setPaginateToken(token?: string, backwards = false): void {\n this.paginateTokens[backwards ? Direction.Backward : Direction.Forward] = token ?? null;\n }\n\n /**\n * Add more events to the timeline\n *\n * @param events - new events, in timeline order\n * @param atStart - true to insert new events at the start\n */\n public addEvents(events: MatrixEvent[], atStart = false): void {\n // TODO: should we share logic with Room.addEventsToTimeline?\n // Should Room even use EventContext?\n\n if (atStart) {\n this.timeline = events.concat(this.timeline);\n this.ourEventIndex += events.length;\n } else {\n this.timeline = this.timeline.concat(events);\n }\n }\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAAS,SAAS,QAAQ,qBAAqB;AAE/C,OAAO,MAAM,YAAY,CAAC;EAQtB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACW,WAAW,CAAiB,QAAqB,EAAE;IAAA;IAAA,uCAlBlC,CAAC;IAAA,wCACkC;MACvD,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI;MAC1B,CAAC,SAAS,CAAC,OAAO,GAAG;IACzB,CAAC;IAAA,KAckC,QAAqB,GAArB,QAAqB;IACpD,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;EAC9B;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACW,QAAQ,GAAgB;IAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;EAC5C;;EAEA;AACJ;AACA;AACA;AACA;EACW,WAAW,GAAkB;IAChC,OAAO,IAAI,CAAC,QAAQ;EACxB;;EAEA;AACJ;AACA;EACW,gBAAgB,GAAW;IAC9B,OAAO,IAAI,CAAC,aAAa;EAC7B;;EAEA;AACJ;AACA;AACA;AACA;EACW,gBAAgB,CAAC,SAAS,GAAG,KAAK,EAAiB;IACtD,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;EAClF;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACW,gBAAgB,CAAC,KAAc,EAAE,SAAS,GAAG,KAAK,EAAQ;IAC7D,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI;EAC3F;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACW,SAAS,CAAC,MAAqB,EAAE,OAAO,GAAG,KAAK,EAAQ;IAC3D;IACA;;IAEA,IAAI,OAAO,EAAE;MACT,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;MAC5C,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM;IACvC,CAAC,MAAM;MACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IAChD;EACJ;AACJ","ignoreList":[]}
@@ -18,7 +18,7 @@ limitations under the License.
18
18
  * Enum for event statuses.
19
19
  * @readonly
20
20
  */
21
- export var EventStatus = /*#__PURE__*/function (EventStatus) {
21
+ export let EventStatus = /*#__PURE__*/function (EventStatus) {
22
22
  /** The event was not sent and will no longer be retried. */
23
23
  EventStatus["NOT_SENT"] = "not_sent";
24
24
  /** The message is being encrypted */
@@ -1 +1 @@
1
- {"version":3,"file":"event-status.js","names":["EventStatus"],"sources":["../../src/models/event-status.ts"],"sourcesContent":["/*\nCopyright 2015 - 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\n/**\n * Enum for event statuses.\n * @readonly\n */\nexport enum EventStatus {\n /** The event was not sent and will no longer be retried. */\n NOT_SENT = \"not_sent\",\n\n /** The message is being encrypted */\n ENCRYPTING = \"encrypting\",\n\n /** The event is in the process of being sent. */\n SENDING = \"sending\",\n\n /** The event is in a queue waiting to be sent. */\n QUEUED = \"queued\",\n\n /** The event has been sent to the server, but we have not yet received the echo. */\n SENT = \"sent\",\n\n /** The event was cancelled before it was successfully sent. */\n CANCELLED = \"cancelled\",\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAYA,WAAW,0BAAXA,WAAW;EACnB;EADQA,WAAW;EAInB;EAJQA,WAAW;EAOnB;EAPQA,WAAW;EAUnB;EAVQA,WAAW;EAanB;EAbQA,WAAW;EAgBnB;EAhBQA,WAAW;EAAA,OAAXA,WAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"event-status.js","names":[],"sources":["../../src/models/event-status.ts"],"sourcesContent":["/*\nCopyright 2015 - 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\n/**\n * Enum for event statuses.\n * @readonly\n */\nexport enum EventStatus {\n /** The event was not sent and will no longer be retried. */\n NOT_SENT = \"not_sent\",\n\n /** The message is being encrypted */\n ENCRYPTING = \"encrypting\",\n\n /** The event is in the process of being sent. */\n SENDING = \"sending\",\n\n /** The event is in a queue waiting to be sent. */\n QUEUED = \"queued\",\n\n /** The event has been sent to the server, but we have not yet received the echo. */\n SENT = \"sent\",\n\n /** The event was cancelled before it was successfully sent. */\n CANCELLED = \"cancelled\",\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAY,WAAW,0BAAX,WAAW;EACnB;EADQ,WAAW;EAInB;EAJQ,WAAW;EAOnB;EAPQ,WAAW;EAUnB;EAVQ,WAAW;EAanB;EAbQ,WAAW;EAgBnB;EAhBQ,WAAW;EAAA,OAAX,WAAW;AAAA","ignoreList":[]}
@@ -20,18 +20,18 @@ import { logger } from "../logger.js";
20
20
  import { RoomEvent } from "./room.js";
21
21
  import { TypedEventEmitter } from "./typed-event-emitter.js";
22
22
  import { RelationsContainer } from "./relations-container.js";
23
- var DEBUG = true;
23
+ const DEBUG = true;
24
24
 
25
25
  /* istanbul ignore next */
26
- var debuglog;
26
+ let debuglog;
27
27
  if (DEBUG) {
28
28
  // using bind means that we get to keep useful line numbers in the console
29
29
  debuglog = logger.log.bind(logger);
30
30
  } else {
31
31
  /* istanbul ignore next */
32
- debuglog = function debuglog() {};
32
+ debuglog = function () {};
33
33
  }
34
- export var DuplicateStrategy = /*#__PURE__*/function (DuplicateStrategy) {
34
+ export let DuplicateStrategy = /*#__PURE__*/function (DuplicateStrategy) {
35
35
  DuplicateStrategy["Ignore"] = "ignore";
36
36
  DuplicateStrategy["Replace"] = "replace";
37
37
  return DuplicateStrategy;
@@ -67,16 +67,8 @@ export class EventTimelineSet extends TypedEventEmitter {
67
67
  * @param threadListType - the type of thread list represented, if any
68
68
  * (e.g., All threads or My threads)
69
69
  */
70
- constructor(room) {
71
- var _this$room$relations, _this$room, _room$client;
72
- var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
73
- var client = arguments.length > 2 ? arguments[2] : undefined;
74
- var thread = arguments.length > 3 ? arguments[3] : undefined;
75
- var threadListType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
70
+ constructor(room, opts = {}, client, thread, threadListType = null) {
76
71
  super();
77
- this.room = room;
78
- this.thread = thread;
79
- this.threadListType = threadListType;
80
72
  _defineProperty(this, "relations", void 0);
81
73
  _defineProperty(this, "timelineSupport", void 0);
82
74
  _defineProperty(this, "displayPendingEvents", void 0);
@@ -84,6 +76,9 @@ export class EventTimelineSet extends TypedEventEmitter {
84
76
  _defineProperty(this, "timelines", void 0);
85
77
  _defineProperty(this, "_eventIdToTimeline", new Map());
86
78
  _defineProperty(this, "filter", void 0);
79
+ this.room = room;
80
+ this.thread = thread;
81
+ this.threadListType = threadListType;
87
82
  this.timelineSupport = Boolean(opts.timelineSupport);
88
83
  this.liveTimeline = new EventTimeline(this);
89
84
  this.displayPendingEvents = opts.pendingEvents !== false;
@@ -92,7 +87,7 @@ export class EventTimelineSet extends TypedEventEmitter {
92
87
  this.timelines = [this.liveTimeline];
93
88
  this._eventIdToTimeline = new Map();
94
89
  this.filter = opts.filter;
95
- this.relations = (_this$room$relations = (_this$room = this.room) === null || _this$room === void 0 ? void 0 : _this$room.relations) !== null && _this$room$relations !== void 0 ? _this$room$relations : new RelationsContainer((_room$client = room === null || room === void 0 ? void 0 : room.client) !== null && _room$client !== void 0 ? _room$client : client);
90
+ this.relations = this.room?.relations ?? new RelationsContainer(room?.client ?? client);
96
91
  }
97
92
 
98
93
  /**
@@ -169,7 +164,7 @@ export class EventTimelineSet extends TypedEventEmitter {
169
164
  * @param newEventId - event ID of the replacement event
170
165
  */
171
166
  replaceEventId(oldEventId, newEventId) {
172
- var existingTimeline = this._eventIdToTimeline.get(oldEventId);
167
+ const existingTimeline = this._eventIdToTimeline.get(oldEventId);
173
168
  if (existingTimeline) {
174
169
  this._eventIdToTimeline.delete(oldEventId);
175
170
  this._eventIdToTimeline.set(newEventId, existingTimeline);
@@ -198,9 +193,9 @@ export class EventTimelineSet extends TypedEventEmitter {
198
193
  // of the new timeline.
199
194
 
200
195
  // if timeline support is disabled, forget about the old timelines
201
- var resetAllTimelines = !this.timelineSupport || !forwardPaginationToken;
202
- var oldTimeline = this.liveTimeline;
203
- var newTimeline = resetAllTimelines ? oldTimeline.forkLive(EventTimeline.FORWARDS) : oldTimeline.fork(EventTimeline.FORWARDS);
196
+ const resetAllTimelines = !this.timelineSupport || !forwardPaginationToken;
197
+ const oldTimeline = this.liveTimeline;
198
+ const newTimeline = resetAllTimelines ? oldTimeline.forkLive(EventTimeline.FORWARDS) : oldTimeline.fork(EventTimeline.FORWARDS);
204
199
  if (resetAllTimelines) {
205
200
  this.timelines = [newTimeline];
206
201
  this._eventIdToTimeline = new Map();
@@ -216,7 +211,7 @@ export class EventTimelineSet extends TypedEventEmitter {
216
211
  // make sure we set the pagination token before firing timelineReset,
217
212
  // otherwise clients which start back-paginating will fail, and then get
218
213
  // stuck without realising that they *can* back-paginate.
219
- newTimeline.setPaginationToken(backPaginationToken !== null && backPaginationToken !== void 0 ? backPaginationToken : null, EventTimeline.BACKWARDS);
214
+ newTimeline.setPaginationToken(backPaginationToken ?? null, EventTimeline.BACKWARDS);
220
215
 
221
216
  // Now we can swap the live timeline to the new one.
222
217
  this.liveTimeline = newTimeline;
@@ -234,7 +229,7 @@ export class EventTimelineSet extends TypedEventEmitter {
234
229
  if (eventId === null || eventId === undefined) {
235
230
  return null;
236
231
  }
237
- var res = this._eventIdToTimeline.get(eventId);
232
+ const res = this._eventIdToTimeline.get(eventId);
238
233
  return res === undefined ? null : res;
239
234
  }
240
235
 
@@ -245,7 +240,7 @@ export class EventTimelineSet extends TypedEventEmitter {
245
240
  * @returns the given event, or undefined if unknown
246
241
  */
247
242
  findEventById(eventId) {
248
- var tl = this.getTimelineForEvent(eventId);
243
+ const tl = this.getTimelineForEvent(eventId);
249
244
  if (!tl) {
250
245
  return undefined;
251
246
  }
@@ -263,7 +258,7 @@ export class EventTimelineSet extends TypedEventEmitter {
263
258
  if (!this.timelineSupport) {
264
259
  throw new Error("timeline support is disabled. Set the 'timelineSupport'" + " parameter to true when creating MatrixClient to enable" + " it.");
265
260
  }
266
- var timeline = new EventTimeline(this);
261
+ const timeline = new EventTimeline(this);
267
262
  this.timelines.push(timeline);
268
263
  return timeline;
269
264
  }
@@ -301,8 +296,8 @@ export class EventTimelineSet extends TypedEventEmitter {
301
296
  return;
302
297
  }
303
298
  }
304
- var direction = toStartOfTimeline ? EventTimeline.BACKWARDS : EventTimeline.FORWARDS;
305
- var inverseDirection = toStartOfTimeline ? EventTimeline.FORWARDS : EventTimeline.BACKWARDS;
299
+ const direction = toStartOfTimeline ? EventTimeline.BACKWARDS : EventTimeline.FORWARDS;
300
+ const inverseDirection = toStartOfTimeline ? EventTimeline.FORWARDS : EventTimeline.BACKWARDS;
306
301
 
307
302
  // Adding events to timelines can be quite complicated. The following
308
303
  // illustrates some of the corner-cases.
@@ -373,11 +368,11 @@ export class EventTimelineSet extends TypedEventEmitter {
373
368
  // paginating with the same token, we might as well use the new pagination
374
369
  // token in the hope that we eventually work our way out of the mess.
375
370
 
376
- var didUpdate = false;
377
- var lastEventWasNew = false;
378
- for (var event of events) {
379
- var eventId = event.getId();
380
- var existingTimeline = this._eventIdToTimeline.get(eventId);
371
+ let didUpdate = false;
372
+ let lastEventWasNew = false;
373
+ for (const event of events) {
374
+ const eventId = event.getId();
375
+ const existingTimeline = this._eventIdToTimeline.get(eventId);
381
376
  if (!existingTimeline) {
382
377
  // we don't know about this event yet. Just add it to the timeline.
383
378
  this.addEventToTimeline(event, timeline, {
@@ -393,7 +388,7 @@ export class EventTimelineSet extends TypedEventEmitter {
393
388
  debuglog("Event " + eventId + " already in timeline " + timeline);
394
389
  continue;
395
390
  }
396
- var neighbour = timeline.getNeighbouringTimeline(direction);
391
+ const neighbour = timeline.getNeighbouringTimeline(direction);
397
392
  if (neighbour) {
398
393
  // this timeline already has a neighbour in the relevant direction;
399
394
  // let's assume the timelines are already correctly linked up, and
@@ -417,10 +412,10 @@ export class EventTimelineSet extends TypedEventEmitter {
417
412
  logger.info("Already have timeline for " + eventId + " - joining timeline " + timeline + " to " + existingTimeline);
418
413
 
419
414
  // Variables to keep the line length limited below.
420
- var existingIsLive = existingTimeline === this.liveTimeline;
421
- var timelineIsLive = timeline === this.liveTimeline;
422
- var backwardsIsLive = direction === EventTimeline.BACKWARDS && existingIsLive;
423
- var forwardsIsLive = direction === EventTimeline.FORWARDS && timelineIsLive;
415
+ const existingIsLive = existingTimeline === this.liveTimeline;
416
+ const timelineIsLive = timeline === this.liveTimeline;
417
+ const backwardsIsLive = direction === EventTimeline.BACKWARDS && existingIsLive;
418
+ const forwardsIsLive = direction === EventTimeline.FORWARDS && timelineIsLive;
424
419
  if (backwardsIsLive || forwardsIsLive) {
425
420
  // The live timeline should never be spliced into a non-live position.
426
421
  // We use independent logging to better discover the problem at a glance.
@@ -447,10 +442,10 @@ export class EventTimelineSet extends TypedEventEmitter {
447
442
  lastEventWasNew,
448
443
  didUpdate
449
444
  }); // for debugging
450
- logger.warn("Refusing to set forwards pagination token of live timeline " + "".concat(timeline, " to ").concat(paginationToken));
445
+ logger.warn(`Refusing to set forwards pagination token of live timeline ` + `${timeline} to ${paginationToken}`);
451
446
  return;
452
447
  }
453
- timeline.setPaginationToken(paginationToken !== null && paginationToken !== void 0 ? paginationToken : null, direction);
448
+ timeline.setPaginationToken(paginationToken ?? null, direction);
454
449
  }
455
450
  }
456
451
 
@@ -460,24 +455,25 @@ export class EventTimelineSet extends TypedEventEmitter {
460
455
  * @param event - Event to be added
461
456
  * @param options - addLiveEvent options
462
457
  */
463
- addLiveEvent(event, _ref) {
464
- var duplicateStrategy = _ref.duplicateStrategy,
465
- fromCache = _ref.fromCache,
466
- roomState = _ref.roomState,
467
- timelineWasEmpty = _ref.timelineWasEmpty,
468
- addToState = _ref.addToState;
458
+ addLiveEvent(event, {
459
+ duplicateStrategy,
460
+ fromCache,
461
+ roomState,
462
+ timelineWasEmpty,
463
+ addToState
464
+ }) {
469
465
  if (this.filter) {
470
- var events = this.filter.filterRoomTimeline([event]);
466
+ const events = this.filter.filterRoomTimeline([event]);
471
467
  if (!events.length) {
472
468
  return;
473
469
  }
474
470
  }
475
- var timeline = this._eventIdToTimeline.get(event.getId());
471
+ const timeline = this._eventIdToTimeline.get(event.getId());
476
472
  if (timeline) {
477
473
  if (duplicateStrategy === DuplicateStrategy.Replace) {
478
474
  debuglog("EventTimelineSet.addLiveEvent: replacing duplicate event " + event.getId());
479
- var tlEvents = timeline.getEvents();
480
- for (var j = 0; j < tlEvents.length; j++) {
475
+ const tlEvents = timeline.getEvents();
476
+ for (let j = 0; j < tlEvents.length; j++) {
481
477
  if (tlEvents[j].getId() === event.getId()) {
482
478
  // still need to set the right metadata on this event
483
479
  if (!roomState) {
@@ -517,18 +513,18 @@ export class EventTimelineSet extends TypedEventEmitter {
517
513
  * @remarks
518
514
  * Fires {@link RoomEvent.Timeline}
519
515
  */
520
- addEventToTimeline(event, timeline, _ref2) {
521
- var toStartOfTimeline = _ref2.toStartOfTimeline,
522
- _ref2$fromCache = _ref2.fromCache,
523
- fromCache = _ref2$fromCache === void 0 ? false : _ref2$fromCache,
524
- roomState = _ref2.roomState,
525
- timelineWasEmpty = _ref2.timelineWasEmpty,
526
- addToState = _ref2.addToState;
516
+ addEventToTimeline(event, timeline, {
517
+ toStartOfTimeline,
518
+ fromCache = false,
519
+ roomState,
520
+ timelineWasEmpty,
521
+ addToState
522
+ }) {
527
523
  if (timeline.getTimelineSet() !== this) {
528
- var _this$thread;
529
- throw new Error("EventTimelineSet.addEventToTimeline: Timeline=".concat(timeline.toString(), " does not belong \" +\n \"in timelineSet(threadId=").concat((_this$thread = this.thread) === null || _this$thread === void 0 ? void 0 : _this$thread.id, ")"));
524
+ throw new Error(`EventTimelineSet.addEventToTimeline: Timeline=${timeline.toString()} does not belong " +
525
+ "in timelineSet(threadId=${this.thread?.id})`);
530
526
  }
531
- var eventId = event.getId();
527
+ const eventId = event.getId();
532
528
  this.relations.aggregateParentEvent(event);
533
529
  this.relations.aggregateChildEvent(event, this);
534
530
 
@@ -538,12 +534,11 @@ export class EventTimelineSet extends TypedEventEmitter {
538
534
  // We can only run this check for timelines with a `room` because `canContain`
539
535
  // requires it
540
536
  if (this.room && !this.canContain(event)) {
541
- var _this$thread2;
542
- var eventDebugString = "event=".concat(eventId);
537
+ let eventDebugString = `event=${eventId}`;
543
538
  if (event.threadRootId) {
544
- eventDebugString += "(belongs to thread=".concat(event.threadRootId, ")");
539
+ eventDebugString += `(belongs to thread=${event.threadRootId})`;
545
540
  }
546
- logger.warn("EventTimelineSet.addEventToTimeline: Ignoring ".concat(eventDebugString, " that does not belong ") + "in timeline=".concat(timeline.toString(), " timelineSet(threadId=").concat((_this$thread2 = this.thread) === null || _this$thread2 === void 0 ? void 0 : _this$thread2.id, ")"));
541
+ logger.warn(`EventTimelineSet.addEventToTimeline: Ignoring ${eventDebugString} that does not belong ` + `in timeline=${timeline.toString()} timelineSet(threadId=${this.thread?.id})`);
547
542
  return;
548
543
  }
549
544
  timeline.addEvent(event, {
@@ -553,7 +548,7 @@ export class EventTimelineSet extends TypedEventEmitter {
553
548
  addToState
554
549
  });
555
550
  this._eventIdToTimeline.set(eventId, timeline);
556
- var data = {
551
+ const data = {
557
552
  timeline: timeline,
558
553
  liveEvent: !toStartOfTimeline && timeline == this.liveTimeline && !fromCache
559
554
  };
@@ -580,10 +575,10 @@ export class EventTimelineSet extends TypedEventEmitter {
580
575
  */
581
576
  insertEventIntoTimeline(event, timeline, roomState, addToState) {
582
577
  if (timeline.getTimelineSet() !== this) {
583
- var _this$thread3;
584
- throw new Error("EventTimelineSet.insertEventIntoTimeline: Timeline=".concat(timeline.toString(), " does not belong \" +\n \"in timelineSet(threadId=").concat((_this$thread3 = this.thread) === null || _this$thread3 === void 0 ? void 0 : _this$thread3.id, ")"));
578
+ throw new Error(`EventTimelineSet.insertEventIntoTimeline: Timeline=${timeline.toString()} does not belong " +
579
+ "in timelineSet(threadId=${this.thread?.id})`);
585
580
  }
586
- var eventId = event.getId();
581
+ const eventId = event.getId();
587
582
  this.relations.aggregateParentEvent(event);
588
583
  this.relations.aggregateChildEvent(event, this);
589
584
 
@@ -593,17 +588,16 @@ export class EventTimelineSet extends TypedEventEmitter {
593
588
  // We can only run this check for timelines with a `room` because `canContain`
594
589
  // requires it
595
590
  if (this.room && !this.canContain(event)) {
596
- var _this$thread4;
597
- var eventDebugString = "event=".concat(eventId);
591
+ let eventDebugString = `event=${eventId}`;
598
592
  if (event.threadRootId) {
599
- eventDebugString += "(belongs to thread=".concat(event.threadRootId, ")");
593
+ eventDebugString += `(belongs to thread=${event.threadRootId})`;
600
594
  }
601
- logger.warn("EventTimelineSet.insertEventIntoTimeline: Ignoring ".concat(eventDebugString, " that does not belong ") + "in timeline=".concat(timeline.toString(), " timelineSet(threadId=").concat((_this$thread4 = this.thread) === null || _this$thread4 === void 0 ? void 0 : _this$thread4.id, ")"));
595
+ logger.warn(`EventTimelineSet.insertEventIntoTimeline: Ignoring ${eventDebugString} that does not belong ` + `in timeline=${timeline.toString()} timelineSet(threadId=${this.thread?.id})`);
602
596
  return;
603
597
  }
604
598
 
605
599
  // Find the event that this event is related to - the "parent"
606
- var parentEventId = event.relationEventId;
600
+ const parentEventId = event.relationEventId;
607
601
  if (!parentEventId) {
608
602
  // Not related to anything - we just append
609
603
  this.addEventToTimeline(event, timeline, {
@@ -615,15 +609,15 @@ export class EventTimelineSet extends TypedEventEmitter {
615
609
  });
616
610
  return;
617
611
  }
618
- var parentEvent = this.findEventById(parentEventId);
619
- var timelineEvents = timeline.getEvents();
612
+ const parentEvent = this.findEventById(parentEventId);
613
+ const timelineEvents = timeline.getEvents();
620
614
 
621
615
  // Start searching from the parent event, or if it's not loaded, start
622
616
  // at the beginning and insert purely using timestamp order.
623
- var parentIndex = parentEvent !== undefined ? timelineEvents.indexOf(parentEvent) : 0;
624
- var insertIndex = parentIndex;
617
+ const parentIndex = parentEvent !== undefined ? timelineEvents.indexOf(parentEvent) : 0;
618
+ let insertIndex = parentIndex;
625
619
  for (; insertIndex < timelineEvents.length; insertIndex++) {
626
- var nextEvent = timelineEvents[insertIndex];
620
+ const nextEvent = timelineEvents[insertIndex];
627
621
  if (nextEvent.getTs() > event.getTs()) {
628
622
  // We found an event later than ours, so insert before that.
629
623
  break;
@@ -634,7 +628,7 @@ export class EventTimelineSet extends TypedEventEmitter {
634
628
 
635
629
  timeline.insertEvent(event, insertIndex, roomState, addToState);
636
630
  this._eventIdToTimeline.set(eventId, timeline);
637
- var data = {
631
+ const data = {
638
632
  timeline: timeline,
639
633
  // The purpose of this method is inserting events in the middle of the
640
634
  // timeline, so the events are, by definition, not live (whether or not
@@ -657,7 +651,7 @@ export class EventTimelineSet extends TypedEventEmitter {
657
651
  */
658
652
  handleRemoteEcho(localEvent, oldEventId, newEventId) {
659
653
  // XXX: why don't we infer newEventId from localEvent?
660
- var existingTimeline = this._eventIdToTimeline.get(oldEventId);
654
+ const existingTimeline = this._eventIdToTimeline.get(oldEventId);
661
655
  if (existingTimeline) {
662
656
  this._eventIdToTimeline.delete(oldEventId);
663
657
  this._eventIdToTimeline.set(newEventId, existingTimeline);
@@ -678,14 +672,14 @@ export class EventTimelineSet extends TypedEventEmitter {
678
672
  * in this room.
679
673
  */
680
674
  removeEvent(eventId) {
681
- var timeline = this._eventIdToTimeline.get(eventId);
675
+ const timeline = this._eventIdToTimeline.get(eventId);
682
676
  if (!timeline) {
683
677
  return null;
684
678
  }
685
- var removed = timeline.removeEvent(eventId);
679
+ const removed = timeline.removeEvent(eventId);
686
680
  if (removed) {
687
681
  this._eventIdToTimeline.delete(eventId);
688
- var data = {
682
+ const data = {
689
683
  timeline: timeline
690
684
  };
691
685
  this.emit(RoomEvent.Timeline, removed, this.room, undefined, true, data);
@@ -708,8 +702,8 @@ export class EventTimelineSet extends TypedEventEmitter {
708
702
  // optimise this case
709
703
  return 0;
710
704
  }
711
- var timeline1 = this._eventIdToTimeline.get(eventId1);
712
- var timeline2 = this._eventIdToTimeline.get(eventId2);
705
+ const timeline1 = this._eventIdToTimeline.get(eventId1);
706
+ const timeline2 = this._eventIdToTimeline.get(eventId2);
713
707
  if (timeline1 === undefined) {
714
708
  return null;
715
709
  }
@@ -718,11 +712,11 @@ export class EventTimelineSet extends TypedEventEmitter {
718
712
  }
719
713
  if (timeline1 === timeline2) {
720
714
  // both events are in the same timeline - figure out their relative indices
721
- var idx1 = undefined;
722
- var idx2 = undefined;
723
- var events = timeline1.getEvents();
724
- for (var idx = 0; idx < events.length && (idx1 === undefined || idx2 === undefined); idx++) {
725
- var evId = events[idx].getId();
715
+ let idx1 = undefined;
716
+ let idx2 = undefined;
717
+ const events = timeline1.getEvents();
718
+ for (let idx = 0; idx < events.length && (idx1 === undefined || idx2 === undefined); idx++) {
719
+ const evId = events[idx].getId();
726
720
  if (evId == eventId1) {
727
721
  idx1 = idx;
728
722
  }
@@ -730,7 +724,7 @@ export class EventTimelineSet extends TypedEventEmitter {
730
724
  idx2 = idx;
731
725
  }
732
726
  }
733
- var difference = idx1 - idx2;
727
+ const difference = idx1 - idx2;
734
728
 
735
729
  // Return the sign of difference.
736
730
  if (difference < 0) {
@@ -746,7 +740,7 @@ export class EventTimelineSet extends TypedEventEmitter {
746
740
  // linkedlist to see which comes first.
747
741
 
748
742
  // first work forwards from timeline1
749
- var tl = timeline1;
743
+ let tl = timeline1;
750
744
  while (tl) {
751
745
  if (tl === timeline2) {
752
746
  // timeline1 is before timeline2
@@ -784,16 +778,16 @@ export class EventTimelineSet extends TypedEventEmitter {
784
778
  if (!this.room) {
785
779
  throw new Error("Cannot call `EventTimelineSet::canContain without a `room` set. " + "Set the room when creating the EventTimelineSet to call this method.");
786
780
  }
787
- var _this$room$eventShoul = this.room.eventShouldLiveIn(event),
788
- threadId = _this$room$eventShoul.threadId,
789
- shouldLiveInRoom = _this$room$eventShoul.shouldLiveInRoom,
790
- shouldLiveInThread = _this$room$eventShoul.shouldLiveInThread;
781
+ const {
782
+ threadId,
783
+ shouldLiveInRoom,
784
+ shouldLiveInThread
785
+ } = this.room.eventShouldLiveIn(event);
791
786
  if (this.thread) {
792
787
  return this.thread.id === threadId;
793
788
  }
794
789
  if (!shouldLiveInRoom && !shouldLiveInThread) {
795
- var _this$room2;
796
- logger.warn("EventTimelineSet:canContain event encountered which cannot be added to any timeline roomId=".concat((_this$room2 = this.room) === null || _this$room2 === void 0 ? void 0 : _this$room2.roomId, " eventId=").concat(event.getId(), " threadId=").concat(event.threadRootId));
790
+ logger.warn(`EventTimelineSet:canContain event encountered which cannot be added to any timeline roomId=${this.room?.roomId} eventId=${event.getId()} threadId=${event.threadRootId}`);
797
791
  }
798
792
  return shouldLiveInRoom;
799
793
  }