@textrp/briij-js-sdk 41.0.1 → 42.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/LICENSE +177 -177
  3. package/README.md +14 -3
  4. package/lib/@types/AESEncryptedSecretStoragePayload.js.map +1 -1
  5. package/lib/@types/IIdentityServerProvider.js.map +1 -1
  6. package/lib/@types/PushRules.js +14 -14
  7. package/lib/@types/PushRules.js.map +1 -1
  8. package/lib/@types/another-json.d.js.map +1 -1
  9. package/lib/@types/auth.d.ts +19 -1
  10. package/lib/@types/auth.d.ts.map +1 -1
  11. package/lib/@types/auth.js +55 -54
  12. package/lib/@types/auth.js.map +1 -1
  13. package/lib/@types/beacon.js +100 -100
  14. package/lib/@types/beacon.js.map +1 -1
  15. package/lib/@types/common.js.map +1 -1
  16. package/lib/@types/crypto.js.map +1 -1
  17. package/lib/@types/event.d.ts +27 -0
  18. package/lib/@types/event.d.ts.map +1 -1
  19. package/lib/@types/event.js +105 -102
  20. package/lib/@types/event.js.map +1 -1
  21. package/lib/@types/events.js.map +1 -1
  22. package/lib/@types/extensible_events.js +53 -53
  23. package/lib/@types/extensible_events.js.map +1 -1
  24. package/lib/@types/local_notifications.js.map +1 -1
  25. package/lib/@types/location.js +41 -41
  26. package/lib/@types/location.js.map +1 -1
  27. package/lib/@types/matrix-sdk-crypto-wasm.d.js.map +1 -1
  28. package/lib/@types/media.js.map +1 -1
  29. package/lib/@types/membership.js +39 -39
  30. package/lib/@types/membership.js.map +1 -1
  31. package/lib/@types/partials.js +25 -25
  32. package/lib/@types/partials.js.map +1 -1
  33. package/lib/@types/polls.js +46 -46
  34. package/lib/@types/polls.js.map +1 -1
  35. package/lib/@types/read_receipts.js +14 -14
  36. package/lib/@types/read_receipts.js.map +1 -1
  37. package/lib/@types/registration.js.map +1 -1
  38. package/lib/@types/search.js +14 -14
  39. package/lib/@types/search.js.map +1 -1
  40. package/lib/@types/signed.js.map +1 -1
  41. package/lib/@types/spaces.js.map +1 -1
  42. package/lib/@types/state_events.js.map +1 -1
  43. package/lib/@types/synapse.js.map +1 -1
  44. package/lib/@types/sync.js +18 -18
  45. package/lib/@types/sync.js.map +1 -1
  46. package/lib/@types/threepids.js +14 -14
  47. package/lib/@types/threepids.js.map +1 -1
  48. package/lib/@types/topic.js +47 -47
  49. package/lib/@types/topic.js.map +1 -1
  50. package/lib/@types/uia.js.map +1 -1
  51. package/lib/NamespacedValue.js +20 -20
  52. package/lib/NamespacedValue.js.map +1 -1
  53. package/lib/ReEmitter.js +16 -16
  54. package/lib/ReEmitter.js.map +1 -1
  55. package/lib/base64.js +32 -32
  56. package/lib/base64.js.map +1 -1
  57. package/lib/briij.d.ts +3 -0
  58. package/lib/briij.d.ts.map +1 -1
  59. package/lib/briij.js +3 -0
  60. package/lib/briij.js.map +1 -1
  61. package/lib/client.d.ts +18 -1
  62. package/lib/client.d.ts.map +1 -1
  63. package/lib/client.js +166 -103
  64. package/lib/client.js.map +1 -1
  65. package/lib/common-crypto/key-passphrase.js +19 -19
  66. package/lib/common-crypto/key-passphrase.js.map +1 -1
  67. package/lib/content-helpers.js +57 -57
  68. package/lib/content-helpers.js.map +1 -1
  69. package/lib/content-repo.js +36 -36
  70. package/lib/content-repo.js.map +1 -1
  71. package/lib/crypto/store/base.js +69 -69
  72. package/lib/crypto/store/base.js.map +1 -1
  73. package/lib/crypto/store/indexeddb-crypto-store-backend.js +58 -58
  74. package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
  75. package/lib/crypto/store/indexeddb-crypto-store.js +193 -193
  76. package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
  77. package/lib/crypto/store/localStorage-crypto-store.js +72 -72
  78. package/lib/crypto/store/localStorage-crypto-store.js.map +1 -1
  79. package/lib/crypto/store/memory-crypto-store.js +74 -74
  80. package/lib/crypto/store/memory-crypto-store.js.map +1 -1
  81. package/lib/crypto-api/CryptoEventHandlerMap.js.map +1 -1
  82. package/lib/crypto-api/key-passphrase.js +22 -22
  83. package/lib/crypto-api/key-passphrase.js.map +1 -1
  84. package/lib/crypto-api/keybackup.js.map +1 -1
  85. package/lib/crypto-api/recovery-key.js +20 -20
  86. package/lib/crypto-api/recovery-key.js.map +1 -1
  87. package/lib/digest.js +21 -21
  88. package/lib/digest.js.map +1 -1
  89. package/lib/extensible_events_v1/ExtensibleEvent.js +39 -39
  90. package/lib/extensible_events_v1/ExtensibleEvent.js.map +1 -1
  91. package/lib/extensible_events_v1/InvalidEventError.js +16 -16
  92. package/lib/extensible_events_v1/InvalidEventError.js.map +1 -1
  93. package/lib/extensible_events_v1/MessageEvent.js +39 -39
  94. package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
  95. package/lib/extensible_events_v1/PollEndEvent.js +29 -29
  96. package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
  97. package/lib/extensible_events_v1/PollResponseEvent.js +39 -39
  98. package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
  99. package/lib/extensible_events_v1/PollStartEvent.js +52 -52
  100. package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
  101. package/lib/extensible_events_v1/utilities.js +22 -22
  102. package/lib/extensible_events_v1/utilities.js.map +1 -1
  103. package/lib/feature.js +16 -16
  104. package/lib/feature.js.map +1 -1
  105. package/lib/http-api/method.js +14 -14
  106. package/lib/http-api/method.js.map +1 -1
  107. package/lib/http-api/prefix.js +26 -26
  108. package/lib/http-api/prefix.js.map +1 -1
  109. package/lib/indexeddb-helpers.js +21 -21
  110. package/lib/indexeddb-helpers.js.map +1 -1
  111. package/lib/indexeddb-worker.js +18 -18
  112. package/lib/indexeddb-worker.js.map +1 -1
  113. package/lib/matrixrtc/IKeyTransport.js +17 -17
  114. package/lib/matrixrtc/IKeyTransport.js.map +1 -1
  115. package/lib/matrixrtc/IMembershipManager.js +27 -27
  116. package/lib/matrixrtc/IMembershipManager.js.map +1 -1
  117. package/lib/matrixrtc/LivekitTransport.js +19 -19
  118. package/lib/matrixrtc/LivekitTransport.js.map +1 -1
  119. package/lib/matrixrtc/index.js +14 -14
  120. package/lib/matrixrtc/index.js.map +1 -1
  121. package/lib/matrixrtc/utils.js +27 -27
  122. package/lib/matrixrtc/utils.js.map +1 -1
  123. package/lib/models/ToDeviceMessage.js.map +1 -1
  124. package/lib/models/device.js +24 -24
  125. package/lib/models/device.js.map +1 -1
  126. package/lib/models/event-status.js +17 -17
  127. package/lib/models/event-status.js.map +1 -1
  128. package/lib/models/invites-ignorer-types.js +25 -25
  129. package/lib/models/invites-ignorer-types.js.map +1 -1
  130. package/lib/models/profile-keys.js +26 -26
  131. package/lib/models/profile-keys.js.map +1 -1
  132. package/lib/models/room-summary.js +26 -26
  133. package/lib/models/room-summary.js.map +1 -1
  134. package/lib/models/search-result.js +22 -22
  135. package/lib/models/search-result.js.map +1 -1
  136. package/lib/models/typed-event-emitter.js +122 -122
  137. package/lib/models/typed-event-emitter.js.map +1 -1
  138. package/lib/oidc/authorize.js +76 -76
  139. package/lib/oidc/authorize.js.map +1 -1
  140. package/lib/oidc/error.js +17 -17
  141. package/lib/oidc/error.js.map +1 -1
  142. package/lib/oidc/index.js +17 -17
  143. package/lib/oidc/index.js.map +1 -1
  144. package/lib/oidc/register.js +41 -41
  145. package/lib/oidc/register.js.map +1 -1
  146. package/lib/oidc/tokenRefresher.js +51 -51
  147. package/lib/oidc/tokenRefresher.js.map +1 -1
  148. package/lib/oidc/validate.js +59 -59
  149. package/lib/oidc/validate.js.map +1 -1
  150. package/lib/randomstring.js +35 -35
  151. package/lib/randomstring.js.map +1 -1
  152. package/lib/realtime-callbacks.js +39 -39
  153. package/lib/realtime-callbacks.js.map +1 -1
  154. package/lib/receipt-accumulator.js +44 -44
  155. package/lib/receipt-accumulator.js.map +1 -1
  156. package/lib/rendezvous/RendezvousChannel.js.map +1 -1
  157. package/lib/rendezvous/RendezvousCode.js.map +1 -1
  158. package/lib/rendezvous/RendezvousError.js +14 -14
  159. package/lib/rendezvous/RendezvousError.js.map +1 -1
  160. package/lib/rendezvous/RendezvousFailureReason.js +14 -14
  161. package/lib/rendezvous/RendezvousFailureReason.js.map +1 -1
  162. package/lib/rendezvous/RendezvousIntent.js +14 -14
  163. package/lib/rendezvous/RendezvousIntent.js.map +1 -1
  164. package/lib/rendezvous/RendezvousTransport.js.map +1 -1
  165. package/lib/rendezvous/channels/MSC4108SecureChannel.js +63 -63
  166. package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
  167. package/lib/rendezvous/channels/index.js +14 -14
  168. package/lib/rendezvous/channels/index.js.map +1 -1
  169. package/lib/rendezvous/index.js +14 -14
  170. package/lib/rendezvous/index.js.map +1 -1
  171. package/lib/rendezvous/transports/index.js +14 -14
  172. package/lib/rendezvous/transports/index.js.map +1 -1
  173. package/lib/rust-crypto/CrossSigningIdentity.js +29 -29
  174. package/lib/rust-crypto/CrossSigningIdentity.js.map +1 -1
  175. package/lib/rust-crypto/OutgoingRequestsManager.js +37 -37
  176. package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
  177. package/lib/rust-crypto/device-converter.js +30 -30
  178. package/lib/rust-crypto/device-converter.js.map +1 -1
  179. package/lib/rust-crypto/secret-storage.js +30 -30
  180. package/lib/rust-crypto/secret-storage.js.map +1 -1
  181. package/lib/service-types.js +14 -14
  182. package/lib/service-types.js.map +1 -1
  183. package/lib/store/local-storage-events-emitter.js +21 -21
  184. package/lib/store/local-storage-events-emitter.js.map +1 -1
  185. package/lib/sync-accumulator.js +50 -50
  186. package/lib/sync-accumulator.js.map +1 -1
  187. package/lib/thread-utils.js +20 -20
  188. package/lib/thread-utils.js.map +1 -1
  189. package/lib/types.js +34 -34
  190. package/lib/types.js.map +1 -1
  191. package/lib/utils/decryptAESSecretStorageItem.js +22 -22
  192. package/lib/utils/decryptAESSecretStorageItem.js.map +1 -1
  193. package/lib/utils/encryptAESSecretStorageItem.js +26 -26
  194. package/lib/utils/encryptAESSecretStorageItem.js.map +1 -1
  195. package/lib/utils/internal/deriveKeys.js +21 -21
  196. package/lib/utils/internal/deriveKeys.js.map +1 -1
  197. package/lib/utils/roomVersion.js +26 -26
  198. package/lib/utils/roomVersion.js.map +1 -1
  199. package/lib/version-support.js +26 -26
  200. package/lib/version-support.js.map +1 -1
  201. package/lib/webrtc/audioContext.js +24 -24
  202. package/lib/webrtc/audioContext.js.map +1 -1
  203. package/lib/webrtc/callEventTypes.js.map +1 -1
  204. package/lib/webrtc/stats/callFeedStatsReporter.js +14 -14
  205. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
  206. package/lib/webrtc/stats/callStatsReportGatherer.js +14 -14
  207. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  208. package/lib/webrtc/stats/callStatsReportSummary.js.map +1 -1
  209. package/lib/webrtc/stats/connectionStats.js +14 -14
  210. package/lib/webrtc/stats/connectionStats.js.map +1 -1
  211. package/lib/webrtc/stats/connectionStatsBuilder.js +14 -14
  212. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
  213. package/lib/webrtc/stats/connectionStatsReportBuilder.js +14 -14
  214. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
  215. package/lib/webrtc/stats/groupCallStats.js +14 -14
  216. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  217. package/lib/webrtc/stats/media/mediaSsrcHandler.js +14 -14
  218. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
  219. package/lib/webrtc/stats/media/mediaTrackHandler.js +14 -14
  220. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
  221. package/lib/webrtc/stats/media/mediaTrackStats.js +27 -27
  222. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  223. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +20 -20
  224. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  225. package/lib/webrtc/stats/statsReport.js +14 -14
  226. package/lib/webrtc/stats/statsReport.js.map +1 -1
  227. package/lib/webrtc/stats/statsReportEmitter.js +14 -14
  228. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
  229. package/lib/webrtc/stats/trackStatsBuilder.js +4 -4
  230. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
  231. package/lib/webrtc/stats/transportStats.js.map +1 -1
  232. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
  233. package/lib/webrtc/stats/valueFormatter.js +11 -11
  234. package/lib/webrtc/stats/valueFormatter.js.map +1 -1
  235. package/lib/xrpl/identity.d.ts +28 -0
  236. package/lib/xrpl/identity.d.ts.map +1 -0
  237. package/lib/xrpl/identity.js +213 -0
  238. package/lib/xrpl/identity.js.map +1 -0
  239. package/lib/xrpl/trust.d.ts +8 -0
  240. package/lib/xrpl/trust.d.ts.map +1 -0
  241. package/lib/xrpl/trust.js +61 -0
  242. package/lib/xrpl/trust.js.map +1 -0
  243. package/lib/xrpl/verification.d.ts +26 -0
  244. package/lib/xrpl/verification.d.ts.map +1 -0
  245. package/lib/xrpl/verification.js +295 -0
  246. package/lib/xrpl/verification.js.map +1 -0
  247. package/package.json +128 -129
  248. package/src/@types/AESEncryptedSecretStoragePayload.ts +29 -29
  249. package/src/@types/IIdentityServerProvider.ts +24 -24
  250. package/src/@types/PushRules.ts +208 -208
  251. package/src/@types/another-json.d.ts +19 -19
  252. package/src/@types/auth.ts +280 -258
  253. package/src/@types/beacon.ts +140 -140
  254. package/src/@types/common.ts +24 -24
  255. package/src/@types/crypto.ts +71 -71
  256. package/src/@types/event.ts +476 -449
  257. package/src/@types/events.ts +119 -119
  258. package/src/@types/extensible_events.ts +147 -147
  259. package/src/@types/local_notifications.ts +19 -19
  260. package/src/@types/location.ts +92 -92
  261. package/src/@types/matrix-sdk-crypto-wasm.d.ts +39 -39
  262. package/src/@types/media.ts +245 -245
  263. package/src/@types/membership.ts +57 -57
  264. package/src/@types/partials.ts +103 -103
  265. package/src/@types/polls.ts +120 -120
  266. package/src/@types/read_receipts.ts +61 -61
  267. package/src/@types/registration.ts +102 -102
  268. package/src/@types/search.ts +119 -119
  269. package/src/@types/signed.ts +25 -25
  270. package/src/@types/spaces.ts +37 -37
  271. package/src/@types/state_events.ts +153 -153
  272. package/src/@types/synapse.ts +40 -40
  273. package/src/@types/sync.ts +27 -27
  274. package/src/@types/threepids.ts +29 -29
  275. package/src/@types/topic.ts +69 -69
  276. package/src/@types/uia.ts +24 -24
  277. package/src/NamespacedValue.ts +121 -121
  278. package/src/ReEmitter.ts +93 -93
  279. package/src/base64.ts +86 -86
  280. package/src/briij.ts +3 -0
  281. package/src/client.ts +90 -10
  282. package/src/common-crypto/README.md +4 -4
  283. package/src/common-crypto/key-passphrase.ts +43 -43
  284. package/src/content-helpers.ts +298 -298
  285. package/src/content-repo.ts +122 -122
  286. package/src/crypto/store/base.ts +388 -388
  287. package/src/crypto/store/indexeddb-crypto-store-backend.ts +655 -655
  288. package/src/crypto/store/indexeddb-crypto-store.ts +555 -555
  289. package/src/crypto/store/localStorage-crypto-store.ts +409 -409
  290. package/src/crypto/store/memory-crypto-store.ts +326 -326
  291. package/src/crypto-api/CryptoEventHandlerMap.ts +42 -42
  292. package/src/crypto-api/key-passphrase.ts +58 -58
  293. package/src/crypto-api/keybackup.ts +114 -114
  294. package/src/crypto-api/recovery-key.ts +69 -69
  295. package/src/digest.ts +34 -34
  296. package/src/extensible_events_v1/ExtensibleEvent.ts +58 -58
  297. package/src/extensible_events_v1/InvalidEventError.ts +24 -24
  298. package/src/extensible_events_v1/MessageEvent.ts +143 -143
  299. package/src/extensible_events_v1/PollEndEvent.ts +97 -97
  300. package/src/extensible_events_v1/PollResponseEvent.ts +148 -148
  301. package/src/extensible_events_v1/PollStartEvent.ts +207 -207
  302. package/src/extensible_events_v1/utilities.ts +35 -35
  303. package/src/feature.ts +88 -88
  304. package/src/http-api/method.ts +25 -25
  305. package/src/http-api/prefix.ts +48 -48
  306. package/src/indexeddb-helpers.ts +50 -50
  307. package/src/indexeddb-worker.ts +24 -24
  308. package/src/matrixrtc/IKeyTransport.ts +63 -63
  309. package/src/matrixrtc/IMembershipManager.ts +120 -120
  310. package/src/matrixrtc/LivekitTransport.ts +46 -46
  311. package/src/matrixrtc/index.ts +24 -24
  312. package/src/matrixrtc/utils.ts +71 -71
  313. package/src/models/ToDeviceMessage.ts +38 -38
  314. package/src/models/device.ts +85 -85
  315. package/src/models/event-status.ts +39 -39
  316. package/src/models/invites-ignorer-types.ts +58 -58
  317. package/src/models/profile-keys.ts +33 -33
  318. package/src/models/room-summary.ts +78 -78
  319. package/src/models/search-result.ts +57 -57
  320. package/src/models/typed-event-emitter.ts +246 -246
  321. package/src/oidc/authorize.ts +279 -279
  322. package/src/oidc/error.ts +33 -33
  323. package/src/oidc/index.ts +33 -33
  324. package/src/oidc/register.ts +163 -163
  325. package/src/oidc/tokenRefresher.ts +184 -184
  326. package/src/oidc/validate.ts +265 -265
  327. package/src/randomstring.ts +103 -103
  328. package/src/realtime-callbacks.ts +191 -191
  329. package/src/receipt-accumulator.ts +189 -189
  330. package/src/rendezvous/RendezvousChannel.ts +48 -48
  331. package/src/rendezvous/RendezvousCode.ts +25 -25
  332. package/src/rendezvous/RendezvousError.ts +26 -26
  333. package/src/rendezvous/RendezvousFailureReason.ts +49 -49
  334. package/src/rendezvous/RendezvousIntent.ts +20 -20
  335. package/src/rendezvous/RendezvousTransport.ts +58 -58
  336. package/src/rendezvous/channels/MSC4108SecureChannel.ts +270 -270
  337. package/src/rendezvous/channels/index.ts +17 -17
  338. package/src/rendezvous/index.ts +25 -25
  339. package/src/rendezvous/transports/index.ts +17 -17
  340. package/src/rust-crypto/CrossSigningIdentity.ts +195 -195
  341. package/src/rust-crypto/OutgoingRequestsManager.ts +170 -170
  342. package/src/rust-crypto/device-converter.ts +128 -128
  343. package/src/rust-crypto/secret-storage.ts +60 -60
  344. package/src/service-types.ts +20 -20
  345. package/src/store/local-storage-events-emitter.ts +46 -46
  346. package/src/sync-accumulator.ts +779 -779
  347. package/src/thread-utils.ts +31 -31
  348. package/src/types.ts +59 -59
  349. package/src/utils/decryptAESSecretStorageItem.ts +54 -54
  350. package/src/utils/encryptAESSecretStorageItem.ts +73 -73
  351. package/src/utils/internal/deriveKeys.ts +63 -63
  352. package/src/utils/roomVersion.ts +35 -35
  353. package/src/version-support.ts +50 -50
  354. package/src/webrtc/audioContext.ts +44 -44
  355. package/src/webrtc/callEventTypes.ts +101 -101
  356. package/src/webrtc/stats/callFeedStatsReporter.ts +91 -91
  357. package/src/webrtc/stats/callStatsReportGatherer.ts +219 -219
  358. package/src/webrtc/stats/callStatsReportSummary.ts +30 -30
  359. package/src/webrtc/stats/connectionStats.ts +47 -47
  360. package/src/webrtc/stats/connectionStatsBuilder.ts +28 -28
  361. package/src/webrtc/stats/connectionStatsReportBuilder.ts +140 -140
  362. package/src/webrtc/stats/groupCallStats.ts +93 -93
  363. package/src/webrtc/stats/media/mediaSsrcHandler.ts +57 -57
  364. package/src/webrtc/stats/media/mediaTrackHandler.ts +70 -70
  365. package/src/webrtc/stats/media/mediaTrackStats.ts +176 -176
  366. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +90 -90
  367. package/src/webrtc/stats/statsReport.ts +133 -133
  368. package/src/webrtc/stats/statsReportEmitter.ts +49 -49
  369. package/src/webrtc/stats/trackStatsBuilder.ts +207 -207
  370. package/src/webrtc/stats/transportStats.ts +26 -26
  371. package/src/webrtc/stats/transportStatsBuilder.ts +48 -48
  372. package/src/webrtc/stats/valueFormatter.ts +27 -27
  373. package/src/xrpl/identity.ts +245 -0
  374. package/src/xrpl/trust.ts +64 -0
  375. package/src/xrpl/verification.ts +284 -0
@@ -1,258 +1,280 @@
1
- /*
2
- Copyright 2022 The Matrix.org Foundation C.I.C.
3
-
4
- Licensed under the Apache License, Version 2.0 (the "License");
5
- you may not use this file except in compliance with the License.
6
- You may obtain a copy of the License at
7
-
8
- http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- Unless required by applicable law or agreed to in writing, software
11
- distributed under the License is distributed on an "AS IS" BASIS,
12
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- See the License for the specific language governing permissions and
14
- limitations under the License.
15
- */
16
-
17
- import { UnstableValue } from "../NamespacedValue.ts";
18
- import { type IClientWellKnown } from "../client.ts";
19
-
20
- // disable lint because these are wire responses
21
- /* eslint-disable camelcase */
22
-
23
- /**
24
- * Represents a response to the CSAPI `/refresh` endpoint.
25
- */
26
- export interface IRefreshTokenResponse {
27
- access_token: string;
28
- expires_in_ms: number;
29
- refresh_token: string;
30
- }
31
-
32
- /* eslint-enable camelcase */
33
-
34
- /**
35
- * Response to GET login flows as per https://spec.matrix.org/v1.3/client-server-api/#get_matrixclientv3login
36
- */
37
- export interface ILoginFlowsResponse {
38
- flows: LoginFlow[];
39
- }
40
-
41
- export type LoginFlow = ISSOFlow | IPasswordFlow | ILoginFlow;
42
-
43
- export interface ILoginFlow {
44
- type: string;
45
- }
46
-
47
- export interface IPasswordFlow extends ILoginFlow {
48
- type: "m.login.password";
49
- }
50
-
51
- export const OAUTH_AWARE_PREFERRED_FLOW_FIELD = new UnstableValue(
52
- "oauth_aware_preferred",
53
- "org.matrix.msc3824.delegated_oidc_compatibility",
54
- );
55
-
56
- /**
57
- * @alias
58
- * @deprecated use `OAUTH_AWARE_PREFERRED_FLOW_FIELD` instead.
59
- */
60
- export const DELEGATED_OIDC_COMPATIBILITY = OAUTH_AWARE_PREFERRED_FLOW_FIELD;
61
-
62
- /**
63
- * Representation of SSO flow as per https://spec.matrix.org/v1.3/client-server-api/#client-login-via-sso
64
- */
65
- export interface ISSOFlow extends ILoginFlow {
66
- type: "m.login.sso" | "m.login.cas";
67
- // eslint-disable-next-line camelcase
68
- identity_providers?: IIdentityProvider[];
69
- [OAUTH_AWARE_PREFERRED_FLOW_FIELD.name]?: boolean;
70
- [OAUTH_AWARE_PREFERRED_FLOW_FIELD.altName]?: boolean;
71
- }
72
-
73
- export enum IdentityProviderBrand {
74
- Gitlab = "gitlab",
75
- Github = "github",
76
- Apple = "apple",
77
- Google = "google",
78
- Facebook = "facebook",
79
- Twitter = "twitter",
80
- }
81
-
82
- export interface IIdentityProvider {
83
- id: string;
84
- name: string;
85
- icon?: string;
86
- brand?: IdentityProviderBrand | string;
87
- }
88
-
89
- export enum SSOAction {
90
- /** The user intends to login to an existing account */
91
- LOGIN = "login",
92
-
93
- /** The user intends to register for a new account */
94
- REGISTER = "register",
95
- }
96
-
97
- /**
98
- * A client can identify a user using their Matrix ID.
99
- * This can either be the fully qualified Matrix user ID, or just the localpart of the user ID.
100
- * @see https://spec.matrix.org/v1.7/client-server-api/#matrix-user-id
101
- */
102
- type UserLoginIdentifier = {
103
- type: "m.id.user";
104
- user: string;
105
- };
106
-
107
- /**
108
- * A client can identify a user using a 3PID associated with the user’s account on the homeserver,
109
- * where the 3PID was previously associated using the /account/3pid API.
110
- * See the 3PID Types Appendix for a list of Third-party ID media.
111
- * @see https://spec.matrix.org/v1.7/client-server-api/#third-party-id
112
- */
113
- type ThirdPartyLoginIdentifier = {
114
- type: "m.id.thirdparty";
115
- medium: string;
116
- address: string;
117
- };
118
-
119
- /**
120
- * A client can identify a user using a phone number associated with the user’s account,
121
- * where the phone number was previously associated using the /account/3pid API.
122
- * The phone number can be passed in as entered by the user; the homeserver will be responsible for canonicalising it.
123
- * If the client wishes to canonicalise the phone number,
124
- * then it can use the m.id.thirdparty identifier type with a medium of msisdn instead.
125
- *
126
- * The country is the two-letter uppercase ISO-3166-1 alpha-2 country code that the number in phone should be parsed as if it were dialled from.
127
- *
128
- * @see https://spec.matrix.org/v1.7/client-server-api/#phone-number
129
- */
130
- type PhoneLoginIdentifier = {
131
- type: "m.id.phone";
132
- country: string;
133
- phone: string;
134
- };
135
-
136
- type SpecUserIdentifier = UserLoginIdentifier | ThirdPartyLoginIdentifier | PhoneLoginIdentifier;
137
-
138
- /**
139
- * User Identifiers usable for login & user-interactive authentication.
140
- *
141
- * Extensibly allows more than Matrix specified identifiers.
142
- */
143
- export type UserIdentifier =
144
- | SpecUserIdentifier
145
- | { type: Exclude<string, SpecUserIdentifier["type"]>; [key: string]: any };
146
-
147
- /**
148
- * Request body for POST /login request
149
- * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3login
150
- */
151
- export interface LoginRequest {
152
- /**
153
- * The login type being used.
154
- */
155
- type: "m.login.password" | "m.login.token" | string;
156
- /**
157
- * ID of the client device.
158
- * If this does not correspond to a known client device, a new device will be created.
159
- * The given device ID must not be the same as a cross-signing key ID.
160
- * The server will auto-generate a device_id if this is not specified.
161
- */
162
- device_id?: string;
163
- /**
164
- * Identification information for a user
165
- */
166
- identifier?: UserIdentifier;
167
- /**
168
- * A display name to assign to the newly-created device.
169
- * Ignored if device_id corresponds to a known device.
170
- */
171
- initial_device_display_name?: string;
172
- /**
173
- * When logging in using a third-party identifier, the medium of the identifier.
174
- * Must be `email`.
175
- * @deprecated in favour of `identifier`.
176
- */
177
- medium?: "email";
178
- /**
179
- * Required when type is `m.login.password`. The user’s password.
180
- */
181
- password?: string;
182
- /**
183
- * If true, the client supports refresh tokens.
184
- */
185
- refresh_token?: boolean;
186
- /**
187
- * Required when type is `m.login.token`. Part of Token-based login.
188
- */
189
- token?: string;
190
- /**
191
- * The fully qualified user ID or just local part of the user ID, to log in.
192
- * @deprecated in favour of identifier.
193
- */
194
- user?: string;
195
- // Extensible
196
- [key: string]: any;
197
- }
198
-
199
- // Export for backwards compatibility
200
- export type ILoginParams = LoginRequest;
201
-
202
- /**
203
- * Response body for POST /login request
204
- * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3login
205
- */
206
- export interface LoginResponse {
207
- /**
208
- * An access token for the account.
209
- * This access token can then be used to authorize other requests.
210
- */
211
- access_token: string;
212
- /**
213
- * ID of the logged-in device.
214
- * Will be the same as the corresponding parameter in the request, if one was specified.
215
- */
216
- device_id: string;
217
- /**
218
- * The fully-qualified Matrix ID for the account.
219
- */
220
- user_id: string;
221
- /**
222
- * The lifetime of the access token, in milliseconds.
223
- * Once the access token has expired a new access token can be obtained by using the provided refresh token.
224
- * If no refresh token is provided, the client will need to re-log in to obtain a new access token.
225
- * If not given, the client can assume that the access token will not expire.
226
- */
227
- expires_in_ms?: number;
228
- /**
229
- * A refresh token for the account.
230
- * This token can be used to obtain a new access token when it expires by calling the /refresh endpoint.
231
- */
232
- refresh_token?: string;
233
- /**
234
- * Optional client configuration provided by the server.
235
- * If present, clients SHOULD use the provided object to reconfigure themselves, optionally validating the URLs within.
236
- * This object takes the same form as the one returned from .well-known autodiscovery.
237
- */
238
- well_known?: IClientWellKnown;
239
- /**
240
- * The server_name of the homeserver on which the account has been registered.
241
- * @deprecated Clients should extract the server_name from user_id (by splitting at the first colon) if they require it.
242
- */
243
- home_server?: string;
244
- }
245
-
246
- /**
247
- * The result of a successful `m.login.token` issuance request as per https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv1loginget_token
248
- */
249
- export interface LoginTokenPostResponse {
250
- /**
251
- * The token to use with `m.login.token` to authenticate.
252
- */
253
- login_token: string;
254
- /**
255
- * Expiration in milliseconds.
256
- */
257
- expires_in_ms: number;
258
- }
1
+ /*
2
+ Copyright 2022 The Matrix.org Foundation C.I.C.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ import { UnstableValue } from "../NamespacedValue.ts";
18
+ import { type IClientWellKnown } from "../client.ts";
19
+
20
+ // disable lint because these are wire responses
21
+ /* eslint-disable camelcase */
22
+
23
+ /**
24
+ * Represents a response to the CSAPI `/refresh` endpoint.
25
+ */
26
+ export interface IRefreshTokenResponse {
27
+ access_token: string;
28
+ expires_in_ms: number;
29
+ refresh_token: string;
30
+ }
31
+
32
+ /* eslint-enable camelcase */
33
+
34
+ /**
35
+ * Response to GET login flows as per https://spec.matrix.org/v1.3/client-server-api/#get_matrixclientv3login
36
+ */
37
+ export interface ILoginFlowsResponse {
38
+ flows: LoginFlow[];
39
+ }
40
+
41
+ export const XRPL_WALLET_LOGIN_TYPE = "io.briij.login.xrpl";
42
+
43
+ export type LoginFlow = ISSOFlow | IPasswordFlow | IXrplWalletLoginFlow | ILoginFlow;
44
+
45
+ export interface ILoginFlow {
46
+ type: string;
47
+ }
48
+
49
+ export interface IPasswordFlow extends ILoginFlow {
50
+ type: "m.login.password";
51
+ }
52
+
53
+ export interface IXrplWalletLoginFlow extends ILoginFlow {
54
+ type: typeof XRPL_WALLET_LOGIN_TYPE;
55
+ }
56
+
57
+ export const OAUTH_AWARE_PREFERRED_FLOW_FIELD = new UnstableValue(
58
+ "oauth_aware_preferred",
59
+ "org.matrix.msc3824.delegated_oidc_compatibility",
60
+ );
61
+
62
+ /**
63
+ * @alias
64
+ * @deprecated use `OAUTH_AWARE_PREFERRED_FLOW_FIELD` instead.
65
+ */
66
+ export const DELEGATED_OIDC_COMPATIBILITY = OAUTH_AWARE_PREFERRED_FLOW_FIELD;
67
+
68
+ /**
69
+ * Representation of SSO flow as per https://spec.matrix.org/v1.3/client-server-api/#client-login-via-sso
70
+ */
71
+ export interface ISSOFlow extends ILoginFlow {
72
+ type: "m.login.sso" | "m.login.cas";
73
+ // eslint-disable-next-line camelcase
74
+ identity_providers?: IIdentityProvider[];
75
+ [OAUTH_AWARE_PREFERRED_FLOW_FIELD.name]?: boolean;
76
+ [OAUTH_AWARE_PREFERRED_FLOW_FIELD.altName]?: boolean;
77
+ }
78
+
79
+ export enum IdentityProviderBrand {
80
+ Gitlab = "gitlab",
81
+ Github = "github",
82
+ Apple = "apple",
83
+ Google = "google",
84
+ Facebook = "facebook",
85
+ Twitter = "twitter",
86
+ }
87
+
88
+ export interface IIdentityProvider {
89
+ id: string;
90
+ name: string;
91
+ icon?: string;
92
+ brand?: IdentityProviderBrand | string;
93
+ }
94
+
95
+ export enum SSOAction {
96
+ /** The user intends to login to an existing account */
97
+ LOGIN = "login",
98
+
99
+ /** The user intends to register for a new account */
100
+ REGISTER = "register",
101
+ }
102
+
103
+ /**
104
+ * A client can identify a user using their Matrix ID.
105
+ * This can either be the fully qualified Matrix user ID, or just the localpart of the user ID.
106
+ * @see https://spec.matrix.org/v1.7/client-server-api/#matrix-user-id
107
+ */
108
+ type UserLoginIdentifier = {
109
+ type: "m.id.user";
110
+ user: string;
111
+ };
112
+
113
+ /**
114
+ * A client can identify a user using a 3PID associated with the user’s account on the homeserver,
115
+ * where the 3PID was previously associated using the /account/3pid API.
116
+ * See the 3PID Types Appendix for a list of Third-party ID media.
117
+ * @see https://spec.matrix.org/v1.7/client-server-api/#third-party-id
118
+ */
119
+ type ThirdPartyLoginIdentifier = {
120
+ type: "m.id.thirdparty";
121
+ medium: string;
122
+ address: string;
123
+ };
124
+
125
+ /**
126
+ * A client can identify a user using a phone number associated with the user’s account,
127
+ * where the phone number was previously associated using the /account/3pid API.
128
+ * The phone number can be passed in as entered by the user; the homeserver will be responsible for canonicalising it.
129
+ * If the client wishes to canonicalise the phone number,
130
+ * then it can use the m.id.thirdparty identifier type with a medium of msisdn instead.
131
+ *
132
+ * The country is the two-letter uppercase ISO-3166-1 alpha-2 country code that the number in phone should be parsed as if it were dialled from.
133
+ *
134
+ * @see https://spec.matrix.org/v1.7/client-server-api/#phone-number
135
+ */
136
+ type PhoneLoginIdentifier = {
137
+ type: "m.id.phone";
138
+ country: string;
139
+ phone: string;
140
+ };
141
+
142
+ type SpecUserIdentifier = UserLoginIdentifier | ThirdPartyLoginIdentifier | PhoneLoginIdentifier;
143
+
144
+ /**
145
+ * User Identifiers usable for login & user-interactive authentication.
146
+ *
147
+ * Extensibly allows more than Matrix specified identifiers.
148
+ */
149
+ export type UserIdentifier =
150
+ | SpecUserIdentifier
151
+ | { type: Exclude<string, SpecUserIdentifier["type"]>; [key: string]: any };
152
+
153
+ /**
154
+ * Request body for POST /login request
155
+ * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3login
156
+ */
157
+ export interface LoginRequest {
158
+ /**
159
+ * The login type being used.
160
+ */
161
+ type: "m.login.password" | "m.login.token" | string;
162
+ /**
163
+ * ID of the client device.
164
+ * If this does not correspond to a known client device, a new device will be created.
165
+ * The given device ID must not be the same as a cross-signing key ID.
166
+ * The server will auto-generate a device_id if this is not specified.
167
+ */
168
+ device_id?: string;
169
+ /**
170
+ * Identification information for a user
171
+ */
172
+ identifier?: UserIdentifier;
173
+ /**
174
+ * A display name to assign to the newly-created device.
175
+ * Ignored if device_id corresponds to a known device.
176
+ */
177
+ initial_device_display_name?: string;
178
+ /**
179
+ * When logging in using a third-party identifier, the medium of the identifier.
180
+ * Must be `email`.
181
+ * @deprecated in favour of `identifier`.
182
+ */
183
+ medium?: "email";
184
+ /**
185
+ * Required when type is `m.login.password`. The user’s password.
186
+ */
187
+ password?: string;
188
+ /**
189
+ * If true, the client supports refresh tokens.
190
+ */
191
+ refresh_token?: boolean;
192
+ /**
193
+ * Required when type is `m.login.token`. Part of Token-based login.
194
+ */
195
+ token?: string;
196
+ /**
197
+ * The fully qualified user ID or just local part of the user ID, to log in.
198
+ * @deprecated in favour of identifier.
199
+ */
200
+ user?: string;
201
+ // Extensible
202
+ [key: string]: any;
203
+ }
204
+
205
+ // Export for backwards compatibility
206
+ export type ILoginParams = LoginRequest;
207
+
208
+ export interface XrplWalletChallengePayload {
209
+ nonce: string;
210
+ timestamp: number | string;
211
+ message: string;
212
+ public_key: string;
213
+ algorithm?: "secp256k1" | "ed25519" | string;
214
+ }
215
+
216
+ export interface XrplWalletLoginRequest extends Omit<LoginRequest, "type"> {
217
+ type: typeof XRPL_WALLET_LOGIN_TYPE;
218
+ wallet_address: string;
219
+ signature: string;
220
+ challenge: string | XrplWalletChallengePayload;
221
+ network?: string;
222
+ }
223
+
224
+ /**
225
+ * Response body for POST /login request
226
+ * @see https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3login
227
+ */
228
+ export interface LoginResponse {
229
+ /**
230
+ * An access token for the account.
231
+ * This access token can then be used to authorize other requests.
232
+ */
233
+ access_token: string;
234
+ /**
235
+ * ID of the logged-in device.
236
+ * Will be the same as the corresponding parameter in the request, if one was specified.
237
+ */
238
+ device_id: string;
239
+ /**
240
+ * The fully-qualified Matrix ID for the account.
241
+ */
242
+ user_id: string;
243
+ /**
244
+ * The lifetime of the access token, in milliseconds.
245
+ * Once the access token has expired a new access token can be obtained by using the provided refresh token.
246
+ * If no refresh token is provided, the client will need to re-log in to obtain a new access token.
247
+ * If not given, the client can assume that the access token will not expire.
248
+ */
249
+ expires_in_ms?: number;
250
+ /**
251
+ * A refresh token for the account.
252
+ * This token can be used to obtain a new access token when it expires by calling the /refresh endpoint.
253
+ */
254
+ refresh_token?: string;
255
+ /**
256
+ * Optional client configuration provided by the server.
257
+ * If present, clients SHOULD use the provided object to reconfigure themselves, optionally validating the URLs within.
258
+ * This object takes the same form as the one returned from .well-known autodiscovery.
259
+ */
260
+ well_known?: IClientWellKnown;
261
+ /**
262
+ * The server_name of the homeserver on which the account has been registered.
263
+ * @deprecated Clients should extract the server_name from user_id (by splitting at the first colon) if they require it.
264
+ */
265
+ home_server?: string;
266
+ }
267
+
268
+ /**
269
+ * The result of a successful `m.login.token` issuance request as per https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv1loginget_token
270
+ */
271
+ export interface LoginTokenPostResponse {
272
+ /**
273
+ * The token to use with `m.login.token` to authenticate.
274
+ */
275
+ login_token: string;
276
+ /**
277
+ * Expiration in milliseconds.
278
+ */
279
+ expires_in_ms: number;
280
+ }