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
  /*
3
2
  Copyright 2022 - 2024 The Matrix.org Foundation C.I.C.
4
3
 
@@ -22,16 +21,16 @@ import { ConnectionError, HTTPError, MatrixError, MatrixSafetyError, MatrixSafet
22
21
 
23
22
  // Ponyfill for https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/timeout
24
23
  export function timeoutSignal(ms) {
25
- var controller = new AbortController();
24
+ const controller = new AbortController();
26
25
  setTimeout(() => {
27
26
  controller.abort();
28
27
  }, ms);
29
28
  return controller.signal;
30
29
  }
31
30
  export function anySignal(signals) {
32
- var controller = new AbortController();
31
+ const controller = new AbortController();
33
32
  function cleanup() {
34
- for (var signal of signals) {
33
+ for (const signal of signals) {
35
34
  signal.removeEventListener("abort", onAbort);
36
35
  }
37
36
  }
@@ -39,7 +38,7 @@ export function anySignal(signals) {
39
38
  controller.abort();
40
39
  cleanup();
41
40
  }
42
- for (var signal of signals) {
41
+ for (const signal of signals) {
43
42
  if (signal.aborted) {
44
43
  onAbort();
45
44
  break;
@@ -63,28 +62,27 @@ export function anySignal(signals) {
63
62
  * @returns
64
63
  */
65
64
  export function parseErrorResponse(response, body) {
66
- var _contentType, _contentType2;
67
- var httpHeaders = isXhr(response) ? new Headers(response.getAllResponseHeaders().trim().split(/[\r\n]+/).map(header => {
68
- var colonIdx = header.indexOf(":");
65
+ const httpHeaders = isXhr(response) ? new Headers(response.getAllResponseHeaders().trim().split(/[\r\n]+/).map(header => {
66
+ const colonIdx = header.indexOf(":");
69
67
  return [header.substring(0, colonIdx), header.substring(colonIdx + 1)];
70
68
  })) : response.headers;
71
- var contentType;
69
+ let contentType;
72
70
  try {
73
71
  contentType = getResponseContentType(httpHeaders);
74
72
  } catch (e) {
75
73
  return e;
76
74
  }
77
- if (((_contentType = contentType) === null || _contentType === void 0 ? void 0 : _contentType.type) === "application/json" && body) {
78
- var errorBody = JSON.parse(body);
75
+ if (contentType?.type === "application/json" && body) {
76
+ const errorBody = JSON.parse(body);
79
77
  if (errorBody.errcode && MatrixSafetyErrorCode.matches(errorBody.errcode)) {
80
78
  return new MatrixSafetyError(errorBody, response.status, isXhr(response) ? response.responseURL : response.url, undefined, httpHeaders);
81
79
  }
82
80
  return new MatrixError(errorBody, response.status, isXhr(response) ? response.responseURL : response.url, undefined, httpHeaders);
83
81
  }
84
- if (((_contentType2 = contentType) === null || _contentType2 === void 0 ? void 0 : _contentType2.type) === "text/plain") {
85
- return new HTTPError("Server returned ".concat(response.status, " error: ").concat(body), response.status, httpHeaders);
82
+ if (contentType?.type === "text/plain") {
83
+ return new HTTPError(`Server returned ${response.status} error: ${body}`, response.status, httpHeaders);
86
84
  }
87
- return new HTTPError("Server returned ".concat(response.status, " error"), response.status, httpHeaders);
85
+ return new HTTPError(`Server returned ${response.status} error`, response.status, httpHeaders);
88
86
  }
89
87
  function isXhr(response) {
90
88
  return "getResponseHeader" in response;
@@ -100,7 +98,7 @@ function isXhr(response) {
100
98
  * @returns parsed content-type header, or null if not found
101
99
  */
102
100
  function getResponseContentType(headers) {
103
- var contentType = headers.get("Content-Type");
101
+ const contentType = headers.get("Content-Type");
104
102
  if (contentType === null) return null;
105
103
  return parseContentType(contentType);
106
104
  }
@@ -112,8 +110,27 @@ function getResponseContentType(headers) {
112
110
  * @returns the result of the network operation
113
111
  * @throws {@link ConnectionError} If after maxAttempts the callback still throws ConnectionError
114
112
  */
115
- export function retryNetworkOperation(_x, _x2) {
116
- return _retryNetworkOperation.apply(this, arguments);
113
+ export async function retryNetworkOperation(maxAttempts, callback) {
114
+ let attempts = 0;
115
+ let lastConnectionError = null;
116
+ while (attempts < maxAttempts) {
117
+ try {
118
+ if (attempts > 0) {
119
+ const timeout = 1000 * Math.pow(2, attempts);
120
+ logger.log(`network operation failed ${attempts} times, retrying in ${timeout}ms...`);
121
+ await sleep(timeout);
122
+ }
123
+ return await callback();
124
+ } catch (err) {
125
+ if (err instanceof ConnectionError) {
126
+ attempts += 1;
127
+ lastConnectionError = err;
128
+ } else {
129
+ throw err;
130
+ }
131
+ }
132
+ }
133
+ throw lastConnectionError;
117
134
  }
118
135
 
119
136
  /**
@@ -127,31 +144,6 @@ export function retryNetworkOperation(_x, _x2) {
127
144
  * @param attempts - The number of attempts made so far, including the one that just failed.
128
145
  * @param retryConnectionError - Whether to retry on {@link ConnectionError} (CORS, connection is down, etc.)
129
146
  */
130
- function _retryNetworkOperation() {
131
- _retryNetworkOperation = _asyncToGenerator(function* (maxAttempts, callback) {
132
- var attempts = 0;
133
- var lastConnectionError = null;
134
- while (attempts < maxAttempts) {
135
- try {
136
- if (attempts > 0) {
137
- var timeout = 1000 * Math.pow(2, attempts);
138
- logger.log("network operation failed ".concat(attempts, " times, retrying in ").concat(timeout, "ms..."));
139
- yield sleep(timeout);
140
- }
141
- return yield callback();
142
- } catch (err) {
143
- if (err instanceof ConnectionError) {
144
- attempts += 1;
145
- lastConnectionError = err;
146
- } else {
147
- throw err;
148
- }
149
- }
150
- }
151
- throw lastConnectionError;
152
- });
153
- return _retryNetworkOperation.apply(this, arguments);
154
- }
155
147
  export function calculateRetryBackoff(err, attempts, retryConnectionError) {
156
148
  if (attempts > 4) {
157
149
  return -1; // give up
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["parse","parseContentType","logger","sleep","ConnectionError","HTTPError","MatrixError","MatrixSafetyError","MatrixSafetyErrorCode","safeGetRetryAfterMs","timeoutSignal","ms","controller","AbortController","setTimeout","abort","signal","anySignal","signals","cleanup","removeEventListener","onAbort","aborted","addEventListener","parseErrorResponse","response","body","_contentType","_contentType2","httpHeaders","isXhr","Headers","getAllResponseHeaders","trim","split","map","header","colonIdx","indexOf","substring","headers","contentType","getResponseContentType","e","type","errorBody","JSON","errcode","matches","status","responseURL","url","undefined","concat","get","retryNetworkOperation","_x","_x2","_retryNetworkOperation","apply","arguments","_asyncToGenerator","maxAttempts","callback","attempts","lastConnectionError","timeout","Math","pow","log","err","calculateRetryBackoff","retryConnectionError","httpStatus","floor","name"],"sources":["../../src/http-api/utils.ts"],"sourcesContent":["/*\nCopyright 2022 - 2024 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { parse as parseContentType, type ContentType } from \"content-type\";\n\nimport { logger } from \"../logger.ts\";\nimport { sleep } from \"../utils.ts\";\nimport {\n ConnectionError,\n HTTPError,\n MatrixError,\n MatrixSafetyError,\n MatrixSafetyErrorCode,\n safeGetRetryAfterMs,\n} from \"./errors.ts\";\n\n// Ponyfill for https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/timeout\nexport function timeoutSignal(ms: number): AbortSignal {\n const controller = new AbortController();\n setTimeout(() => {\n controller.abort();\n }, ms);\n\n return controller.signal;\n}\n\nexport function anySignal(signals: AbortSignal[]): {\n signal: AbortSignal;\n cleanup(): void;\n} {\n const controller = new AbortController();\n\n function cleanup(): void {\n for (const signal of signals) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n\n function onAbort(): void {\n controller.abort();\n cleanup();\n }\n\n for (const signal of signals) {\n if (signal.aborted) {\n onAbort();\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n\n return {\n signal: controller.signal,\n cleanup,\n };\n}\n\n/**\n * Attempt to turn an HTTP error response into a Javascript Error.\n *\n * If it is a JSON response, we will parse it into a MatrixError. Otherwise\n * we return a generic Error.\n *\n * @param response - response object\n * @param body - raw body of the response\n * @returns\n */\nexport function parseErrorResponse(response: XMLHttpRequest | Response, body?: string): Error {\n const httpHeaders = isXhr(response)\n ? new Headers(\n response\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/)\n .map((header): [string, string] => {\n const colonIdx = header.indexOf(\":\");\n return [header.substring(0, colonIdx), header.substring(colonIdx + 1)];\n }),\n )\n : response.headers;\n\n let contentType: ContentType | null;\n try {\n contentType = getResponseContentType(httpHeaders);\n } catch (e) {\n return <Error>e;\n }\n if (contentType?.type === \"application/json\" && body) {\n const errorBody = JSON.parse(body);\n if (errorBody.errcode && MatrixSafetyErrorCode.matches(errorBody.errcode)) {\n return new MatrixSafetyError(\n errorBody,\n response.status,\n isXhr(response) ? response.responseURL : response.url,\n undefined,\n httpHeaders,\n );\n }\n return new MatrixError(\n errorBody,\n response.status,\n isXhr(response) ? response.responseURL : response.url,\n undefined,\n httpHeaders,\n );\n }\n if (contentType?.type === \"text/plain\") {\n return new HTTPError(`Server returned ${response.status} error: ${body}`, response.status, httpHeaders);\n }\n return new HTTPError(`Server returned ${response.status} error`, response.status, httpHeaders);\n}\n\nfunction isXhr(response: XMLHttpRequest | Response): response is XMLHttpRequest {\n return \"getResponseHeader\" in response;\n}\n\n/**\n * extract the Content-Type header from response headers, and\n * parse it to a `{type, parameters}` object.\n *\n * returns null if no content-type header could be found.\n *\n * @param response - response object\n * @returns parsed content-type header, or null if not found\n */\nfunction getResponseContentType(headers: Headers): ContentType | null {\n const contentType = headers.get(\"Content-Type\");\n if (contentType === null) return null;\n return parseContentType(contentType);\n}\n\n/**\n * Retries a network operation run in a callback.\n * @param maxAttempts - maximum attempts to try\n * @param callback - callback that returns a promise of the network operation. If rejected with ConnectionError, it will be retried by calling the callback again.\n * @returns the result of the network operation\n * @throws {@link ConnectionError} If after maxAttempts the callback still throws ConnectionError\n */\nexport async function retryNetworkOperation<T>(maxAttempts: number, callback: () => Promise<T>): Promise<T> {\n let attempts = 0;\n let lastConnectionError: ConnectionError | null = null;\n while (attempts < maxAttempts) {\n try {\n if (attempts > 0) {\n const timeout = 1000 * Math.pow(2, attempts);\n logger.log(`network operation failed ${attempts} times, retrying in ${timeout}ms...`);\n await sleep(timeout);\n }\n return await callback();\n } catch (err) {\n if (err instanceof ConnectionError) {\n attempts += 1;\n lastConnectionError = err;\n } else {\n throw err;\n }\n }\n }\n throw lastConnectionError;\n}\n\n/**\n * Calculate the backoff time for a request retry attempt.\n * This produces wait times of 2, 4, 8, and 16 seconds (30s total) after which we give up. If the\n * failure was due to a rate limited request, the time specified in the error is returned.\n *\n * Returns -1 if the error is not retryable, or if we reach the maximum number of attempts.\n *\n * @param err - The error thrown by the http call\n * @param attempts - The number of attempts made so far, including the one that just failed.\n * @param retryConnectionError - Whether to retry on {@link ConnectionError} (CORS, connection is down, etc.)\n */\nexport function calculateRetryBackoff(err: any, attempts: number, retryConnectionError: boolean): number {\n if (attempts > 4) {\n return -1; // give up\n }\n\n if (err instanceof ConnectionError && !retryConnectionError) {\n return -1;\n }\n\n if (err.httpStatus && Math.floor(err.httpStatus / 100) === 4 && err.httpStatus !== 429) {\n // client error; no amount of retrying will save you now (except for rate limiting which is handled below)\n return -1;\n }\n\n if (err.name === \"AbortError\") {\n // this is a client timeout, that is already very high 60s/80s\n // we don't want to retry, as it could do it for very long\n return -1;\n }\n\n // If we are trying to send an event (or similar) that is too large in any way, then retrying won't help\n if (err.name === \"M_TOO_LARGE\") {\n return -1;\n }\n\n return safeGetRetryAfterMs(err, 1000 * Math.pow(2, attempts));\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../src/http-api/utils.ts"],"sourcesContent":["/*\nCopyright 2022 - 2024 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport { parse as parseContentType, type ContentType } from \"content-type\";\n\nimport { logger } from \"../logger.ts\";\nimport { sleep } from \"../utils.ts\";\nimport {\n ConnectionError,\n HTTPError,\n MatrixError,\n MatrixSafetyError,\n MatrixSafetyErrorCode,\n safeGetRetryAfterMs,\n} from \"./errors.ts\";\n\n// Ponyfill for https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/timeout\nexport function timeoutSignal(ms: number): AbortSignal {\n const controller = new AbortController();\n setTimeout(() => {\n controller.abort();\n }, ms);\n\n return controller.signal;\n}\n\nexport function anySignal(signals: AbortSignal[]): {\n signal: AbortSignal;\n cleanup(this: void): void;\n} {\n const controller = new AbortController();\n\n function cleanup(): void {\n for (const signal of signals) {\n signal.removeEventListener(\"abort\", onAbort);\n }\n }\n\n function onAbort(): void {\n controller.abort();\n cleanup();\n }\n\n for (const signal of signals) {\n if (signal.aborted) {\n onAbort();\n break;\n }\n signal.addEventListener(\"abort\", onAbort);\n }\n\n return {\n signal: controller.signal,\n cleanup,\n };\n}\n\n/**\n * Attempt to turn an HTTP error response into a Javascript Error.\n *\n * If it is a JSON response, we will parse it into a MatrixError. Otherwise\n * we return a generic Error.\n *\n * @param response - response object\n * @param body - raw body of the response\n * @returns\n */\nexport function parseErrorResponse(response: XMLHttpRequest | Response, body?: string): Error {\n const httpHeaders = isXhr(response)\n ? new Headers(\n response\n .getAllResponseHeaders()\n .trim()\n .split(/[\\r\\n]+/)\n .map((header): [string, string] => {\n const colonIdx = header.indexOf(\":\");\n return [header.substring(0, colonIdx), header.substring(colonIdx + 1)];\n }),\n )\n : response.headers;\n\n let contentType: ContentType | null;\n try {\n contentType = getResponseContentType(httpHeaders);\n } catch (e) {\n return <Error>e;\n }\n if (contentType?.type === \"application/json\" && body) {\n const errorBody = JSON.parse(body);\n if (errorBody.errcode && MatrixSafetyErrorCode.matches(errorBody.errcode)) {\n return new MatrixSafetyError(\n errorBody,\n response.status,\n isXhr(response) ? response.responseURL : response.url,\n undefined,\n httpHeaders,\n );\n }\n return new MatrixError(\n errorBody,\n response.status,\n isXhr(response) ? response.responseURL : response.url,\n undefined,\n httpHeaders,\n );\n }\n if (contentType?.type === \"text/plain\") {\n return new HTTPError(`Server returned ${response.status} error: ${body}`, response.status, httpHeaders);\n }\n return new HTTPError(`Server returned ${response.status} error`, response.status, httpHeaders);\n}\n\nfunction isXhr(response: XMLHttpRequest | Response): response is XMLHttpRequest {\n return \"getResponseHeader\" in response;\n}\n\n/**\n * extract the Content-Type header from response headers, and\n * parse it to a `{type, parameters}` object.\n *\n * returns null if no content-type header could be found.\n *\n * @param response - response object\n * @returns parsed content-type header, or null if not found\n */\nfunction getResponseContentType(headers: Headers): ContentType | null {\n const contentType = headers.get(\"Content-Type\");\n if (contentType === null) return null;\n return parseContentType(contentType);\n}\n\n/**\n * Retries a network operation run in a callback.\n * @param maxAttempts - maximum attempts to try\n * @param callback - callback that returns a promise of the network operation. If rejected with ConnectionError, it will be retried by calling the callback again.\n * @returns the result of the network operation\n * @throws {@link ConnectionError} If after maxAttempts the callback still throws ConnectionError\n */\nexport async function retryNetworkOperation<T>(maxAttempts: number, callback: () => Promise<T>): Promise<T> {\n let attempts = 0;\n let lastConnectionError: ConnectionError | null = null;\n while (attempts < maxAttempts) {\n try {\n if (attempts > 0) {\n const timeout = 1000 * Math.pow(2, attempts);\n logger.log(`network operation failed ${attempts} times, retrying in ${timeout}ms...`);\n await sleep(timeout);\n }\n return await callback();\n } catch (err) {\n if (err instanceof ConnectionError) {\n attempts += 1;\n lastConnectionError = err;\n } else {\n throw err;\n }\n }\n }\n throw lastConnectionError;\n}\n\n/**\n * Calculate the backoff time for a request retry attempt.\n * This produces wait times of 2, 4, 8, and 16 seconds (30s total) after which we give up. If the\n * failure was due to a rate limited request, the time specified in the error is returned.\n *\n * Returns -1 if the error is not retryable, or if we reach the maximum number of attempts.\n *\n * @param err - The error thrown by the http call\n * @param attempts - The number of attempts made so far, including the one that just failed.\n * @param retryConnectionError - Whether to retry on {@link ConnectionError} (CORS, connection is down, etc.)\n */\nexport function calculateRetryBackoff(err: any, attempts: number, retryConnectionError: boolean): number {\n if (attempts > 4) {\n return -1; // give up\n }\n\n if (err instanceof ConnectionError && !retryConnectionError) {\n return -1;\n }\n\n if (err.httpStatus && Math.floor(err.httpStatus / 100) === 4 && err.httpStatus !== 429) {\n // client error; no amount of retrying will save you now (except for rate limiting which is handled below)\n return -1;\n }\n\n if (err.name === \"AbortError\") {\n // this is a client timeout, that is already very high 60s/80s\n // we don't want to retry, as it could do it for very long\n return -1;\n }\n\n // If we are trying to send an event (or similar) that is too large in any way, then retrying won't help\n if (err.name === \"M_TOO_LARGE\") {\n return -1;\n }\n\n return safeGetRetryAfterMs(err, 1000 * Math.pow(2, attempts));\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["matrixcs","globalThis","__js_sdk_entrypoint","Error"],"sources":["../src/index.ts"],"sourcesContent":["/*\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as matrixcs from \"./matrix.ts\";\n\nif (globalThis.__js_sdk_entrypoint) {\n throw new Error(\"Multiple matrix-js-sdk entrypoints detected!\");\n}\nglobalThis.__js_sdk_entrypoint = true;\n\nexport * from \"./matrix.ts\";\nexport default matrixcs;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,QAAQ,MAAM,aAAa;AAEvC,IAAIC,UAAU,CAACC,mBAAmB,EAAE;EAChC,MAAM,IAAIC,KAAK,CAAC,8CAA8C,CAAC;AACnE;AACAF,UAAU,CAACC,mBAAmB,GAAG,IAAI;AAErC,cAAc,aAAa;AAC3B,eAAeF,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/*\nCopyright 2019 The Matrix.org Foundation C.I.C.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\nimport * as matrixcs from \"./matrix.ts\";\n\nif (globalThis.__js_sdk_entrypoint) {\n throw new Error(\"Multiple matrix-js-sdk entrypoints detected!\");\n}\nglobalThis.__js_sdk_entrypoint = true;\n\nexport * from \"./matrix.ts\";\nexport default matrixcs;\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAK,QAAQ,MAAM,aAAa;AAEvC,IAAI,UAAU,CAAC,mBAAmB,EAAE;EAChC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AACnE;AACA,UAAU,CAAC,mBAAmB,GAAG,IAAI;AAErC,cAAc,aAAa;AAC3B,eAAe,QAAQ","ignoreList":[]}
@@ -24,8 +24,8 @@ limitations under the License.
24
24
  */
25
25
  export function exists(indexedDB, dbName) {
26
26
  return new Promise((resolve, reject) => {
27
- var exists = true;
28
- var req = indexedDB.open(dbName);
27
+ let exists = true;
28
+ const req = indexedDB.open(dbName);
29
29
  req.onupgradeneeded = () => {
30
30
  // Since we did not provide an explicit version when opening, this event
31
31
  // should only fire if the DB did not exist before at any version.
@@ -33,7 +33,7 @@ export function exists(indexedDB, dbName) {
33
33
  };
34
34
  req.onblocked = () => reject(req.error);
35
35
  req.onsuccess = () => {
36
- var db = req.result;
36
+ const db = req.result;
37
37
  db.close();
38
38
  if (!exists) {
39
39
  // The DB did not exist before, but has been created as part of this
@@ -1 +1 @@
1
- {"version":3,"file":"indexeddb-helpers.js","names":["exists","indexedDB","dbName","Promise","resolve","reject","req","open","onupgradeneeded","onblocked","error","onsuccess","db","result","close","deleteDatabase","onerror"],"sources":["../src/indexeddb-helpers.ts"],"sourcesContent":["/*\nCopyright 2019 New Vector Ltd\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 * Check if an IndexedDB database exists. The only way to do so is to try opening it, so\n * we do that and then delete it did not exist before.\n *\n * @param indexedDB - The `indexedDB` interface\n * @param dbName - The database name to test for\n * @returns Whether the database exists\n */\nexport function exists(indexedDB: IDBFactory, dbName: string): Promise<boolean> {\n return new Promise<boolean>((resolve, reject) => {\n let exists = true;\n const req = indexedDB.open(dbName);\n req.onupgradeneeded = (): void => {\n // Since we did not provide an explicit version when opening, this event\n // should only fire if the DB did not exist before at any version.\n exists = false;\n };\n req.onblocked = (): void => reject(req.error);\n req.onsuccess = (): void => {\n const db = req.result;\n db.close();\n if (!exists) {\n // The DB did not exist before, but has been created as part of this\n // existence check. Delete it now to restore previous state. Delete can\n // actually take a while to complete in some browsers, so don't wait for\n // it. This won't block future open calls that a store might issue next to\n // properly set up the DB.\n indexedDB.deleteDatabase(dbName);\n }\n resolve(exists);\n };\n req.onerror = (): void => reject(req.error);\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,MAAMA,CAACC,SAAqB,EAAEC,MAAc,EAAoB;EAC5E,OAAO,IAAIC,OAAO,CAAU,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC7C,IAAIL,MAAM,GAAG,IAAI;IACjB,IAAMM,GAAG,GAAGL,SAAS,CAACM,IAAI,CAACL,MAAM,CAAC;IAClCI,GAAG,CAACE,eAAe,GAAG,MAAY;MAC9B;MACA;MACAR,MAAM,GAAG,KAAK;IAClB,CAAC;IACDM,GAAG,CAACG,SAAS,GAAG,MAAYJ,MAAM,CAACC,GAAG,CAACI,KAAK,CAAC;IAC7CJ,GAAG,CAACK,SAAS,GAAG,MAAY;MACxB,IAAMC,EAAE,GAAGN,GAAG,CAACO,MAAM;MACrBD,EAAE,CAACE,KAAK,CAAC,CAAC;MACV,IAAI,CAACd,MAAM,EAAE;QACT;QACA;QACA;QACA;QACA;QACAC,SAAS,CAACc,cAAc,CAACb,MAAM,CAAC;MACpC;MACAE,OAAO,CAACJ,MAAM,CAAC;IACnB,CAAC;IACDM,GAAG,CAACU,OAAO,GAAG,MAAYX,MAAM,CAACC,GAAG,CAACI,KAAK,CAAC;EAC/C,CAAC,CAAC;AACN","ignoreList":[]}
1
+ {"version":3,"file":"indexeddb-helpers.js","names":[],"sources":["../src/indexeddb-helpers.ts"],"sourcesContent":["/*\nCopyright 2019 New Vector Ltd\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 * Check if an IndexedDB database exists. The only way to do so is to try opening it, so\n * we do that and then delete it did not exist before.\n *\n * @param indexedDB - The `indexedDB` interface\n * @param dbName - The database name to test for\n * @returns Whether the database exists\n */\nexport function exists(indexedDB: IDBFactory, dbName: string): Promise<boolean> {\n return new Promise<boolean>((resolve, reject) => {\n let exists = true;\n const req = indexedDB.open(dbName);\n req.onupgradeneeded = (): void => {\n // Since we did not provide an explicit version when opening, this event\n // should only fire if the DB did not exist before at any version.\n exists = false;\n };\n req.onblocked = (): void => reject(req.error);\n req.onsuccess = (): void => {\n const db = req.result;\n db.close();\n if (!exists) {\n // The DB did not exist before, but has been created as part of this\n // existence check. Delete it now to restore previous state. Delete can\n // actually take a while to complete in some browsers, so don't wait for\n // it. This won't block future open calls that a store might issue next to\n // properly set up the DB.\n indexedDB.deleteDatabase(dbName);\n }\n resolve(exists);\n };\n req.onerror = (): void => reject(req.error);\n });\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS,MAAM,CAAC,SAAqB,EAAE,MAAc,EAAoB;EAC5E,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,KAAK;IAC7C,IAAI,MAAM,GAAG,IAAI;IACjB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;IAClC,GAAG,CAAC,eAAe,GAAG,MAAY;MAC9B;MACA;MACA,MAAM,GAAG,KAAK;IAClB,CAAC;IACD,GAAG,CAAC,SAAS,GAAG,MAAY,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IAC7C,GAAG,CAAC,SAAS,GAAG,MAAY;MACxB,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM;MACrB,EAAE,CAAC,KAAK,CAAC,CAAC;MACV,IAAI,CAAC,MAAM,EAAE;QACT;QACA;QACA;QACA;QACA;QACA,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;MACpC;MACA,OAAO,CAAC,MAAM,CAAC;IACnB,CAAC;IACD,GAAG,CAAC,OAAO,GAAG,MAAY,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;EAC/C,CAAC,CAAC;AACN","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"indexeddb-worker.js","names":["IndexedDBStoreWorker"],"sources":["../src/indexeddb-worker.ts"],"sourcesContent":["/*\nCopyright 2017 Vector Creations Ltd\nCopyright 2019 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 * Separate exports file for the indexeddb web worker, which is designed\n * to be used separately\n */\n\n/** The {@link IndexedDBStoreWorker} class. */\nexport { IndexedDBStoreWorker } from \"./store/indexeddb-store-worker.ts\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAASA,oBAAoB,QAAQ,mCAAmC","ignoreList":[]}
1
+ {"version":3,"file":"indexeddb-worker.js","names":[],"sources":["../src/indexeddb-worker.ts"],"sourcesContent":["/*\nCopyright 2017 Vector Creations Ltd\nCopyright 2019 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 * Separate exports file for the indexeddb web worker, which is designed\n * to be used separately\n */\n\n/** The {@link IndexedDBStoreWorker} class. */\nexport { IndexedDBStoreWorker } from \"./store/indexeddb-store-worker.ts\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,oBAAoB,QAAQ,mCAAmC","ignoreList":[]}
@@ -152,7 +152,7 @@ interface IOpts<T> {
152
152
  * The busyChanged callback should be used instead of the background flag.
153
153
  * Should return a promise which resolves to the successful response or rejects with a MatrixError.
154
154
  */
155
- doRequest(auth: AuthDict | null, background: boolean): Promise<T>;
155
+ doRequest(this: void, auth: AuthDict | null, background: boolean): Promise<T>;
156
156
  /**
157
157
  * Called when the status of the UI auth changes,
158
158
  * ie. when the state of an auth stage changes of when the auth flow moves to a new stage.
@@ -166,14 +166,14 @@ interface IOpts<T> {
166
166
  * m.login.email.identity:
167
167
  * * emailSid: string, the sid of the active email auth session
168
168
  */
169
- stateUpdated(nextStage: AuthType | string, status: IStageStatus): void;
169
+ stateUpdated(this: void, nextStage: AuthType | string, status: IStageStatus): void;
170
170
  /**
171
171
  * A function that takes the email address (string), clientSecret (string), attempt number (int) and
172
172
  * sessionId (string) and calls the relevant requestToken function and returns the promise returned by that
173
173
  * function.
174
174
  * If the resulting promise rejects, the rejection will propagate through to the attemptAuth promise.
175
175
  */
176
- requestEmailToken(email: string, secret: string, attempt: number, session: string): Promise<{
176
+ requestEmailToken(this: void, email: string, secret: string, attempt: number, session: string): Promise<{
177
177
  sid: string;
178
178
  }>;
179
179
  /**
@@ -181,8 +181,8 @@ interface IOpts<T> {
181
181
  * After this has been called with true the UI should indicate that a request is in progress
182
182
  * until it is called again with false.
183
183
  */
184
- busyChanged?(busy: boolean): void;
185
- startAuthStage?(nextStage: string): Promise<void>;
184
+ busyChanged?(this: void, busy: boolean): void;
185
+ startAuthStage?(this: void, nextStage: string): Promise<void>;
186
186
  }
187
187
  /**
188
188
  * Abstracts the logic used to drive the interactive auth process.
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-auth.d.ts","sourceRoot":"","sources":["../src/interactive-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-auth.d.ts","sourceRoot":"","sources":["../src/interactive-auth.ts"],"names":[],"mappings":"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"}