@textrp/briij-js-sdk 41.0.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 (1104) hide show
  1. package/CHANGELOG.md +6464 -0
  2. package/LICENSE +177 -0
  3. package/README.md +477 -0
  4. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +14 -0
  5. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +1 -0
  6. package/lib/@types/AESEncryptedSecretStoragePayload.js +1 -0
  7. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +1 -0
  8. package/lib/@types/IIdentityServerProvider.d.ts +9 -0
  9. package/lib/@types/IIdentityServerProvider.d.ts.map +1 -0
  10. package/lib/@types/IIdentityServerProvider.js +1 -0
  11. package/lib/@types/IIdentityServerProvider.js.map +1 -0
  12. package/lib/@types/PushRules.d.ts +140 -0
  13. package/lib/@types/PushRules.d.ts.map +1 -0
  14. package/lib/@types/PushRules.js +94 -0
  15. package/lib/@types/PushRules.js.map +1 -0
  16. package/lib/@types/another-json.d.js +0 -0
  17. package/lib/@types/another-json.d.js.map +1 -0
  18. package/lib/@types/auth.d.ts +213 -0
  19. package/lib/@types/auth.d.ts.map +1 -0
  20. package/lib/@types/auth.js +107 -0
  21. package/lib/@types/auth.js.map +1 -0
  22. package/lib/@types/beacon.d.ts +106 -0
  23. package/lib/@types/beacon.d.ts.map +1 -0
  24. package/lib/@types/beacon.js +119 -0
  25. package/lib/@types/beacon.js.map +1 -0
  26. package/lib/@types/common.d.ts +10 -0
  27. package/lib/@types/common.d.ts.map +1 -0
  28. package/lib/@types/common.js +1 -0
  29. package/lib/@types/common.js.map +1 -0
  30. package/lib/@types/crypto.d.ts +46 -0
  31. package/lib/@types/crypto.d.ts.map +1 -0
  32. package/lib/@types/crypto.js +1 -0
  33. package/lib/@types/crypto.js.map +1 -0
  34. package/lib/@types/event.d.ts +356 -0
  35. package/lib/@types/event.d.ts.map +1 -0
  36. package/lib/@types/event.js +280 -0
  37. package/lib/@types/event.js.map +1 -0
  38. package/lib/@types/events.d.ts +92 -0
  39. package/lib/@types/events.d.ts.map +1 -0
  40. package/lib/@types/events.js +1 -0
  41. package/lib/@types/events.js.map +1 -0
  42. package/lib/@types/extensible_events.d.ts +98 -0
  43. package/lib/@types/extensible_events.d.ts.map +1 -0
  44. package/lib/@types/extensible_events.js +116 -0
  45. package/lib/@types/extensible_events.js.map +1 -0
  46. package/lib/@types/global.d.js +18 -0
  47. package/lib/@types/global.d.js.map +1 -0
  48. package/lib/@types/local_notifications.d.ts +4 -0
  49. package/lib/@types/local_notifications.d.ts.map +1 -0
  50. package/lib/@types/local_notifications.js +1 -0
  51. package/lib/@types/local_notifications.js.map +1 -0
  52. package/lib/@types/location.d.ts +60 -0
  53. package/lib/@types/location.d.ts.map +1 -0
  54. package/lib/@types/location.js +66 -0
  55. package/lib/@types/location.js.map +1 -0
  56. package/lib/@types/matrix-sdk-crypto-wasm.d.js +1 -0
  57. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +1 -0
  58. package/lib/@types/media.d.ts +220 -0
  59. package/lib/@types/media.d.ts.map +1 -0
  60. package/lib/@types/media.js +1 -0
  61. package/lib/@types/media.js.map +1 -0
  62. package/lib/@types/membership.d.ts +41 -0
  63. package/lib/@types/membership.d.ts.map +1 -0
  64. package/lib/@types/membership.js +58 -0
  65. package/lib/@types/membership.js.map +1 -0
  66. package/lib/@types/partials.d.ts +72 -0
  67. package/lib/@types/partials.d.ts.map +1 -0
  68. package/lib/@types/partials.js +71 -0
  69. package/lib/@types/partials.js.map +1 -0
  70. package/lib/@types/polls.d.ts +89 -0
  71. package/lib/@types/polls.d.ts.map +1 -0
  72. package/lib/@types/polls.js +86 -0
  73. package/lib/@types/polls.js.map +1 -0
  74. package/lib/@types/read_receipts.d.ts +36 -0
  75. package/lib/@types/read_receipts.d.ts.map +1 -0
  76. package/lib/@types/read_receipts.js +27 -0
  77. package/lib/@types/read_receipts.js.map +1 -0
  78. package/lib/@types/registration.d.ts +85 -0
  79. package/lib/@types/registration.d.ts.map +1 -0
  80. package/lib/@types/registration.js +1 -0
  81. package/lib/@types/registration.js.map +1 -0
  82. package/lib/@types/requests.d.ts +267 -0
  83. package/lib/@types/requests.d.ts.map +1 -0
  84. package/lib/@types/requests.js +42 -0
  85. package/lib/@types/requests.js.map +1 -0
  86. package/lib/@types/search.d.ts +90 -0
  87. package/lib/@types/search.d.ts.map +1 -0
  88. package/lib/@types/search.js +30 -0
  89. package/lib/@types/search.js.map +1 -0
  90. package/lib/@types/signed.d.ts +9 -0
  91. package/lib/@types/signed.d.ts.map +1 -0
  92. package/lib/@types/signed.js +1 -0
  93. package/lib/@types/signed.js.map +1 -0
  94. package/lib/@types/spaces.d.ts +16 -0
  95. package/lib/@types/spaces.d.ts.map +1 -0
  96. package/lib/@types/spaces.js +1 -0
  97. package/lib/@types/spaces.js.map +1 -0
  98. package/lib/@types/state_events.d.ts +121 -0
  99. package/lib/@types/state_events.d.ts.map +1 -0
  100. package/lib/@types/state_events.js +1 -0
  101. package/lib/@types/state_events.js.map +1 -0
  102. package/lib/@types/synapse.d.ts +19 -0
  103. package/lib/@types/synapse.d.ts.map +1 -0
  104. package/lib/@types/synapse.js +1 -0
  105. package/lib/@types/synapse.js.map +1 -0
  106. package/lib/@types/sync.d.ts +8 -0
  107. package/lib/@types/sync.d.ts.map +1 -0
  108. package/lib/@types/sync.js +25 -0
  109. package/lib/@types/sync.js.map +1 -0
  110. package/lib/@types/threepids.d.ts +12 -0
  111. package/lib/@types/threepids.d.ts.map +1 -0
  112. package/lib/@types/threepids.js +24 -0
  113. package/lib/@types/threepids.js.map +1 -0
  114. package/lib/@types/topic.d.ts +55 -0
  115. package/lib/@types/topic.d.ts.map +1 -0
  116. package/lib/@types/topic.js +62 -0
  117. package/lib/@types/topic.js.map +1 -0
  118. package/lib/@types/uia.d.ts +8 -0
  119. package/lib/@types/uia.d.ts.map +1 -0
  120. package/lib/@types/uia.js +1 -0
  121. package/lib/@types/uia.js.map +1 -0
  122. package/lib/NamespacedValue.d.ts +32 -0
  123. package/lib/NamespacedValue.d.ts.map +1 -0
  124. package/lib/NamespacedValue.js +113 -0
  125. package/lib/NamespacedValue.js.map +1 -0
  126. package/lib/ReEmitter.d.ts +15 -0
  127. package/lib/ReEmitter.d.ts.map +1 -0
  128. package/lib/ReEmitter.js +87 -0
  129. package/lib/ReEmitter.js.map +1 -0
  130. package/lib/ToDeviceMessageQueue.d.ts +30 -0
  131. package/lib/ToDeviceMessageQueue.d.ts.map +1 -0
  132. package/lib/ToDeviceMessageQueue.js +135 -0
  133. package/lib/ToDeviceMessageQueue.js.map +1 -0
  134. package/lib/autodiscovery.d.ts +136 -0
  135. package/lib/autodiscovery.d.ts.map +1 -0
  136. package/lib/autodiscovery.js +464 -0
  137. package/lib/autodiscovery.js.map +1 -0
  138. package/lib/base64.d.ts +25 -0
  139. package/lib/base64.d.ts.map +1 -0
  140. package/lib/base64.js +95 -0
  141. package/lib/base64.js.map +1 -0
  142. package/lib/briij.d.ts +116 -0
  143. package/lib/briij.d.ts.map +1 -0
  144. package/lib/briij.js +145 -0
  145. package/lib/briij.js.map +1 -0
  146. package/lib/browser-index.d.ts +8 -0
  147. package/lib/browser-index.d.ts.map +1 -0
  148. package/lib/browser-index.js +35 -0
  149. package/lib/browser-index.js.map +1 -0
  150. package/lib/client.d.ts +3493 -0
  151. package/lib/client.d.ts.map +1 -0
  152. package/lib/client.js +7482 -0
  153. package/lib/client.js.map +1 -0
  154. package/lib/common-crypto/CryptoBackend.d.ts +234 -0
  155. package/lib/common-crypto/CryptoBackend.d.ts.map +1 -0
  156. package/lib/common-crypto/CryptoBackend.js +69 -0
  157. package/lib/common-crypto/CryptoBackend.js.map +1 -0
  158. package/lib/common-crypto/key-passphrase.d.ts +14 -0
  159. package/lib/common-crypto/key-passphrase.d.ts.map +1 -0
  160. package/lib/common-crypto/key-passphrase.js +33 -0
  161. package/lib/common-crypto/key-passphrase.js.map +1 -0
  162. package/lib/content-helpers.d.ts +90 -0
  163. package/lib/content-helpers.d.ts.map +1 -0
  164. package/lib/content-helpers.js +262 -0
  165. package/lib/content-helpers.js.map +1 -0
  166. package/lib/content-repo.d.ts +25 -0
  167. package/lib/content-repo.d.ts.map +1 -0
  168. package/lib/content-repo.js +109 -0
  169. package/lib/content-repo.js.map +1 -0
  170. package/lib/crypto/store/base.d.ts +301 -0
  171. package/lib/crypto/store/base.d.ts.map +1 -0
  172. package/lib/crypto/store/base.js +145 -0
  173. package/lib/crypto/store/base.js.map +1 -0
  174. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +94 -0
  175. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +1 -0
  176. package/lib/crypto/store/indexeddb-crypto-store-backend.js +604 -0
  177. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -0
  178. package/lib/crypto/store/indexeddb-crypto-store.d.ts +251 -0
  179. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +1 -0
  180. package/lib/crypto/store/indexeddb-crypto-store.js +477 -0
  181. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -0
  182. package/lib/crypto/store/localStorage-crypto-store.d.ts +102 -0
  183. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +1 -0
  184. package/lib/crypto/store/localStorage-crypto-store.js +374 -0
  185. package/lib/crypto/store/localStorage-crypto-store.js.map +1 -0
  186. package/lib/crypto/store/memory-crypto-store.d.ts +117 -0
  187. package/lib/crypto/store/memory-crypto-store.d.ts.map +1 -0
  188. package/lib/crypto/store/memory-crypto-store.js +311 -0
  189. package/lib/crypto/store/memory-crypto-store.js.map +1 -0
  190. package/lib/crypto-api/CryptoEvent.d.ts +120 -0
  191. package/lib/crypto-api/CryptoEvent.d.ts.map +1 -0
  192. package/lib/crypto-api/CryptoEvent.js +137 -0
  193. package/lib/crypto-api/CryptoEvent.js.map +1 -0
  194. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +26 -0
  195. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +1 -0
  196. package/lib/crypto-api/CryptoEventHandlerMap.js +1 -0
  197. package/lib/crypto-api/CryptoEventHandlerMap.js.map +1 -0
  198. package/lib/crypto-api/index.d.ts +1160 -0
  199. package/lib/crypto-api/index.d.ts.map +1 -0
  200. package/lib/crypto-api/index.js +410 -0
  201. package/lib/crypto-api/index.js.map +1 -0
  202. package/lib/crypto-api/key-passphrase.d.ts +11 -0
  203. package/lib/crypto-api/key-passphrase.d.ts.map +1 -0
  204. package/lib/crypto-api/key-passphrase.js +51 -0
  205. package/lib/crypto-api/key-passphrase.js.map +1 -0
  206. package/lib/crypto-api/keybackup.d.ts +87 -0
  207. package/lib/crypto-api/keybackup.d.ts.map +1 -0
  208. package/lib/crypto-api/keybackup.js +1 -0
  209. package/lib/crypto-api/keybackup.js.map +1 -0
  210. package/lib/crypto-api/recovery-key.d.ts +11 -0
  211. package/lib/crypto-api/recovery-key.d.ts.map +1 -0
  212. package/lib/crypto-api/recovery-key.js +65 -0
  213. package/lib/crypto-api/recovery-key.js.map +1 -0
  214. package/lib/crypto-api/verification.d.ts +315 -0
  215. package/lib/crypto-api/verification.d.ts.map +1 -0
  216. package/lib/crypto-api/verification.js +130 -0
  217. package/lib/crypto-api/verification.js.map +1 -0
  218. package/lib/digest.d.ts +10 -0
  219. package/lib/digest.d.ts.map +1 -0
  220. package/lib/digest.js +40 -0
  221. package/lib/digest.js.map +1 -0
  222. package/lib/embedded.d.ts +182 -0
  223. package/lib/embedded.d.ts.map +1 -0
  224. package/lib/embedded.js +746 -0
  225. package/lib/embedded.js.map +1 -0
  226. package/lib/errors.d.ts +38 -0
  227. package/lib/errors.d.ts.map +1 -0
  228. package/lib/errors.js +73 -0
  229. package/lib/errors.js.map +1 -0
  230. package/lib/event-mapper.d.ts +9 -0
  231. package/lib/event-mapper.d.ts.map +1 -0
  232. package/lib/event-mapper.js +74 -0
  233. package/lib/event-mapper.js.map +1 -0
  234. package/lib/extensible_events_v1/ExtensibleEvent.d.ts +38 -0
  235. package/lib/extensible_events_v1/ExtensibleEvent.d.ts.map +1 -0
  236. package/lib/extensible_events_v1/ExtensibleEvent.js +57 -0
  237. package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -0
  238. package/lib/extensible_events_v1/InvalidEventError.d.ts +7 -0
  239. package/lib/extensible_events_v1/InvalidEventError.d.ts.map +1 -0
  240. package/lib/extensible_events_v1/InvalidEventError.js +25 -0
  241. package/lib/extensible_events_v1/InvalidEventError.js.map +1 -0
  242. package/lib/extensible_events_v1/MessageEvent.d.ts +44 -0
  243. package/lib/extensible_events_v1/MessageEvent.d.ts.map +1 -0
  244. package/lib/extensible_events_v1/MessageEvent.js +134 -0
  245. package/lib/extensible_events_v1/MessageEvent.js.map +1 -0
  246. package/lib/extensible_events_v1/PollEndEvent.d.ts +33 -0
  247. package/lib/extensible_events_v1/PollEndEvent.d.ts.map +1 -0
  248. package/lib/extensible_events_v1/PollEndEvent.js +88 -0
  249. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -0
  250. package/lib/extensible_events_v1/PollResponseEvent.d.ts +49 -0
  251. package/lib/extensible_events_v1/PollResponseEvent.d.ts.map +1 -0
  252. package/lib/extensible_events_v1/PollResponseEvent.js +135 -0
  253. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -0
  254. package/lib/extensible_events_v1/PollStartEvent.d.ts +71 -0
  255. package/lib/extensible_events_v1/PollStartEvent.d.ts.map +1 -0
  256. package/lib/extensible_events_v1/PollStartEvent.js +185 -0
  257. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -0
  258. package/lib/extensible_events_v1/utilities.d.ts +14 -0
  259. package/lib/extensible_events_v1/utilities.d.ts.map +1 -0
  260. package/lib/extensible_events_v1/utilities.js +34 -0
  261. package/lib/extensible_events_v1/utilities.js.map +1 -0
  262. package/lib/feature.d.ts +20 -0
  263. package/lib/feature.d.ts.map +1 -0
  264. package/lib/feature.js +89 -0
  265. package/lib/feature.js.map +1 -0
  266. package/lib/filter-component.d.ts +64 -0
  267. package/lib/filter-component.d.ts.map +1 -0
  268. package/lib/filter-component.js +170 -0
  269. package/lib/filter-component.js.map +1 -0
  270. package/lib/filter.d.ts +97 -0
  271. package/lib/filter.d.ts.map +1 -0
  272. package/lib/filter.js +207 -0
  273. package/lib/filter.js.map +1 -0
  274. package/lib/http-api/errors.d.ts +117 -0
  275. package/lib/http-api/errors.d.ts.map +1 -0
  276. package/lib/http-api/errors.js +245 -0
  277. package/lib/http-api/errors.js.map +1 -0
  278. package/lib/http-api/fetch.d.ts +80 -0
  279. package/lib/http-api/fetch.d.ts.map +1 -0
  280. package/lib/http-api/fetch.js +332 -0
  281. package/lib/http-api/fetch.js.map +1 -0
  282. package/lib/http-api/index.d.ts +33 -0
  283. package/lib/http-api/index.d.ts.map +1 -0
  284. package/lib/http-api/index.js +178 -0
  285. package/lib/http-api/index.js.map +1 -0
  286. package/lib/http-api/interface.d.ts +186 -0
  287. package/lib/http-api/interface.d.ts.map +1 -0
  288. package/lib/http-api/interface.js +39 -0
  289. package/lib/http-api/interface.js.map +1 -0
  290. package/lib/http-api/method.d.ts +10 -0
  291. package/lib/http-api/method.d.ts.map +1 -0
  292. package/lib/http-api/method.js +27 -0
  293. package/lib/http-api/method.js.map +1 -0
  294. package/lib/http-api/prefix.d.ts +31 -0
  295. package/lib/http-api/prefix.d.ts.map +1 -0
  296. package/lib/http-api/prefix.js +50 -0
  297. package/lib/http-api/prefix.js.map +1 -0
  298. package/lib/http-api/refresh.d.ts +53 -0
  299. package/lib/http-api/refresh.d.ts.map +1 -0
  300. package/lib/http-api/refresh.js +174 -0
  301. package/lib/http-api/refresh.js.map +1 -0
  302. package/lib/http-api/utils.d.ts +37 -0
  303. package/lib/http-api/utils.d.ts.map +1 -0
  304. package/lib/http-api/utils.js +182 -0
  305. package/lib/http-api/utils.js.map +1 -0
  306. package/lib/index.d.ts +4 -0
  307. package/lib/index.d.ts.map +1 -0
  308. package/lib/index.js +24 -0
  309. package/lib/index.js.map +1 -0
  310. package/lib/indexeddb-helpers.d.ts +10 -0
  311. package/lib/indexeddb-helpers.d.ts.map +1 -0
  312. package/lib/indexeddb-helpers.js +51 -0
  313. package/lib/indexeddb-helpers.js.map +1 -0
  314. package/lib/indexeddb-worker.d.ts +7 -0
  315. package/lib/indexeddb-worker.d.ts.map +1 -0
  316. package/lib/indexeddb-worker.js +25 -0
  317. package/lib/indexeddb-worker.js.map +1 -0
  318. package/lib/interactive-auth.d.ts +341 -0
  319. package/lib/interactive-auth.d.ts.map +1 -0
  320. package/lib/interactive-auth.js +563 -0
  321. package/lib/interactive-auth.js.map +1 -0
  322. package/lib/logger.d.ts +124 -0
  323. package/lib/logger.d.ts.map +1 -0
  324. package/lib/logger.js +230 -0
  325. package/lib/logger.js.map +1 -0
  326. package/lib/matrixrtc/CallMembership.d.ts +154 -0
  327. package/lib/matrixrtc/CallMembership.d.ts.map +1 -0
  328. package/lib/matrixrtc/CallMembership.js +469 -0
  329. package/lib/matrixrtc/CallMembership.js.map +1 -0
  330. package/lib/matrixrtc/EncryptionManager.d.ts +44 -0
  331. package/lib/matrixrtc/EncryptionManager.d.ts.map +1 -0
  332. package/lib/matrixrtc/EncryptionManager.js +13 -0
  333. package/lib/matrixrtc/EncryptionManager.js.map +1 -0
  334. package/lib/matrixrtc/IKeyTransport.d.ts +37 -0
  335. package/lib/matrixrtc/IKeyTransport.d.ts.map +1 -0
  336. package/lib/matrixrtc/IKeyTransport.js +27 -0
  337. package/lib/matrixrtc/IKeyTransport.js.map +1 -0
  338. package/lib/matrixrtc/IMembershipManager.d.ts +94 -0
  339. package/lib/matrixrtc/IMembershipManager.d.ts.map +1 -0
  340. package/lib/matrixrtc/IMembershipManager.js +40 -0
  341. package/lib/matrixrtc/IMembershipManager.js.map +1 -0
  342. package/lib/matrixrtc/LivekitTransport.d.ts +23 -0
  343. package/lib/matrixrtc/LivekitTransport.d.ts.map +1 -0
  344. package/lib/matrixrtc/LivekitTransport.js +29 -0
  345. package/lib/matrixrtc/LivekitTransport.js.map +1 -0
  346. package/lib/matrixrtc/MatrixRTCSession.d.ts +343 -0
  347. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -0
  348. package/lib/matrixrtc/MatrixRTCSession.js +623 -0
  349. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -0
  350. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +46 -0
  351. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +1 -0
  352. package/lib/matrixrtc/MatrixRTCSessionManager.js +149 -0
  353. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -0
  354. package/lib/matrixrtc/MembershipManager.d.ts +210 -0
  355. package/lib/matrixrtc/MembershipManager.d.ts.map +1 -0
  356. package/lib/matrixrtc/MembershipManager.js +977 -0
  357. package/lib/matrixrtc/MembershipManager.js.map +1 -0
  358. package/lib/matrixrtc/MembershipManagerActionScheduler.d.ts +59 -0
  359. package/lib/matrixrtc/MembershipManagerActionScheduler.d.ts.map +1 -0
  360. package/lib/matrixrtc/MembershipManagerActionScheduler.js +125 -0
  361. package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -0
  362. package/lib/matrixrtc/RTCEncryptionManager.d.ts +110 -0
  363. package/lib/matrixrtc/RTCEncryptionManager.d.ts.map +1 -0
  364. package/lib/matrixrtc/RTCEncryptionManager.js +376 -0
  365. package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -0
  366. package/lib/matrixrtc/ToDeviceKeyTransport.d.ts +30 -0
  367. package/lib/matrixrtc/ToDeviceKeyTransport.d.ts.map +1 -0
  368. package/lib/matrixrtc/ToDeviceKeyTransport.js +164 -0
  369. package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -0
  370. package/lib/matrixrtc/index.d.ts +9 -0
  371. package/lib/matrixrtc/index.d.ts.map +1 -0
  372. package/lib/matrixrtc/index.js +23 -0
  373. package/lib/matrixrtc/index.js.map +1 -0
  374. package/lib/matrixrtc/membershipData/common.d.ts +8 -0
  375. package/lib/matrixrtc/membershipData/common.d.ts.map +1 -0
  376. package/lib/matrixrtc/membershipData/common.js +26 -0
  377. package/lib/matrixrtc/membershipData/common.js.map +1 -0
  378. package/lib/matrixrtc/membershipData/index.d.ts +4 -0
  379. package/lib/matrixrtc/membershipData/index.d.ts.map +1 -0
  380. package/lib/matrixrtc/membershipData/index.js +20 -0
  381. package/lib/matrixrtc/membershipData/index.js.map +1 -0
  382. package/lib/matrixrtc/membershipData/rtc.d.ts +33 -0
  383. package/lib/matrixrtc/membershipData/rtc.d.ts.map +1 -0
  384. package/lib/matrixrtc/membershipData/rtc.js +137 -0
  385. package/lib/matrixrtc/membershipData/rtc.js.map +1 -0
  386. package/lib/matrixrtc/membershipData/session.d.ts +77 -0
  387. package/lib/matrixrtc/membershipData/session.d.ts.map +1 -0
  388. package/lib/matrixrtc/membershipData/session.js +62 -0
  389. package/lib/matrixrtc/membershipData/session.js.map +1 -0
  390. package/lib/matrixrtc/types.d.ts +169 -0
  391. package/lib/matrixrtc/types.d.ts.map +1 -0
  392. package/lib/matrixrtc/types.js +117 -0
  393. package/lib/matrixrtc/types.js.map +1 -0
  394. package/lib/matrixrtc/utils.d.ts +27 -0
  395. package/lib/matrixrtc/utils.d.ts.map +1 -0
  396. package/lib/matrixrtc/utils.js +72 -0
  397. package/lib/matrixrtc/utils.js.map +1 -0
  398. package/lib/models/MSC3089Branch.d.ts +98 -0
  399. package/lib/models/MSC3089Branch.d.ts.map +1 -0
  400. package/lib/models/MSC3089Branch.js +240 -0
  401. package/lib/models/MSC3089Branch.js.map +1 -0
  402. package/lib/models/MSC3089TreeSpace.d.ts +166 -0
  403. package/lib/models/MSC3089TreeSpace.d.ts.map +1 -0
  404. package/lib/models/MSC3089TreeSpace.js +521 -0
  405. package/lib/models/MSC3089TreeSpace.js.map +1 -0
  406. package/lib/models/ToDeviceMessage.d.ts +17 -0
  407. package/lib/models/ToDeviceMessage.d.ts.map +1 -0
  408. package/lib/models/ToDeviceMessage.js +1 -0
  409. package/lib/models/ToDeviceMessage.js.map +1 -0
  410. package/lib/models/beacon.d.ts +52 -0
  411. package/lib/models/beacon.d.ts.map +1 -0
  412. package/lib/models/beacon.js +174 -0
  413. package/lib/models/beacon.js.map +1 -0
  414. package/lib/models/compare-event-ordering.d.ts +24 -0
  415. package/lib/models/compare-event-ordering.d.ts.map +1 -0
  416. package/lib/models/compare-event-ordering.js +120 -0
  417. package/lib/models/compare-event-ordering.js.map +1 -0
  418. package/lib/models/device.d.ts +45 -0
  419. package/lib/models/device.d.ts.map +1 -0
  420. package/lib/models/device.js +77 -0
  421. package/lib/models/device.js.map +1 -0
  422. package/lib/models/event-context.d.ts +62 -0
  423. package/lib/models/event-context.d.ts.map +1 -0
  424. package/lib/models/event-context.js +113 -0
  425. package/lib/models/event-context.js.map +1 -0
  426. package/lib/models/event-status.d.ts +19 -0
  427. package/lib/models/event-status.d.ts.map +1 -0
  428. package/lib/models/event-status.js +36 -0
  429. package/lib/models/event-status.js.map +1 -0
  430. package/lib/models/event-timeline-set.d.ts +308 -0
  431. package/lib/models/event-timeline-set.d.ts.map +1 -0
  432. package/lib/models/event-timeline-set.js +805 -0
  433. package/lib/models/event-timeline-set.js.map +1 -0
  434. package/lib/models/event-timeline.d.ts +224 -0
  435. package/lib/models/event-timeline.d.ts.map +1 -0
  436. package/lib/models/event-timeline.js +434 -0
  437. package/lib/models/event-timeline.js.map +1 -0
  438. package/lib/models/event.d.ts +844 -0
  439. package/lib/models/event.d.ts.map +1 -0
  440. package/lib/models/event.js +1600 -0
  441. package/lib/models/event.js.map +1 -0
  442. package/lib/models/invites-ignorer-types.d.ts +27 -0
  443. package/lib/models/invites-ignorer-types.d.ts.map +1 -0
  444. package/lib/models/invites-ignorer-types.js +56 -0
  445. package/lib/models/invites-ignorer-types.js.map +1 -0
  446. package/lib/models/invites-ignorer.d.ts +112 -0
  447. package/lib/models/invites-ignorer.d.ts.map +1 -0
  448. package/lib/models/invites-ignorer.js +357 -0
  449. package/lib/models/invites-ignorer.js.map +1 -0
  450. package/lib/models/poll.d.ts +67 -0
  451. package/lib/models/poll.d.ts.map +1 -0
  452. package/lib/models/poll.js +241 -0
  453. package/lib/models/poll.js.map +1 -0
  454. package/lib/models/profile-keys.d.ts +17 -0
  455. package/lib/models/profile-keys.d.ts.map +1 -0
  456. package/lib/models/profile-keys.js +34 -0
  457. package/lib/models/profile-keys.js.map +1 -0
  458. package/lib/models/read-receipt.d.ts +115 -0
  459. package/lib/models/read-receipt.d.ts.map +1 -0
  460. package/lib/models/read-receipt.js +366 -0
  461. package/lib/models/read-receipt.js.map +1 -0
  462. package/lib/models/related-relations.d.ts +11 -0
  463. package/lib/models/related-relations.d.ts.map +1 -0
  464. package/lib/models/related-relations.js +33 -0
  465. package/lib/models/related-relations.js.map +1 -0
  466. package/lib/models/relations-container.d.ts +44 -0
  467. package/lib/models/relations-container.d.ts.map +1 -0
  468. package/lib/models/relations-container.js +132 -0
  469. package/lib/models/relations-container.js.map +1 -0
  470. package/lib/models/relations.d.ts +123 -0
  471. package/lib/models/relations.d.ts.map +1 -0
  472. package/lib/models/relations.js +378 -0
  473. package/lib/models/relations.js.map +1 -0
  474. package/lib/models/room-member.d.ts +221 -0
  475. package/lib/models/room-member.d.ts.map +1 -0
  476. package/lib/models/room-member.js +376 -0
  477. package/lib/models/room-member.js.map +1 -0
  478. package/lib/models/room-receipts.d.ts +39 -0
  479. package/lib/models/room-receipts.d.ts.map +1 -0
  480. package/lib/models/room-receipts.js +392 -0
  481. package/lib/models/room-receipts.js.map +1 -0
  482. package/lib/models/room-state.d.ts +463 -0
  483. package/lib/models/room-state.d.ts.map +1 -0
  484. package/lib/models/room-state.js +1066 -0
  485. package/lib/models/room-state.js.map +1 -0
  486. package/lib/models/room-sticky-events.d.ts +110 -0
  487. package/lib/models/room-sticky-events.d.ts.map +1 -0
  488. package/lib/models/room-sticky-events.js +353 -0
  489. package/lib/models/room-sticky-events.js.map +1 -0
  490. package/lib/models/room-summary.d.ts +59 -0
  491. package/lib/models/room-summary.d.ts.map +1 -0
  492. package/lib/models/room-summary.js +39 -0
  493. package/lib/models/room-summary.js.map +1 -0
  494. package/lib/models/room.d.ts +1285 -0
  495. package/lib/models/room.d.ts.map +1 -0
  496. package/lib/models/room.js +3548 -0
  497. package/lib/models/room.js.map +1 -0
  498. package/lib/models/search-result.d.ts +20 -0
  499. package/lib/models/search-result.d.ts.map +1 -0
  500. package/lib/models/search-result.js +52 -0
  501. package/lib/models/search-result.js.map +1 -0
  502. package/lib/models/thread.d.ts +245 -0
  503. package/lib/models/thread.d.ts.map +1 -0
  504. package/lib/models/thread.js +866 -0
  505. package/lib/models/thread.js.map +1 -0
  506. package/lib/models/typed-event-emitter.d.ts +157 -0
  507. package/lib/models/typed-event-emitter.d.ts.map +1 -0
  508. package/lib/models/typed-event-emitter.js +227 -0
  509. package/lib/models/typed-event-emitter.js.map +1 -0
  510. package/lib/models/user.d.ts +195 -0
  511. package/lib/models/user.d.ts.map +1 -0
  512. package/lib/models/user.js +218 -0
  513. package/lib/models/user.js.map +1 -0
  514. package/lib/oidc/authorize.d.ts +93 -0
  515. package/lib/oidc/authorize.d.ts.map +1 -0
  516. package/lib/oidc/authorize.js +282 -0
  517. package/lib/oidc/authorize.js.map +1 -0
  518. package/lib/oidc/discovery.d.ts +22 -0
  519. package/lib/oidc/discovery.d.ts.map +1 -0
  520. package/lib/oidc/discovery.js +78 -0
  521. package/lib/oidc/discovery.js.map +1 -0
  522. package/lib/oidc/error.d.ts +18 -0
  523. package/lib/oidc/error.d.ts.map +1 -0
  524. package/lib/oidc/error.js +35 -0
  525. package/lib/oidc/error.js.map +1 -0
  526. package/lib/oidc/index.d.ts +16 -0
  527. package/lib/oidc/index.d.ts.map +1 -0
  528. package/lib/oidc/index.js +29 -0
  529. package/lib/oidc/index.js.map +1 -0
  530. package/lib/oidc/register.d.ts +70 -0
  531. package/lib/oidc/register.d.ts.map +1 -0
  532. package/lib/oidc/register.js +135 -0
  533. package/lib/oidc/register.js.map +1 -0
  534. package/lib/oidc/tokenRefresher.d.ts +91 -0
  535. package/lib/oidc/tokenRefresher.d.ts.map +1 -0
  536. package/lib/oidc/tokenRefresher.js +187 -0
  537. package/lib/oidc/tokenRefresher.js.map +1 -0
  538. package/lib/oidc/validate.d.ts +78 -0
  539. package/lib/oidc/validate.d.ts.map +1 -0
  540. package/lib/oidc/validate.js +181 -0
  541. package/lib/oidc/validate.js.map +1 -0
  542. package/lib/pushprocessor.d.ts +140 -0
  543. package/lib/pushprocessor.d.ts.map +1 -0
  544. package/lib/pushprocessor.js +702 -0
  545. package/lib/pushprocessor.js.map +1 -0
  546. package/lib/randomstring.d.ts +32 -0
  547. package/lib/randomstring.d.ts.map +1 -0
  548. package/lib/randomstring.js +97 -0
  549. package/lib/randomstring.js.map +1 -0
  550. package/lib/realtime-callbacks.d.ts +18 -0
  551. package/lib/realtime-callbacks.d.ts.map +1 -0
  552. package/lib/realtime-callbacks.js +177 -0
  553. package/lib/realtime-callbacks.js.map +1 -0
  554. package/lib/receipt-accumulator.d.ts +51 -0
  555. package/lib/receipt-accumulator.d.ts.map +1 -0
  556. package/lib/receipt-accumulator.js +164 -0
  557. package/lib/receipt-accumulator.js.map +1 -0
  558. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +112 -0
  559. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +1 -0
  560. package/lib/rendezvous/MSC4108SignInWithQR.js +389 -0
  561. package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -0
  562. package/lib/rendezvous/RendezvousChannel.d.ts +27 -0
  563. package/lib/rendezvous/RendezvousChannel.d.ts.map +1 -0
  564. package/lib/rendezvous/RendezvousChannel.js +1 -0
  565. package/lib/rendezvous/RendezvousChannel.js.map +1 -0
  566. package/lib/rendezvous/RendezvousCode.d.ts +9 -0
  567. package/lib/rendezvous/RendezvousCode.d.ts.map +1 -0
  568. package/lib/rendezvous/RendezvousCode.js +1 -0
  569. package/lib/rendezvous/RendezvousCode.js.map +1 -0
  570. package/lib/rendezvous/RendezvousError.d.ts +6 -0
  571. package/lib/rendezvous/RendezvousError.d.ts.map +1 -0
  572. package/lib/rendezvous/RendezvousError.js +23 -0
  573. package/lib/rendezvous/RendezvousError.js.map +1 -0
  574. package/lib/rendezvous/RendezvousFailureReason.d.ts +31 -0
  575. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +1 -0
  576. package/lib/rendezvous/RendezvousFailureReason.js +47 -0
  577. package/lib/rendezvous/RendezvousFailureReason.js.map +1 -0
  578. package/lib/rendezvous/RendezvousIntent.d.ts +5 -0
  579. package/lib/rendezvous/RendezvousIntent.d.ts.map +1 -0
  580. package/lib/rendezvous/RendezvousIntent.js +22 -0
  581. package/lib/rendezvous/RendezvousIntent.js.map +1 -0
  582. package/lib/rendezvous/RendezvousTransport.d.ts +36 -0
  583. package/lib/rendezvous/RendezvousTransport.d.ts.map +1 -0
  584. package/lib/rendezvous/RendezvousTransport.js +1 -0
  585. package/lib/rendezvous/RendezvousTransport.js.map +1 -0
  586. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +58 -0
  587. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +1 -0
  588. package/lib/rendezvous/channels/MSC4108SecureChannel.js +246 -0
  589. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -0
  590. package/lib/rendezvous/channels/index.d.ts +2 -0
  591. package/lib/rendezvous/channels/index.d.ts.map +1 -0
  592. package/lib/rendezvous/channels/index.js +18 -0
  593. package/lib/rendezvous/channels/index.js.map +1 -0
  594. package/lib/rendezvous/index.d.ts +10 -0
  595. package/lib/rendezvous/index.d.ts.map +1 -0
  596. package/lib/rendezvous/index.js +23 -0
  597. package/lib/rendezvous/index.js.map +1 -0
  598. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +61 -0
  599. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +1 -0
  600. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +254 -0
  601. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -0
  602. package/lib/rendezvous/transports/index.d.ts +2 -0
  603. package/lib/rendezvous/transports/index.d.ts.map +1 -0
  604. package/lib/rendezvous/transports/index.js +18 -0
  605. package/lib/rendezvous/transports/index.js.map +1 -0
  606. package/lib/room-hierarchy.d.ts +35 -0
  607. package/lib/room-hierarchy.d.ts.map +1 -0
  608. package/lib/room-hierarchy.js +136 -0
  609. package/lib/room-hierarchy.js.map +1 -0
  610. package/lib/rust-crypto/CrossSigningIdentity.d.ts +35 -0
  611. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +1 -0
  612. package/lib/rust-crypto/CrossSigningIdentity.js +163 -0
  613. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -0
  614. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +118 -0
  615. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +1 -0
  616. package/lib/rust-crypto/DehydratedDeviceManager.js +361 -0
  617. package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -0
  618. package/lib/rust-crypto/KeyClaimManager.d.ts +33 -0
  619. package/lib/rust-crypto/KeyClaimManager.d.ts.map +1 -0
  620. package/lib/rust-crypto/KeyClaimManager.js +82 -0
  621. package/lib/rust-crypto/KeyClaimManager.js.map +1 -0
  622. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +36 -0
  623. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +1 -0
  624. package/lib/rust-crypto/OutgoingRequestProcessor.js +194 -0
  625. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -0
  626. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +47 -0
  627. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +1 -0
  628. package/lib/rust-crypto/OutgoingRequestsManager.js +175 -0
  629. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -0
  630. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +120 -0
  631. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +1 -0
  632. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +469 -0
  633. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -0
  634. package/lib/rust-crypto/RoomEncryptor.d.ts +100 -0
  635. package/lib/rust-crypto/RoomEncryptor.d.ts.map +1 -0
  636. package/lib/rust-crypto/RoomEncryptor.js +308 -0
  637. package/lib/rust-crypto/RoomEncryptor.js.map +1 -0
  638. package/lib/rust-crypto/backup.d.ts +278 -0
  639. package/lib/rust-crypto/backup.d.ts.map +1 -0
  640. package/lib/rust-crypto/backup.js +898 -0
  641. package/lib/rust-crypto/backup.js.map +1 -0
  642. package/lib/rust-crypto/constants.d.ts +3 -0
  643. package/lib/rust-crypto/constants.d.ts.map +1 -0
  644. package/lib/rust-crypto/constants.js +19 -0
  645. package/lib/rust-crypto/constants.js.map +1 -0
  646. package/lib/rust-crypto/device-converter.d.ts +28 -0
  647. package/lib/rust-crypto/device-converter.d.ts.map +1 -0
  648. package/lib/rust-crypto/device-converter.js +123 -0
  649. package/lib/rust-crypto/device-converter.js.map +1 -0
  650. package/lib/rust-crypto/index.d.ts +65 -0
  651. package/lib/rust-crypto/index.d.ts.map +1 -0
  652. package/lib/rust-crypto/index.js +149 -0
  653. package/lib/rust-crypto/index.js.map +1 -0
  654. package/lib/rust-crypto/libolm_migration.d.ts +81 -0
  655. package/lib/rust-crypto/libolm_migration.d.ts.map +1 -0
  656. package/lib/rust-crypto/libolm_migration.js +456 -0
  657. package/lib/rust-crypto/libolm_migration.js.map +1 -0
  658. package/lib/rust-crypto/rust-crypto.d.ts +576 -0
  659. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -0
  660. package/lib/rust-crypto/rust-crypto.js +2324 -0
  661. package/lib/rust-crypto/rust-crypto.js.map +1 -0
  662. package/lib/rust-crypto/secret-storage.d.ts +22 -0
  663. package/lib/rust-crypto/secret-storage.d.ts.map +1 -0
  664. package/lib/rust-crypto/secret-storage.js +63 -0
  665. package/lib/rust-crypto/secret-storage.js.map +1 -0
  666. package/lib/rust-crypto/verification.d.ts +321 -0
  667. package/lib/rust-crypto/verification.d.ts.map +1 -0
  668. package/lib/rust-crypto/verification.js +817 -0
  669. package/lib/rust-crypto/verification.js.map +1 -0
  670. package/lib/scheduler.d.ts +132 -0
  671. package/lib/scheduler.d.ts.map +1 -0
  672. package/lib/scheduler.js +259 -0
  673. package/lib/scheduler.js.map +1 -0
  674. package/lib/secret-storage.d.ts +383 -0
  675. package/lib/secret-storage.d.ts.map +1 -0
  676. package/lib/secret-storage.js +487 -0
  677. package/lib/secret-storage.js.map +1 -0
  678. package/lib/serverCapabilities.d.ts +78 -0
  679. package/lib/serverCapabilities.d.ts.map +1 -0
  680. package/lib/serverCapabilities.js +104 -0
  681. package/lib/serverCapabilities.js.map +1 -0
  682. package/lib/service-types.d.ts +5 -0
  683. package/lib/service-types.d.ts.map +1 -0
  684. package/lib/service-types.js +23 -0
  685. package/lib/service-types.js.map +1 -0
  686. package/lib/sliding-sync-sdk.d.ts +107 -0
  687. package/lib/sliding-sync-sdk.d.ts.map +1 -0
  688. package/lib/sliding-sync-sdk.js +892 -0
  689. package/lib/sliding-sync-sdk.js.map +1 -0
  690. package/lib/sliding-sync.d.ts +306 -0
  691. package/lib/sliding-sync.d.ts.map +1 -0
  692. package/lib/sliding-sync.js +585 -0
  693. package/lib/sliding-sync.js.map +1 -0
  694. package/lib/store/index.d.ts +201 -0
  695. package/lib/store/index.d.ts.map +1 -0
  696. package/lib/store/index.js +1 -0
  697. package/lib/store/index.js.map +1 -0
  698. package/lib/store/indexeddb-backend.d.ts +24 -0
  699. package/lib/store/indexeddb-backend.d.ts.map +1 -0
  700. package/lib/store/indexeddb-backend.js +1 -0
  701. package/lib/store/indexeddb-backend.js.map +1 -0
  702. package/lib/store/indexeddb-local-backend.d.ts +129 -0
  703. package/lib/store/indexeddb-local-backend.d.ts.map +1 -0
  704. package/lib/store/indexeddb-local-backend.js +599 -0
  705. package/lib/store/indexeddb-local-backend.js.map +1 -0
  706. package/lib/store/indexeddb-remote-backend.d.ts +79 -0
  707. package/lib/store/indexeddb-remote-backend.d.ts.map +1 -0
  708. package/lib/store/indexeddb-remote-backend.js +209 -0
  709. package/lib/store/indexeddb-remote-backend.js.map +1 -0
  710. package/lib/store/indexeddb-store-worker.d.ts +35 -0
  711. package/lib/store/indexeddb-store-worker.d.ts.map +1 -0
  712. package/lib/store/indexeddb-store-worker.js +146 -0
  713. package/lib/store/indexeddb-store-worker.js.map +1 -0
  714. package/lib/store/indexeddb.d.ts +142 -0
  715. package/lib/store/indexeddb.d.ts.map +1 -0
  716. package/lib/store/indexeddb.js +347 -0
  717. package/lib/store/indexeddb.js.map +1 -0
  718. package/lib/store/local-storage-events-emitter.d.ts +30 -0
  719. package/lib/store/local-storage-events-emitter.d.ts.map +1 -0
  720. package/lib/store/local-storage-events-emitter.js +37 -0
  721. package/lib/store/local-storage-events-emitter.js.map +1 -0
  722. package/lib/store/memory.d.ts +209 -0
  723. package/lib/store/memory.d.ts.map +1 -0
  724. package/lib/store/memory.js +432 -0
  725. package/lib/store/memory.js.map +1 -0
  726. package/lib/store/stub.d.ts +161 -0
  727. package/lib/store/stub.d.ts.map +1 -0
  728. package/lib/store/stub.js +268 -0
  729. package/lib/store/stub.js.map +1 -0
  730. package/lib/sync-accumulator.d.ts +207 -0
  731. package/lib/sync-accumulator.d.ts.map +1 -0
  732. package/lib/sync-accumulator.js +588 -0
  733. package/lib/sync-accumulator.js.map +1 -0
  734. package/lib/sync.d.ts +273 -0
  735. package/lib/sync.d.ts.map +1 -0
  736. package/lib/sync.js +1764 -0
  737. package/lib/sync.js.map +1 -0
  738. package/lib/testing.d.ts +98 -0
  739. package/lib/testing.d.ts.map +1 -0
  740. package/lib/testing.js +205 -0
  741. package/lib/testing.js.map +1 -0
  742. package/lib/thread-utils.d.ts +10 -0
  743. package/lib/thread-utils.d.ts.map +1 -0
  744. package/lib/thread-utils.js +31 -0
  745. package/lib/thread-utils.js.map +1 -0
  746. package/lib/timeline-window.d.ts +168 -0
  747. package/lib/timeline-window.d.ts.map +1 -0
  748. package/lib/timeline-window.js +494 -0
  749. package/lib/timeline-window.js.map +1 -0
  750. package/lib/types.d.ts +33 -0
  751. package/lib/types.d.ts.map +1 -0
  752. package/lib/types.js +52 -0
  753. package/lib/types.js.map +1 -0
  754. package/lib/utils/decryptAESSecretStorageItem.d.ts +12 -0
  755. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +1 -0
  756. package/lib/utils/decryptAESSecretStorageItem.js +50 -0
  757. package/lib/utils/decryptAESSecretStorageItem.js.map +1 -0
  758. package/lib/utils/encryptAESSecretStorageItem.d.ts +16 -0
  759. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +1 -0
  760. package/lib/utils/encryptAESSecretStorageItem.js +68 -0
  761. package/lib/utils/encryptAESSecretStorageItem.js.map +1 -0
  762. package/lib/utils/internal/deriveKeys.d.ts +10 -0
  763. package/lib/utils/internal/deriveKeys.d.ts.map +1 -0
  764. package/lib/utils/internal/deriveKeys.js +60 -0
  765. package/lib/utils/internal/deriveKeys.js.map +1 -0
  766. package/lib/utils/roomVersion.d.ts +13 -0
  767. package/lib/utils/roomVersion.d.ts.map +1 -0
  768. package/lib/utils/roomVersion.js +36 -0
  769. package/lib/utils/roomVersion.js.map +1 -0
  770. package/lib/utils.d.ts +270 -0
  771. package/lib/utils.d.ts.map +1 -0
  772. package/lib/utils.js +764 -0
  773. package/lib/utils.js.map +1 -0
  774. package/lib/version-support.d.ts +19 -0
  775. package/lib/version-support.d.ts.map +1 -0
  776. package/lib/version-support.js +37 -0
  777. package/lib/version-support.js.map +1 -0
  778. package/lib/webrtc/audioContext.d.ts +15 -0
  779. package/lib/webrtc/audioContext.d.ts.map +1 -0
  780. package/lib/webrtc/audioContext.js +46 -0
  781. package/lib/webrtc/audioContext.js.map +1 -0
  782. package/lib/webrtc/call.d.ts +560 -0
  783. package/lib/webrtc/call.d.ts.map +1 -0
  784. package/lib/webrtc/call.js +2596 -0
  785. package/lib/webrtc/call.js.map +1 -0
  786. package/lib/webrtc/callEventHandler.d.ts +37 -0
  787. package/lib/webrtc/callEventHandler.d.ts.map +1 -0
  788. package/lib/webrtc/callEventHandler.js +344 -0
  789. package/lib/webrtc/callEventHandler.js.map +1 -0
  790. package/lib/webrtc/callEventTypes.d.ts +79 -0
  791. package/lib/webrtc/callEventTypes.d.ts.map +1 -0
  792. package/lib/webrtc/callEventTypes.js +13 -0
  793. package/lib/webrtc/callEventTypes.js.map +1 -0
  794. package/lib/webrtc/callFeed.d.ts +128 -0
  795. package/lib/webrtc/callFeed.d.ts.map +1 -0
  796. package/lib/webrtc/callFeed.js +289 -0
  797. package/lib/webrtc/callFeed.js.map +1 -0
  798. package/lib/webrtc/groupCall.d.ts +319 -0
  799. package/lib/webrtc/groupCall.d.ts.map +1 -0
  800. package/lib/webrtc/groupCall.js +1334 -0
  801. package/lib/webrtc/groupCall.js.map +1 -0
  802. package/lib/webrtc/groupCallEventHandler.d.ts +31 -0
  803. package/lib/webrtc/groupCallEventHandler.d.ts.map +1 -0
  804. package/lib/webrtc/groupCallEventHandler.js +178 -0
  805. package/lib/webrtc/groupCallEventHandler.js.map +1 -0
  806. package/lib/webrtc/mediaHandler.d.ts +89 -0
  807. package/lib/webrtc/mediaHandler.d.ts.map +1 -0
  808. package/lib/webrtc/mediaHandler.js +454 -0
  809. package/lib/webrtc/mediaHandler.js.map +1 -0
  810. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +8 -0
  811. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +1 -0
  812. package/lib/webrtc/stats/callFeedStatsReporter.js +79 -0
  813. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -0
  814. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +25 -0
  815. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +1 -0
  816. package/lib/webrtc/stats/callStatsReportGatherer.js +199 -0
  817. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -0
  818. package/lib/webrtc/stats/callStatsReportSummary.d.ts +17 -0
  819. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +1 -0
  820. package/lib/webrtc/stats/callStatsReportSummary.js +1 -0
  821. package/lib/webrtc/stats/callStatsReportSummary.js.map +1 -0
  822. package/lib/webrtc/stats/connectionStats.d.ts +28 -0
  823. package/lib/webrtc/stats/connectionStats.d.ts.map +1 -0
  824. package/lib/webrtc/stats/connectionStats.js +26 -0
  825. package/lib/webrtc/stats/connectionStats.js.map +1 -0
  826. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +5 -0
  827. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +1 -0
  828. package/lib/webrtc/stats/connectionStatsBuilder.js +27 -0
  829. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -0
  830. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +7 -0
  831. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +1 -0
  832. package/lib/webrtc/stats/connectionStatsReportBuilder.js +121 -0
  833. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -0
  834. package/lib/webrtc/stats/groupCallStats.d.ts +22 -0
  835. package/lib/webrtc/stats/groupCallStats.d.ts.map +1 -0
  836. package/lib/webrtc/stats/groupCallStats.js +78 -0
  837. package/lib/webrtc/stats/groupCallStats.js.map +1 -0
  838. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +10 -0
  839. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +1 -0
  840. package/lib/webrtc/stats/media/mediaSsrcHandler.js +57 -0
  841. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -0
  842. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +12 -0
  843. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +1 -0
  844. package/lib/webrtc/stats/media/mediaTrackHandler.js +58 -0
  845. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -0
  846. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +86 -0
  847. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +1 -0
  848. package/lib/webrtc/stats/media/mediaTrackStats.js +142 -0
  849. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -0
  850. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +22 -0
  851. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +1 -0
  852. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +76 -0
  853. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -0
  854. package/lib/webrtc/stats/statsReport.d.ts +99 -0
  855. package/lib/webrtc/stats/statsReport.d.ts.map +1 -0
  856. package/lib/webrtc/stats/statsReport.js +32 -0
  857. package/lib/webrtc/stats/statsReport.js.map +1 -0
  858. package/lib/webrtc/stats/statsReportEmitter.d.ts +15 -0
  859. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +1 -0
  860. package/lib/webrtc/stats/statsReportEmitter.js +33 -0
  861. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -0
  862. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +16 -0
  863. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +1 -0
  864. package/lib/webrtc/stats/summaryStatsReportGatherer.js +116 -0
  865. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -0
  866. package/lib/webrtc/stats/trackStatsBuilder.d.ts +19 -0
  867. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +1 -0
  868. package/lib/webrtc/stats/trackStatsBuilder.js +168 -0
  869. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -0
  870. package/lib/webrtc/stats/transportStats.d.ts +11 -0
  871. package/lib/webrtc/stats/transportStats.d.ts.map +1 -0
  872. package/lib/webrtc/stats/transportStats.js +1 -0
  873. package/lib/webrtc/stats/transportStats.js.map +1 -0
  874. package/lib/webrtc/stats/transportStatsBuilder.d.ts +5 -0
  875. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +1 -0
  876. package/lib/webrtc/stats/transportStatsBuilder.js +34 -0
  877. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -0
  878. package/lib/webrtc/stats/valueFormatter.d.ts +4 -0
  879. package/lib/webrtc/stats/valueFormatter.d.ts.map +1 -0
  880. package/lib/webrtc/stats/valueFormatter.js +25 -0
  881. package/lib/webrtc/stats/valueFormatter.js.map +1 -0
  882. package/package.json +129 -0
  883. package/src/@types/AESEncryptedSecretStoragePayload.ts +29 -0
  884. package/src/@types/IIdentityServerProvider.ts +24 -0
  885. package/src/@types/PushRules.ts +208 -0
  886. package/src/@types/another-json.d.ts +19 -0
  887. package/src/@types/auth.ts +258 -0
  888. package/src/@types/beacon.ts +140 -0
  889. package/src/@types/common.ts +24 -0
  890. package/src/@types/crypto.ts +71 -0
  891. package/src/@types/event.ts +449 -0
  892. package/src/@types/events.ts +119 -0
  893. package/src/@types/extensible_events.ts +147 -0
  894. package/src/@types/global.d.ts +67 -0
  895. package/src/@types/local_notifications.ts +19 -0
  896. package/src/@types/location.ts +92 -0
  897. package/src/@types/matrix-sdk-crypto-wasm.d.ts +39 -0
  898. package/src/@types/media.ts +245 -0
  899. package/src/@types/membership.ts +57 -0
  900. package/src/@types/partials.ts +103 -0
  901. package/src/@types/polls.ts +120 -0
  902. package/src/@types/read_receipts.ts +61 -0
  903. package/src/@types/registration.ts +102 -0
  904. package/src/@types/requests.ts +346 -0
  905. package/src/@types/search.ts +119 -0
  906. package/src/@types/signed.ts +25 -0
  907. package/src/@types/spaces.ts +37 -0
  908. package/src/@types/state_events.ts +153 -0
  909. package/src/@types/synapse.ts +40 -0
  910. package/src/@types/sync.ts +27 -0
  911. package/src/@types/threepids.ts +29 -0
  912. package/src/@types/topic.ts +69 -0
  913. package/src/@types/uia.ts +24 -0
  914. package/src/NamespacedValue.ts +121 -0
  915. package/src/ReEmitter.ts +93 -0
  916. package/src/ToDeviceMessageQueue.ts +156 -0
  917. package/src/autodiscovery.ts +505 -0
  918. package/src/base64.ts +86 -0
  919. package/src/briij.ts +173 -0
  920. package/src/browser-index.ts +44 -0
  921. package/src/client.ts +9031 -0
  922. package/src/common-crypto/CryptoBackend.ts +295 -0
  923. package/src/common-crypto/README.md +4 -0
  924. package/src/common-crypto/key-passphrase.ts +43 -0
  925. package/src/content-helpers.ts +298 -0
  926. package/src/content-repo.ts +122 -0
  927. package/src/crypto/store/base.ts +388 -0
  928. package/src/crypto/store/indexeddb-crypto-store-backend.ts +655 -0
  929. package/src/crypto/store/indexeddb-crypto-store.ts +555 -0
  930. package/src/crypto/store/localStorage-crypto-store.ts +409 -0
  931. package/src/crypto/store/memory-crypto-store.ts +326 -0
  932. package/src/crypto-api/CryptoEvent.ts +152 -0
  933. package/src/crypto-api/CryptoEventHandlerMap.ts +42 -0
  934. package/src/crypto-api/index.ts +1362 -0
  935. package/src/crypto-api/key-passphrase.ts +58 -0
  936. package/src/crypto-api/keybackup.ts +114 -0
  937. package/src/crypto-api/recovery-key.ts +69 -0
  938. package/src/crypto-api/verification.ts +382 -0
  939. package/src/digest.ts +34 -0
  940. package/src/embedded.ts +865 -0
  941. package/src/errors.ts +87 -0
  942. package/src/event-mapper.ts +88 -0
  943. package/src/extensible_events_v1/ExtensibleEvent.ts +58 -0
  944. package/src/extensible_events_v1/InvalidEventError.ts +24 -0
  945. package/src/extensible_events_v1/MessageEvent.ts +143 -0
  946. package/src/extensible_events_v1/PollEndEvent.ts +97 -0
  947. package/src/extensible_events_v1/PollResponseEvent.ts +148 -0
  948. package/src/extensible_events_v1/PollStartEvent.ts +207 -0
  949. package/src/extensible_events_v1/utilities.ts +35 -0
  950. package/src/feature.ts +88 -0
  951. package/src/filter-component.ts +209 -0
  952. package/src/filter.ts +245 -0
  953. package/src/http-api/errors.ts +261 -0
  954. package/src/http-api/fetch.ts +377 -0
  955. package/src/http-api/index.ts +194 -0
  956. package/src/http-api/interface.ts +229 -0
  957. package/src/http-api/method.ts +25 -0
  958. package/src/http-api/prefix.ts +48 -0
  959. package/src/http-api/refresh.ts +167 -0
  960. package/src/http-api/utils.ts +217 -0
  961. package/src/index.ts +25 -0
  962. package/src/indexeddb-helpers.ts +50 -0
  963. package/src/indexeddb-worker.ts +24 -0
  964. package/src/interactive-auth.ts +700 -0
  965. package/src/logger.ts +279 -0
  966. package/src/matrixrtc/CallMembership.ts +438 -0
  967. package/src/matrixrtc/EncryptionManager.ts +54 -0
  968. package/src/matrixrtc/IKeyTransport.ts +63 -0
  969. package/src/matrixrtc/IMembershipManager.ts +120 -0
  970. package/src/matrixrtc/LivekitTransport.ts +46 -0
  971. package/src/matrixrtc/MatrixRTCSession.ts +934 -0
  972. package/src/matrixrtc/MatrixRTCSessionManager.ts +170 -0
  973. package/src/matrixrtc/MembershipManager.ts +1122 -0
  974. package/src/matrixrtc/MembershipManagerActionScheduler.ts +135 -0
  975. package/src/matrixrtc/RTCEncryptionManager.ts +459 -0
  976. package/src/matrixrtc/ToDeviceKeyTransport.ts +197 -0
  977. package/src/matrixrtc/index.ts +24 -0
  978. package/src/matrixrtc/membershipData/common.ts +27 -0
  979. package/src/matrixrtc/membershipData/index.ts +19 -0
  980. package/src/matrixrtc/membershipData/rtc.ts +156 -0
  981. package/src/matrixrtc/membershipData/session.ts +146 -0
  982. package/src/matrixrtc/types.ts +227 -0
  983. package/src/matrixrtc/utils.ts +71 -0
  984. package/src/models/MSC3089Branch.ts +272 -0
  985. package/src/models/MSC3089TreeSpace.ts +565 -0
  986. package/src/models/ToDeviceMessage.ts +38 -0
  987. package/src/models/beacon.ts +213 -0
  988. package/src/models/compare-event-ordering.ts +139 -0
  989. package/src/models/device.ts +85 -0
  990. package/src/models/event-context.ts +110 -0
  991. package/src/models/event-status.ts +39 -0
  992. package/src/models/event-timeline-set.ts +962 -0
  993. package/src/models/event-timeline.ts +461 -0
  994. package/src/models/event.ts +1819 -0
  995. package/src/models/invites-ignorer-types.ts +58 -0
  996. package/src/models/invites-ignorer.ts +341 -0
  997. package/src/models/poll.ts +285 -0
  998. package/src/models/profile-keys.ts +33 -0
  999. package/src/models/read-receipt.ts +422 -0
  1000. package/src/models/related-relations.ts +39 -0
  1001. package/src/models/relations-container.ts +149 -0
  1002. package/src/models/relations.ts +392 -0
  1003. package/src/models/room-member.ts +486 -0
  1004. package/src/models/room-receipts.ts +439 -0
  1005. package/src/models/room-state.ts +1230 -0
  1006. package/src/models/room-sticky-events.ts +383 -0
  1007. package/src/models/room-summary.ts +78 -0
  1008. package/src/models/room.ts +4067 -0
  1009. package/src/models/search-result.ts +57 -0
  1010. package/src/models/thread.ts +928 -0
  1011. package/src/models/typed-event-emitter.ts +246 -0
  1012. package/src/models/user.ts +302 -0
  1013. package/src/oidc/authorize.ts +279 -0
  1014. package/src/oidc/discovery.ts +67 -0
  1015. package/src/oidc/error.ts +33 -0
  1016. package/src/oidc/index.ts +33 -0
  1017. package/src/oidc/register.ts +163 -0
  1018. package/src/oidc/tokenRefresher.ts +184 -0
  1019. package/src/oidc/validate.ts +265 -0
  1020. package/src/pushprocessor.ts +856 -0
  1021. package/src/randomstring.ts +103 -0
  1022. package/src/realtime-callbacks.ts +191 -0
  1023. package/src/receipt-accumulator.ts +189 -0
  1024. package/src/rendezvous/MSC4108SignInWithQR.ts +443 -0
  1025. package/src/rendezvous/RendezvousChannel.ts +48 -0
  1026. package/src/rendezvous/RendezvousCode.ts +25 -0
  1027. package/src/rendezvous/RendezvousError.ts +26 -0
  1028. package/src/rendezvous/RendezvousFailureReason.ts +49 -0
  1029. package/src/rendezvous/RendezvousIntent.ts +20 -0
  1030. package/src/rendezvous/RendezvousTransport.ts +58 -0
  1031. package/src/rendezvous/channels/MSC4108SecureChannel.ts +270 -0
  1032. package/src/rendezvous/channels/index.ts +17 -0
  1033. package/src/rendezvous/index.ts +25 -0
  1034. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +272 -0
  1035. package/src/rendezvous/transports/index.ts +17 -0
  1036. package/src/room-hierarchy.ts +152 -0
  1037. package/src/rust-crypto/CrossSigningIdentity.ts +195 -0
  1038. package/src/rust-crypto/DehydratedDeviceManager.ts +392 -0
  1039. package/src/rust-crypto/KeyClaimManager.ts +86 -0
  1040. package/src/rust-crypto/OutgoingRequestProcessor.ts +233 -0
  1041. package/src/rust-crypto/OutgoingRequestsManager.ts +170 -0
  1042. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +501 -0
  1043. package/src/rust-crypto/RoomEncryptor.ts +362 -0
  1044. package/src/rust-crypto/backup.ts +942 -0
  1045. package/src/rust-crypto/constants.ts +18 -0
  1046. package/src/rust-crypto/device-converter.ts +128 -0
  1047. package/src/rust-crypto/index.ts +251 -0
  1048. package/src/rust-crypto/libolm_migration.ts +532 -0
  1049. package/src/rust-crypto/rust-crypto.ts +2542 -0
  1050. package/src/rust-crypto/secret-storage.ts +60 -0
  1051. package/src/rust-crypto/verification.ts +833 -0
  1052. package/src/scheduler.ts +309 -0
  1053. package/src/secret-storage.ts +714 -0
  1054. package/src/serverCapabilities.ts +146 -0
  1055. package/src/service-types.ts +20 -0
  1056. package/src/sliding-sync-sdk.ts +1005 -0
  1057. package/src/sliding-sync.ts +674 -0
  1058. package/src/store/index.ts +261 -0
  1059. package/src/store/indexeddb-backend.ts +41 -0
  1060. package/src/store/indexeddb-local-backend.ts +610 -0
  1061. package/src/store/indexeddb-remote-backend.ts +212 -0
  1062. package/src/store/indexeddb-store-worker.ts +157 -0
  1063. package/src/store/indexeddb.ts +397 -0
  1064. package/src/store/local-storage-events-emitter.ts +46 -0
  1065. package/src/store/memory.ts +448 -0
  1066. package/src/store/stub.ts +280 -0
  1067. package/src/sync-accumulator.ts +779 -0
  1068. package/src/sync.ts +2020 -0
  1069. package/src/testing.ts +231 -0
  1070. package/src/thread-utils.ts +31 -0
  1071. package/src/timeline-window.ts +534 -0
  1072. package/src/types.ts +59 -0
  1073. package/src/utils/decryptAESSecretStorageItem.ts +54 -0
  1074. package/src/utils/encryptAESSecretStorageItem.ts +73 -0
  1075. package/src/utils/internal/deriveKeys.ts +63 -0
  1076. package/src/utils/roomVersion.ts +35 -0
  1077. package/src/utils.ts +775 -0
  1078. package/src/version-support.ts +50 -0
  1079. package/src/webrtc/audioContext.ts +44 -0
  1080. package/src/webrtc/call.ts +3061 -0
  1081. package/src/webrtc/callEventHandler.ts +425 -0
  1082. package/src/webrtc/callEventTypes.ts +101 -0
  1083. package/src/webrtc/callFeed.ts +364 -0
  1084. package/src/webrtc/groupCall.ts +1729 -0
  1085. package/src/webrtc/groupCallEventHandler.ts +234 -0
  1086. package/src/webrtc/mediaHandler.ts +501 -0
  1087. package/src/webrtc/stats/callFeedStatsReporter.ts +91 -0
  1088. package/src/webrtc/stats/callStatsReportGatherer.ts +219 -0
  1089. package/src/webrtc/stats/callStatsReportSummary.ts +30 -0
  1090. package/src/webrtc/stats/connectionStats.ts +47 -0
  1091. package/src/webrtc/stats/connectionStatsBuilder.ts +28 -0
  1092. package/src/webrtc/stats/connectionStatsReportBuilder.ts +140 -0
  1093. package/src/webrtc/stats/groupCallStats.ts +93 -0
  1094. package/src/webrtc/stats/media/mediaSsrcHandler.ts +57 -0
  1095. package/src/webrtc/stats/media/mediaTrackHandler.ts +70 -0
  1096. package/src/webrtc/stats/media/mediaTrackStats.ts +176 -0
  1097. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +90 -0
  1098. package/src/webrtc/stats/statsReport.ts +133 -0
  1099. package/src/webrtc/stats/statsReportEmitter.ts +49 -0
  1100. package/src/webrtc/stats/summaryStatsReportGatherer.ts +148 -0
  1101. package/src/webrtc/stats/trackStatsBuilder.ts +207 -0
  1102. package/src/webrtc/stats/transportStats.ts +26 -0
  1103. package/src/webrtc/stats/transportStatsBuilder.ts +48 -0
  1104. package/src/webrtc/stats/valueFormatter.ts +27 -0
@@ -0,0 +1,977 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ /*
6
+ Copyright 2025-2026 The Matrix.org Foundation C.I.C.
7
+
8
+ Licensed under the Apache License, Version 2.0 (the "License");
9
+ you may not use this file except in compliance with the License.
10
+ You may obtain a copy of the License at
11
+
12
+ http://www.apache.org/licenses/LICENSE-2.0
13
+
14
+ Unless required by applicable law or agreed to in writing, software
15
+ distributed under the License is distributed on an "AS IS" BASIS,
16
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ See the License for the specific language governing permissions and
18
+ limitations under the License.
19
+ */
20
+ import { AbortError } from "p-retry";
21
+ import { EventType, RelationType } from "../@types/event.js";
22
+ import { ConnectionError, HTTPError, BriijError } from "../http-api/errors.js";
23
+ import { logger as rootLogger } from "../logger.js";
24
+ import { DEFAULT_EXPIRE_DURATION } from "./CallMembership.js";
25
+ import { isMyMembership, Status } from "./types.js";
26
+ import { ActionScheduler } from "./MembershipManagerActionScheduler.js";
27
+ import { TypedEventEmitter } from "../models/typed-event-emitter.js";
28
+ import { UnsupportedDelayedEventsEndpointError } from "../errors.js";
29
+ import { MembershipManagerEvent } from "./IMembershipManager.js";
30
+ import { computeSlotId } from "./utils.js";
31
+ import { isLivekitTransportConfig } from "./LivekitTransport.js";
32
+
33
+ /* MembershipActionTypes:
34
+ On Join: ───────────────┐ ┌───────────────(1)───────────┐
35
+ ▼ ▼ │
36
+ ┌────────────────┐ │
37
+ │SendDelayedEvent│ ──────(2)───┐ │
38
+ └────────────────┘ │ │
39
+ │(3) │ │
40
+ ▼ │ │
41
+ ┌─────────────┐ │ │
42
+ ┌──────(4)───│SendJoinEvent│────(4)─────┐ │ │
43
+ │ └─────────────┘ │ │ │
44
+ │ ┌─────┐ ┌──────┐ │ │ │
45
+ ▼ ▼ │ │ ▼ ▼ ▼ │
46
+ ┌────────────┐ │ │ ┌───────────────────┐ │
47
+ │UpdateExpiry│ (s) (s)|RestartDelayedEvent│ │
48
+ └────────────┘ │ │ └───────────────────┘ │
49
+ │ │ │ │ │ │
50
+ └─────┘ └──────┘ └───────┘
51
+
52
+ On Leave: ───────── STOP ALL ABOVE
53
+
54
+ ┌────────────────────────────────┐
55
+ │ SendScheduledDelayedLeaveEvent │
56
+ └────────────────────────────────┘
57
+ │(5)
58
+
59
+ ┌──────────────┐
60
+ │SendLeaveEvent│
61
+ └──────────────┘
62
+ (1) [Not found error] results in resending the delayed event
63
+ (2) [hasMemberEvent = true] Sending the delayed event if we
64
+ already have a call member event results jumping to the
65
+ RestartDelayedEvent loop directly
66
+ (3) [hasMemberEvent = false] if there is not call member event
67
+ sending it is the next step
68
+ (4) Both (UpdateExpiry and RestartDelayedEvent) actions are
69
+ scheduled when successfully sending the state event
70
+ (5) Only if delayed event sending failed (fallback)
71
+ (s) Successful restart/resend
72
+ */
73
+
74
+ /**
75
+ * Call membership should always remain sticky for this amount
76
+ * of time.
77
+ */
78
+ var MEMBERSHIP_STICKY_DURATION_MS = 60 * 60 * 1000; // 60 minutes
79
+
80
+ /**
81
+ * The different types of actions the MembershipManager can take.
82
+ * @internal
83
+ */
84
+ export var MembershipActionType = /*#__PURE__*/function (MembershipActionType) {
85
+ MembershipActionType["SendDelayedEvent"] = "SendDelayedEvent";
86
+ // -> MembershipActionType.SendJoinEvent if successful
87
+ // -> DelayedLeaveActionType.SendDelayedEvent on error, retry sending the first delayed event.
88
+ // -> DelayedLeaveActionType.RestartDelayedEvent on success start updating the delayed event
89
+ MembershipActionType["SendJoinEvent"] = "SendJoinEvent";
90
+ // -> MembershipActionType.SendJoinEvent if we run into a rate limit and need to retry
91
+ // -> MembershipActionType.Update if we successfully send the join event then schedule the expire event update
92
+ // -> DelayedLeaveActionType.RestartDelayedEvent to recheck the delayed event
93
+ MembershipActionType["RestartDelayedEvent"] = "RestartDelayedEvent";
94
+ // -> DelayedLeaveActionType.SendMainDelayedEvent on missing delay id but there is a rtc state event
95
+ // -> DelayedLeaveActionType.SendDelayedEvent on missing delay id and there is no state event
96
+ // -> DelayedLeaveActionType.RestartDelayedEvent on success we schedule the next restart
97
+ MembershipActionType["UpdateExpiry"] = "UpdateExpiry";
98
+ // -> MembershipActionType.Update if the timeout has passed so the next update is required.
99
+ MembershipActionType["SendScheduledDelayedLeaveEvent"] = "SendScheduledDelayedLeaveEvent";
100
+ // -> MembershipActionType.SendLeaveEvent on failure (not found) we need to send the leave manually and cannot use the scheduled delayed event
101
+ // -> DelayedLeaveActionType.SendScheduledDelayedLeaveEvent on error we try again.
102
+ MembershipActionType["SendLeaveEvent"] = "SendLeaveEvent"; // -> MembershipActionType.SendLeaveEvent
103
+ return MembershipActionType;
104
+ }({});
105
+
106
+ /**
107
+ * @internal
108
+ */
109
+
110
+ function createInsertActionUpdate(type, offset) {
111
+ return {
112
+ insert: [{
113
+ ts: Date.now() + (offset !== null && offset !== void 0 ? offset : 0),
114
+ type
115
+ }]
116
+ };
117
+ }
118
+ function createReplaceActionUpdate(type, offset) {
119
+ return {
120
+ replace: [{
121
+ ts: Date.now() + (offset !== null && offset !== void 0 ? offset : 0),
122
+ type
123
+ }]
124
+ };
125
+ }
126
+ /**
127
+ * This class is responsible for sending all events relating to the own membership of a matrixRTC call.
128
+ * It has the following tasks:
129
+ * - Send the users leave delayed event before sending the membership
130
+ * - Send the users membership if the state machine is started
131
+ * - Check if the delayed event was canceled due to sending the membership
132
+ * - update the delayed event (`restart`)
133
+ * - Update the state event every ~5h = `DEFAULT_EXPIRE_DURATION` (so it does not get treated as expired)
134
+ * - When the state machine is stopped:
135
+ * - Disconnect the member
136
+ * - Stop the timer for the delay refresh
137
+ * - Stop the timer for updating the state event
138
+ */
139
+ export class MembershipManager extends TypedEventEmitter {
140
+ isActivated() {
141
+ return this.activated;
142
+ }
143
+ // DEPRECATED use isActivated
144
+ isJoined() {
145
+ return this.isActivated();
146
+ }
147
+
148
+ /**
149
+ * Puts the MembershipManager in a state where it tries to be joined.
150
+ * It will send delayed events and membership events
151
+ * @param fociPreferred the list of preferred foci to use in the joined RTC membership event.
152
+ * If multiSfuFocus is set, this is only needed if this client wants to publish to multiple transports simultaneously.
153
+ * @param multiSfuFocus the active focus to use in the joined RTC membership event. Setting this implies the
154
+ * membership manager will operate in a multi-SFU connection mode. If `undefined`, an `oldest_membership`
155
+ * transport selection will be used instead.
156
+ * @param onError This will be called once the membership manager encounters an unrecoverable error.
157
+ * This should bubble up the the frontend to communicate that the call does not work in the current environment.
158
+ */
159
+ join(fociPreferred, multiSfuFocus, onError) {
160
+ if (this.scheduler.running) {
161
+ this.logger.error("MembershipManager is already running. Ignoring join request.");
162
+ return;
163
+ }
164
+ this.fociPreferred = fociPreferred;
165
+ this.rtcTransport = multiSfuFocus;
166
+ this.leavePromiseResolvers = undefined;
167
+ this.activated = true;
168
+ this.oldStatus = this.status;
169
+ this.state = MembershipManager.defaultState;
170
+ this.scheduler.startWithJoin().catch(e => {
171
+ this.logger.error("MembershipManager stopped because: ", e);
172
+ onError === null || onError === void 0 || onError(e);
173
+ }).finally(() => {
174
+ // Should already be set to false when calling `leave` in non error cases.
175
+ this.activated = false;
176
+ // Here the scheduler is not running anymore so we the `membershipLoopHandler` is not called to emit.
177
+ if (this.oldStatus && this.oldStatus !== this.status) {
178
+ this.emit(MembershipManagerEvent.StatusChanged, this.oldStatus, this.status);
179
+ }
180
+ if (!this.scheduler.running) {
181
+ var _this$leavePromiseRes;
182
+ (_this$leavePromiseRes = this.leavePromiseResolvers) === null || _this$leavePromiseRes === void 0 || _this$leavePromiseRes.resolve(true);
183
+ this.leavePromiseResolvers = undefined;
184
+ }
185
+ });
186
+ }
187
+
188
+ /**
189
+ * Leave from the call (Send an rtc session event with content: `{}`)
190
+ * @param timeout the maximum duration this promise will take to resolve
191
+ * @returns true if it managed to leave and false if the timeout condition happened.
192
+ */
193
+ leave(timeout) {
194
+ if (!this.scheduler.running) {
195
+ this.logger.warn("Called MembershipManager.leave() even though the MembershipManager is not running");
196
+ return Promise.resolve(true);
197
+ }
198
+
199
+ // We use the promise to track if we already scheduled a leave event
200
+ // So we do not check scheduler.actions/scheduler.insertions
201
+ if (!this.leavePromiseResolvers) {
202
+ // reset scheduled actions so we will not do any new actions.
203
+ this.leavePromiseResolvers = Promise.withResolvers();
204
+ this.activated = false;
205
+ this.scheduler.initiateLeave();
206
+ if (timeout) setTimeout(() => {
207
+ var _this$leavePromiseRes2;
208
+ return (_this$leavePromiseRes2 = this.leavePromiseResolvers) === null || _this$leavePromiseRes2 === void 0 ? void 0 : _this$leavePromiseRes2.resolve(false);
209
+ }, timeout);
210
+ }
211
+ return this.leavePromiseResolvers.promise;
212
+ }
213
+ onRTCSessionMemberUpdate(memberships) {
214
+ if (!this.isActivated()) {
215
+ return Promise.resolve();
216
+ }
217
+ this._ownMembership = memberships.find(m => isMyMembership(m, this.userId, this.deviceId));
218
+ if (!this._ownMembership) {
219
+ // If one of these actions are scheduled or are getting inserted in the next iteration, we should already
220
+ // take care of our missing membership.
221
+ var sendingMembershipActions = [MembershipActionType.SendDelayedEvent, MembershipActionType.SendJoinEvent];
222
+ this.logger.warn("Missing own membership: force re-join");
223
+ this.state.hasMemberStateEvent = false;
224
+ if (this.scheduler.actions.some(a => sendingMembershipActions.includes(a.type))) {
225
+ this.logger.error("tried adding another `SendDelayedEvent` actions even though we already have one in the Queue\nActionQueueOnMemberUpdate:", this.scheduler.actions);
226
+ } else {
227
+ // Only react to our own membership missing if we have not already scheduled sending a new membership DirectMembershipManagerAction.Join
228
+ this.scheduler.initiateJoin();
229
+ }
230
+ }
231
+ return Promise.resolve();
232
+ }
233
+ updateCallIntent(callIntent) {
234
+ var _this = this;
235
+ return _asyncToGenerator(function* () {
236
+ if (!_this.activated || !_this.ownMembership) {
237
+ throw Error("You cannot update your intent before joining the call");
238
+ }
239
+ if (_this.ownMembership.callIntent === callIntent) {
240
+ return; // No-op
241
+ }
242
+ _this.callIntent = callIntent;
243
+ // Kick off a new membership event as a result.
244
+ yield _this.sendJoinEvent();
245
+ })();
246
+ }
247
+
248
+ /**
249
+ * @throws if the client does not return user or device id.
250
+ * @param joinConfig
251
+ * @param room
252
+ * @param client
253
+ */
254
+ constructor(joinConfig, room, client, slotDescription, parentLogger) {
255
+ super();
256
+ this.joinConfig = joinConfig;
257
+ this.room = room;
258
+ this.client = client;
259
+ this.slotDescription = slotDescription;
260
+ _defineProperty(this, "activated", false);
261
+ _defineProperty(this, "logger", void 0);
262
+ _defineProperty(this, "callIntent", void 0);
263
+ _defineProperty(this, "leavePromiseResolvers", void 0);
264
+ _defineProperty(this, "_ownMembership", void 0);
265
+ // scheduler
266
+ _defineProperty(this, "oldStatus", void 0);
267
+ _defineProperty(this, "scheduler", void 0);
268
+ // MembershipManager mutable state.
269
+ _defineProperty(this, "state", void 0);
270
+ // Membership Event static parameters:
271
+ _defineProperty(this, "deviceId", void 0);
272
+ _defineProperty(this, "userId", void 0);
273
+ _defineProperty(this, "stateKey", void 0);
274
+ _defineProperty(this, "rtcTransport", void 0);
275
+ /** @deprecated This will be removed in favor or rtcTransport becoming a list of actively used transports */
276
+ _defineProperty(this, "fociPreferred", void 0);
277
+ // Config:
278
+ _defineProperty(this, "delayedLeaveEventDelayMsOverride", void 0);
279
+ // an abstraction to switch between sending state or a sticky event
280
+ _defineProperty(this, "clientSendDelayedDisconnectMembership", () => this.client._unstable_sendDelayedStateEvent(this.room.roomId, {
281
+ delay: this.delayedLeaveEventDelayMs
282
+ }, EventType.GroupCallMemberPrefix, {}, this.stateKey));
283
+ _defineProperty(this, "clientSendMembership", myMembership => {
284
+ return this.client.sendStateEvent(this.room.roomId, EventType.GroupCallMemberPrefix, myMembership, this.stateKey);
285
+ });
286
+ this.logger = (parentLogger !== null && parentLogger !== void 0 ? parentLogger : rootLogger).getChild("[MembershipManager]");
287
+ var [userId, deviceId] = [this.client.getUserId(), this.client.getDeviceId()];
288
+ if (userId === null) throw Error("Missing userId in client");
289
+ if (deviceId === null) throw Error("Missing deviceId in client");
290
+ this.deviceId = deviceId;
291
+ this.userId = userId;
292
+ // this needs to become a uuid so that consecutive join/leaves result in a key rotation.
293
+ // we keep it as a string for now for backwards compatibility.
294
+ this.stateKey = this.makeMembershipStateKey(userId, deviceId);
295
+ this.state = MembershipManager.defaultState;
296
+ this.callIntent = joinConfig === null || joinConfig === void 0 ? void 0 : joinConfig.callIntent;
297
+ this.scheduler = new ActionScheduler(type => {
298
+ if (this.oldStatus) {
299
+ // we put this at the beginning of the actions scheduler loop handle callback since it is a loop this
300
+ // is equivalent to running it at the end of the loop. (just after applying the status/action list changes)
301
+ // This order is required because this method needs to return the action updates.
302
+ this.logger.debug("MembershipManager applied action changes. Status: ".concat(this.oldStatus, " -> ").concat(this.status));
303
+ if (this.oldStatus !== this.status) {
304
+ this.emit(MembershipManagerEvent.StatusChanged, this.oldStatus, this.status);
305
+ }
306
+ }
307
+ this.oldStatus = this.status;
308
+ this.logger.debug("MembershipManager before processing action. status=".concat(this.oldStatus));
309
+ return this.membershipLoopHandler(type);
310
+ }, this.logger);
311
+ }
312
+ get ownMembership() {
313
+ return this._ownMembership;
314
+ }
315
+ static get defaultState() {
316
+ return {
317
+ hasMemberStateEvent: false,
318
+ delayId: undefined,
319
+ startTime: 0,
320
+ rateLimitRetries: new Map(),
321
+ networkErrorRetries: new Map(),
322
+ expireUpdateIterations: 1,
323
+ probablyLeft: false
324
+ };
325
+ }
326
+ get networkErrorRetryMs() {
327
+ var _this$joinConfig$netw, _this$joinConfig;
328
+ return (_this$joinConfig$netw = (_this$joinConfig = this.joinConfig) === null || _this$joinConfig === void 0 ? void 0 : _this$joinConfig.networkErrorRetryMs) !== null && _this$joinConfig$netw !== void 0 ? _this$joinConfig$netw : 3000;
329
+ }
330
+ get membershipEventExpiryMs() {
331
+ var _this$joinConfig$memb, _this$joinConfig2;
332
+ return (_this$joinConfig$memb = (_this$joinConfig2 = this.joinConfig) === null || _this$joinConfig2 === void 0 ? void 0 : _this$joinConfig2.membershipEventExpiryMs) !== null && _this$joinConfig$memb !== void 0 ? _this$joinConfig$memb : DEFAULT_EXPIRE_DURATION;
333
+ }
334
+ get membershipEventExpiryHeadroomMs() {
335
+ var _this$joinConfig$memb2, _this$joinConfig3;
336
+ return (_this$joinConfig$memb2 = (_this$joinConfig3 = this.joinConfig) === null || _this$joinConfig3 === void 0 ? void 0 : _this$joinConfig3.membershipEventExpiryHeadroomMs) !== null && _this$joinConfig$memb2 !== void 0 ? _this$joinConfig$memb2 : 5000;
337
+ }
338
+ computeNextExpiryActionTs(iteration) {
339
+ return this.state.startTime + Math.min(this.membershipEventExpiryMs, MEMBERSHIP_STICKY_DURATION_MS) * iteration - this.membershipEventExpiryHeadroomMs;
340
+ }
341
+ get delayedLeaveEventDelayMs() {
342
+ var _ref, _this$delayedLeaveEve, _this$joinConfig4;
343
+ return (_ref = (_this$delayedLeaveEve = this.delayedLeaveEventDelayMsOverride) !== null && _this$delayedLeaveEve !== void 0 ? _this$delayedLeaveEve : (_this$joinConfig4 = this.joinConfig) === null || _this$joinConfig4 === void 0 ? void 0 : _this$joinConfig4.delayedLeaveEventDelayMs) !== null && _ref !== void 0 ? _ref : 8000;
344
+ }
345
+ get delayedLeaveEventRestartMs() {
346
+ var _this$joinConfig$dela, _this$joinConfig5;
347
+ return (_this$joinConfig$dela = (_this$joinConfig5 = this.joinConfig) === null || _this$joinConfig5 === void 0 ? void 0 : _this$joinConfig5.delayedLeaveEventRestartMs) !== null && _this$joinConfig$dela !== void 0 ? _this$joinConfig$dela : 5000;
348
+ }
349
+ get maximumRateLimitRetryCount() {
350
+ var _this$joinConfig$maxi, _this$joinConfig6;
351
+ return (_this$joinConfig$maxi = (_this$joinConfig6 = this.joinConfig) === null || _this$joinConfig6 === void 0 ? void 0 : _this$joinConfig6.maximumRateLimitRetryCount) !== null && _this$joinConfig$maxi !== void 0 ? _this$joinConfig$maxi : 10;
352
+ }
353
+ get maximumNetworkErrorRetryCount() {
354
+ var _this$joinConfig$maxi2, _this$joinConfig7;
355
+ return (_this$joinConfig$maxi2 = (_this$joinConfig7 = this.joinConfig) === null || _this$joinConfig7 === void 0 ? void 0 : _this$joinConfig7.maximumNetworkErrorRetryCount) !== null && _this$joinConfig$maxi2 !== void 0 ? _this$joinConfig$maxi2 : 10;
356
+ }
357
+ get delayedLeaveEventRestartLocalTimeoutMs() {
358
+ var _this$joinConfig$dela2, _this$joinConfig8;
359
+ return (_this$joinConfig$dela2 = (_this$joinConfig8 = this.joinConfig) === null || _this$joinConfig8 === void 0 ? void 0 : _this$joinConfig8.delayedLeaveEventRestartLocalTimeoutMs) !== null && _this$joinConfig$dela2 !== void 0 ? _this$joinConfig$dela2 : 2000;
360
+ }
361
+
362
+ // LOOP HANDLER:
363
+ membershipLoopHandler(type) {
364
+ var _this2 = this;
365
+ return _asyncToGenerator(function* () {
366
+ switch (type) {
367
+ case MembershipActionType.SendDelayedEvent:
368
+ {
369
+ // Before we start we check if we come from a state where we have a delay id.
370
+ if (!_this2.state.delayId) {
371
+ return _this2.sendOrResendDelayedLeaveEvent(); // Normal case without any previous delayed id.
372
+ } else {
373
+ // This can happen if someone else (or another client) removes our own membership event.
374
+ // It will trigger `onRTCSessionMemberUpdate` queue `MembershipActionType.SendDelayedEvent`.
375
+ // We might still have our delayed event from the previous participation and dependent on the server this might not
376
+ // get removed automatically if the state changes. Hence, it would remove our membership unexpectedly shortly after the rejoin.
377
+ //
378
+ // In this block we will try to cancel this delayed event before setting up a new one.
379
+
380
+ return _this2.cancelKnownDelayIdBeforeSendDelayedEvent(_this2.state.delayId);
381
+ }
382
+ }
383
+ case MembershipActionType.RestartDelayedEvent:
384
+ {
385
+ if (!_this2.state.delayId) {
386
+ // Delay id got reset. This action was used to check if the hs canceled the delayed event when the join state got sent.
387
+ return createInsertActionUpdate(MembershipActionType.SendDelayedEvent);
388
+ }
389
+ return _this2.restartDelayedEvent(_this2.state.delayId);
390
+ }
391
+ case MembershipActionType.SendScheduledDelayedLeaveEvent:
392
+ {
393
+ // We are already good
394
+ if (!_this2.state.hasMemberStateEvent) {
395
+ return {
396
+ replace: []
397
+ };
398
+ }
399
+ if (_this2.state.delayId) {
400
+ return _this2.sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(_this2.state.delayId);
401
+ } else {
402
+ return createInsertActionUpdate(MembershipActionType.SendLeaveEvent);
403
+ }
404
+ }
405
+ case MembershipActionType.SendJoinEvent:
406
+ {
407
+ return _this2.sendJoinEvent();
408
+ }
409
+ case MembershipActionType.UpdateExpiry:
410
+ {
411
+ return _this2.updateExpiryOnJoinedEvent();
412
+ }
413
+ case MembershipActionType.SendLeaveEvent:
414
+ {
415
+ // We are good already
416
+ if (!_this2.state.hasMemberStateEvent) {
417
+ return {
418
+ replace: []
419
+ };
420
+ }
421
+ // This is only a fallback in case we do not have working delayed events support.
422
+ // first we should try to just send the scheduled leave event
423
+ return _this2.sendFallbackLeaveEvent();
424
+ }
425
+ }
426
+ })();
427
+ }
428
+ // HANDLERS (used in the membershipLoopHandler)
429
+ sendOrResendDelayedLeaveEvent() {
430
+ var _this3 = this;
431
+ return _asyncToGenerator(function* () {
432
+ // We can reach this at the start of a call (where we do not yet have a membership: state.hasMemberStateEvent=false)
433
+ // or during a call if the state event canceled our delayed event or caused by an unexpected error that removed our delayed event.
434
+ // (Another client could have canceled it, the homeserver might have removed/lost it due to a restart, ...)
435
+ // In the `then` and `catch` block we treat both cases differently. "if (this.state.hasMemberStateEvent) {} else {}"
436
+ return yield _this3.clientSendDelayedDisconnectMembership().then(response => {
437
+ _this3.state.expectedServerDelayLeaveTs = Date.now() + _this3.delayedLeaveEventDelayMs;
438
+ _this3.setAndEmitProbablyLeft(false);
439
+ // On success we reset retries and set delayId.
440
+ _this3.resetRateLimitCounter(MembershipActionType.SendDelayedEvent);
441
+ _this3.setAndEmitDelayId(response.delay_id);
442
+ if (_this3.state.hasMemberStateEvent) {
443
+ // This action was scheduled because the previous delayed event was cancelled
444
+ // due to lack of https://github.com/element-hq/synapse/pull/17810
445
+ return createInsertActionUpdate(MembershipActionType.RestartDelayedEvent, _this3.delayedLeaveEventRestartMs);
446
+ } else {
447
+ // This action was scheduled because we are in the process of joining
448
+ return createInsertActionUpdate(MembershipActionType.SendJoinEvent);
449
+ }
450
+ }).catch(e => {
451
+ var repeatActionType = MembershipActionType.SendDelayedEvent;
452
+ if (_this3.manageMaxDelayExceededSituation(e)) {
453
+ return createInsertActionUpdate(repeatActionType);
454
+ }
455
+ var update = _this3.actionUpdateFromErrors(e, repeatActionType, "_unstable_sendDelayedStateEvent");
456
+ if (update) return update;
457
+ if (_this3.state.hasMemberStateEvent) {
458
+ // This action was scheduled because the previous delayed event was cancelled
459
+ // due to lack of https://github.com/element-hq/synapse/pull/17810
460
+
461
+ // Don't do any other delayed event work if its not supported.
462
+ if (_this3.isUnsupportedDelayedEndpoint(e)) return {};
463
+ throw Error("Could not send delayed event, even though delayed events are supported. " + e);
464
+ } else {
465
+ // This action was scheduled because we are in the process of joining
466
+ // log and fall through
467
+ if (_this3.isUnsupportedDelayedEndpoint(e)) {
468
+ _this3.logger.info("Not using delayed event because the endpoint is not supported");
469
+ } else {
470
+ _this3.logger.info("Not using delayed event because: " + e);
471
+ }
472
+ // On any other error we fall back to not using delayed events and send the join state event immediately
473
+ return createInsertActionUpdate(MembershipActionType.SendJoinEvent);
474
+ }
475
+ });
476
+ })();
477
+ }
478
+ cancelKnownDelayIdBeforeSendDelayedEvent(delayId) {
479
+ var _this4 = this;
480
+ return _asyncToGenerator(function* () {
481
+ // Remove all running updates and restarts
482
+ return yield _this4.client._unstable_cancelScheduledDelayedEvent(delayId).then(() => {
483
+ _this4.setAndEmitDelayId(undefined);
484
+ _this4.resetRateLimitCounter(MembershipActionType.SendDelayedEvent);
485
+ return createReplaceActionUpdate(MembershipActionType.SendDelayedEvent);
486
+ }).catch(e => {
487
+ var repeatActionType = MembershipActionType.SendDelayedEvent;
488
+ var update = _this4.actionUpdateFromErrors(e, repeatActionType, "cancelScheduledDelayedEvent");
489
+ if (update) return update;
490
+ if (_this4.isNotFoundError(e)) {
491
+ // If we get a M_NOT_FOUND we know that the delayed event got already removed.
492
+ // This means we are good and can set it to undefined and run this again.
493
+ _this4.setAndEmitDelayId(undefined);
494
+ return createReplaceActionUpdate(repeatActionType);
495
+ }
496
+ if (_this4.isUnsupportedDelayedEndpoint(e)) {
497
+ return createReplaceActionUpdate(MembershipActionType.SendJoinEvent);
498
+ }
499
+ // We do not just ignore and log this error since we would also need to reset the delayId.
500
+
501
+ // This becomes an unrecoverable error case since something is significantly off if we don't hit any of the above cases
502
+ // when state.delayId !== undefined
503
+ // We do not just ignore and log this error since we would also need to reset the delayId.
504
+ // It is cleaner if we, the frontend, rejoins instead of resetting the delayId here and behaving like in the success case.
505
+ throw Error("We failed to cancel a delayed event where we already had a delay id with an error we cannot automatically handle");
506
+ });
507
+ })();
508
+ }
509
+ setAndEmitProbablyLeft(probablyLeft) {
510
+ if (this.state.probablyLeft === probablyLeft) {
511
+ return;
512
+ }
513
+ this.state.probablyLeft = probablyLeft;
514
+ this.emit(MembershipManagerEvent.ProbablyLeft, this.state.probablyLeft);
515
+ }
516
+ setAndEmitDelayId(delayId) {
517
+ if (this.state.delayId === delayId) return;
518
+ this.state.delayId = delayId;
519
+ this.emit(MembershipManagerEvent.DelayIdChanged, this.state.delayId);
520
+ }
521
+ restartDelayedEvent(delayId) {
522
+ var _this5 = this;
523
+ return _asyncToGenerator(function* () {
524
+ // Compute the duration until we expect the server to send the delayed leave event.
525
+ var durationUntilServerDelayedLeave = _this5.state.expectedServerDelayLeaveTs ? _this5.state.expectedServerDelayLeaveTs - Date.now() : undefined;
526
+ var abortPromise = new Promise((_, reject) => {
527
+ setTimeout(() => {
528
+ reject(new AbortError("Restart delayed event timed out before the HS responded"));
529
+ },
530
+ // We abort immediately at the time where we expect the server to send the delayed leave event.
531
+ // At this point we want the catch block to run and set the `probablyLeft` state.
532
+ //
533
+ // While we are already in probablyLeft state, we use the unaltered delayedLeaveEventRestartLocalTimeoutMs.
534
+ durationUntilServerDelayedLeave !== undefined && !_this5.state.probablyLeft ? Math.min(_this5.delayedLeaveEventRestartLocalTimeoutMs, durationUntilServerDelayedLeave) : _this5.delayedLeaveEventRestartLocalTimeoutMs);
535
+ });
536
+
537
+ // The obvious choice here would be to use the `IRequestOpts` to set the timeout. Since this call might be forwarded
538
+ // to the widget driver this information would get lost. That is why we mimic the AbortError using the race.
539
+ return yield Promise.race([_this5.client._unstable_restartScheduledDelayedEvent(delayId), abortPromise]).then(() => {
540
+ // Whenever we successfully restart the delayed event we update the `state.expectedServerDelayLeaveTs`
541
+ // which stores the predicted timestamp at which the server will send the delayed leave event if there wont be any further
542
+ // successful restart requests.
543
+ _this5.state.expectedServerDelayLeaveTs = Date.now() + _this5.delayedLeaveEventDelayMs;
544
+ _this5.resetRateLimitCounter(MembershipActionType.RestartDelayedEvent);
545
+ _this5.setAndEmitProbablyLeft(false);
546
+ return createInsertActionUpdate(MembershipActionType.RestartDelayedEvent, _this5.delayedLeaveEventRestartMs);
547
+ }).catch(e => {
548
+ if (_this5.state.expectedServerDelayLeaveTs && _this5.state.expectedServerDelayLeaveTs <= Date.now()) {
549
+ // Once we reach this point it's likely that the server is sending the delayed leave event so we emit `probablyLeft = true`.
550
+ // It will emit `probablyLeft = false` once we notice about our leave through sync and successfully setup a new state event.
551
+ _this5.setAndEmitProbablyLeft(true);
552
+ }
553
+ var repeatActionType = MembershipActionType.RestartDelayedEvent;
554
+ if (_this5.isNotFoundError(e)) {
555
+ _this5.setAndEmitDelayId(undefined);
556
+ return createInsertActionUpdate(MembershipActionType.SendDelayedEvent);
557
+ }
558
+ // If the HS does not support delayed events we wont reschedule.
559
+ if (_this5.isUnsupportedDelayedEndpoint(e)) return {};
560
+
561
+ // TODO this also needs a test: get rate limit while checking id delayed event is scheduled
562
+ var update = _this5.actionUpdateFromErrors(e, repeatActionType, "restartScheduledDelayedEvent");
563
+ if (update) return update;
564
+
565
+ // In other error cases we have no idea what is happening
566
+ throw Error("Could not restart delayed event, even though delayed events are supported. " + e);
567
+ });
568
+ })();
569
+ }
570
+ sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(delayId) {
571
+ var _this6 = this;
572
+ return _asyncToGenerator(function* () {
573
+ return yield _this6.client._unstable_sendScheduledDelayedEvent(delayId).then(() => {
574
+ _this6.state.hasMemberStateEvent = false;
575
+ _this6.setAndEmitDelayId(undefined);
576
+ _this6.resetRateLimitCounter(MembershipActionType.SendScheduledDelayedLeaveEvent);
577
+ return {
578
+ replace: []
579
+ };
580
+ }).catch(e => {
581
+ var repeatActionType = MembershipActionType.SendLeaveEvent;
582
+ if (_this6.isUnsupportedDelayedEndpoint(e)) return {};
583
+ if (_this6.isNotFoundError(e)) {
584
+ _this6.setAndEmitDelayId(undefined);
585
+ return createInsertActionUpdate(repeatActionType);
586
+ }
587
+ var update = _this6.actionUpdateFromErrors(e, repeatActionType, "sendScheduledDelayedEvent");
588
+ if (update) return update;
589
+
590
+ // On any other error we fall back to SendLeaveEvent (this includes hard errors from rate limiting)
591
+ _this6.logger.warn("Encountered unexpected error during SendScheduledDelayedLeaveEvent. Falling back to SendLeaveEvent", e);
592
+ return createInsertActionUpdate(repeatActionType);
593
+ });
594
+ })();
595
+ }
596
+ sendJoinEvent() {
597
+ var _this7 = this;
598
+ return _asyncToGenerator(function* () {
599
+ return yield _this7.clientSendMembership(_this7.makeMyMembership(_this7.membershipEventExpiryMs)).then(() => {
600
+ _this7.setAndEmitProbablyLeft(false);
601
+ _this7.state.startTime = Date.now();
602
+ // The next update should already use twice the membershipEventExpiryTimeout
603
+ _this7.state.expireUpdateIterations = 1;
604
+ _this7.state.hasMemberStateEvent = true;
605
+ _this7.resetRateLimitCounter(MembershipActionType.SendJoinEvent);
606
+ // An UpdateExpiry action might be left over from a previous join event.
607
+ // We can reach sendJoinEvent when the delayed leave event gets send by the HS.
608
+ // The branch where we might have a leftover UpdateExpiry action is:
609
+ // RestartDelayedEvent (cannot find it, server removed it)
610
+ // -> SendDelayedEvent (send new delayed event)
611
+ // -> SendJoinEvent (here with a still scheduled UpdateExpiry action)
612
+ var actionsWithoutUpdateExpiry = _this7.scheduler.actions.filter(a => a.type !== MembershipActionType.UpdateExpiry &&
613
+ // A new UpdateExpiry action with an updated will be scheduled,
614
+ a.type !== MembershipActionType.SendJoinEvent // Manually remove the SendJoinEvent action,
615
+ );
616
+ return {
617
+ replace: [...actionsWithoutUpdateExpiry,
618
+ // To check if the delayed event is still there or got removed by inserting the stateEvent, we need to restart it.
619
+ {
620
+ ts: Date.now(),
621
+ type: MembershipActionType.RestartDelayedEvent
622
+ }, {
623
+ ts: _this7.computeNextExpiryActionTs(_this7.state.expireUpdateIterations),
624
+ type: MembershipActionType.UpdateExpiry
625
+ }]
626
+ };
627
+ }).catch(e => {
628
+ var update = _this7.actionUpdateFromErrors(e, MembershipActionType.SendJoinEvent, "sendStateEvent");
629
+ if (update) return update;
630
+ throw e;
631
+ });
632
+ })();
633
+ }
634
+ updateExpiryOnJoinedEvent() {
635
+ var _this8 = this;
636
+ return _asyncToGenerator(function* () {
637
+ var nextExpireUpdateIteration = _this8.state.expireUpdateIterations + 1;
638
+ return yield _this8.clientSendMembership(_this8.makeMyMembership(_this8.membershipEventExpiryMs * nextExpireUpdateIteration)).then(() => {
639
+ // Success, we reset retries and schedule update.
640
+ _this8.resetRateLimitCounter(MembershipActionType.UpdateExpiry);
641
+ _this8.state.expireUpdateIterations = nextExpireUpdateIteration;
642
+ return {
643
+ insert: [{
644
+ ts: _this8.computeNextExpiryActionTs(nextExpireUpdateIteration),
645
+ type: MembershipActionType.UpdateExpiry
646
+ }]
647
+ };
648
+ }).catch(e => {
649
+ var update = _this8.actionUpdateFromErrors(e, MembershipActionType.UpdateExpiry, "sendStateEvent");
650
+ if (update) return update;
651
+ throw e;
652
+ });
653
+ })();
654
+ }
655
+ sendFallbackLeaveEvent() {
656
+ var _this9 = this;
657
+ return _asyncToGenerator(function* () {
658
+ return yield _this9.clientSendMembership({}).then(() => {
659
+ _this9.resetRateLimitCounter(MembershipActionType.SendLeaveEvent);
660
+ _this9.state.hasMemberStateEvent = false;
661
+ return {
662
+ replace: []
663
+ };
664
+ }).catch(e => {
665
+ var update = _this9.actionUpdateFromErrors(e, MembershipActionType.SendLeaveEvent, "sendStateEvent");
666
+ if (update) return update;
667
+ throw e;
668
+ });
669
+ })();
670
+ }
671
+
672
+ // HELPERS
673
+ /**
674
+ * this creates `${localUserId}_${localDeviceId}_${this.slotDescription.application}${this.slotDescription.id}`
675
+ * which is not compatible with membershipID of session type member events. They have to be `${localUserId}:${localDeviceId}`
676
+ */
677
+ makeMembershipStateKey(localUserId, localDeviceId) {
678
+ // INFO_SLOT_ID_LEGACY_CASE (search for all occurances of this INFO to get the full picture)
679
+ // Revert back to "" just for the state key (state keys are always legacy. we use sticky events for non legacy events)
680
+ var application = this.slotDescription.application;
681
+ var needsEmptyStringRoomFix = application === "m.call" && this.slotDescription.id === "ROOM";
682
+ var slotId = needsEmptyStringRoomFix ? "" : this.slotDescription.id;
683
+ var stateKey = "".concat(localUserId, "_").concat(localDeviceId, "_").concat(application).concat(slotId);
684
+ if (/^org\.matrix\.msc(3757|3779)\b/.exec(this.room.getVersion())) {
685
+ return stateKey;
686
+ } else {
687
+ return "_".concat(stateKey);
688
+ }
689
+ }
690
+
691
+ /**
692
+ * Constructs our own membership
693
+ * @returns Only returns `SessionMembershipData`
694
+ */
695
+ makeMyMembership(expires) {
696
+ var _this$fociPreferred, _this$fociPreferred2;
697
+ var ownMembership = this.ownMembership;
698
+ var needsEmptyStringRoomFix = this.slotDescription.application === "m.call" && this.slotDescription.id === "ROOM";
699
+ var focusObjects = this.rtcTransport === undefined ? {
700
+ focus_active: {
701
+ type: "livekit",
702
+ focus_selection: "oldest_membership"
703
+ },
704
+ foci_preferred: (_this$fociPreferred = this.fociPreferred) !== null && _this$fociPreferred !== void 0 ? _this$fociPreferred : []
705
+ } : {
706
+ focus_active: {
707
+ type: "livekit",
708
+ focus_selection: "multi_sfu"
709
+ },
710
+ foci_preferred: [this.rtcTransport, ...((_this$fociPreferred2 = this.fociPreferred) !== null && _this$fociPreferred2 !== void 0 ? _this$fociPreferred2 : [])]
711
+ };
712
+ return _objectSpread(_objectSpread({
713
+ "application": this.slotDescription.application,
714
+ // INFO_SLOT_ID_LEGACY_CASE (search for all occurances of this INFO to get the full picture)
715
+ // Revert back to "" just for the sending the event.
716
+ "call_id": needsEmptyStringRoomFix ? "" : this.slotDescription.id,
717
+ "scope": "m.room",
718
+ "device_id": this.deviceId,
719
+ // DO NOT use this.memberId here since that is the state key (using application...)
720
+ // But for session events we use the colon seperated userId and deviceId. The SFU will automatically
721
+ // assign those values to the media participant for those versions.
722
+ "membershipID": "".concat(this.userId, ":").concat(this.deviceId),
723
+ expires,
724
+ "m.call.intent": this.callIntent
725
+ }, focusObjects), ownMembership !== undefined ? {
726
+ created_ts: ownMembership.createdTs()
727
+ } : undefined);
728
+ }
729
+
730
+ // Error checks and handlers
731
+
732
+ /**
733
+ * Check if its a NOT_FOUND error
734
+ * @param error the error causing this handler check/execution
735
+ * @returns true if its a not found error
736
+ */
737
+ isNotFoundError(error) {
738
+ return error instanceof BriijError && error.errcode === "M_NOT_FOUND";
739
+ }
740
+
741
+ /**
742
+ * Check if this is a DelayExceeded timeout and update the TimeoutOverride for the next try
743
+ * @param error the error causing this handler check/execution
744
+ * @returns true if its a delay exceeded error and we updated the local TimeoutOverride
745
+ */
746
+ manageMaxDelayExceededSituation(error) {
747
+ if (error instanceof BriijError && error.errcode === "M_UNKNOWN" && error.data["org.matrix.msc4140.errcode"] === "M_MAX_DELAY_EXCEEDED") {
748
+ var maxDelayAllowed = error.data["org.matrix.msc4140.max_delay"];
749
+ if (typeof maxDelayAllowed === "number" && this.delayedLeaveEventDelayMs > maxDelayAllowed) {
750
+ this.delayedLeaveEventDelayMsOverride = maxDelayAllowed;
751
+ }
752
+ this.logger.warn("Retry sending delayed disconnection event due to server timeout limitations:", error);
753
+ return true;
754
+ }
755
+ return false;
756
+ }
757
+ actionUpdateFromErrors(error, type, method) {
758
+ var updateLimit = this.actionUpdateFromRateLimitError(error, method, type);
759
+ if (updateLimit) return updateLimit;
760
+ var updateNetwork = this.actionUpdateFromNetworkErrorRetry(error, type);
761
+ if (updateNetwork) return updateNetwork;
762
+ }
763
+ /**
764
+ * Check if we have a rate limit error and schedule the same action again if we dont exceed the rate limit retry count yet.
765
+ * @param error the error causing this handler check/execution
766
+ * @param method the method used for the throw message
767
+ * @param type which MembershipActionType we reschedule because of a rate limit.
768
+ * @throws If it is a rate limit error and the retry count got exceeded
769
+ * @returns Returns true if we handled the error by rescheduling the correct next action.
770
+ * Returns false if it is not a network error.
771
+ */
772
+ actionUpdateFromRateLimitError(error, method, type) {
773
+ var _this$state$rateLimit;
774
+ // "Is rate limit"-boundary
775
+ if (!((error instanceof HTTPError || error instanceof BriijError) && error.isRateLimitError())) {
776
+ return undefined;
777
+ }
778
+
779
+ // retry boundary
780
+ var rateLimitRetries = (_this$state$rateLimit = this.state.rateLimitRetries.get(type)) !== null && _this$state$rateLimit !== void 0 ? _this$state$rateLimit : 0;
781
+ if (rateLimitRetries < this.maximumRateLimitRetryCount) {
782
+ var resendDelay;
783
+ var defaultMs = 5000;
784
+ try {
785
+ var _error$getRetryAfterM;
786
+ resendDelay = (_error$getRetryAfterM = error.getRetryAfterMs()) !== null && _error$getRetryAfterM !== void 0 ? _error$getRetryAfterM : defaultMs;
787
+ this.logger.info("Rate limited by server, retrying in ".concat(resendDelay, "ms"));
788
+ } catch (e) {
789
+ this.logger.warn("Error while retrieving a rate-limit retry delay, retrying after default delay of ".concat(defaultMs), e);
790
+ resendDelay = defaultMs;
791
+ }
792
+ this.state.rateLimitRetries.set(type, rateLimitRetries + 1);
793
+ return createInsertActionUpdate(type, resendDelay);
794
+ }
795
+ throw Error("Exceeded maximum retries for " + type + " attempts (client." + method + ")", {
796
+ cause: error
797
+ });
798
+ }
799
+
800
+ /**
801
+ * FIXME Don't Check the error and retry the same MembershipAction again in the configured time and for the configured retry count.
802
+ * @param error the error causing this handler check/execution
803
+ * @param type the action type that we need to repeat because of the error
804
+ * @throws If it is a network error and the retry count got exceeded
805
+ * @returns
806
+ * Returns true if we handled the error by rescheduling the correct next action.
807
+ * Returns false if it is not a network error.
808
+ */
809
+ actionUpdateFromNetworkErrorRetry(error, type) {
810
+ var _this$state$networkEr;
811
+ // "Is a network error"-boundary
812
+ var retries = (_this$state$networkEr = this.state.networkErrorRetries.get(type)) !== null && _this$state$networkEr !== void 0 ? _this$state$networkEr : 0;
813
+
814
+ // Strings for error logging
815
+ var retryDurationString = this.networkErrorRetryMs / 1000 + "s";
816
+ var retryCounterString = "(" + retries + "/" + this.maximumNetworkErrorRetryCount + ")";
817
+
818
+ // Variables for scheduling the new event
819
+ var retryDuration = this.networkErrorRetryMs;
820
+ if (error instanceof Error && error.name === "AbortError") {
821
+ // We do not wait for the timeout on local timeouts.
822
+ retryDuration = 0;
823
+ this.logger.warn("Network local timeout error while sending event, immediate retry (" + retryCounterString + ")", error);
824
+ } else if (error instanceof Error && error.message.includes("updating delayed event")) {
825
+ // TODO: We do not want error message matching here but instead the error should be a typed HTTPError
826
+ // and be handled below automatically (the same as in the SPA case).
827
+ //
828
+ // The error originates because of https://github.com/matrix-org/matrix-widget-api/blob/5d81d4a26ff69e4bd3ddc79a884c9527999fb2f4/src/ClientWidgetApi.ts#L698-L701
829
+ // uses `e` instance of HttpError (and not BriijError)
830
+ // The element web widget driver (only checks for BriijError) is then failing to process (`processError`) it as a typed error: https://github.com/element-hq/element-web/blob/471712cbf06a067e5499bd5d2d7a75f693d9a12d/src/stores/widgets/StopGapWidgetDriver.ts#L711-L715
831
+ // So it will not call: `error.asWidgetApiErrorData()` which is also missing for `HttpError`
832
+ //
833
+ // A proper fix would be to either find a place to convert the `HttpError` into a `BriijError` and the `processError`
834
+ // method to handle it as expected or to adjust `processError` to also process `HttpError`'s.
835
+ this.logger.warn("delayed event update timeout error, retrying in " + retryDurationString + " " + retryCounterString, error);
836
+ } else if (error instanceof ConnectionError) {
837
+ this.logger.warn("Network connection error while sending event, retrying in " + retryDurationString + " " + retryCounterString, error);
838
+ } else if ((error instanceof HTTPError || error instanceof BriijError) && typeof error.httpStatus === "number" && error.httpStatus >= 500 && error.httpStatus < 600) {
839
+ this.logger.warn("Server error while sending event, retrying in " + retryDurationString + " " + retryCounterString, error);
840
+ } else {
841
+ return undefined;
842
+ }
843
+
844
+ // retry boundary
845
+ if (retries < this.maximumNetworkErrorRetryCount) {
846
+ this.state.networkErrorRetries.set(type, retries + 1);
847
+ return createInsertActionUpdate(type, retryDuration);
848
+ }
849
+
850
+ // Failure
851
+ throw Error("Reached maximum (" + this.maximumNetworkErrorRetryCount + ") retries cause by: " + error);
852
+ }
853
+
854
+ /**
855
+ * Check if its an UnsupportedDelayedEventsEndpointError and which implies that we cannot do any delayed event logic
856
+ * @param error The error to check
857
+ * @returns true it its an UnsupportedDelayedEventsEndpointError
858
+ */
859
+ isUnsupportedDelayedEndpoint(error) {
860
+ return error instanceof UnsupportedDelayedEventsEndpointError;
861
+ }
862
+ resetRateLimitCounter(type) {
863
+ this.state.rateLimitRetries.set(type, 0);
864
+ this.state.networkErrorRetries.set(type, 0);
865
+ }
866
+ get status() {
867
+ var actions = this.scheduler.actions;
868
+ if (actions.length === 1) {
869
+ var {
870
+ type
871
+ } = actions[0];
872
+ switch (type) {
873
+ case MembershipActionType.SendDelayedEvent:
874
+ case MembershipActionType.SendJoinEvent:
875
+ return Status.Connecting;
876
+ case MembershipActionType.UpdateExpiry:
877
+ // where no delayed events
878
+ return Status.Connected;
879
+ case MembershipActionType.SendScheduledDelayedLeaveEvent:
880
+ case MembershipActionType.SendLeaveEvent:
881
+ return Status.Disconnecting;
882
+ default:
883
+ // pass through as not expected
884
+ }
885
+ } else if (actions.length === 2) {
886
+ var types = actions.map(a => a.type);
887
+ // normal state for connected with delayed events
888
+ if ((types.includes(MembershipActionType.RestartDelayedEvent) || types.includes(MembershipActionType.SendDelayedEvent) && this.state.hasMemberStateEvent) && types.includes(MembershipActionType.UpdateExpiry)) {
889
+ return Status.Connected;
890
+ }
891
+ } else if (actions.length === 3) {
892
+ var _types = actions.map(a => a.type);
893
+ // It is a correct connected state if we already schedule the next Restart but have not yet cleaned up
894
+ // the current restart.
895
+ if (_types.filter(t => t === MembershipActionType.RestartDelayedEvent).length === 2 && _types.includes(MembershipActionType.UpdateExpiry)) {
896
+ return Status.Connected;
897
+ }
898
+ }
899
+ if (!this.scheduler.running) {
900
+ return Status.Disconnected;
901
+ }
902
+ this.logger.error("MembershipManager has an unknown state. Actions: ", actions);
903
+ return Status.Unknown;
904
+ }
905
+ get probablyLeft() {
906
+ return this.state.probablyLeft;
907
+ }
908
+ get delayId() {
909
+ return this.state.delayId;
910
+ }
911
+ }
912
+
913
+ /**
914
+ * Implementation of the Membership manager that uses sticky events
915
+ * rather than state events.
916
+ */
917
+ export class StickyEventMembershipManager extends MembershipManager {
918
+ constructor(joinConfig, room, clientWithSticky, sessionDescription,
919
+ // this needs to become a uuid so that consecutive join/leaves result in a key rotation.
920
+ // we keep it as a string for now for backwards compatibility.
921
+ memberId, parentLogger) {
922
+ super(joinConfig, room, clientWithSticky, sessionDescription, parentLogger);
923
+ this.clientWithSticky = clientWithSticky;
924
+ this.memberId = memberId;
925
+ _defineProperty(this, "clientSendDelayedDisconnectMembership", () => this.clientWithSticky._unstable_sendStickyDelayedEvent(this.room.roomId, MEMBERSHIP_STICKY_DURATION_MS, {
926
+ delay: this.delayedLeaveEventDelayMs
927
+ }, null, EventType.RTCMembership, {
928
+ msc4354_sticky_key: this.memberId
929
+ }));
930
+ _defineProperty(this, "clientSendMembership", myMembership => {
931
+ return this.clientWithSticky._unstable_sendStickyEvent(this.room.roomId, MEMBERSHIP_STICKY_DURATION_MS, null, EventType.RTCMembership, _objectSpread(_objectSpread({}, myMembership), {}, {
932
+ msc4354_sticky_key: this.memberId
933
+ }));
934
+ });
935
+ }
936
+ actionUpdateFromErrors(e, t, m) {
937
+ var _StickyEventMembershi;
938
+ return super.actionUpdateFromErrors(e, t, (_StickyEventMembershi = StickyEventMembershipManager.nameMap.get(m)) !== null && _StickyEventMembershi !== void 0 ? _StickyEventMembershi : "unknown");
939
+ }
940
+
941
+ /**
942
+ *
943
+ * @returns Only returns `RtcMembershipData`
944
+ */
945
+ makeMyMembership() {
946
+ var ownMembership = this.ownMembership;
947
+ var livekitTransport = isLivekitTransportConfig(this.rtcTransport) ? this.rtcTransport : undefined;
948
+ var relationObject = ownMembership !== null && ownMembership !== void 0 && ownMembership.eventId ? {
949
+ "m.relation": {
950
+ rel_type: RelationType.Reference,
951
+ event_id: ownMembership === null || ownMembership === void 0 ? void 0 : ownMembership.eventId
952
+ }
953
+ } : {};
954
+ return _objectSpread({
955
+ application: _objectSpread({
956
+ type: this.slotDescription.application
957
+ }, this.callIntent ? {
958
+ "m.call.intent": this.callIntent
959
+ } : {}),
960
+ slot_id: computeSlotId(this.slotDescription),
961
+ // Make sure we do not add the alias to the transport.
962
+ // It is not needed in matrix2.0. The additional session information will be used to find the right alias on the sfu.
963
+ rtc_transports: livekitTransport ? [{
964
+ type: livekitTransport.type,
965
+ livekit_service_url: livekitTransport.livekit_service_url
966
+ }] : [],
967
+ member: {
968
+ device_id: this.deviceId,
969
+ user_id: this.userId,
970
+ id: this.memberId
971
+ },
972
+ versions: []
973
+ }, relationObject);
974
+ }
975
+ }
976
+ _defineProperty(StickyEventMembershipManager, "nameMap", new Map([["sendStateEvent", "_unstable_sendStickyEvent"], ["sendDelayedStateEvent", "_unstable_sendStickyDelayedEvent"]]));
977
+ //# sourceMappingURL=MembershipManager.js.map