@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 @@
1
+ {"version":3,"file":"relations.js","names":["EventStatus","BriijEventEvent","logger","RelationType","TypedEventEmitter","Room","RelationsEvent","matchesEventType","eventType","targetEventType","altTargetEventTypes","arguments","length","undefined","includes","Relations","constructor","relationType","client","altEventTypes","_this","this","_defineProperty","Set","event","status","isSending","removeListener","Status","onEventStatus","CANCELLED","removeEvent","_ref","_asyncToGenerator","redactedEvent","relations","has","delete","Annotation","removeAnnotationFromAggregation","Replace","updateTargetEventReplacement","BeforeRedaction","onBeforeRedaction","emit","Redaction","_x","apply","addEvent","_this2","relationEventIds","getId","relation","getRelation","error","rel_type","getType","on","add","addAnnotationToAggregation","Add","maybeEmitCreated","_this3","Remove","getRelations","_event$getRelation","key","eventsForKey","annotationsByKey","sortedAnnotationsByKey","push","sort","a","b","aEvents","bEvents","size","sender","getSender","eventsFromSender","annotationsBySender","_event$getRelation2","getSortedAnnotationsByKey","getAnnotationsBySender","getLastReplacement","_this4","targetEvent","replaceRelation","getServerAggregatedRelation","minTs","origin_server_ts","lastReplacement","reduce","last","getTs","shouldAttemptDecryption","getCrypto","attemptDecryption","isBeingDecrypted","getDecryptionPromise","setTargetEvent","_this5","_this6","isState","updateId","replacementUpdateId","replacingEvent","makeReplaced","creationEmitted","RelationsCreated"],"sources":["../../src/models/relations.ts"],"sourcesContent":["/*\nCopyright 2019, 2021, 2023 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { EventStatus, type IAggregatedRelation, type BriijEvent, BriijEventEvent } from \"./event.ts\";\nimport { logger } from \"../logger.ts\";\nimport { RelationType } from \"../@types/event.ts\";\nimport { TypedEventEmitter } from \"./typed-event-emitter.ts\";\nimport { type BriijClient } from \"../client.ts\";\nimport { Room } from \"./room.ts\";\nimport { type CryptoBackend } from \"../common-crypto/CryptoBackend.ts\";\n\nexport enum RelationsEvent {\n Add = \"Relations.add\",\n Remove = \"Relations.remove\",\n Redaction = \"Relations.redaction\",\n}\n\nexport type EventHandlerMap = {\n [RelationsEvent.Add]: (event: BriijEvent) => void;\n [RelationsEvent.Remove]: (event: BriijEvent) => void;\n [RelationsEvent.Redaction]: (event: BriijEvent) => void;\n};\n\nconst matchesEventType = (eventType: string, targetEventType: string, altTargetEventTypes: string[] = []): boolean =>\n [targetEventType, ...altTargetEventTypes].includes(eventType);\n\n/**\n * A container for relation events that supports easy access to common ways of\n * aggregating such events. Each instance holds events that of a single relation\n * type and event type. All of the events also relate to the same original event.\n *\n * The typical way to get one of these containers is via\n * EventTimelineSet#getRelationsForEvent.\n */\nexport class Relations extends TypedEventEmitter<RelationsEvent, EventHandlerMap> {\n private relationEventIds = new Set<string>();\n private relations = new Set<BriijEvent>();\n private annotationsByKey: Record<string, Set<BriijEvent>> = {};\n private annotationsBySender: Record<string, Set<BriijEvent>> = {};\n private sortedAnnotationsByKey: [string, Set<BriijEvent>][] = [];\n private targetEvent: BriijEvent | null = null;\n private creationEmitted = false;\n private replacementUpdateId = 0;\n private readonly client: BriijClient;\n\n /**\n * @param relationType - The type of relation involved, such as \"m.annotation\", \"m.reference\", \"m.replace\", etc.\n * @param eventType - The relation event's type, such as \"m.reaction\", etc.\n * @param client - The client which created this instance. For backwards compatibility also accepts a Room.\n * @param altEventTypes - alt event types for relation events, for example to support unstable prefixed event types\n */\n public constructor(\n public readonly relationType: RelationType | string,\n public readonly eventType: string,\n client: BriijClient | Room,\n public readonly altEventTypes?: string[],\n ) {\n super();\n this.client = client instanceof Room ? client.client : client;\n }\n\n /**\n * Add relation events to this collection.\n *\n * @param event - The new relation event to be added.\n */\n public async addEvent(event: BriijEvent): Promise<void> {\n if (this.relationEventIds.has(event.getId()!)) {\n return;\n }\n\n const relation = event.getRelation();\n if (!relation) {\n logger.error(\"Event must have relation info\");\n return;\n }\n\n const relationType = relation.rel_type;\n const eventType = event.getType();\n\n if (this.relationType !== relationType || !matchesEventType(eventType, this.eventType, this.altEventTypes)) {\n logger.error(\"Event relation info doesn't match this container\");\n return;\n }\n\n // If the event is in the process of being sent, listen for cancellation\n // so we can remove the event from the collection.\n if (event.isSending()) {\n event.on(BriijEventEvent.Status, this.onEventStatus);\n }\n\n this.relations.add(event);\n this.relationEventIds.add(event.getId()!);\n\n if (this.relationType === RelationType.Annotation) {\n this.addAnnotationToAggregation(event);\n } else if (this.relationType === RelationType.Replace) {\n await this.updateTargetEventReplacement();\n }\n\n event.on(BriijEventEvent.BeforeRedaction, this.onBeforeRedaction);\n\n this.emit(RelationsEvent.Add, event);\n\n this.maybeEmitCreated();\n }\n\n /**\n * Remove relation event from this collection.\n *\n * @param event - The relation event to remove.\n */\n public async removeEvent(event: BriijEvent): Promise<void> {\n if (!this.relations.has(event)) {\n return;\n }\n\n this.relations.delete(event);\n\n if (this.relationType === RelationType.Annotation) {\n this.removeAnnotationFromAggregation(event);\n } else if (this.relationType === RelationType.Replace) {\n await this.updateTargetEventReplacement();\n }\n\n this.emit(RelationsEvent.Remove, event);\n }\n\n /**\n * Listens for event status changes to remove cancelled events.\n *\n * @param event - The event whose status has changed\n * @param status - The new status\n */\n private onEventStatus = (event: BriijEvent, status: EventStatus | null): void => {\n if (!event.isSending()) {\n // Sending is done, so we don't need to listen anymore\n event.removeListener(BriijEventEvent.Status, this.onEventStatus);\n return;\n }\n if (status !== EventStatus.CANCELLED) {\n return;\n }\n // Event was cancelled, remove from the collection\n event.removeListener(BriijEventEvent.Status, this.onEventStatus);\n this.removeEvent(event);\n };\n\n /**\n * Get all relation events in this collection.\n *\n * These are currently in the order of insertion to this collection, which\n * won't match timeline order in the case of scrollback.\n * TODO: Tweak `addEvent` to insert correctly for scrollback.\n *\n * Relation events in insertion order.\n */\n public getRelations(): BriijEvent[] {\n return [...this.relations];\n }\n\n private addAnnotationToAggregation(event: BriijEvent): void {\n const { key } = event.getRelation() ?? {};\n if (!key) return;\n\n let eventsForKey = this.annotationsByKey[key];\n if (!eventsForKey) {\n eventsForKey = this.annotationsByKey[key] = new Set();\n this.sortedAnnotationsByKey.push([key, eventsForKey]);\n }\n // Add the new event to the set for this key\n eventsForKey.add(event);\n // Re-sort the [key, events] pairs in descending order of event count\n this.sortedAnnotationsByKey.sort((a, b) => {\n const aEvents = a[1];\n const bEvents = b[1];\n return bEvents.size - aEvents.size;\n });\n\n const sender = event.getSender()!;\n let eventsFromSender = this.annotationsBySender[sender];\n if (!eventsFromSender) {\n eventsFromSender = this.annotationsBySender[sender] = new Set();\n }\n // Add the new event to the set for this sender\n eventsFromSender.add(event);\n }\n\n private removeAnnotationFromAggregation(event: BriijEvent): void {\n const { key } = event.getRelation() ?? {};\n if (!key) return;\n\n const eventsForKey = this.annotationsByKey[key];\n if (eventsForKey) {\n eventsForKey.delete(event);\n\n // Re-sort the [key, events] pairs in descending order of event count\n this.sortedAnnotationsByKey.sort((a, b) => {\n const aEvents = a[1];\n const bEvents = b[1];\n return bEvents.size - aEvents.size;\n });\n }\n\n const sender = event.getSender()!;\n const eventsFromSender = this.annotationsBySender[sender];\n if (eventsFromSender) {\n eventsFromSender.delete(event);\n }\n }\n\n /**\n * For relations that have been redacted, we want to remove them from\n * aggregation data sets and emit an update event.\n *\n * To do so, we listen for `Event.beforeRedaction`, which happens:\n * - after the server accepted the redaction and remote echoed back to us\n * - before the original event has been marked redacted in the client\n *\n * @param redactedEvent - The original relation event that is about to be redacted.\n */\n private onBeforeRedaction = async (redactedEvent: BriijEvent): Promise<void> => {\n if (!this.relations.has(redactedEvent)) {\n return;\n }\n\n this.relations.delete(redactedEvent);\n\n if (this.relationType === RelationType.Annotation) {\n // Remove the redacted annotation from aggregation by key\n this.removeAnnotationFromAggregation(redactedEvent);\n } else if (this.relationType === RelationType.Replace) {\n await this.updateTargetEventReplacement();\n }\n\n redactedEvent.removeListener(BriijEventEvent.BeforeRedaction, this.onBeforeRedaction);\n\n this.emit(RelationsEvent.Redaction, redactedEvent);\n };\n\n /**\n * Get all events in this collection grouped by key and sorted by descending\n * event count in each group.\n *\n * This is currently only supported for the annotation relation type.\n *\n * An array of [key, events] pairs sorted by descending event count.\n * The events are stored in a Set (which preserves insertion order).\n */\n public getSortedAnnotationsByKey(): [string, Set<BriijEvent>][] | null {\n if (this.relationType !== RelationType.Annotation) {\n // Other relation types are not grouped currently.\n return null;\n }\n\n return this.sortedAnnotationsByKey;\n }\n\n /**\n * Get all events in this collection grouped by sender.\n *\n * This is currently only supported for the annotation relation type.\n *\n * An object with each relation sender as a key and the matching Set of\n * events for that sender as a value.\n */\n public getAnnotationsBySender(): Record<string, Set<BriijEvent>> | null {\n if (this.relationType !== RelationType.Annotation) {\n // Other relation types are not grouped currently.\n return null;\n }\n\n return this.annotationsBySender;\n }\n\n /**\n * Returns the most recent (and allowed) m.replace relation, if any.\n *\n * This is currently only supported for the m.replace relation type,\n * once the target event is known, see `addEvent`.\n */\n public async getLastReplacement(): Promise<BriijEvent | null> {\n if (this.relationType !== RelationType.Replace) {\n // Aggregating on last only makes sense for this relation type\n return null;\n }\n if (!this.targetEvent) {\n // Don't know which replacements to accept yet.\n // This method shouldn't be called before the original\n // event is known anyway.\n return null;\n }\n\n // the all-knowning server tells us that the event at some point had\n // this timestamp for its replacement, so any following replacement should definitely not be less\n const replaceRelation = this.targetEvent.getServerAggregatedRelation<IAggregatedRelation>(RelationType.Replace);\n const minTs = replaceRelation?.origin_server_ts;\n\n const lastReplacement = this.getRelations().reduce<BriijEvent | null>((last, event) => {\n if (event.getSender() !== this.targetEvent!.getSender()) {\n return last;\n }\n if (minTs && minTs > event.getTs()) {\n return last;\n }\n if (last && last.getTs() > event.getTs()) {\n return last;\n }\n return event;\n }, null);\n\n if (lastReplacement?.shouldAttemptDecryption() && this.client.getCrypto()) {\n // Dirty but we are expecting to pass the cryptoBackend which is not accessible here\n await lastReplacement.attemptDecryption(this.client.getCrypto() as CryptoBackend);\n } else if (lastReplacement?.isBeingDecrypted()) {\n await lastReplacement.getDecryptionPromise();\n }\n\n return lastReplacement;\n }\n\n /*\n * @param targetEvent - the event the relations are related to.\n */\n public async setTargetEvent(event: BriijEvent): Promise<void> {\n if (this.targetEvent) {\n return;\n }\n this.targetEvent = event;\n\n if (this.relationType === RelationType.Replace) {\n await this.updateTargetEventReplacement();\n }\n\n this.maybeEmitCreated();\n }\n\n /**\n * Updates the target event with the latest replacement.\n *\n * Multiple replacement updates can be triggered concurrently (for example\n * while edits are still being decrypted). A monotonic update counter guards\n * against older async resolutions overriding newer replacement selections.\n */\n private async updateTargetEventReplacement(): Promise<void> {\n if (!this.targetEvent || this.targetEvent.isState()) {\n return;\n }\n\n const targetEvent = this.targetEvent;\n const updateId = ++this.replacementUpdateId;\n const lastReplacement = await this.getLastReplacement();\n\n // If a newer update started while we were awaiting, discard this stale result.\n if (updateId !== this.replacementUpdateId || this.targetEvent !== targetEvent) {\n return;\n }\n\n // Avoid emitting Event.replaced when there is no replacement and none currently set.\n if (!lastReplacement && !targetEvent.replacingEvent()) {\n return;\n }\n\n targetEvent.makeReplaced(lastReplacement ?? undefined);\n }\n\n private maybeEmitCreated(): void {\n if (this.creationEmitted) {\n return;\n }\n // Only emit we're \"created\" once we have a target event instance _and_\n // at least one related event.\n if (!this.targetEvent || !this.relations.size) {\n return;\n }\n this.creationEmitted = true;\n this.targetEvent.emit(BriijEventEvent.RelationsCreated, this.relationType, this.eventType);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,221 @@
1
+ import { type User } from "./user.ts";
2
+ import { type BriijEvent } from "./event.ts";
3
+ import { type RoomState } from "./room-state.ts";
4
+ import { TypedEventEmitter } from "./typed-event-emitter.ts";
5
+ import { type Membership } from "../@types/membership.ts";
6
+ export declare enum RoomMemberEvent {
7
+ Membership = "RoomMember.membership",
8
+ Name = "RoomMember.name",
9
+ PowerLevel = "RoomMember.powerLevel",
10
+ Typing = "RoomMember.typing"
11
+ }
12
+ export type RoomMemberEventHandlerMap = {
13
+ /**
14
+ * Fires whenever any room member's membership state changes.
15
+ * @param event - The matrix event which caused this event to fire.
16
+ * @param member - The member whose RoomMember.membership changed.
17
+ * @param oldMembership - The previous membership state. Null if it's a new member.
18
+ * @example
19
+ * ```
20
+ * matrixClient.on("RoomMember.membership", function(event, member, oldMembership){
21
+ * var newState = member.membership;
22
+ * });
23
+ * ```
24
+ */
25
+ [RoomMemberEvent.Membership]: (event: BriijEvent, member: RoomMember, oldMembership?: string) => void;
26
+ /**
27
+ * Fires whenever any room member's name changes.
28
+ * @param event - The matrix event which caused this event to fire.
29
+ * @param member - The member whose RoomMember.name changed.
30
+ * @param oldName - The previous name. Null if the member didn't have a name previously.
31
+ * @example
32
+ * ```
33
+ * matrixClient.on("RoomMember.name", function(event, member){
34
+ * var newName = member.name;
35
+ * });
36
+ * ```
37
+ */
38
+ [RoomMemberEvent.Name]: (event: BriijEvent, member: RoomMember, oldName: string | null) => void;
39
+ /**
40
+ * Fires whenever any room member's power level changes.
41
+ * @param event - The matrix event which caused this event to fire.
42
+ * @param member - The member whose RoomMember.powerLevel changed.
43
+ * @example
44
+ * ```
45
+ * matrixClient.on("RoomMember.powerLevel", function(event, member){
46
+ * var newPowerLevel = member.powerLevel;
47
+ * });
48
+ * ```
49
+ */
50
+ [RoomMemberEvent.PowerLevel]: (event: BriijEvent, member: RoomMember) => void;
51
+ /**
52
+ * Fires whenever any room member's typing state changes.
53
+ * @param event - The matrix event which caused this event to fire.
54
+ * @param member - The member whose RoomMember.typing changed.
55
+ * @example
56
+ * ```
57
+ * matrixClient.on("RoomMember.typing", function(event, member){
58
+ * var isTyping = member.typing;
59
+ * });
60
+ * ```
61
+ */
62
+ [RoomMemberEvent.Typing]: (event: BriijEvent, member: RoomMember) => void;
63
+ };
64
+ export declare class RoomMember extends TypedEventEmitter<RoomMemberEvent, RoomMemberEventHandlerMap> {
65
+ readonly roomId: string;
66
+ readonly userId: string;
67
+ private _isOutOfBand;
68
+ private modified;
69
+ requestedProfileInfo: boolean;
70
+ /**
71
+ * True if the room member is currently typing.
72
+ */
73
+ typing: boolean;
74
+ /**
75
+ * The human-readable name for this room member. Similar to {@link rawDisplayName}, but
76
+ * disambiguated with a suffix of " (\@user_id:matrix.org)" if another member shares the
77
+ * same displayname.
78
+ */
79
+ name: string;
80
+ /**
81
+ * The ambiguous displayname of this room member, with some preprocessing:
82
+ *
83
+ * * Direction override characters (RTO and LRO) are removed.
84
+ * * If the displayname is empty, or contains only blank, non-printing, or diacritcic characters, it is
85
+ * replaced with the user ID.
86
+ */
87
+ rawDisplayName: string;
88
+ /**
89
+ * The power level for this room member.
90
+ */
91
+ powerLevel: number;
92
+ /**
93
+ * The User object for this room member, if one exists.
94
+ */
95
+ user?: User;
96
+ /**
97
+ * The membership state for this room member e.g. 'join'.
98
+ */
99
+ membership?: Membership;
100
+ /**
101
+ * True if the member's name is disambiguated.
102
+ */
103
+ disambiguate: boolean;
104
+ /**
105
+ * The events describing this RoomMember.
106
+ */
107
+ events: {
108
+ /**
109
+ * The m.room.member event for this RoomMember.
110
+ */
111
+ member?: BriijEvent;
112
+ };
113
+ /**
114
+ * Construct a new room member.
115
+ *
116
+ * @param roomId - The room ID of the member.
117
+ * @param userId - The user ID of the member.
118
+ */
119
+ constructor(roomId: string, userId: string);
120
+ /**
121
+ * Mark the member as coming from a channel that is not sync
122
+ */
123
+ markOutOfBand(): void;
124
+ /**
125
+ * @returns does the member come from a channel that is not sync?
126
+ * This is used to store the member seperately
127
+ * from the sync state so it available across browser sessions.
128
+ */
129
+ isOutOfBand(): boolean;
130
+ /**
131
+ * Update this room member's membership event. May fire "RoomMember.name" if
132
+ * this event updates this member's name.
133
+ * @param event - The `m.room.member` event
134
+ * @param roomState - Optional. The room state to take into account
135
+ * when calculating (e.g. for disambiguating users with the same name).
136
+ *
137
+ * @remarks
138
+ * Fires {@link RoomMemberEvent.Name}
139
+ * Fires {@link RoomMemberEvent.Membership}
140
+ */
141
+ setMembershipEvent(event: BriijEvent, roomState?: RoomState): void;
142
+ /**
143
+ * Recalculate the disambiguation flag for this member based on current room state.
144
+ * This should be called when another member's display name changes and may affect
145
+ * whether this member needs disambiguation.
146
+ *
147
+ * @param roomState - The current room state to use for disambiguation check
148
+ * @returns true if the member's name changed as a result of the disambiguation update
149
+ *
150
+ * @remarks
151
+ * Fires {@link RoomMemberEvent.Name}
152
+ */
153
+ recalculateDisambiguatedName(roomState: RoomState): boolean;
154
+ /**
155
+ * Update this room member's power level event. Will fire
156
+ * "RoomMember.powerLevel" if the new power level is different
157
+ * @param powerLevel - The power level of the room member.
158
+ *
159
+ * @remarks
160
+ * Fires {@link RoomMemberEvent.PowerLevel}
161
+ */
162
+ setPowerLevel(powerLevel: number, powerLevelEvent: BriijEvent): void;
163
+ /**
164
+ * Update this room member's typing event. May fire "RoomMember.typing" if
165
+ * this event changes this member's typing state.
166
+ * @param event - The typing event
167
+ *
168
+ * @remarks
169
+ * Fires {@link RoomMemberEvent.Typing}
170
+ */
171
+ setTypingEvent(event: BriijEvent): void;
172
+ /**
173
+ * Update the last modified time to the current time.
174
+ */
175
+ private updateModifiedTime;
176
+ /**
177
+ * Get the timestamp when this RoomMember was last updated. This timestamp is
178
+ * updated when properties on this RoomMember are updated.
179
+ * It is updated <i>before</i> firing events.
180
+ * @returns The timestamp
181
+ */
182
+ getLastModifiedTime(): number;
183
+ isKicked(): boolean;
184
+ /**
185
+ * If this member was invited with the is_direct flag set, return
186
+ * the user that invited this member
187
+ * @returns user id of the inviter
188
+ */
189
+ getDMInviter(): string | undefined;
190
+ /**
191
+ * Get the avatar URL for a room member.
192
+ * @param baseUrl - The base homeserver URL See
193
+ * {@link BriijClient#getHomeserverUrl}.
194
+ * @param width - The desired width of the thumbnail.
195
+ * @param height - The desired height of the thumbnail.
196
+ * @param resizeMethod - The thumbnail resize method to use, either
197
+ * "crop" or "scale".
198
+ * @param allowDefault - (optional) Passing false causes this method to
199
+ * return null if the user has no avatar image. Otherwise, a default image URL
200
+ * will be returned. Default: true. (Deprecated)
201
+ * @param allowDirectLinks - (optional) If true, the avatar URL will be
202
+ * returned even if it is a direct hyperlink rather than a matrix content URL.
203
+ * If false, any non-matrix content URLs will be ignored. Setting this option to
204
+ * true will expose URLs that, if fetched, will leak information about the user
205
+ * to anyone who they share a room with.
206
+ * @param useAuthentication - (optional) If true, the caller supports authenticated
207
+ * media and wants an authentication-required URL. Note that server support for
208
+ * authenticated media will not be checked - it is the caller's responsibility
209
+ * to do so before calling this function. Note also that useAuthentication
210
+ * implies allowRedirects. Defaults to false (unauthenticated endpoints).
211
+ * @returns the avatar URL or null.
212
+ */
213
+ getAvatarUrl(baseUrl: string, width: number, height: number, resizeMethod: string, allowDefault: boolean | undefined, allowDirectLinks: boolean, useAuthentication?: boolean): string | null;
214
+ /**
215
+ * get the mxc avatar url, either from a state event, or from a lazily loaded member
216
+ * @returns the mxc avatar url
217
+ */
218
+ getMxcAvatarUrl(): string | undefined;
219
+ }
220
+ export declare const MXID_PATTERN: RegExp;
221
+ //# sourceMappingURL=room-member.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"room-member.d.ts","sourceRoot":"","sources":["../../src/models/room-member.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE3E,oBAAY,eAAe;IACvB,UAAU,0BAA0B;IACpC,IAAI,oBAAoB;IACxB,UAAU,0BAA0B;IACpC,MAAM,sBAAsB;CAC/B;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC;;;;;;;;;;;OAWG;IACH,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtG;;;;;;;;;;;OAWG;IACH,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAChG;;;;;;;;;;OAUG;IACH,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9E;;;;;;;;;;OAUG;IACH,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CAC7E,CAAC;AAEF,qBAAa,UAAW,SAAQ,iBAAiB,CAAC,eAAe,EAAE,yBAAyB,CAAC;aA4DrE,MAAM,EAAE,MAAM;aACd,MAAM,EAAE,MAAM;IA5DlC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAM;IACf,oBAAoB,UAAS;IAGpC;;OAEG;IACI,MAAM,UAAS;IAEtB;;;;OAIG;IACI,IAAI,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACI,cAAc,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACI,UAAU,SAAK;IACtB;;OAEG;IACI,IAAI,CAAC,EAAE,IAAI,CAAC;IACnB;;OAEG;IACI,UAAU,CAAC,EAAE,UAAU,CAAC;IAC/B;;OAEG;IACI,YAAY,UAAS;IAC5B;;OAEG;IACI,MAAM,EAAE;QACX;;WAEG;QACH,MAAM,CAAC,EAAE,UAAU,CAAC;KACvB,CAAM;IAEP;;;;;OAKG;gBAEiB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM;IASlC;;OAEG;IACI,aAAa,IAAI,IAAI;IAI5B;;;;OAIG;IACI,WAAW,IAAI,OAAO;IAI7B;;;;;;;;;;OAUG;IACI,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IA8CzE;;;;;;;;;;OAUG;IACI,4BAA4B,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAyBlE;;;;;;;OAOG;IACI,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,GAAG,IAAI;IAU3E;;;;;;;OAOG;IACI,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAoB9C;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;;OAKG;IACI,mBAAmB,IAAI,MAAM;IAI7B,QAAQ,IAAI,OAAO;IAQ1B;;;;OAIG;IACI,YAAY,IAAI,MAAM,GAAG,SAAS;IA0BzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,YAAY,CACf,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,YAAY,qBAAO,EACnB,gBAAgB,EAAE,OAAO,EACzB,iBAAiB,GAAE,OAAe,GACnC,MAAM,GAAG,IAAI;IAsBhB;;;OAGG;IACI,eAAe,IAAI,MAAM,GAAG,SAAS;CAO/C;AAED,eAAO,MAAM,YAAY,QAAW,CAAC"}
@@ -0,0 +1,376 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ /*
3
+ Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ */
17
+
18
+ import { getHttpUriForMxc } from "../content-repo.js";
19
+ import { removeDirectionOverrideChars, removeHiddenChars } from "../utils.js";
20
+ import { logger } from "../logger.js";
21
+ import { TypedEventEmitter } from "./typed-event-emitter.js";
22
+ import { EventType } from "../@types/event.js";
23
+ import { KnownMembership } from "../@types/membership.js";
24
+ export var RoomMemberEvent = /*#__PURE__*/function (RoomMemberEvent) {
25
+ RoomMemberEvent["Membership"] = "RoomMember.membership";
26
+ RoomMemberEvent["Name"] = "RoomMember.name";
27
+ RoomMemberEvent["PowerLevel"] = "RoomMember.powerLevel";
28
+ RoomMemberEvent["Typing"] = "RoomMember.typing";
29
+ return RoomMemberEvent;
30
+ }({});
31
+ export class RoomMember extends TypedEventEmitter {
32
+ /**
33
+ * Construct a new room member.
34
+ *
35
+ * @param roomId - The room ID of the member.
36
+ * @param userId - The user ID of the member.
37
+ */
38
+ constructor(roomId, userId) {
39
+ super();
40
+ this.roomId = roomId;
41
+ this.userId = userId;
42
+ _defineProperty(this, "_isOutOfBand", false);
43
+ _defineProperty(this, "modified", -1);
44
+ _defineProperty(this, "requestedProfileInfo", false);
45
+ // used by sync.ts
46
+ // XXX these should be read-only
47
+ /**
48
+ * True if the room member is currently typing.
49
+ */
50
+ _defineProperty(this, "typing", false);
51
+ /**
52
+ * The human-readable name for this room member. Similar to {@link rawDisplayName}, but
53
+ * disambiguated with a suffix of " (\@user_id:matrix.org)" if another member shares the
54
+ * same displayname.
55
+ */
56
+ _defineProperty(this, "name", void 0);
57
+ /**
58
+ * The ambiguous displayname of this room member, with some preprocessing:
59
+ *
60
+ * * Direction override characters (RTO and LRO) are removed.
61
+ * * If the displayname is empty, or contains only blank, non-printing, or diacritcic characters, it is
62
+ * replaced with the user ID.
63
+ */
64
+ _defineProperty(this, "rawDisplayName", void 0);
65
+ /**
66
+ * The power level for this room member.
67
+ */
68
+ _defineProperty(this, "powerLevel", 0);
69
+ /**
70
+ * The User object for this room member, if one exists.
71
+ */
72
+ _defineProperty(this, "user", void 0);
73
+ /**
74
+ * The membership state for this room member e.g. 'join'.
75
+ */
76
+ _defineProperty(this, "membership", void 0);
77
+ /**
78
+ * True if the member's name is disambiguated.
79
+ */
80
+ _defineProperty(this, "disambiguate", false);
81
+ /**
82
+ * The events describing this RoomMember.
83
+ */
84
+ _defineProperty(this, "events", {});
85
+ this.name = userId;
86
+ this.rawDisplayName = userId;
87
+ this.updateModifiedTime();
88
+ }
89
+
90
+ /**
91
+ * Mark the member as coming from a channel that is not sync
92
+ */
93
+ markOutOfBand() {
94
+ this._isOutOfBand = true;
95
+ }
96
+
97
+ /**
98
+ * @returns does the member come from a channel that is not sync?
99
+ * This is used to store the member seperately
100
+ * from the sync state so it available across browser sessions.
101
+ */
102
+ isOutOfBand() {
103
+ return this._isOutOfBand;
104
+ }
105
+
106
+ /**
107
+ * Update this room member's membership event. May fire "RoomMember.name" if
108
+ * this event updates this member's name.
109
+ * @param event - The `m.room.member` event
110
+ * @param roomState - Optional. The room state to take into account
111
+ * when calculating (e.g. for disambiguating users with the same name).
112
+ *
113
+ * @remarks
114
+ * Fires {@link RoomMemberEvent.Name}
115
+ * Fires {@link RoomMemberEvent.Membership}
116
+ */
117
+ setMembershipEvent(event, roomState) {
118
+ var _event$getDirectional, _event$getDirectional2;
119
+ var displayName = (_event$getDirectional = event.getDirectionalContent().displayname) !== null && _event$getDirectional !== void 0 ? _event$getDirectional : "";
120
+ if (event.getType() !== EventType.RoomMember) {
121
+ return;
122
+ }
123
+ this._isOutOfBand = false;
124
+ this.events.member = event;
125
+ var oldMembership = this.membership;
126
+ this.membership = event.getDirectionalContent().membership;
127
+ if (this.membership === undefined) {
128
+ // logging to diagnose https://github.com/vector-im/element-web/issues/20962
129
+ // (logs event content, although only of membership events)
130
+ logger.trace("membership event with membership undefined (forwardLooking: ".concat(event.forwardLooking, ")!"), event.getContent(), "prevcontent is ", event.getPrevContent());
131
+ }
132
+ this.disambiguate = shouldDisambiguate(this.userId, displayName, roomState);
133
+ var oldName = this.name;
134
+ this.name = calculateDisplayName(this.userId, displayName, this.disambiguate);
135
+
136
+ // not quite raw: we strip direction override chars so it can safely be inserted into
137
+ // blocks of text without breaking the text direction
138
+ this.rawDisplayName = removeDirectionOverrideChars((_event$getDirectional2 = event.getDirectionalContent().displayname) !== null && _event$getDirectional2 !== void 0 ? _event$getDirectional2 : "");
139
+ if (!this.rawDisplayName || !removeHiddenChars(this.rawDisplayName)) {
140
+ this.rawDisplayName = this.userId;
141
+ }
142
+ if (oldMembership !== this.membership) {
143
+ this.updateModifiedTime();
144
+ this.emit(RoomMemberEvent.Membership, event, this, oldMembership);
145
+ }
146
+ if (oldName !== this.name) {
147
+ this.updateModifiedTime();
148
+ this.emit(RoomMemberEvent.Name, event, this, oldName);
149
+ }
150
+ }
151
+
152
+ /**
153
+ * Recalculate the disambiguation flag for this member based on current room state.
154
+ * This should be called when another member's display name changes and may affect
155
+ * whether this member needs disambiguation.
156
+ *
157
+ * @param roomState - The current room state to use for disambiguation check
158
+ * @returns true if the member's name changed as a result of the disambiguation update
159
+ *
160
+ * @remarks
161
+ * Fires {@link RoomMemberEvent.Name}
162
+ */
163
+ recalculateDisambiguatedName(roomState) {
164
+ var _this$events$member$g;
165
+ if (!this.events.member) {
166
+ return false;
167
+ }
168
+ var displayName = (_this$events$member$g = this.events.member.getDirectionalContent().displayname) !== null && _this$events$member$g !== void 0 ? _this$events$member$g : "";
169
+ var newDisambiguate = shouldDisambiguate(this.userId, displayName, roomState);
170
+ if (newDisambiguate === this.disambiguate) {
171
+ return false;
172
+ }
173
+ this.disambiguate = newDisambiguate;
174
+ var oldName = this.name;
175
+ this.name = calculateDisplayName(this.userId, displayName, this.disambiguate);
176
+ if (oldName !== this.name) {
177
+ this.updateModifiedTime();
178
+ this.emit(RoomMemberEvent.Name, this.events.member, this, oldName);
179
+ return true;
180
+ }
181
+ return false;
182
+ }
183
+
184
+ /**
185
+ * Update this room member's power level event. Will fire
186
+ * "RoomMember.powerLevel" if the new power level is different
187
+ * @param powerLevel - The power level of the room member.
188
+ *
189
+ * @remarks
190
+ * Fires {@link RoomMemberEvent.PowerLevel}
191
+ */
192
+ setPowerLevel(powerLevel, powerLevelEvent) {
193
+ var oldPowerLevel = this.powerLevel;
194
+ this.powerLevel = powerLevel;
195
+ if (oldPowerLevel !== this.powerLevel) {
196
+ this.updateModifiedTime();
197
+ this.emit(RoomMemberEvent.PowerLevel, powerLevelEvent, this);
198
+ }
199
+ }
200
+
201
+ /**
202
+ * Update this room member's typing event. May fire "RoomMember.typing" if
203
+ * this event changes this member's typing state.
204
+ * @param event - The typing event
205
+ *
206
+ * @remarks
207
+ * Fires {@link RoomMemberEvent.Typing}
208
+ */
209
+ setTypingEvent(event) {
210
+ if (event.getType() !== "m.typing") {
211
+ return;
212
+ }
213
+ var oldTyping = this.typing;
214
+ this.typing = false;
215
+ var typingList = event.getContent().user_ids;
216
+ if (!Array.isArray(typingList)) {
217
+ // malformed event :/ bail early. TODO: whine?
218
+ return;
219
+ }
220
+ if (typingList.indexOf(this.userId) !== -1) {
221
+ this.typing = true;
222
+ }
223
+ if (oldTyping !== this.typing) {
224
+ this.updateModifiedTime();
225
+ this.emit(RoomMemberEvent.Typing, event, this);
226
+ }
227
+ }
228
+
229
+ /**
230
+ * Update the last modified time to the current time.
231
+ */
232
+ updateModifiedTime() {
233
+ this.modified = Date.now();
234
+ }
235
+
236
+ /**
237
+ * Get the timestamp when this RoomMember was last updated. This timestamp is
238
+ * updated when properties on this RoomMember are updated.
239
+ * It is updated <i>before</i> firing events.
240
+ * @returns The timestamp
241
+ */
242
+ getLastModifiedTime() {
243
+ return this.modified;
244
+ }
245
+ isKicked() {
246
+ return this.membership === KnownMembership.Leave && this.events.member !== undefined && this.events.member.getSender() !== this.events.member.getStateKey();
247
+ }
248
+
249
+ /**
250
+ * If this member was invited with the is_direct flag set, return
251
+ * the user that invited this member
252
+ * @returns user id of the inviter
253
+ */
254
+ getDMInviter() {
255
+ // when not available because that room state hasn't been loaded in,
256
+ // we don't really know, but more likely to not be a direct chat
257
+ if (this.events.member) {
258
+ // TODO: persist the is_direct flag on the member as more member events
259
+ // come in caused by displayName changes.
260
+
261
+ // the is_direct flag is set on the invite member event.
262
+ // This is copied on the prev_content section of the join member event
263
+ // when the invite is accepted.
264
+
265
+ var memberEvent = this.events.member;
266
+ var memberContent = memberEvent.getContent();
267
+ var inviteSender = memberEvent.getSender();
268
+ if (memberContent.membership === KnownMembership.Join) {
269
+ memberContent = memberEvent.getPrevContent();
270
+ inviteSender = memberEvent.getUnsigned().prev_sender;
271
+ }
272
+ if (memberContent.membership === KnownMembership.Invite && memberContent.is_direct) {
273
+ return inviteSender;
274
+ }
275
+ }
276
+ }
277
+
278
+ /**
279
+ * Get the avatar URL for a room member.
280
+ * @param baseUrl - The base homeserver URL See
281
+ * {@link BriijClient#getHomeserverUrl}.
282
+ * @param width - The desired width of the thumbnail.
283
+ * @param height - The desired height of the thumbnail.
284
+ * @param resizeMethod - The thumbnail resize method to use, either
285
+ * "crop" or "scale".
286
+ * @param allowDefault - (optional) Passing false causes this method to
287
+ * return null if the user has no avatar image. Otherwise, a default image URL
288
+ * will be returned. Default: true. (Deprecated)
289
+ * @param allowDirectLinks - (optional) If true, the avatar URL will be
290
+ * returned even if it is a direct hyperlink rather than a matrix content URL.
291
+ * If false, any non-matrix content URLs will be ignored. Setting this option to
292
+ * true will expose URLs that, if fetched, will leak information about the user
293
+ * to anyone who they share a room with.
294
+ * @param useAuthentication - (optional) If true, the caller supports authenticated
295
+ * media and wants an authentication-required URL. Note that server support for
296
+ * authenticated media will not be checked - it is the caller's responsibility
297
+ * to do so before calling this function. Note also that useAuthentication
298
+ * implies allowRedirects. Defaults to false (unauthenticated endpoints).
299
+ * @returns the avatar URL or null.
300
+ */
301
+ getAvatarUrl(baseUrl, width, height, resizeMethod) {
302
+ var allowDefault = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
303
+ var allowDirectLinks = arguments.length > 5 ? arguments[5] : undefined;
304
+ var useAuthentication = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
305
+ var rawUrl = this.getMxcAvatarUrl();
306
+ if (!rawUrl && !allowDefault) {
307
+ return null;
308
+ }
309
+ var httpUrl = getHttpUriForMxc(baseUrl, rawUrl, width, height, resizeMethod, allowDirectLinks, undefined, useAuthentication);
310
+ if (httpUrl) {
311
+ return httpUrl;
312
+ }
313
+ return null;
314
+ }
315
+
316
+ /**
317
+ * get the mxc avatar url, either from a state event, or from a lazily loaded member
318
+ * @returns the mxc avatar url
319
+ */
320
+ getMxcAvatarUrl() {
321
+ if (this.events.member) {
322
+ return this.events.member.getDirectionalContent().avatar_url;
323
+ } else if (this.user) {
324
+ return this.user.avatarUrl;
325
+ }
326
+ }
327
+ }
328
+ export var MXID_PATTERN = /@.+:.+/;
329
+ var LTR_RTL_PATTERN = /[\u200E\u200F\u202A-\u202F]/;
330
+ function shouldDisambiguate(selfUserId, displayName, roomState) {
331
+ if (!displayName || displayName === selfUserId) return false;
332
+ if (!roomState) return false;
333
+ var strippedDisplayName = removeHiddenChars(displayName);
334
+
335
+ // First check if the displayname is something we consider truthy
336
+ // after stripping it of zero width characters and padding spaces
337
+ if (!strippedDisplayName) return false;
338
+
339
+ // Next check if the name contains something that look like a mxid
340
+ // If it does, it may be someone trying to impersonate someone else
341
+ // Show full mxid in this case
342
+ if (MXID_PATTERN.test(strippedDisplayName)) return true;
343
+
344
+ // Also show mxid if the display name contains any LTR/RTL characters as these
345
+ // make it very difficult for us to find similar *looking* display names
346
+ // E.g "Mark" could be cloned by writing "kraM" but in RTL.
347
+ if (LTR_RTL_PATTERN.test(displayName)) return true;
348
+
349
+ // Also show mxid if there are other people with the same or similar
350
+ // displayname, after hidden character removal.
351
+ var userIds = roomState.getUserIdsWithDisplayName(displayName);
352
+ if (userIds.some(u => u !== selfUserId)) return true;
353
+ return false;
354
+ }
355
+ function calculateDisplayName(selfUserId, displayName, disambiguate) {
356
+ if (!displayName || displayName === selfUserId) return selfUserId;
357
+ if (disambiguate) return removeDirectionOverrideChars(displayName) + " (" + selfUserId + ")";
358
+
359
+ // First check if the displayname is something we consider truthy
360
+ // after stripping it of zero width characters and padding spaces
361
+ if (!removeHiddenChars(displayName)) return selfUserId;
362
+
363
+ // We always strip the direction override characters (LRO and RLO).
364
+ // These override the text direction for all subsequent characters
365
+ // in the paragraph so if display names contained these, they'd
366
+ // need to be wrapped in something to prevent this from leaking out
367
+ // (which we can do in HTML but not text) or we'd need to add
368
+ // control characters to the string to reset any overrides (eg.
369
+ // adding PDF characters at the end). As far as we can see,
370
+ // there should be no reason these would be necessary - rtl display
371
+ // names should flip into the correct direction automatically based on
372
+ // the characters, and you can still embed rtl in ltr or vice versa
373
+ // with the embed chars or marker chars.
374
+ return removeDirectionOverrideChars(displayName);
375
+ }
376
+ //# sourceMappingURL=room-member.js.map