@unwanted/matrix-sdk-mini 34.12.0 → 36.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (759) hide show
  1. package/git-revision.txt +1 -1
  2. package/lib/@types/event.d.ts +25 -19
  3. package/lib/@types/event.d.ts.map +1 -1
  4. package/lib/@types/event.js +5 -0
  5. package/lib/@types/event.js.map +1 -1
  6. package/lib/@types/global.d.js +0 -2
  7. package/lib/@types/global.d.js.map +1 -1
  8. package/lib/autodiscovery.d.ts +1 -1
  9. package/lib/autodiscovery.d.ts.map +1 -1
  10. package/lib/autodiscovery.js.map +1 -1
  11. package/lib/base64.d.ts +3 -6
  12. package/lib/base64.d.ts.map +1 -1
  13. package/lib/base64.js +43 -36
  14. package/lib/base64.js.map +1 -1
  15. package/lib/browser-index.d.ts.map +1 -1
  16. package/lib/browser-index.js +0 -11
  17. package/lib/browser-index.js.map +1 -1
  18. package/lib/client.d.ts +45 -1306
  19. package/lib/client.d.ts.map +1 -1
  20. package/lib/client.js +406 -2963
  21. package/lib/client.js.map +1 -1
  22. package/lib/digest.d.ts +2 -2
  23. package/lib/digest.d.ts.map +1 -1
  24. package/lib/digest.js +2 -2
  25. package/lib/digest.js.map +1 -1
  26. package/lib/embedded.d.ts +2 -23
  27. package/lib/embedded.d.ts.map +1 -1
  28. package/lib/embedded.js +82 -209
  29. package/lib/embedded.js.map +1 -1
  30. package/lib/event-mapper.d.ts.map +1 -1
  31. package/lib/event-mapper.js +0 -4
  32. package/lib/event-mapper.js.map +1 -1
  33. package/lib/feature.d.ts.map +1 -1
  34. package/lib/feature.js +2 -1
  35. package/lib/feature.js.map +1 -1
  36. package/lib/http-api/errors.d.ts +3 -3
  37. package/lib/http-api/errors.js +3 -3
  38. package/lib/http-api/errors.js.map +1 -1
  39. package/lib/http-api/utils.js +2 -2
  40. package/lib/http-api/utils.js.map +1 -1
  41. package/lib/matrix.d.ts +0 -25
  42. package/lib/matrix.d.ts.map +1 -1
  43. package/lib/matrix.js +1 -30
  44. package/lib/matrix.js.map +1 -1
  45. package/lib/models/MSC3089Branch.d.ts.map +1 -1
  46. package/lib/models/MSC3089Branch.js +0 -3
  47. package/lib/models/MSC3089Branch.js.map +1 -1
  48. package/lib/models/event-timeline-set.d.ts +6 -10
  49. package/lib/models/event-timeline-set.d.ts.map +1 -1
  50. package/lib/models/event-timeline-set.js +28 -36
  51. package/lib/models/event-timeline-set.js.map +1 -1
  52. package/lib/models/event-timeline.d.ts +7 -2
  53. package/lib/models/event-timeline.d.ts.map +1 -1
  54. package/lib/models/event-timeline.js +9 -30
  55. package/lib/models/event-timeline.js.map +1 -1
  56. package/lib/models/event.d.ts +12 -96
  57. package/lib/models/event.d.ts.map +1 -1
  58. package/lib/models/event.js +59 -286
  59. package/lib/models/event.js.map +1 -1
  60. package/lib/models/invites-ignorer-types.d.ts +27 -0
  61. package/lib/models/invites-ignorer-types.d.ts.map +1 -0
  62. package/lib/models/invites-ignorer-types.js +36 -0
  63. package/lib/models/invites-ignorer-types.js.map +1 -0
  64. package/lib/models/invites-ignorer.d.ts +2 -26
  65. package/lib/models/invites-ignorer.d.ts.map +1 -1
  66. package/lib/models/invites-ignorer.js +2 -27
  67. package/lib/models/invites-ignorer.js.map +1 -1
  68. package/lib/models/poll.d.ts.map +1 -1
  69. package/lib/models/poll.js +1 -5
  70. package/lib/models/poll.js.map +1 -1
  71. package/lib/models/relations-container.d.ts.map +1 -1
  72. package/lib/models/relations-container.js +1 -7
  73. package/lib/models/relations-container.js.map +1 -1
  74. package/lib/models/relations.d.ts +0 -1
  75. package/lib/models/relations.d.ts.map +1 -1
  76. package/lib/models/relations.js +0 -8
  77. package/lib/models/relations.js.map +1 -1
  78. package/lib/models/room-member.d.ts +6 -1
  79. package/lib/models/room-member.d.ts.map +1 -1
  80. package/lib/models/room-member.js +7 -1
  81. package/lib/models/room-member.js.map +1 -1
  82. package/lib/models/room-state.d.ts +2 -13
  83. package/lib/models/room-state.d.ts.map +1 -1
  84. package/lib/models/room-state.js +12 -56
  85. package/lib/models/room-state.js.map +1 -1
  86. package/lib/models/room.d.ts +8 -21
  87. package/lib/models/room.d.ts.map +1 -1
  88. package/lib/models/room.js +128 -163
  89. package/lib/models/room.js.map +1 -1
  90. package/lib/models/thread.d.ts.map +1 -1
  91. package/lib/models/thread.js +5 -4
  92. package/lib/models/thread.js.map +1 -1
  93. package/lib/oidc/authorize.d.ts +2 -2
  94. package/lib/oidc/authorize.d.ts.map +1 -1
  95. package/lib/oidc/authorize.js +5 -5
  96. package/lib/oidc/authorize.js.map +1 -1
  97. package/lib/oidc/discovery.d.ts +8 -0
  98. package/lib/oidc/discovery.d.ts.map +1 -1
  99. package/lib/oidc/discovery.js +22 -11
  100. package/lib/oidc/discovery.js.map +1 -1
  101. package/lib/oidc/index.d.ts +3 -4
  102. package/lib/oidc/index.d.ts.map +1 -1
  103. package/lib/oidc/index.js.map +1 -1
  104. package/lib/oidc/register.js +3 -3
  105. package/lib/oidc/register.js.map +1 -1
  106. package/lib/oidc/tokenRefresher.d.ts.map +1 -1
  107. package/lib/oidc/tokenRefresher.js +6 -5
  108. package/lib/oidc/tokenRefresher.js.map +1 -1
  109. package/lib/oidc/validate.d.ts +9 -23
  110. package/lib/oidc/validate.d.ts.map +1 -1
  111. package/lib/oidc/validate.js +13 -28
  112. package/lib/oidc/validate.js.map +1 -1
  113. package/lib/randomstring.d.ts +30 -3
  114. package/lib/randomstring.d.ts.map +1 -1
  115. package/lib/randomstring.js +68 -16
  116. package/lib/randomstring.js.map +1 -1
  117. package/lib/sliding-sync-sdk.d.ts +3 -4
  118. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  119. package/lib/sliding-sync-sdk.js +55 -102
  120. package/lib/sliding-sync-sdk.js.map +1 -1
  121. package/lib/sliding-sync.js +9 -6
  122. package/lib/sliding-sync.js.map +1 -1
  123. package/lib/store/indexeddb-local-backend.js +4 -2
  124. package/lib/store/indexeddb-local-backend.js.map +1 -1
  125. package/lib/store/indexeddb.d.ts +1 -1
  126. package/lib/store/indexeddb.d.ts.map +1 -1
  127. package/lib/store/indexeddb.js.map +1 -1
  128. package/lib/sync-accumulator.d.ts +6 -4
  129. package/lib/sync-accumulator.d.ts.map +1 -1
  130. package/lib/sync-accumulator.js +23 -12
  131. package/lib/sync-accumulator.js.map +1 -1
  132. package/lib/sync.d.ts +10 -13
  133. package/lib/sync.d.ts.map +1 -1
  134. package/lib/sync.js +94 -115
  135. package/lib/sync.js.map +1 -1
  136. package/lib/testing.d.ts +13 -44
  137. package/lib/testing.d.ts.map +1 -1
  138. package/lib/testing.js +36 -99
  139. package/lib/testing.js.map +1 -1
  140. package/lib/types.d.ts +0 -1
  141. package/lib/types.d.ts.map +1 -1
  142. package/lib/types.js.map +1 -1
  143. package/package.json +14 -15
  144. package/src/@types/event.ts +19 -36
  145. package/src/@types/global.d.ts +21 -4
  146. package/src/autodiscovery.ts +1 -1
  147. package/src/base64.ts +38 -40
  148. package/src/browser-index.ts +0 -11
  149. package/src/client.ts +175 -3136
  150. package/src/digest.ts +3 -3
  151. package/src/embedded.ts +43 -149
  152. package/src/event-mapper.ts +0 -4
  153. package/src/feature.ts +1 -0
  154. package/src/http-api/errors.ts +3 -3
  155. package/src/http-api/utils.ts +2 -2
  156. package/src/matrix.ts +0 -41
  157. package/src/models/MSC3089Branch.ts +0 -3
  158. package/src/models/event-timeline-set.ts +17 -38
  159. package/src/models/event-timeline.ts +11 -26
  160. package/src/models/event.ts +54 -295
  161. package/src/models/invites-ignorer-types.ts +48 -0
  162. package/src/models/invites-ignorer.ts +7 -42
  163. package/src/models/poll.ts +0 -6
  164. package/src/models/relations-container.ts +1 -8
  165. package/src/models/relations.ts +0 -8
  166. package/src/models/room-member.ts +16 -1
  167. package/src/models/room-state.ts +4 -37
  168. package/src/models/room.ts +34 -69
  169. package/src/models/thread.ts +4 -3
  170. package/src/oidc/authorize.ts +7 -7
  171. package/src/oidc/discovery.ts +16 -10
  172. package/src/oidc/index.ts +3 -4
  173. package/src/oidc/register.ts +3 -3
  174. package/src/oidc/tokenRefresher.ts +3 -2
  175. package/src/oidc/validate.ts +40 -63
  176. package/src/randomstring.ts +65 -19
  177. package/src/sliding-sync-sdk.ts +10 -83
  178. package/src/sliding-sync.ts +6 -6
  179. package/src/store/indexeddb-local-backend.ts +2 -2
  180. package/src/store/indexeddb.ts +1 -1
  181. package/src/sync-accumulator.ts +33 -16
  182. package/src/sync.ts +112 -143
  183. package/src/testing.ts +36 -103
  184. package/src/types.ts +0 -1
  185. package/CHANGELOG.md +0 -5910
  186. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts +0 -14
  187. package/lib/@types/AESEncryptedSecretStoragePayload.d.ts.map +0 -1
  188. package/lib/@types/AESEncryptedSecretStoragePayload.js +0 -1
  189. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +0 -1
  190. package/lib/@types/crypto.d.ts +0 -47
  191. package/lib/@types/crypto.d.ts.map +0 -1
  192. package/lib/@types/crypto.js +0 -1
  193. package/lib/@types/crypto.js.map +0 -1
  194. package/lib/@types/matrix-sdk-crypto-wasm.d.js +0 -1
  195. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +0 -1
  196. package/lib/common-crypto/CryptoBackend.d.ts +0 -240
  197. package/lib/common-crypto/CryptoBackend.d.ts.map +0 -1
  198. package/lib/common-crypto/CryptoBackend.js +0 -73
  199. package/lib/common-crypto/CryptoBackend.js.map +0 -1
  200. package/lib/common-crypto/key-passphrase.d.ts +0 -14
  201. package/lib/common-crypto/key-passphrase.d.ts.map +0 -1
  202. package/lib/common-crypto/key-passphrase.js +0 -33
  203. package/lib/common-crypto/key-passphrase.js.map +0 -1
  204. package/lib/crypto/CrossSigning.d.ts +0 -184
  205. package/lib/crypto/CrossSigning.d.ts.map +0 -1
  206. package/lib/crypto/CrossSigning.js +0 -718
  207. package/lib/crypto/CrossSigning.js.map +0 -1
  208. package/lib/crypto/DeviceList.d.ts +0 -216
  209. package/lib/crypto/DeviceList.d.ts.map +0 -1
  210. package/lib/crypto/DeviceList.js +0 -892
  211. package/lib/crypto/DeviceList.js.map +0 -1
  212. package/lib/crypto/EncryptionSetup.d.ts +0 -152
  213. package/lib/crypto/EncryptionSetup.d.ts.map +0 -1
  214. package/lib/crypto/EncryptionSetup.js +0 -356
  215. package/lib/crypto/EncryptionSetup.js.map +0 -1
  216. package/lib/crypto/OlmDevice.d.ts +0 -457
  217. package/lib/crypto/OlmDevice.d.ts.map +0 -1
  218. package/lib/crypto/OlmDevice.js +0 -1241
  219. package/lib/crypto/OlmDevice.js.map +0 -1
  220. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts +0 -109
  221. package/lib/crypto/OutgoingRoomKeyRequestManager.d.ts.map +0 -1
  222. package/lib/crypto/OutgoingRoomKeyRequestManager.js +0 -415
  223. package/lib/crypto/OutgoingRoomKeyRequestManager.js.map +0 -1
  224. package/lib/crypto/RoomList.d.ts +0 -26
  225. package/lib/crypto/RoomList.d.ts.map +0 -1
  226. package/lib/crypto/RoomList.js +0 -71
  227. package/lib/crypto/RoomList.js.map +0 -1
  228. package/lib/crypto/SecretSharing.d.ts +0 -24
  229. package/lib/crypto/SecretSharing.d.ts.map +0 -1
  230. package/lib/crypto/SecretSharing.js +0 -194
  231. package/lib/crypto/SecretSharing.js.map +0 -1
  232. package/lib/crypto/SecretStorage.d.ts +0 -55
  233. package/lib/crypto/SecretStorage.d.ts.map +0 -1
  234. package/lib/crypto/SecretStorage.js +0 -118
  235. package/lib/crypto/SecretStorage.js.map +0 -1
  236. package/lib/crypto/aes.d.ts +0 -6
  237. package/lib/crypto/aes.d.ts.map +0 -1
  238. package/lib/crypto/aes.js +0 -24
  239. package/lib/crypto/aes.js.map +0 -1
  240. package/lib/crypto/algorithms/base.d.ts +0 -156
  241. package/lib/crypto/algorithms/base.d.ts.map +0 -1
  242. package/lib/crypto/algorithms/base.js +0 -187
  243. package/lib/crypto/algorithms/base.js.map +0 -1
  244. package/lib/crypto/algorithms/index.d.ts +0 -4
  245. package/lib/crypto/algorithms/index.d.ts.map +0 -1
  246. package/lib/crypto/algorithms/index.js +0 -20
  247. package/lib/crypto/algorithms/index.js.map +0 -1
  248. package/lib/crypto/algorithms/megolm.d.ts +0 -385
  249. package/lib/crypto/algorithms/megolm.d.ts.map +0 -1
  250. package/lib/crypto/algorithms/megolm.js +0 -1822
  251. package/lib/crypto/algorithms/megolm.js.map +0 -1
  252. package/lib/crypto/algorithms/olm.d.ts +0 -5
  253. package/lib/crypto/algorithms/olm.d.ts.map +0 -1
  254. package/lib/crypto/algorithms/olm.js +0 -299
  255. package/lib/crypto/algorithms/olm.js.map +0 -1
  256. package/lib/crypto/api.d.ts +0 -32
  257. package/lib/crypto/api.d.ts.map +0 -1
  258. package/lib/crypto/api.js +0 -22
  259. package/lib/crypto/api.js.map +0 -1
  260. package/lib/crypto/backup.d.ts +0 -227
  261. package/lib/crypto/backup.d.ts.map +0 -1
  262. package/lib/crypto/backup.js +0 -824
  263. package/lib/crypto/backup.js.map +0 -1
  264. package/lib/crypto/crypto.d.ts +0 -3
  265. package/lib/crypto/crypto.d.ts.map +0 -1
  266. package/lib/crypto/crypto.js +0 -19
  267. package/lib/crypto/crypto.js.map +0 -1
  268. package/lib/crypto/dehydration.d.ts +0 -34
  269. package/lib/crypto/dehydration.d.ts.map +0 -1
  270. package/lib/crypto/dehydration.js +0 -252
  271. package/lib/crypto/dehydration.js.map +0 -1
  272. package/lib/crypto/device-converter.d.ts +0 -9
  273. package/lib/crypto/device-converter.d.ts.map +0 -1
  274. package/lib/crypto/device-converter.js +0 -42
  275. package/lib/crypto/device-converter.js.map +0 -1
  276. package/lib/crypto/deviceinfo.d.ts +0 -99
  277. package/lib/crypto/deviceinfo.d.ts.map +0 -1
  278. package/lib/crypto/deviceinfo.js +0 -148
  279. package/lib/crypto/deviceinfo.js.map +0 -1
  280. package/lib/crypto/index.d.ts +0 -1210
  281. package/lib/crypto/index.d.ts.map +0 -1
  282. package/lib/crypto/index.js +0 -4101
  283. package/lib/crypto/index.js.map +0 -1
  284. package/lib/crypto/key_passphrase.d.ts +0 -14
  285. package/lib/crypto/key_passphrase.d.ts.map +0 -1
  286. package/lib/crypto/key_passphrase.js +0 -44
  287. package/lib/crypto/key_passphrase.js.map +0 -1
  288. package/lib/crypto/keybackup.d.ts +0 -18
  289. package/lib/crypto/keybackup.d.ts.map +0 -1
  290. package/lib/crypto/keybackup.js +0 -1
  291. package/lib/crypto/keybackup.js.map +0 -1
  292. package/lib/crypto/olmlib.d.ts +0 -129
  293. package/lib/crypto/olmlib.d.ts.map +0 -1
  294. package/lib/crypto/olmlib.js +0 -492
  295. package/lib/crypto/olmlib.js.map +0 -1
  296. package/lib/crypto/recoverykey.d.ts +0 -2
  297. package/lib/crypto/recoverykey.d.ts.map +0 -1
  298. package/lib/crypto/recoverykey.js +0 -19
  299. package/lib/crypto/recoverykey.js.map +0 -1
  300. package/lib/crypto/store/base.d.ts +0 -252
  301. package/lib/crypto/store/base.d.ts.map +0 -1
  302. package/lib/crypto/store/base.js +0 -64
  303. package/lib/crypto/store/base.js.map +0 -1
  304. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts +0 -187
  305. package/lib/crypto/store/indexeddb-crypto-store-backend.d.ts.map +0 -1
  306. package/lib/crypto/store/indexeddb-crypto-store-backend.js +0 -1145
  307. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +0 -1
  308. package/lib/crypto/store/indexeddb-crypto-store.d.ts +0 -432
  309. package/lib/crypto/store/indexeddb-crypto-store.d.ts.map +0 -1
  310. package/lib/crypto/store/indexeddb-crypto-store.js +0 -728
  311. package/lib/crypto/store/indexeddb-crypto-store.js.map +0 -1
  312. package/lib/crypto/store/localStorage-crypto-store.d.ts +0 -119
  313. package/lib/crypto/store/localStorage-crypto-store.d.ts.map +0 -1
  314. package/lib/crypto/store/localStorage-crypto-store.js +0 -531
  315. package/lib/crypto/store/localStorage-crypto-store.js.map +0 -1
  316. package/lib/crypto/store/memory-crypto-store.d.ts +0 -215
  317. package/lib/crypto/store/memory-crypto-store.d.ts.map +0 -1
  318. package/lib/crypto/store/memory-crypto-store.js +0 -622
  319. package/lib/crypto/store/memory-crypto-store.js.map +0 -1
  320. package/lib/crypto/verification/Base.d.ts +0 -105
  321. package/lib/crypto/verification/Base.d.ts.map +0 -1
  322. package/lib/crypto/verification/Base.js +0 -372
  323. package/lib/crypto/verification/Base.js.map +0 -1
  324. package/lib/crypto/verification/Error.d.ts +0 -35
  325. package/lib/crypto/verification/Error.d.ts.map +0 -1
  326. package/lib/crypto/verification/Error.js +0 -86
  327. package/lib/crypto/verification/Error.js.map +0 -1
  328. package/lib/crypto/verification/IllegalMethod.d.ts +0 -15
  329. package/lib/crypto/verification/IllegalMethod.d.ts.map +0 -1
  330. package/lib/crypto/verification/IllegalMethod.js +0 -43
  331. package/lib/crypto/verification/IllegalMethod.js.map +0 -1
  332. package/lib/crypto/verification/QRCode.d.ts +0 -51
  333. package/lib/crypto/verification/QRCode.d.ts.map +0 -1
  334. package/lib/crypto/verification/QRCode.js +0 -277
  335. package/lib/crypto/verification/QRCode.js.map +0 -1
  336. package/lib/crypto/verification/SAS.d.ts +0 -27
  337. package/lib/crypto/verification/SAS.d.ts.map +0 -1
  338. package/lib/crypto/verification/SAS.js +0 -485
  339. package/lib/crypto/verification/SAS.js.map +0 -1
  340. package/lib/crypto/verification/SASDecimal.d.ts +0 -8
  341. package/lib/crypto/verification/SASDecimal.d.ts.map +0 -1
  342. package/lib/crypto/verification/SASDecimal.js +0 -34
  343. package/lib/crypto/verification/SASDecimal.js.map +0 -1
  344. package/lib/crypto/verification/request/Channel.d.ts +0 -18
  345. package/lib/crypto/verification/request/Channel.d.ts.map +0 -1
  346. package/lib/crypto/verification/request/Channel.js +0 -1
  347. package/lib/crypto/verification/request/Channel.js.map +0 -1
  348. package/lib/crypto/verification/request/InRoomChannel.d.ts +0 -113
  349. package/lib/crypto/verification/request/InRoomChannel.d.ts.map +0 -1
  350. package/lib/crypto/verification/request/InRoomChannel.js +0 -351
  351. package/lib/crypto/verification/request/InRoomChannel.js.map +0 -1
  352. package/lib/crypto/verification/request/ToDeviceChannel.d.ts +0 -105
  353. package/lib/crypto/verification/request/ToDeviceChannel.d.ts.map +0 -1
  354. package/lib/crypto/verification/request/ToDeviceChannel.js +0 -328
  355. package/lib/crypto/verification/request/ToDeviceChannel.js.map +0 -1
  356. package/lib/crypto/verification/request/VerificationRequest.d.ts +0 -227
  357. package/lib/crypto/verification/request/VerificationRequest.d.ts.map +0 -1
  358. package/lib/crypto/verification/request/VerificationRequest.js +0 -937
  359. package/lib/crypto/verification/request/VerificationRequest.js.map +0 -1
  360. package/lib/crypto-api/CryptoEvent.d.ts +0 -69
  361. package/lib/crypto-api/CryptoEvent.d.ts.map +0 -1
  362. package/lib/crypto-api/CryptoEvent.js +0 -33
  363. package/lib/crypto-api/CryptoEvent.js.map +0 -1
  364. package/lib/crypto-api/CryptoEventHandlerMap.d.ts +0 -16
  365. package/lib/crypto-api/CryptoEventHandlerMap.d.ts.map +0 -1
  366. package/lib/crypto-api/CryptoEventHandlerMap.js +0 -22
  367. package/lib/crypto-api/CryptoEventHandlerMap.js.map +0 -1
  368. package/lib/crypto-api/index.d.ts +0 -978
  369. package/lib/crypto-api/index.d.ts.map +0 -1
  370. package/lib/crypto-api/index.js +0 -304
  371. package/lib/crypto-api/index.js.map +0 -1
  372. package/lib/crypto-api/key-passphrase.d.ts +0 -11
  373. package/lib/crypto-api/key-passphrase.d.ts.map +0 -1
  374. package/lib/crypto-api/key-passphrase.js +0 -51
  375. package/lib/crypto-api/key-passphrase.js.map +0 -1
  376. package/lib/crypto-api/keybackup.d.ts +0 -88
  377. package/lib/crypto-api/keybackup.d.ts.map +0 -1
  378. package/lib/crypto-api/keybackup.js +0 -1
  379. package/lib/crypto-api/keybackup.js.map +0 -1
  380. package/lib/crypto-api/recovery-key.d.ts +0 -11
  381. package/lib/crypto-api/recovery-key.d.ts.map +0 -1
  382. package/lib/crypto-api/recovery-key.js +0 -65
  383. package/lib/crypto-api/recovery-key.js.map +0 -1
  384. package/lib/crypto-api/verification.d.ts +0 -344
  385. package/lib/crypto-api/verification.d.ts.map +0 -1
  386. package/lib/crypto-api/verification.js +0 -91
  387. package/lib/crypto-api/verification.js.map +0 -1
  388. package/lib/matrixrtc/CallMembership.d.ts +0 -66
  389. package/lib/matrixrtc/CallMembership.d.ts.map +0 -1
  390. package/lib/matrixrtc/CallMembership.js +0 -197
  391. package/lib/matrixrtc/CallMembership.js.map +0 -1
  392. package/lib/matrixrtc/LivekitFocus.d.ts +0 -16
  393. package/lib/matrixrtc/LivekitFocus.d.ts.map +0 -1
  394. package/lib/matrixrtc/LivekitFocus.js +0 -20
  395. package/lib/matrixrtc/LivekitFocus.js.map +0 -1
  396. package/lib/matrixrtc/MatrixRTCSession.d.ts +0 -295
  397. package/lib/matrixrtc/MatrixRTCSession.d.ts.map +0 -1
  398. package/lib/matrixrtc/MatrixRTCSession.js +0 -1043
  399. package/lib/matrixrtc/MatrixRTCSession.js.map +0 -1
  400. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts +0 -40
  401. package/lib/matrixrtc/MatrixRTCSessionManager.d.ts.map +0 -1
  402. package/lib/matrixrtc/MatrixRTCSessionManager.js +0 -146
  403. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +0 -1
  404. package/lib/matrixrtc/focus.d.ts +0 -10
  405. package/lib/matrixrtc/focus.d.ts.map +0 -1
  406. package/lib/matrixrtc/focus.js +0 -1
  407. package/lib/matrixrtc/focus.js.map +0 -1
  408. package/lib/matrixrtc/index.d.ts +0 -7
  409. package/lib/matrixrtc/index.d.ts.map +0 -1
  410. package/lib/matrixrtc/index.js +0 -21
  411. package/lib/matrixrtc/index.js.map +0 -1
  412. package/lib/matrixrtc/types.d.ts +0 -19
  413. package/lib/matrixrtc/types.d.ts.map +0 -1
  414. package/lib/matrixrtc/types.js +0 -1
  415. package/lib/matrixrtc/types.js.map +0 -1
  416. package/lib/rendezvous/MSC4108SignInWithQR.d.ts +0 -112
  417. package/lib/rendezvous/MSC4108SignInWithQR.d.ts.map +0 -1
  418. package/lib/rendezvous/MSC4108SignInWithQR.js +0 -392
  419. package/lib/rendezvous/MSC4108SignInWithQR.js.map +0 -1
  420. package/lib/rendezvous/RendezvousChannel.d.ts +0 -27
  421. package/lib/rendezvous/RendezvousChannel.d.ts.map +0 -1
  422. package/lib/rendezvous/RendezvousChannel.js +0 -1
  423. package/lib/rendezvous/RendezvousChannel.js.map +0 -1
  424. package/lib/rendezvous/RendezvousCode.d.ts +0 -9
  425. package/lib/rendezvous/RendezvousCode.d.ts.map +0 -1
  426. package/lib/rendezvous/RendezvousCode.js +0 -1
  427. package/lib/rendezvous/RendezvousCode.js.map +0 -1
  428. package/lib/rendezvous/RendezvousError.d.ts +0 -6
  429. package/lib/rendezvous/RendezvousError.d.ts.map +0 -1
  430. package/lib/rendezvous/RendezvousError.js +0 -23
  431. package/lib/rendezvous/RendezvousError.js.map +0 -1
  432. package/lib/rendezvous/RendezvousFailureReason.d.ts +0 -31
  433. package/lib/rendezvous/RendezvousFailureReason.d.ts.map +0 -1
  434. package/lib/rendezvous/RendezvousFailureReason.js +0 -38
  435. package/lib/rendezvous/RendezvousFailureReason.js.map +0 -1
  436. package/lib/rendezvous/RendezvousIntent.d.ts +0 -5
  437. package/lib/rendezvous/RendezvousIntent.d.ts.map +0 -1
  438. package/lib/rendezvous/RendezvousIntent.js +0 -22
  439. package/lib/rendezvous/RendezvousIntent.js.map +0 -1
  440. package/lib/rendezvous/RendezvousTransport.d.ts +0 -36
  441. package/lib/rendezvous/RendezvousTransport.d.ts.map +0 -1
  442. package/lib/rendezvous/RendezvousTransport.js +0 -1
  443. package/lib/rendezvous/RendezvousTransport.js.map +0 -1
  444. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts +0 -58
  445. package/lib/rendezvous/channels/MSC4108SecureChannel.d.ts.map +0 -1
  446. package/lib/rendezvous/channels/MSC4108SecureChannel.js +0 -246
  447. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +0 -1
  448. package/lib/rendezvous/channels/index.d.ts +0 -2
  449. package/lib/rendezvous/channels/index.d.ts.map +0 -1
  450. package/lib/rendezvous/channels/index.js +0 -18
  451. package/lib/rendezvous/channels/index.js.map +0 -1
  452. package/lib/rendezvous/index.d.ts +0 -10
  453. package/lib/rendezvous/index.d.ts.map +0 -1
  454. package/lib/rendezvous/index.js +0 -23
  455. package/lib/rendezvous/index.js.map +0 -1
  456. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +0 -61
  457. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts.map +0 -1
  458. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +0 -253
  459. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +0 -1
  460. package/lib/rendezvous/transports/index.d.ts +0 -2
  461. package/lib/rendezvous/transports/index.d.ts.map +0 -1
  462. package/lib/rendezvous/transports/index.js +0 -18
  463. package/lib/rendezvous/transports/index.js.map +0 -1
  464. package/lib/rust-crypto/CrossSigningIdentity.d.ts +0 -33
  465. package/lib/rust-crypto/CrossSigningIdentity.d.ts.map +0 -1
  466. package/lib/rust-crypto/CrossSigningIdentity.js +0 -157
  467. package/lib/rust-crypto/CrossSigningIdentity.js.map +0 -1
  468. package/lib/rust-crypto/DehydratedDeviceManager.d.ts +0 -98
  469. package/lib/rust-crypto/DehydratedDeviceManager.d.ts.map +0 -1
  470. package/lib/rust-crypto/DehydratedDeviceManager.js +0 -285
  471. package/lib/rust-crypto/DehydratedDeviceManager.js.map +0 -1
  472. package/lib/rust-crypto/KeyClaimManager.d.ts +0 -33
  473. package/lib/rust-crypto/KeyClaimManager.d.ts.map +0 -1
  474. package/lib/rust-crypto/KeyClaimManager.js +0 -82
  475. package/lib/rust-crypto/KeyClaimManager.js.map +0 -1
  476. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts +0 -43
  477. package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +0 -1
  478. package/lib/rust-crypto/OutgoingRequestProcessor.js +0 -195
  479. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +0 -1
  480. package/lib/rust-crypto/OutgoingRequestsManager.d.ts +0 -47
  481. package/lib/rust-crypto/OutgoingRequestsManager.d.ts.map +0 -1
  482. package/lib/rust-crypto/OutgoingRequestsManager.js +0 -148
  483. package/lib/rust-crypto/OutgoingRequestsManager.js.map +0 -1
  484. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +0 -120
  485. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts.map +0 -1
  486. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +0 -467
  487. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +0 -1
  488. package/lib/rust-crypto/RoomEncryptor.d.ts +0 -98
  489. package/lib/rust-crypto/RoomEncryptor.d.ts.map +0 -1
  490. package/lib/rust-crypto/RoomEncryptor.js +0 -299
  491. package/lib/rust-crypto/RoomEncryptor.js.map +0 -1
  492. package/lib/rust-crypto/backup.d.ts +0 -254
  493. package/lib/rust-crypto/backup.d.ts.map +0 -1
  494. package/lib/rust-crypto/backup.js +0 -837
  495. package/lib/rust-crypto/backup.js.map +0 -1
  496. package/lib/rust-crypto/constants.d.ts +0 -3
  497. package/lib/rust-crypto/constants.d.ts.map +0 -1
  498. package/lib/rust-crypto/constants.js +0 -19
  499. package/lib/rust-crypto/constants.js.map +0 -1
  500. package/lib/rust-crypto/device-converter.d.ts +0 -28
  501. package/lib/rust-crypto/device-converter.d.ts.map +0 -1
  502. package/lib/rust-crypto/device-converter.js +0 -123
  503. package/lib/rust-crypto/device-converter.js.map +0 -1
  504. package/lib/rust-crypto/index.d.ts +0 -61
  505. package/lib/rust-crypto/index.d.ts.map +0 -1
  506. package/lib/rust-crypto/index.js +0 -152
  507. package/lib/rust-crypto/index.js.map +0 -1
  508. package/lib/rust-crypto/libolm_migration.d.ts +0 -81
  509. package/lib/rust-crypto/libolm_migration.d.ts.map +0 -1
  510. package/lib/rust-crypto/libolm_migration.js +0 -459
  511. package/lib/rust-crypto/libolm_migration.js.map +0 -1
  512. package/lib/rust-crypto/rust-crypto.d.ts +0 -556
  513. package/lib/rust-crypto/rust-crypto.d.ts.map +0 -1
  514. package/lib/rust-crypto/rust-crypto.js +0 -2016
  515. package/lib/rust-crypto/rust-crypto.js.map +0 -1
  516. package/lib/rust-crypto/secret-storage.d.ts +0 -22
  517. package/lib/rust-crypto/secret-storage.d.ts.map +0 -1
  518. package/lib/rust-crypto/secret-storage.js +0 -63
  519. package/lib/rust-crypto/secret-storage.js.map +0 -1
  520. package/lib/rust-crypto/verification.d.ts +0 -319
  521. package/lib/rust-crypto/verification.d.ts.map +0 -1
  522. package/lib/rust-crypto/verification.js +0 -816
  523. package/lib/rust-crypto/verification.js.map +0 -1
  524. package/lib/secret-storage.d.ts +0 -370
  525. package/lib/secret-storage.d.ts.map +0 -1
  526. package/lib/secret-storage.js +0 -466
  527. package/lib/secret-storage.js.map +0 -1
  528. package/lib/utils/decryptAESSecretStorageItem.d.ts +0 -12
  529. package/lib/utils/decryptAESSecretStorageItem.d.ts.map +0 -1
  530. package/lib/utils/decryptAESSecretStorageItem.js +0 -50
  531. package/lib/utils/decryptAESSecretStorageItem.js.map +0 -1
  532. package/lib/utils/encryptAESSecretStorageItem.d.ts +0 -16
  533. package/lib/utils/encryptAESSecretStorageItem.d.ts.map +0 -1
  534. package/lib/utils/encryptAESSecretStorageItem.js +0 -68
  535. package/lib/utils/encryptAESSecretStorageItem.js.map +0 -1
  536. package/lib/utils/internal/deriveKeys.d.ts +0 -10
  537. package/lib/utils/internal/deriveKeys.d.ts.map +0 -1
  538. package/lib/utils/internal/deriveKeys.js +0 -60
  539. package/lib/utils/internal/deriveKeys.js.map +0 -1
  540. package/lib/webrtc/audioContext.d.ts +0 -15
  541. package/lib/webrtc/audioContext.d.ts.map +0 -1
  542. package/lib/webrtc/audioContext.js +0 -46
  543. package/lib/webrtc/audioContext.js.map +0 -1
  544. package/lib/webrtc/call.d.ts +0 -560
  545. package/lib/webrtc/call.d.ts.map +0 -1
  546. package/lib/webrtc/call.js +0 -2541
  547. package/lib/webrtc/call.js.map +0 -1
  548. package/lib/webrtc/callEventHandler.d.ts +0 -37
  549. package/lib/webrtc/callEventHandler.d.ts.map +0 -1
  550. package/lib/webrtc/callEventHandler.js +0 -344
  551. package/lib/webrtc/callEventHandler.js.map +0 -1
  552. package/lib/webrtc/callEventTypes.d.ts +0 -73
  553. package/lib/webrtc/callEventTypes.d.ts.map +0 -1
  554. package/lib/webrtc/callEventTypes.js +0 -13
  555. package/lib/webrtc/callEventTypes.js.map +0 -1
  556. package/lib/webrtc/callFeed.d.ts +0 -128
  557. package/lib/webrtc/callFeed.d.ts.map +0 -1
  558. package/lib/webrtc/callFeed.js +0 -289
  559. package/lib/webrtc/callFeed.js.map +0 -1
  560. package/lib/webrtc/groupCall.d.ts +0 -323
  561. package/lib/webrtc/groupCall.d.ts.map +0 -1
  562. package/lib/webrtc/groupCall.js +0 -1337
  563. package/lib/webrtc/groupCall.js.map +0 -1
  564. package/lib/webrtc/groupCallEventHandler.d.ts +0 -31
  565. package/lib/webrtc/groupCallEventHandler.d.ts.map +0 -1
  566. package/lib/webrtc/groupCallEventHandler.js +0 -178
  567. package/lib/webrtc/groupCallEventHandler.js.map +0 -1
  568. package/lib/webrtc/mediaHandler.d.ts +0 -89
  569. package/lib/webrtc/mediaHandler.d.ts.map +0 -1
  570. package/lib/webrtc/mediaHandler.js +0 -437
  571. package/lib/webrtc/mediaHandler.js.map +0 -1
  572. package/lib/webrtc/stats/callFeedStatsReporter.d.ts +0 -8
  573. package/lib/webrtc/stats/callFeedStatsReporter.d.ts.map +0 -1
  574. package/lib/webrtc/stats/callFeedStatsReporter.js +0 -82
  575. package/lib/webrtc/stats/callFeedStatsReporter.js.map +0 -1
  576. package/lib/webrtc/stats/callStatsReportGatherer.d.ts +0 -25
  577. package/lib/webrtc/stats/callStatsReportGatherer.d.ts.map +0 -1
  578. package/lib/webrtc/stats/callStatsReportGatherer.js +0 -199
  579. package/lib/webrtc/stats/callStatsReportGatherer.js.map +0 -1
  580. package/lib/webrtc/stats/callStatsReportSummary.d.ts +0 -17
  581. package/lib/webrtc/stats/callStatsReportSummary.d.ts.map +0 -1
  582. package/lib/webrtc/stats/callStatsReportSummary.js +0 -1
  583. package/lib/webrtc/stats/callStatsReportSummary.js.map +0 -1
  584. package/lib/webrtc/stats/connectionStats.d.ts +0 -28
  585. package/lib/webrtc/stats/connectionStats.d.ts.map +0 -1
  586. package/lib/webrtc/stats/connectionStats.js +0 -26
  587. package/lib/webrtc/stats/connectionStats.js.map +0 -1
  588. package/lib/webrtc/stats/connectionStatsBuilder.d.ts +0 -5
  589. package/lib/webrtc/stats/connectionStatsBuilder.d.ts.map +0 -1
  590. package/lib/webrtc/stats/connectionStatsBuilder.js +0 -27
  591. package/lib/webrtc/stats/connectionStatsBuilder.js.map +0 -1
  592. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts +0 -7
  593. package/lib/webrtc/stats/connectionStatsReportBuilder.d.ts.map +0 -1
  594. package/lib/webrtc/stats/connectionStatsReportBuilder.js +0 -121
  595. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +0 -1
  596. package/lib/webrtc/stats/groupCallStats.d.ts +0 -22
  597. package/lib/webrtc/stats/groupCallStats.d.ts.map +0 -1
  598. package/lib/webrtc/stats/groupCallStats.js +0 -78
  599. package/lib/webrtc/stats/groupCallStats.js.map +0 -1
  600. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts +0 -10
  601. package/lib/webrtc/stats/media/mediaSsrcHandler.d.ts.map +0 -1
  602. package/lib/webrtc/stats/media/mediaSsrcHandler.js +0 -57
  603. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +0 -1
  604. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts +0 -12
  605. package/lib/webrtc/stats/media/mediaTrackHandler.d.ts.map +0 -1
  606. package/lib/webrtc/stats/media/mediaTrackHandler.js +0 -62
  607. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +0 -1
  608. package/lib/webrtc/stats/media/mediaTrackStats.d.ts +0 -86
  609. package/lib/webrtc/stats/media/mediaTrackStats.d.ts.map +0 -1
  610. package/lib/webrtc/stats/media/mediaTrackStats.js +0 -142
  611. package/lib/webrtc/stats/media/mediaTrackStats.js.map +0 -1
  612. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts +0 -22
  613. package/lib/webrtc/stats/media/mediaTrackStatsHandler.d.ts.map +0 -1
  614. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +0 -76
  615. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +0 -1
  616. package/lib/webrtc/stats/statsReport.d.ts +0 -99
  617. package/lib/webrtc/stats/statsReport.d.ts.map +0 -1
  618. package/lib/webrtc/stats/statsReport.js +0 -32
  619. package/lib/webrtc/stats/statsReport.js.map +0 -1
  620. package/lib/webrtc/stats/statsReportEmitter.d.ts +0 -15
  621. package/lib/webrtc/stats/statsReportEmitter.d.ts.map +0 -1
  622. package/lib/webrtc/stats/statsReportEmitter.js +0 -33
  623. package/lib/webrtc/stats/statsReportEmitter.js.map +0 -1
  624. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts +0 -16
  625. package/lib/webrtc/stats/summaryStatsReportGatherer.d.ts.map +0 -1
  626. package/lib/webrtc/stats/summaryStatsReportGatherer.js +0 -116
  627. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +0 -1
  628. package/lib/webrtc/stats/trackStatsBuilder.d.ts +0 -19
  629. package/lib/webrtc/stats/trackStatsBuilder.d.ts.map +0 -1
  630. package/lib/webrtc/stats/trackStatsBuilder.js +0 -168
  631. package/lib/webrtc/stats/trackStatsBuilder.js.map +0 -1
  632. package/lib/webrtc/stats/transportStats.d.ts +0 -11
  633. package/lib/webrtc/stats/transportStats.d.ts.map +0 -1
  634. package/lib/webrtc/stats/transportStats.js +0 -1
  635. package/lib/webrtc/stats/transportStats.js.map +0 -1
  636. package/lib/webrtc/stats/transportStatsBuilder.d.ts +0 -5
  637. package/lib/webrtc/stats/transportStatsBuilder.d.ts.map +0 -1
  638. package/lib/webrtc/stats/transportStatsBuilder.js +0 -34
  639. package/lib/webrtc/stats/transportStatsBuilder.js.map +0 -1
  640. package/lib/webrtc/stats/valueFormatter.d.ts +0 -4
  641. package/lib/webrtc/stats/valueFormatter.d.ts.map +0 -1
  642. package/lib/webrtc/stats/valueFormatter.js +0 -25
  643. package/lib/webrtc/stats/valueFormatter.js.map +0 -1
  644. package/src/@types/AESEncryptedSecretStoragePayload.ts +0 -29
  645. package/src/@types/crypto.ts +0 -73
  646. package/src/@types/matrix-sdk-crypto-wasm.d.ts +0 -44
  647. package/src/common-crypto/CryptoBackend.ts +0 -302
  648. package/src/common-crypto/README.md +0 -4
  649. package/src/common-crypto/key-passphrase.ts +0 -43
  650. package/src/crypto/CrossSigning.ts +0 -773
  651. package/src/crypto/DeviceList.ts +0 -989
  652. package/src/crypto/EncryptionSetup.ts +0 -351
  653. package/src/crypto/OlmDevice.ts +0 -1500
  654. package/src/crypto/OutgoingRoomKeyRequestManager.ts +0 -485
  655. package/src/crypto/RoomList.ts +0 -70
  656. package/src/crypto/SecretSharing.ts +0 -240
  657. package/src/crypto/SecretStorage.ts +0 -136
  658. package/src/crypto/aes.ts +0 -23
  659. package/src/crypto/algorithms/base.ts +0 -236
  660. package/src/crypto/algorithms/index.ts +0 -20
  661. package/src/crypto/algorithms/megolm.ts +0 -2216
  662. package/src/crypto/algorithms/olm.ts +0 -381
  663. package/src/crypto/api.ts +0 -70
  664. package/src/crypto/backup.ts +0 -922
  665. package/src/crypto/crypto.ts +0 -18
  666. package/src/crypto/dehydration.ts +0 -272
  667. package/src/crypto/device-converter.ts +0 -45
  668. package/src/crypto/deviceinfo.ts +0 -158
  669. package/src/crypto/index.ts +0 -4418
  670. package/src/crypto/key_passphrase.ts +0 -42
  671. package/src/crypto/keybackup.ts +0 -47
  672. package/src/crypto/olmlib.ts +0 -539
  673. package/src/crypto/recoverykey.ts +0 -18
  674. package/src/crypto/store/base.ts +0 -348
  675. package/src/crypto/store/indexeddb-crypto-store-backend.ts +0 -1250
  676. package/src/crypto/store/indexeddb-crypto-store.ts +0 -845
  677. package/src/crypto/store/localStorage-crypto-store.ts +0 -579
  678. package/src/crypto/store/memory-crypto-store.ts +0 -680
  679. package/src/crypto/verification/Base.ts +0 -409
  680. package/src/crypto/verification/Error.ts +0 -76
  681. package/src/crypto/verification/IllegalMethod.ts +0 -50
  682. package/src/crypto/verification/QRCode.ts +0 -310
  683. package/src/crypto/verification/SAS.ts +0 -494
  684. package/src/crypto/verification/SASDecimal.ts +0 -37
  685. package/src/crypto/verification/request/Channel.ts +0 -34
  686. package/src/crypto/verification/request/InRoomChannel.ts +0 -371
  687. package/src/crypto/verification/request/ToDeviceChannel.ts +0 -354
  688. package/src/crypto/verification/request/VerificationRequest.ts +0 -976
  689. package/src/crypto-api/CryptoEvent.ts +0 -93
  690. package/src/crypto-api/CryptoEventHandlerMap.ts +0 -32
  691. package/src/crypto-api/index.ts +0 -1175
  692. package/src/crypto-api/key-passphrase.ts +0 -58
  693. package/src/crypto-api/keybackup.ts +0 -115
  694. package/src/crypto-api/recovery-key.ts +0 -69
  695. package/src/crypto-api/verification.ts +0 -408
  696. package/src/matrixrtc/CallMembership.ts +0 -247
  697. package/src/matrixrtc/LivekitFocus.ts +0 -39
  698. package/src/matrixrtc/MatrixRTCSession.ts +0 -1319
  699. package/src/matrixrtc/MatrixRTCSessionManager.ts +0 -166
  700. package/src/matrixrtc/focus.ts +0 -25
  701. package/src/matrixrtc/index.ts +0 -22
  702. package/src/matrixrtc/types.ts +0 -36
  703. package/src/rendezvous/MSC4108SignInWithQR.ts +0 -444
  704. package/src/rendezvous/RendezvousChannel.ts +0 -48
  705. package/src/rendezvous/RendezvousCode.ts +0 -25
  706. package/src/rendezvous/RendezvousError.ts +0 -26
  707. package/src/rendezvous/RendezvousFailureReason.ts +0 -49
  708. package/src/rendezvous/RendezvousIntent.ts +0 -20
  709. package/src/rendezvous/RendezvousTransport.ts +0 -58
  710. package/src/rendezvous/channels/MSC4108SecureChannel.ts +0 -270
  711. package/src/rendezvous/channels/index.ts +0 -17
  712. package/src/rendezvous/index.ts +0 -25
  713. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +0 -270
  714. package/src/rendezvous/transports/index.ts +0 -17
  715. package/src/rust-crypto/CrossSigningIdentity.ts +0 -183
  716. package/src/rust-crypto/DehydratedDeviceManager.ts +0 -306
  717. package/src/rust-crypto/KeyClaimManager.ts +0 -86
  718. package/src/rust-crypto/OutgoingRequestProcessor.ts +0 -236
  719. package/src/rust-crypto/OutgoingRequestsManager.ts +0 -143
  720. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +0 -501
  721. package/src/rust-crypto/RoomEncryptor.ts +0 -352
  722. package/src/rust-crypto/backup.ts +0 -881
  723. package/src/rust-crypto/constants.ts +0 -18
  724. package/src/rust-crypto/device-converter.ts +0 -128
  725. package/src/rust-crypto/index.ts +0 -237
  726. package/src/rust-crypto/libolm_migration.ts +0 -530
  727. package/src/rust-crypto/rust-crypto.ts +0 -2205
  728. package/src/rust-crypto/secret-storage.ts +0 -60
  729. package/src/rust-crypto/verification.ts +0 -830
  730. package/src/secret-storage.ts +0 -693
  731. package/src/utils/decryptAESSecretStorageItem.ts +0 -54
  732. package/src/utils/encryptAESSecretStorageItem.ts +0 -73
  733. package/src/utils/internal/deriveKeys.ts +0 -63
  734. package/src/webrtc/audioContext.ts +0 -44
  735. package/src/webrtc/call.ts +0 -3074
  736. package/src/webrtc/callEventHandler.ts +0 -425
  737. package/src/webrtc/callEventTypes.ts +0 -93
  738. package/src/webrtc/callFeed.ts +0 -364
  739. package/src/webrtc/groupCall.ts +0 -1735
  740. package/src/webrtc/groupCallEventHandler.ts +0 -234
  741. package/src/webrtc/mediaHandler.ts +0 -484
  742. package/src/webrtc/stats/callFeedStatsReporter.ts +0 -94
  743. package/src/webrtc/stats/callStatsReportGatherer.ts +0 -219
  744. package/src/webrtc/stats/callStatsReportSummary.ts +0 -30
  745. package/src/webrtc/stats/connectionStats.ts +0 -47
  746. package/src/webrtc/stats/connectionStatsBuilder.ts +0 -28
  747. package/src/webrtc/stats/connectionStatsReportBuilder.ts +0 -140
  748. package/src/webrtc/stats/groupCallStats.ts +0 -93
  749. package/src/webrtc/stats/media/mediaSsrcHandler.ts +0 -57
  750. package/src/webrtc/stats/media/mediaTrackHandler.ts +0 -76
  751. package/src/webrtc/stats/media/mediaTrackStats.ts +0 -176
  752. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +0 -90
  753. package/src/webrtc/stats/statsReport.ts +0 -133
  754. package/src/webrtc/stats/statsReportEmitter.ts +0 -49
  755. package/src/webrtc/stats/summaryStatsReportGatherer.ts +0 -148
  756. package/src/webrtc/stats/trackStatsBuilder.ts +0 -207
  757. package/src/webrtc/stats/transportStats.ts +0 -26
  758. package/src/webrtc/stats/transportStatsBuilder.ts +0 -48
  759. package/src/webrtc/stats/valueFormatter.ts +0 -27
@@ -20,13 +20,28 @@ import { IdTokenClaims, OidcMetadata, SigninResponse } from "oidc-client-ts";
20
20
  import { logger } from "../logger.ts";
21
21
  import { OidcError } from "./error.ts";
22
22
 
23
- export type ValidatedIssuerConfig = {
24
- authorizationEndpoint: string;
25
- tokenEndpoint: string;
26
- registrationEndpoint?: string;
27
- accountManagementEndpoint?: string;
28
- accountManagementActionsSupported?: string[];
29
- };
23
+ /**
24
+ * Metadata from OIDC authority discovery
25
+ * With validated properties required in type
26
+ */
27
+ export type ValidatedAuthMetadata = Partial<OidcMetadata> &
28
+ Pick<
29
+ OidcMetadata,
30
+ | "issuer"
31
+ | "authorization_endpoint"
32
+ | "token_endpoint"
33
+ | "revocation_endpoint"
34
+ | "response_types_supported"
35
+ | "grant_types_supported"
36
+ | "code_challenge_methods_supported"
37
+ > & {
38
+ // MSC2965 extensions to the OIDC spec
39
+ account_management_uri?: string;
40
+ account_management_actions_supported?: string[];
41
+ // The OidcMetadata type from oidc-client-ts does not include `prompt_values_supported`
42
+ // even though it is part of the OIDC spec
43
+ prompt_values_supported?: string[];
44
+ };
30
45
 
31
46
  const isRecord = (value: unknown): value is Record<string, unknown> =>
32
47
  !!value && typeof value === "object" && !Array.isArray(value);
@@ -67,78 +82,39 @@ const requiredArrayValue = (wellKnown: Record<string, unknown>, key: string, val
67
82
  * Validates issuer `.well-known/openid-configuration`
68
83
  * As defined in RFC5785 https://openid.net/specs/openid-connect-discovery-1_0.html
69
84
  * validates that OP is compatible with Element's OIDC flow
70
- * @param wellKnown - json object
85
+ * @param authMetadata - json object
71
86
  * @returns valid issuer config
72
87
  * @throws Error - when issuer config is not found or is invalid
73
88
  */
74
- export const validateOIDCIssuerWellKnown = (wellKnown: unknown): ValidatedIssuerConfig => {
75
- if (!isRecord(wellKnown)) {
89
+ export const validateAuthMetadata = (authMetadata: unknown): ValidatedAuthMetadata => {
90
+ if (!isRecord(authMetadata)) {
76
91
  logger.error("Issuer configuration not found or malformed");
77
92
  throw new Error(OidcError.OpSupport);
78
93
  }
79
94
 
80
95
  const isInvalid = [
81
- requiredStringProperty(wellKnown, "authorization_endpoint"),
82
- requiredStringProperty(wellKnown, "token_endpoint"),
83
- requiredStringProperty(wellKnown, "revocation_endpoint"),
84
- optionalStringProperty(wellKnown, "registration_endpoint"),
85
- optionalStringProperty(wellKnown, "account_management_uri"),
86
- optionalStringProperty(wellKnown, "device_authorization_endpoint"),
87
- optionalStringArrayProperty(wellKnown, "account_management_actions_supported"),
88
- requiredArrayValue(wellKnown, "response_types_supported", "code"),
89
- requiredArrayValue(wellKnown, "grant_types_supported", "authorization_code"),
90
- requiredArrayValue(wellKnown, "code_challenge_methods_supported", "S256"),
96
+ requiredStringProperty(authMetadata, "issuer"),
97
+ requiredStringProperty(authMetadata, "authorization_endpoint"),
98
+ requiredStringProperty(authMetadata, "token_endpoint"),
99
+ requiredStringProperty(authMetadata, "revocation_endpoint"),
100
+ optionalStringProperty(authMetadata, "registration_endpoint"),
101
+ optionalStringProperty(authMetadata, "account_management_uri"),
102
+ optionalStringProperty(authMetadata, "device_authorization_endpoint"),
103
+ optionalStringArrayProperty(authMetadata, "account_management_actions_supported"),
104
+ requiredArrayValue(authMetadata, "response_types_supported", "code"),
105
+ requiredArrayValue(authMetadata, "grant_types_supported", "authorization_code"),
106
+ requiredArrayValue(authMetadata, "code_challenge_methods_supported", "S256"),
107
+ optionalStringArrayProperty(authMetadata, "prompt_values_supported"),
91
108
  ].some((isValid) => !isValid);
92
109
 
93
110
  if (!isInvalid) {
94
- return {
95
- authorizationEndpoint: <string>wellKnown["authorization_endpoint"],
96
- tokenEndpoint: <string>wellKnown["token_endpoint"],
97
- registrationEndpoint: <string>wellKnown["registration_endpoint"],
98
- accountManagementEndpoint: <string>wellKnown["account_management_uri"],
99
- accountManagementActionsSupported: <string[]>wellKnown["account_management_actions_supported"],
100
- };
111
+ return authMetadata as ValidatedAuthMetadata;
101
112
  }
102
113
 
103
114
  logger.error("Issuer configuration not valid");
104
115
  throw new Error(OidcError.OpSupport);
105
116
  };
106
117
 
107
- /**
108
- * Metadata from OIDC authority discovery
109
- * With validated properties required in type
110
- */
111
- export type ValidatedIssuerMetadata = Partial<OidcMetadata> &
112
- Pick<
113
- OidcMetadata,
114
- | "issuer"
115
- | "authorization_endpoint"
116
- | "token_endpoint"
117
- | "registration_endpoint"
118
- | "revocation_endpoint"
119
- | "response_types_supported"
120
- | "grant_types_supported"
121
- | "code_challenge_methods_supported"
122
- | "device_authorization_endpoint"
123
- > & {
124
- // MSC2965 extensions to the OIDC spec
125
- account_management_uri?: string;
126
- account_management_actions_supported?: string[];
127
- };
128
-
129
- /**
130
- * Wraps validateOIDCIssuerWellKnown in a type assertion
131
- * that asserts expected properties are present
132
- * (Typescript assertions cannot be arrow functions)
133
- * @param metadata - issuer openid-configuration response
134
- * @throws when metadata validation fails
135
- */
136
- export function isValidatedIssuerMetadata(
137
- metadata: Partial<OidcMetadata>,
138
- ): asserts metadata is ValidatedIssuerMetadata {
139
- validateOIDCIssuerWellKnown(metadata);
140
- }
141
-
142
118
  export const decodeIdToken = (token: string): IdTokenClaims => {
143
119
  try {
144
120
  return jwtDecode<IdTokenClaims>(token);
@@ -179,7 +155,8 @@ export const validateIdToken = (
179
155
  * The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client.
180
156
  * EW: Don't accept tokens with other untrusted audiences
181
157
  * */
182
- if (claims.aud !== clientId) {
158
+ const sanitisedAuds = typeof claims.aud === "string" ? [claims.aud] : claims.aud;
159
+ if (!sanitisedAuds.includes(clientId)) {
183
160
  throw new Error("Invalid audience");
184
161
  }
185
162
 
@@ -17,9 +17,23 @@ limitations under the License.
17
17
 
18
18
  import { encodeUnpaddedBase64Url } from "./base64.ts";
19
19
 
20
- const LOWERCASE = "abcdefghijklmnopqrstuvwxyz";
21
- const UPPERCASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
22
- const DIGITS = "0123456789";
20
+ /**
21
+ * String representing the lowercase latin alphabet for use in {@link secureRandomStringFrom}
22
+ * (can be combined with other such exports or other characters by appending strings)
23
+ */
24
+ export const LOWERCASE = "abcdefghijklmnopqrstuvwxyz";
25
+
26
+ /**
27
+ * String representing the uppercase latin alphabet for use in secureRandomStringFrom
28
+ * (can be combined with other such exports or other characters by appending strings)
29
+ */
30
+ export const UPPERCASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
31
+
32
+ /**
33
+ * String representing the arabic numerals for use in secureRandomStringFrom
34
+ * (can be combined with other such exports or other characters by appending strings)
35
+ */
36
+ export const DIGITS = "0123456789";
23
37
 
24
38
  export function secureRandomBase64Url(len: number): string {
25
39
  const key = new Uint8Array(len);
@@ -28,24 +42,56 @@ export function secureRandomBase64Url(len: number): string {
28
42
  return encodeUnpaddedBase64Url(key);
29
43
  }
30
44
 
31
- export function randomString(len: number): string {
32
- return randomStringFrom(len, UPPERCASE + LOWERCASE + DIGITS);
45
+ /**
46
+ * Generates a random string of uppercase and lowercase letters plus digits using a
47
+ * cryptographically secure random number generator.
48
+ * @param len The length of the string to generate
49
+ * @returns Random string of uppercase and lowercase letters plus digits of length `len`
50
+ */
51
+ export function secureRandomString(len: number): string {
52
+ return secureRandomStringFrom(len, UPPERCASE + LOWERCASE + DIGITS);
33
53
  }
34
54
 
35
- export function randomLowercaseString(len: number): string {
36
- return randomStringFrom(len, LOWERCASE);
37
- }
38
-
39
- export function randomUppercaseString(len: number): string {
40
- return randomStringFrom(len, UPPERCASE);
41
- }
42
-
43
- function randomStringFrom(len: number, chars: string): string {
44
- let ret = "";
45
-
46
- for (let i = 0; i < len; ++i) {
47
- ret += chars.charAt(Math.floor(Math.random() * chars.length));
55
+ /**
56
+ * Generate a cryptographically secure random string using characters given.
57
+ *
58
+ * @param len - The length of the string to generate (must be positive and less than 32768).
59
+ * @param chars - The characters to use in the random string (between 2 and 256 characters long).
60
+ * @returns Random string of characters of length `len`.
61
+ */
62
+ export function secureRandomStringFrom(len: number, chars: string): string {
63
+ // This is intended for latin strings so 256 possibilities should be more than enough and
64
+ // means we can use random bytes, minimising the amount of entropy we need to ask for.
65
+ if (chars.length < 2 || chars.length > 256) {
66
+ throw new Error("Character set must be between 2 and 256 characters long");
67
+ }
68
+ if (len < 1 || len > 32768) {
69
+ throw new Error("Requested random string length must be between 1 and 32768");
70
+ }
71
+ // We'll generate random unsigned bytes, so get the largest number less than 256 that is a multiple
72
+ // of the length of the character set: We'll need to discard any random values that are larger than
73
+ // this as we can't possibly map them onto the character set while keeping each character equally
74
+ // likely to be chosen (minus 1 to convert to indices in a string). (Essentially, we're using a d8
75
+ // to choose between 7 possibilities and re-rolling on an 8, keeping all 7 outcomes equally likely.)
76
+ // Our random values must be strictly less than this
77
+ const randomValueCutoff = 256 - (256 % chars.length);
78
+ // Grab 30% more entropy than we need. This should be enough that we can discard the values that are
79
+ // too high without having to go back and grab more unless we're super unlucky.
80
+ const entropyBuffer = new Uint8Array(Math.floor(len * 1.3));
81
+ // Mark all of this buffer as used to start with (we haven't populated it with entropy yet) so it will
82
+ // be filled on the first iteration.
83
+ let entropyBufferPos = entropyBuffer.length;
84
+ const result = [];
85
+ while (result.length < len) {
86
+ if (entropyBufferPos === entropyBuffer.length) {
87
+ globalThis.crypto.getRandomValues(entropyBuffer);
88
+ entropyBufferPos = 0;
89
+ }
90
+ const randomByte = entropyBuffer[entropyBufferPos++];
91
+ if (randomByte < randomValueCutoff) {
92
+ result.push(chars[randomByte % chars.length]);
93
+ }
48
94
  }
49
95
 
50
- return ret;
96
+ return result.join("");
51
97
  }
@@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  */
16
16
 
17
- import type { SyncCryptoCallbacks } from "./common-crypto/CryptoBackend.ts";
18
17
  import { NotificationCountType, Room, RoomEvent } from "./models/room.ts";
19
18
  import { logger } from "./logger.ts";
20
19
  import { promiseMapSeries } from "./utils.ts";
@@ -24,13 +23,10 @@ import {
24
23
  ISyncStateData,
25
24
  SyncState,
26
25
  _createAndReEmitRoom,
27
- SyncApiOptions,
28
26
  defaultClientOpts,
29
- defaultSyncApiOpts,
30
27
  SetPresence,
31
28
  } from "./sync.ts";
32
29
  import { MatrixEvent } from "./models/event.ts";
33
- import { Crypto } from "./crypto/index.ts";
34
30
  import { IMinimalEvent, IRoomEvent, IStateEvent, IStrippedState, ISyncResponse } from "./sync-accumulator.ts";
35
31
  import { MatrixError } from "./http-api/index.ts";
36
32
  import {
@@ -53,54 +49,6 @@ import { KnownMembership } from "./@types/membership.ts";
53
49
  // keepAlive is successful but the server /sync fails.
54
50
  const FAILED_SYNC_ERROR_THRESHOLD = 3;
55
51
 
56
- type ExtensionE2EERequest = {
57
- enabled: boolean;
58
- };
59
-
60
- type ExtensionE2EEResponse = Pick<
61
- ISyncResponse,
62
- | "device_lists"
63
- | "device_one_time_keys_count"
64
- | "device_unused_fallback_key_types"
65
- | "org.matrix.msc2732.device_unused_fallback_key_types"
66
- >;
67
-
68
- class ExtensionE2EE implements Extension<ExtensionE2EERequest, ExtensionE2EEResponse> {
69
- public constructor(private readonly crypto: Crypto) {}
70
-
71
- public name(): string {
72
- return "e2ee";
73
- }
74
-
75
- public when(): ExtensionState {
76
- return ExtensionState.PreProcess;
77
- }
78
-
79
- public onRequest(isInitial: boolean): ExtensionE2EERequest | undefined {
80
- if (!isInitial) {
81
- return undefined;
82
- }
83
- return {
84
- enabled: true, // this is sticky so only send it on the initial request
85
- };
86
- }
87
-
88
- public async onResponse(data: ExtensionE2EEResponse): Promise<void> {
89
- // Handle device list updates
90
- if (data.device_lists) {
91
- await this.crypto.processDeviceLists(data.device_lists);
92
- }
93
-
94
- // Handle one_time_keys_count and unused_fallback_key_types
95
- await this.crypto.processKeyCounts(
96
- data.device_one_time_keys_count,
97
- data["device_unused_fallback_key_types"] || data["org.matrix.msc2732.device_unused_fallback_key_types"],
98
- );
99
-
100
- this.crypto.onSyncCompleted({});
101
- }
102
- }
103
-
104
52
  type ExtensionToDeviceRequest = {
105
53
  since?: string;
106
54
  limit?: number;
@@ -117,7 +65,6 @@ class ExtensionToDevice implements Extension<ExtensionToDeviceRequest, Extension
117
65
 
118
66
  public constructor(
119
67
  private readonly client: MatrixClient,
120
- private readonly cryptoCallbacks?: SyncCryptoCallbacks,
121
68
  ) {}
122
69
 
123
70
  public name(): string {
@@ -141,10 +88,7 @@ class ExtensionToDevice implements Extension<ExtensionToDeviceRequest, Extension
141
88
 
142
89
  public async onResponse(data: ExtensionToDeviceResponse): Promise<void> {
143
90
  const cancelledKeyVerificationTxns: string[] = [];
144
- let events = data["events"] || [];
145
- if (events.length > 0 && this.cryptoCallbacks) {
146
- events = await this.cryptoCallbacks.preprocessToDeviceMessages(events);
147
- }
91
+ const events = data["events"] || [];
148
92
  events
149
93
  .map(this.client.getEventMapper())
150
94
  .map((toDeviceEvent) => {
@@ -345,7 +289,6 @@ class ExtensionReceipts implements Extension<ExtensionReceiptsRequest, Extension
345
289
  */
346
290
  export class SlidingSyncSdk {
347
291
  private readonly opts: IStoredClientOpts;
348
- private readonly syncOpts: SyncApiOptions;
349
292
  private syncState: SyncState | null = null;
350
293
  private syncStateData?: ISyncStateData;
351
294
  private lastPos: string | null = null;
@@ -356,10 +299,8 @@ export class SlidingSyncSdk {
356
299
  private readonly slidingSync: SlidingSync,
357
300
  private readonly client: MatrixClient,
358
301
  opts?: IStoredClientOpts,
359
- syncOpts?: SyncApiOptions,
360
302
  ) {
361
303
  this.opts = defaultClientOpts(opts);
362
- this.syncOpts = defaultSyncApiOpts(syncOpts);
363
304
 
364
305
  if (client.getNotifTimelineSet()) {
365
306
  client.reEmitter.reEmit(client.getNotifTimelineSet()!, [RoomEvent.Timeline, RoomEvent.TimelineReset]);
@@ -368,14 +309,11 @@ export class SlidingSyncSdk {
368
309
  this.slidingSync.on(SlidingSyncEvent.Lifecycle, this.onLifecycle.bind(this));
369
310
  this.slidingSync.on(SlidingSyncEvent.RoomData, this.onRoomData.bind(this));
370
311
  const extensions: Extension<any, any>[] = [
371
- new ExtensionToDevice(this.client, this.syncOpts.cryptoCallbacks),
312
+ new ExtensionToDevice(this.client),
372
313
  new ExtensionAccountData(this.client),
373
314
  new ExtensionTyping(this.client),
374
315
  new ExtensionReceipts(this.client),
375
316
  ];
376
- if (this.syncOpts.crypto) {
377
- extensions.push(new ExtensionE2EE(this.syncOpts.crypto));
378
- }
379
317
  extensions.forEach((ext) => {
380
318
  this.slidingSync.registerExtension(ext);
381
319
  });
@@ -612,7 +550,7 @@ export class SlidingSyncSdk {
612
550
  timelineEvents = newEvents;
613
551
  if (oldEvents.length > 0) {
614
552
  // old events are scrollback, insert them now
615
- room.addEventsToTimeline(oldEvents, true, room.getLiveTimeline(), roomData.prev_batch);
553
+ room.addEventsToTimeline(oldEvents, true, false, room.getLiveTimeline(), roomData.prev_batch);
616
554
  }
617
555
  }
618
556
 
@@ -734,9 +672,6 @@ export class SlidingSyncSdk {
734
672
 
735
673
  const processRoomEvent = async (e: MatrixEvent): Promise<void> => {
736
674
  client.emit(ClientEvent.Event, e);
737
- if (e.isState() && e.getType() == EventType.RoomEncryption && this.syncOpts.cryptoCallbacks) {
738
- await this.syncOpts.cryptoCallbacks.onCryptoEvent(room, e);
739
- }
740
675
  };
741
676
 
742
677
  await promiseMapSeries(stateEvents, processRoomEvent);
@@ -744,17 +679,12 @@ export class SlidingSyncSdk {
744
679
  ephemeralEvents.forEach(function (e) {
745
680
  client.emit(ClientEvent.Event, e);
746
681
  });
747
-
748
- // Decrypt only the last message in all rooms to make sure we can generate a preview
749
- // And decrypt all events after the recorded read receipt to ensure an accurate
750
- // notification count
751
- room.decryptCriticalEvents();
752
682
  }
753
683
 
754
684
  /**
755
685
  * Injects events into a room's model.
756
686
  * @param stateEventList - A list of state events. This is the state
757
- * at the *START* of the timeline list if it is supplied.
687
+ * at the *END* of the timeline list if it is supplied.
758
688
  * @param timelineEventList - A list of timeline events. Lower index
759
689
  * is earlier in time. Higher index is later.
760
690
  * @param numLive - the number of events in timelineEventList which just happened,
@@ -763,13 +693,9 @@ export class SlidingSyncSdk {
763
693
  public async injectRoomEvents(
764
694
  room: Room,
765
695
  stateEventList: MatrixEvent[],
766
- timelineEventList?: MatrixEvent[],
767
- numLive?: number,
696
+ timelineEventList: MatrixEvent[] = [],
697
+ numLive: number = 0,
768
698
  ): Promise<void> {
769
- timelineEventList = timelineEventList || [];
770
- stateEventList = stateEventList || [];
771
- numLive = numLive || 0;
772
-
773
699
  // If there are no events in the timeline yet, initialise it with
774
700
  // the given state events
775
701
  const liveTimeline = room.getLiveTimeline();
@@ -820,16 +746,17 @@ export class SlidingSyncSdk {
820
746
  timelineEventList = timelineEventList.slice(0, -1 * liveTimelineEvents.length);
821
747
  }
822
748
 
823
- // execute the timeline events. This will continue to diverge the current state
824
- // if the timeline has any state events in it.
749
+ // Execute the timeline events.
825
750
  // This also needs to be done before running push rules on the events as they need
826
751
  // to be decorated with sender etc.
827
752
  await room.addLiveEvents(timelineEventList, {
828
753
  fromCache: true,
754
+ addToState: false,
829
755
  });
830
756
  if (liveTimelineEvents.length > 0) {
831
757
  await room.addLiveEvents(liveTimelineEvents, {
832
758
  fromCache: false,
759
+ addToState: false,
833
760
  });
834
761
  }
835
762
 
@@ -966,7 +893,7 @@ export class SlidingSyncSdk {
966
893
  return a.getTs() - b.getTs();
967
894
  });
968
895
  this.notifEvents.forEach((event) => {
969
- this.client.getNotifTimelineSet()?.addLiveEvent(event);
896
+ this.client.getNotifTimelineSet()?.addLiveEvent(event, { addToState: false });
970
897
  });
971
898
  this.notifEvents = [];
972
899
  }
@@ -196,8 +196,8 @@ class SlidingList {
196
196
  * @param list - The new list parameters
197
197
  */
198
198
  public replaceList(list: MSC3575List): void {
199
- list.filters = list.filters || {};
200
- list.ranges = list.ranges || [];
199
+ list.filters = list.filters ?? {};
200
+ list.ranges = list.ranges ?? [];
201
201
  this.list = JSON.parse(JSON.stringify(list));
202
202
  this.isModified = true;
203
203
 
@@ -894,9 +894,9 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
894
894
  l.setModified(false);
895
895
  });
896
896
  // set default empty values so we don't need to null check
897
- resp.lists = resp.lists || {};
898
- resp.rooms = resp.rooms || {};
899
- resp.extensions = resp.extensions || {};
897
+ resp.lists = resp.lists ?? {};
898
+ resp.rooms = resp.rooms ?? {};
899
+ resp.extensions = resp.extensions ?? {};
900
900
  Object.keys(resp.lists).forEach((key: string) => {
901
901
  const list = this.lists.get(key);
902
902
  if (!list || !resp) {
@@ -934,7 +934,7 @@ export class SlidingSync extends TypedEventEmitter<SlidingSyncEvent, SlidingSync
934
934
  const listKeysWithUpdates: Set<string> = new Set();
935
935
  if (!doNotUpdateList) {
936
936
  for (const [key, list] of Object.entries(resp.lists)) {
937
- list.ops = list.ops || [];
937
+ list.ops = list.ops ?? [];
938
938
  if (list.ops.length > 0) {
939
939
  listKeysWithUpdates.add(key);
940
940
  }
@@ -71,7 +71,7 @@ function selectQuery<T>(
71
71
  return new Promise((resolve, reject) => {
72
72
  const results: T[] = [];
73
73
  query.onerror = (): void => {
74
- reject(new Error("Query failed: " + query.error));
74
+ reject(new Error("Query failed: " + query.error?.name));
75
75
  };
76
76
  // collect results
77
77
  query.onsuccess = (): void => {
@@ -360,7 +360,7 @@ export class LocalIndexedDBStoreBackend implements IIndexedDBBackend {
360
360
  // in firefox, with indexedDB disabled, this fails with a
361
361
  // DOMError. We treat this as non-fatal, so that we can still
362
362
  // use the app.
363
- logger.warn(`unable to delete js-sdk store indexeddb: ${req.error}`);
363
+ logger.warn(`unable to delete js-sdk store indexeddb: ${req.error?.name}`);
364
364
  resolve();
365
365
  };
366
366
 
@@ -42,7 +42,7 @@ const WRITE_DELAY_MS = 1000 * 60 * 5; // once every 5 minutes
42
42
 
43
43
  interface IOpts extends IBaseOpts {
44
44
  /** The Indexed DB interface e.g. `window.indexedDB` */
45
- indexedDB: IDBFactory;
45
+ indexedDB?: IDBFactory;
46
46
  /** Optional database name. The same name must be used to open the same database. */
47
47
  dbName?: string;
48
48
  /** Optional factory to spin up a Worker to execute the IDB transactions within. */
@@ -77,7 +77,9 @@ export interface ITimeline {
77
77
 
78
78
  export interface IJoinedRoom {
79
79
  "summary": IRoomSummary;
80
- "state": IState;
80
+ // One of `state` or `state_after` is required.
81
+ "state"?: IState;
82
+ "org.matrix.msc4222.state_after"?: IState; // https://github.com/matrix-org/matrix-spec-proposals/pull/4222
81
83
  "timeline": ITimeline;
82
84
  "ephemeral": IEphemeral;
83
85
  "account_data": IAccountData;
@@ -106,9 +108,11 @@ export interface IInvitedRoom {
106
108
  }
107
109
 
108
110
  export interface ILeftRoom {
109
- state: IState;
110
- timeline: ITimeline;
111
- account_data: IAccountData;
111
+ // One of `state` or `state_after` is required.
112
+ "state"?: IState;
113
+ "org.matrix.msc4222.state_after"?: IState;
114
+ "timeline": ITimeline;
115
+ "account_data": IAccountData;
112
116
  }
113
117
 
114
118
  export interface IKnockedRoom {
@@ -481,13 +485,18 @@ export class SyncAccumulator {
481
485
  // Work out the current state. The deltas need to be applied in the order:
482
486
  // - existing state which didn't come down /sync.
483
487
  // - State events under the 'state' key.
484
- // - State events in the 'timeline'.
488
+ // - State events under the 'state_after' key OR state events in the 'timeline' if 'state_after' is not present.
485
489
  data.state?.events?.forEach((e) => {
486
490
  setState(currentData._currentState, e);
487
491
  });
488
- data.timeline?.events?.forEach((e, index) => {
489
- // this nops if 'e' isn't a state event
492
+ data["org.matrix.msc4222.state_after"]?.events?.forEach((e) => {
490
493
  setState(currentData._currentState, e);
494
+ });
495
+ data.timeline?.events?.forEach((e, index) => {
496
+ if (!data["org.matrix.msc4222.state_after"]) {
497
+ // this nops if 'e' isn't a state event
498
+ setState(currentData._currentState, e);
499
+ }
491
500
  // append the event to the timeline. The back-pagination token
492
501
  // corresponds to the first event in the timeline
493
502
  let transformedEvent: TaggedEvent;
@@ -563,17 +572,22 @@ export class SyncAccumulator {
563
572
  });
564
573
  Object.keys(this.joinRooms).forEach((roomId) => {
565
574
  const roomData = this.joinRooms[roomId];
566
- const roomJson: IJoinedRoom = {
567
- ephemeral: { events: [] },
568
- account_data: { events: [] },
569
- state: { events: [] },
570
- timeline: {
575
+ const roomJson: IJoinedRoom & {
576
+ // We track both `state` and `state_after` for downgrade compatibility
577
+ "state": IState;
578
+ "org.matrix.msc4222.state_after": IState;
579
+ } = {
580
+ "ephemeral": { events: [] },
581
+ "account_data": { events: [] },
582
+ "state": { events: [] },
583
+ "org.matrix.msc4222.state_after": { events: [] },
584
+ "timeline": {
571
585
  events: [],
572
586
  prev_batch: null,
573
587
  },
574
- unread_notifications: roomData._unreadNotifications,
575
- unread_thread_notifications: roomData._unreadThreadNotifications,
576
- summary: roomData._summary as IRoomSummary,
588
+ "unread_notifications": roomData._unreadNotifications,
589
+ "unread_thread_notifications": roomData._unreadThreadNotifications,
590
+ "summary": roomData._summary as IRoomSummary,
577
591
  };
578
592
  // Add account data
579
593
  Object.keys(roomData._accountData).forEach((evType) => {
@@ -650,8 +664,11 @@ export class SyncAccumulator {
650
664
  Object.keys(roomData._currentState).forEach((evType) => {
651
665
  Object.keys(roomData._currentState[evType]).forEach((stateKey) => {
652
666
  let ev = roomData._currentState[evType][stateKey];
667
+ // Push to both fields to provide downgrade compatibility in the sync accumulator db
668
+ // the code will prefer `state_after` if it is present
669
+ roomJson["org.matrix.msc4222.state_after"].events.push(ev);
670
+ // Roll the state back to the value at the start of the timeline if it was changed
653
671
  if (rollBackState[evType] && rollBackState[evType][stateKey]) {
654
- // use the reverse clobbered event instead.
655
672
  ev = rollBackState[evType][stateKey];
656
673
  }
657
674
  roomJson.state.events.push(ev);