@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,1066 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ /*
4
+ Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ */
18
+
19
+ import { RoomMember } from "./room-member.js";
20
+ import { logger } from "../logger.js";
21
+ import { isNumber, removeHiddenChars } from "../utils.js";
22
+ import { EventType, UNSTABLE_MSC2716_MARKER } from "../@types/event.js";
23
+ import { BriijEventEvent } from "./event.js";
24
+ import { GuestAccess, HistoryVisibility, JoinRule } from "../@types/partials.js";
25
+ import { TypedEventEmitter } from "./typed-event-emitter.js";
26
+ import { Beacon, BeaconEvent, getBeaconInfoIdentifier } from "./beacon.js";
27
+ import { TypedReEmitter } from "../ReEmitter.js";
28
+ import { M_BEACON, M_BEACON_INFO } from "../@types/beacon.js";
29
+ import { KnownMembership } from "../@types/membership.js";
30
+ import { shouldUseHydraForRoomVersion } from "../utils/roomVersion.js";
31
+ // possible statuses for out-of-band member loading
32
+ var OobStatus = /*#__PURE__*/function (OobStatus) {
33
+ OobStatus[OobStatus["NotStarted"] = 0] = "NotStarted";
34
+ OobStatus[OobStatus["InProgress"] = 1] = "InProgress";
35
+ OobStatus[OobStatus["Finished"] = 2] = "Finished";
36
+ return OobStatus;
37
+ }(OobStatus || {});
38
+ export var RoomStateEvent = /*#__PURE__*/function (RoomStateEvent) {
39
+ RoomStateEvent["Events"] = "RoomState.events";
40
+ RoomStateEvent["Members"] = "RoomState.members";
41
+ RoomStateEvent["NewMember"] = "RoomState.newMember";
42
+ RoomStateEvent["Update"] = "RoomState.update";
43
+ // signals batches of updates without specificity
44
+ RoomStateEvent["BeaconLiveness"] = "RoomState.BeaconLiveness";
45
+ RoomStateEvent["Marker"] = "RoomState.Marker";
46
+ return RoomStateEvent;
47
+ }({});
48
+ export class RoomState extends TypedEventEmitter {
49
+ /**
50
+ * Construct room state.
51
+ *
52
+ * Room State represents the state of the room at a given point.
53
+ * It can be mutated by adding state events to it.
54
+ * There are two types of room member associated with a state event:
55
+ * normal member objects (accessed via getMember/getMembers) which mutate
56
+ * with the state to represent the current state of that room/user, e.g.
57
+ * the object returned by `getMember('@bob:example.com')` will mutate to
58
+ * get a different display name if Bob later changes his display name
59
+ * in the room.
60
+ * There are also 'sentinel' members (accessed via getSentinelMember).
61
+ * These also represent the state of room members at the point in time
62
+ * represented by the RoomState object, but unlike objects from getMember,
63
+ * sentinel objects will always represent the room state as at the time
64
+ * getSentinelMember was called, so if Bob subsequently changes his display
65
+ * name, a room member object previously acquired with getSentinelMember
66
+ * will still have his old display name. Calling getSentinelMember again
67
+ * after the display name change will return a new RoomMember object
68
+ * with Bob's new display name.
69
+ *
70
+ * @param roomId - Optional. The ID of the room which has this state.
71
+ * If none is specified it just tracks paginationTokens, useful for notifTimelineSet
72
+ * @param oobMemberFlags - Optional. The state of loading out of bound members.
73
+ * As the timeline might get reset while they are loading, this state needs to be inherited
74
+ * and shared when the room state is cloned for the new timeline.
75
+ * This should only be passed from clone.
76
+ */
77
+ constructor(roomId) {
78
+ var oobMemberFlags = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
79
+ status: OobStatus.NotStarted
80
+ };
81
+ super();
82
+ this.roomId = roomId;
83
+ this.oobMemberFlags = oobMemberFlags;
84
+ _defineProperty(this, "reEmitter", new TypedReEmitter(this));
85
+ _defineProperty(this, "sentinels", {});
86
+ // userId: RoomMember
87
+ // stores fuzzy matches to a list of userIDs (applies utils.removeHiddenChars to keys)
88
+ _defineProperty(this, "displayNameToUserIds", new Map());
89
+ _defineProperty(this, "userIdsToDisplayNames", {});
90
+ _defineProperty(this, "tokenToInvite", {});
91
+ // 3pid invite state_key to m.room.member invite
92
+ _defineProperty(this, "joinedMemberCount", null);
93
+ // cache of the number of joined members
94
+ // joined members count from summary api
95
+ // once set, we know the server supports the summary api
96
+ // and we should only trust that
97
+ // we could also only trust that before OOB members
98
+ // are loaded but doesn't seem worth the hassle atm
99
+ _defineProperty(this, "summaryJoinedMemberCount", null);
100
+ // same for invited member count
101
+ _defineProperty(this, "invitedMemberCount", null);
102
+ _defineProperty(this, "summaryInvitedMemberCount", null);
103
+ _defineProperty(this, "modified", -1);
104
+ // XXX: Should be read-only
105
+ // The room member dictionary, keyed on the user's ID.
106
+ _defineProperty(this, "members", {});
107
+ // userId: RoomMember
108
+ // The state events dictionary, keyed on the event type and then the state_key value.
109
+ _defineProperty(this, "events", new Map());
110
+ // Map<eventType, Map<stateKey, BriijEvent>>
111
+ // The pagination token for this state.
112
+ _defineProperty(this, "paginationToken", null);
113
+ _defineProperty(this, "beacons", new Map());
114
+ _defineProperty(this, "_liveBeaconIds", []);
115
+ // We only wants to print warnings about bad room state once.
116
+ _defineProperty(this, "getVersionWarning", false);
117
+ this.updateModifiedTime();
118
+ }
119
+
120
+ /**
121
+ * Gets the version of the room
122
+ * @returns The version of the room
123
+ */
124
+ getRoomVersion() {
125
+ var _createEvent$getConte;
126
+ var createEvent = this.getStateEvents(EventType.RoomCreate, "");
127
+ if (!createEvent) {
128
+ if (!this.getVersionWarning) {
129
+ logger.warn("[getVersion] Room " + this.roomId + " does not have an m.room.create event");
130
+ this.getVersionWarning = true;
131
+ }
132
+ return "1";
133
+ }
134
+ return (_createEvent$getConte = createEvent.getContent()["room_version"]) !== null && _createEvent$getConte !== void 0 ? _createEvent$getConte : "1";
135
+ }
136
+
137
+ /**
138
+ * Returns the number of joined members in this room
139
+ * This method caches the result.
140
+ * @returns The number of members in this room whose membership is 'join'
141
+ */
142
+ getJoinedMemberCount() {
143
+ if (this.summaryJoinedMemberCount !== null) {
144
+ return this.summaryJoinedMemberCount;
145
+ }
146
+ if (this.joinedMemberCount === null) {
147
+ this.joinedMemberCount = this.getMembers().reduce((count, m) => {
148
+ return m.membership === KnownMembership.Join ? count + 1 : count;
149
+ }, 0);
150
+ }
151
+ return this.joinedMemberCount;
152
+ }
153
+
154
+ /**
155
+ * Set the joined member count explicitly (like from summary part of the sync response)
156
+ * @param count - the amount of joined members
157
+ */
158
+ setJoinedMemberCount(count) {
159
+ this.summaryJoinedMemberCount = count;
160
+ }
161
+
162
+ /**
163
+ * Returns the number of invited members in this room
164
+ * @returns The number of members in this room whose membership is 'invite'
165
+ */
166
+ getInvitedMemberCount() {
167
+ if (this.summaryInvitedMemberCount !== null) {
168
+ return this.summaryInvitedMemberCount;
169
+ }
170
+ if (this.invitedMemberCount === null) {
171
+ this.invitedMemberCount = this.getMembers().reduce((count, m) => {
172
+ return m.membership === KnownMembership.Invite ? count + 1 : count;
173
+ }, 0);
174
+ }
175
+ return this.invitedMemberCount;
176
+ }
177
+
178
+ /**
179
+ * Set the amount of invited members in this room
180
+ * @param count - the amount of invited members
181
+ */
182
+ setInvitedMemberCount(count) {
183
+ this.summaryInvitedMemberCount = count;
184
+ }
185
+
186
+ /**
187
+ * Get all RoomMembers in this room.
188
+ * @returns A list of RoomMembers.
189
+ */
190
+ getMembers() {
191
+ return Object.values(this.members);
192
+ }
193
+
194
+ /**
195
+ * Get all RoomMembers in this room, excluding the user IDs provided.
196
+ * @param excludedIds - The user IDs to exclude.
197
+ * @returns A list of RoomMembers.
198
+ */
199
+ getMembersExcept(excludedIds) {
200
+ return this.getMembers().filter(m => !excludedIds.includes(m.userId));
201
+ }
202
+
203
+ /**
204
+ * Get a room member by their user ID.
205
+ * @param userId - The room member's user ID.
206
+ * @returns The member or null if they do not exist.
207
+ */
208
+ getMember(userId) {
209
+ return this.members[userId] || null;
210
+ }
211
+
212
+ /**
213
+ * Get a room member whose properties will not change with this room state. You
214
+ * typically want this if you want to attach a RoomMember to a BriijEvent which
215
+ * may no longer be represented correctly by Room.currentState or Room.oldState.
216
+ * The term 'sentinel' refers to the fact that this RoomMember is an unchanging
217
+ * guardian for state at this particular point in time.
218
+ * @param userId - The room member's user ID.
219
+ * @returns The member or null if they do not exist.
220
+ */
221
+ getSentinelMember(userId) {
222
+ if (!userId) return null;
223
+ var sentinel = this.sentinels[userId];
224
+ if (sentinel === undefined) {
225
+ sentinel = new RoomMember(this.roomId, userId);
226
+ var member = this.members[userId];
227
+ if (member !== null && member !== void 0 && member.events.member) {
228
+ sentinel.setMembershipEvent(member.events.member, this);
229
+ }
230
+ this.sentinels[userId] = sentinel;
231
+ }
232
+ return sentinel;
233
+ }
234
+
235
+ /**
236
+ * Get state events from the state of the room.
237
+ * @param eventType - The event type of the state event.
238
+ * @returns A list of events
239
+ */
240
+
241
+ /**
242
+ * Get state events from the state of the room.
243
+ * @param eventType - The event type of the state event.
244
+ * @param stateKey - The state_key of the state event.
245
+ * @returns A single event (or null if no match found).
246
+ */
247
+
248
+ getStateEvents(eventType, stateKey) {
249
+ if (!this.events.has(eventType)) {
250
+ // no match
251
+ return stateKey === undefined ? [] : null;
252
+ }
253
+ if (stateKey === undefined) {
254
+ // return all values
255
+ return Array.from(this.events.get(eventType).values());
256
+ }
257
+ var event = this.events.get(eventType).get(stateKey);
258
+ return event ? event : null;
259
+ }
260
+ get hasLiveBeacons() {
261
+ var _this$liveBeaconIds;
262
+ return !!((_this$liveBeaconIds = this.liveBeaconIds) !== null && _this$liveBeaconIds !== void 0 && _this$liveBeaconIds.length);
263
+ }
264
+ get liveBeaconIds() {
265
+ return this._liveBeaconIds;
266
+ }
267
+
268
+ /**
269
+ * Creates a copy of this room state so that mutations to either won't affect the other.
270
+ * @returns the copy of the room state
271
+ */
272
+ clone() {
273
+ var copy = new RoomState(this.roomId, this.oobMemberFlags);
274
+
275
+ // Ugly hack: because setStateEvents will mark
276
+ // members as susperseding future out of bound members
277
+ // if loading is in progress (through oobMemberFlags)
278
+ // since these are not new members, we're merely copying them
279
+ // set the status to not started
280
+ // after copying, we set back the status
281
+ var status = this.oobMemberFlags.status;
282
+ this.oobMemberFlags.status = OobStatus.NotStarted;
283
+ Array.from(this.events.values()).forEach(eventsByStateKey => {
284
+ copy.setStateEvents(Array.from(eventsByStateKey.values()));
285
+ });
286
+
287
+ // Ugly hack: see above
288
+ this.oobMemberFlags.status = status;
289
+ if (this.summaryInvitedMemberCount !== null) {
290
+ copy.setInvitedMemberCount(this.getInvitedMemberCount());
291
+ }
292
+ if (this.summaryJoinedMemberCount !== null) {
293
+ copy.setJoinedMemberCount(this.getJoinedMemberCount());
294
+ }
295
+
296
+ // copy out of band flags if needed
297
+ if (this.oobMemberFlags.status == OobStatus.Finished) {
298
+ // copy markOutOfBand flags
299
+ this.getMembers().forEach(member => {
300
+ if (member.isOutOfBand()) {
301
+ var _copy$getMember;
302
+ (_copy$getMember = copy.getMember(member.userId)) === null || _copy$getMember === void 0 || _copy$getMember.markOutOfBand();
303
+ }
304
+ });
305
+ }
306
+ return copy;
307
+ }
308
+
309
+ /**
310
+ * Add previously unknown state events.
311
+ * When lazy loading members while back-paginating,
312
+ * the relevant room state for the timeline chunk at the end
313
+ * of the chunk can be set with this method.
314
+ * @param events - state events to prepend
315
+ */
316
+ setUnknownStateEvents(events) {
317
+ var unknownStateEvents = events.filter(event => {
318
+ return !this.events.has(event.getType()) || !this.events.get(event.getType()).has(event.getStateKey());
319
+ });
320
+ this.setStateEvents(unknownStateEvents);
321
+ }
322
+
323
+ /**
324
+ * Add an array of one or more state BriijEvents, overwriting any existing
325
+ * state with the same `{type, stateKey}` tuple. Will fire "RoomState.events"
326
+ * for every event added. May fire "RoomState.members" if there are
327
+ * `m.room.member` events. May fire "RoomStateEvent.Marker" if there are
328
+ * `UNSTABLE_MSC2716_MARKER` events.
329
+ * @param stateEvents - a list of state events for this room.
330
+ *
331
+ * @remarks
332
+ * Fires {@link RoomStateEvent.Members}
333
+ * Fires {@link RoomStateEvent.NewMember}
334
+ * Fires {@link RoomStateEvent.Events}
335
+ * Fires {@link RoomStateEvent.Marker}
336
+ */
337
+ setStateEvents(stateEvents, markerFoundOptions) {
338
+ this.updateModifiedTime();
339
+
340
+ // update the core event dict
341
+ // Track display names that change so we can recalculate disambiguation
342
+ var affectedDisplayNames = new Set();
343
+ // Track userIds whose membership events we process so we don't emit duplicate events
344
+ var processedMemberUserIds = new Set();
345
+ stateEvents.forEach(event => {
346
+ if (event.getRoomId() !== this.roomId || !event.isState()) return;
347
+ if (M_BEACON_INFO.matches(event.getType())) {
348
+ this.setBeacon(event);
349
+ }
350
+ var lastStateEvent = this.getStateEventMatching(event);
351
+ this.setStateEvent(event);
352
+ if (event.getType() === EventType.RoomMember) {
353
+ var _event$getContent$dis;
354
+ var userId = event.getStateKey();
355
+ processedMemberUserIds.add(userId);
356
+ var newDisplayName = (_event$getContent$dis = event.getContent().displayname) !== null && _event$getContent$dis !== void 0 ? _event$getContent$dis : "";
357
+ var oldDisplayName = this.userIdsToDisplayNames[userId];
358
+
359
+ // Track both old and new display names for disambiguation recalculation
360
+ if (oldDisplayName) {
361
+ var strippedOld = removeHiddenChars(oldDisplayName);
362
+ if (strippedOld) affectedDisplayNames.add(strippedOld);
363
+ }
364
+ if (newDisplayName) {
365
+ var strippedNew = removeHiddenChars(newDisplayName);
366
+ if (strippedNew) affectedDisplayNames.add(strippedNew);
367
+ }
368
+ this.updateDisplayNameCache(userId, newDisplayName);
369
+ this.updateThirdPartyTokenCache(event);
370
+ }
371
+ this.emit(RoomStateEvent.Events, event, this, lastStateEvent);
372
+ });
373
+ this.onBeaconLivenessChange();
374
+ // update higher level data structures. This needs to be done AFTER the
375
+ // core event dict as these structures may depend on other state events in
376
+ // the given array (e.g. disambiguating display names in one go to do both
377
+ // clashing names rather than progressively which only catches 1 of them).
378
+ stateEvents.forEach(event => {
379
+ if (event.getRoomId() !== this.roomId || !event.isState()) return;
380
+ if (event.getType() === EventType.RoomMember) {
381
+ var userId = event.getStateKey();
382
+
383
+ // leave events apparently elide the displayname or avatar_url,
384
+ // so let's fake one up so that we don't leak user ids
385
+ // into the timeline
386
+ if (event.getContent().membership === KnownMembership.Leave || event.getContent().membership === KnownMembership.Ban) {
387
+ event.getContent().avatar_url = event.getContent().avatar_url || event.getPrevContent().avatar_url;
388
+ event.getContent().displayname = event.getContent().displayname || event.getPrevContent().displayname;
389
+ }
390
+ var member = this.getOrCreateMember(userId, event);
391
+ member.setMembershipEvent(event, this);
392
+ this.updateMember(member);
393
+ this.emit(RoomStateEvent.Members, event, this, member);
394
+ } else if (event.getType() === EventType.RoomPowerLevels) {
395
+ // events with unknown state keys should be ignored
396
+ // and should not aggregate onto members power levels
397
+ if (event.getStateKey() !== "") {
398
+ return;
399
+ }
400
+ var members = Object.values(this.members);
401
+ var createEvent = this.getStateEvents(EventType.RoomCreate, "");
402
+ var creators = getCreators(this.getRoomVersion(), createEvent);
403
+ members.forEach(member => {
404
+ // We only propagate `RoomState.members` event if the
405
+ // power levels has been changed
406
+ // large room suffer from large re-rendering especially when not needed
407
+ var oldLastModified = member.getLastModifiedTime();
408
+ if (createEvent) {
409
+ var pl = powerLevelForUserId(member.userId, event, creators);
410
+ member.setPowerLevel(pl, event);
411
+ }
412
+ if (oldLastModified !== member.getLastModifiedTime()) {
413
+ this.emit(RoomStateEvent.Members, event, this, member);
414
+ }
415
+ });
416
+
417
+ // assume all our sentinels are now out-of-date
418
+ this.sentinels = {};
419
+ } else if (UNSTABLE_MSC2716_MARKER.matches(event.getType())) {
420
+ this.emit(RoomStateEvent.Marker, event, markerFoundOptions);
421
+ }
422
+ });
423
+
424
+ // Recalculate disambiguation for all members whose display names were affected.
425
+ // This ensures that when a user changes their name to match (or stop matching)
426
+ // another user, all affected users' disambiguation flags are updated correctly.
427
+ if (affectedDisplayNames.size > 0) {
428
+ // Collect all affected user IDs first to avoid duplicate processing
429
+ var affectedUserIds = new Set();
430
+ for (var displayName of affectedDisplayNames) {
431
+ var _this$displayNameToUs;
432
+ var userIds = (_this$displayNameToUs = this.displayNameToUserIds.get(displayName)) !== null && _this$displayNameToUs !== void 0 ? _this$displayNameToUs : [];
433
+ userIds.forEach(id => affectedUserIds.add(id));
434
+ }
435
+
436
+ // Process each affected member once, excluding those whose membership
437
+ // events were already processed (they already got their events emitted)
438
+ for (var userId of affectedUserIds) {
439
+ if (processedMemberUserIds.has(userId)) {
440
+ continue;
441
+ }
442
+ var member = this.members[userId];
443
+ if (member !== null && member !== void 0 && member.events.member) {
444
+ var nameChanged = member.recalculateDisambiguatedName(this);
445
+ if (nameChanged) {
446
+ this.emit(RoomStateEvent.Members, member.events.member, this, member);
447
+ }
448
+ }
449
+ }
450
+ }
451
+ this.emit(RoomStateEvent.Update, this);
452
+ }
453
+ processBeaconEvents(events, matrixClient) {
454
+ var _this = this;
455
+ return _asyncToGenerator(function* () {
456
+ if (!events.length ||
457
+ // discard locations if we have no beacons
458
+ !_this.beacons.size) {
459
+ return;
460
+ }
461
+ var beaconByEventIdDict = [..._this.beacons.values()].reduce((dict, beacon) => {
462
+ dict[beacon.beaconInfoId] = beacon;
463
+ return dict;
464
+ }, {});
465
+ var processBeaconRelation = (beaconInfoEventId, event) => {
466
+ if (!M_BEACON.matches(event.getType())) {
467
+ return;
468
+ }
469
+ var beacon = beaconByEventIdDict[beaconInfoEventId];
470
+ if (beacon) {
471
+ beacon.addLocations([event]);
472
+ }
473
+ };
474
+ var _loop = function* _loop(event) {
475
+ var _event$getRelation;
476
+ var relatedToEventId = (_event$getRelation = event.getRelation()) === null || _event$getRelation === void 0 ? void 0 : _event$getRelation.event_id;
477
+ // not related to a beacon we know about; discard
478
+ if (!relatedToEventId || !beaconByEventIdDict[relatedToEventId]) return {
479
+ v: void 0
480
+ };
481
+ if (!M_BEACON.matches(event.getType()) && !event.isEncrypted()) return {
482
+ v: void 0
483
+ };
484
+ try {
485
+ yield matrixClient.decryptEventIfNeeded(event);
486
+ processBeaconRelation(relatedToEventId, event);
487
+ } catch (_unused) {
488
+ if (event.isDecryptionFailure()) {
489
+ // add an event listener for once the event is decrypted.
490
+ event.once(BriijEventEvent.Decrypted, /*#__PURE__*/_asyncToGenerator(function* () {
491
+ processBeaconRelation(relatedToEventId, event);
492
+ }));
493
+ }
494
+ }
495
+ },
496
+ _ret;
497
+ for (var event of events) {
498
+ _ret = yield* _loop(event);
499
+ if (_ret) return _ret.v;
500
+ }
501
+ })();
502
+ }
503
+
504
+ /**
505
+ * Looks up a member by the given userId, and if it doesn't exist,
506
+ * create it and emit the `RoomState.newMember` event.
507
+ * This method makes sure the member is added to the members dictionary
508
+ * before emitting, as this is done from setStateEvents and setOutOfBandMember.
509
+ * @param userId - the id of the user to look up
510
+ * @param event - the membership event for the (new) member. Used to emit.
511
+ * @returns the member, existing or newly created.
512
+ *
513
+ * @remarks
514
+ * Fires {@link RoomStateEvent.NewMember}
515
+ */
516
+ getOrCreateMember(userId, event) {
517
+ var member = this.members[userId];
518
+ if (!member) {
519
+ member = new RoomMember(this.roomId, userId);
520
+ // add member to members before emitting any events,
521
+ // as event handlers often lookup the member
522
+ this.members[userId] = member;
523
+ this.emit(RoomStateEvent.NewMember, event, this, member);
524
+ }
525
+ return member;
526
+ }
527
+ setStateEvent(event) {
528
+ if (!this.events.has(event.getType())) {
529
+ this.events.set(event.getType(), new Map());
530
+ }
531
+ this.events.get(event.getType()).set(event.getStateKey(), event);
532
+ }
533
+
534
+ /**
535
+ * @experimental
536
+ */
537
+ setBeacon(event) {
538
+ var beaconIdentifier = getBeaconInfoIdentifier(event);
539
+ if (this.beacons.has(beaconIdentifier)) {
540
+ var _beacon = this.beacons.get(beaconIdentifier);
541
+ if (event.isRedacted()) {
542
+ var _event$getRedactionEv;
543
+ if (_beacon.beaconInfoId === ((_event$getRedactionEv = event.getRedactionEvent()) === null || _event$getRedactionEv === void 0 ? void 0 : _event$getRedactionEv.redacts)) {
544
+ _beacon.destroy();
545
+ this.beacons.delete(beaconIdentifier);
546
+ }
547
+ return;
548
+ }
549
+ return _beacon.update(event);
550
+ }
551
+ if (event.isRedacted()) {
552
+ return;
553
+ }
554
+ var beacon = new Beacon(event);
555
+ this.reEmitter.reEmit(beacon, [BeaconEvent.New, BeaconEvent.Update, BeaconEvent.Destroy, BeaconEvent.LivenessChange]);
556
+ this.emit(BeaconEvent.New, event, beacon);
557
+ beacon.on(BeaconEvent.LivenessChange, this.onBeaconLivenessChange.bind(this));
558
+ beacon.on(BeaconEvent.Destroy, this.onBeaconLivenessChange.bind(this));
559
+ this.beacons.set(beacon.identifier, beacon);
560
+ }
561
+
562
+ /**
563
+ * @experimental
564
+ * Check liveness of room beacons
565
+ * emit RoomStateEvent.BeaconLiveness event
566
+ */
567
+ onBeaconLivenessChange() {
568
+ this._liveBeaconIds = Array.from(this.beacons.values()).filter(beacon => beacon.isLive).map(beacon => beacon.identifier);
569
+ this.emit(RoomStateEvent.BeaconLiveness, this, this.hasLiveBeacons);
570
+ }
571
+ getStateEventMatching(event) {
572
+ var _this$events$get$get, _this$events$get;
573
+ return (_this$events$get$get = (_this$events$get = this.events.get(event.getType())) === null || _this$events$get === void 0 ? void 0 : _this$events$get.get(event.getStateKey())) !== null && _this$events$get$get !== void 0 ? _this$events$get$get : null;
574
+ }
575
+ updateMember(member) {
576
+ // this member may have a power level already, so set it.
577
+ var createEvent = this.getStateEvents(EventType.RoomCreate, "");
578
+ var pwrLvlEvent = this.getStateEvents(EventType.RoomPowerLevels, "");
579
+ if (pwrLvlEvent && createEvent) {
580
+ var powerLevel = powerLevelForUserId(member.userId, pwrLvlEvent, getCreators(this.getRoomVersion(), createEvent));
581
+ member.setPowerLevel(powerLevel, pwrLvlEvent);
582
+ }
583
+
584
+ // blow away the sentinel which is now outdated
585
+ delete this.sentinels[member.userId];
586
+ this.members[member.userId] = member;
587
+ this.joinedMemberCount = null;
588
+ this.invitedMemberCount = null;
589
+ }
590
+
591
+ /**
592
+ * Get the out-of-band members loading state, whether loading is needed or not.
593
+ * Note that loading might be in progress and hence isn't needed.
594
+ * @returns whether or not the members of this room need to be loaded
595
+ */
596
+ needsOutOfBandMembers() {
597
+ return this.oobMemberFlags.status === OobStatus.NotStarted;
598
+ }
599
+
600
+ /**
601
+ * Check if loading of out-of-band-members has completed
602
+ *
603
+ * @returns true if the full membership list of this room has been loaded. False if it is not started or is in
604
+ * progress.
605
+ */
606
+ outOfBandMembersReady() {
607
+ return this.oobMemberFlags.status === OobStatus.Finished;
608
+ }
609
+
610
+ /**
611
+ * Mark this room state as waiting for out-of-band members,
612
+ * ensuring it doesn't ask for them to be requested again
613
+ * through needsOutOfBandMembers
614
+ */
615
+ markOutOfBandMembersStarted() {
616
+ if (this.oobMemberFlags.status !== OobStatus.NotStarted) {
617
+ return;
618
+ }
619
+ this.oobMemberFlags.status = OobStatus.InProgress;
620
+ }
621
+
622
+ /**
623
+ * Mark this room state as having failed to fetch out-of-band members
624
+ */
625
+ markOutOfBandMembersFailed() {
626
+ if (this.oobMemberFlags.status !== OobStatus.InProgress) {
627
+ return;
628
+ }
629
+ this.oobMemberFlags.status = OobStatus.NotStarted;
630
+ }
631
+
632
+ /**
633
+ * Clears the loaded out-of-band members
634
+ */
635
+ clearOutOfBandMembers() {
636
+ var count = 0;
637
+ Object.keys(this.members).forEach(userId => {
638
+ var member = this.members[userId];
639
+ if (member.isOutOfBand()) {
640
+ ++count;
641
+ delete this.members[userId];
642
+ }
643
+ });
644
+ logger.log("LL: RoomState removed ".concat(count, " members..."));
645
+ this.oobMemberFlags.status = OobStatus.NotStarted;
646
+ }
647
+
648
+ /**
649
+ * Sets the loaded out-of-band members.
650
+ * @param stateEvents - array of membership state events
651
+ */
652
+ setOutOfBandMembers(stateEvents) {
653
+ logger.log("LL: RoomState about to set ".concat(stateEvents.length, " OOB members ..."));
654
+ if (this.oobMemberFlags.status !== OobStatus.InProgress) {
655
+ return;
656
+ }
657
+ logger.log("LL: RoomState put in finished state ...");
658
+ this.oobMemberFlags.status = OobStatus.Finished;
659
+ stateEvents.forEach(e => this.setOutOfBandMember(e));
660
+ this.emit(RoomStateEvent.Update, this);
661
+ }
662
+
663
+ /**
664
+ * Sets a single out of band member, used by both setOutOfBandMembers and clone
665
+ * @param stateEvent - membership state event
666
+ */
667
+ setOutOfBandMember(stateEvent) {
668
+ if (stateEvent.getType() !== EventType.RoomMember) {
669
+ return;
670
+ }
671
+ var userId = stateEvent.getStateKey();
672
+ var existingMember = this.getMember(userId);
673
+ // never replace members received as part of the sync
674
+ if (existingMember && !existingMember.isOutOfBand()) {
675
+ return;
676
+ }
677
+ var member = this.getOrCreateMember(userId, stateEvent);
678
+ member.setMembershipEvent(stateEvent, this);
679
+ // needed to know which members need to be stored seperately
680
+ // as they are not part of the sync accumulator
681
+ // this is cleared by setMembershipEvent so when it's updated through /sync
682
+ member.markOutOfBand();
683
+ this.updateDisplayNameCache(member.userId, member.name);
684
+ this.setStateEvent(stateEvent);
685
+ this.updateMember(member);
686
+ this.emit(RoomStateEvent.Members, stateEvent, this, member);
687
+ }
688
+
689
+ /**
690
+ * Set the current typing event for this room.
691
+ * @param event - The typing event
692
+ */
693
+ setTypingEvent(event) {
694
+ Object.values(this.members).forEach(function (member) {
695
+ member.setTypingEvent(event);
696
+ });
697
+ }
698
+
699
+ /**
700
+ * Get the m.room.member event which has the given third party invite token.
701
+ *
702
+ * @param token - The token
703
+ * @returns The m.room.member event or null
704
+ */
705
+ getInviteForThreePidToken(token) {
706
+ return this.tokenToInvite[token] || null;
707
+ }
708
+
709
+ /**
710
+ * Update the last modified time to the current time.
711
+ */
712
+ updateModifiedTime() {
713
+ this.modified = Date.now();
714
+ }
715
+
716
+ /**
717
+ * Get the timestamp when this room state was last updated. This timestamp is
718
+ * updated when this object has received new state events.
719
+ * @returns The timestamp
720
+ */
721
+ getLastModifiedTime() {
722
+ return this.modified;
723
+ }
724
+
725
+ /**
726
+ * Get user IDs with the specified or similar display names.
727
+ * @param displayName - The display name to get user IDs from.
728
+ * @returns An array of user IDs or an empty array.
729
+ */
730
+ getUserIdsWithDisplayName(displayName) {
731
+ var _this$displayNameToUs2;
732
+ return (_this$displayNameToUs2 = this.displayNameToUserIds.get(removeHiddenChars(displayName))) !== null && _this$displayNameToUs2 !== void 0 ? _this$displayNameToUs2 : [];
733
+ }
734
+
735
+ /**
736
+ * Returns true if userId is in room, event is not redacted and either sender of
737
+ * mxEvent or has power level sufficient to redact events other than their own.
738
+ * @param mxEvent - The event to test permission for
739
+ * @param userId - The user ID of the user to test permission for
740
+ * @returns true if the given used ID can redact given event
741
+ */
742
+ maySendRedactionForEvent(mxEvent, userId) {
743
+ var member = this.getMember(userId);
744
+ if (!member || member.membership === KnownMembership.Leave) return false;
745
+ if (mxEvent.status || mxEvent.isRedacted()) return false;
746
+
747
+ // The user may have been the sender, but they can't redact their own message
748
+ // if redactions are blocked.
749
+ var canRedact = this.maySendEvent(EventType.RoomRedaction, userId);
750
+ if (!canRedact) return false;
751
+ if (mxEvent.getSender() === userId) return true;
752
+ return this.hasSufficientPowerLevelFor("redact", member.powerLevel);
753
+ }
754
+
755
+ /**
756
+ * Returns true if the given power level is sufficient for action
757
+ * @param action - The type of power level to check
758
+ * @param powerLevel - The power level of the member
759
+ * @returns true if the given power level is sufficient
760
+ */
761
+ hasSufficientPowerLevelFor(action, powerLevel) {
762
+ var powerLevelsEvent = this.getStateEvents(EventType.RoomPowerLevels, "");
763
+ var powerLevels = {};
764
+ if (powerLevelsEvent) {
765
+ powerLevels = powerLevelsEvent.getContent();
766
+ }
767
+ var requiredLevel = 50;
768
+ if (isNumber(powerLevels[action])) {
769
+ requiredLevel = powerLevels[action];
770
+ }
771
+ return powerLevel >= requiredLevel;
772
+ }
773
+
774
+ /**
775
+ * Short-form for maySendEvent('m.room.message', userId)
776
+ * @param userId - The user ID of the user to test permission for
777
+ * @returns true if the given user ID should be permitted to send
778
+ * message events into the given room.
779
+ */
780
+ maySendMessage(userId) {
781
+ return this.maySendEventOfType(EventType.RoomMessage, userId, false);
782
+ }
783
+
784
+ /**
785
+ * Returns true if the given user ID has permission to send a normal
786
+ * event of type `eventType` into this room.
787
+ * @param eventType - The type of event to test
788
+ * @param userId - The user ID of the user to test permission for
789
+ * @returns true if the given user ID should be permitted to send
790
+ * the given type of event into this room,
791
+ * according to the room's state.
792
+ */
793
+ maySendEvent(eventType, userId) {
794
+ return this.maySendEventOfType(eventType, userId, false);
795
+ }
796
+
797
+ /**
798
+ * Returns true if the given BriijClient has permission to send a state
799
+ * event of type `stateEventType` into this room.
800
+ * @param stateEventType - The type of state events to test
801
+ * @param cli - The client to test permission for
802
+ * @returns true if the given client should be permitted to send
803
+ * the given type of state event into this room,
804
+ * according to the room's state.
805
+ */
806
+ mayClientSendStateEvent(stateEventType, cli) {
807
+ if (cli.isGuest() || !cli.credentials.userId) {
808
+ return false;
809
+ }
810
+ return this.maySendStateEvent(stateEventType, cli.credentials.userId);
811
+ }
812
+
813
+ /**
814
+ * Returns true if the given user ID has permission to send a state
815
+ * event of type `stateEventType` into this room.
816
+ * @param stateEventType - The type of state events to test
817
+ * @param userId - The user ID of the user to test permission for
818
+ * @returns true if the given user ID should be permitted to send
819
+ * the given type of state event into this room,
820
+ * according to the room's state.
821
+ */
822
+ maySendStateEvent(stateEventType, userId) {
823
+ return this.maySendEventOfType(stateEventType, userId, true);
824
+ }
825
+
826
+ /**
827
+ * Returns true if the given user ID has permission to send a normal or state
828
+ * event of type `eventType` into this room.
829
+ * @param eventType - The type of event to test
830
+ * @param userId - The user ID of the user to test permission for
831
+ * @param state - If true, tests if the user may send a state
832
+ event of this type. Otherwise tests whether
833
+ they may send a regular event.
834
+ * @returns true if the given user ID should be permitted to send
835
+ * the given type of event into this room,
836
+ * according to the room's state.
837
+ */
838
+ maySendEventOfType(eventType, userId, state) {
839
+ var _roomMember$powerLeve;
840
+ var powerLevelsEvent = this.getStateEvents(EventType.RoomPowerLevels, "");
841
+ var powerLevels;
842
+ var eventsLevels = {};
843
+ var stateDefault = 0;
844
+ var eventsDefault = 0;
845
+ if (powerLevelsEvent) {
846
+ powerLevels = powerLevelsEvent.getContent();
847
+ eventsLevels = powerLevels.events || {};
848
+ if (Number.isSafeInteger(powerLevels.state_default)) {
849
+ stateDefault = powerLevels.state_default;
850
+ } else {
851
+ stateDefault = 50;
852
+ }
853
+ if (Number.isSafeInteger(powerLevels.events_default)) {
854
+ eventsDefault = powerLevels.events_default;
855
+ }
856
+ }
857
+ var requiredLevel = state ? stateDefault : eventsDefault;
858
+ if (Number.isSafeInteger(eventsLevels[eventType])) {
859
+ requiredLevel = eventsLevels[eventType];
860
+ }
861
+ var roomMember = this.getMember(userId);
862
+ var userPowerLevel = (_roomMember$powerLeve = roomMember === null || roomMember === void 0 ? void 0 : roomMember.powerLevel) !== null && _roomMember$powerLeve !== void 0 ? _roomMember$powerLeve : 0;
863
+ return userPowerLevel >= requiredLevel;
864
+ }
865
+
866
+ /**
867
+ * Returns true if the given user ID has permission to trigger notification
868
+ * of type `notifLevelKey`
869
+ * @param notifLevelKey - The level of notification to test (eg. 'room')
870
+ * @param userId - The user ID of the user to test permission for
871
+ * @returns true if the given user ID has permission to trigger a
872
+ * notification of this type.
873
+ */
874
+ mayTriggerNotifOfType(notifLevelKey, userId) {
875
+ var member = this.getMember(userId);
876
+ if (!member) {
877
+ return false;
878
+ }
879
+ var powerLevelsEvent = this.getStateEvents(EventType.RoomPowerLevels, "");
880
+ var notifLevel = 50;
881
+ if (powerLevelsEvent && powerLevelsEvent.getContent() && powerLevelsEvent.getContent().notifications && isNumber(powerLevelsEvent.getContent().notifications[notifLevelKey])) {
882
+ notifLevel = powerLevelsEvent.getContent().notifications[notifLevelKey];
883
+ }
884
+ return member.powerLevel >= notifLevel;
885
+ }
886
+
887
+ /**
888
+ * Returns the join rule based on the m.room.join_rule state event, defaulting to `invite`.
889
+ * @returns the join_rule applied to this room
890
+ */
891
+ getJoinRule() {
892
+ var _joinRuleEvent$getCon;
893
+ var joinRuleEvent = this.getStateEvents(EventType.RoomJoinRules, "");
894
+ var joinRuleContent = (_joinRuleEvent$getCon = joinRuleEvent === null || joinRuleEvent === void 0 ? void 0 : joinRuleEvent.getContent()) !== null && _joinRuleEvent$getCon !== void 0 ? _joinRuleEvent$getCon : {};
895
+ return joinRuleContent["join_rule"] || JoinRule.Invite;
896
+ }
897
+
898
+ /**
899
+ * Returns the history visibility based on the m.room.history_visibility state event, defaulting to `shared`.
900
+ * @returns the history_visibility applied to this room
901
+ */
902
+ getHistoryVisibility() {
903
+ var _historyVisibilityEve;
904
+ var historyVisibilityEvent = this.getStateEvents(EventType.RoomHistoryVisibility, "");
905
+ var historyVisibilityContent = (_historyVisibilityEve = historyVisibilityEvent === null || historyVisibilityEvent === void 0 ? void 0 : historyVisibilityEvent.getContent()) !== null && _historyVisibilityEve !== void 0 ? _historyVisibilityEve : {};
906
+ return historyVisibilityContent["history_visibility"] || HistoryVisibility.Shared;
907
+ }
908
+
909
+ /**
910
+ * Returns the guest access based on the m.room.guest_access state event, defaulting to `shared`.
911
+ * @returns the guest_access applied to this room
912
+ */
913
+ getGuestAccess() {
914
+ var _guestAccessEvent$get;
915
+ var guestAccessEvent = this.getStateEvents(EventType.RoomGuestAccess, "");
916
+ var guestAccessContent = (_guestAccessEvent$get = guestAccessEvent === null || guestAccessEvent === void 0 ? void 0 : guestAccessEvent.getContent()) !== null && _guestAccessEvent$get !== void 0 ? _guestAccessEvent$get : {};
917
+ return guestAccessContent["guest_access"] || GuestAccess.Forbidden;
918
+ }
919
+
920
+ /**
921
+ * Find the predecessor room based on this room state.
922
+ *
923
+ * @param msc3946ProcessDynamicPredecessor - if true, look for an
924
+ * m.room.predecessor state event and use it if found (MSC3946).
925
+ * @returns null if this room has no predecessor. Otherwise, returns
926
+ * the roomId, last eventId and viaServers of the predecessor room.
927
+ *
928
+ * If msc3946ProcessDynamicPredecessor is true, use m.predecessor events
929
+ * as well as m.room.create events to find predecessors.
930
+ *
931
+ * Note: if an m.predecessor event is used, eventId may be undefined
932
+ * since last_known_event_id is optional.
933
+ *
934
+ * Note: viaServers may be undefined, and will definitely be undefined if
935
+ * this predecessor comes from a RoomCreate event (rather than a
936
+ * RoomPredecessor, which has the optional via_servers property).
937
+ */
938
+ findPredecessor() {
939
+ var msc3946ProcessDynamicPredecessor = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
940
+ // Note: the tests for this function are against Room.findPredecessor,
941
+ // which just calls through to here.
942
+
943
+ if (msc3946ProcessDynamicPredecessor) {
944
+ var predecessorEvent = this.getStateEvents(EventType.RoomPredecessor, "");
945
+ if (predecessorEvent) {
946
+ var content = predecessorEvent.getContent();
947
+ var _roomId = content.predecessor_room_id;
948
+ var eventId = content.last_known_event_id;
949
+ if (typeof eventId !== "string") {
950
+ eventId = undefined;
951
+ }
952
+ var viaServers = content.via_servers;
953
+ if (!Array.isArray(viaServers)) {
954
+ viaServers = undefined;
955
+ }
956
+ if (typeof _roomId === "string") {
957
+ return {
958
+ roomId: _roomId,
959
+ eventId,
960
+ viaServers
961
+ };
962
+ }
963
+ }
964
+ }
965
+ var createEvent = this.getStateEvents(EventType.RoomCreate, "");
966
+ if (createEvent) {
967
+ var predecessor = createEvent.getContent()["predecessor"];
968
+ if (predecessor) {
969
+ var _roomId2 = predecessor["room_id"];
970
+ if (typeof _roomId2 === "string") {
971
+ var _eventId = predecessor["event_id"];
972
+ if (typeof _eventId !== "string" || _eventId === "") {
973
+ _eventId = undefined;
974
+ }
975
+ return {
976
+ roomId: _roomId2,
977
+ eventId: _eventId
978
+ };
979
+ }
980
+ }
981
+ }
982
+ return null;
983
+ }
984
+ updateThirdPartyTokenCache(memberEvent) {
985
+ if (!memberEvent.getContent().third_party_invite) {
986
+ return;
987
+ }
988
+ var token = (memberEvent.getContent().third_party_invite.signed || {}).token;
989
+ if (!token) {
990
+ return;
991
+ }
992
+ var threePidInvite = this.getStateEvents(EventType.RoomThirdPartyInvite, token);
993
+ if (!threePidInvite) {
994
+ return;
995
+ }
996
+ this.tokenToInvite[token] = memberEvent;
997
+ }
998
+ updateDisplayNameCache(userId, displayName) {
999
+ var oldName = this.userIdsToDisplayNames[userId];
1000
+ delete this.userIdsToDisplayNames[userId];
1001
+ if (oldName) {
1002
+ // Remove the old name from the cache.
1003
+ // We clobber the user_id > name lookup but the name -> [user_id] lookup
1004
+ // means we need to remove that user ID from that array rather than nuking
1005
+ // the lot.
1006
+ var strippedOldName = removeHiddenChars(oldName);
1007
+ var existingUserIds = this.displayNameToUserIds.get(strippedOldName);
1008
+ if (existingUserIds) {
1009
+ // remove this user ID from this array
1010
+ var filteredUserIDs = existingUserIds.filter(id => id !== userId);
1011
+ this.displayNameToUserIds.set(strippedOldName, filteredUserIDs);
1012
+ }
1013
+ }
1014
+ this.userIdsToDisplayNames[userId] = displayName;
1015
+ var strippedDisplayname = displayName && removeHiddenChars(displayName);
1016
+ // an empty stripped displayname (undefined/'') will be set to MXID in room-member.js
1017
+ if (strippedDisplayname) {
1018
+ var _this$displayNameToUs3;
1019
+ var arr = (_this$displayNameToUs3 = this.displayNameToUserIds.get(strippedDisplayname)) !== null && _this$displayNameToUs3 !== void 0 ? _this$displayNameToUs3 : [];
1020
+ arr.push(userId);
1021
+ this.displayNameToUserIds.set(strippedDisplayname, arr);
1022
+ }
1023
+ }
1024
+ }
1025
+
1026
+ /**
1027
+ * Get the set of creator user IDs for a room: empty if the room is not a 'hydra' room, otherwise
1028
+ * computed from the sender of the m.room.create event plus the additional_creators field.
1029
+ * @param roomVersion The version of the room
1030
+ * @param roomCreateEvent The m.room.create event for the room
1031
+ * @returns A set of user IDs of the creators of the room.
1032
+ */
1033
+ function getCreators(roomVersion, roomCreateEvent) {
1034
+ var creators = new Set();
1035
+ if (shouldUseHydraForRoomVersion(roomVersion) && roomCreateEvent) {
1036
+ var roomCreateSender = roomCreateEvent.getSender();
1037
+ if (roomCreateSender) creators.add(roomCreateSender);
1038
+ var additionalCreators = roomCreateEvent.getDirectionalContent().additional_creators;
1039
+ if (Array.isArray(additionalCreators)) additionalCreators.forEach(c => creators.add(c));
1040
+ }
1041
+ return creators;
1042
+ }
1043
+
1044
+ /**
1045
+ *
1046
+ * @param userId The user ID to compute the power level for
1047
+ * @param powerLevelEvents The power level event for the room
1048
+ * @param creators The set of creator user IDs for the room if the room is a 'hydra' room, otherwise the empty set.
1049
+ */
1050
+ function powerLevelForUserId(userId, powerLevelEvent, creators) {
1051
+ if (creators.has(userId)) {
1052
+ // As of "Hydra", If the user is a creator, they always have the highest power level
1053
+ return Infinity;
1054
+ } else {
1055
+ var evContent = powerLevelEvent.getDirectionalContent();
1056
+ var users = evContent.users || {};
1057
+ if (users[userId] !== undefined && Number.isInteger(users[userId])) {
1058
+ return users[userId];
1059
+ } else if (evContent.users_default !== undefined) {
1060
+ return evContent.users_default;
1061
+ } else {
1062
+ return 0;
1063
+ }
1064
+ }
1065
+ }
1066
+ //# sourceMappingURL=room-state.js.map