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 2018 New Vector Ltd
@@ -24,7 +23,7 @@ import { SUPPORTED_MATRIX_VERSIONS } from "./version-support.js";
24
23
  // Dev note: Auto discovery is part of the spec.
25
24
  // See: https://matrix.org/docs/spec/client_server/r0.4.0.html#server-discovery
26
25
 
27
- export var AutoDiscoveryAction = /*#__PURE__*/function (AutoDiscoveryAction) {
26
+ export let AutoDiscoveryAction = /*#__PURE__*/function (AutoDiscoveryAction) {
28
27
  AutoDiscoveryAction["SUCCESS"] = "SUCCESS";
29
28
  AutoDiscoveryAction["IGNORE"] = "IGNORE";
30
29
  AutoDiscoveryAction["PROMPT"] = "PROMPT";
@@ -32,7 +31,7 @@ export var AutoDiscoveryAction = /*#__PURE__*/function (AutoDiscoveryAction) {
32
31
  AutoDiscoveryAction["FAIL_ERROR"] = "FAIL_ERROR";
33
32
  return AutoDiscoveryAction;
34
33
  }({});
35
- export var AutoDiscoveryError = /*#__PURE__*/function (AutoDiscoveryError) {
34
+ export let AutoDiscoveryError = /*#__PURE__*/function (AutoDiscoveryError) {
36
35
  AutoDiscoveryError["Invalid"] = "Invalid homeserver discovery response";
37
36
  AutoDiscoveryError["GenericFailure"] = "Failed to get autodiscovery configuration from server";
38
37
  AutoDiscoveryError["InvalidHsBaseUrl"] = "Invalid base_url for m.homeserver";
@@ -63,158 +62,154 @@ export class AutoDiscovery {
63
62
  * configuration, which may include error states. Rejects on unexpected
64
63
  * failure, not when verification fails.
65
64
  */
66
- static fromDiscoveryConfig(wellknown) {
67
- var _this = this;
68
- return _asyncToGenerator(function* () {
69
- var _hsVersions$raw;
70
- // Step 1 is to get the config, which is provided to us here.
65
+ static async fromDiscoveryConfig(wellknown) {
66
+ // Step 1 is to get the config, which is provided to us here.
71
67
 
72
- // We default to an error state to make the first few checks easier to
73
- // write. We'll update the properties of this object over the duration
74
- // of this function.
75
- var clientConfig = {
76
- "m.homeserver": {
77
- state: AutoDiscovery.FAIL_ERROR,
78
- error: AutoDiscovery.ERROR_INVALID,
79
- base_url: null
80
- },
81
- "m.identity_server": {
82
- // Technically, we don't have a problem with the identity server
83
- // config at this point.
84
- state: AutoDiscovery.PROMPT,
85
- error: null,
86
- base_url: null
87
- }
88
- };
89
- if (!(wellknown !== null && wellknown !== void 0 && wellknown["m.homeserver"])) {
90
- logger.error("No m.homeserver key in config");
91
- clientConfig["m.homeserver"].state = AutoDiscovery.FAIL_PROMPT;
92
- clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID;
93
- return Promise.resolve(clientConfig);
94
- }
95
- if (!wellknown["m.homeserver"]["base_url"]) {
96
- logger.error("No m.homeserver base_url in config");
97
- clientConfig["m.homeserver"].state = AutoDiscovery.FAIL_PROMPT;
98
- clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID_HS_BASE_URL;
99
- return Promise.resolve(clientConfig);
68
+ // We default to an error state to make the first few checks easier to
69
+ // write. We'll update the properties of this object over the duration
70
+ // of this function.
71
+ const clientConfig = {
72
+ "m.homeserver": {
73
+ state: AutoDiscovery.FAIL_ERROR,
74
+ error: AutoDiscovery.ERROR_INVALID,
75
+ base_url: null
76
+ },
77
+ "m.identity_server": {
78
+ // Technically, we don't have a problem with the identity server
79
+ // config at this point.
80
+ state: AutoDiscovery.PROMPT,
81
+ error: null,
82
+ base_url: null
100
83
  }
84
+ };
85
+ if (!wellknown?.["m.homeserver"]) {
86
+ logger.error("No m.homeserver key in config");
87
+ clientConfig["m.homeserver"].state = AutoDiscovery.FAIL_PROMPT;
88
+ clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID;
89
+ return Promise.resolve(clientConfig);
90
+ }
91
+ if (!wellknown["m.homeserver"]["base_url"]) {
92
+ logger.error("No m.homeserver base_url in config");
93
+ clientConfig["m.homeserver"].state = AutoDiscovery.FAIL_PROMPT;
94
+ clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID_HS_BASE_URL;
95
+ return Promise.resolve(clientConfig);
96
+ }
101
97
 
102
- // Step 2: Make sure the homeserver URL is valid *looking*. We'll make
103
- // sure it points to a homeserver in Step 3.
104
- var hsUrl = _this.sanitizeWellKnownUrl(wellknown["m.homeserver"]["base_url"]);
105
- if (!hsUrl) {
106
- logger.error("Invalid base_url for m.homeserver");
107
- clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID_HS_BASE_URL;
108
- return Promise.resolve(clientConfig);
109
- }
98
+ // Step 2: Make sure the homeserver URL is valid *looking*. We'll make
99
+ // sure it points to a homeserver in Step 3.
100
+ const hsUrl = this.sanitizeWellKnownUrl(wellknown["m.homeserver"]["base_url"]);
101
+ if (!hsUrl) {
102
+ logger.error("Invalid base_url for m.homeserver");
103
+ clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID_HS_BASE_URL;
104
+ return Promise.resolve(clientConfig);
105
+ }
110
106
 
111
- // Step 3: Make sure the homeserver URL points to a homeserver.
112
- var hsVersions = yield _this.fetchWellKnownObject("".concat(hsUrl, "/_matrix/client/versions"));
113
- if (!hsVersions || !Array.isArray((_hsVersions$raw = hsVersions.raw) === null || _hsVersions$raw === void 0 ? void 0 : _hsVersions$raw["versions"])) {
114
- logger.error("Invalid /versions response");
115
- clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID_HOMESERVER;
107
+ // Step 3: Make sure the homeserver URL points to a homeserver.
108
+ const hsVersions = await this.fetchWellKnownObject(`${hsUrl}/_matrix/client/versions`);
109
+ if (!hsVersions || !Array.isArray(hsVersions.raw?.["versions"])) {
110
+ logger.error("Invalid /versions response");
111
+ clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID_HOMESERVER;
116
112
 
117
- // Supply the base_url to the caller because they may be ignoring liveliness
118
- // errors, like this one.
119
- clientConfig["m.homeserver"].base_url = hsUrl;
120
- return Promise.resolve(clientConfig);
113
+ // Supply the base_url to the caller because they may be ignoring liveliness
114
+ // errors, like this one.
115
+ clientConfig["m.homeserver"].base_url = hsUrl;
116
+ return Promise.resolve(clientConfig);
117
+ }
118
+
119
+ // Step 3.1: Non-spec check to ensure the server will actually work for us. We need to check if
120
+ // any of the versions in `SUPPORTED_MATRIX_VERSIONS` are listed in the /versions response.
121
+ const hsVersionSet = new Set(hsVersions.raw["versions"]);
122
+ let supportedVersionFound = false;
123
+ for (const version of SUPPORTED_MATRIX_VERSIONS) {
124
+ if (hsVersionSet.has(version)) {
125
+ supportedVersionFound = true;
126
+ break;
121
127
  }
128
+ }
129
+ if (!supportedVersionFound) {
130
+ logger.error("Homeserver does not meet version requirements");
131
+ clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_UNSUPPORTED_HOMESERVER_SPEC_VERSION;
132
+
133
+ // Supply the base_url to the caller because they may be ignoring liveliness
134
+ // errors, like this one.
135
+ clientConfig["m.homeserver"].base_url = hsUrl;
136
+ return Promise.resolve(clientConfig);
137
+ }
122
138
 
123
- // Step 3.1: Non-spec check to ensure the server will actually work for us. We need to check if
124
- // any of the versions in `SUPPORTED_MATRIX_VERSIONS` are listed in the /versions response.
125
- var hsVersionSet = new Set(hsVersions.raw["versions"]);
126
- var supportedVersionFound = false;
127
- for (var version of SUPPORTED_MATRIX_VERSIONS) {
128
- if (hsVersionSet.has(version)) {
129
- supportedVersionFound = true;
130
- break;
139
+ // Step 4: Now that the homeserver looks valid, update our client config.
140
+ clientConfig["m.homeserver"] = {
141
+ state: AutoDiscovery.SUCCESS,
142
+ error: null,
143
+ base_url: hsUrl
144
+ };
145
+
146
+ // Step 5: Try to pull out the identity server configuration
147
+ let isUrl = "";
148
+ if (wellknown["m.identity_server"]) {
149
+ // We prepare a failing identity server response to save lines later
150
+ // in this branch.
151
+ const failingClientConfig = {
152
+ "m.homeserver": clientConfig["m.homeserver"],
153
+ "m.identity_server": {
154
+ state: AutoDiscovery.FAIL_PROMPT,
155
+ error: AutoDiscovery.ERROR_INVALID_IS,
156
+ base_url: null
131
157
  }
158
+ };
159
+
160
+ // Step 5a: Make sure the URL is valid *looking*. We'll make sure it
161
+ // points to an identity server in Step 5b.
162
+ isUrl = this.sanitizeWellKnownUrl(wellknown["m.identity_server"]["base_url"]);
163
+ if (!isUrl) {
164
+ logger.error("Invalid base_url for m.identity_server");
165
+ failingClientConfig["m.identity_server"].error = AutoDiscovery.ERROR_INVALID_IS_BASE_URL;
166
+ return Promise.resolve(failingClientConfig);
132
167
  }
133
- if (!supportedVersionFound) {
134
- logger.error("Homeserver does not meet version requirements");
135
- clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_UNSUPPORTED_HOMESERVER_SPEC_VERSION;
136
168
 
137
- // Supply the base_url to the caller because they may be ignoring liveliness
138
- // errors, like this one.
139
- clientConfig["m.homeserver"].base_url = hsUrl;
140
- return Promise.resolve(clientConfig);
169
+ // Step 5b: Verify there is an identity server listening on the provided
170
+ // URL.
171
+ const isResponse = await this.fetchWellKnownObject(`${isUrl}/_matrix/identity/v2`);
172
+ if (!isResponse?.raw || isResponse.action !== AutoDiscoveryAction.SUCCESS) {
173
+ logger.error("Invalid /v2 response");
174
+ failingClientConfig["m.identity_server"].error = AutoDiscovery.ERROR_INVALID_IDENTITY_SERVER;
175
+
176
+ // Supply the base_url to the caller because they may be ignoring
177
+ // liveliness errors, like this one.
178
+ failingClientConfig["m.identity_server"].base_url = isUrl;
179
+ return Promise.resolve(failingClientConfig);
141
180
  }
181
+ }
142
182
 
143
- // Step 4: Now that the homeserver looks valid, update our client config.
144
- clientConfig["m.homeserver"] = {
183
+ // Step 6: Now that the identity server is valid, or never existed,
184
+ // populate the IS section.
185
+ if (isUrl && isUrl.toString().length > 0) {
186
+ clientConfig["m.identity_server"] = {
145
187
  state: AutoDiscovery.SUCCESS,
146
188
  error: null,
147
- base_url: hsUrl
189
+ base_url: isUrl
148
190
  };
191
+ }
149
192
 
150
- // Step 5: Try to pull out the identity server configuration
151
- var isUrl = "";
152
- if (wellknown["m.identity_server"]) {
153
- // We prepare a failing identity server response to save lines later
154
- // in this branch.
155
- var failingClientConfig = {
156
- "m.homeserver": clientConfig["m.homeserver"],
157
- "m.identity_server": {
158
- state: AutoDiscovery.FAIL_PROMPT,
159
- error: AutoDiscovery.ERROR_INVALID_IS,
160
- base_url: null
161
- }
162
- };
163
-
164
- // Step 5a: Make sure the URL is valid *looking*. We'll make sure it
165
- // points to an identity server in Step 5b.
166
- isUrl = _this.sanitizeWellKnownUrl(wellknown["m.identity_server"]["base_url"]);
167
- if (!isUrl) {
168
- logger.error("Invalid base_url for m.identity_server");
169
- failingClientConfig["m.identity_server"].error = AutoDiscovery.ERROR_INVALID_IS_BASE_URL;
170
- return Promise.resolve(failingClientConfig);
171
- }
172
-
173
- // Step 5b: Verify there is an identity server listening on the provided
174
- // URL.
175
- var isResponse = yield _this.fetchWellKnownObject("".concat(isUrl, "/_matrix/identity/v2"));
176
- if (!(isResponse !== null && isResponse !== void 0 && isResponse.raw) || isResponse.action !== AutoDiscoveryAction.SUCCESS) {
177
- logger.error("Invalid /v2 response");
178
- failingClientConfig["m.identity_server"].error = AutoDiscovery.ERROR_INVALID_IDENTITY_SERVER;
179
-
180
- // Supply the base_url to the caller because they may be ignoring
181
- // liveliness errors, like this one.
182
- failingClientConfig["m.identity_server"].base_url = isUrl;
183
- return Promise.resolve(failingClientConfig);
193
+ // Step 7: Copy any other keys directly into the clientConfig. This is for
194
+ // things like custom configuration of services.
195
+ Object.keys(wellknown).forEach(k => {
196
+ if (k === "m.homeserver" || k === "m.identity_server") {
197
+ // Only copy selected parts of the config to avoid overwriting
198
+ // properties computed by the validation logic above.
199
+ const notProps = ["error", "state", "base_url"];
200
+ for (const prop of Object.keys(wellknown[k])) {
201
+ if (notProps.includes(prop)) continue;
202
+ // @ts-ignore - ts gets unhappy as we're mixing types here
203
+ clientConfig[k][prop] = wellknown[k][prop];
184
204
  }
205
+ } else {
206
+ // Just copy the whole thing over otherwise
207
+ clientConfig[k] = wellknown[k];
185
208
  }
209
+ });
186
210
 
187
- // Step 6: Now that the identity server is valid, or never existed,
188
- // populate the IS section.
189
- if (isUrl && isUrl.toString().length > 0) {
190
- clientConfig["m.identity_server"] = {
191
- state: AutoDiscovery.SUCCESS,
192
- error: null,
193
- base_url: isUrl
194
- };
195
- }
196
-
197
- // Step 7: Copy any other keys directly into the clientConfig. This is for
198
- // things like custom configuration of services.
199
- Object.keys(wellknown).forEach(k => {
200
- if (k === "m.homeserver" || k === "m.identity_server") {
201
- // Only copy selected parts of the config to avoid overwriting
202
- // properties computed by the validation logic above.
203
- var notProps = ["error", "state", "base_url"];
204
- for (var prop of Object.keys(wellknown[k])) {
205
- if (notProps.includes(prop)) continue;
206
- // @ts-ignore - ts gets unhappy as we're mixing types here
207
- clientConfig[k][prop] = wellknown[k][prop];
208
- }
209
- } else {
210
- // Just copy the whole thing over otherwise
211
- clientConfig[k] = wellknown[k];
212
- }
213
- });
214
-
215
- // Step 8: Give the config to the caller (finally)
216
- return Promise.resolve(clientConfig);
217
- })();
211
+ // Step 8: Give the config to the caller (finally)
212
+ return Promise.resolve(clientConfig);
218
213
  }
219
214
 
220
215
  /**
@@ -229,66 +224,63 @@ export class AutoDiscovery {
229
224
  * configuration, which may include error states. Rejects on unexpected
230
225
  * failure, not when discovery fails.
231
226
  */
232
- static findClientConfig(domain) {
233
- var _this2 = this;
234
- return _asyncToGenerator(function* () {
235
- if (!domain || typeof domain !== "string" || domain.length === 0) {
236
- throw new Error("'domain' must be a string of non-zero length");
237
- }
227
+ static async findClientConfig(domain) {
228
+ if (!domain || typeof domain !== "string" || domain.length === 0) {
229
+ throw new Error("'domain' must be a string of non-zero length");
230
+ }
238
231
 
239
- // We use a .well-known lookup for all cases. According to the spec, we
240
- // can do other discovery mechanisms if we want such as custom lookups
241
- // however we won't bother with that here (mostly because the spec only
242
- // supports .well-known right now).
243
- //
244
- // By using .well-known, we need to ensure we at least pull out a URL
245
- // for the homeserver. We don't really need an identity server configuration
246
- // but will return one anyways (with state PROMPT) to make development
247
- // easier for clients. If we can't get a homeserver URL, all bets are
248
- // off on the rest of the config and we'll assume it is invalid too.
232
+ // We use a .well-known lookup for all cases. According to the spec, we
233
+ // can do other discovery mechanisms if we want such as custom lookups
234
+ // however we won't bother with that here (mostly because the spec only
235
+ // supports .well-known right now).
236
+ //
237
+ // By using .well-known, we need to ensure we at least pull out a URL
238
+ // for the homeserver. We don't really need an identity server configuration
239
+ // but will return one anyways (with state PROMPT) to make development
240
+ // easier for clients. If we can't get a homeserver URL, all bets are
241
+ // off on the rest of the config and we'll assume it is invalid too.
249
242
 
250
- // We default to an error state to make the first few checks easier to
251
- // write. We'll update the properties of this object over the duration
252
- // of this function.
253
- var clientConfig = {
254
- "m.homeserver": {
255
- state: AutoDiscovery.FAIL_ERROR,
256
- error: AutoDiscovery.ERROR_INVALID,
257
- base_url: null
258
- },
259
- "m.identity_server": {
260
- // Technically, we don't have a problem with the identity server
261
- // config at this point.
243
+ // We default to an error state to make the first few checks easier to
244
+ // write. We'll update the properties of this object over the duration
245
+ // of this function.
246
+ const clientConfig = {
247
+ "m.homeserver": {
248
+ state: AutoDiscovery.FAIL_ERROR,
249
+ error: AutoDiscovery.ERROR_INVALID,
250
+ base_url: null
251
+ },
252
+ "m.identity_server": {
253
+ // Technically, we don't have a problem with the identity server
254
+ // config at this point.
255
+ state: AutoDiscovery.PROMPT,
256
+ error: null,
257
+ base_url: null
258
+ }
259
+ };
260
+
261
+ // Step 1: Actually request the .well-known JSON file and make sure it
262
+ // at least has a homeserver definition.
263
+ const domainWithProtocol = domain.includes("://") ? domain : `https://${domain}`;
264
+ const wellknown = await this.fetchWellKnownObject(`${domainWithProtocol}/.well-known/matrix/client`);
265
+ if (!wellknown || wellknown.action !== AutoDiscoveryAction.SUCCESS) {
266
+ logger.error("No response or error when parsing .well-known");
267
+ if (wellknown.reason) logger.error(wellknown.reason);
268
+ if (wellknown.action === AutoDiscoveryAction.IGNORE) {
269
+ clientConfig["m.homeserver"] = {
262
270
  state: AutoDiscovery.PROMPT,
263
271
  error: null,
264
272
  base_url: null
265
- }
266
- };
267
-
268
- // Step 1: Actually request the .well-known JSON file and make sure it
269
- // at least has a homeserver definition.
270
- var domainWithProtocol = domain.includes("://") ? domain : "https://".concat(domain);
271
- var wellknown = yield _this2.fetchWellKnownObject("".concat(domainWithProtocol, "/.well-known/matrix/client"));
272
- if (!wellknown || wellknown.action !== AutoDiscoveryAction.SUCCESS) {
273
- logger.error("No response or error when parsing .well-known");
274
- if (wellknown.reason) logger.error(wellknown.reason);
275
- if (wellknown.action === AutoDiscoveryAction.IGNORE) {
276
- clientConfig["m.homeserver"] = {
277
- state: AutoDiscovery.PROMPT,
278
- error: null,
279
- base_url: null
280
- };
281
- } else {
282
- // this can only ever be FAIL_PROMPT at this point.
283
- clientConfig["m.homeserver"].state = AutoDiscovery.FAIL_PROMPT;
284
- clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID;
285
- }
286
- return Promise.resolve(clientConfig);
273
+ };
274
+ } else {
275
+ // this can only ever be FAIL_PROMPT at this point.
276
+ clientConfig["m.homeserver"].state = AutoDiscovery.FAIL_PROMPT;
277
+ clientConfig["m.homeserver"].error = AutoDiscovery.ERROR_INVALID;
287
278
  }
279
+ return Promise.resolve(clientConfig);
280
+ }
288
281
 
289
- // Step 2: Validate and parse the config
290
- return AutoDiscovery.fromDiscoveryConfig(wellknown.raw);
291
- })();
282
+ // Step 2: Validate and parse the config
283
+ return AutoDiscovery.fromDiscoveryConfig(wellknown.raw);
292
284
  }
293
285
 
294
286
  /**
@@ -299,17 +291,13 @@ export class AutoDiscovery {
299
291
  * @returns Promise which resolves to the domain's client config. Can
300
292
  * be an empty object.
301
293
  */
302
- static getRawClientConfig(domain) {
303
- var _this3 = this;
304
- return _asyncToGenerator(function* () {
305
- var _response$raw;
306
- if (!domain || typeof domain !== "string" || domain.length === 0) {
307
- throw new Error("'domain' must be a string of non-zero length");
308
- }
309
- var response = yield _this3.fetchWellKnownObject("https://".concat(domain, "/.well-known/matrix/client"));
310
- if (!response) return {};
311
- return (_response$raw = response.raw) !== null && _response$raw !== void 0 ? _response$raw : {};
312
- })();
294
+ static async getRawClientConfig(domain) {
295
+ if (!domain || typeof domain !== "string" || domain.length === 0) {
296
+ throw new Error("'domain' must be a string of non-zero length");
297
+ }
298
+ const response = await this.fetchWellKnownObject(`https://${domain}/.well-known/matrix/client`);
299
+ if (!response) return {};
300
+ return response.raw ?? {};
313
301
  }
314
302
 
315
303
  /**
@@ -323,18 +311,17 @@ export class AutoDiscovery {
323
311
  static sanitizeWellKnownUrl(url) {
324
312
  if (!url) return false;
325
313
  try {
326
- var _parsed;
327
- var parsed;
314
+ let parsed;
328
315
  try {
329
316
  parsed = new URL(url);
330
317
  } catch (e) {
331
318
  logger.error("Could not parse url", e);
332
319
  }
333
- if (!((_parsed = parsed) !== null && _parsed !== void 0 && _parsed.hostname)) return false;
320
+ if (!parsed?.hostname) return false;
334
321
  if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return false;
335
- var port = parsed.port ? ":".concat(parsed.port) : "";
336
- var path = parsed.pathname ? parsed.pathname : "";
337
- var saferUrl = "".concat(parsed.protocol, "//").concat(parsed.hostname).concat(port).concat(path);
322
+ const port = parsed.port ? `:${parsed.port}` : "";
323
+ const path = parsed.pathname ? parsed.pathname : "";
324
+ let saferUrl = `${parsed.protocol}//${parsed.hostname}${port}${path}`;
338
325
  if (saferUrl.endsWith("/")) {
339
326
  saferUrl = saferUrl.substring(0, saferUrl.length - 1);
340
327
  }
@@ -370,56 +357,54 @@ export class AutoDiscovery {
370
357
  * @returns Promise which resolves to the returned state.
371
358
  * @internal
372
359
  */
373
- static fetchWellKnownObject(url) {
374
- return _asyncToGenerator(function* () {
375
- var response;
376
- try {
377
- response = yield AutoDiscovery.fetch(url, {
378
- method: Method.Get,
379
- signal: timeoutSignal(5000)
380
- });
381
- if (response.status === 404) {
382
- return {
383
- raw: {},
384
- action: AutoDiscoveryAction.IGNORE,
385
- reason: AutoDiscovery.ERROR_MISSING_WELLKNOWN
386
- };
387
- }
388
- if (response.status !== 200) {
389
- return {
390
- raw: {},
391
- action: AutoDiscoveryAction.FAIL_PROMPT,
392
- reason: "General failure"
393
- };
394
- }
395
- } catch (err) {
396
- var error = err;
397
- var reason = "";
398
- if (typeof error === "object") {
399
- reason = error === null || error === void 0 ? void 0 : error.message;
400
- }
360
+ static async fetchWellKnownObject(url) {
361
+ let response;
362
+ try {
363
+ response = await AutoDiscovery.fetch(url, {
364
+ method: Method.Get,
365
+ signal: timeoutSignal(5000)
366
+ });
367
+ if (response.status === 404) {
401
368
  return {
402
- error,
403
369
  raw: {},
404
- action: AutoDiscoveryAction.FAIL_PROMPT,
405
- reason: reason || "General failure"
370
+ action: AutoDiscoveryAction.IGNORE,
371
+ reason: AutoDiscovery.ERROR_MISSING_WELLKNOWN
406
372
  };
407
373
  }
408
- try {
409
- return {
410
- raw: yield response.json(),
411
- action: AutoDiscoveryAction.SUCCESS
412
- };
413
- } catch (err) {
414
- var _error = err;
374
+ if (response.status !== 200) {
415
375
  return {
416
- error: _error,
417
376
  raw: {},
418
377
  action: AutoDiscoveryAction.FAIL_PROMPT,
419
- reason: (_error === null || _error === void 0 ? void 0 : _error.name) === "SyntaxError" ? AutoDiscovery.ERROR_INVALID_JSON : AutoDiscovery.ERROR_INVALID
378
+ reason: "General failure"
420
379
  };
421
380
  }
422
- })();
381
+ } catch (err) {
382
+ const error = err;
383
+ let reason = "";
384
+ if (typeof error === "object") {
385
+ reason = error?.message;
386
+ }
387
+ return {
388
+ error,
389
+ raw: {},
390
+ action: AutoDiscoveryAction.FAIL_PROMPT,
391
+ reason: reason || "General failure"
392
+ };
393
+ }
394
+ try {
395
+ return {
396
+ raw: await response.json(),
397
+ action: AutoDiscoveryAction.SUCCESS
398
+ };
399
+ } catch (err) {
400
+ const error = err;
401
+ return {
402
+ error,
403
+ raw: {},
404
+ action: AutoDiscoveryAction.FAIL_PROMPT,
405
+ reason: error?.name === "SyntaxError" ? AutoDiscovery.ERROR_INVALID_JSON : AutoDiscovery.ERROR_INVALID
406
+ };
407
+ }
423
408
  }
424
409
  }
425
410
  // Dev note: the constants defined here are related to but not