matrix-js-sdk 41.8.0 → 41.9.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 (458) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/lib/@types/AESEncryptedSecretStoragePayload.js +3 -1
  4. package/lib/@types/IIdentityServerProvider.js +3 -1
  5. package/lib/@types/PushRules.js +7 -7
  6. package/lib/@types/PushRules.js.map +1 -1
  7. package/lib/@types/auth.js +4 -4
  8. package/lib/@types/auth.js.map +1 -1
  9. package/lib/@types/beacon.js +2 -2
  10. package/lib/@types/beacon.js.map +1 -1
  11. package/lib/@types/common.js +3 -1
  12. package/lib/@types/crypto.js +3 -1
  13. package/lib/@types/event.js +20 -20
  14. package/lib/@types/event.js.map +1 -1
  15. package/lib/@types/events.js +3 -1
  16. package/lib/@types/extensible_events.js +6 -6
  17. package/lib/@types/extensible_events.js.map +1 -1
  18. package/lib/@types/global.d.js.map +1 -1
  19. package/lib/@types/json.js +3 -1
  20. package/lib/@types/local_notifications.js +3 -1
  21. package/lib/@types/location.js +4 -4
  22. package/lib/@types/location.js.map +1 -1
  23. package/lib/@types/matrix-sdk-crypto-wasm.d.js +3 -1
  24. package/lib/@types/media.js +3 -1
  25. package/lib/@types/membership.js +1 -1
  26. package/lib/@types/membership.js.map +1 -1
  27. package/lib/@types/partials.js +6 -6
  28. package/lib/@types/partials.js.map +1 -1
  29. package/lib/@types/polls.js +5 -5
  30. package/lib/@types/polls.js.map +1 -1
  31. package/lib/@types/read_receipts.js +2 -2
  32. package/lib/@types/read_receipts.js.map +1 -1
  33. package/lib/@types/registration.js +3 -1
  34. package/lib/@types/requests.js +1 -1
  35. package/lib/@types/requests.js.map +1 -1
  36. package/lib/@types/retention.js +1 -1
  37. package/lib/@types/retention.js.map +1 -1
  38. package/lib/@types/search.js +1 -1
  39. package/lib/@types/search.js.map +1 -1
  40. package/lib/@types/signed.js +3 -1
  41. package/lib/@types/spaces.js +3 -1
  42. package/lib/@types/state_events.js +3 -1
  43. package/lib/@types/synapse.js +3 -1
  44. package/lib/@types/sync.js +1 -1
  45. package/lib/@types/sync.js.map +1 -1
  46. package/lib/@types/threepids.js +1 -1
  47. package/lib/@types/threepids.js.map +1 -1
  48. package/lib/@types/topic.js +1 -1
  49. package/lib/@types/topic.js.map +1 -1
  50. package/lib/@types/uia.js +3 -1
  51. package/lib/NamespacedValue.js +8 -8
  52. package/lib/NamespacedValue.js.map +1 -1
  53. package/lib/ReEmitter.js +9 -16
  54. package/lib/ReEmitter.js.map +1 -1
  55. package/lib/ToDeviceMessageQueue.js +49 -57
  56. package/lib/ToDeviceMessageQueue.js.map +1 -1
  57. package/lib/autodiscovery.js +232 -247
  58. package/lib/autodiscovery.js.map +1 -1
  59. package/lib/base64.js +1 -1
  60. package/lib/base64.js.map +1 -1
  61. package/lib/browser-index.d.ts +2 -2
  62. package/lib/browser-index.d.ts.map +1 -1
  63. package/lib/browser-index.js +5 -5
  64. package/lib/browser-index.js.map +1 -1
  65. package/lib/capabilityPoller.js +19 -22
  66. package/lib/capabilityPoller.js.map +1 -1
  67. package/lib/client.d.ts +2 -8
  68. package/lib/client.d.ts.map +1 -1
  69. package/lib/client.js +2043 -2487
  70. package/lib/client.js.map +1 -1
  71. package/lib/common-crypto/CryptoBackend.js +2 -2
  72. package/lib/common-crypto/CryptoBackend.js.map +1 -1
  73. package/lib/common-crypto/key-passphrase.js.map +1 -1
  74. package/lib/content-helpers.js +43 -48
  75. package/lib/content-helpers.js.map +1 -1
  76. package/lib/content-repo.js +14 -24
  77. package/lib/content-repo.js.map +1 -1
  78. package/lib/crypto/store/base.js +6 -6
  79. package/lib/crypto/store/base.js.map +1 -1
  80. package/lib/crypto/store/indexeddb-crypto-store-backend.js +190 -238
  81. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
  82. package/lib/crypto/store/indexeddb-crypto-store.js +25 -30
  83. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
  84. package/lib/crypto/store/localStorage-crypto-store.js +113 -145
  85. package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
  86. package/lib/crypto/store/memory-crypto-store.js +74 -105
  87. package/lib/crypto/store/memory-crypto-store.js.map +1 -1
  88. package/lib/crypto-api/CryptoEvent.js +1 -1
  89. package/lib/crypto-api/CryptoEvent.js.map +1 -1
  90. package/lib/crypto-api/CryptoEventHandlerMap.js +3 -1
  91. package/lib/crypto-api/index.d.ts +15 -6
  92. package/lib/crypto-api/index.d.ts.map +1 -1
  93. package/lib/crypto-api/index.js +22 -22
  94. package/lib/crypto-api/index.js.map +1 -1
  95. package/lib/crypto-api/key-passphrase.js +15 -23
  96. package/lib/crypto-api/key-passphrase.js.map +1 -1
  97. package/lib/crypto-api/keybackup.js +3 -1
  98. package/lib/crypto-api/recovery-key.js +11 -12
  99. package/lib/crypto-api/recovery-key.js.map +1 -1
  100. package/lib/crypto-api/verification.js +3 -3
  101. package/lib/crypto-api/verification.js.map +1 -1
  102. package/lib/digest.js +7 -14
  103. package/lib/digest.js.map +1 -1
  104. package/lib/embedded.d.ts.map +1 -1
  105. package/lib/embedded.js +380 -505
  106. package/lib/embedded.js.map +1 -1
  107. package/lib/errors.js +2 -2
  108. package/lib/errors.js.map +1 -1
  109. package/lib/event-mapper.js +10 -12
  110. package/lib/event-mapper.js.map +1 -1
  111. package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -1
  112. package/lib/extensible_events_v1/InvalidEventError.js.map +1 -1
  113. package/lib/extensible_events_v1/MessageEvent.js +11 -13
  114. package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
  115. package/lib/extensible_events_v1/PollEndEvent.js +3 -4
  116. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
  117. package/lib/extensible_events_v1/PollResponseEvent.js +5 -6
  118. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
  119. package/lib/extensible_events_v1/PollStartEvent.js +8 -10
  120. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
  121. package/lib/extensible_events_v1/utilities.js.map +1 -1
  122. package/lib/feature.js +18 -31
  123. package/lib/feature.js.map +1 -1
  124. package/lib/filter-component.d.ts.map +1 -1
  125. package/lib/filter-component.js +20 -26
  126. package/lib/filter-component.js.map +1 -1
  127. package/lib/filter.js +14 -17
  128. package/lib/filter.js.map +1 -1
  129. package/lib/http-api/errors.js +28 -43
  130. package/lib/http-api/errors.js.map +1 -1
  131. package/lib/http-api/fetch.js +141 -159
  132. package/lib/http-api/fetch.js.map +1 -1
  133. package/lib/http-api/index.js +17 -20
  134. package/lib/http-api/index.js.map +1 -1
  135. package/lib/http-api/interface.js +1 -1
  136. package/lib/http-api/interface.js.map +1 -1
  137. package/lib/http-api/method.js +1 -1
  138. package/lib/http-api/method.js.map +1 -1
  139. package/lib/http-api/prefix.js +3 -3
  140. package/lib/http-api/prefix.js.map +1 -1
  141. package/lib/http-api/refresh.js +74 -94
  142. package/lib/http-api/refresh.js.map +1 -1
  143. package/lib/http-api/utils.d.ts +1 -1
  144. package/lib/http-api/utils.d.ts.map +1 -1
  145. package/lib/http-api/utils.js +34 -42
  146. package/lib/http-api/utils.js.map +1 -1
  147. package/lib/index.js.map +1 -1
  148. package/lib/indexeddb-helpers.js +3 -3
  149. package/lib/indexeddb-helpers.js.map +1 -1
  150. package/lib/indexeddb-worker.js.map +1 -1
  151. package/lib/interactive-auth.d.ts +5 -5
  152. package/lib/interactive-auth.d.ts.map +1 -1
  153. package/lib/interactive-auth.js +172 -204
  154. package/lib/interactive-auth.js.map +1 -1
  155. package/lib/logger.js +21 -57
  156. package/lib/logger.js.map +1 -1
  157. package/lib/matrix.js +7 -11
  158. package/lib/matrix.js.map +1 -1
  159. package/lib/matrixrtc/CallMembership.js +80 -74
  160. package/lib/matrixrtc/CallMembership.js.map +1 -1
  161. package/lib/matrixrtc/EncryptionManager.js +1 -1
  162. package/lib/matrixrtc/EncryptionManager.js.map +1 -1
  163. package/lib/matrixrtc/IKeyTransport.js +1 -1
  164. package/lib/matrixrtc/IKeyTransport.js.map +1 -1
  165. package/lib/matrixrtc/IMembershipManager.js +1 -1
  166. package/lib/matrixrtc/IMembershipManager.js.map +1 -1
  167. package/lib/matrixrtc/LivekitTransport.d.ts +1 -1
  168. package/lib/matrixrtc/LivekitTransport.js +4 -4
  169. package/lib/matrixrtc/LivekitTransport.js.map +1 -1
  170. package/lib/matrixrtc/MatrixRTCSession.js +137 -187
  171. package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
  172. package/lib/matrixrtc/MatrixRTCSessionManager.js +36 -41
  173. package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
  174. package/lib/matrixrtc/MembershipManager.js +332 -378
  175. package/lib/matrixrtc/MembershipManager.js.map +1 -1
  176. package/lib/matrixrtc/MembershipManagerActionScheduler.js +54 -63
  177. package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -1
  178. package/lib/matrixrtc/RTCEncryptionManager.js +119 -143
  179. package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
  180. package/lib/matrixrtc/ToDeviceKeyTransport.js +53 -58
  181. package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -1
  182. package/lib/matrixrtc/index.js.map +1 -1
  183. package/lib/matrixrtc/membershipData/common.js +1 -1
  184. package/lib/matrixrtc/membershipData/common.js.map +1 -1
  185. package/lib/matrixrtc/membershipData/index.js.map +1 -1
  186. package/lib/matrixrtc/membershipData/rtc.js +15 -23
  187. package/lib/matrixrtc/membershipData/rtc.js.map +1 -1
  188. package/lib/matrixrtc/membershipData/session.js +4 -5
  189. package/lib/matrixrtc/membershipData/session.js.map +1 -1
  190. package/lib/matrixrtc/types.js +4 -6
  191. package/lib/matrixrtc/types.js.map +1 -1
  192. package/lib/matrixrtc/utils.js +4 -11
  193. package/lib/matrixrtc/utils.js.map +1 -1
  194. package/lib/models/MSC3089Branch.js +91 -116
  195. package/lib/models/MSC3089Branch.js.map +1 -1
  196. package/lib/models/MSC3089TreeSpace.js +209 -245
  197. package/lib/models/MSC3089TreeSpace.js.map +1 -1
  198. package/lib/models/ToDeviceMessage.js +3 -1
  199. package/lib/models/beacon.js +14 -13
  200. package/lib/models/beacon.js.map +1 -1
  201. package/lib/models/compare-event-ordering.js +13 -13
  202. package/lib/models/compare-event-ordering.js.map +1 -1
  203. package/lib/models/device.js +3 -3
  204. package/lib/models/device.js.map +1 -1
  205. package/lib/models/event-context.js +5 -8
  206. package/lib/models/event-context.js.map +1 -1
  207. package/lib/models/event-status.js +1 -1
  208. package/lib/models/event-status.js.map +1 -1
  209. package/lib/models/event-timeline-set.js +88 -94
  210. package/lib/models/event-timeline-set.js.map +1 -1
  211. package/lib/models/event-timeline.js +28 -30
  212. package/lib/models/event-timeline.js.map +1 -1
  213. package/lib/models/event.js +182 -226
  214. package/lib/models/event.js.map +1 -1
  215. package/lib/models/invites-ignorer-types.js +4 -4
  216. package/lib/models/invites-ignorer-types.js.map +1 -1
  217. package/lib/models/invites-ignorer.js +159 -179
  218. package/lib/models/invites-ignorer.js.map +1 -1
  219. package/lib/models/poll.js +71 -81
  220. package/lib/models/poll.js.map +1 -1
  221. package/lib/models/profile-keys.js +2 -2
  222. package/lib/models/profile-keys.js.map +1 -1
  223. package/lib/models/read-receipt.js +40 -56
  224. package/lib/models/read-receipt.js.map +1 -1
  225. package/lib/models/related-relations.js.map +1 -1
  226. package/lib/models/relations-container.js +22 -23
  227. package/lib/models/relations-container.js.map +1 -1
  228. package/lib/models/relations.js +133 -159
  229. package/lib/models/relations.js.map +1 -1
  230. package/lib/models/room-member.js +24 -29
  231. package/lib/models/room-member.js.map +1 -1
  232. package/lib/models/room-receipts.js +29 -43
  233. package/lib/models/room-receipts.js.map +1 -1
  234. package/lib/models/room-retention.js +74 -83
  235. package/lib/models/room-retention.js.map +1 -1
  236. package/lib/models/room-state.js +143 -172
  237. package/lib/models/room-state.js.map +1 -1
  238. package/lib/models/room-sticky-events.d.ts +1 -0
  239. package/lib/models/room-sticky-events.d.ts.map +1 -1
  240. package/lib/models/room-sticky-events.js +45 -65
  241. package/lib/models/room-sticky-events.js.map +1 -1
  242. package/lib/models/room-summary.js.map +1 -1
  243. package/lib/models/room.d.ts.map +1 -1
  244. package/lib/models/room.js +765 -909
  245. package/lib/models/room.js.map +1 -1
  246. package/lib/models/search-result.js +5 -5
  247. package/lib/models/search-result.js.map +1 -1
  248. package/lib/models/thread.js +225 -285
  249. package/lib/models/thread.js.map +1 -1
  250. package/lib/models/typed-event-emitter.js +7 -18
  251. package/lib/models/typed-event-emitter.js.map +1 -1
  252. package/lib/models/user.js +8 -8
  253. package/lib/models/user.js.map +1 -1
  254. package/lib/oidc/authorize.js +208 -241
  255. package/lib/oidc/authorize.js.map +1 -1
  256. package/lib/oidc/discovery.js +23 -36
  257. package/lib/oidc/discovery.js.map +1 -1
  258. package/lib/oidc/error.js +1 -1
  259. package/lib/oidc/error.js.map +1 -1
  260. package/lib/oidc/index.js +1 -0
  261. package/lib/oidc/index.js.map +1 -1
  262. package/lib/oidc/register.js +60 -66
  263. package/lib/oidc/register.js.map +1 -1
  264. package/lib/oidc/tokenRefresher.js +77 -91
  265. package/lib/oidc/tokenRefresher.js.map +1 -1
  266. package/lib/oidc/validate.js +18 -18
  267. package/lib/oidc/validate.js.map +1 -1
  268. package/lib/pushprocessor.js +71 -82
  269. package/lib/pushprocessor.js.map +1 -1
  270. package/lib/randomstring.js +9 -9
  271. package/lib/randomstring.js.map +1 -1
  272. package/lib/realtime-callbacks.js +25 -28
  273. package/lib/realtime-callbacks.js.map +1 -1
  274. package/lib/receipt-accumulator.d.ts +2 -0
  275. package/lib/receipt-accumulator.d.ts.map +1 -1
  276. package/lib/receipt-accumulator.js +14 -22
  277. package/lib/receipt-accumulator.js.map +1 -1
  278. package/lib/rendezvous/MSC4108SignInWithQR.js +271 -302
  279. package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -1
  280. package/lib/rendezvous/RendezvousChannel.js +3 -1
  281. package/lib/rendezvous/RendezvousCode.js +3 -1
  282. package/lib/rendezvous/RendezvousError.js.map +1 -1
  283. package/lib/rendezvous/RendezvousFailureReason.js +2 -2
  284. package/lib/rendezvous/RendezvousFailureReason.js.map +1 -1
  285. package/lib/rendezvous/RendezvousIntent.js +1 -1
  286. package/lib/rendezvous/RendezvousIntent.js.map +1 -1
  287. package/lib/rendezvous/RendezvousTransport.js +3 -1
  288. package/lib/rendezvous/channels/MSC4108SecureChannel.js +123 -147
  289. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
  290. package/lib/rendezvous/index.js +44 -69
  291. package/lib/rendezvous/index.js.map +1 -1
  292. package/lib/rendezvous/transports/MSC4108RendezvousSession.d.ts +1 -1
  293. package/lib/rendezvous/transports/MSC4108RendezvousSession.js +134 -152
  294. package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
  295. package/lib/retentionPolicy.js +6 -9
  296. package/lib/retentionPolicy.js.map +1 -1
  297. package/lib/room-hierarchy.js +52 -60
  298. package/lib/room-hierarchy.js.map +1 -1
  299. package/lib/rust-crypto/CrossSigningIdentity.js +94 -104
  300. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
  301. package/lib/rust-crypto/DehydratedDeviceManager.js +157 -190
  302. package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -1
  303. package/lib/rust-crypto/KeyClaimManager.js +18 -22
  304. package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
  305. package/lib/rust-crypto/OutgoingRequestProcessor.js +109 -139
  306. package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
  307. package/lib/rust-crypto/OutgoingRequestsManager.js +66 -80
  308. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
  309. package/lib/rust-crypto/PerSessionKeyBackupDownloader.d.ts +1 -1
  310. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +196 -224
  311. package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -1
  312. package/lib/rust-crypto/RoomEncryptor.js +127 -143
  313. package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
  314. package/lib/rust-crypto/backup.js +453 -549
  315. package/lib/rust-crypto/backup.js.map +1 -1
  316. package/lib/rust-crypto/constants.js +1 -1
  317. package/lib/rust-crypto/constants.js.map +1 -1
  318. package/lib/rust-crypto/device-converter.js +15 -28
  319. package/lib/rust-crypto/device-converter.js.map +1 -1
  320. package/lib/rust-crypto/index.js +103 -116
  321. package/lib/rust-crypto/index.js.map +1 -1
  322. package/lib/rust-crypto/libolm_migration.js +303 -365
  323. package/lib/rust-crypto/libolm_migration.js.map +1 -1
  324. package/lib/rust-crypto/rust-crypto.d.ts +5 -1
  325. package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
  326. package/lib/rust-crypto/rust-crypto.js +1067 -1332
  327. package/lib/rust-crypto/rust-crypto.js.map +1 -1
  328. package/lib/rust-crypto/secret-storage.js +12 -25
  329. package/lib/rust-crypto/secret-storage.js.map +1 -1
  330. package/lib/rust-crypto/verification.js +137 -189
  331. package/lib/rust-crypto/verification.js.map +1 -1
  332. package/lib/scheduler.js +44 -19
  333. package/lib/scheduler.js.map +1 -1
  334. package/lib/secret-storage.js +179 -213
  335. package/lib/secret-storage.js.map +1 -1
  336. package/lib/serverCapabilities.js +6 -9
  337. package/lib/serverCapabilities.js.map +1 -1
  338. package/lib/service-types.js +1 -1
  339. package/lib/service-types.js.map +1 -1
  340. package/lib/sliding-sync-sdk.d.ts.map +1 -1
  341. package/lib/sliding-sync-sdk.js +368 -424
  342. package/lib/sliding-sync-sdk.js.map +1 -1
  343. package/lib/sliding-sync.js +135 -171
  344. package/lib/sliding-sync.js.map +1 -1
  345. package/lib/store/index.js +3 -1
  346. package/lib/store/indexeddb-backend.js +3 -1
  347. package/lib/store/indexeddb-local-backend.js +194 -253
  348. package/lib/store/indexeddb-local-backend.js.map +1 -1
  349. package/lib/store/indexeddb-remote-backend.js +33 -63
  350. package/lib/store/indexeddb-remote-backend.js.map +1 -1
  351. package/lib/store/indexeddb-store-worker.js +22 -23
  352. package/lib/store/indexeddb-store-worker.js.map +1 -1
  353. package/lib/store/indexeddb.js +44 -71
  354. package/lib/store/indexeddb.js.map +1 -1
  355. package/lib/store/local-storage-events-emitter.js +2 -2
  356. package/lib/store/local-storage-events-emitter.js.map +1 -1
  357. package/lib/store/memory.js +34 -57
  358. package/lib/store/memory.js.map +1 -1
  359. package/lib/store/stub.js +22 -35
  360. package/lib/store/stub.js.map +1 -1
  361. package/lib/sync-accumulator.js +54 -66
  362. package/lib/sync-accumulator.js.map +1 -1
  363. package/lib/sync.d.ts.map +1 -1
  364. package/lib/sync.js +905 -998
  365. package/lib/sync.js.map +1 -1
  366. package/lib/testing.js +63 -105
  367. package/lib/testing.js.map +1 -1
  368. package/lib/thread-utils.js +1 -4
  369. package/lib/thread-utils.js.map +1 -1
  370. package/lib/timeline-window.js +89 -102
  371. package/lib/timeline-window.js.map +1 -1
  372. package/lib/types.js +1 -1
  373. package/lib/types.js.map +1 -1
  374. package/lib/utils/decryptAESSecretStorageItem.js +14 -25
  375. package/lib/utils/decryptAESSecretStorageItem.js.map +1 -1
  376. package/lib/utils/encryptAESSecretStorageItem.js +27 -38
  377. package/lib/utils/encryptAESSecretStorageItem.js.map +1 -1
  378. package/lib/utils/internal/deriveKeys.js +25 -32
  379. package/lib/utils/internal/deriveKeys.js.map +1 -1
  380. package/lib/utils/roomVersion.js +1 -1
  381. package/lib/utils/roomVersion.js.map +1 -1
  382. package/lib/utils.js +83 -135
  383. package/lib/utils.js.map +1 -1
  384. package/lib/version-support.js +3 -3
  385. package/lib/version-support.js.map +1 -1
  386. package/lib/webrtc/audioContext.js +5 -6
  387. package/lib/webrtc/audioContext.js.map +1 -1
  388. package/lib/webrtc/call.js +1081 -1250
  389. package/lib/webrtc/call.js.map +1 -1
  390. package/lib/webrtc/callEventHandler.js +202 -214
  391. package/lib/webrtc/callEventHandler.js.map +1 -1
  392. package/lib/webrtc/callEventTypes.js +2 -2
  393. package/lib/webrtc/callEventTypes.js.map +1 -1
  394. package/lib/webrtc/callFeed.js +18 -20
  395. package/lib/webrtc/callFeed.js.map +1 -1
  396. package/lib/webrtc/groupCall.js +513 -602
  397. package/lib/webrtc/groupCall.js.map +1 -1
  398. package/lib/webrtc/groupCallEventHandler.js +59 -62
  399. package/lib/webrtc/groupCallEventHandler.js.map +1 -1
  400. package/lib/webrtc/mediaHandler.js +198 -232
  401. package/lib/webrtc/mediaHandler.js.map +1 -1
  402. package/lib/webrtc/stats/callFeedStatsReporter.js +16 -20
  403. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
  404. package/lib/webrtc/stats/callStatsReportGatherer.js +67 -75
  405. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  406. package/lib/webrtc/stats/callStatsReportSummary.js +3 -1
  407. package/lib/webrtc/stats/connectionStats.js.map +1 -1
  408. package/lib/webrtc/stats/connectionStatsBuilder.js +2 -2
  409. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
  410. package/lib/webrtc/stats/connectionStatsReportBuilder.js +20 -24
  411. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
  412. package/lib/webrtc/stats/groupCallStats.js +6 -8
  413. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  414. package/lib/webrtc/stats/media/mediaSsrcHandler.js +7 -8
  415. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
  416. package/lib/webrtc/stats/media/mediaTrackHandler.js +7 -9
  417. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
  418. package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
  419. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  420. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +7 -7
  421. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  422. package/lib/webrtc/stats/statsReport.js +1 -1
  423. package/lib/webrtc/stats/statsReport.js.map +1 -1
  424. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
  425. package/lib/webrtc/stats/summaryStatsReportGatherer.js +14 -14
  426. package/lib/webrtc/stats/summaryStatsReportGatherer.js.map +1 -1
  427. package/lib/webrtc/stats/trackStatsBuilder.js +32 -34
  428. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
  429. package/lib/webrtc/stats/transportStats.js +3 -1
  430. package/lib/webrtc/stats/transportStatsBuilder.js +9 -9
  431. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
  432. package/lib/webrtc/stats/valueFormatter.js +1 -1
  433. package/lib/webrtc/stats/valueFormatter.js.map +1 -1
  434. package/package.json +18 -33
  435. package/src/@types/global.d.ts +2 -2
  436. package/src/ToDeviceMessageQueue.ts +2 -2
  437. package/src/browser-index.ts +4 -4
  438. package/src/client.ts +15 -20
  439. package/src/crypto-api/index.ts +17 -6
  440. package/src/embedded.ts +4 -6
  441. package/src/filter-component.ts +1 -0
  442. package/src/http-api/utils.ts +1 -1
  443. package/src/interactive-auth.ts +11 -5
  444. package/src/matrixrtc/LivekitTransport.ts +1 -1
  445. package/src/matrixrtc/MatrixRTCSession.ts +1 -1
  446. package/src/models/MSC3089Branch.ts +1 -1
  447. package/src/models/room-sticky-events.ts +1 -0
  448. package/src/models/room.ts +9 -11
  449. package/src/receipt-accumulator.ts +2 -0
  450. package/src/rendezvous/index.ts +1 -1
  451. package/src/rendezvous/transports/MSC4108RendezvousSession.ts +2 -2
  452. package/src/rust-crypto/PerSessionKeyBackupDownloader.ts +1 -1
  453. package/src/rust-crypto/index.ts +6 -6
  454. package/src/rust-crypto/rust-crypto.ts +31 -7
  455. package/src/rust-crypto/verification.ts +1 -1
  456. package/src/sliding-sync-sdk.ts +5 -7
  457. package/src/store/indexeddb-local-backend.ts +3 -3
  458. package/src/sync.ts +6 -8
@@ -1,4 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  /*
4
3
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -24,7 +23,7 @@ import { RoomStateEvent } from "../models/room-state.js";
24
23
  import { MapWithDefault } from "../utils.js";
25
24
  import { KnownMembership } from "../@types/membership.js";
26
25
  function isValidFilterId(filterId) {
27
- var isValidStr = typeof filterId === "string" && !!filterId && filterId !== "undefined" &&
26
+ const isValidStr = typeof filterId === "string" && !!filterId && filterId !== "undefined" &&
28
27
  // exclude these as we've serialized undefined in localStorage before
29
28
  filterId !== "null";
30
29
  return isValidStr || typeof filterId === "number";
@@ -34,8 +33,7 @@ export class MemoryStore {
34
33
  * Construct a new in-memory data store for the Matrix Client.
35
34
  * @param opts - Config options
36
35
  */
37
- constructor() {
38
- var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
36
+ constructor(opts = {}) {
39
37
  _defineProperty(this, "rooms", {});
40
38
  // roomId: Room
41
39
  _defineProperty(this, "users", {});
@@ -61,13 +59,12 @@ export class MemoryStore {
61
59
  * updated.
62
60
  */
63
61
  _defineProperty(this, "onRoomMember", (event, state, member) => {
64
- var _this$createUser;
65
62
  if (member.membership === KnownMembership.Invite) {
66
63
  // We do NOT add invited members because people love to typo user IDs
67
64
  // which would then show up in these lists (!)
68
65
  return;
69
66
  }
70
- var user = this.users[member.userId] || ((_this$createUser = this.createUser) === null || _this$createUser === void 0 ? void 0 : _this$createUser.call(this, member.userId));
67
+ const user = this.users[member.userId] || this.createUser?.(member.userId);
71
68
  if (member.name) {
72
69
  user.setDisplayName(member.name);
73
70
  if (member.events.member) {
@@ -208,7 +205,7 @@ export class MemoryStore {
208
205
  * Store a filter.
209
206
  */
210
207
  storeFilter(filter) {
211
- if (!(filter !== null && filter !== void 0 && filter.userId) || !(filter !== null && filter !== void 0 && filter.filterId)) return;
208
+ if (!filter?.userId || !filter?.filterId) return;
212
209
  this.filters.getOrCreate(filter.userId).set(filter.filterId, filter);
213
210
  }
214
211
 
@@ -217,8 +214,7 @@ export class MemoryStore {
217
214
  * @returns A filter or null.
218
215
  */
219
216
  getFilter(userId, filterId) {
220
- var _this$filters$get;
221
- return ((_this$filters$get = this.filters.get(userId)) === null || _this$filters$get === void 0 ? void 0 : _this$filters$get.get(filterId)) || null;
217
+ return this.filters.get(userId)?.get(filterId) || null;
222
218
  }
223
219
 
224
220
  /**
@@ -230,18 +226,18 @@ export class MemoryStore {
230
226
  if (!this.localStorage) {
231
227
  return null;
232
228
  }
233
- var key = "mxjssdk_memory_filter_" + filterName;
229
+ const key = "mxjssdk_memory_filter_" + filterName;
234
230
  // XXX Storage.getItem doesn't throw ...
235
231
  // or are we using something different
236
232
  // than window.localStorage in some cases
237
233
  // that does throw?
238
234
  // that would be very naughty
239
235
  try {
240
- var value = this.localStorage.getItem(key);
236
+ const value = this.localStorage.getItem(key);
241
237
  if (isValidFilterId(value)) {
242
238
  return value;
243
239
  }
244
- } catch (_unused) {}
240
+ } catch {}
245
241
  return null;
246
242
  }
247
243
 
@@ -252,14 +248,14 @@ export class MemoryStore {
252
248
  if (!this.localStorage) {
253
249
  return;
254
250
  }
255
- var key = "mxjssdk_memory_filter_" + filterName;
251
+ const key = "mxjssdk_memory_filter_" + filterName;
256
252
  try {
257
253
  if (isValidFilterId(filterId)) {
258
254
  this.localStorage.setItem(key, filterId);
259
255
  } else {
260
256
  this.localStorage.removeItem(key);
261
257
  }
262
- } catch (_unused2) {}
258
+ } catch {}
263
259
  }
264
260
 
265
261
  /**
@@ -271,7 +267,7 @@ export class MemoryStore {
271
267
  storeAccountDataEvents(events) {
272
268
  events.forEach(event => {
273
269
  // MSC3391: an event with content of {} should be interpreted as deleted
274
- var isDeleted = !Object.keys(event.getContent()).length;
270
+ const isDeleted = !Object.keys(event.getContent()).length;
275
271
  if (isDeleted) {
276
272
  this.accountData.delete(event.getType());
277
273
  } else {
@@ -391,21 +387,14 @@ export class MemoryStore {
391
387
  this.clientOptions = Object.assign({}, options);
392
388
  return Promise.resolve();
393
389
  }
394
- getPendingEvents(roomId) {
395
- var _this = this;
396
- return _asyncToGenerator(function* () {
397
- var _this$pendingEvents$r;
398
- return (_this$pendingEvents$r = _this.pendingEvents[roomId]) !== null && _this$pendingEvents$r !== void 0 ? _this$pendingEvents$r : [];
399
- })();
390
+ async getPendingEvents(roomId) {
391
+ return this.pendingEvents[roomId] ?? [];
400
392
  }
401
- setPendingEvents(roomId, events) {
402
- var _this2 = this;
403
- return _asyncToGenerator(function* () {
404
- _this2.pendingEvents[roomId] = events;
405
- })();
393
+ async setPendingEvents(roomId, events) {
394
+ this.pendingEvents[roomId] = events;
406
395
  }
407
396
  saveToDeviceBatches(batches) {
408
- for (var batch of batches) {
397
+ for (const batch of batches) {
409
398
  this.pendingToDeviceBatches.push({
410
399
  id: this.nextToDeviceBatchId++,
411
400
  eventType: batch.eventType,
@@ -415,40 +404,28 @@ export class MemoryStore {
415
404
  }
416
405
  return Promise.resolve();
417
406
  }
418
- getOldestToDeviceBatch() {
419
- var _this3 = this;
420
- return _asyncToGenerator(function* () {
421
- if (_this3.pendingToDeviceBatches.length === 0) return null;
422
- return _this3.pendingToDeviceBatches[0];
423
- })();
407
+ async getOldestToDeviceBatch() {
408
+ if (this.pendingToDeviceBatches.length === 0) return null;
409
+ return this.pendingToDeviceBatches[0];
424
410
  }
425
411
  removeToDeviceBatch(id) {
426
412
  this.pendingToDeviceBatches = this.pendingToDeviceBatches.filter(batch => batch.id !== id);
427
413
  return Promise.resolve();
428
414
  }
429
- getUserProfile(userId) {
430
- var _this4 = this;
431
- return _asyncToGenerator(function* () {
432
- return _this4.userProfiles.get(userId);
433
- })();
434
- }
435
- storeUserProfiles(userProfiles) {
436
- var _this5 = this;
437
- return _asyncToGenerator(function* () {
438
- userProfiles.forEach((profile, userId) => _this5.userProfiles.set(userId, profile));
439
- })();
440
- }
441
- removeUserProfiles(userIds) {
442
- var _this6 = this;
443
- return _asyncToGenerator(function* () {
444
- userIds.forEach(userId => _this6.userProfiles.delete(userId));
445
- })();
446
- }
447
- removeEventsFromRoom(roomId, eventIds) {
448
- return _asyncToGenerator(function* () {})();
449
- } // Can ignore as there is no backing store.
450
- destroy() {
451
- return _asyncToGenerator(function* () {})();
452
- } // Nothing to do
415
+ async getUserProfile(userId) {
416
+ return this.userProfiles.get(userId);
417
+ }
418
+ async storeUserProfiles(userProfiles) {
419
+ userProfiles.forEach((profile, userId) => this.userProfiles.set(userId, profile));
420
+ }
421
+ async removeUserProfiles(userIds) {
422
+ userIds.forEach(userId => this.userProfiles.delete(userId));
423
+ }
424
+ async removeEventsFromRoom(roomId, eventIds) {
425
+ // Can ignore as there is no backing store.
426
+ }
427
+ async destroy() {
428
+ // Nothing to do
429
+ }
453
430
  }
454
431
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","names":["RoomStateEvent","MapWithDefault","KnownMembership","isValidFilterId","filterId","isValidStr","MemoryStore","constructor","opts","arguments","length","undefined","_defineProperty","Map","event","state","member","_this$createUser","membership","Invite","user","users","userId","createUser","call","name","setDisplayName","events","setRawDisplayName","getDirectionalContent","displayname","getContent","avatar_url","setAvatarUrl","localStorage","getSyncToken","syncToken","isNewlyCreated","Promise","resolve","setSyncToken","token","storeRoom","room","rooms","roomId","currentState","on","Members","onRoomMember","getMembers","forEach","m","setUserCreator","creator","getRoom","getRooms","Object","values","removeRoom","removeListener","getRoomSummaries","map","summary","storeUser","getUser","getUsers","scrollback","limit","storeEvents","toStart","storeFilter","filter","filters","getOrCreate","set","getFilter","_this$filters$get","get","getFilterIdByName","filterName","key","value","getItem","_unused","setFilterIdByName","setItem","removeItem","_unused2","storeAccountDataEvents","isDeleted","keys","accountData","delete","getType","getAccountData","eventType","setSyncData","syncData","wantsSave","save","force","startup","getSavedSync","getSavedSyncToken","deleteAllData","getOutOfBandMembers","oobMembers","setOutOfBandMembers","membershipEvents","clearOutOfBandMembers","getClientOptions","clientOptions","storeClientOptions","options","assign","getPendingEvents","_this","_asyncToGenerator","_this$pendingEvents$r","pendingEvents","setPendingEvents","_this2","saveToDeviceBatches","batches","batch","pendingToDeviceBatches","push","id","nextToDeviceBatchId","txnId","getOldestToDeviceBatch","_this3","removeToDeviceBatch","getUserProfile","_this4","userProfiles","storeUserProfiles","_this5","profile","removeUserProfiles","userIds","_this6","removeEventsFromRoom","eventIds","destroy"],"sources":["../../src/store/memory.ts"],"sourcesContent":["/*\nCopyright 2015 - 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\n/**\n * This is an internal module. See {@link MemoryStore} for the public class.\n */\n\nimport { type EventType } from \"../@types/event.ts\";\nimport { type Room } from \"../models/room.ts\";\nimport { type SyncUserProfile, type User } from \"../models/user.ts\";\nimport { type IEvent, type MatrixEvent } from \"../models/event.ts\";\nimport { type RoomState, RoomStateEvent } from \"../models/room-state.ts\";\nimport { type RoomMember } from \"../models/room-member.ts\";\nimport { type Filter } from \"../filter.ts\";\nimport { type ISavedSync, type IStore, type UserCreator } from \"./index.ts\";\nimport { type RoomSummary } from \"../models/room-summary.ts\";\nimport { type ISyncResponse } from \"../sync-accumulator.ts\";\nimport { type IStateEventWithRoomId } from \"../@types/search.ts\";\nimport { type IndexedToDeviceBatch, type ToDeviceBatchWithTxnId } from \"../models/ToDeviceMessage.ts\";\nimport { type IStoredClientOpts } from \"../client.ts\";\nimport { MapWithDefault } from \"../utils.ts\";\nimport { KnownMembership } from \"../@types/membership.ts\";\n\nfunction isValidFilterId(filterId?: string | number | null): boolean {\n const isValidStr =\n typeof filterId === \"string\" &&\n !!filterId &&\n filterId !== \"undefined\" && // exclude these as we've serialized undefined in localStorage before\n filterId !== \"null\";\n\n return isValidStr || typeof filterId === \"number\";\n}\n\nexport interface IOpts {\n /** The local storage instance to persist some forms of data such as tokens. Rooms will NOT be stored. */\n localStorage?: Storage;\n}\n\nexport class MemoryStore implements IStore {\n private rooms: Record<string, Room> = {}; // roomId: Room\n private users: Record<string, User> = {}; // userId: User\n private syncToken: string | null = null;\n // userId: {\n // filterId: Filter\n // }\n private filters: MapWithDefault<string, Map<string, Filter>> = new MapWithDefault(() => new Map());\n public accountData: Map<string, MatrixEvent> = new Map(); // type: content\n protected readonly localStorage?: Storage;\n private oobMembers: Map<string, IStateEventWithRoomId[]> = new Map(); // roomId: [member events]\n private pendingEvents: { [roomId: string]: Partial<IEvent>[] } = {};\n private clientOptions?: IStoredClientOpts;\n private pendingToDeviceBatches: IndexedToDeviceBatch[] = [];\n private nextToDeviceBatchId = 0;\n protected createUser?: UserCreator;\n public readonly userProfiles = new Map<string, SyncUserProfile>();\n\n /**\n * Construct a new in-memory data store for the Matrix Client.\n * @param opts - Config options\n */\n public constructor(opts: IOpts = {}) {\n this.localStorage = opts.localStorage;\n }\n\n /**\n * Retrieve the token to stream from.\n * @returns The token or null.\n */\n public getSyncToken(): string | null {\n return this.syncToken;\n }\n\n /** @returns whether or not the database was newly created in this session. */\n public isNewlyCreated(): Promise<boolean> {\n return Promise.resolve(true);\n }\n\n /**\n * Set the token to stream from.\n * @param token - The token to stream from.\n */\n public setSyncToken(token: string): void {\n this.syncToken = token;\n }\n\n /**\n * Store the given room.\n * @param room - The room to be stored. All properties must be stored.\n */\n public storeRoom(room: Room): void {\n this.rooms[room.roomId] = room;\n // add listeners for room member changes so we can keep the room member\n // map up-to-date.\n room.currentState.on(RoomStateEvent.Members, this.onRoomMember);\n // add existing members\n room.currentState.getMembers().forEach((m) => {\n this.onRoomMember(null, room.currentState, m);\n });\n }\n\n public setUserCreator(creator: UserCreator): void {\n this.createUser = creator;\n }\n\n /**\n * Called when a room member in a room being tracked by this store has been\n * updated.\n */\n private onRoomMember = (event: MatrixEvent | null, state: RoomState, member: RoomMember): void => {\n if (member.membership === KnownMembership.Invite) {\n // We do NOT add invited members because people love to typo user IDs\n // which would then show up in these lists (!)\n return;\n }\n\n const user = this.users[member.userId] || this.createUser?.(member.userId);\n if (member.name) {\n user.setDisplayName(member.name);\n if (member.events.member) {\n user.setRawDisplayName(member.events.member.getDirectionalContent().displayname);\n }\n }\n if (member.events.member && member.events.member.getContent().avatar_url) {\n user.setAvatarUrl(member.events.member.getContent().avatar_url);\n }\n this.users[user.userId] = user;\n };\n\n /**\n * Retrieve a room by its' room ID.\n * @param roomId - The room ID.\n * @returns The room or null.\n */\n public getRoom(roomId: string): Room | null {\n return this.rooms[roomId] || null;\n }\n\n /**\n * Retrieve all known rooms.\n * @returns A list of rooms, which may be empty.\n */\n public getRooms(): Room[] {\n return Object.values(this.rooms);\n }\n\n /**\n * Permanently delete a room.\n */\n public removeRoom(roomId: string): void {\n if (this.rooms[roomId]) {\n this.rooms[roomId].currentState.removeListener(RoomStateEvent.Members, this.onRoomMember);\n }\n delete this.rooms[roomId];\n }\n\n /**\n * Retrieve a summary of all the rooms.\n * @returns A summary of each room.\n */\n public getRoomSummaries(): RoomSummary[] {\n return Object.values(this.rooms).map(function (room) {\n return room.summary!;\n });\n }\n\n /**\n * Store a User.\n * @param user - The user to store.\n */\n public storeUser(user: User): void {\n this.users[user.userId] = user;\n }\n\n /**\n * Retrieve a User by its' user ID.\n * @param userId - The user ID.\n * @returns The user or null.\n */\n public getUser(userId: string): User | null {\n return this.users[userId] || null;\n }\n\n /**\n * Retrieve all known users.\n * @returns A list of users, which may be empty.\n */\n public getUsers(): User[] {\n return Object.values(this.users);\n }\n\n /**\n * Retrieve scrollback for this room.\n * @param room - The matrix room\n * @param limit - The max number of old events to retrieve.\n * @returns An array of objects which will be at most 'limit'\n * length and at least 0. The objects are the raw event JSON.\n */\n public scrollback(room: Room, limit: number): MatrixEvent[] {\n return [];\n }\n\n /**\n * Store events for a room. The events have already been added to the timeline\n * @param room - The room to store events for.\n * @param events - The events to store.\n * @param token - The token associated with these events.\n * @param toStart - True if these are paginated results.\n */\n public storeEvents(room: Room, events: MatrixEvent[], token: string | null, toStart: boolean): void {\n // no-op because they've already been added to the room instance.\n }\n\n /**\n * Store a filter.\n */\n public storeFilter(filter: Filter): void {\n if (!filter?.userId || !filter?.filterId) return;\n this.filters.getOrCreate(filter.userId).set(filter.filterId, filter);\n }\n\n /**\n * Retrieve a filter.\n * @returns A filter or null.\n */\n public getFilter(userId: string, filterId: string): Filter | null {\n return this.filters.get(userId)?.get(filterId) || null;\n }\n\n /**\n * Retrieve a filter ID with the given name.\n * @param filterName - The filter name.\n * @returns The filter ID or null.\n */\n public getFilterIdByName(filterName: string): string | null {\n if (!this.localStorage) {\n return null;\n }\n const key = \"mxjssdk_memory_filter_\" + filterName;\n // XXX Storage.getItem doesn't throw ...\n // or are we using something different\n // than window.localStorage in some cases\n // that does throw?\n // that would be very naughty\n try {\n const value = this.localStorage.getItem(key);\n if (isValidFilterId(value)) {\n return value;\n }\n } catch {}\n return null;\n }\n\n /**\n * Set a filter name to ID mapping.\n */\n public setFilterIdByName(filterName: string, filterId?: string): void {\n if (!this.localStorage) {\n return;\n }\n const key = \"mxjssdk_memory_filter_\" + filterName;\n try {\n if (isValidFilterId(filterId)) {\n this.localStorage.setItem(key, filterId!);\n } else {\n this.localStorage.removeItem(key);\n }\n } catch {}\n }\n\n /**\n * Store user-scoped account data events.\n * N.B. that account data only allows a single event per type, so multiple\n * events with the same type will replace each other.\n * @param events - The events to store.\n */\n public storeAccountDataEvents(events: MatrixEvent[]): void {\n events.forEach((event) => {\n // MSC3391: an event with content of {} should be interpreted as deleted\n const isDeleted = !Object.keys(event.getContent()).length;\n if (isDeleted) {\n this.accountData.delete(event.getType());\n } else {\n this.accountData.set(event.getType(), event);\n }\n });\n }\n\n /**\n * Get account data event by event type\n * @param eventType - The event type being queried\n * @returns the user account_data event of given type, if any\n */\n public getAccountData(eventType: EventType | string): MatrixEvent | undefined {\n return this.accountData.get(eventType);\n }\n\n /**\n * setSyncData does nothing as there is no backing data store.\n *\n * @param syncData - The sync data\n * @returns An immediately resolved promise.\n */\n public setSyncData(syncData: ISyncResponse): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * We never want to save becase we have nothing to save to.\n *\n * @returns If the store wants to save\n */\n public wantsSave(): boolean {\n return false;\n }\n\n /**\n * Save does nothing as there is no backing data store.\n * @param force - True to force a save (but the memory\n * store still can't save anything)\n */\n public save(force: boolean): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Startup does nothing as this store doesn't require starting up.\n * @returns An immediately resolved promise.\n */\n public startup(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * @returns Promise which resolves with a sync response to restore the\n * client state to where it was at the last save, or null if there\n * is no saved sync data.\n */\n public getSavedSync(): Promise<ISavedSync | null> {\n return Promise.resolve(null);\n }\n\n /**\n * @returns If there is a saved sync, the nextBatch token\n * for this sync, otherwise null.\n */\n public getSavedSyncToken(): Promise<string | null> {\n return Promise.resolve(null);\n }\n\n /**\n * Delete all data from this store.\n * @returns An immediately resolved promise.\n */\n public deleteAllData(): Promise<void> {\n this.rooms = {\n // roomId: Room\n };\n this.users = {\n // userId: User\n };\n this.syncToken = null;\n this.filters = new MapWithDefault(() => new Map());\n this.accountData = new Map(); // type : content\n return Promise.resolve();\n }\n\n /**\n * Returns the out-of-band membership events for this room that\n * were previously loaded.\n * @returns the events, potentially an empty array if OOB loading didn't yield any new members\n * @returns in case the members for this room haven't been stored yet\n */\n public getOutOfBandMembers(roomId: string): Promise<IStateEventWithRoomId[] | null> {\n return Promise.resolve(this.oobMembers.get(roomId) || null);\n }\n\n /**\n * Stores the out-of-band membership events for this room. Note that\n * it still makes sense to store an empty array as the OOB status for the room is\n * marked as fetched, and getOutOfBandMembers will return an empty array instead of null\n * @param membershipEvents - the membership events to store\n * @returns when all members have been stored\n */\n public setOutOfBandMembers(roomId: string, membershipEvents: IStateEventWithRoomId[]): Promise<void> {\n this.oobMembers.set(roomId, membershipEvents);\n return Promise.resolve();\n }\n\n public clearOutOfBandMembers(roomId: string): Promise<void> {\n this.oobMembers.delete(roomId);\n return Promise.resolve();\n }\n\n public getClientOptions(): Promise<IStoredClientOpts | undefined> {\n return Promise.resolve(this.clientOptions);\n }\n\n public storeClientOptions(options: IStoredClientOpts): Promise<void> {\n this.clientOptions = Object.assign({}, options);\n return Promise.resolve();\n }\n\n public async getPendingEvents(roomId: string): Promise<Partial<IEvent>[]> {\n return this.pendingEvents[roomId] ?? [];\n }\n\n public async setPendingEvents(roomId: string, events: Partial<IEvent>[]): Promise<void> {\n this.pendingEvents[roomId] = events;\n }\n\n public saveToDeviceBatches(batches: ToDeviceBatchWithTxnId[]): Promise<void> {\n for (const batch of batches) {\n this.pendingToDeviceBatches.push({\n id: this.nextToDeviceBatchId++,\n eventType: batch.eventType,\n txnId: batch.txnId,\n batch: batch.batch,\n });\n }\n return Promise.resolve();\n }\n\n public async getOldestToDeviceBatch(): Promise<IndexedToDeviceBatch | null> {\n if (this.pendingToDeviceBatches.length === 0) return null;\n return this.pendingToDeviceBatches[0];\n }\n\n public removeToDeviceBatch(id: number): Promise<void> {\n this.pendingToDeviceBatches = this.pendingToDeviceBatches.filter((batch) => batch.id !== id);\n return Promise.resolve();\n }\n\n public async getUserProfile(userId: string): Promise<SyncUserProfile | undefined> {\n return this.userProfiles.get(userId);\n }\n\n public async storeUserProfiles(userProfiles: Map<string, SyncUserProfile>): Promise<void> {\n userProfiles.forEach((profile, userId) => this.userProfiles.set(userId, profile));\n }\n\n public async removeUserProfiles(userIds: string[]): Promise<void> {\n userIds.forEach((userId) => this.userProfiles.delete(userId));\n }\n\n public async removeEventsFromRoom(roomId: string, eventIds: string[]): Promise<void> {\n // Can ignore as there is no backing store.\n }\n\n public async destroy(): Promise<void> {\n // Nothing to do\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"memory.js","names":[],"sources":["../../src/store/memory.ts"],"sourcesContent":["/*\nCopyright 2015 - 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\n/**\n * This is an internal module. See {@link MemoryStore} for the public class.\n */\n\nimport { type EventType } from \"../@types/event.ts\";\nimport { type Room } from \"../models/room.ts\";\nimport { type SyncUserProfile, type User } from \"../models/user.ts\";\nimport { type IEvent, type MatrixEvent } from \"../models/event.ts\";\nimport { type RoomState, RoomStateEvent } from \"../models/room-state.ts\";\nimport { type RoomMember } from \"../models/room-member.ts\";\nimport { type Filter } from \"../filter.ts\";\nimport { type ISavedSync, type IStore, type UserCreator } from \"./index.ts\";\nimport { type RoomSummary } from \"../models/room-summary.ts\";\nimport { type ISyncResponse } from \"../sync-accumulator.ts\";\nimport { type IStateEventWithRoomId } from \"../@types/search.ts\";\nimport { type IndexedToDeviceBatch, type ToDeviceBatchWithTxnId } from \"../models/ToDeviceMessage.ts\";\nimport { type IStoredClientOpts } from \"../client.ts\";\nimport { MapWithDefault } from \"../utils.ts\";\nimport { KnownMembership } from \"../@types/membership.ts\";\n\nfunction isValidFilterId(filterId?: string | number | null): boolean {\n const isValidStr =\n typeof filterId === \"string\" &&\n !!filterId &&\n filterId !== \"undefined\" && // exclude these as we've serialized undefined in localStorage before\n filterId !== \"null\";\n\n return isValidStr || typeof filterId === \"number\";\n}\n\nexport interface IOpts {\n /** The local storage instance to persist some forms of data such as tokens. Rooms will NOT be stored. */\n localStorage?: Storage;\n}\n\nexport class MemoryStore implements IStore {\n private rooms: Record<string, Room> = {}; // roomId: Room\n private users: Record<string, User> = {}; // userId: User\n private syncToken: string | null = null;\n // userId: {\n // filterId: Filter\n // }\n private filters: MapWithDefault<string, Map<string, Filter>> = new MapWithDefault(() => new Map());\n public accountData: Map<string, MatrixEvent> = new Map(); // type: content\n protected readonly localStorage?: Storage;\n private oobMembers: Map<string, IStateEventWithRoomId[]> = new Map(); // roomId: [member events]\n private pendingEvents: { [roomId: string]: Partial<IEvent>[] } = {};\n private clientOptions?: IStoredClientOpts;\n private pendingToDeviceBatches: IndexedToDeviceBatch[] = [];\n private nextToDeviceBatchId = 0;\n protected createUser?: UserCreator;\n public readonly userProfiles = new Map<string, SyncUserProfile>();\n\n /**\n * Construct a new in-memory data store for the Matrix Client.\n * @param opts - Config options\n */\n public constructor(opts: IOpts = {}) {\n this.localStorage = opts.localStorage;\n }\n\n /**\n * Retrieve the token to stream from.\n * @returns The token or null.\n */\n public getSyncToken(): string | null {\n return this.syncToken;\n }\n\n /** @returns whether or not the database was newly created in this session. */\n public isNewlyCreated(): Promise<boolean> {\n return Promise.resolve(true);\n }\n\n /**\n * Set the token to stream from.\n * @param token - The token to stream from.\n */\n public setSyncToken(token: string): void {\n this.syncToken = token;\n }\n\n /**\n * Store the given room.\n * @param room - The room to be stored. All properties must be stored.\n */\n public storeRoom(room: Room): void {\n this.rooms[room.roomId] = room;\n // add listeners for room member changes so we can keep the room member\n // map up-to-date.\n room.currentState.on(RoomStateEvent.Members, this.onRoomMember);\n // add existing members\n room.currentState.getMembers().forEach((m) => {\n this.onRoomMember(null, room.currentState, m);\n });\n }\n\n public setUserCreator(creator: UserCreator): void {\n this.createUser = creator;\n }\n\n /**\n * Called when a room member in a room being tracked by this store has been\n * updated.\n */\n private onRoomMember = (event: MatrixEvent | null, state: RoomState, member: RoomMember): void => {\n if (member.membership === KnownMembership.Invite) {\n // We do NOT add invited members because people love to typo user IDs\n // which would then show up in these lists (!)\n return;\n }\n\n const user = this.users[member.userId] || this.createUser?.(member.userId);\n if (member.name) {\n user.setDisplayName(member.name);\n if (member.events.member) {\n user.setRawDisplayName(member.events.member.getDirectionalContent().displayname);\n }\n }\n if (member.events.member && member.events.member.getContent().avatar_url) {\n user.setAvatarUrl(member.events.member.getContent().avatar_url);\n }\n this.users[user.userId] = user;\n };\n\n /**\n * Retrieve a room by its' room ID.\n * @param roomId - The room ID.\n * @returns The room or null.\n */\n public getRoom(roomId: string): Room | null {\n return this.rooms[roomId] || null;\n }\n\n /**\n * Retrieve all known rooms.\n * @returns A list of rooms, which may be empty.\n */\n public getRooms(): Room[] {\n return Object.values(this.rooms);\n }\n\n /**\n * Permanently delete a room.\n */\n public removeRoom(roomId: string): void {\n if (this.rooms[roomId]) {\n this.rooms[roomId].currentState.removeListener(RoomStateEvent.Members, this.onRoomMember);\n }\n delete this.rooms[roomId];\n }\n\n /**\n * Retrieve a summary of all the rooms.\n * @returns A summary of each room.\n */\n public getRoomSummaries(): RoomSummary[] {\n return Object.values(this.rooms).map(function (room) {\n return room.summary!;\n });\n }\n\n /**\n * Store a User.\n * @param user - The user to store.\n */\n public storeUser(user: User): void {\n this.users[user.userId] = user;\n }\n\n /**\n * Retrieve a User by its' user ID.\n * @param userId - The user ID.\n * @returns The user or null.\n */\n public getUser(userId: string): User | null {\n return this.users[userId] || null;\n }\n\n /**\n * Retrieve all known users.\n * @returns A list of users, which may be empty.\n */\n public getUsers(): User[] {\n return Object.values(this.users);\n }\n\n /**\n * Retrieve scrollback for this room.\n * @param room - The matrix room\n * @param limit - The max number of old events to retrieve.\n * @returns An array of objects which will be at most 'limit'\n * length and at least 0. The objects are the raw event JSON.\n */\n public scrollback(room: Room, limit: number): MatrixEvent[] {\n return [];\n }\n\n /**\n * Store events for a room. The events have already been added to the timeline\n * @param room - The room to store events for.\n * @param events - The events to store.\n * @param token - The token associated with these events.\n * @param toStart - True if these are paginated results.\n */\n public storeEvents(room: Room, events: MatrixEvent[], token: string | null, toStart: boolean): void {\n // no-op because they've already been added to the room instance.\n }\n\n /**\n * Store a filter.\n */\n public storeFilter(filter: Filter): void {\n if (!filter?.userId || !filter?.filterId) return;\n this.filters.getOrCreate(filter.userId).set(filter.filterId, filter);\n }\n\n /**\n * Retrieve a filter.\n * @returns A filter or null.\n */\n public getFilter(userId: string, filterId: string): Filter | null {\n return this.filters.get(userId)?.get(filterId) || null;\n }\n\n /**\n * Retrieve a filter ID with the given name.\n * @param filterName - The filter name.\n * @returns The filter ID or null.\n */\n public getFilterIdByName(filterName: string): string | null {\n if (!this.localStorage) {\n return null;\n }\n const key = \"mxjssdk_memory_filter_\" + filterName;\n // XXX Storage.getItem doesn't throw ...\n // or are we using something different\n // than window.localStorage in some cases\n // that does throw?\n // that would be very naughty\n try {\n const value = this.localStorage.getItem(key);\n if (isValidFilterId(value)) {\n return value;\n }\n } catch {}\n return null;\n }\n\n /**\n * Set a filter name to ID mapping.\n */\n public setFilterIdByName(filterName: string, filterId?: string): void {\n if (!this.localStorage) {\n return;\n }\n const key = \"mxjssdk_memory_filter_\" + filterName;\n try {\n if (isValidFilterId(filterId)) {\n this.localStorage.setItem(key, filterId!);\n } else {\n this.localStorage.removeItem(key);\n }\n } catch {}\n }\n\n /**\n * Store user-scoped account data events.\n * N.B. that account data only allows a single event per type, so multiple\n * events with the same type will replace each other.\n * @param events - The events to store.\n */\n public storeAccountDataEvents(events: MatrixEvent[]): void {\n events.forEach((event) => {\n // MSC3391: an event with content of {} should be interpreted as deleted\n const isDeleted = !Object.keys(event.getContent()).length;\n if (isDeleted) {\n this.accountData.delete(event.getType());\n } else {\n this.accountData.set(event.getType(), event);\n }\n });\n }\n\n /**\n * Get account data event by event type\n * @param eventType - The event type being queried\n * @returns the user account_data event of given type, if any\n */\n public getAccountData(eventType: EventType | string): MatrixEvent | undefined {\n return this.accountData.get(eventType);\n }\n\n /**\n * setSyncData does nothing as there is no backing data store.\n *\n * @param syncData - The sync data\n * @returns An immediately resolved promise.\n */\n public setSyncData(syncData: ISyncResponse): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * We never want to save becase we have nothing to save to.\n *\n * @returns If the store wants to save\n */\n public wantsSave(): boolean {\n return false;\n }\n\n /**\n * Save does nothing as there is no backing data store.\n * @param force - True to force a save (but the memory\n * store still can't save anything)\n */\n public save(force: boolean): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Startup does nothing as this store doesn't require starting up.\n * @returns An immediately resolved promise.\n */\n public startup(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * @returns Promise which resolves with a sync response to restore the\n * client state to where it was at the last save, or null if there\n * is no saved sync data.\n */\n public getSavedSync(): Promise<ISavedSync | null> {\n return Promise.resolve(null);\n }\n\n /**\n * @returns If there is a saved sync, the nextBatch token\n * for this sync, otherwise null.\n */\n public getSavedSyncToken(): Promise<string | null> {\n return Promise.resolve(null);\n }\n\n /**\n * Delete all data from this store.\n * @returns An immediately resolved promise.\n */\n public deleteAllData(): Promise<void> {\n this.rooms = {\n // roomId: Room\n };\n this.users = {\n // userId: User\n };\n this.syncToken = null;\n this.filters = new MapWithDefault(() => new Map());\n this.accountData = new Map(); // type : content\n return Promise.resolve();\n }\n\n /**\n * Returns the out-of-band membership events for this room that\n * were previously loaded.\n * @returns the events, potentially an empty array if OOB loading didn't yield any new members\n * @returns in case the members for this room haven't been stored yet\n */\n public getOutOfBandMembers(roomId: string): Promise<IStateEventWithRoomId[] | null> {\n return Promise.resolve(this.oobMembers.get(roomId) || null);\n }\n\n /**\n * Stores the out-of-band membership events for this room. Note that\n * it still makes sense to store an empty array as the OOB status for the room is\n * marked as fetched, and getOutOfBandMembers will return an empty array instead of null\n * @param membershipEvents - the membership events to store\n * @returns when all members have been stored\n */\n public setOutOfBandMembers(roomId: string, membershipEvents: IStateEventWithRoomId[]): Promise<void> {\n this.oobMembers.set(roomId, membershipEvents);\n return Promise.resolve();\n }\n\n public clearOutOfBandMembers(roomId: string): Promise<void> {\n this.oobMembers.delete(roomId);\n return Promise.resolve();\n }\n\n public getClientOptions(): Promise<IStoredClientOpts | undefined> {\n return Promise.resolve(this.clientOptions);\n }\n\n public storeClientOptions(options: IStoredClientOpts): Promise<void> {\n this.clientOptions = Object.assign({}, options);\n return Promise.resolve();\n }\n\n public async getPendingEvents(roomId: string): Promise<Partial<IEvent>[]> {\n return this.pendingEvents[roomId] ?? [];\n }\n\n public async setPendingEvents(roomId: string, events: Partial<IEvent>[]): Promise<void> {\n this.pendingEvents[roomId] = events;\n }\n\n public saveToDeviceBatches(batches: ToDeviceBatchWithTxnId[]): Promise<void> {\n for (const batch of batches) {\n this.pendingToDeviceBatches.push({\n id: this.nextToDeviceBatchId++,\n eventType: batch.eventType,\n txnId: batch.txnId,\n batch: batch.batch,\n });\n }\n return Promise.resolve();\n }\n\n public async getOldestToDeviceBatch(): Promise<IndexedToDeviceBatch | null> {\n if (this.pendingToDeviceBatches.length === 0) return null;\n return this.pendingToDeviceBatches[0];\n }\n\n public removeToDeviceBatch(id: number): Promise<void> {\n this.pendingToDeviceBatches = this.pendingToDeviceBatches.filter((batch) => batch.id !== id);\n return Promise.resolve();\n }\n\n public async getUserProfile(userId: string): Promise<SyncUserProfile | undefined> {\n return this.userProfiles.get(userId);\n }\n\n public async storeUserProfiles(userProfiles: Map<string, SyncUserProfile>): Promise<void> {\n userProfiles.forEach((profile, userId) => this.userProfiles.set(userId, profile));\n }\n\n public async removeUserProfiles(userIds: string[]): Promise<void> {\n userIds.forEach((userId) => this.userProfiles.delete(userId));\n }\n\n public async removeEventsFromRoom(roomId: string, eventIds: string[]): Promise<void> {\n // Can ignore as there is no backing store.\n }\n\n public async destroy(): Promise<void> {\n // Nothing to do\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/store/stub.js CHANGED
@@ -1,4 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  /*
4
3
  Copyright 2015 - 2021 The Matrix.org Foundation C.I.C.
@@ -240,47 +239,35 @@ export class StubStore {
240
239
  storeClientOptions(options) {
241
240
  return Promise.resolve();
242
241
  }
243
- getPendingEvents(roomId) {
244
- return _asyncToGenerator(function* () {
245
- return [];
246
- })();
242
+ async getPendingEvents(roomId) {
243
+ return [];
247
244
  }
248
245
  setPendingEvents(roomId, events) {
249
246
  return Promise.resolve();
250
247
  }
251
- saveToDeviceBatches(batch) {
252
- return _asyncToGenerator(function* () {
253
- return Promise.resolve();
254
- })();
248
+ async saveToDeviceBatches(batch) {
249
+ return Promise.resolve();
255
250
  }
256
251
  getOldestToDeviceBatch() {
257
252
  return Promise.resolve(null);
258
253
  }
259
- removeToDeviceBatch(id) {
260
- return _asyncToGenerator(function* () {
261
- return Promise.resolve();
262
- })();
263
- }
264
- getUserProfile() {
265
- return _asyncToGenerator(function* () {
266
- return undefined;
267
- })();
268
- }
269
- storeUserProfiles() {
270
- return _asyncToGenerator(function* () {
271
- return;
272
- })();
273
- }
274
- removeUserProfiles() {
275
- return _asyncToGenerator(function* () {
276
- return;
277
- })();
278
- }
279
- destroy() {
280
- return _asyncToGenerator(function* () {})();
281
- } // Nothing to do
282
- removeEventsFromRoom(roomId, eventIds) {
283
- return _asyncToGenerator(function* () {})();
284
- } // Nothing to do
254
+ async removeToDeviceBatch(id) {
255
+ return Promise.resolve();
256
+ }
257
+ async getUserProfile() {
258
+ return undefined;
259
+ }
260
+ async storeUserProfiles() {
261
+ return;
262
+ }
263
+ async removeUserProfiles() {
264
+ return;
265
+ }
266
+ async destroy() {
267
+ // Nothing to do
268
+ }
269
+ async removeEventsFromRoom(roomId, eventIds) {
270
+ // Nothing to do
271
+ }
285
272
  }
286
273
  //# sourceMappingURL=stub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stub.js","names":["StubStore","constructor","_defineProperty","Map","isNewlyCreated","Promise","resolve","getSyncToken","fromToken","setSyncToken","token","storeRoom","room","getRoom","roomId","getRooms","removeRoom","getRoomSummaries","storeUser","user","getUser","userId","getUsers","scrollback","limit","setUserCreator","creator","storeEvents","events","toStart","storeFilter","filter","getFilter","filterId","getFilterIdByName","filterName","setFilterIdByName","storeAccountDataEvents","getAccountData","eventType","undefined","setSyncData","syncData","wantsSave","save","startup","getSavedSync","getSavedSyncToken","deleteAllData","getOutOfBandMembers","setOutOfBandMembers","membershipEvents","clearOutOfBandMembers","getClientOptions","storeClientOptions","options","getPendingEvents","_asyncToGenerator","setPendingEvents","saveToDeviceBatches","batch","getOldestToDeviceBatch","removeToDeviceBatch","id","getUserProfile","storeUserProfiles","removeUserProfiles","destroy","removeEventsFromRoom","eventIds"],"sources":["../../src/store/stub.ts"],"sourcesContent":["/*\nCopyright 2015 - 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\n/**\n * This is an internal module.\n */\n\nimport { type EventType } from \"../@types/event.ts\";\nimport { type Room } from \"../models/room.ts\";\nimport { type User } from \"../models/user.ts\";\nimport { type IEvent, type MatrixEvent } from \"../models/event.ts\";\nimport { type Filter } from \"../filter.ts\";\nimport { type ISavedSync, type IStore, type UserCreator } from \"./index.ts\";\nimport { type RoomSummary } from \"../models/room-summary.ts\";\nimport { type ISyncResponse } from \"../sync-accumulator.ts\";\nimport { type IStateEventWithRoomId } from \"../@types/search.ts\";\nimport { type IndexedToDeviceBatch, type ToDeviceBatch } from \"../models/ToDeviceMessage.ts\";\nimport { type IStoredClientOpts } from \"../client.ts\";\n\n/**\n * Construct a stub store. This does no-ops on most store methods.\n */\nexport class StubStore implements IStore {\n public readonly accountData = new Map(); // stub\n private fromToken: string | null = null;\n\n /** @returns whether or not the database was newly created in this session. */\n public isNewlyCreated(): Promise<boolean> {\n return Promise.resolve(true);\n }\n\n /**\n * Get the sync token.\n */\n public getSyncToken(): string | null {\n return this.fromToken;\n }\n\n /**\n * Set the sync token.\n */\n public setSyncToken(token: string): void {\n this.fromToken = token;\n }\n\n /**\n * No-op.\n */\n public storeRoom(room: Room): void {}\n\n /**\n * No-op.\n */\n public getRoom(roomId: string): Room | null {\n return null;\n }\n\n /**\n * No-op.\n * @returns An empty array.\n */\n public getRooms(): Room[] {\n return [];\n }\n\n /**\n * Permanently delete a room.\n */\n public removeRoom(roomId: string): void {\n return;\n }\n\n /**\n * No-op.\n * @returns An empty array.\n */\n public getRoomSummaries(): RoomSummary[] {\n return [];\n }\n\n /**\n * No-op.\n */\n public storeUser(user: User): void {}\n\n /**\n * No-op.\n */\n public getUser(userId: string): User | null {\n return null;\n }\n\n /**\n * No-op.\n */\n public getUsers(): User[] {\n return [];\n }\n\n /**\n * No-op.\n */\n public scrollback(room: Room, limit: number): MatrixEvent[] {\n return [];\n }\n\n /**\n * No-op.\n */\n public setUserCreator(creator: UserCreator): void {\n return;\n }\n\n /**\n * Store events for a room.\n * @param room - The room to store events for.\n * @param events - The events to store.\n * @param token - The token associated with these events.\n * @param toStart - True if these are paginated results.\n */\n public storeEvents(room: Room, events: MatrixEvent[], token: string | null, toStart: boolean): void {}\n\n /**\n * Store a filter.\n */\n public storeFilter(filter: Filter): void {}\n\n /**\n * Retrieve a filter.\n * @returns A filter or null.\n */\n public getFilter(userId: string, filterId: string): Filter | null {\n return null;\n }\n\n /**\n * Retrieve a filter ID with the given name.\n * @param filterName - The filter name.\n * @returns The filter ID or null.\n */\n public getFilterIdByName(filterName: string): string | null {\n return null;\n }\n\n /**\n * Set a filter name to ID mapping.\n */\n public setFilterIdByName(filterName: string, filterId?: string): void {}\n\n /**\n * Store user-scoped account data events\n * @param events - The events to store.\n */\n public storeAccountDataEvents(events: MatrixEvent[]): void {}\n\n /**\n * Get account data event by event type\n * @param eventType - The event type being queried\n */\n public getAccountData(eventType: EventType | string): MatrixEvent | undefined {\n return undefined;\n }\n\n /**\n * setSyncData does nothing as there is no backing data store.\n *\n * @param syncData - The sync data\n * @returns An immediately resolved promise.\n */\n public setSyncData(syncData: ISyncResponse): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * We never want to save because we have nothing to save to.\n *\n * @returns If the store wants to save\n */\n public wantsSave(): boolean {\n return false;\n }\n\n /**\n * Save does nothing as there is no backing data store.\n */\n public save(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Startup does nothing.\n * @returns An immediately resolved promise.\n */\n public startup(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * @returns Promise which resolves with a sync response to restore the\n * client state to where it was at the last save, or null if there\n * is no saved sync data.\n */\n public getSavedSync(): Promise<ISavedSync | null> {\n return Promise.resolve(null);\n }\n\n /**\n * @returns If there is a saved sync, the nextBatch token\n * for this sync, otherwise null.\n */\n public getSavedSyncToken(): Promise<string | null> {\n return Promise.resolve(null);\n }\n\n /**\n * Delete all data from this store. Does nothing since this store\n * doesn't store anything.\n * @returns An immediately resolved promise.\n */\n public deleteAllData(): Promise<void> {\n return Promise.resolve();\n }\n\n public getOutOfBandMembers(): Promise<IStateEventWithRoomId[] | null> {\n return Promise.resolve(null);\n }\n\n public setOutOfBandMembers(roomId: string, membershipEvents: IStateEventWithRoomId[]): Promise<void> {\n return Promise.resolve();\n }\n\n public clearOutOfBandMembers(): Promise<void> {\n return Promise.resolve();\n }\n\n public getClientOptions(): Promise<IStoredClientOpts | undefined> {\n return Promise.resolve(undefined);\n }\n\n public storeClientOptions(options: IStoredClientOpts): Promise<void> {\n return Promise.resolve();\n }\n\n public async getPendingEvents(roomId: string): Promise<Partial<IEvent>[]> {\n return [];\n }\n\n public setPendingEvents(roomId: string, events: Partial<IEvent>[]): Promise<void> {\n return Promise.resolve();\n }\n\n public async saveToDeviceBatches(batch: ToDeviceBatch[]): Promise<void> {\n return Promise.resolve();\n }\n\n public getOldestToDeviceBatch(): Promise<IndexedToDeviceBatch | null> {\n return Promise.resolve(null);\n }\n\n public async removeToDeviceBatch(id: number): Promise<void> {\n return Promise.resolve();\n }\n\n public async getUserProfile(): Promise<undefined> {\n return undefined;\n }\n\n public async storeUserProfiles(): Promise<void> {\n return;\n }\n\n public async removeUserProfiles(): Promise<void> {\n return;\n }\n\n public async destroy(): Promise<void> {\n // Nothing to do\n }\n public async removeEventsFromRoom(roomId: string, eventIds: string[]): Promise<void> {\n // Nothing to do\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"stub.js","names":[],"sources":["../../src/store/stub.ts"],"sourcesContent":["/*\nCopyright 2015 - 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\n/**\n * This is an internal module.\n */\n\nimport { type EventType } from \"../@types/event.ts\";\nimport { type Room } from \"../models/room.ts\";\nimport { type User } from \"../models/user.ts\";\nimport { type IEvent, type MatrixEvent } from \"../models/event.ts\";\nimport { type Filter } from \"../filter.ts\";\nimport { type ISavedSync, type IStore, type UserCreator } from \"./index.ts\";\nimport { type RoomSummary } from \"../models/room-summary.ts\";\nimport { type ISyncResponse } from \"../sync-accumulator.ts\";\nimport { type IStateEventWithRoomId } from \"../@types/search.ts\";\nimport { type IndexedToDeviceBatch, type ToDeviceBatch } from \"../models/ToDeviceMessage.ts\";\nimport { type IStoredClientOpts } from \"../client.ts\";\n\n/**\n * Construct a stub store. This does no-ops on most store methods.\n */\nexport class StubStore implements IStore {\n public readonly accountData = new Map(); // stub\n private fromToken: string | null = null;\n\n /** @returns whether or not the database was newly created in this session. */\n public isNewlyCreated(): Promise<boolean> {\n return Promise.resolve(true);\n }\n\n /**\n * Get the sync token.\n */\n public getSyncToken(): string | null {\n return this.fromToken;\n }\n\n /**\n * Set the sync token.\n */\n public setSyncToken(token: string): void {\n this.fromToken = token;\n }\n\n /**\n * No-op.\n */\n public storeRoom(room: Room): void {}\n\n /**\n * No-op.\n */\n public getRoom(roomId: string): Room | null {\n return null;\n }\n\n /**\n * No-op.\n * @returns An empty array.\n */\n public getRooms(): Room[] {\n return [];\n }\n\n /**\n * Permanently delete a room.\n */\n public removeRoom(roomId: string): void {\n return;\n }\n\n /**\n * No-op.\n * @returns An empty array.\n */\n public getRoomSummaries(): RoomSummary[] {\n return [];\n }\n\n /**\n * No-op.\n */\n public storeUser(user: User): void {}\n\n /**\n * No-op.\n */\n public getUser(userId: string): User | null {\n return null;\n }\n\n /**\n * No-op.\n */\n public getUsers(): User[] {\n return [];\n }\n\n /**\n * No-op.\n */\n public scrollback(room: Room, limit: number): MatrixEvent[] {\n return [];\n }\n\n /**\n * No-op.\n */\n public setUserCreator(creator: UserCreator): void {\n return;\n }\n\n /**\n * Store events for a room.\n * @param room - The room to store events for.\n * @param events - The events to store.\n * @param token - The token associated with these events.\n * @param toStart - True if these are paginated results.\n */\n public storeEvents(room: Room, events: MatrixEvent[], token: string | null, toStart: boolean): void {}\n\n /**\n * Store a filter.\n */\n public storeFilter(filter: Filter): void {}\n\n /**\n * Retrieve a filter.\n * @returns A filter or null.\n */\n public getFilter(userId: string, filterId: string): Filter | null {\n return null;\n }\n\n /**\n * Retrieve a filter ID with the given name.\n * @param filterName - The filter name.\n * @returns The filter ID or null.\n */\n public getFilterIdByName(filterName: string): string | null {\n return null;\n }\n\n /**\n * Set a filter name to ID mapping.\n */\n public setFilterIdByName(filterName: string, filterId?: string): void {}\n\n /**\n * Store user-scoped account data events\n * @param events - The events to store.\n */\n public storeAccountDataEvents(events: MatrixEvent[]): void {}\n\n /**\n * Get account data event by event type\n * @param eventType - The event type being queried\n */\n public getAccountData(eventType: EventType | string): MatrixEvent | undefined {\n return undefined;\n }\n\n /**\n * setSyncData does nothing as there is no backing data store.\n *\n * @param syncData - The sync data\n * @returns An immediately resolved promise.\n */\n public setSyncData(syncData: ISyncResponse): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * We never want to save because we have nothing to save to.\n *\n * @returns If the store wants to save\n */\n public wantsSave(): boolean {\n return false;\n }\n\n /**\n * Save does nothing as there is no backing data store.\n */\n public save(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Startup does nothing.\n * @returns An immediately resolved promise.\n */\n public startup(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * @returns Promise which resolves with a sync response to restore the\n * client state to where it was at the last save, or null if there\n * is no saved sync data.\n */\n public getSavedSync(): Promise<ISavedSync | null> {\n return Promise.resolve(null);\n }\n\n /**\n * @returns If there is a saved sync, the nextBatch token\n * for this sync, otherwise null.\n */\n public getSavedSyncToken(): Promise<string | null> {\n return Promise.resolve(null);\n }\n\n /**\n * Delete all data from this store. Does nothing since this store\n * doesn't store anything.\n * @returns An immediately resolved promise.\n */\n public deleteAllData(): Promise<void> {\n return Promise.resolve();\n }\n\n public getOutOfBandMembers(): Promise<IStateEventWithRoomId[] | null> {\n return Promise.resolve(null);\n }\n\n public setOutOfBandMembers(roomId: string, membershipEvents: IStateEventWithRoomId[]): Promise<void> {\n return Promise.resolve();\n }\n\n public clearOutOfBandMembers(): Promise<void> {\n return Promise.resolve();\n }\n\n public getClientOptions(): Promise<IStoredClientOpts | undefined> {\n return Promise.resolve(undefined);\n }\n\n public storeClientOptions(options: IStoredClientOpts): Promise<void> {\n return Promise.resolve();\n }\n\n public async getPendingEvents(roomId: string): Promise<Partial<IEvent>[]> {\n return [];\n }\n\n public setPendingEvents(roomId: string, events: Partial<IEvent>[]): Promise<void> {\n return Promise.resolve();\n }\n\n public async saveToDeviceBatches(batch: ToDeviceBatch[]): Promise<void> {\n return Promise.resolve();\n }\n\n public getOldestToDeviceBatch(): Promise<IndexedToDeviceBatch | null> {\n return Promise.resolve(null);\n }\n\n public async removeToDeviceBatch(id: number): Promise<void> {\n return Promise.resolve();\n }\n\n public async getUserProfile(): Promise<undefined> {\n return undefined;\n }\n\n public async storeUserProfiles(): Promise<void> {\n return;\n }\n\n public async removeUserProfiles(): Promise<void> {\n return;\n }\n\n public async destroy(): Promise<void> {\n // Nothing to do\n }\n public async removeEventsFromRoom(roomId: string, eventIds: string[]): Promise<void> {\n // Nothing to do\n }\n}\n"],"mappings":"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","ignoreList":[]}