@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,892 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ /*
4
+ Copyright 2022 The Matrix.org Foundation C.I.C.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
+ */
18
+
19
+ import { NotificationCountType, Room, RoomEvent } from "./models/room.js";
20
+ import { logger } from "./logger.js";
21
+ import { promiseMapSeries } from "./utils.js";
22
+ import { EventTimeline } from "./models/event-timeline.js";
23
+ import { ClientEvent } from "./client.js";
24
+ import { SyncState, _createAndReEmitRoom, defaultClientOpts, defaultSyncApiOpts, processToDeviceMessages } from "./sync.js";
25
+ import { BriijError } from "./http-api/index.js";
26
+ import { ExtensionState, SlidingSyncEvent, SlidingSyncState } from "./sliding-sync.js";
27
+ import { EventType } from "./@types/event.js";
28
+ import { RoomStateEvent } from "./models/room-state.js";
29
+ import { RoomMemberEvent } from "./models/room-member.js";
30
+ import { KnownMembership } from "./@types/membership.js";
31
+
32
+ // Number of consecutive failed syncs that will lead to a syncState of ERROR as opposed
33
+ // to RECONNECTING. This is needed to inform the client of server issues when the
34
+ // keepAlive is successful but the server /sync fails.
35
+ var FAILED_SYNC_ERROR_THRESHOLD = 3;
36
+ class ExtensionE2EE {
37
+ constructor(crypto) {
38
+ this.crypto = crypto;
39
+ }
40
+ name() {
41
+ return "e2ee";
42
+ }
43
+ when() {
44
+ return ExtensionState.PreProcess;
45
+ }
46
+ onRequest(isInitial) {
47
+ var _this = this;
48
+ return _asyncToGenerator(function* () {
49
+ if (isInitial) {
50
+ // In SSS, the `?pos=` contains the stream position for device list updates.
51
+ // If we do not have a `?pos=` (e.g because we forgot it, or because the server
52
+ // invalidated our connection) then we MUST invlaidate all device lists because
53
+ // the server will not tell us the delta. This will then cause UTDs as we will fail
54
+ // to encrypt for new devices. This is an expensive call, so we should
55
+ // really really remember `?pos=` wherever possible.
56
+ logger.log("ExtensionE2EE: invalidating all device lists due to missing 'pos'");
57
+ yield _this.crypto.markAllTrackedUsersAsDirty();
58
+ }
59
+ return {
60
+ enabled: true // this is sticky so only send it on the initial request
61
+ };
62
+ })();
63
+ }
64
+ onResponse(data) {
65
+ var _this2 = this;
66
+ return _asyncToGenerator(function* () {
67
+ // Handle device list updates
68
+ if (data.device_lists) {
69
+ yield _this2.crypto.processDeviceLists(data.device_lists);
70
+ }
71
+
72
+ // Handle one_time_keys_count and unused_fallback_key_types
73
+ yield _this2.crypto.processKeyCounts(data.device_one_time_keys_count, data["device_unused_fallback_key_types"] || data["org.matrix.msc2732.device_unused_fallback_key_types"]);
74
+ _this2.crypto.onSyncCompleted({});
75
+ })();
76
+ }
77
+ }
78
+ class ExtensionToDevice {
79
+ constructor(client, cryptoCallbacks) {
80
+ this.client = client;
81
+ this.cryptoCallbacks = cryptoCallbacks;
82
+ _defineProperty(this, "nextBatch", null);
83
+ }
84
+ name() {
85
+ return "to_device";
86
+ }
87
+ when() {
88
+ return ExtensionState.PreProcess;
89
+ }
90
+ onRequest(isInitial) {
91
+ var _this3 = this;
92
+ return _asyncToGenerator(function* () {
93
+ return {
94
+ since: _this3.nextBatch !== null ? _this3.nextBatch : undefined,
95
+ limit: 100,
96
+ enabled: true
97
+ };
98
+ })();
99
+ }
100
+ onResponse(data) {
101
+ var _this4 = this;
102
+ return _asyncToGenerator(function* () {
103
+ var events = data["events"] || [];
104
+ var receivedToDeviceMessages;
105
+ if (_this4.cryptoCallbacks) {
106
+ receivedToDeviceMessages = yield _this4.cryptoCallbacks.preprocessToDeviceMessages(events);
107
+ } else {
108
+ receivedToDeviceMessages = events.map(rawEvent => (
109
+ // Crypto is not enabled, so we just return the events.
110
+ {
111
+ message: rawEvent,
112
+ encryptionInfo: null
113
+ }));
114
+ }
115
+ processToDeviceMessages(receivedToDeviceMessages, _this4.client);
116
+ _this4.nextBatch = data.next_batch;
117
+ })();
118
+ }
119
+ }
120
+ class ExtensionAccountData {
121
+ constructor(client) {
122
+ this.client = client;
123
+ }
124
+ name() {
125
+ return "account_data";
126
+ }
127
+ when() {
128
+ return ExtensionState.PostProcess;
129
+ }
130
+ onRequest(isInitial) {
131
+ return _asyncToGenerator(function* () {
132
+ return {
133
+ enabled: true
134
+ };
135
+ })();
136
+ }
137
+ onResponse(data) {
138
+ var _this5 = this;
139
+ return _asyncToGenerator(function* () {
140
+ if (data.global && data.global.length > 0) {
141
+ _this5.processGlobalAccountData(data.global);
142
+ }
143
+ for (var roomId in data.rooms) {
144
+ var accountDataEvents = mapEvents(_this5.client, roomId, data.rooms[roomId]);
145
+ var room = _this5.client.getRoom(roomId);
146
+ if (!room) {
147
+ logger.warn("got account data for room but room doesn't exist on client:", roomId);
148
+ continue;
149
+ }
150
+ room.addAccountData(accountDataEvents);
151
+ accountDataEvents.forEach(e => {
152
+ _this5.client.emit(ClientEvent.Event, e);
153
+ });
154
+ }
155
+ })();
156
+ }
157
+ processGlobalAccountData(globalAccountData) {
158
+ var events = mapEvents(this.client, undefined, globalAccountData);
159
+ var prevEventsMap = events.reduce((m, c) => {
160
+ m[c.getType()] = this.client.store.getAccountData(c.getType());
161
+ return m;
162
+ }, {});
163
+ this.client.store.storeAccountDataEvents(events);
164
+ events.forEach(accountDataEvent => {
165
+ // Honour push rules that come down the sync stream but also
166
+ // honour push rules that were previously cached. Base rules
167
+ // will be updated when we receive push rules via getPushRules
168
+ // (see sync) before syncing over the network.
169
+ if (accountDataEvent.getType() === EventType.PushRules) {
170
+ var rules = accountDataEvent.getContent();
171
+ this.client.setPushRules(rules);
172
+ }
173
+ var prevEvent = prevEventsMap[accountDataEvent.getType()];
174
+ this.client.emit(ClientEvent.AccountData, accountDataEvent, prevEvent);
175
+ return accountDataEvent;
176
+ });
177
+ }
178
+ }
179
+ class ExtensionTyping {
180
+ constructor(client) {
181
+ this.client = client;
182
+ }
183
+ name() {
184
+ return "typing";
185
+ }
186
+ when() {
187
+ return ExtensionState.PostProcess;
188
+ }
189
+ onRequest(isInitial) {
190
+ return _asyncToGenerator(function* () {
191
+ return {
192
+ enabled: true
193
+ };
194
+ })();
195
+ }
196
+ onResponse(data) {
197
+ var _this6 = this;
198
+ return _asyncToGenerator(function* () {
199
+ if (!(data !== null && data !== void 0 && data.rooms)) {
200
+ return;
201
+ }
202
+ for (var roomId in data.rooms) {
203
+ processEphemeralEvents(_this6.client, roomId, [data.rooms[roomId]]);
204
+ }
205
+ })();
206
+ }
207
+ }
208
+ class ExtensionReceipts {
209
+ constructor(client) {
210
+ this.client = client;
211
+ }
212
+ name() {
213
+ return "receipts";
214
+ }
215
+ when() {
216
+ return ExtensionState.PostProcess;
217
+ }
218
+ onRequest(isInitial) {
219
+ return _asyncToGenerator(function* () {
220
+ return {
221
+ enabled: true
222
+ };
223
+ })();
224
+ }
225
+ onResponse(data) {
226
+ var _this7 = this;
227
+ return _asyncToGenerator(function* () {
228
+ if (!(data !== null && data !== void 0 && data.rooms)) {
229
+ return;
230
+ }
231
+ for (var roomId in data.rooms) {
232
+ processEphemeralEvents(_this7.client, roomId, [data.rooms[roomId]]);
233
+ }
234
+ })();
235
+ }
236
+ }
237
+
238
+ /**
239
+ * A copy of SyncApi such that it can be used as a drop-in replacement for sync v2. For the actual
240
+ * sliding sync API, see sliding-sync.ts or the class SlidingSync.
241
+ */
242
+ export class SlidingSyncSdk {
243
+ // accumulator of sync events in the current sync response
244
+
245
+ constructor(slidingSync, client, opts, syncOpts) {
246
+ this.slidingSync = slidingSync;
247
+ this.client = client;
248
+ _defineProperty(this, "opts", void 0);
249
+ _defineProperty(this, "syncOpts", void 0);
250
+ _defineProperty(this, "syncState", null);
251
+ _defineProperty(this, "syncStateData", void 0);
252
+ _defineProperty(this, "lastPos", null);
253
+ _defineProperty(this, "failCount", 0);
254
+ _defineProperty(this, "notifEvents", []);
255
+ this.opts = defaultClientOpts(opts);
256
+ this.syncOpts = defaultSyncApiOpts(syncOpts);
257
+ if (client.getNotifTimelineSet()) {
258
+ client.reEmitter.reEmit(client.getNotifTimelineSet(), [RoomEvent.Timeline, RoomEvent.TimelineReset]);
259
+ }
260
+ this.slidingSync.on(SlidingSyncEvent.Lifecycle, this.onLifecycle.bind(this));
261
+ this.slidingSync.on(SlidingSyncEvent.RoomData, this.onRoomData.bind(this));
262
+ var extensions = [new ExtensionToDevice(this.client, this.syncOpts.cryptoCallbacks), new ExtensionAccountData(this.client), new ExtensionTyping(this.client), new ExtensionReceipts(this.client)];
263
+ if (this.syncOpts.cryptoCallbacks) {
264
+ extensions.push(new ExtensionE2EE(this.syncOpts.cryptoCallbacks));
265
+ }
266
+ extensions.forEach(ext => {
267
+ this.slidingSync.registerExtension(ext);
268
+ });
269
+ }
270
+ onRoomData(roomId, roomData) {
271
+ var _this8 = this;
272
+ return _asyncToGenerator(function* () {
273
+ var room = _this8.client.store.getRoom(roomId);
274
+ if (!room) {
275
+ if (!roomData.initial) {
276
+ _this8.syncOpts.logger.debug("initial flag not set but no stored room exists for room ", roomId, roomData);
277
+ return;
278
+ }
279
+ room = _createAndReEmitRoom(_this8.client, roomId, _this8.opts);
280
+ }
281
+ yield _this8.processRoomData(_this8.client, room, roomData);
282
+ })();
283
+ }
284
+ onLifecycle(state, resp, err) {
285
+ if (err) {
286
+ this.syncOpts.logger.debug("onLifecycle", state, err);
287
+ }
288
+ switch (state) {
289
+ case SlidingSyncState.Complete:
290
+ this.purgeNotifications();
291
+ if (!resp) {
292
+ break;
293
+ }
294
+ // Element won't stop showing the initial loading spinner unless we fire SyncState.Prepared
295
+ if (!this.lastPos) {
296
+ this.updateSyncState(SyncState.Prepared, {
297
+ oldSyncToken: undefined,
298
+ nextSyncToken: resp.pos,
299
+ catchingUp: false,
300
+ fromCache: false
301
+ });
302
+ }
303
+ // Conversely, Element won't show the room list unless there is at least 1x SyncState.Syncing
304
+ // so hence for the very first sync we will fire prepared then immediately syncing.
305
+ this.updateSyncState(SyncState.Syncing, {
306
+ oldSyncToken: this.lastPos,
307
+ nextSyncToken: resp.pos,
308
+ catchingUp: false,
309
+ fromCache: false
310
+ });
311
+ this.lastPos = resp.pos;
312
+ break;
313
+ case SlidingSyncState.RequestFinished:
314
+ if (err) {
315
+ this.failCount += 1;
316
+ this.updateSyncState(this.failCount > FAILED_SYNC_ERROR_THRESHOLD ? SyncState.Error : SyncState.Reconnecting, {
317
+ error: new BriijError(err)
318
+ });
319
+ if (this.shouldAbortSync(new BriijError(err))) {
320
+ return; // shouldAbortSync actually stops syncing too so we don't need to do anything.
321
+ }
322
+ } else {
323
+ this.failCount = 0;
324
+ this.syncOpts.logger.debug("SlidingSyncState.RequestFinished with ".concat(Object.keys((resp === null || resp === void 0 ? void 0 : resp.rooms) || []).length, " rooms"));
325
+ }
326
+ break;
327
+ }
328
+ }
329
+
330
+ /**
331
+ * Sync rooms the user has left.
332
+ * @returns Resolved when they've been added to the store.
333
+ */
334
+ syncLeftRooms() {
335
+ return _asyncToGenerator(function* () {
336
+ return []; // TODO
337
+ })();
338
+ }
339
+
340
+ /**
341
+ * Peek into a room. This will result in the room in question being synced so it
342
+ * is accessible via getRooms(). Live updates for the room will be provided.
343
+ * @param roomId - The room ID to peek into.
344
+ * @returns A promise which resolves once the room has been added to the
345
+ * store.
346
+ */
347
+ peek(roomId) {
348
+ return _asyncToGenerator(function* () {
349
+ return null; // TODO
350
+ })();
351
+ }
352
+
353
+ /**
354
+ * Stop polling for updates in the peeked room. NOPs if there is no room being
355
+ * peeked.
356
+ */
357
+ stopPeeking() {
358
+ // TODO
359
+ }
360
+
361
+ /**
362
+ * Specify the set_presence value to be used for subsequent calls to the Sync API.
363
+ * @param presence - the presence to specify to set_presence of sync calls
364
+ */
365
+ setPresence(presence) {
366
+ // TODO not possible in sliding sync yet
367
+ }
368
+
369
+ /**
370
+ * Returns the current state of this sync object
371
+ * @see BriijClient#event:"sync"
372
+ */
373
+ getSyncState() {
374
+ return this.syncState;
375
+ }
376
+
377
+ /**
378
+ * Returns the additional data object associated with
379
+ * the current sync state, or null if there is no
380
+ * such data.
381
+ * Sync errors, if available, are put in the 'error' key of
382
+ * this object.
383
+ */
384
+ getSyncStateData() {
385
+ var _this$syncStateData;
386
+ return (_this$syncStateData = this.syncStateData) !== null && _this$syncStateData !== void 0 ? _this$syncStateData : null;
387
+ }
388
+
389
+ // Helper functions which set up JS SDK structs are below and are identical to the sync v2 counterparts
390
+
391
+ createRoom(roomId) {
392
+ // XXX cargoculted from sync.ts
393
+ var {
394
+ timelineSupport
395
+ } = this.client;
396
+ var room = new Room(roomId, this.client, this.client.getUserId(), {
397
+ lazyLoadMembers: this.opts.lazyLoadMembers,
398
+ pendingEventOrdering: this.opts.pendingEventOrdering,
399
+ timelineSupport
400
+ });
401
+ this.client.reEmitter.reEmit(room, [RoomEvent.Name, RoomEvent.Redaction, RoomEvent.RedactionCancelled, RoomEvent.Receipt, RoomEvent.Tags, RoomEvent.LocalEchoUpdated, RoomEvent.AccountData, RoomEvent.MyMembership, RoomEvent.Timeline, RoomEvent.TimelineReset]);
402
+ this.registerStateListeners(room);
403
+ return room;
404
+ }
405
+ registerStateListeners(room) {
406
+ // XXX cargoculted from sync.ts
407
+ // we need to also re-emit room state and room member events, so hook it up
408
+ // to the client now. We need to add a listener for RoomState.members in
409
+ // order to hook them correctly.
410
+ this.client.reEmitter.reEmit(room.currentState, [RoomStateEvent.Events, RoomStateEvent.Members, RoomStateEvent.NewMember, RoomStateEvent.Update]);
411
+ room.currentState.on(RoomStateEvent.NewMember, (event, state, member) => {
412
+ var _this$client$getUser;
413
+ member.user = (_this$client$getUser = this.client.getUser(member.userId)) !== null && _this$client$getUser !== void 0 ? _this$client$getUser : undefined;
414
+ this.client.reEmitter.reEmit(member, [RoomMemberEvent.Name, RoomMemberEvent.Typing, RoomMemberEvent.PowerLevel, RoomMemberEvent.Membership]);
415
+ });
416
+ }
417
+
418
+ /*
419
+ private deregisterStateListeners(room: Room): void { // XXX cargoculted from sync.ts
420
+ // could do with a better way of achieving this.
421
+ room.currentState.removeAllListeners(RoomStateEvent.Events);
422
+ room.currentState.removeAllListeners(RoomStateEvent.Members);
423
+ room.currentState.removeAllListeners(RoomStateEvent.NewMember);
424
+ } */
425
+
426
+ shouldAbortSync(error) {
427
+ if (error.errcode === "M_UNKNOWN_TOKEN") {
428
+ // The logout already happened, we just need to stop.
429
+ this.syncOpts.logger.warn("Token no longer valid - assuming logout");
430
+ this.stop();
431
+ this.updateSyncState(SyncState.Error, {
432
+ error
433
+ });
434
+ return true;
435
+ }
436
+ return false;
437
+ }
438
+ processRoomData(client, room, roomData) {
439
+ var _this9 = this;
440
+ return _asyncToGenerator(function* () {
441
+ roomData = ensureNameEvent(client, room.roomId, roomData);
442
+ var stateEvents = mapEvents(_this9.client, room.roomId, roomData.required_state);
443
+ // Prevent events from being decrypted ahead of time
444
+ // this helps large account to speed up faster
445
+ // room::decryptCriticalEvent is in charge of decrypting all the events
446
+ // required for a client to function properly
447
+ var timelineEvents = mapEvents(_this9.client, room.roomId, roomData.timeline, false);
448
+ var ephemeralEvents = []; // TODO this.mapSyncEventsFormat(joinObj.ephemeral);
449
+
450
+ // TODO: handle threaded / beacon events
451
+
452
+ if (roomData.limited || roomData.initial) {
453
+ // we should not know about any of these timeline entries if this is a genuinely new room.
454
+ // If we do, then we've effectively done scrollback (e.g requesting timeline_limit: 1 for
455
+ // this room, then timeline_limit: 50).
456
+ var knownEvents = new Set();
457
+ room.getLiveTimeline().getEvents().forEach(e => {
458
+ knownEvents.add(e.getId());
459
+ });
460
+ // all unknown events BEFORE a known event must be scrollback e.g:
461
+ // D E <-- what we know
462
+ // A B C D E F <-- what we just received
463
+ // means:
464
+ // A B C <-- scrollback
465
+ // D E <-- dupes
466
+ // F <-- new event
467
+ // We bucket events based on if we have seen a known event yet.
468
+ var oldEvents = [];
469
+ var newEvents = [];
470
+ var seenKnownEvent = false;
471
+ for (var i = timelineEvents.length - 1; i >= 0; i--) {
472
+ var recvEvent = timelineEvents[i];
473
+ if (knownEvents.has(recvEvent.getId())) {
474
+ seenKnownEvent = true;
475
+ continue; // don't include this event, it's a dupe
476
+ }
477
+ if (seenKnownEvent) {
478
+ // old -> new
479
+ oldEvents.push(recvEvent);
480
+ } else {
481
+ // old -> new
482
+ newEvents.unshift(recvEvent);
483
+ }
484
+ }
485
+ timelineEvents = newEvents;
486
+ if (oldEvents.length > 0) {
487
+ // old events are scrollback, insert them now
488
+ room.addEventsToTimeline(oldEvents, true, false, room.getLiveTimeline(), roomData.prev_batch);
489
+ }
490
+ }
491
+ var encrypted = room.hasEncryptionStateEvent();
492
+ // we do this first so it's correct when any of the events fire
493
+ if (roomData.notification_count != null) {
494
+ room.setUnreadNotificationCount(NotificationCountType.Total, roomData.notification_count);
495
+ }
496
+ if (roomData.highlight_count != null) {
497
+ // We track unread notifications ourselves in encrypted rooms, so don't
498
+ // bother setting it here. We trust our calculations better than the
499
+ // server's for this case, and therefore will assume that our non-zero
500
+ // count is accurate.
501
+ if (!encrypted || encrypted && room.getUnreadNotificationCount(NotificationCountType.Highlight) <= 0) {
502
+ room.setUnreadNotificationCount(NotificationCountType.Highlight, roomData.highlight_count);
503
+ }
504
+ }
505
+ if (roomData.bump_stamp) {
506
+ room.setBumpStamp(roomData.bump_stamp);
507
+ }
508
+ if (Number.isInteger(roomData.invited_count)) {
509
+ room.currentState.setInvitedMemberCount(roomData.invited_count);
510
+ }
511
+ if (Number.isInteger(roomData.joined_count)) {
512
+ room.currentState.setJoinedMemberCount(roomData.joined_count);
513
+ }
514
+ if (roomData.invite_state) {
515
+ var inviteStateEvents = mapEvents(_this9.client, room.roomId, roomData.invite_state);
516
+ yield _this9.injectRoomEvents(room, inviteStateEvents);
517
+ if (roomData.initial) {
518
+ room.recalculate();
519
+ _this9.client.store.storeRoom(room);
520
+ _this9.client.emit(ClientEvent.Room, room);
521
+ }
522
+ inviteStateEvents.forEach(e => {
523
+ _this9.client.emit(ClientEvent.Event, e);
524
+ });
525
+ return;
526
+ }
527
+ if (roomData.limited) {
528
+ var _roomData$prev_batch;
529
+ // set the back-pagination token. Do this *before* adding any
530
+ // events so that clients can start back-paginating.
531
+ room.getLiveTimeline().setPaginationToken((_roomData$prev_batch = roomData.prev_batch) !== null && _roomData$prev_batch !== void 0 ? _roomData$prev_batch : null, EventTimeline.BACKWARDS);
532
+ }
533
+
534
+ /* TODO
535
+ else if (roomData.limited) {
536
+ let limited = true;
537
+ // we've got a limited sync, so we *probably* have a gap in the
538
+ // timeline, so should reset. But we might have been peeking or
539
+ // paginating and already have some of the events, in which
540
+ // case we just want to append any subsequent events to the end
541
+ // of the existing timeline.
542
+ //
543
+ // This is particularly important in the case that we already have
544
+ // *all* of the events in the timeline - in that case, if we reset
545
+ // the timeline, we'll end up with an entirely empty timeline,
546
+ // which we'll try to paginate but not get any new events (which
547
+ // will stop us linking the empty timeline into the chain).
548
+ //
549
+ for (let i = timelineEvents.length - 1; i >= 0; i--) {
550
+ const eventId = timelineEvents[i].getId();
551
+ if (room.getTimelineForEvent(eventId)) {
552
+ this.syncOpts.logger.debug("Already have event " + eventId + " in limited " +
553
+ "sync - not resetting");
554
+ limited = false;
555
+ // we might still be missing some of the events before i;
556
+ // we don't want to be adding them to the end of the
557
+ // timeline because that would put them out of order.
558
+ timelineEvents.splice(0, i);
559
+ // XXX: there's a problem here if the skipped part of the
560
+ // timeline modifies the state set in stateEvents, because
561
+ // we'll end up using the state from stateEvents rather
562
+ // than the later state from timelineEvents. We probably
563
+ // need to wind stateEvents forward over the events we're
564
+ // skipping.
565
+ break;
566
+ }
567
+ }
568
+ if (limited) {
569
+ room.resetLiveTimeline(
570
+ roomData.prev_batch,
571
+ null, // TODO this.syncOpts.canResetEntireTimeline(room.roomId) ? null : syncEventData.oldSyncToken,
572
+ );
573
+ // We have to assume any gap in any timeline is
574
+ // reason to stop incrementally tracking notifications and
575
+ // reset the timeline.
576
+ this.client.resetNotifTimelineSet();
577
+ this.registerStateListeners(room);
578
+ }
579
+ } */
580
+
581
+ yield _this9.injectRoomEvents(room, stateEvents, timelineEvents, roomData.num_live);
582
+
583
+ // we deliberately don't add ephemeral events to the timeline
584
+ room.addEphemeralEvents(ephemeralEvents);
585
+
586
+ // local fields must be set before any async calls because call site assumes
587
+ // synchronous execution prior to emitting SlidingSyncState.Complete
588
+ room.updateMyMembership(KnownMembership.Join);
589
+ room.setMSC4186SummaryData(roomData.heroes, roomData.joined_count, roomData.invited_count);
590
+ room.recalculate();
591
+ if (roomData.initial) {
592
+ client.store.storeRoom(room);
593
+ client.emit(ClientEvent.Room, room);
594
+ }
595
+
596
+ // check if any timeline events should bing and add them to the notifEvents array:
597
+ // we'll purge this once we've fully processed the sync response
598
+ _this9.addNotifications(timelineEvents);
599
+ var processRoomEvent = /*#__PURE__*/function () {
600
+ var _ref = _asyncToGenerator(function* (e) {
601
+ client.emit(ClientEvent.Event, e);
602
+ if (e.isState() && e.getType() == EventType.RoomEncryption && _this9.syncOpts.cryptoCallbacks) {
603
+ yield _this9.syncOpts.cryptoCallbacks.onCryptoEvent(room, e);
604
+ }
605
+ });
606
+ return function processRoomEvent(_x) {
607
+ return _ref.apply(this, arguments);
608
+ };
609
+ }();
610
+ yield promiseMapSeries(stateEvents, processRoomEvent);
611
+ yield promiseMapSeries(timelineEvents, processRoomEvent);
612
+ ephemeralEvents.forEach(function (e) {
613
+ client.emit(ClientEvent.Event, e);
614
+ });
615
+
616
+ // Decrypt only the last message in all rooms to make sure we can generate a preview
617
+ // And decrypt all events after the recorded read receipt to ensure an accurate
618
+ // notification count
619
+ room.decryptCriticalEvents();
620
+ })();
621
+ }
622
+
623
+ /**
624
+ * Injects events into a room's model.
625
+ * @param stateEventList - A list of state events. This is the state
626
+ * at the *END* of the timeline list if it is supplied.
627
+ * @param timelineEventList - A list of timeline events. Lower index
628
+ * is earlier in time. Higher index is later.
629
+ * @param numLive - the number of events in timelineEventList which just happened,
630
+ * supplied from the server.
631
+ */
632
+ injectRoomEvents(room, stateEventList) {
633
+ var _arguments = arguments,
634
+ _this0 = this;
635
+ return _asyncToGenerator(function* () {
636
+ var timelineEventList = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : [];
637
+ var numLive = _arguments.length > 3 && _arguments[3] !== undefined ? _arguments[3] : 0;
638
+ // If there are no events in the timeline yet, initialise it with
639
+ // the given state events
640
+ var liveTimeline = room.getLiveTimeline();
641
+ var timelineWasEmpty = liveTimeline.getEvents().length == 0;
642
+ if (timelineWasEmpty) {
643
+ // Passing these events into initialiseState will freeze them, so we need
644
+ // to compute and cache the push actions for them now, otherwise sync dies
645
+ // with an attempt to assign to read only property.
646
+ // XXX: This is pretty horrible and is assuming all sorts of behaviour from
647
+ // these functions that it shouldn't be. We should probably either store the
648
+ // push actions cache elsewhere so we can freeze BriijEvents, or otherwise
649
+ // find some solution where BriijEvents are immutable but allow for a cache
650
+ // field.
651
+ for (var ev of stateEventList) {
652
+ _this0.client.getPushActionsForEvent(ev);
653
+ }
654
+ liveTimeline.initialiseState(stateEventList);
655
+ }
656
+
657
+ // If the timeline wasn't empty, we process the state events here: they're
658
+ // defined as updates to the state before the start of the timeline, so this
659
+ // starts to roll the state forward.
660
+ // XXX: That's what we *should* do, but this can happen if we were previously
661
+ // peeking in a room, in which case we obviously do *not* want to add the
662
+ // state events here onto the end of the timeline. Historically, the js-sdk
663
+ // has just set these new state events on the old and new state. This seems
664
+ // very wrong because there could be events in the timeline that diverge the
665
+ // state, in which case this is going to leave things out of sync. However,
666
+ // for now I think it;s best to behave the same as the code has done previously.
667
+ if (!timelineWasEmpty) {
668
+ // XXX: As above, don't do this...
669
+ //room.addLiveEvents(stateEventList || []);
670
+ // Do this instead...
671
+ room.oldState.setStateEvents(stateEventList);
672
+ room.currentState.setStateEvents(stateEventList);
673
+ }
674
+
675
+ // the timeline is broken into 'live' events which just happened and normal timeline events
676
+ // which are still to be appended to the end of the live timeline but happened a while ago.
677
+ // The live events are marked as fromCache=false to ensure that downstream components know
678
+ // this is a live event, not historical (from a remote server cache).
679
+
680
+ var liveTimelineEvents = [];
681
+ if (numLive > 0) {
682
+ // last numLive events are live
683
+ liveTimelineEvents = timelineEventList.slice(-1 * numLive);
684
+ // everything else is not live
685
+ timelineEventList = timelineEventList.slice(0, -1 * liveTimelineEvents.length);
686
+ }
687
+
688
+ // Execute the timeline events.
689
+ // This also needs to be done before running push rules on the events as they need
690
+ // to be decorated with sender etc.
691
+ yield room.addLiveEvents(timelineEventList, {
692
+ fromCache: true,
693
+ addToState: false
694
+ });
695
+ if (liveTimelineEvents.length > 0) {
696
+ yield room.addLiveEvents(liveTimelineEvents, {
697
+ fromCache: false,
698
+ addToState: false
699
+ });
700
+ }
701
+ room.recalculate();
702
+
703
+ // resolve invites now we have set the latest state
704
+ _this0.resolveInvites(room);
705
+ })();
706
+ }
707
+ resolveInvites(room) {
708
+ if (!room || !this.opts.resolveInvitesToProfiles) {
709
+ return;
710
+ }
711
+ var client = this.client;
712
+ // For each invited room member we want to give them a displayname/avatar url
713
+ // if they have one (the m.room.member invites don't contain this).
714
+ room.getMembersWithMembership(KnownMembership.Invite).forEach(function (member) {
715
+ if (member.requestedProfileInfo) return;
716
+ member.requestedProfileInfo = true;
717
+ // try to get a cached copy first.
718
+ var user = client.getUser(member.userId);
719
+ var promise;
720
+ if (user) {
721
+ promise = Promise.resolve({
722
+ avatar_url: user.avatarUrl,
723
+ displayname: user.displayName
724
+ });
725
+ } else {
726
+ promise = client.getProfileInfo(member.userId);
727
+ }
728
+ promise.then(function (info) {
729
+ // slightly naughty by doctoring the invite event but this means all
730
+ // the code paths remain the same between invite/join display name stuff
731
+ // which is a worthy trade-off for some minor pollution.
732
+ var inviteEvent = member.events.member;
733
+ if (inviteEvent.getContent().membership !== KnownMembership.Invite) {
734
+ // between resolving and now they have since joined, so don't clobber
735
+ return;
736
+ }
737
+ inviteEvent.getContent().avatar_url = info.avatar_url;
738
+ inviteEvent.getContent().displayname = info.displayname;
739
+ // fire listeners
740
+ member.setMembershipEvent(inviteEvent, room.currentState);
741
+ }, function (_err) {
742
+ // OH WELL.
743
+ });
744
+ });
745
+ }
746
+ retryImmediately() {
747
+ return true;
748
+ }
749
+
750
+ /**
751
+ * Main entry point. Blocks until stop() is called.
752
+ */
753
+ sync() {
754
+ var _this1 = this;
755
+ return _asyncToGenerator(function* () {
756
+ _this1.syncOpts.logger.debug("Sliding sync init loop");
757
+
758
+ // 1) We need to get push rules so we can check if events should bing as we get
759
+ // them from /sync.
760
+ while (!_this1.client.isGuest()) {
761
+ try {
762
+ _this1.syncOpts.logger.debug("Getting push rules...");
763
+ var result = yield _this1.client.getPushRules();
764
+ _this1.syncOpts.logger.debug("Got push rules");
765
+ _this1.client.pushRules = result;
766
+ break;
767
+ } catch (err) {
768
+ _this1.syncOpts.logger.error("Getting push rules failed", err);
769
+ if (_this1.shouldAbortSync(err)) {
770
+ return;
771
+ }
772
+ }
773
+ }
774
+
775
+ // start syncing
776
+ yield _this1.slidingSync.start();
777
+ })();
778
+ }
779
+
780
+ /**
781
+ * Stops the sync object from syncing.
782
+ */
783
+ stop() {
784
+ this.syncOpts.logger.debug("SyncApi.stop");
785
+ this.slidingSync.stop();
786
+ }
787
+
788
+ /**
789
+ * Sets the sync state and emits an event to say so
790
+ * @param newState - The new state string
791
+ * @param data - Object of additional data to emit in the event
792
+ */
793
+ updateSyncState(newState, data) {
794
+ var old = this.syncState;
795
+ this.syncState = newState;
796
+ this.syncStateData = data;
797
+ this.client.emit(ClientEvent.Sync, this.syncState, old, data);
798
+ }
799
+
800
+ /**
801
+ * Takes a list of timelineEvents and adds and adds to notifEvents
802
+ * as appropriate.
803
+ * This must be called after the room the events belong to has been stored.
804
+ *
805
+ * @param timelineEventList - A list of timeline events. Lower index
806
+ * is earlier in time. Higher index is later.
807
+ */
808
+ addNotifications(timelineEventList) {
809
+ // gather our notifications into this.notifEvents
810
+ if (!this.client.getNotifTimelineSet()) {
811
+ return;
812
+ }
813
+ for (var timelineEvent of timelineEventList) {
814
+ var pushActions = this.client.getPushActionsForEvent(timelineEvent);
815
+ if (pushActions && pushActions.notify && pushActions.tweaks && pushActions.tweaks.highlight) {
816
+ this.notifEvents.push(timelineEvent);
817
+ }
818
+ }
819
+ }
820
+
821
+ /**
822
+ * Purge any events in the notifEvents array. Used after a /sync has been complete.
823
+ * This should not be called at a per-room scope (e.g in onRoomData) because otherwise the ordering
824
+ * will be messed up e.g room A gets a bing, room B gets a newer bing, but both in the same /sync
825
+ * response. If we purge at a per-room scope then we could process room B before room A leading to
826
+ * room B appearing earlier in the notifications timeline, even though it has the higher origin_server_ts.
827
+ */
828
+ purgeNotifications() {
829
+ this.notifEvents.sort(function (a, b) {
830
+ return a.getTs() - b.getTs();
831
+ });
832
+ this.notifEvents.forEach(event => {
833
+ var _this$client$getNotif;
834
+ (_this$client$getNotif = this.client.getNotifTimelineSet()) === null || _this$client$getNotif === void 0 || _this$client$getNotif.addLiveEvent(event, {
835
+ addToState: false
836
+ });
837
+ });
838
+ this.notifEvents = [];
839
+ }
840
+ }
841
+ function ensureNameEvent(client, roomId, roomData) {
842
+ // make sure m.room.name is in required_state if there is a name, replacing anything previously
843
+ // there if need be. This ensures clients transparently 'calculate' the right room name. Native
844
+ // sliding sync clients should just read the "name" field.
845
+ if (!roomData.name) {
846
+ return roomData;
847
+ }
848
+ for (var stateEvent of roomData.required_state) {
849
+ if (stateEvent.type === EventType.RoomName && stateEvent.state_key === "") {
850
+ stateEvent.content = {
851
+ name: roomData.name
852
+ };
853
+ return roomData;
854
+ }
855
+ }
856
+ roomData.required_state.push({
857
+ event_id: "$fake-sliding-sync-name-event-" + roomId,
858
+ state_key: "",
859
+ type: EventType.RoomName,
860
+ content: {
861
+ name: roomData.name
862
+ },
863
+ sender: client.getUserId(),
864
+ origin_server_ts: new Date().getTime()
865
+ });
866
+ return roomData;
867
+ }
868
+ // Helper functions which set up JS SDK structs are below and are identical to the sync v2 counterparts,
869
+ // just outside the class.
870
+ function mapEvents(client, roomId, events) {
871
+ var decrypt = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
872
+ var mapper = client.getEventMapper({
873
+ decrypt
874
+ });
875
+ return events.map(function (e) {
876
+ e.room_id = roomId;
877
+ return mapper(e);
878
+ });
879
+ }
880
+ function processEphemeralEvents(client, roomId, ephEvents) {
881
+ var ephemeralEvents = mapEvents(client, roomId, ephEvents);
882
+ var room = client.getRoom(roomId);
883
+ if (!room) {
884
+ logger.warn("got ephemeral events for room but room doesn't exist on client:", roomId);
885
+ return;
886
+ }
887
+ room.addEphemeralEvents(ephemeralEvents);
888
+ ephemeralEvents.forEach(e => {
889
+ client.emit(ClientEvent.Event, e);
890
+ });
891
+ }
892
+ //# sourceMappingURL=sliding-sync-sdk.js.map