@unwanted/matrix-sdk-mini 34.12.0-1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1203) hide show
  1. package/CHANGELOG.md +5910 -0
  2. package/LICENSE +177 -0
  3. package/README.md +459 -0
  4. package/git-revision.txt +1 -0
  5. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +14 -0
  6. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +1 -0
  7. package/lib/@types/AESEncryptedSecretStoragePayload.js +1 -0
  8. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +1 -0
  9. package/lib/@types/IIdentityServerProvider.d.ts +9 -0
  10. package/lib/@types/IIdentityServerProvider.d.ts.map +1 -0
  11. package/lib/@types/IIdentityServerProvider.js +1 -0
  12. package/lib/@types/IIdentityServerProvider.js.map +1 -0
  13. package/lib/@types/PushRules.d.ts +140 -0
  14. package/lib/@types/PushRules.d.ts.map +1 -0
  15. package/lib/@types/PushRules.js +94 -0
  16. package/lib/@types/PushRules.js.map +1 -0
  17. package/lib/@types/another-json.d.js +0 -0
  18. package/lib/@types/another-json.d.js.map +1 -0
  19. package/lib/@types/auth.d.ts +208 -0
  20. package/lib/@types/auth.d.ts.map +1 -0
  21. package/lib/@types/auth.js +99 -0
  22. package/lib/@types/auth.js.map +1 -0
  23. package/lib/@types/beacon.d.ts +106 -0
  24. package/lib/@types/beacon.d.ts.map +1 -0
  25. package/lib/@types/beacon.js +119 -0
  26. package/lib/@types/beacon.js.map +1 -0
  27. package/lib/@types/common.d.ts +9 -0
  28. package/lib/@types/common.d.ts.map +1 -0
  29. package/lib/@types/common.js +1 -0
  30. package/lib/@types/common.js.map +1 -0
  31. package/lib/@types/crypto.d.ts +47 -0
  32. package/lib/@types/crypto.d.ts.map +1 -0
  33. package/lib/@types/crypto.js +1 -0
  34. package/lib/@types/crypto.js.map +1 -0
  35. package/lib/@types/event.d.ts +258 -0
  36. package/lib/@types/event.d.ts.map +1 -0
  37. package/lib/@types/event.js +239 -0
  38. package/lib/@types/event.js.map +1 -0
  39. package/lib/@types/events.d.ts +92 -0
  40. package/lib/@types/events.d.ts.map +1 -0
  41. package/lib/@types/events.js +1 -0
  42. package/lib/@types/events.js.map +1 -0
  43. package/lib/@types/extensible_events.d.ts +98 -0
  44. package/lib/@types/extensible_events.d.ts.map +1 -0
  45. package/lib/@types/extensible_events.js +116 -0
  46. package/lib/@types/extensible_events.js.map +1 -0
  47. package/lib/@types/global.d.js +20 -0
  48. package/lib/@types/global.d.js.map +1 -0
  49. package/lib/@types/local_notifications.d.ts +4 -0
  50. package/lib/@types/local_notifications.d.ts.map +1 -0
  51. package/lib/@types/local_notifications.js +1 -0
  52. package/lib/@types/local_notifications.js.map +1 -0
  53. package/lib/@types/location.d.ts +60 -0
  54. package/lib/@types/location.d.ts.map +1 -0
  55. package/lib/@types/location.js +67 -0
  56. package/lib/@types/location.js.map +1 -0
  57. package/lib/@types/matrix-sdk-crypto-wasm.d.js +1 -0
  58. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +1 -0
  59. package/lib/@types/media.d.ts +220 -0
  60. package/lib/@types/media.d.ts.map +1 -0
  61. package/lib/@types/media.js +1 -0
  62. package/lib/@types/media.js.map +1 -0
  63. package/lib/@types/membership.d.ts +41 -0
  64. package/lib/@types/membership.d.ts.map +1 -0
  65. package/lib/@types/membership.js +37 -0
  66. package/lib/@types/membership.js.map +1 -0
  67. package/lib/@types/oidc-client-ts.d.js +18 -0
  68. package/lib/@types/oidc-client-ts.d.js.map +1 -0
  69. package/lib/@types/partials.d.ts +39 -0
  70. package/lib/@types/partials.d.ts.map +1 -0
  71. package/lib/@types/partials.js +53 -0
  72. package/lib/@types/partials.js.map +1 -0
  73. package/lib/@types/polls.d.ts +88 -0
  74. package/lib/@types/polls.d.ts.map +1 -0
  75. package/lib/@types/polls.js +86 -0
  76. package/lib/@types/polls.js.map +1 -0
  77. package/lib/@types/read_receipts.d.ts +36 -0
  78. package/lib/@types/read_receipts.d.ts.map +1 -0
  79. package/lib/@types/read_receipts.js +27 -0
  80. package/lib/@types/read_receipts.js.map +1 -0
  81. package/lib/@types/registration.d.ts +85 -0
  82. package/lib/@types/registration.d.ts.map +1 -0
  83. package/lib/@types/registration.js +1 -0
  84. package/lib/@types/registration.js.map +1 -0
  85. package/lib/@types/requests.d.ts +241 -0
  86. package/lib/@types/requests.d.ts.map +1 -0
  87. package/lib/@types/requests.js +28 -0
  88. package/lib/@types/requests.js.map +1 -0
  89. package/lib/@types/search.d.ts +90 -0
  90. package/lib/@types/search.d.ts.map +1 -0
  91. package/lib/@types/search.js +30 -0
  92. package/lib/@types/search.js.map +1 -0
  93. package/lib/@types/signed.d.ts +9 -0
  94. package/lib/@types/signed.d.ts.map +1 -0
  95. package/lib/@types/signed.js +1 -0
  96. package/lib/@types/signed.js.map +1 -0
  97. package/lib/@types/spaces.d.ts +16 -0
  98. package/lib/@types/spaces.d.ts.map +1 -0
  99. package/lib/@types/spaces.js +1 -0
  100. package/lib/@types/spaces.js.map +1 -0
  101. package/lib/@types/state_events.d.ts +116 -0
  102. package/lib/@types/state_events.d.ts.map +1 -0
  103. package/lib/@types/state_events.js +1 -0
  104. package/lib/@types/state_events.js.map +1 -0
  105. package/lib/@types/synapse.d.ts +19 -0
  106. package/lib/@types/synapse.d.ts.map +1 -0
  107. package/lib/@types/synapse.js +1 -0
  108. package/lib/@types/synapse.js.map +1 -0
  109. package/lib/@types/sync.d.ts +8 -0
  110. package/lib/@types/sync.d.ts.map +1 -0
  111. package/lib/@types/sync.js +25 -0
  112. package/lib/@types/sync.js.map +1 -0
  113. package/lib/@types/threepids.d.ts +12 -0
  114. package/lib/@types/threepids.d.ts.map +1 -0
  115. package/lib/@types/threepids.js +24 -0
  116. package/lib/@types/threepids.js.map +1 -0
  117. package/lib/@types/topic.d.ts +48 -0
  118. package/lib/@types/topic.d.ts.map +1 -0
  119. package/lib/@types/topic.js +57 -0
  120. package/lib/@types/topic.js.map +1 -0
  121. package/lib/@types/uia.d.ts +12 -0
  122. package/lib/@types/uia.d.ts.map +1 -0
  123. package/lib/@types/uia.js +1 -0
  124. package/lib/@types/uia.js.map +1 -0
  125. package/lib/NamespacedValue.d.ts +33 -0
  126. package/lib/NamespacedValue.d.ts.map +1 -0
  127. package/lib/NamespacedValue.js +113 -0
  128. package/lib/NamespacedValue.js.map +1 -0
  129. package/lib/ReEmitter.d.ts +15 -0
  130. package/lib/ReEmitter.d.ts.map +1 -0
  131. package/lib/ReEmitter.js +87 -0
  132. package/lib/ReEmitter.js.map +1 -0
  133. package/lib/ToDeviceMessageQueue.d.ts +28 -0
  134. package/lib/ToDeviceMessageQueue.d.ts.map +1 -0
  135. package/lib/ToDeviceMessageQueue.js +135 -0
  136. package/lib/ToDeviceMessageQueue.js.map +1 -0
  137. package/lib/autodiscovery.d.ts +136 -0
  138. package/lib/autodiscovery.d.ts.map +1 -0
  139. package/lib/autodiscovery.js +464 -0
  140. package/lib/autodiscovery.js.map +1 -0
  141. package/lib/base64.d.ts +28 -0
  142. package/lib/base64.d.ts.map +1 -0
  143. package/lib/base64.js +88 -0
  144. package/lib/base64.js.map +1 -0
  145. package/lib/browser-index.d.ts +8 -0
  146. package/lib/browser-index.d.ts.map +1 -0
  147. package/lib/browser-index.js +35 -0
  148. package/lib/browser-index.js.map +1 -0
  149. package/lib/client.d.ts +4232 -0
  150. package/lib/client.d.ts.map +1 -0
  151. package/lib/client.js +8622 -0
  152. package/lib/client.js.map +1 -0
  153. package/lib/common-crypto/CryptoBackend.d.ts +240 -0
  154. package/lib/common-crypto/CryptoBackend.d.ts.map +1 -0
  155. package/lib/common-crypto/CryptoBackend.js +73 -0
  156. package/lib/common-crypto/CryptoBackend.js.map +1 -0
  157. package/lib/common-crypto/key-passphrase.d.ts +14 -0
  158. package/lib/common-crypto/key-passphrase.d.ts.map +1 -0
  159. package/lib/common-crypto/key-passphrase.js +33 -0
  160. package/lib/common-crypto/key-passphrase.js.map +1 -0
  161. package/lib/content-helpers.d.ts +90 -0
  162. package/lib/content-helpers.d.ts.map +1 -0
  163. package/lib/content-helpers.js +250 -0
  164. package/lib/content-helpers.js.map +1 -0
  165. package/lib/content-repo.d.ts +24 -0
  166. package/lib/content-repo.d.ts.map +1 -0
  167. package/lib/content-repo.js +104 -0
  168. package/lib/content-repo.js.map +1 -0
  169. package/lib/crypto/CrossSigning.d.ts +184 -0
  170. package/lib/crypto/CrossSigning.d.ts.map +1 -0
  171. package/lib/crypto/CrossSigning.js +718 -0
  172. package/lib/crypto/CrossSigning.js.map +1 -0
  173. package/lib/crypto/DeviceList.d.ts +216 -0
  174. package/lib/crypto/DeviceList.d.ts.map +1 -0
  175. package/lib/crypto/DeviceList.js +892 -0
  176. package/lib/crypto/DeviceList.js.map +1 -0
  177. package/lib/crypto/EncryptionSetup.d.ts +152 -0
  178. package/lib/crypto/EncryptionSetup.d.ts.map +1 -0
  179. package/lib/crypto/EncryptionSetup.js +356 -0
  180. package/lib/crypto/EncryptionSetup.js.map +1 -0
  181. package/lib/crypto/OlmDevice.d.ts +457 -0
  182. package/lib/crypto/OlmDevice.d.ts.map +1 -0
  183. package/lib/crypto/OlmDevice.js +1241 -0
  184. package/lib/crypto/OlmDevice.js.map +1 -0
  185. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +109 -0
  186. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +1 -0
  187. package/lib/crypto/OutgoingRoomKeyRequestManager.js +415 -0
  188. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +1 -0
  189. package/lib/crypto/RoomList.d.ts +26 -0
  190. package/lib/crypto/RoomList.d.ts.map +1 -0
  191. package/lib/crypto/RoomList.js +71 -0
  192. package/lib/crypto/RoomList.js.map +1 -0
  193. package/lib/crypto/SecretSharing.d.ts +24 -0
  194. package/lib/crypto/SecretSharing.d.ts.map +1 -0
  195. package/lib/crypto/SecretSharing.js +194 -0
  196. package/lib/crypto/SecretSharing.js.map +1 -0
  197. package/lib/crypto/SecretStorage.d.ts +55 -0
  198. package/lib/crypto/SecretStorage.d.ts.map +1 -0
  199. package/lib/crypto/SecretStorage.js +118 -0
  200. package/lib/crypto/SecretStorage.js.map +1 -0
  201. package/lib/crypto/aes.d.ts +6 -0
  202. package/lib/crypto/aes.d.ts.map +1 -0
  203. package/lib/crypto/aes.js +24 -0
  204. package/lib/crypto/aes.js.map +1 -0
  205. package/lib/crypto/algorithms/base.d.ts +156 -0
  206. package/lib/crypto/algorithms/base.d.ts.map +1 -0
  207. package/lib/crypto/algorithms/base.js +187 -0
  208. package/lib/crypto/algorithms/base.js.map +1 -0
  209. package/lib/crypto/algorithms/index.d.ts +4 -0
  210. package/lib/crypto/algorithms/index.d.ts.map +1 -0
  211. package/lib/crypto/algorithms/index.js +20 -0
  212. package/lib/crypto/algorithms/index.js.map +1 -0
  213. package/lib/crypto/algorithms/megolm.d.ts +385 -0
  214. package/lib/crypto/algorithms/megolm.d.ts.map +1 -0
  215. package/lib/crypto/algorithms/megolm.js +1822 -0
  216. package/lib/crypto/algorithms/megolm.js.map +1 -0
  217. package/lib/crypto/algorithms/olm.d.ts +5 -0
  218. package/lib/crypto/algorithms/olm.d.ts.map +1 -0
  219. package/lib/crypto/algorithms/olm.js +299 -0
  220. package/lib/crypto/algorithms/olm.js.map +1 -0
  221. package/lib/crypto/api.d.ts +32 -0
  222. package/lib/crypto/api.d.ts.map +1 -0
  223. package/lib/crypto/api.js +22 -0
  224. package/lib/crypto/api.js.map +1 -0
  225. package/lib/crypto/backup.d.ts +227 -0
  226. package/lib/crypto/backup.d.ts.map +1 -0
  227. package/lib/crypto/backup.js +824 -0
  228. package/lib/crypto/backup.js.map +1 -0
  229. package/lib/crypto/crypto.d.ts +3 -0
  230. package/lib/crypto/crypto.d.ts.map +1 -0
  231. package/lib/crypto/crypto.js +19 -0
  232. package/lib/crypto/crypto.js.map +1 -0
  233. package/lib/crypto/dehydration.d.ts +34 -0
  234. package/lib/crypto/dehydration.d.ts.map +1 -0
  235. package/lib/crypto/dehydration.js +252 -0
  236. package/lib/crypto/dehydration.js.map +1 -0
  237. package/lib/crypto/device-converter.d.ts +9 -0
  238. package/lib/crypto/device-converter.d.ts.map +1 -0
  239. package/lib/crypto/device-converter.js +42 -0
  240. package/lib/crypto/device-converter.js.map +1 -0
  241. package/lib/crypto/deviceinfo.d.ts +99 -0
  242. package/lib/crypto/deviceinfo.d.ts.map +1 -0
  243. package/lib/crypto/deviceinfo.js +148 -0
  244. package/lib/crypto/deviceinfo.js.map +1 -0
  245. package/lib/crypto/index.d.ts +1209 -0
  246. package/lib/crypto/index.d.ts.map +1 -0
  247. package/lib/crypto/index.js +4097 -0
  248. package/lib/crypto/index.js.map +1 -0
  249. package/lib/crypto/key_passphrase.d.ts +14 -0
  250. package/lib/crypto/key_passphrase.d.ts.map +1 -0
  251. package/lib/crypto/key_passphrase.js +44 -0
  252. package/lib/crypto/key_passphrase.js.map +1 -0
  253. package/lib/crypto/keybackup.d.ts +18 -0
  254. package/lib/crypto/keybackup.d.ts.map +1 -0
  255. package/lib/crypto/keybackup.js +1 -0
  256. package/lib/crypto/keybackup.js.map +1 -0
  257. package/lib/crypto/olmlib.d.ts +129 -0
  258. package/lib/crypto/olmlib.d.ts.map +1 -0
  259. package/lib/crypto/olmlib.js +492 -0
  260. package/lib/crypto/olmlib.js.map +1 -0
  261. package/lib/crypto/recoverykey.d.ts +2 -0
  262. package/lib/crypto/recoverykey.d.ts.map +1 -0
  263. package/lib/crypto/recoverykey.js +19 -0
  264. package/lib/crypto/recoverykey.js.map +1 -0
  265. package/lib/crypto/store/base.d.ts +252 -0
  266. package/lib/crypto/store/base.d.ts.map +1 -0
  267. package/lib/crypto/store/base.js +64 -0
  268. package/lib/crypto/store/base.js.map +1 -0
  269. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +187 -0
  270. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +1 -0
  271. package/lib/crypto/store/indexeddb-crypto-store-backend.js +1145 -0
  272. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -0
  273. package/lib/crypto/store/indexeddb-crypto-store.d.ts +432 -0
  274. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +1 -0
  275. package/lib/crypto/store/indexeddb-crypto-store.js +728 -0
  276. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -0
  277. package/lib/crypto/store/localStorage-crypto-store.d.ts +119 -0
  278. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +1 -0
  279. package/lib/crypto/store/localStorage-crypto-store.js +531 -0
  280. package/lib/crypto/store/localStorage-crypto-store.js.map +1 -0
  281. package/lib/crypto/store/memory-crypto-store.d.ts +215 -0
  282. package/lib/crypto/store/memory-crypto-store.d.ts.map +1 -0
  283. package/lib/crypto/store/memory-crypto-store.js +622 -0
  284. package/lib/crypto/store/memory-crypto-store.js.map +1 -0
  285. package/lib/crypto/verification/Base.d.ts +105 -0
  286. package/lib/crypto/verification/Base.d.ts.map +1 -0
  287. package/lib/crypto/verification/Base.js +372 -0
  288. package/lib/crypto/verification/Base.js.map +1 -0
  289. package/lib/crypto/verification/Error.d.ts +35 -0
  290. package/lib/crypto/verification/Error.d.ts.map +1 -0
  291. package/lib/crypto/verification/Error.js +86 -0
  292. package/lib/crypto/verification/Error.js.map +1 -0
  293. package/lib/crypto/verification/IllegalMethod.d.ts +15 -0
  294. package/lib/crypto/verification/IllegalMethod.d.ts.map +1 -0
  295. package/lib/crypto/verification/IllegalMethod.js +43 -0
  296. package/lib/crypto/verification/IllegalMethod.js.map +1 -0
  297. package/lib/crypto/verification/QRCode.d.ts +51 -0
  298. package/lib/crypto/verification/QRCode.d.ts.map +1 -0
  299. package/lib/crypto/verification/QRCode.js +277 -0
  300. package/lib/crypto/verification/QRCode.js.map +1 -0
  301. package/lib/crypto/verification/SAS.d.ts +27 -0
  302. package/lib/crypto/verification/SAS.d.ts.map +1 -0
  303. package/lib/crypto/verification/SAS.js +485 -0
  304. package/lib/crypto/verification/SAS.js.map +1 -0
  305. package/lib/crypto/verification/SASDecimal.d.ts +8 -0
  306. package/lib/crypto/verification/SASDecimal.d.ts.map +1 -0
  307. package/lib/crypto/verification/SASDecimal.js +34 -0
  308. package/lib/crypto/verification/SASDecimal.js.map +1 -0
  309. package/lib/crypto/verification/request/Channel.d.ts +18 -0
  310. package/lib/crypto/verification/request/Channel.d.ts.map +1 -0
  311. package/lib/crypto/verification/request/Channel.js +1 -0
  312. package/lib/crypto/verification/request/Channel.js.map +1 -0
  313. package/lib/crypto/verification/request/InRoomChannel.d.ts +113 -0
  314. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +1 -0
  315. package/lib/crypto/verification/request/InRoomChannel.js +351 -0
  316. package/lib/crypto/verification/request/InRoomChannel.js.map +1 -0
  317. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +105 -0
  318. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +1 -0
  319. package/lib/crypto/verification/request/ToDeviceChannel.js +328 -0
  320. package/lib/crypto/verification/request/ToDeviceChannel.js.map +1 -0
  321. package/lib/crypto/verification/request/VerificationRequest.d.ts +227 -0
  322. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +1 -0
  323. package/lib/crypto/verification/request/VerificationRequest.js +937 -0
  324. package/lib/crypto/verification/request/VerificationRequest.js.map +1 -0
  325. package/lib/crypto-api/CryptoEvent.d.ts +69 -0
  326. package/lib/crypto-api/CryptoEvent.d.ts.map +1 -0
  327. package/lib/crypto-api/CryptoEvent.js +33 -0
  328. package/lib/crypto-api/CryptoEvent.js.map +1 -0
  329. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +16 -0
  330. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +1 -0
  331. package/lib/crypto-api/CryptoEventHandlerMap.js +22 -0
  332. package/lib/crypto-api/CryptoEventHandlerMap.js.map +1 -0
  333. package/lib/crypto-api/index.d.ts +978 -0
  334. package/lib/crypto-api/index.d.ts.map +1 -0
  335. package/lib/crypto-api/index.js +304 -0
  336. package/lib/crypto-api/index.js.map +1 -0
  337. package/lib/crypto-api/key-passphrase.d.ts +11 -0
  338. package/lib/crypto-api/key-passphrase.d.ts.map +1 -0
  339. package/lib/crypto-api/key-passphrase.js +51 -0
  340. package/lib/crypto-api/key-passphrase.js.map +1 -0
  341. package/lib/crypto-api/keybackup.d.ts +88 -0
  342. package/lib/crypto-api/keybackup.d.ts.map +1 -0
  343. package/lib/crypto-api/keybackup.js +1 -0
  344. package/lib/crypto-api/keybackup.js.map +1 -0
  345. package/lib/crypto-api/recovery-key.d.ts +11 -0
  346. package/lib/crypto-api/recovery-key.d.ts.map +1 -0
  347. package/lib/crypto-api/recovery-key.js +65 -0
  348. package/lib/crypto-api/recovery-key.js.map +1 -0
  349. package/lib/crypto-api/verification.d.ts +344 -0
  350. package/lib/crypto-api/verification.d.ts.map +1 -0
  351. package/lib/crypto-api/verification.js +91 -0
  352. package/lib/crypto-api/verification.js.map +1 -0
  353. package/lib/digest.d.ts +10 -0
  354. package/lib/digest.d.ts.map +1 -0
  355. package/lib/digest.js +40 -0
  356. package/lib/digest.js.map +1 -0
  357. package/lib/embedded.d.ts +143 -0
  358. package/lib/embedded.d.ts.map +1 -0
  359. package/lib/embedded.js +567 -0
  360. package/lib/embedded.js.map +1 -0
  361. package/lib/errors.d.ts +24 -0
  362. package/lib/errors.d.ts.map +1 -0
  363. package/lib/errors.js +51 -0
  364. package/lib/errors.js.map +1 -0
  365. package/lib/event-mapper.d.ts +10 -0
  366. package/lib/event-mapper.d.ts.map +1 -0
  367. package/lib/event-mapper.js +81 -0
  368. package/lib/event-mapper.js.map +1 -0
  369. package/lib/extensible_events_v1/ExtensibleEvent.d.ts +38 -0
  370. package/lib/extensible_events_v1/ExtensibleEvent.d.ts.map +1 -0
  371. package/lib/extensible_events_v1/ExtensibleEvent.js +57 -0
  372. package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -0
  373. package/lib/extensible_events_v1/InvalidEventError.d.ts +7 -0
  374. package/lib/extensible_events_v1/InvalidEventError.d.ts.map +1 -0
  375. package/lib/extensible_events_v1/InvalidEventError.js +25 -0
  376. package/lib/extensible_events_v1/InvalidEventError.js.map +1 -0
  377. package/lib/extensible_events_v1/MessageEvent.d.ts +45 -0
  378. package/lib/extensible_events_v1/MessageEvent.d.ts.map +1 -0
  379. package/lib/extensible_events_v1/MessageEvent.js +134 -0
  380. package/lib/extensible_events_v1/MessageEvent.js.map +1 -0
  381. package/lib/extensible_events_v1/PollEndEvent.d.ts +33 -0
  382. package/lib/extensible_events_v1/PollEndEvent.d.ts.map +1 -0
  383. package/lib/extensible_events_v1/PollEndEvent.js +88 -0
  384. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -0
  385. package/lib/extensible_events_v1/PollResponseEvent.d.ts +49 -0
  386. package/lib/extensible_events_v1/PollResponseEvent.d.ts.map +1 -0
  387. package/lib/extensible_events_v1/PollResponseEvent.js +135 -0
  388. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -0
  389. package/lib/extensible_events_v1/PollStartEvent.d.ts +71 -0
  390. package/lib/extensible_events_v1/PollStartEvent.d.ts.map +1 -0
  391. package/lib/extensible_events_v1/PollStartEvent.js +185 -0
  392. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -0
  393. package/lib/extensible_events_v1/utilities.d.ts +14 -0
  394. package/lib/extensible_events_v1/utilities.d.ts.map +1 -0
  395. package/lib/extensible_events_v1/utilities.js +34 -0
  396. package/lib/extensible_events_v1/utilities.js.map +1 -0
  397. package/lib/feature.d.ts +20 -0
  398. package/lib/feature.d.ts.map +1 -0
  399. package/lib/feature.js +85 -0
  400. package/lib/feature.js.map +1 -0
  401. package/lib/filter-component.d.ts +64 -0
  402. package/lib/filter-component.d.ts.map +1 -0
  403. package/lib/filter-component.js +167 -0
  404. package/lib/filter-component.js.map +1 -0
  405. package/lib/filter.d.ts +97 -0
  406. package/lib/filter.d.ts.map +1 -0
  407. package/lib/filter.js +207 -0
  408. package/lib/filter.js.map +1 -0
  409. package/lib/http-api/errors.d.ts +80 -0
  410. package/lib/http-api/errors.d.ts.map +1 -0
  411. package/lib/http-api/errors.js +185 -0
  412. package/lib/http-api/errors.js.map +1 -0
  413. package/lib/http-api/fetch.d.ts +114 -0
  414. package/lib/http-api/fetch.d.ts.map +1 -0
  415. package/lib/http-api/fetch.js +346 -0
  416. package/lib/http-api/fetch.js.map +1 -0
  417. package/lib/http-api/index.d.ts +33 -0
  418. package/lib/http-api/index.d.ts.map +1 -0
  419. package/lib/http-api/index.js +180 -0
  420. package/lib/http-api/index.js.map +1 -0
  421. package/lib/http-api/interface.d.ts +142 -0
  422. package/lib/http-api/interface.d.ts.map +1 -0
  423. package/lib/http-api/interface.js +35 -0
  424. package/lib/http-api/interface.js.map +1 -0
  425. package/lib/http-api/method.d.ts +10 -0
  426. package/lib/http-api/method.d.ts.map +1 -0
  427. package/lib/http-api/method.js +27 -0
  428. package/lib/http-api/method.js.map +1 -0
  429. package/lib/http-api/prefix.d.ts +31 -0
  430. package/lib/http-api/prefix.d.ts.map +1 -0
  431. package/lib/http-api/prefix.js +32 -0
  432. package/lib/http-api/prefix.js.map +1 -0
  433. package/lib/http-api/utils.d.ts +37 -0
  434. package/lib/http-api/utils.d.ts.map +1 -0
  435. package/lib/http-api/utils.js +178 -0
  436. package/lib/http-api/utils.js.map +1 -0
  437. package/lib/index.d.ts +4 -0
  438. package/lib/index.d.ts.map +1 -0
  439. package/lib/index.js +24 -0
  440. package/lib/index.js.map +1 -0
  441. package/lib/indexeddb-helpers.d.ts +10 -0
  442. package/lib/indexeddb-helpers.d.ts.map +1 -0
  443. package/lib/indexeddb-helpers.js +51 -0
  444. package/lib/indexeddb-helpers.js.map +1 -0
  445. package/lib/indexeddb-worker.d.ts +7 -0
  446. package/lib/indexeddb-worker.d.ts.map +1 -0
  447. package/lib/indexeddb-worker.js +25 -0
  448. package/lib/indexeddb-worker.js.map +1 -0
  449. package/lib/interactive-auth.d.ts +337 -0
  450. package/lib/interactive-auth.d.ts.map +1 -0
  451. package/lib/interactive-auth.js +557 -0
  452. package/lib/interactive-auth.js.map +1 -0
  453. package/lib/logger.d.ts +81 -0
  454. package/lib/logger.d.ts.map +1 -0
  455. package/lib/logger.js +139 -0
  456. package/lib/logger.js.map +1 -0
  457. package/lib/matrix.d.ts +118 -0
  458. package/lib/matrix.d.ts.map +1 -0
  459. package/lib/matrix.js +146 -0
  460. package/lib/matrix.js.map +1 -0
  461. package/lib/matrixrtc/CallMembership.d.ts +66 -0
  462. package/lib/matrixrtc/CallMembership.d.ts.map +1 -0
  463. package/lib/matrixrtc/CallMembership.js +197 -0
  464. package/lib/matrixrtc/CallMembership.js.map +1 -0
  465. package/lib/matrixrtc/LivekitFocus.d.ts +16 -0
  466. package/lib/matrixrtc/LivekitFocus.d.ts.map +1 -0
  467. package/lib/matrixrtc/LivekitFocus.js +20 -0
  468. package/lib/matrixrtc/LivekitFocus.js.map +1 -0
  469. package/lib/matrixrtc/MatrixRTCSession.d.ts +295 -0
  470. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -0
  471. package/lib/matrixrtc/MatrixRTCSession.js +1043 -0
  472. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -0
  473. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +40 -0
  474. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +1 -0
  475. package/lib/matrixrtc/MatrixRTCSessionManager.js +146 -0
  476. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -0
  477. package/lib/matrixrtc/focus.d.ts +10 -0
  478. package/lib/matrixrtc/focus.d.ts.map +1 -0
  479. package/lib/matrixrtc/focus.js +1 -0
  480. package/lib/matrixrtc/focus.js.map +1 -0
  481. package/lib/matrixrtc/index.d.ts +7 -0
  482. package/lib/matrixrtc/index.d.ts.map +1 -0
  483. package/lib/matrixrtc/index.js +21 -0
  484. package/lib/matrixrtc/index.js.map +1 -0
  485. package/lib/matrixrtc/types.d.ts +19 -0
  486. package/lib/matrixrtc/types.d.ts.map +1 -0
  487. package/lib/matrixrtc/types.js +1 -0
  488. package/lib/matrixrtc/types.js.map +1 -0
  489. package/lib/models/MSC3089Branch.d.ts +98 -0
  490. package/lib/models/MSC3089Branch.d.ts.map +1 -0
  491. package/lib/models/MSC3089Branch.js +240 -0
  492. package/lib/models/MSC3089Branch.js.map +1 -0
  493. package/lib/models/MSC3089TreeSpace.d.ts +165 -0
  494. package/lib/models/MSC3089TreeSpace.d.ts.map +1 -0
  495. package/lib/models/MSC3089TreeSpace.js +520 -0
  496. package/lib/models/MSC3089TreeSpace.js.map +1 -0
  497. package/lib/models/ToDeviceMessage.d.ts +17 -0
  498. package/lib/models/ToDeviceMessage.d.ts.map +1 -0
  499. package/lib/models/ToDeviceMessage.js +1 -0
  500. package/lib/models/ToDeviceMessage.js.map +1 -0
  501. package/lib/models/beacon.d.ts +53 -0
  502. package/lib/models/beacon.d.ts.map +1 -0
  503. package/lib/models/beacon.js +174 -0
  504. package/lib/models/beacon.js.map +1 -0
  505. package/lib/models/compare-event-ordering.d.ts +24 -0
  506. package/lib/models/compare-event-ordering.d.ts.map +1 -0
  507. package/lib/models/compare-event-ordering.js +120 -0
  508. package/lib/models/compare-event-ordering.js.map +1 -0
  509. package/lib/models/device.d.ts +45 -0
  510. package/lib/models/device.d.ts.map +1 -0
  511. package/lib/models/device.js +77 -0
  512. package/lib/models/device.js.map +1 -0
  513. package/lib/models/event-context.d.ts +62 -0
  514. package/lib/models/event-context.d.ts.map +1 -0
  515. package/lib/models/event-context.js +113 -0
  516. package/lib/models/event-context.js.map +1 -0
  517. package/lib/models/event-status.d.ts +19 -0
  518. package/lib/models/event-status.d.ts.map +1 -0
  519. package/lib/models/event-status.js +30 -0
  520. package/lib/models/event-status.js.map +1 -0
  521. package/lib/models/event-timeline-set.d.ts +312 -0
  522. package/lib/models/event-timeline-set.d.ts.map +1 -0
  523. package/lib/models/event-timeline-set.js +813 -0
  524. package/lib/models/event-timeline-set.js.map +1 -0
  525. package/lib/models/event-timeline.d.ts +219 -0
  526. package/lib/models/event-timeline.d.ts.map +1 -0
  527. package/lib/models/event-timeline.js +455 -0
  528. package/lib/models/event-timeline.js.map +1 -0
  529. package/lib/models/event.d.ts +811 -0
  530. package/lib/models/event.d.ts.map +1 -0
  531. package/lib/models/event.js +1520 -0
  532. package/lib/models/event.js.map +1 -0
  533. package/lib/models/invites-ignorer.d.ts +136 -0
  534. package/lib/models/invites-ignorer.d.ts.map +1 -0
  535. package/lib/models/invites-ignorer.js +382 -0
  536. package/lib/models/invites-ignorer.js.map +1 -0
  537. package/lib/models/poll.d.ts +67 -0
  538. package/lib/models/poll.d.ts.map +1 -0
  539. package/lib/models/poll.js +241 -0
  540. package/lib/models/poll.js.map +1 -0
  541. package/lib/models/profile-keys.d.ts +8 -0
  542. package/lib/models/profile-keys.d.ts.map +1 -0
  543. package/lib/models/profile-keys.js +8 -0
  544. package/lib/models/profile-keys.js.map +1 -0
  545. package/lib/models/read-receipt.d.ts +115 -0
  546. package/lib/models/read-receipt.d.ts.map +1 -0
  547. package/lib/models/read-receipt.js +366 -0
  548. package/lib/models/read-receipt.js.map +1 -0
  549. package/lib/models/related-relations.d.ts +11 -0
  550. package/lib/models/related-relations.d.ts.map +1 -0
  551. package/lib/models/related-relations.js +33 -0
  552. package/lib/models/related-relations.js.map +1 -0
  553. package/lib/models/relations-container.d.ts +44 -0
  554. package/lib/models/relations-container.d.ts.map +1 -0
  555. package/lib/models/relations-container.js +132 -0
  556. package/lib/models/relations-container.js.map +1 -0
  557. package/lib/models/relations.d.ts +114 -0
  558. package/lib/models/relations.d.ts.map +1 -0
  559. package/lib/models/relations.js +354 -0
  560. package/lib/models/relations.js.map +1 -0
  561. package/lib/models/room-member.d.ts +204 -0
  562. package/lib/models/room-member.d.ts.map +1 -0
  563. package/lib/models/room-member.js +360 -0
  564. package/lib/models/room-member.js.map +1 -0
  565. package/lib/models/room-receipts.d.ts +39 -0
  566. package/lib/models/room-receipts.d.ts.map +1 -0
  567. package/lib/models/room-receipts.js +392 -0
  568. package/lib/models/room-receipts.js.map +1 -0
  569. package/lib/models/room-state.d.ts +468 -0
  570. package/lib/models/room-state.d.ts.map +1 -0
  571. package/lib/models/room-state.js +984 -0
  572. package/lib/models/room-state.js.map +1 -0
  573. package/lib/models/room-summary.d.ts +29 -0
  574. package/lib/models/room-summary.d.ts.map +1 -0
  575. package/lib/models/room-summary.js +28 -0
  576. package/lib/models/room-summary.js.map +1 -0
  577. package/lib/models/room.d.ts +1203 -0
  578. package/lib/models/room.d.ts.map +1 -0
  579. package/lib/models/room.js +3336 -0
  580. package/lib/models/room.js.map +1 -0
  581. package/lib/models/search-result.d.ts +20 -0
  582. package/lib/models/search-result.d.ts.map +1 -0
  583. package/lib/models/search-result.js +52 -0
  584. package/lib/models/search-result.js.map +1 -0
  585. package/lib/models/thread.d.ts +246 -0
  586. package/lib/models/thread.d.ts.map +1 -0
  587. package/lib/models/thread.js +861 -0
  588. package/lib/models/thread.js.map +1 -0
  589. package/lib/models/typed-event-emitter.d.ts +157 -0
  590. package/lib/models/typed-event-emitter.d.ts.map +1 -0
  591. package/lib/models/typed-event-emitter.js +227 -0
  592. package/lib/models/typed-event-emitter.js.map +1 -0
  593. package/lib/models/user.d.ts +195 -0
  594. package/lib/models/user.d.ts.map +1 -0
  595. package/lib/models/user.js +218 -0
  596. package/lib/models/user.js.map +1 -0
  597. package/lib/oidc/authorize.d.ts +90 -0
  598. package/lib/oidc/authorize.d.ts.map +1 -0
  599. package/lib/oidc/authorize.js +278 -0
  600. package/lib/oidc/authorize.js.map +1 -0
  601. package/lib/oidc/discovery.d.ts +14 -0
  602. package/lib/oidc/discovery.d.ts.map +1 -0
  603. package/lib/oidc/discovery.js +66 -0
  604. package/lib/oidc/discovery.js.map +1 -0
  605. package/lib/oidc/error.d.ts +18 -0
  606. package/lib/oidc/error.d.ts.map +1 -0
  607. package/lib/oidc/error.js +35 -0
  608. package/lib/oidc/error.js.map +1 -0
  609. package/lib/oidc/index.d.ts +17 -0
  610. package/lib/oidc/index.d.ts.map +1 -0
  611. package/lib/oidc/index.js +29 -0
  612. package/lib/oidc/index.js.map +1 -0
  613. package/lib/oidc/register.d.ts +43 -0
  614. package/lib/oidc/register.d.ts.map +1 -0
  615. package/lib/oidc/register.js +96 -0
  616. package/lib/oidc/register.js.map +1 -0
  617. package/lib/oidc/tokenRefresher.d.ts +69 -0
  618. package/lib/oidc/tokenRefresher.d.ts.map +1 -0
  619. package/lib/oidc/tokenRefresher.js +148 -0
  620. package/lib/oidc/tokenRefresher.js.map +1 -0
  621. package/lib/oidc/validate.d.ts +90 -0
  622. package/lib/oidc/validate.d.ts.map +1 -0
  623. package/lib/oidc/validate.js +194 -0
  624. package/lib/oidc/validate.js.map +1 -0
  625. package/lib/pushprocessor.d.ts +128 -0
  626. package/lib/pushprocessor.d.ts.map +1 -0
  627. package/lib/pushprocessor.js +685 -0
  628. package/lib/pushprocessor.js.map +1 -0
  629. package/lib/randomstring.d.ts +5 -0
  630. package/lib/randomstring.d.ts.map +1 -0
  631. package/lib/randomstring.js +43 -0
  632. package/lib/randomstring.js.map +1 -0
  633. package/lib/realtime-callbacks.d.ts +18 -0
  634. package/lib/realtime-callbacks.d.ts.map +1 -0
  635. package/lib/realtime-callbacks.js +177 -0
  636. package/lib/realtime-callbacks.js.map +1 -0
  637. package/lib/receipt-accumulator.d.ts +51 -0
  638. package/lib/receipt-accumulator.d.ts.map +1 -0
  639. package/lib/receipt-accumulator.js +164 -0
  640. package/lib/receipt-accumulator.js.map +1 -0
  641. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +112 -0
  642. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +1 -0
  643. package/lib/rendezvous/MSC4108SignInWithQR.js +392 -0
  644. package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -0
  645. package/lib/rendezvous/RendezvousChannel.d.ts +27 -0
  646. package/lib/rendezvous/RendezvousChannel.d.ts.map +1 -0
  647. package/lib/rendezvous/RendezvousChannel.js +1 -0
  648. package/lib/rendezvous/RendezvousChannel.js.map +1 -0
  649. package/lib/rendezvous/RendezvousCode.d.ts +9 -0
  650. package/lib/rendezvous/RendezvousCode.d.ts.map +1 -0
  651. package/lib/rendezvous/RendezvousCode.js +1 -0
  652. package/lib/rendezvous/RendezvousCode.js.map +1 -0
  653. package/lib/rendezvous/RendezvousError.d.ts +6 -0
  654. package/lib/rendezvous/RendezvousError.d.ts.map +1 -0
  655. package/lib/rendezvous/RendezvousError.js +23 -0
  656. package/lib/rendezvous/RendezvousError.js.map +1 -0
  657. package/lib/rendezvous/RendezvousFailureReason.d.ts +31 -0
  658. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +1 -0
  659. package/lib/rendezvous/RendezvousFailureReason.js +38 -0
  660. package/lib/rendezvous/RendezvousFailureReason.js.map +1 -0
  661. package/lib/rendezvous/RendezvousIntent.d.ts +5 -0
  662. package/lib/rendezvous/RendezvousIntent.d.ts.map +1 -0
  663. package/lib/rendezvous/RendezvousIntent.js +22 -0
  664. package/lib/rendezvous/RendezvousIntent.js.map +1 -0
  665. package/lib/rendezvous/RendezvousTransport.d.ts +36 -0
  666. package/lib/rendezvous/RendezvousTransport.d.ts.map +1 -0
  667. package/lib/rendezvous/RendezvousTransport.js +1 -0
  668. package/lib/rendezvous/RendezvousTransport.js.map +1 -0
  669. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +58 -0
  670. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +1 -0
  671. package/lib/rendezvous/channels/MSC4108SecureChannel.js +246 -0
  672. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -0
  673. package/lib/rendezvous/channels/index.d.ts +2 -0
  674. package/lib/rendezvous/channels/index.d.ts.map +1 -0
  675. package/lib/rendezvous/channels/index.js +18 -0
  676. package/lib/rendezvous/channels/index.js.map +1 -0
  677. package/lib/rendezvous/index.d.ts +10 -0
  678. package/lib/rendezvous/index.d.ts.map +1 -0
  679. package/lib/rendezvous/index.js +23 -0
  680. package/lib/rendezvous/index.js.map +1 -0
  681. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +61 -0
  682. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +1 -0
  683. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +253 -0
  684. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -0
  685. package/lib/rendezvous/transports/index.d.ts +2 -0
  686. package/lib/rendezvous/transports/index.d.ts.map +1 -0
  687. package/lib/rendezvous/transports/index.js +18 -0
  688. package/lib/rendezvous/transports/index.js.map +1 -0
  689. package/lib/room-hierarchy.d.ts +35 -0
  690. package/lib/room-hierarchy.d.ts.map +1 -0
  691. package/lib/room-hierarchy.js +136 -0
  692. package/lib/room-hierarchy.js.map +1 -0
  693. package/lib/rust-crypto/CrossSigningIdentity.d.ts +33 -0
  694. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +1 -0
  695. package/lib/rust-crypto/CrossSigningIdentity.js +157 -0
  696. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -0
  697. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +98 -0
  698. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +1 -0
  699. package/lib/rust-crypto/DehydratedDeviceManager.js +285 -0
  700. package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -0
  701. package/lib/rust-crypto/KeyClaimManager.d.ts +33 -0
  702. package/lib/rust-crypto/KeyClaimManager.d.ts.map +1 -0
  703. package/lib/rust-crypto/KeyClaimManager.js +82 -0
  704. package/lib/rust-crypto/KeyClaimManager.js.map +1 -0
  705. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +43 -0
  706. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +1 -0
  707. package/lib/rust-crypto/OutgoingRequestProcessor.js +195 -0
  708. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -0
  709. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +47 -0
  710. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +1 -0
  711. package/lib/rust-crypto/OutgoingRequestsManager.js +148 -0
  712. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -0
  713. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +120 -0
  714. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +1 -0
  715. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +467 -0
  716. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -0
  717. package/lib/rust-crypto/RoomEncryptor.d.ts +98 -0
  718. package/lib/rust-crypto/RoomEncryptor.d.ts.map +1 -0
  719. package/lib/rust-crypto/RoomEncryptor.js +299 -0
  720. package/lib/rust-crypto/RoomEncryptor.js.map +1 -0
  721. package/lib/rust-crypto/backup.d.ts +254 -0
  722. package/lib/rust-crypto/backup.d.ts.map +1 -0
  723. package/lib/rust-crypto/backup.js +837 -0
  724. package/lib/rust-crypto/backup.js.map +1 -0
  725. package/lib/rust-crypto/constants.d.ts +3 -0
  726. package/lib/rust-crypto/constants.d.ts.map +1 -0
  727. package/lib/rust-crypto/constants.js +19 -0
  728. package/lib/rust-crypto/constants.js.map +1 -0
  729. package/lib/rust-crypto/device-converter.d.ts +28 -0
  730. package/lib/rust-crypto/device-converter.d.ts.map +1 -0
  731. package/lib/rust-crypto/device-converter.js +123 -0
  732. package/lib/rust-crypto/device-converter.js.map +1 -0
  733. package/lib/rust-crypto/index.d.ts +61 -0
  734. package/lib/rust-crypto/index.d.ts.map +1 -0
  735. package/lib/rust-crypto/index.js +152 -0
  736. package/lib/rust-crypto/index.js.map +1 -0
  737. package/lib/rust-crypto/libolm_migration.d.ts +81 -0
  738. package/lib/rust-crypto/libolm_migration.d.ts.map +1 -0
  739. package/lib/rust-crypto/libolm_migration.js +459 -0
  740. package/lib/rust-crypto/libolm_migration.js.map +1 -0
  741. package/lib/rust-crypto/rust-crypto.d.ts +556 -0
  742. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -0
  743. package/lib/rust-crypto/rust-crypto.js +2016 -0
  744. package/lib/rust-crypto/rust-crypto.js.map +1 -0
  745. package/lib/rust-crypto/secret-storage.d.ts +22 -0
  746. package/lib/rust-crypto/secret-storage.d.ts.map +1 -0
  747. package/lib/rust-crypto/secret-storage.js +63 -0
  748. package/lib/rust-crypto/secret-storage.js.map +1 -0
  749. package/lib/rust-crypto/verification.d.ts +319 -0
  750. package/lib/rust-crypto/verification.d.ts.map +1 -0
  751. package/lib/rust-crypto/verification.js +816 -0
  752. package/lib/rust-crypto/verification.js.map +1 -0
  753. package/lib/scheduler.d.ts +132 -0
  754. package/lib/scheduler.d.ts.map +1 -0
  755. package/lib/scheduler.js +259 -0
  756. package/lib/scheduler.js.map +1 -0
  757. package/lib/secret-storage.d.ts +370 -0
  758. package/lib/secret-storage.d.ts.map +1 -0
  759. package/lib/secret-storage.js +466 -0
  760. package/lib/secret-storage.js.map +1 -0
  761. package/lib/serverCapabilities.d.ts +72 -0
  762. package/lib/serverCapabilities.d.ts.map +1 -0
  763. package/lib/serverCapabilities.js +105 -0
  764. package/lib/serverCapabilities.js.map +1 -0
  765. package/lib/service-types.d.ts +5 -0
  766. package/lib/service-types.d.ts.map +1 -0
  767. package/lib/service-types.js +22 -0
  768. package/lib/service-types.js.map +1 -0
  769. package/lib/sliding-sync-sdk.d.ts +107 -0
  770. package/lib/sliding-sync-sdk.d.ts.map +1 -0
  771. package/lib/sliding-sync-sdk.js +903 -0
  772. package/lib/sliding-sync-sdk.js.map +1 -0
  773. package/lib/sliding-sync.d.ts +343 -0
  774. package/lib/sliding-sync.d.ts.map +1 -0
  775. package/lib/sliding-sync.js +817 -0
  776. package/lib/sliding-sync.js.map +1 -0
  777. package/lib/store/index.d.ts +201 -0
  778. package/lib/store/index.d.ts.map +1 -0
  779. package/lib/store/index.js +1 -0
  780. package/lib/store/index.js.map +1 -0
  781. package/lib/store/indexeddb-backend.d.ts +24 -0
  782. package/lib/store/indexeddb-backend.d.ts.map +1 -0
  783. package/lib/store/indexeddb-backend.js +1 -0
  784. package/lib/store/indexeddb-backend.js.map +1 -0
  785. package/lib/store/indexeddb-local-backend.d.ts +129 -0
  786. package/lib/store/indexeddb-local-backend.d.ts.map +1 -0
  787. package/lib/store/indexeddb-local-backend.js +597 -0
  788. package/lib/store/indexeddb-local-backend.js.map +1 -0
  789. package/lib/store/indexeddb-remote-backend.d.ts +79 -0
  790. package/lib/store/indexeddb-remote-backend.d.ts.map +1 -0
  791. package/lib/store/indexeddb-remote-backend.js +210 -0
  792. package/lib/store/indexeddb-remote-backend.js.map +1 -0
  793. package/lib/store/indexeddb-store-worker.d.ts +35 -0
  794. package/lib/store/indexeddb-store-worker.d.ts.map +1 -0
  795. package/lib/store/indexeddb-store-worker.js +146 -0
  796. package/lib/store/indexeddb-store-worker.js.map +1 -0
  797. package/lib/store/indexeddb.d.ts +142 -0
  798. package/lib/store/indexeddb.d.ts.map +1 -0
  799. package/lib/store/indexeddb.js +347 -0
  800. package/lib/store/indexeddb.js.map +1 -0
  801. package/lib/store/local-storage-events-emitter.d.ts +30 -0
  802. package/lib/store/local-storage-events-emitter.d.ts.map +1 -0
  803. package/lib/store/local-storage-events-emitter.js +37 -0
  804. package/lib/store/local-storage-events-emitter.js.map +1 -0
  805. package/lib/store/memory.d.ts +209 -0
  806. package/lib/store/memory.d.ts.map +1 -0
  807. package/lib/store/memory.js +432 -0
  808. package/lib/store/memory.js.map +1 -0
  809. package/lib/store/stub.d.ts +161 -0
  810. package/lib/store/stub.d.ts.map +1 -0
  811. package/lib/store/stub.js +268 -0
  812. package/lib/store/stub.js.map +1 -0
  813. package/lib/sync-accumulator.d.ts +172 -0
  814. package/lib/sync-accumulator.d.ts.map +1 -0
  815. package/lib/sync-accumulator.js +532 -0
  816. package/lib/sync-accumulator.js.map +1 -0
  817. package/lib/sync.d.ts +260 -0
  818. package/lib/sync.d.ts.map +1 -0
  819. package/lib/sync.js +1686 -0
  820. package/lib/sync.js.map +1 -0
  821. package/lib/testing.d.ts +81 -0
  822. package/lib/testing.d.ts.map +1 -0
  823. package/lib/testing.js +162 -0
  824. package/lib/testing.js.map +1 -0
  825. package/lib/thread-utils.d.ts +10 -0
  826. package/lib/thread-utils.d.ts.map +1 -0
  827. package/lib/thread-utils.js +31 -0
  828. package/lib/thread-utils.js.map +1 -0
  829. package/lib/timeline-window.d.ts +168 -0
  830. package/lib/timeline-window.d.ts.map +1 -0
  831. package/lib/timeline-window.js +494 -0
  832. package/lib/timeline-window.js.map +1 -0
  833. package/lib/types.d.ts +33 -0
  834. package/lib/types.d.ts.map +1 -0
  835. package/lib/types.js +33 -0
  836. package/lib/types.js.map +1 -0
  837. package/lib/utils/decryptAESSecretStorageItem.d.ts +12 -0
  838. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +1 -0
  839. package/lib/utils/decryptAESSecretStorageItem.js +50 -0
  840. package/lib/utils/decryptAESSecretStorageItem.js.map +1 -0
  841. package/lib/utils/encryptAESSecretStorageItem.d.ts +16 -0
  842. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +1 -0
  843. package/lib/utils/encryptAESSecretStorageItem.js +68 -0
  844. package/lib/utils/encryptAESSecretStorageItem.js.map +1 -0
  845. package/lib/utils/internal/deriveKeys.d.ts +10 -0
  846. package/lib/utils/internal/deriveKeys.d.ts.map +1 -0
  847. package/lib/utils/internal/deriveKeys.js +60 -0
  848. package/lib/utils/internal/deriveKeys.js.map +1 -0
  849. package/lib/utils.d.ts +267 -0
  850. package/lib/utils.d.ts.map +1 -0
  851. package/lib/utils.js +749 -0
  852. package/lib/utils.js.map +1 -0
  853. package/lib/version-support.d.ts +19 -0
  854. package/lib/version-support.d.ts.map +1 -0
  855. package/lib/version-support.js +37 -0
  856. package/lib/version-support.js.map +1 -0
  857. package/lib/webrtc/audioContext.d.ts +15 -0
  858. package/lib/webrtc/audioContext.d.ts.map +1 -0
  859. package/lib/webrtc/audioContext.js +46 -0
  860. package/lib/webrtc/audioContext.js.map +1 -0
  861. package/lib/webrtc/call.d.ts +560 -0
  862. package/lib/webrtc/call.d.ts.map +1 -0
  863. package/lib/webrtc/call.js +2541 -0
  864. package/lib/webrtc/call.js.map +1 -0
  865. package/lib/webrtc/callEventHandler.d.ts +37 -0
  866. package/lib/webrtc/callEventHandler.d.ts.map +1 -0
  867. package/lib/webrtc/callEventHandler.js +344 -0
  868. package/lib/webrtc/callEventHandler.js.map +1 -0
  869. package/lib/webrtc/callEventTypes.d.ts +73 -0
  870. package/lib/webrtc/callEventTypes.d.ts.map +1 -0
  871. package/lib/webrtc/callEventTypes.js +13 -0
  872. package/lib/webrtc/callEventTypes.js.map +1 -0
  873. package/lib/webrtc/callFeed.d.ts +128 -0
  874. package/lib/webrtc/callFeed.d.ts.map +1 -0
  875. package/lib/webrtc/callFeed.js +289 -0
  876. package/lib/webrtc/callFeed.js.map +1 -0
  877. package/lib/webrtc/groupCall.d.ts +323 -0
  878. package/lib/webrtc/groupCall.d.ts.map +1 -0
  879. package/lib/webrtc/groupCall.js +1337 -0
  880. package/lib/webrtc/groupCall.js.map +1 -0
  881. package/lib/webrtc/groupCallEventHandler.d.ts +31 -0
  882. package/lib/webrtc/groupCallEventHandler.d.ts.map +1 -0
  883. package/lib/webrtc/groupCallEventHandler.js +178 -0
  884. package/lib/webrtc/groupCallEventHandler.js.map +1 -0
  885. package/lib/webrtc/mediaHandler.d.ts +89 -0
  886. package/lib/webrtc/mediaHandler.d.ts.map +1 -0
  887. package/lib/webrtc/mediaHandler.js +437 -0
  888. package/lib/webrtc/mediaHandler.js.map +1 -0
  889. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +8 -0
  890. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +1 -0
  891. package/lib/webrtc/stats/callFeedStatsReporter.js +82 -0
  892. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -0
  893. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +25 -0
  894. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +1 -0
  895. package/lib/webrtc/stats/callStatsReportGatherer.js +199 -0
  896. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -0
  897. package/lib/webrtc/stats/callStatsReportSummary.d.ts +17 -0
  898. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +1 -0
  899. package/lib/webrtc/stats/callStatsReportSummary.js +1 -0
  900. package/lib/webrtc/stats/callStatsReportSummary.js.map +1 -0
  901. package/lib/webrtc/stats/connectionStats.d.ts +28 -0
  902. package/lib/webrtc/stats/connectionStats.d.ts.map +1 -0
  903. package/lib/webrtc/stats/connectionStats.js +26 -0
  904. package/lib/webrtc/stats/connectionStats.js.map +1 -0
  905. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +5 -0
  906. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +1 -0
  907. package/lib/webrtc/stats/connectionStatsBuilder.js +27 -0
  908. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -0
  909. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +7 -0
  910. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +1 -0
  911. package/lib/webrtc/stats/connectionStatsReportBuilder.js +121 -0
  912. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -0
  913. package/lib/webrtc/stats/groupCallStats.d.ts +22 -0
  914. package/lib/webrtc/stats/groupCallStats.d.ts.map +1 -0
  915. package/lib/webrtc/stats/groupCallStats.js +78 -0
  916. package/lib/webrtc/stats/groupCallStats.js.map +1 -0
  917. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +10 -0
  918. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +1 -0
  919. package/lib/webrtc/stats/media/mediaSsrcHandler.js +57 -0
  920. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -0
  921. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +12 -0
  922. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +1 -0
  923. package/lib/webrtc/stats/media/mediaTrackHandler.js +62 -0
  924. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -0
  925. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +86 -0
  926. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +1 -0
  927. package/lib/webrtc/stats/media/mediaTrackStats.js +142 -0
  928. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -0
  929. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +22 -0
  930. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +1 -0
  931. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +76 -0
  932. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -0
  933. package/lib/webrtc/stats/statsReport.d.ts +99 -0
  934. package/lib/webrtc/stats/statsReport.d.ts.map +1 -0
  935. package/lib/webrtc/stats/statsReport.js +32 -0
  936. package/lib/webrtc/stats/statsReport.js.map +1 -0
  937. package/lib/webrtc/stats/statsReportEmitter.d.ts +15 -0
  938. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +1 -0
  939. package/lib/webrtc/stats/statsReportEmitter.js +33 -0
  940. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -0
  941. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +16 -0
  942. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +1 -0
  943. package/lib/webrtc/stats/summaryStatsReportGatherer.js +116 -0
  944. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -0
  945. package/lib/webrtc/stats/trackStatsBuilder.d.ts +19 -0
  946. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +1 -0
  947. package/lib/webrtc/stats/trackStatsBuilder.js +168 -0
  948. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -0
  949. package/lib/webrtc/stats/transportStats.d.ts +11 -0
  950. package/lib/webrtc/stats/transportStats.d.ts.map +1 -0
  951. package/lib/webrtc/stats/transportStats.js +1 -0
  952. package/lib/webrtc/stats/transportStats.js.map +1 -0
  953. package/lib/webrtc/stats/transportStatsBuilder.d.ts +5 -0
  954. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +1 -0
  955. package/lib/webrtc/stats/transportStatsBuilder.js +34 -0
  956. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -0
  957. package/lib/webrtc/stats/valueFormatter.d.ts +4 -0
  958. package/lib/webrtc/stats/valueFormatter.d.ts.map +1 -0
  959. package/lib/webrtc/stats/valueFormatter.js +25 -0
  960. package/lib/webrtc/stats/valueFormatter.js.map +1 -0
  961. package/package.json +134 -0
  962. package/src/@types/AESEncryptedSecretStoragePayload.ts +29 -0
  963. package/src/@types/IIdentityServerProvider.ts +24 -0
  964. package/src/@types/PushRules.ts +209 -0
  965. package/src/@types/another-json.d.ts +19 -0
  966. package/src/@types/auth.ts +252 -0
  967. package/src/@types/beacon.ts +140 -0
  968. package/src/@types/common.ts +22 -0
  969. package/src/@types/crypto.ts +73 -0
  970. package/src/@types/event.ts +370 -0
  971. package/src/@types/events.ts +119 -0
  972. package/src/@types/extensible_events.ts +150 -0
  973. package/src/@types/global.d.ts +70 -0
  974. package/src/@types/local_notifications.ts +19 -0
  975. package/src/@types/location.ts +92 -0
  976. package/src/@types/matrix-sdk-crypto-wasm.d.ts +44 -0
  977. package/src/@types/media.ts +245 -0
  978. package/src/@types/membership.ts +57 -0
  979. package/src/@types/oidc-client-ts.d.ts +24 -0
  980. package/src/@types/partials.ts +67 -0
  981. package/src/@types/polls.ts +119 -0
  982. package/src/@types/read_receipts.ts +61 -0
  983. package/src/@types/registration.ts +102 -0
  984. package/src/@types/requests.ts +314 -0
  985. package/src/@types/search.ts +119 -0
  986. package/src/@types/signed.ts +25 -0
  987. package/src/@types/spaces.ts +37 -0
  988. package/src/@types/state_events.ts +147 -0
  989. package/src/@types/synapse.ts +40 -0
  990. package/src/@types/sync.ts +27 -0
  991. package/src/@types/threepids.ts +29 -0
  992. package/src/@types/topic.ts +63 -0
  993. package/src/@types/uia.ts +29 -0
  994. package/src/NamespacedValue.ts +123 -0
  995. package/src/ReEmitter.ts +93 -0
  996. package/src/ToDeviceMessageQueue.ts +153 -0
  997. package/src/autodiscovery.ts +505 -0
  998. package/src/base64.ts +88 -0
  999. package/src/browser-index.ts +44 -0
  1000. package/src/client.ts +10474 -0
  1001. package/src/common-crypto/CryptoBackend.ts +302 -0
  1002. package/src/common-crypto/README.md +4 -0
  1003. package/src/common-crypto/key-passphrase.ts +43 -0
  1004. package/src/content-helpers.ts +288 -0
  1005. package/src/content-repo.ts +117 -0
  1006. package/src/crypto/CrossSigning.ts +773 -0
  1007. package/src/crypto/DeviceList.ts +989 -0
  1008. package/src/crypto/EncryptionSetup.ts +351 -0
  1009. package/src/crypto/OlmDevice.ts +1500 -0
  1010. package/src/crypto/OutgoingRoomKeyRequestManager.ts +485 -0
  1011. package/src/crypto/RoomList.ts +70 -0
  1012. package/src/crypto/SecretSharing.ts +240 -0
  1013. package/src/crypto/SecretStorage.ts +136 -0
  1014. package/src/crypto/aes.ts +23 -0
  1015. package/src/crypto/algorithms/base.ts +236 -0
  1016. package/src/crypto/algorithms/index.ts +20 -0
  1017. package/src/crypto/algorithms/megolm.ts +2216 -0
  1018. package/src/crypto/algorithms/olm.ts +381 -0
  1019. package/src/crypto/api.ts +70 -0
  1020. package/src/crypto/backup.ts +922 -0
  1021. package/src/crypto/crypto.ts +18 -0
  1022. package/src/crypto/dehydration.ts +272 -0
  1023. package/src/crypto/device-converter.ts +45 -0
  1024. package/src/crypto/deviceinfo.ts +158 -0
  1025. package/src/crypto/index.ts +4414 -0
  1026. package/src/crypto/key_passphrase.ts +42 -0
  1027. package/src/crypto/keybackup.ts +47 -0
  1028. package/src/crypto/olmlib.ts +539 -0
  1029. package/src/crypto/recoverykey.ts +18 -0
  1030. package/src/crypto/store/base.ts +348 -0
  1031. package/src/crypto/store/indexeddb-crypto-store-backend.ts +1250 -0
  1032. package/src/crypto/store/indexeddb-crypto-store.ts +845 -0
  1033. package/src/crypto/store/localStorage-crypto-store.ts +579 -0
  1034. package/src/crypto/store/memory-crypto-store.ts +680 -0
  1035. package/src/crypto/verification/Base.ts +409 -0
  1036. package/src/crypto/verification/Error.ts +76 -0
  1037. package/src/crypto/verification/IllegalMethod.ts +50 -0
  1038. package/src/crypto/verification/QRCode.ts +310 -0
  1039. package/src/crypto/verification/SAS.ts +494 -0
  1040. package/src/crypto/verification/SASDecimal.ts +37 -0
  1041. package/src/crypto/verification/request/Channel.ts +34 -0
  1042. package/src/crypto/verification/request/InRoomChannel.ts +371 -0
  1043. package/src/crypto/verification/request/ToDeviceChannel.ts +354 -0
  1044. package/src/crypto/verification/request/VerificationRequest.ts +976 -0
  1045. package/src/crypto-api/CryptoEvent.ts +93 -0
  1046. package/src/crypto-api/CryptoEventHandlerMap.ts +32 -0
  1047. package/src/crypto-api/index.ts +1175 -0
  1048. package/src/crypto-api/key-passphrase.ts +58 -0
  1049. package/src/crypto-api/keybackup.ts +115 -0
  1050. package/src/crypto-api/recovery-key.ts +69 -0
  1051. package/src/crypto-api/verification.ts +408 -0
  1052. package/src/digest.ts +34 -0
  1053. package/src/embedded.ts +631 -0
  1054. package/src/errors.ts +54 -0
  1055. package/src/event-mapper.ts +97 -0
  1056. package/src/extensible_events_v1/ExtensibleEvent.ts +58 -0
  1057. package/src/extensible_events_v1/InvalidEventError.ts +24 -0
  1058. package/src/extensible_events_v1/MessageEvent.ts +145 -0
  1059. package/src/extensible_events_v1/PollEndEvent.ts +97 -0
  1060. package/src/extensible_events_v1/PollResponseEvent.ts +148 -0
  1061. package/src/extensible_events_v1/PollStartEvent.ts +207 -0
  1062. package/src/extensible_events_v1/utilities.ts +35 -0
  1063. package/src/feature.ts +87 -0
  1064. package/src/filter-component.ts +207 -0
  1065. package/src/filter.ts +245 -0
  1066. package/src/http-api/errors.ts +199 -0
  1067. package/src/http-api/fetch.ts +383 -0
  1068. package/src/http-api/index.ts +191 -0
  1069. package/src/http-api/interface.ts +178 -0
  1070. package/src/http-api/method.ts +25 -0
  1071. package/src/http-api/prefix.ts +48 -0
  1072. package/src/http-api/utils.ts +200 -0
  1073. package/src/index.ts +25 -0
  1074. package/src/indexeddb-helpers.ts +50 -0
  1075. package/src/indexeddb-worker.ts +24 -0
  1076. package/src/interactive-auth.ts +694 -0
  1077. package/src/logger.ts +185 -0
  1078. package/src/matrix.ts +177 -0
  1079. package/src/matrixrtc/CallMembership.ts +247 -0
  1080. package/src/matrixrtc/LivekitFocus.ts +39 -0
  1081. package/src/matrixrtc/MatrixRTCSession.ts +1319 -0
  1082. package/src/matrixrtc/MatrixRTCSessionManager.ts +166 -0
  1083. package/src/matrixrtc/focus.ts +25 -0
  1084. package/src/matrixrtc/index.ts +22 -0
  1085. package/src/matrixrtc/types.ts +36 -0
  1086. package/src/models/MSC3089Branch.ts +272 -0
  1087. package/src/models/MSC3089TreeSpace.ts +565 -0
  1088. package/src/models/ToDeviceMessage.ts +38 -0
  1089. package/src/models/beacon.ts +214 -0
  1090. package/src/models/compare-event-ordering.ts +139 -0
  1091. package/src/models/device.ts +85 -0
  1092. package/src/models/event-context.ts +110 -0
  1093. package/src/models/event-status.ts +39 -0
  1094. package/src/models/event-timeline-set.ts +979 -0
  1095. package/src/models/event-timeline.ts +476 -0
  1096. package/src/models/event.ts +1751 -0
  1097. package/src/models/invites-ignorer.ts +376 -0
  1098. package/src/models/poll.ts +285 -0
  1099. package/src/models/profile-keys.ts +7 -0
  1100. package/src/models/read-receipt.ts +422 -0
  1101. package/src/models/related-relations.ts +39 -0
  1102. package/src/models/relations-container.ts +149 -0
  1103. package/src/models/relations.ts +368 -0
  1104. package/src/models/room-member.ts +457 -0
  1105. package/src/models/room-receipts.ts +439 -0
  1106. package/src/models/room-state.ts +1130 -0
  1107. package/src/models/room-summary.ts +47 -0
  1108. package/src/models/room.ts +3822 -0
  1109. package/src/models/search-result.ts +57 -0
  1110. package/src/models/thread.ts +923 -0
  1111. package/src/models/typed-event-emitter.ts +246 -0
  1112. package/src/models/user.ts +302 -0
  1113. package/src/oidc/authorize.ts +274 -0
  1114. package/src/oidc/discovery.ts +60 -0
  1115. package/src/oidc/error.ts +33 -0
  1116. package/src/oidc/index.ts +34 -0
  1117. package/src/oidc/register.ts +123 -0
  1118. package/src/oidc/tokenRefresher.ts +149 -0
  1119. package/src/oidc/validate.ts +282 -0
  1120. package/src/pushprocessor.ts +837 -0
  1121. package/src/randomstring.ts +51 -0
  1122. package/src/realtime-callbacks.ts +191 -0
  1123. package/src/receipt-accumulator.ts +189 -0
  1124. package/src/rendezvous/MSC4108SignInWithQR.ts +444 -0
  1125. package/src/rendezvous/RendezvousChannel.ts +48 -0
  1126. package/src/rendezvous/RendezvousCode.ts +25 -0
  1127. package/src/rendezvous/RendezvousError.ts +26 -0
  1128. package/src/rendezvous/RendezvousFailureReason.ts +49 -0
  1129. package/src/rendezvous/RendezvousIntent.ts +20 -0
  1130. package/src/rendezvous/RendezvousTransport.ts +58 -0
  1131. package/src/rendezvous/channels/MSC4108SecureChannel.ts +270 -0
  1132. package/src/rendezvous/channels/index.ts +17 -0
  1133. package/src/rendezvous/index.ts +25 -0
  1134. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +270 -0
  1135. package/src/rendezvous/transports/index.ts +17 -0
  1136. package/src/room-hierarchy.ts +152 -0
  1137. package/src/rust-crypto/CrossSigningIdentity.ts +183 -0
  1138. package/src/rust-crypto/DehydratedDeviceManager.ts +306 -0
  1139. package/src/rust-crypto/KeyClaimManager.ts +86 -0
  1140. package/src/rust-crypto/OutgoingRequestProcessor.ts +236 -0
  1141. package/src/rust-crypto/OutgoingRequestsManager.ts +143 -0
  1142. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +501 -0
  1143. package/src/rust-crypto/RoomEncryptor.ts +352 -0
  1144. package/src/rust-crypto/backup.ts +881 -0
  1145. package/src/rust-crypto/constants.ts +18 -0
  1146. package/src/rust-crypto/device-converter.ts +128 -0
  1147. package/src/rust-crypto/index.ts +237 -0
  1148. package/src/rust-crypto/libolm_migration.ts +530 -0
  1149. package/src/rust-crypto/rust-crypto.ts +2205 -0
  1150. package/src/rust-crypto/secret-storage.ts +60 -0
  1151. package/src/rust-crypto/verification.ts +830 -0
  1152. package/src/scheduler.ts +309 -0
  1153. package/src/secret-storage.ts +693 -0
  1154. package/src/serverCapabilities.ts +139 -0
  1155. package/src/service-types.ts +20 -0
  1156. package/src/sliding-sync-sdk.ts +1026 -0
  1157. package/src/sliding-sync.ts +965 -0
  1158. package/src/store/index.ts +261 -0
  1159. package/src/store/indexeddb-backend.ts +41 -0
  1160. package/src/store/indexeddb-local-backend.ts +610 -0
  1161. package/src/store/indexeddb-remote-backend.ts +213 -0
  1162. package/src/store/indexeddb-store-worker.ts +157 -0
  1163. package/src/store/indexeddb.ts +397 -0
  1164. package/src/store/local-storage-events-emitter.ts +46 -0
  1165. package/src/store/memory.ts +448 -0
  1166. package/src/store/stub.ts +280 -0
  1167. package/src/sync-accumulator.ts +689 -0
  1168. package/src/sync.ts +1920 -0
  1169. package/src/testing.ts +191 -0
  1170. package/src/thread-utils.ts +31 -0
  1171. package/src/timeline-window.ts +536 -0
  1172. package/src/types.ts +59 -0
  1173. package/src/utils/decryptAESSecretStorageItem.ts +54 -0
  1174. package/src/utils/encryptAESSecretStorageItem.ts +73 -0
  1175. package/src/utils/internal/deriveKeys.ts +63 -0
  1176. package/src/utils.ts +763 -0
  1177. package/src/version-support.ts +36 -0
  1178. package/src/webrtc/audioContext.ts +44 -0
  1179. package/src/webrtc/call.ts +3074 -0
  1180. package/src/webrtc/callEventHandler.ts +425 -0
  1181. package/src/webrtc/callEventTypes.ts +93 -0
  1182. package/src/webrtc/callFeed.ts +364 -0
  1183. package/src/webrtc/groupCall.ts +1735 -0
  1184. package/src/webrtc/groupCallEventHandler.ts +234 -0
  1185. package/src/webrtc/mediaHandler.ts +484 -0
  1186. package/src/webrtc/stats/callFeedStatsReporter.ts +94 -0
  1187. package/src/webrtc/stats/callStatsReportGatherer.ts +219 -0
  1188. package/src/webrtc/stats/callStatsReportSummary.ts +30 -0
  1189. package/src/webrtc/stats/connectionStats.ts +47 -0
  1190. package/src/webrtc/stats/connectionStatsBuilder.ts +28 -0
  1191. package/src/webrtc/stats/connectionStatsReportBuilder.ts +140 -0
  1192. package/src/webrtc/stats/groupCallStats.ts +93 -0
  1193. package/src/webrtc/stats/media/mediaSsrcHandler.ts +57 -0
  1194. package/src/webrtc/stats/media/mediaTrackHandler.ts +76 -0
  1195. package/src/webrtc/stats/media/mediaTrackStats.ts +176 -0
  1196. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +90 -0
  1197. package/src/webrtc/stats/statsReport.ts +133 -0
  1198. package/src/webrtc/stats/statsReportEmitter.ts +49 -0
  1199. package/src/webrtc/stats/summaryStatsReportGatherer.ts +148 -0
  1200. package/src/webrtc/stats/trackStatsBuilder.ts +207 -0
  1201. package/src/webrtc/stats/transportStats.ts +26 -0
  1202. package/src/webrtc/stats/transportStatsBuilder.ts +48 -0
  1203. package/src/webrtc/stats/valueFormatter.ts +27 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-crypto-store-backend.js","names":["logger","deepCompare","MigrationState","SESSION_BATCH_SIZE","ACCOUNT_OBJECT_KEY_MIGRATION_STATE","IndexedDBCryptoStore","PROFILE_TRANSACTIONS","Backend","constructor","db","_defineProperty","onversionchange","log","concat","name","close","containsData","_asyncToGenerator","Error","startup","_this","deleteAllData","getMigrationState","_this2","migrationState","NOT_STARTED","doTxn","STORE_ACCOUNT","txn","objectStore","getReq","get","onsuccess","_getReq$result","result","setMigrationState","_this3","put","getOrAddOutgoingRoomKeyRequest","request","requestBody","Promise","resolve","reject","transaction","onerror","_getOutgoingRoomKeyRequest","existing","room_id","session_id","oncomplete","store","add","getOutgoingRoomKeyRequest","callback","idx","index","cursorReq","openCursor","cursor","value","continue","getOutgoingRoomKeyRequestByState","wantedStates","length","stateIndex","wantedState","source","promiseifyTxn","then","getAllOutgoingRoomKeyRequestsByState","getAll","error","getOutgoingRoomKeyRequestsByTarget","userId","deviceId","results","keyReq","recipients","some","recipient","push","updateOutgoingRoomKeyRequest","requestId","expectedState","updates","data","state","warn","Object","assign","update","deleteOutgoingRoomKeyRequest","delete","getAccount","func","e","abortWithException","storeAccount","accountPickle","getCrossSigningKeys","getSecretStorePrivateKey","type","storeCrossSigningKeys","keys","storeSecretStorePrivateKey","key","countEndToEndSessions","countReq","count","getEndToEndSessions","deviceKey","sessionId","session","lastReceivedMessageTs","getEndToEndSession","getAllEndToEndSessions","storeEndToEndSession","sessionInfo","storeEndToEndSessionProblem","fixed","_this4","time","Date","now","getEndToEndSessionProblem","timestamp","_this5","req","problems","sort","a","b","lastProblem","problem","filterOutNotifiedErrorDevices","devices","_this6","ret","all","map","device","deviceInfo","getEndToEndSessionsBatch","_this7","STORE_SESSIONS","deleteEndToEndSessionsBatch","sessions","_this8","_ref","_loop","_x","apply","arguments","getEndToEndInboundGroupSession","senderCurve25519Key","withheld","withheldObjectStore","withheldGetReq","getAllEndToEndInboundGroupSessions","senderKey","sessionData","addEndToEndInboundGroupSession","addReq","ev","_addReq$error","stopPropagation","preventDefault","storeEndToEndInboundGroupSession","storeEndToEndInboundGroupSessionWithheld","countEndToEndInboundGroupSessions","_this9","STORE_INBOUND_GROUP_SESSIONS","sessionStore","getEndToEndInboundGroupSessionsBatch","_this10","STORE_BACKUP","backupStore","backupGetReq","needsBackup","undefined","deleteEndToEndInboundGroupSessionsBatch","_this11","_ref2","_loop2","_x2","getEndToEndDeviceData","storeEndToEndDeviceData","deviceData","storeEndToEndRoom","roomId","roomInfo","getEndToEndRooms","rooms","getSessionsNeedingBackup","limit","sessionGetReq","countSessionsNeedingBackup","unmarkSessionsNeedingBackup","_this12","markSessionsNeedingBackup","_this13","addSharedHistoryInboundGroupSession","getSharedHistoryInboundGroupSessions","addParkedSharedHistory","parkedData","parked","takeParkedSharedHistory","mode","stores","startTime","description","txnId","nextTxnId","debug","promise","elapsedTime","DB_MIGRATIONS","createDatabase","createObjectStore","sessionsStore","keyPath","createIndex","problemsStore","VERSION","upgradeDatabase","oldVersion","forEach","migration","outgoingRoomKeyRequestsStore","_mx_abortexception","abort","_unused","event","onabort"],"sources":["../../../src/crypto/store/indexeddb-crypto-store-backend.ts"],"sourcesContent":["/*\nCopyright 2017 - 2021 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { Logger, logger } from \"../../logger.ts\";\nimport { deepCompare } from \"../../utils.ts\";\nimport {\n CryptoStore,\n IDeviceData,\n IProblem,\n ISession,\n SessionExtended,\n ISessionInfo,\n IWithheld,\n MigrationState,\n Mode,\n OutgoingRoomKeyRequest,\n ParkedSharedHistory,\n SecretStorePrivateKeys,\n SESSION_BATCH_SIZE,\n ACCOUNT_OBJECT_KEY_MIGRATION_STATE,\n} from \"./base.ts\";\nimport { IRoomKeyRequestBody, IRoomKeyRequestRecipient } from \"../index.ts\";\nimport { IOlmDevice } from \"../algorithms/megolm.ts\";\nimport { IRoomEncryption } from \"../RoomList.ts\";\nimport { InboundGroupSessionData } from \"../OlmDevice.ts\";\nimport { IndexedDBCryptoStore } from \"./indexeddb-crypto-store.ts\";\nimport { CrossSigningKeyInfo } from \"../../crypto-api/index.ts\";\n\nconst PROFILE_TRANSACTIONS = false;\n\n/**\n * Implementation of a CryptoStore which is backed by an existing\n * IndexedDB connection. Generally you want IndexedDBCryptoStore\n * which connects to the database and defers to one of these.\n *\n * @internal\n */\nexport class Backend implements CryptoStore {\n private nextTxnId = 0;\n\n /**\n */\n public constructor(private db: IDBDatabase) {\n // make sure we close the db on `onversionchange` - otherwise\n // attempts to delete the database will block (and subsequent\n // attempts to re-create it will also block).\n db.onversionchange = (): void => {\n logger.log(`versionchange for indexeddb ${this.db.name}: closing`);\n db.close();\n };\n }\n\n public async containsData(): Promise<boolean> {\n throw Error(\"Not implemented for Backend\");\n }\n\n public async startup(): Promise<CryptoStore> {\n // No work to do, as the startup is done by the caller (e.g IndexedDBCryptoStore)\n // by passing us a ready IDBDatabase instance\n return this;\n }\n\n public async deleteAllData(): Promise<void> {\n throw Error(\"This is not implemented, call IDBFactory::deleteDatabase(dbName) instead.\");\n }\n\n /**\n * Get data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.getMigrationState}.\n */\n public async getMigrationState(): Promise<MigrationState> {\n let migrationState = MigrationState.NOT_STARTED;\n await this.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);\n const getReq = objectStore.get(ACCOUNT_OBJECT_KEY_MIGRATION_STATE);\n getReq.onsuccess = (): void => {\n migrationState = getReq.result ?? MigrationState.NOT_STARTED;\n };\n });\n return migrationState;\n }\n\n /**\n * Set data on how much of the libolm to Rust Crypto migration has been done.\n *\n * Implementation of {@link CryptoStore.setMigrationState}.\n */\n public async setMigrationState(migrationState: MigrationState): Promise<void> {\n await this.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_ACCOUNT], (txn) => {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_ACCOUNT);\n objectStore.put(migrationState, ACCOUNT_OBJECT_KEY_MIGRATION_STATE);\n });\n }\n\n /**\n * Look for an existing outgoing room key request, and if none is found,\n * add a new one\n *\n *\n * @returns resolves to\n * {@link OutgoingRoomKeyRequest}: either the\n * same instance as passed in, or the existing one.\n */\n public getOrAddOutgoingRoomKeyRequest(request: OutgoingRoomKeyRequest): Promise<OutgoingRoomKeyRequest> {\n const requestBody = request.requestBody;\n\n return new Promise((resolve, reject) => {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readwrite\");\n txn.onerror = reject;\n\n // first see if we already have an entry for this request.\n this._getOutgoingRoomKeyRequest(txn, requestBody, (existing) => {\n if (existing) {\n // this entry matches the request - return it.\n logger.log(\n `already have key request outstanding for ` +\n `${requestBody.room_id} / ${requestBody.session_id}: ` +\n `not sending another`,\n );\n resolve(existing);\n return;\n }\n\n // we got to the end of the list without finding a match\n // - add the new request.\n logger.log(`enqueueing key request for ${requestBody.room_id} / ` + requestBody.session_id);\n txn.oncomplete = (): void => {\n resolve(request);\n };\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n store.add(request);\n });\n });\n }\n\n /**\n * Look for an existing room key request\n *\n * @param requestBody - existing request to look for\n *\n * @returns resolves to the matching\n * {@link OutgoingRoomKeyRequest}, or null if\n * not found\n */\n public getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): Promise<OutgoingRoomKeyRequest | null> {\n return new Promise((resolve, reject) => {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n txn.onerror = reject;\n\n this._getOutgoingRoomKeyRequest(txn, requestBody, (existing) => {\n resolve(existing);\n });\n });\n }\n\n /**\n * look for an existing room key request in the db\n *\n * @internal\n * @param txn - database transaction\n * @param requestBody - existing request to look for\n * @param callback - function to call with the results of the\n * search. Either passed a matching\n * {@link OutgoingRoomKeyRequest}, or null if\n * not found.\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private _getOutgoingRoomKeyRequest(\n txn: IDBTransaction,\n requestBody: IRoomKeyRequestBody,\n callback: (req: OutgoingRoomKeyRequest | null) => void,\n ): void {\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n\n const idx = store.index(\"session\");\n const cursorReq = idx.openCursor([requestBody.room_id, requestBody.session_id]);\n\n cursorReq.onsuccess = (): void => {\n const cursor = cursorReq.result;\n if (!cursor) {\n // no match found\n callback(null);\n return;\n }\n\n const existing = cursor.value;\n\n if (deepCompare(existing.requestBody, requestBody)) {\n // got a match\n callback(existing);\n return;\n }\n\n // look at the next entry in the index\n cursor.continue();\n };\n }\n\n /**\n * Look for room key requests by state\n *\n * @param wantedStates - list of acceptable states\n *\n * @returns resolves to the a\n * {@link OutgoingRoomKeyRequest}, or null if\n * there are no pending requests in those states. If there are multiple\n * requests in those states, an arbitrary one is chosen.\n */\n public getOutgoingRoomKeyRequestByState(wantedStates: number[]): Promise<OutgoingRoomKeyRequest | null> {\n if (wantedStates.length === 0) {\n return Promise.resolve(null);\n }\n\n // this is a bit tortuous because we need to make sure we do the lookup\n // in a single transaction, to avoid having a race with the insertion\n // code.\n\n // index into the wantedStates array\n let stateIndex = 0;\n let result: OutgoingRoomKeyRequest;\n\n function onsuccess(this: IDBRequest<IDBCursorWithValue | null>): void {\n const cursor = this.result;\n if (cursor) {\n // got a match\n result = cursor.value;\n return;\n }\n\n // try the next state in the list\n stateIndex++;\n if (stateIndex >= wantedStates.length) {\n // no matches\n return;\n }\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = (this.source as IDBIndex).openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n }\n\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = store.index(\"state\").openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n\n return promiseifyTxn(txn).then(() => result);\n }\n\n /**\n *\n * @returns All elements in a given state\n */\n public getAllOutgoingRoomKeyRequestsByState(wantedState: number): Promise<OutgoingRoomKeyRequest[]> {\n return new Promise((resolve, reject) => {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n const index = store.index(\"state\");\n const request = index.getAll(wantedState);\n\n request.onsuccess = (): void => resolve(request.result);\n request.onerror = (): void => reject(request.error);\n });\n }\n\n public getOutgoingRoomKeyRequestsByTarget(\n userId: string,\n deviceId: string,\n wantedStates: number[],\n ): Promise<OutgoingRoomKeyRequest[]> {\n let stateIndex = 0;\n const results: OutgoingRoomKeyRequest[] = [];\n\n function onsuccess(this: IDBRequest<IDBCursorWithValue | null>): void {\n const cursor = this.result;\n if (cursor) {\n const keyReq = cursor.value;\n if (\n keyReq.recipients.some(\n (recipient: IRoomKeyRequestRecipient) =>\n recipient.userId === userId && recipient.deviceId === deviceId,\n )\n ) {\n results.push(keyReq);\n }\n cursor.continue();\n } else {\n // try the next state in the list\n stateIndex++;\n if (stateIndex >= wantedStates.length) {\n // no matches\n return;\n }\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = (this.source as IDBIndex).openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n }\n }\n\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readonly\");\n const store = txn.objectStore(\"outgoingRoomKeyRequests\");\n\n const wantedState = wantedStates[stateIndex];\n const cursorReq = store.index(\"state\").openCursor(wantedState);\n cursorReq.onsuccess = onsuccess;\n\n return promiseifyTxn(txn).then(() => results);\n }\n\n /**\n * Look for an existing room key request by id and state, and update it if\n * found\n *\n * @param requestId - ID of request to update\n * @param expectedState - state we expect to find the request in\n * @param updates - name/value map of updates to apply\n *\n * @returns resolves to\n * {@link OutgoingRoomKeyRequest}\n * updated request, or null if no matching row was found\n */\n public updateOutgoingRoomKeyRequest(\n requestId: string,\n expectedState: number,\n updates: Partial<OutgoingRoomKeyRequest>,\n ): Promise<OutgoingRoomKeyRequest | null> {\n let result: OutgoingRoomKeyRequest | null = null;\n\n function onsuccess(this: IDBRequest<IDBCursorWithValue | null>): void {\n const cursor = this.result;\n if (!cursor) {\n return;\n }\n const data = cursor.value;\n if (data.state != expectedState) {\n logger.warn(\n `Cannot update room key request from ${expectedState} ` +\n `as it was already updated to ${data.state}`,\n );\n return;\n }\n Object.assign(data, updates);\n cursor.update(data);\n result = data;\n }\n\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readwrite\");\n const cursorReq = txn.objectStore(\"outgoingRoomKeyRequests\").openCursor(requestId);\n cursorReq.onsuccess = onsuccess;\n return promiseifyTxn(txn).then(() => result);\n }\n\n /**\n * Look for an existing room key request by id and state, and delete it if\n * found\n *\n * @param requestId - ID of request to update\n * @param expectedState - state we expect to find the request in\n *\n * @returns resolves once the operation is completed\n */\n public deleteOutgoingRoomKeyRequest(\n requestId: string,\n expectedState: number,\n ): Promise<OutgoingRoomKeyRequest | null> {\n const txn = this.db.transaction(\"outgoingRoomKeyRequests\", \"readwrite\");\n const cursorReq = txn.objectStore(\"outgoingRoomKeyRequests\").openCursor(requestId);\n cursorReq.onsuccess = (): void => {\n const cursor = cursorReq.result;\n if (!cursor) {\n return;\n }\n const data = cursor.value;\n if (data.state != expectedState) {\n logger.warn(`Cannot delete room key request in state ${data.state} ` + `(expected ${expectedState})`);\n return;\n }\n cursor.delete();\n };\n return promiseifyTxn<OutgoingRoomKeyRequest | null>(txn);\n }\n\n // Olm Account\n\n public getAccount(txn: IDBTransaction, func: (accountPickle: string | null) => void): void {\n const objectStore = txn.objectStore(\"account\");\n const getReq = objectStore.get(\"-\");\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeAccount(txn: IDBTransaction, accountPickle: string): void {\n const objectStore = txn.objectStore(\"account\");\n objectStore.put(accountPickle, \"-\");\n }\n\n public getCrossSigningKeys(\n txn: IDBTransaction,\n func: (keys: Record<string, CrossSigningKeyInfo> | null) => void,\n ): void {\n const objectStore = txn.objectStore(\"account\");\n const getReq = objectStore.get(\"crossSigningKeys\");\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: IDBTransaction,\n func: (key: SecretStorePrivateKeys[K] | null) => void,\n type: K,\n ): void {\n const objectStore = txn.objectStore(\"account\");\n const getReq = objectStore.get(`ssss_cache:${type}`);\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeCrossSigningKeys(txn: IDBTransaction, keys: Record<string, CrossSigningKeyInfo>): void {\n const objectStore = txn.objectStore(\"account\");\n objectStore.put(keys, \"crossSigningKeys\");\n }\n\n public storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(\n txn: IDBTransaction,\n type: K,\n key: SecretStorePrivateKeys[K],\n ): void {\n const objectStore = txn.objectStore(\"account\");\n objectStore.put(key, `ssss_cache:${type}`);\n }\n\n // Olm Sessions\n\n public countEndToEndSessions(txn: IDBTransaction, func: (count: number) => void): void {\n const objectStore = txn.objectStore(\"sessions\");\n const countReq = objectStore.count();\n countReq.onsuccess = function (): void {\n try {\n func(countReq.result);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getEndToEndSessions(\n deviceKey: string,\n txn: IDBTransaction,\n func: (sessions: { [sessionId: string]: ISessionInfo }) => void,\n ): void {\n const objectStore = txn.objectStore(\"sessions\");\n const idx = objectStore.index(\"deviceKey\");\n const getReq = idx.openCursor(deviceKey);\n const results: Parameters<Parameters<Backend[\"getEndToEndSessions\"]>[2]>[0] = {};\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n results[cursor.value.sessionId] = {\n session: cursor.value.session,\n lastReceivedMessageTs: cursor.value.lastReceivedMessageTs,\n };\n cursor.continue();\n } else {\n try {\n func(results);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n }\n };\n }\n\n public getEndToEndSession(\n deviceKey: string,\n sessionId: string,\n txn: IDBTransaction,\n func: (session: ISessionInfo | null) => void,\n ): void {\n const objectStore = txn.objectStore(\"sessions\");\n const getReq = objectStore.get([deviceKey, sessionId]);\n getReq.onsuccess = function (): void {\n try {\n if (getReq.result) {\n func({\n session: getReq.result.session,\n lastReceivedMessageTs: getReq.result.lastReceivedMessageTs,\n });\n } else {\n func(null);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getAllEndToEndSessions(txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void {\n const objectStore = txn.objectStore(\"sessions\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n try {\n const cursor = getReq.result;\n if (cursor) {\n func(cursor.value);\n cursor.continue();\n } else {\n func(null);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeEndToEndSession(\n deviceKey: string,\n sessionId: string,\n sessionInfo: ISessionInfo,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"sessions\");\n objectStore.put({\n deviceKey,\n sessionId,\n session: sessionInfo.session,\n lastReceivedMessageTs: sessionInfo.lastReceivedMessageTs,\n });\n }\n\n public async storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void> {\n const txn = this.db.transaction(\"session_problems\", \"readwrite\");\n const objectStore = txn.objectStore(\"session_problems\");\n objectStore.put({\n deviceKey,\n type,\n fixed,\n time: Date.now(),\n });\n await promiseifyTxn(txn);\n }\n\n public async getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null> {\n let result: IProblem | null = null;\n const txn = this.db.transaction(\"session_problems\", \"readwrite\");\n const objectStore = txn.objectStore(\"session_problems\");\n const index = objectStore.index(\"deviceKey\");\n const req = index.getAll(deviceKey);\n req.onsuccess = (): void => {\n const problems = req.result;\n if (!problems.length) {\n result = null;\n return;\n }\n problems.sort((a, b) => {\n return a.time - b.time;\n });\n const lastProblem = problems[problems.length - 1];\n for (const problem of problems) {\n if (problem.time > timestamp) {\n result = Object.assign({}, problem, { fixed: lastProblem.fixed });\n return;\n }\n }\n if (lastProblem.fixed) {\n result = null;\n } else {\n result = lastProblem;\n }\n };\n await promiseifyTxn(txn);\n return result;\n }\n\n // FIXME: we should probably prune this when devices get deleted\n public async filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]> {\n const txn = this.db.transaction(\"notified_error_devices\", \"readwrite\");\n const objectStore = txn.objectStore(\"notified_error_devices\");\n\n const ret: IOlmDevice[] = [];\n\n await Promise.all(\n devices.map((device) => {\n return new Promise<void>((resolve) => {\n const { userId, deviceInfo } = device;\n const getReq = objectStore.get([userId, deviceInfo.deviceId]);\n getReq.onsuccess = function (): void {\n if (!getReq.result) {\n objectStore.put({ userId, deviceId: deviceInfo.deviceId });\n ret.push(device);\n }\n resolve();\n };\n });\n }),\n );\n\n return ret;\n }\n\n /**\n * Fetch a batch of Olm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.\n */\n public async getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]> {\n const result: ISessionInfo[] = [];\n await this.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_SESSIONS], (txn) => {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n try {\n const cursor = getReq.result;\n if (cursor) {\n result.push(cursor.value);\n if (result.length < SESSION_BATCH_SIZE) {\n cursor.continue();\n }\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n });\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\n return result;\n }\n\n /**\n * Delete a batch of Olm sessions from the database.\n *\n * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.\n *\n * @internal\n */\n public async deleteEndToEndSessionsBatch(sessions: { deviceKey: string; sessionId: string }[]): Promise<void> {\n await this.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_SESSIONS], async (txn) => {\n try {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_SESSIONS);\n for (const { deviceKey, sessionId } of sessions) {\n const req = objectStore.delete([deviceKey, sessionId]);\n await new Promise((resolve) => {\n req.onsuccess = resolve;\n });\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n });\n }\n\n // Inbound group sessions\n\n public getEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n txn: IDBTransaction,\n func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void,\n ): void {\n let session: InboundGroupSessionData | null | boolean = false;\n let withheld: IWithheld | null | boolean = false;\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n const getReq = objectStore.get([senderCurve25519Key, sessionId]);\n getReq.onsuccess = function (): void {\n try {\n if (getReq.result) {\n session = getReq.result.session;\n } else {\n session = null;\n }\n if (withheld !== false) {\n func(session as InboundGroupSessionData, withheld as IWithheld);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n\n const withheldObjectStore = txn.objectStore(\"inbound_group_sessions_withheld\");\n const withheldGetReq = withheldObjectStore.get([senderCurve25519Key, sessionId]);\n withheldGetReq.onsuccess = function (): void {\n try {\n if (withheldGetReq.result) {\n withheld = withheldGetReq.result.session;\n } else {\n withheld = null;\n }\n if (session !== false) {\n func(session as InboundGroupSessionData, withheld as IWithheld);\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public getAllEndToEndInboundGroupSessions(txn: IDBTransaction, func: (session: ISession | null) => void): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n try {\n func({\n senderKey: cursor.value.senderCurve25519Key,\n sessionId: cursor.value.sessionId,\n sessionData: cursor.value.session,\n });\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n cursor.continue();\n } else {\n try {\n func(null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n }\n };\n }\n\n public addEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n const addReq = objectStore.add({\n senderCurve25519Key,\n sessionId,\n session: sessionData,\n });\n addReq.onerror = (ev): void => {\n if (addReq.error?.name === \"ConstraintError\") {\n // This stops the error from triggering the txn's onerror\n ev.stopPropagation();\n // ...and this stops it from aborting the transaction\n ev.preventDefault();\n logger.log(\"Ignoring duplicate inbound group session: \" + senderCurve25519Key + \" / \" + sessionId);\n } else {\n abortWithException(txn, new Error(\"Failed to add inbound group session: \" + addReq.error));\n }\n };\n }\n\n public storeEndToEndInboundGroupSession(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: InboundGroupSessionData,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions\");\n objectStore.put({\n senderCurve25519Key,\n sessionId,\n session: sessionData,\n });\n }\n\n public storeEndToEndInboundGroupSessionWithheld(\n senderCurve25519Key: string,\n sessionId: string,\n sessionData: IWithheld,\n txn: IDBTransaction,\n ): void {\n const objectStore = txn.objectStore(\"inbound_group_sessions_withheld\");\n objectStore.put({\n senderCurve25519Key,\n sessionId,\n session: sessionData,\n });\n }\n\n /**\n * Count the number of Megolm sessions in the database.\n *\n * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.\n *\n * @internal\n */\n public async countEndToEndInboundGroupSessions(): Promise<number> {\n let result = 0;\n await this.doTxn(\"readonly\", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], (txn) => {\n const sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);\n const countReq = sessionStore.count();\n countReq.onsuccess = (): void => {\n result = countReq.result;\n };\n });\n return result;\n }\n\n /**\n * Fetch a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.\n */\n public async getEndToEndInboundGroupSessionsBatch(): Promise<null | SessionExtended[]> {\n const result: SessionExtended[] = [];\n await this.doTxn(\n \"readonly\",\n [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS, IndexedDBCryptoStore.STORE_BACKUP],\n (txn) => {\n const sessionStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);\n const backupStore = txn.objectStore(IndexedDBCryptoStore.STORE_BACKUP);\n\n const getReq = sessionStore.openCursor();\n getReq.onsuccess = function (): void {\n try {\n const cursor = getReq.result;\n if (cursor) {\n const backupGetReq = backupStore.get(cursor.key);\n backupGetReq.onsuccess = (): void => {\n result.push({\n senderKey: cursor.value.senderCurve25519Key,\n sessionId: cursor.value.sessionId,\n sessionData: cursor.value.session,\n needsBackup: backupGetReq.result !== undefined,\n });\n if (result.length < SESSION_BATCH_SIZE) {\n cursor.continue();\n }\n };\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n },\n );\n\n if (result.length === 0) {\n // No sessions left.\n return null;\n }\n\n return result;\n }\n\n /**\n * Delete a batch of Megolm sessions from the database.\n *\n * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.\n *\n * @internal\n */\n public async deleteEndToEndInboundGroupSessionsBatch(\n sessions: { senderKey: string; sessionId: string }[],\n ): Promise<void> {\n await this.doTxn(\"readwrite\", [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS], async (txn) => {\n try {\n const objectStore = txn.objectStore(IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS);\n for (const { senderKey, sessionId } of sessions) {\n const req = objectStore.delete([senderKey, sessionId]);\n await new Promise((resolve) => {\n req.onsuccess = resolve;\n });\n }\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n });\n }\n\n public getEndToEndDeviceData(txn: IDBTransaction, func: (deviceData: IDeviceData | null) => void): void {\n const objectStore = txn.objectStore(\"device_data\");\n const getReq = objectStore.get(\"-\");\n getReq.onsuccess = function (): void {\n try {\n func(getReq.result || null);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n };\n }\n\n public storeEndToEndDeviceData(deviceData: IDeviceData, txn: IDBTransaction): void {\n const objectStore = txn.objectStore(\"device_data\");\n objectStore.put(deviceData, \"-\");\n }\n\n public storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: IDBTransaction): void {\n const objectStore = txn.objectStore(\"rooms\");\n objectStore.put(roomInfo, roomId);\n }\n\n public getEndToEndRooms(txn: IDBTransaction, func: (rooms: Record<string, IRoomEncryption>) => void): void {\n const rooms: Parameters<Parameters<Backend[\"getEndToEndRooms\"]>[1]>[0] = {};\n const objectStore = txn.objectStore(\"rooms\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n rooms[cursor.key as string] = cursor.value;\n cursor.continue();\n } else {\n try {\n func(rooms);\n } catch (e) {\n abortWithException(txn, <Error>e);\n }\n }\n };\n }\n\n // session backups\n\n public getSessionsNeedingBackup(limit: number): Promise<ISession[]> {\n return new Promise((resolve, reject) => {\n const sessions: ISession[] = [];\n\n const txn = this.db.transaction([\"sessions_needing_backup\", \"inbound_group_sessions\"], \"readonly\");\n txn.onerror = reject;\n txn.oncomplete = function (): void {\n resolve(sessions);\n };\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n const sessionStore = txn.objectStore(\"inbound_group_sessions\");\n const getReq = objectStore.openCursor();\n getReq.onsuccess = function (): void {\n const cursor = getReq.result;\n if (cursor) {\n const sessionGetReq = sessionStore.get(cursor.key);\n sessionGetReq.onsuccess = function (): void {\n sessions.push({\n senderKey: sessionGetReq.result.senderCurve25519Key,\n sessionId: sessionGetReq.result.sessionId,\n sessionData: sessionGetReq.result.session,\n });\n };\n if (!limit || sessions.length < limit) {\n cursor.continue();\n }\n }\n };\n });\n }\n\n public countSessionsNeedingBackup(txn?: IDBTransaction): Promise<number> {\n if (!txn) {\n txn = this.db.transaction(\"sessions_needing_backup\", \"readonly\");\n }\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n return new Promise((resolve, reject) => {\n const req = objectStore.count();\n req.onerror = reject;\n req.onsuccess = (): void => resolve(req.result);\n });\n }\n\n public async unmarkSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void> {\n if (!txn) {\n txn = this.db.transaction(\"sessions_needing_backup\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n await Promise.all(\n sessions.map((session) => {\n return new Promise((resolve, reject) => {\n const req = objectStore.delete([session.senderKey, session.sessionId]);\n req.onsuccess = resolve;\n req.onerror = reject;\n });\n }),\n );\n }\n\n public async markSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void> {\n if (!txn) {\n txn = this.db.transaction(\"sessions_needing_backup\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"sessions_needing_backup\");\n await Promise.all(\n sessions.map((session) => {\n return new Promise((resolve, reject) => {\n const req = objectStore.put({\n senderCurve25519Key: session.senderKey,\n sessionId: session.sessionId,\n });\n req.onsuccess = resolve;\n req.onerror = reject;\n });\n }),\n );\n }\n\n public addSharedHistoryInboundGroupSession(\n roomId: string,\n senderKey: string,\n sessionId: string,\n txn?: IDBTransaction,\n ): void {\n if (!txn) {\n txn = this.db.transaction(\"shared_history_inbound_group_sessions\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"shared_history_inbound_group_sessions\");\n const req = objectStore.get([roomId]);\n req.onsuccess = (): void => {\n const { sessions } = req.result || { sessions: [] };\n sessions.push([senderKey, sessionId]);\n objectStore.put({ roomId, sessions });\n };\n }\n\n public getSharedHistoryInboundGroupSessions(\n roomId: string,\n txn?: IDBTransaction,\n ): Promise<[senderKey: string, sessionId: string][]> {\n if (!txn) {\n txn = this.db.transaction(\"shared_history_inbound_group_sessions\", \"readonly\");\n }\n const objectStore = txn.objectStore(\"shared_history_inbound_group_sessions\");\n const req = objectStore.get([roomId]);\n return new Promise((resolve, reject) => {\n req.onsuccess = (): void => {\n const { sessions } = req.result || { sessions: [] };\n resolve(sessions);\n };\n req.onerror = reject;\n });\n }\n\n public addParkedSharedHistory(roomId: string, parkedData: ParkedSharedHistory, txn?: IDBTransaction): void {\n if (!txn) {\n txn = this.db.transaction(\"parked_shared_history\", \"readwrite\");\n }\n const objectStore = txn.objectStore(\"parked_shared_history\");\n const req = objectStore.get([roomId]);\n req.onsuccess = (): void => {\n const { parked } = req.result || { parked: [] };\n parked.push(parkedData);\n objectStore.put({ roomId, parked });\n };\n }\n\n public takeParkedSharedHistory(roomId: string, txn?: IDBTransaction): Promise<ParkedSharedHistory[]> {\n if (!txn) {\n txn = this.db.transaction(\"parked_shared_history\", \"readwrite\");\n }\n const cursorReq = txn.objectStore(\"parked_shared_history\").openCursor(roomId);\n return new Promise((resolve, reject) => {\n cursorReq.onsuccess = (): void => {\n const cursor = cursorReq.result;\n if (!cursor) {\n resolve([]);\n return;\n }\n const data = cursor.value;\n cursor.delete();\n resolve(data);\n };\n cursorReq.onerror = reject;\n });\n }\n\n public doTxn<T>(\n mode: Mode,\n stores: string | string[],\n func: (txn: IDBTransaction) => T,\n log: Logger = logger,\n ): Promise<T> {\n let startTime: number;\n let description: string;\n if (PROFILE_TRANSACTIONS) {\n const txnId = this.nextTxnId++;\n startTime = Date.now();\n description = `${mode} crypto store transaction ${txnId} in ${stores}`;\n log.debug(`Starting ${description}`);\n }\n const txn = this.db.transaction(stores, mode);\n const promise = promiseifyTxn(txn);\n const result = func(txn);\n if (PROFILE_TRANSACTIONS) {\n promise.then(\n () => {\n const elapsedTime = Date.now() - startTime;\n log.debug(`Finished ${description}, took ${elapsedTime} ms`);\n },\n () => {\n const elapsedTime = Date.now() - startTime;\n log.error(`Failed ${description}, took ${elapsedTime} ms`);\n },\n );\n }\n return promise.then(() => {\n return result;\n });\n }\n}\n\ntype DbMigration = (db: IDBDatabase) => void;\nconst DB_MIGRATIONS: DbMigration[] = [\n (db): void => {\n createDatabase(db);\n },\n (db): void => {\n db.createObjectStore(\"account\");\n },\n (db): void => {\n const sessionsStore = db.createObjectStore(\"sessions\", {\n keyPath: [\"deviceKey\", \"sessionId\"],\n });\n sessionsStore.createIndex(\"deviceKey\", \"deviceKey\");\n },\n (db): void => {\n db.createObjectStore(\"inbound_group_sessions\", {\n keyPath: [\"senderCurve25519Key\", \"sessionId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"device_data\");\n },\n (db): void => {\n db.createObjectStore(\"rooms\");\n },\n (db): void => {\n db.createObjectStore(\"sessions_needing_backup\", {\n keyPath: [\"senderCurve25519Key\", \"sessionId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"inbound_group_sessions_withheld\", {\n keyPath: [\"senderCurve25519Key\", \"sessionId\"],\n });\n },\n (db): void => {\n const problemsStore = db.createObjectStore(\"session_problems\", {\n keyPath: [\"deviceKey\", \"time\"],\n });\n problemsStore.createIndex(\"deviceKey\", \"deviceKey\");\n\n db.createObjectStore(\"notified_error_devices\", {\n keyPath: [\"userId\", \"deviceId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"shared_history_inbound_group_sessions\", {\n keyPath: [\"roomId\"],\n });\n },\n (db): void => {\n db.createObjectStore(\"parked_shared_history\", {\n keyPath: [\"roomId\"],\n });\n },\n // Expand as needed.\n];\nexport const VERSION = DB_MIGRATIONS.length;\n\nexport function upgradeDatabase(db: IDBDatabase, oldVersion: number): void {\n logger.log(`Upgrading IndexedDBCryptoStore from version ${oldVersion}` + ` to ${VERSION}`);\n DB_MIGRATIONS.forEach((migration, index) => {\n if (oldVersion <= index) migration(db);\n });\n}\n\nfunction createDatabase(db: IDBDatabase): void {\n const outgoingRoomKeyRequestsStore = db.createObjectStore(\"outgoingRoomKeyRequests\", { keyPath: \"requestId\" });\n\n // we assume that the RoomKeyRequestBody will have room_id and session_id\n // properties, to make the index efficient.\n outgoingRoomKeyRequestsStore.createIndex(\"session\", [\"requestBody.room_id\", \"requestBody.session_id\"]);\n\n outgoingRoomKeyRequestsStore.createIndex(\"state\", \"state\");\n}\n\ninterface IWrappedIDBTransaction extends IDBTransaction {\n _mx_abortexception: Error; // eslint-disable-line camelcase\n}\n\n/*\n * Aborts a transaction with a given exception\n * The transaction promise will be rejected with this exception.\n */\nfunction abortWithException(txn: IDBTransaction, e: Error): void {\n // We cheekily stick our exception onto the transaction object here\n // We could alternatively make the thing we pass back to the app\n // an object containing the transaction and exception.\n (txn as IWrappedIDBTransaction)._mx_abortexception = e;\n try {\n txn.abort();\n } catch {\n // sometimes we won't be able to abort the transaction\n // (ie. if it's aborted or completed)\n }\n}\n\nfunction promiseifyTxn<T>(txn: IDBTransaction): Promise<T | null> {\n return new Promise((resolve, reject) => {\n txn.oncomplete = (): void => {\n if ((txn as IWrappedIDBTransaction)._mx_abortexception !== undefined) {\n reject((txn as IWrappedIDBTransaction)._mx_abortexception);\n }\n resolve(null);\n };\n txn.onerror = (event): void => {\n if ((txn as IWrappedIDBTransaction)._mx_abortexception !== undefined) {\n reject((txn as IWrappedIDBTransaction)._mx_abortexception);\n } else {\n logger.log(\"Error performing indexeddb txn\", event);\n reject(txn.error);\n }\n };\n txn.onabort = (event): void => {\n if ((txn as IWrappedIDBTransaction)._mx_abortexception !== undefined) {\n reject((txn as IWrappedIDBTransaction)._mx_abortexception);\n } else {\n logger.log(\"Error performing indexeddb txn\", event);\n reject(txn.error);\n }\n };\n });\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,432 @@
1
+ import { Logger } from "../../logger.ts";
2
+ import { CryptoStore, IDeviceData, IProblem, ISession, SessionExtended, ISessionInfo, IWithheld, MigrationState, Mode, OutgoingRoomKeyRequest, ParkedSharedHistory, SecretStorePrivateKeys } from "./base.ts";
3
+ import { IRoomKeyRequestBody } from "../index.ts";
4
+ import { IOlmDevice } from "../algorithms/megolm.ts";
5
+ import { IRoomEncryption } from "../RoomList.ts";
6
+ import { InboundGroupSessionData } from "../OlmDevice.ts";
7
+ import { CrossSigningKeyInfo } from "../../crypto-api/index.ts";
8
+ /**
9
+ * An implementation of CryptoStore, which is normally backed by an indexeddb,
10
+ * but with fallback to MemoryCryptoStore.
11
+ */
12
+ export declare class IndexedDBCryptoStore implements CryptoStore {
13
+ private readonly indexedDB;
14
+ private readonly dbName;
15
+ static STORE_ACCOUNT: string;
16
+ static STORE_SESSIONS: string;
17
+ static STORE_INBOUND_GROUP_SESSIONS: string;
18
+ static STORE_INBOUND_GROUP_SESSIONS_WITHHELD: string;
19
+ static STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS: string;
20
+ static STORE_PARKED_SHARED_HISTORY: string;
21
+ static STORE_DEVICE_DATA: string;
22
+ static STORE_ROOMS: string;
23
+ static STORE_BACKUP: string;
24
+ static exists(indexedDB: IDBFactory, dbName: string): Promise<boolean>;
25
+ /**
26
+ * Utility to check if a legacy crypto store exists and has not been migrated.
27
+ * Returns true if the store exists and has not been migrated, false otherwise.
28
+ */
29
+ static existsAndIsNotMigrated(indexedDb: IDBFactory, dbName: string): Promise<boolean>;
30
+ private backendPromise?;
31
+ private backend?;
32
+ /**
33
+ * Create a new IndexedDBCryptoStore
34
+ *
35
+ * @param indexedDB - global indexedDB instance
36
+ * @param dbName - name of db to connect to
37
+ */
38
+ constructor(indexedDB: IDBFactory, dbName: string);
39
+ /**
40
+ * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
41
+ *
42
+ * Implementation of {@link CryptoStore.containsData}.
43
+ *
44
+ * @internal
45
+ */
46
+ containsData(): Promise<boolean>;
47
+ /**
48
+ * Ensure the database exists and is up-to-date, or fall back to
49
+ * a local storage or in-memory store.
50
+ *
51
+ * This must be called before the store can be used.
52
+ *
53
+ * @returns resolves to either an IndexedDBCryptoStoreBackend.Backend,
54
+ * or a MemoryCryptoStore
55
+ */
56
+ startup(): Promise<CryptoStore>;
57
+ /**
58
+ * Delete all data from this store.
59
+ *
60
+ * @returns resolves when the store has been cleared.
61
+ */
62
+ deleteAllData(): Promise<void>;
63
+ /**
64
+ * Get data on how much of the libolm to Rust Crypto migration has been done.
65
+ *
66
+ * Implementation of {@link CryptoStore.getMigrationState}.
67
+ *
68
+ * @internal
69
+ */
70
+ getMigrationState(): Promise<MigrationState>;
71
+ /**
72
+ * Set data on how much of the libolm to Rust Crypto migration has been done.
73
+ *
74
+ * Implementation of {@link CryptoStore.setMigrationState}.
75
+ *
76
+ * @internal
77
+ */
78
+ setMigrationState(migrationState: MigrationState): Promise<void>;
79
+ /**
80
+ * Look for an existing outgoing room key request, and if none is found,
81
+ * add a new one
82
+ *
83
+ *
84
+ * @returns resolves to
85
+ * {@link OutgoingRoomKeyRequest}: either the
86
+ * same instance as passed in, or the existing one.
87
+ */
88
+ getOrAddOutgoingRoomKeyRequest(request: OutgoingRoomKeyRequest): Promise<OutgoingRoomKeyRequest>;
89
+ /**
90
+ * Look for an existing room key request
91
+ *
92
+ * @param requestBody - existing request to look for
93
+ *
94
+ * @returns resolves to the matching
95
+ * {@link OutgoingRoomKeyRequest}, or null if
96
+ * not found
97
+ */
98
+ getOutgoingRoomKeyRequest(requestBody: IRoomKeyRequestBody): Promise<OutgoingRoomKeyRequest | null>;
99
+ /**
100
+ * Look for room key requests by state
101
+ *
102
+ * @param wantedStates - list of acceptable states
103
+ *
104
+ * @returns resolves to the a
105
+ * {@link OutgoingRoomKeyRequest}, or null if
106
+ * there are no pending requests in those states. If there are multiple
107
+ * requests in those states, an arbitrary one is chosen.
108
+ */
109
+ getOutgoingRoomKeyRequestByState(wantedStates: number[]): Promise<OutgoingRoomKeyRequest | null>;
110
+ /**
111
+ * Look for room key requests by state –
112
+ * unlike above, return a list of all entries in one state.
113
+ *
114
+ * @returns Returns an array of requests in the given state
115
+ */
116
+ getAllOutgoingRoomKeyRequestsByState(wantedState: number): Promise<OutgoingRoomKeyRequest[]>;
117
+ /**
118
+ * Look for room key requests by target device and state
119
+ *
120
+ * @param userId - Target user ID
121
+ * @param deviceId - Target device ID
122
+ * @param wantedStates - list of acceptable states
123
+ *
124
+ * @returns resolves to a list of all the
125
+ * {@link OutgoingRoomKeyRequest}
126
+ */
127
+ getOutgoingRoomKeyRequestsByTarget(userId: string, deviceId: string, wantedStates: number[]): Promise<OutgoingRoomKeyRequest[]>;
128
+ /**
129
+ * Look for an existing room key request by id and state, and update it if
130
+ * found
131
+ *
132
+ * @param requestId - ID of request to update
133
+ * @param expectedState - state we expect to find the request in
134
+ * @param updates - name/value map of updates to apply
135
+ *
136
+ * @returns resolves to
137
+ * {@link OutgoingRoomKeyRequest}
138
+ * updated request, or null if no matching row was found
139
+ */
140
+ updateOutgoingRoomKeyRequest(requestId: string, expectedState: number, updates: Partial<OutgoingRoomKeyRequest>): Promise<OutgoingRoomKeyRequest | null>;
141
+ /**
142
+ * Look for an existing room key request by id and state, and delete it if
143
+ * found
144
+ *
145
+ * @param requestId - ID of request to update
146
+ * @param expectedState - state we expect to find the request in
147
+ *
148
+ * @returns resolves once the operation is completed
149
+ */
150
+ deleteOutgoingRoomKeyRequest(requestId: string, expectedState: number): Promise<OutgoingRoomKeyRequest | null>;
151
+ getAccount(txn: IDBTransaction, func: (accountPickle: string | null) => void): void;
152
+ /**
153
+ * Write the account pickle to the store.
154
+ * This requires an active transaction. See doTxn().
155
+ *
156
+ * @param txn - An active transaction. See doTxn().
157
+ * @param accountPickle - The new account pickle to store.
158
+ */
159
+ storeAccount(txn: IDBTransaction, accountPickle: string): void;
160
+ /**
161
+ * Get the public part of the cross-signing keys (eg. self-signing key,
162
+ * user signing key).
163
+ *
164
+ * @param txn - An active transaction. See doTxn().
165
+ * @param func - Called with the account keys object:
166
+ * `{ key_type: base64 encoded seed }` where key type = user_signing_key_seed or self_signing_key_seed
167
+ */
168
+ getCrossSigningKeys(txn: IDBTransaction, func: (keys: Record<string, CrossSigningKeyInfo> | null) => void): void;
169
+ /**
170
+ * @param txn - An active transaction. See doTxn().
171
+ * @param func - Called with the private key
172
+ * @param type - A key type
173
+ */
174
+ getSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(txn: IDBTransaction, func: (key: SecretStorePrivateKeys[K] | null) => void, type: K): void;
175
+ /**
176
+ * Write the cross-signing keys back to the store
177
+ *
178
+ * @param txn - An active transaction. See doTxn().
179
+ * @param keys - keys object as getCrossSigningKeys()
180
+ */
181
+ storeCrossSigningKeys(txn: IDBTransaction, keys: Record<string, CrossSigningKeyInfo>): void;
182
+ /**
183
+ * Write the cross-signing private keys back to the store
184
+ *
185
+ * @param txn - An active transaction. See doTxn().
186
+ * @param type - The type of cross-signing private key to store
187
+ * @param key - keys object as getCrossSigningKeys()
188
+ */
189
+ storeSecretStorePrivateKey<K extends keyof SecretStorePrivateKeys>(txn: IDBTransaction, type: K, key: SecretStorePrivateKeys[K]): void;
190
+ /**
191
+ * Returns the number of end-to-end sessions in the store
192
+ * @param txn - An active transaction. See doTxn().
193
+ * @param func - Called with the count of sessions
194
+ */
195
+ countEndToEndSessions(txn: IDBTransaction, func: (count: number) => void): void;
196
+ /**
197
+ * Retrieve a specific end-to-end session between the logged-in user
198
+ * and another device.
199
+ * @param deviceKey - The public key of the other device.
200
+ * @param sessionId - The ID of the session to retrieve
201
+ * @param txn - An active transaction. See doTxn().
202
+ * @param func - Called with A map from sessionId
203
+ * to session information object with 'session' key being the
204
+ * Base64 end-to-end session and lastReceivedMessageTs being the
205
+ * timestamp in milliseconds at which the session last received
206
+ * a message.
207
+ */
208
+ getEndToEndSession(deviceKey: string, sessionId: string, txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void;
209
+ /**
210
+ * Retrieve the end-to-end sessions between the logged-in user and another
211
+ * device.
212
+ * @param deviceKey - The public key of the other device.
213
+ * @param txn - An active transaction. See doTxn().
214
+ * @param func - Called with A map from sessionId
215
+ * to session information object with 'session' key being the
216
+ * Base64 end-to-end session and lastReceivedMessageTs being the
217
+ * timestamp in milliseconds at which the session last received
218
+ * a message.
219
+ */
220
+ getEndToEndSessions(deviceKey: string, txn: IDBTransaction, func: (sessions: {
221
+ [sessionId: string]: ISessionInfo;
222
+ }) => void): void;
223
+ /**
224
+ * Retrieve all end-to-end sessions
225
+ * @param txn - An active transaction. See doTxn().
226
+ * @param func - Called one for each session with
227
+ * an object with, deviceKey, lastReceivedMessageTs, sessionId
228
+ * and session keys.
229
+ */
230
+ getAllEndToEndSessions(txn: IDBTransaction, func: (session: ISessionInfo | null) => void): void;
231
+ /**
232
+ * Store a session between the logged-in user and another device
233
+ * @param deviceKey - The public key of the other device.
234
+ * @param sessionId - The ID for this end-to-end session.
235
+ * @param sessionInfo - Session information object
236
+ * @param txn - An active transaction. See doTxn().
237
+ */
238
+ storeEndToEndSession(deviceKey: string, sessionId: string, sessionInfo: ISessionInfo, txn: IDBTransaction): void;
239
+ storeEndToEndSessionProblem(deviceKey: string, type: string, fixed: boolean): Promise<void>;
240
+ getEndToEndSessionProblem(deviceKey: string, timestamp: number): Promise<IProblem | null>;
241
+ filterOutNotifiedErrorDevices(devices: IOlmDevice[]): Promise<IOlmDevice[]>;
242
+ /**
243
+ * Count the number of Megolm sessions in the database.
244
+ *
245
+ * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
246
+ *
247
+ * @internal
248
+ */
249
+ countEndToEndInboundGroupSessions(): Promise<number>;
250
+ /**
251
+ * Fetch a batch of Olm sessions from the database.
252
+ *
253
+ * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
254
+ *
255
+ * @internal
256
+ */
257
+ getEndToEndSessionsBatch(): Promise<null | ISessionInfo[]>;
258
+ /**
259
+ * Delete a batch of Olm sessions from the database.
260
+ *
261
+ * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
262
+ *
263
+ * @internal
264
+ */
265
+ deleteEndToEndSessionsBatch(sessions: {
266
+ deviceKey: string;
267
+ sessionId: string;
268
+ }[]): Promise<void>;
269
+ /**
270
+ * Retrieve the end-to-end inbound group session for a given
271
+ * server key and session ID
272
+ * @param senderCurve25519Key - The sender's curve 25519 key
273
+ * @param sessionId - The ID of the session
274
+ * @param txn - An active transaction. See doTxn().
275
+ * @param func - Called with A map from sessionId
276
+ * to Base64 end-to-end session.
277
+ */
278
+ getEndToEndInboundGroupSession(senderCurve25519Key: string, sessionId: string, txn: IDBTransaction, func: (groupSession: InboundGroupSessionData | null, groupSessionWithheld: IWithheld | null) => void): void;
279
+ /**
280
+ * Fetches all inbound group sessions in the store
281
+ * @param txn - An active transaction. See doTxn().
282
+ * @param func - Called once for each group session
283
+ * in the store with an object having keys `{senderKey, sessionId, sessionData}`,
284
+ * then once with null to indicate the end of the list.
285
+ */
286
+ getAllEndToEndInboundGroupSessions(txn: IDBTransaction, func: (session: ISession | null) => void): void;
287
+ /**
288
+ * Adds an end-to-end inbound group session to the store.
289
+ * If there already exists an inbound group session with the same
290
+ * senderCurve25519Key and sessionID, the session will not be added.
291
+ * @param senderCurve25519Key - The sender's curve 25519 key
292
+ * @param sessionId - The ID of the session
293
+ * @param sessionData - The session data structure
294
+ * @param txn - An active transaction. See doTxn().
295
+ */
296
+ addEndToEndInboundGroupSession(senderCurve25519Key: string, sessionId: string, sessionData: InboundGroupSessionData, txn: IDBTransaction): void;
297
+ /**
298
+ * Writes an end-to-end inbound group session to the store.
299
+ * If there already exists an inbound group session with the same
300
+ * senderCurve25519Key and sessionID, it will be overwritten.
301
+ * @param senderCurve25519Key - The sender's curve 25519 key
302
+ * @param sessionId - The ID of the session
303
+ * @param sessionData - The session data structure
304
+ * @param txn - An active transaction. See doTxn().
305
+ */
306
+ storeEndToEndInboundGroupSession(senderCurve25519Key: string, sessionId: string, sessionData: InboundGroupSessionData, txn: IDBTransaction): void;
307
+ storeEndToEndInboundGroupSessionWithheld(senderCurve25519Key: string, sessionId: string, sessionData: IWithheld, txn: IDBTransaction): void;
308
+ /**
309
+ * Fetch a batch of Megolm sessions from the database.
310
+ *
311
+ * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
312
+ *
313
+ * @internal
314
+ */
315
+ getEndToEndInboundGroupSessionsBatch(): Promise<SessionExtended[] | null>;
316
+ /**
317
+ * Delete a batch of Megolm sessions from the database.
318
+ *
319
+ * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
320
+ *
321
+ * @internal
322
+ */
323
+ deleteEndToEndInboundGroupSessionsBatch(sessions: {
324
+ senderKey: string;
325
+ sessionId: string;
326
+ }[]): Promise<void>;
327
+ /**
328
+ * Store the state of all tracked devices
329
+ * This contains devices for each user, a tracking state for each user
330
+ * and a sync token matching the point in time the snapshot represents.
331
+ * These all need to be written out in full each time such that the snapshot
332
+ * is always consistent, so they are stored in one object.
333
+ *
334
+ * @param txn - An active transaction. See doTxn().
335
+ */
336
+ storeEndToEndDeviceData(deviceData: IDeviceData, txn: IDBTransaction): void;
337
+ /**
338
+ * Get the state of all tracked devices
339
+ *
340
+ * @param txn - An active transaction. See doTxn().
341
+ * @param func - Function called with the
342
+ * device data
343
+ */
344
+ getEndToEndDeviceData(txn: IDBTransaction, func: (deviceData: IDeviceData | null) => void): void;
345
+ /**
346
+ * Store the end-to-end state for a room.
347
+ * @param roomId - The room's ID.
348
+ * @param roomInfo - The end-to-end info for the room.
349
+ * @param txn - An active transaction. See doTxn().
350
+ */
351
+ storeEndToEndRoom(roomId: string, roomInfo: IRoomEncryption, txn: IDBTransaction): void;
352
+ /**
353
+ * Get an object of `roomId->roomInfo` for all e2e rooms in the store
354
+ * @param txn - An active transaction. See doTxn().
355
+ * @param func - Function called with the end-to-end encrypted rooms
356
+ */
357
+ getEndToEndRooms(txn: IDBTransaction, func: (rooms: Record<string, IRoomEncryption>) => void): void;
358
+ /**
359
+ * Get the inbound group sessions that need to be backed up.
360
+ * @param limit - The maximum number of sessions to retrieve. 0
361
+ * for no limit.
362
+ * @returns resolves to an array of inbound group sessions
363
+ */
364
+ getSessionsNeedingBackup(limit: number): Promise<ISession[]>;
365
+ /**
366
+ * Count the inbound group sessions that need to be backed up.
367
+ * @param txn - An active transaction. See doTxn(). (optional)
368
+ * @returns resolves to the number of sessions
369
+ */
370
+ countSessionsNeedingBackup(txn?: IDBTransaction): Promise<number>;
371
+ /**
372
+ * Unmark sessions as needing to be backed up.
373
+ * @param sessions - The sessions that need to be backed up.
374
+ * @param txn - An active transaction. See doTxn(). (optional)
375
+ * @returns resolves when the sessions are unmarked
376
+ */
377
+ unmarkSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void>;
378
+ /**
379
+ * Mark sessions as needing to be backed up.
380
+ * @param sessions - The sessions that need to be backed up.
381
+ * @param txn - An active transaction. See doTxn(). (optional)
382
+ * @returns resolves when the sessions are marked
383
+ */
384
+ markSessionsNeedingBackup(sessions: ISession[], txn?: IDBTransaction): Promise<void>;
385
+ /**
386
+ * Add a shared-history group session for a room.
387
+ * @param roomId - The room that the key belongs to
388
+ * @param senderKey - The sender's curve 25519 key
389
+ * @param sessionId - The ID of the session
390
+ * @param txn - An active transaction. See doTxn(). (optional)
391
+ */
392
+ addSharedHistoryInboundGroupSession(roomId: string, senderKey: string, sessionId: string, txn?: IDBTransaction): void;
393
+ /**
394
+ * Get the shared-history group session for a room.
395
+ * @param roomId - The room that the key belongs to
396
+ * @param txn - An active transaction. See doTxn(). (optional)
397
+ * @returns Promise which resolves to an array of [senderKey, sessionId]
398
+ */
399
+ getSharedHistoryInboundGroupSessions(roomId: string, txn?: IDBTransaction): Promise<[senderKey: string, sessionId: string][]>;
400
+ /**
401
+ * Park a shared-history group session for a room we may be invited to later.
402
+ */
403
+ addParkedSharedHistory(roomId: string, parkedData: ParkedSharedHistory, txn?: IDBTransaction): void;
404
+ /**
405
+ * Pop out all shared-history group sessions for a room.
406
+ */
407
+ takeParkedSharedHistory(roomId: string, txn?: IDBTransaction): Promise<ParkedSharedHistory[]>;
408
+ /**
409
+ * Perform a transaction on the crypto store. Any store methods
410
+ * that require a transaction (txn) object to be passed in may
411
+ * only be called within a callback of either this function or
412
+ * one of the store functions operating on the same transaction.
413
+ *
414
+ * @param mode - 'readwrite' if you need to call setter
415
+ * functions with this transaction. Otherwise, 'readonly'.
416
+ * @param stores - List IndexedDBCryptoStore.STORE_*
417
+ * options representing all types of object that will be
418
+ * accessed or written to with this transaction.
419
+ * @param func - Function called with the
420
+ * transaction object: an opaque object that should be passed
421
+ * to store functions.
422
+ * @param log - A possibly customised log
423
+ * @returns Promise that resolves with the result of the `func`
424
+ * when the transaction is complete. If the backend is
425
+ * async (ie. the indexeddb backend) any of the callback
426
+ * functions throwing an exception will cause this promise to
427
+ * reject with that exception. On synchronous backends, the
428
+ * exception will propagate to the caller of the getFoo method.
429
+ */
430
+ doTxn<T>(mode: Mode, stores: Iterable<string>, func: (txn: IDBTransaction) => T, log?: Logger): Promise<T>;
431
+ }
432
+ //# sourceMappingURL=indexeddb-crypto-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexeddb-crypto-store.d.ts","sourceRoot":"","sources":["../../../src/crypto/store/indexeddb-crypto-store.ts"],"names":[],"mappings":"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"}