@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,50 +1,50 @@
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
- /**
18
- * A list of the spec versions which the js-sdk is compatible with.
19
- *
20
- * In practice, this means: when we connect to a server, it must declare support for one of the versions in this list.
21
- *
22
- * Note that it does not *necessarily* mean that the js-sdk has good support for all the features in the listed spec
23
- * versions; only that we should be able to provide a base level of functionality with a server that offers support for
24
- * any of the listed versions.
25
- */
26
- export const SUPPORTED_MATRIX_VERSIONS = [
27
- "v1.1",
28
- "v1.2",
29
- "v1.3",
30
- "v1.4",
31
- "v1.5",
32
- "v1.6",
33
- "v1.7",
34
- "v1.8",
35
- "v1.9",
36
- "v1.10",
37
- "v1.11",
38
- "v1.12",
39
- "v1.13",
40
- ];
41
-
42
- /**
43
- * The oldest Matrix specification version the js-sdk supports.
44
- */
45
- export const MINIMUM_MATRIX_VERSION = SUPPORTED_MATRIX_VERSIONS[0];
46
-
47
- /**
48
- * The most recent Matrix specification version the js-sdk supports.
49
- */
50
- export const MAXIMUM_MATRIX_VERSION = SUPPORTED_MATRIX_VERSIONS[SUPPORTED_MATRIX_VERSIONS.length - 1];
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
+ /**
18
+ * A list of the spec versions which the js-sdk is compatible with.
19
+ *
20
+ * In practice, this means: when we connect to a server, it must declare support for one of the versions in this list.
21
+ *
22
+ * Note that it does not *necessarily* mean that the js-sdk has good support for all the features in the listed spec
23
+ * versions; only that we should be able to provide a base level of functionality with a server that offers support for
24
+ * any of the listed versions.
25
+ */
26
+ export const SUPPORTED_MATRIX_VERSIONS = [
27
+ "v1.1",
28
+ "v1.2",
29
+ "v1.3",
30
+ "v1.4",
31
+ "v1.5",
32
+ "v1.6",
33
+ "v1.7",
34
+ "v1.8",
35
+ "v1.9",
36
+ "v1.10",
37
+ "v1.11",
38
+ "v1.12",
39
+ "v1.13",
40
+ ];
41
+
42
+ /**
43
+ * The oldest Matrix specification version the js-sdk supports.
44
+ */
45
+ export const MINIMUM_MATRIX_VERSION = SUPPORTED_MATRIX_VERSIONS[0];
46
+
47
+ /**
48
+ * The most recent Matrix specification version the js-sdk supports.
49
+ */
50
+ export const MAXIMUM_MATRIX_VERSION = SUPPORTED_MATRIX_VERSIONS[SUPPORTED_MATRIX_VERSIONS.length - 1];
@@ -1,44 +1,44 @@
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
- let audioContext: AudioContext | null = null;
18
- let refCount = 0;
19
-
20
- /**
21
- * Acquires a reference to the shared AudioContext.
22
- * It's highly recommended to reuse this AudioContext rather than creating your
23
- * own, because multiple AudioContexts can be problematic in some browsers.
24
- * Make sure to call releaseContext when you're done using it.
25
- * @returns The shared AudioContext
26
- */
27
- export const acquireContext = (): AudioContext => {
28
- if (audioContext === null) audioContext = new AudioContext();
29
- refCount++;
30
- return audioContext;
31
- };
32
-
33
- /**
34
- * Signals that one of the references to the shared AudioContext has been
35
- * released, allowing the context and associated hardware resources to be
36
- * cleaned up if nothing else is using it.
37
- */
38
- export const releaseContext = (): void => {
39
- refCount--;
40
- if (refCount === 0) {
41
- audioContext?.close();
42
- audioContext = null;
43
- }
44
- };
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
+ let audioContext: AudioContext | null = null;
18
+ let refCount = 0;
19
+
20
+ /**
21
+ * Acquires a reference to the shared AudioContext.
22
+ * It's highly recommended to reuse this AudioContext rather than creating your
23
+ * own, because multiple AudioContexts can be problematic in some browsers.
24
+ * Make sure to call releaseContext when you're done using it.
25
+ * @returns The shared AudioContext
26
+ */
27
+ export const acquireContext = (): AudioContext => {
28
+ if (audioContext === null) audioContext = new AudioContext();
29
+ refCount++;
30
+ return audioContext;
31
+ };
32
+
33
+ /**
34
+ * Signals that one of the references to the shared AudioContext has been
35
+ * released, allowing the context and associated hardware resources to be
36
+ * cleaned up if nothing else is using it.
37
+ */
38
+ export const releaseContext = (): void => {
39
+ refCount--;
40
+ if (refCount === 0) {
41
+ audioContext?.close();
42
+ audioContext = null;
43
+ }
44
+ };
@@ -1,101 +1,101 @@
1
- // allow non-camelcase as these are events type that go onto the wire
2
- /* eslint-disable camelcase */
3
-
4
- import { type CallErrorCode } from "./call.ts";
5
- import { NamespacedValue } from "../NamespacedValue.ts";
6
-
7
- export const SDPStreamMetadataKey = new NamespacedValue(
8
- "sdp_stream_metadata",
9
- "org.matrix.msc3077.sdp_stream_metadata",
10
- );
11
-
12
- export enum SDPStreamMetadataPurpose {
13
- Usermedia = "m.usermedia",
14
- Screenshare = "m.screenshare",
15
- }
16
-
17
- export interface SDPStreamMetadataObject {
18
- purpose: SDPStreamMetadataPurpose;
19
- audio_muted: boolean;
20
- video_muted: boolean;
21
- }
22
-
23
- export interface SDPStreamMetadata {
24
- [key: string]: SDPStreamMetadataObject;
25
- }
26
-
27
- export interface CallCapabilities {
28
- "m.call.transferee": boolean;
29
- "m.call.dtmf": boolean;
30
- }
31
-
32
- export interface CallReplacesTarget {
33
- id: string;
34
- display_name: string;
35
- avatar_url: string;
36
- }
37
-
38
- export interface MCallBase {
39
- call_id: string;
40
- conf_id?: string;
41
- version: string | number;
42
- party_id?: string;
43
- sender_session_id?: string;
44
- dest_session_id?: string;
45
- }
46
-
47
- type Description = Pick<RTCSessionDescription, "type" | "sdp">;
48
-
49
- export interface MCallAnswer extends MCallBase {
50
- "answer": Description;
51
- "capabilities"?: CallCapabilities;
52
- "sdp_stream_metadata"?: SDPStreamMetadata;
53
- "org.matrix.msc3077.sdp_stream_metadata"?: SDPStreamMetadata;
54
- }
55
-
56
- export interface MCallSelectAnswer extends MCallBase {
57
- selected_party_id: string;
58
- }
59
-
60
- export interface MCallInviteNegotiate extends MCallBase {
61
- "offer": Description;
62
- "description": Description;
63
- "lifetime": number;
64
- "capabilities"?: CallCapabilities;
65
- "invitee"?: string;
66
- "sender_session_id"?: string;
67
- "dest_session_id"?: string;
68
- "sdp_stream_metadata"?: SDPStreamMetadata;
69
- "org.matrix.msc3077.sdp_stream_metadata"?: SDPStreamMetadata;
70
- }
71
-
72
- export interface MCallSDPStreamMetadataChanged extends MCallBase {
73
- "sdp_stream_metadata"?: SDPStreamMetadata;
74
- "org.matrix.msc3077.sdp_stream_metadata"?: SDPStreamMetadata;
75
- }
76
-
77
- export interface MCallReplacesEvent extends MCallBase {
78
- replacement_id: string;
79
- target_user: CallReplacesTarget;
80
- create_call: string;
81
- await_call: string;
82
- target_room: string;
83
- }
84
-
85
- export interface MCAllAssertedIdentity extends MCallBase {
86
- asserted_identity: {
87
- id: string;
88
- display_name: string;
89
- avatar_url: string;
90
- };
91
- }
92
-
93
- export interface MCallCandidates extends MCallBase {
94
- candidates: Omit<RTCIceCandidateInit, "usernameFragment">[];
95
- }
96
-
97
- export interface MCallHangupReject extends MCallBase {
98
- reason?: CallErrorCode;
99
- }
100
-
101
- /* eslint-enable camelcase */
1
+ // allow non-camelcase as these are events type that go onto the wire
2
+ /* eslint-disable camelcase */
3
+
4
+ import { type CallErrorCode } from "./call.ts";
5
+ import { NamespacedValue } from "../NamespacedValue.ts";
6
+
7
+ export const SDPStreamMetadataKey = new NamespacedValue(
8
+ "sdp_stream_metadata",
9
+ "org.matrix.msc3077.sdp_stream_metadata",
10
+ );
11
+
12
+ export enum SDPStreamMetadataPurpose {
13
+ Usermedia = "m.usermedia",
14
+ Screenshare = "m.screenshare",
15
+ }
16
+
17
+ export interface SDPStreamMetadataObject {
18
+ purpose: SDPStreamMetadataPurpose;
19
+ audio_muted: boolean;
20
+ video_muted: boolean;
21
+ }
22
+
23
+ export interface SDPStreamMetadata {
24
+ [key: string]: SDPStreamMetadataObject;
25
+ }
26
+
27
+ export interface CallCapabilities {
28
+ "m.call.transferee": boolean;
29
+ "m.call.dtmf": boolean;
30
+ }
31
+
32
+ export interface CallReplacesTarget {
33
+ id: string;
34
+ display_name: string;
35
+ avatar_url: string;
36
+ }
37
+
38
+ export interface MCallBase {
39
+ call_id: string;
40
+ conf_id?: string;
41
+ version: string | number;
42
+ party_id?: string;
43
+ sender_session_id?: string;
44
+ dest_session_id?: string;
45
+ }
46
+
47
+ type Description = Pick<RTCSessionDescription, "type" | "sdp">;
48
+
49
+ export interface MCallAnswer extends MCallBase {
50
+ "answer": Description;
51
+ "capabilities"?: CallCapabilities;
52
+ "sdp_stream_metadata"?: SDPStreamMetadata;
53
+ "org.matrix.msc3077.sdp_stream_metadata"?: SDPStreamMetadata;
54
+ }
55
+
56
+ export interface MCallSelectAnswer extends MCallBase {
57
+ selected_party_id: string;
58
+ }
59
+
60
+ export interface MCallInviteNegotiate extends MCallBase {
61
+ "offer": Description;
62
+ "description": Description;
63
+ "lifetime": number;
64
+ "capabilities"?: CallCapabilities;
65
+ "invitee"?: string;
66
+ "sender_session_id"?: string;
67
+ "dest_session_id"?: string;
68
+ "sdp_stream_metadata"?: SDPStreamMetadata;
69
+ "org.matrix.msc3077.sdp_stream_metadata"?: SDPStreamMetadata;
70
+ }
71
+
72
+ export interface MCallSDPStreamMetadataChanged extends MCallBase {
73
+ "sdp_stream_metadata"?: SDPStreamMetadata;
74
+ "org.matrix.msc3077.sdp_stream_metadata"?: SDPStreamMetadata;
75
+ }
76
+
77
+ export interface MCallReplacesEvent extends MCallBase {
78
+ replacement_id: string;
79
+ target_user: CallReplacesTarget;
80
+ create_call: string;
81
+ await_call: string;
82
+ target_room: string;
83
+ }
84
+
85
+ export interface MCAllAssertedIdentity extends MCallBase {
86
+ asserted_identity: {
87
+ id: string;
88
+ display_name: string;
89
+ avatar_url: string;
90
+ };
91
+ }
92
+
93
+ export interface MCallCandidates extends MCallBase {
94
+ candidates: Omit<RTCIceCandidateInit, "usernameFragment">[];
95
+ }
96
+
97
+ export interface MCallHangupReject extends MCallBase {
98
+ reason?: CallErrorCode;
99
+ }
100
+
101
+ /* eslint-enable camelcase */
@@ -1,91 +1,91 @@
1
- /*
2
- Copyright 2023 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
- import { type CallFeedReport, type CallFeedStats, type TrackStats, type TransceiverStats } from "./statsReport.ts";
17
- import { type CallFeed } from "../callFeed.ts";
18
-
19
- export class CallFeedStatsReporter {
20
- public static buildCallFeedReport(callId: string, opponentMemberId: string, pc: RTCPeerConnection): CallFeedReport {
21
- const rtpTransceivers = pc.getTransceivers();
22
- const transceiver: TransceiverStats[] = [];
23
- const callFeeds: CallFeedStats[] = [];
24
-
25
- rtpTransceivers.forEach((t) => {
26
- const sender = t.sender?.track ? CallFeedStatsReporter.buildTrackStats(t.sender.track, "sender") : null;
27
- const receiver = CallFeedStatsReporter.buildTrackStats(t.receiver.track, "receiver");
28
- transceiver.push({
29
- mid: t.mid == null ? "null" : t.mid,
30
- direction: t.direction,
31
- currentDirection: t.currentDirection == null ? "null" : t.currentDirection,
32
- sender,
33
- receiver,
34
- });
35
- });
36
-
37
- return {
38
- callId,
39
- opponentMemberId,
40
- transceiver,
41
- callFeeds,
42
- };
43
- }
44
-
45
- private static buildTrackStats(track: MediaStreamTrack, label = "--"): TrackStats {
46
- const settingDeviceId = track.getSettings()?.deviceId;
47
- const constrainDeviceId = track.getConstraints()?.deviceId;
48
-
49
- return {
50
- id: track.id,
51
- kind: track.kind,
52
- settingDeviceId: settingDeviceId ?? "unknown",
53
- constrainDeviceId: constrainDeviceId ?? "unknown",
54
- muted: track.muted,
55
- enabled: track.enabled,
56
- readyState: track.readyState,
57
- label,
58
- } as TrackStats;
59
- }
60
-
61
- public static expandCallFeedReport(
62
- report: CallFeedReport,
63
- callFeeds: CallFeed[],
64
- prefix = "unknown",
65
- ): CallFeedReport {
66
- callFeeds.forEach((feed) => {
67
- const audioTracks = feed.stream.getAudioTracks();
68
- const videoTracks = feed.stream.getVideoTracks();
69
- const audio =
70
- audioTracks.length > 0
71
- ? CallFeedStatsReporter.buildTrackStats(feed.stream.getAudioTracks()[0], feed.purpose)
72
- : null;
73
- const video =
74
- videoTracks.length > 0
75
- ? CallFeedStatsReporter.buildTrackStats(feed.stream.getVideoTracks()[0], feed.purpose)
76
- : null;
77
- const feedStats = {
78
- stream: feed.stream.id,
79
- type: feed.isLocal() ? "local" : "remote",
80
- audio,
81
- video,
82
- purpose: feed.purpose,
83
- prefix,
84
- isVideoMuted: feed.isVideoMuted(),
85
- isAudioMuted: feed.isAudioMuted(),
86
- } as CallFeedStats;
87
- report.callFeeds.push(feedStats);
88
- });
89
- return report;
90
- }
91
- }
1
+ /*
2
+ Copyright 2023 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
+ import { type CallFeedReport, type CallFeedStats, type TrackStats, type TransceiverStats } from "./statsReport.ts";
17
+ import { type CallFeed } from "../callFeed.ts";
18
+
19
+ export class CallFeedStatsReporter {
20
+ public static buildCallFeedReport(callId: string, opponentMemberId: string, pc: RTCPeerConnection): CallFeedReport {
21
+ const rtpTransceivers = pc.getTransceivers();
22
+ const transceiver: TransceiverStats[] = [];
23
+ const callFeeds: CallFeedStats[] = [];
24
+
25
+ rtpTransceivers.forEach((t) => {
26
+ const sender = t.sender?.track ? CallFeedStatsReporter.buildTrackStats(t.sender.track, "sender") : null;
27
+ const receiver = CallFeedStatsReporter.buildTrackStats(t.receiver.track, "receiver");
28
+ transceiver.push({
29
+ mid: t.mid == null ? "null" : t.mid,
30
+ direction: t.direction,
31
+ currentDirection: t.currentDirection == null ? "null" : t.currentDirection,
32
+ sender,
33
+ receiver,
34
+ });
35
+ });
36
+
37
+ return {
38
+ callId,
39
+ opponentMemberId,
40
+ transceiver,
41
+ callFeeds,
42
+ };
43
+ }
44
+
45
+ private static buildTrackStats(track: MediaStreamTrack, label = "--"): TrackStats {
46
+ const settingDeviceId = track.getSettings()?.deviceId;
47
+ const constrainDeviceId = track.getConstraints()?.deviceId;
48
+
49
+ return {
50
+ id: track.id,
51
+ kind: track.kind,
52
+ settingDeviceId: settingDeviceId ?? "unknown",
53
+ constrainDeviceId: constrainDeviceId ?? "unknown",
54
+ muted: track.muted,
55
+ enabled: track.enabled,
56
+ readyState: track.readyState,
57
+ label,
58
+ } as TrackStats;
59
+ }
60
+
61
+ public static expandCallFeedReport(
62
+ report: CallFeedReport,
63
+ callFeeds: CallFeed[],
64
+ prefix = "unknown",
65
+ ): CallFeedReport {
66
+ callFeeds.forEach((feed) => {
67
+ const audioTracks = feed.stream.getAudioTracks();
68
+ const videoTracks = feed.stream.getVideoTracks();
69
+ const audio =
70
+ audioTracks.length > 0
71
+ ? CallFeedStatsReporter.buildTrackStats(feed.stream.getAudioTracks()[0], feed.purpose)
72
+ : null;
73
+ const video =
74
+ videoTracks.length > 0
75
+ ? CallFeedStatsReporter.buildTrackStats(feed.stream.getVideoTracks()[0], feed.purpose)
76
+ : null;
77
+ const feedStats = {
78
+ stream: feed.stream.id,
79
+ type: feed.isLocal() ? "local" : "remote",
80
+ audio,
81
+ video,
82
+ purpose: feed.purpose,
83
+ prefix,
84
+ isVideoMuted: feed.isVideoMuted(),
85
+ isAudioMuted: feed.isAudioMuted(),
86
+ } as CallFeedStats;
87
+ report.callFeeds.push(feedStats);
88
+ });
89
+ return report;
90
+ }
91
+ }