@textrp/briij-js-sdk 41.0.1 → 43.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 (380) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/LICENSE +177 -177
  3. package/README.md +85 -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 +72 -1
  10. package/lib/@types/auth.d.ts.map +1 -1
  11. package/lib/@types/auth.js +57 -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 +59 -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 +4 -0
  58. package/lib/briij.d.ts.map +1 -1
  59. package/lib/briij.js +4 -0
  60. package/lib/briij.js.map +1 -1
  61. package/lib/client.d.ts +48 -1
  62. package/lib/client.d.ts.map +1 -1
  63. package/lib/client.js +262 -108
  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/wallet-recovery.d.ts +24 -0
  202. package/lib/wallet-recovery.d.ts.map +1 -0
  203. package/lib/wallet-recovery.js +232 -0
  204. package/lib/wallet-recovery.js.map +1 -0
  205. package/lib/webrtc/audioContext.js +24 -24
  206. package/lib/webrtc/audioContext.js.map +1 -1
  207. package/lib/webrtc/callEventTypes.js.map +1 -1
  208. package/lib/webrtc/stats/callFeedStatsReporter.js +14 -14
  209. package/lib/webrtc/stats/callFeedStatsReporter.js.map +1 -1
  210. package/lib/webrtc/stats/callStatsReportGatherer.js +14 -14
  211. package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
  212. package/lib/webrtc/stats/callStatsReportSummary.js.map +1 -1
  213. package/lib/webrtc/stats/connectionStats.js +14 -14
  214. package/lib/webrtc/stats/connectionStats.js.map +1 -1
  215. package/lib/webrtc/stats/connectionStatsBuilder.js +14 -14
  216. package/lib/webrtc/stats/connectionStatsBuilder.js.map +1 -1
  217. package/lib/webrtc/stats/connectionStatsReportBuilder.js +14 -14
  218. package/lib/webrtc/stats/connectionStatsReportBuilder.js.map +1 -1
  219. package/lib/webrtc/stats/groupCallStats.js +14 -14
  220. package/lib/webrtc/stats/groupCallStats.js.map +1 -1
  221. package/lib/webrtc/stats/media/mediaSsrcHandler.js +14 -14
  222. package/lib/webrtc/stats/media/mediaSsrcHandler.js.map +1 -1
  223. package/lib/webrtc/stats/media/mediaTrackHandler.js +14 -14
  224. package/lib/webrtc/stats/media/mediaTrackHandler.js.map +1 -1
  225. package/lib/webrtc/stats/media/mediaTrackStats.js +27 -27
  226. package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
  227. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +20 -20
  228. package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
  229. package/lib/webrtc/stats/statsReport.js +14 -14
  230. package/lib/webrtc/stats/statsReport.js.map +1 -1
  231. package/lib/webrtc/stats/statsReportEmitter.js +14 -14
  232. package/lib/webrtc/stats/statsReportEmitter.js.map +1 -1
  233. package/lib/webrtc/stats/trackStatsBuilder.js +4 -4
  234. package/lib/webrtc/stats/trackStatsBuilder.js.map +1 -1
  235. package/lib/webrtc/stats/transportStats.js.map +1 -1
  236. package/lib/webrtc/stats/transportStatsBuilder.js.map +1 -1
  237. package/lib/webrtc/stats/valueFormatter.js +11 -11
  238. package/lib/webrtc/stats/valueFormatter.js.map +1 -1
  239. package/lib/xrpl/identity.d.ts +28 -0
  240. package/lib/xrpl/identity.d.ts.map +1 -0
  241. package/lib/xrpl/identity.js +213 -0
  242. package/lib/xrpl/identity.js.map +1 -0
  243. package/lib/xrpl/trust.d.ts +8 -0
  244. package/lib/xrpl/trust.d.ts.map +1 -0
  245. package/lib/xrpl/trust.js +61 -0
  246. package/lib/xrpl/trust.js.map +1 -0
  247. package/lib/xrpl/verification.d.ts +26 -0
  248. package/lib/xrpl/verification.d.ts.map +1 -0
  249. package/lib/xrpl/verification.js +295 -0
  250. package/lib/xrpl/verification.js.map +1 -0
  251. package/package.json +130 -129
  252. package/src/@types/AESEncryptedSecretStoragePayload.ts +29 -29
  253. package/src/@types/IIdentityServerProvider.ts +24 -24
  254. package/src/@types/PushRules.ts +208 -208
  255. package/src/@types/another-json.d.ts +19 -19
  256. package/src/@types/auth.ts +340 -258
  257. package/src/@types/beacon.ts +140 -140
  258. package/src/@types/common.ts +24 -24
  259. package/src/@types/crypto.ts +71 -71
  260. package/src/@types/event.ts +508 -449
  261. package/src/@types/events.ts +119 -119
  262. package/src/@types/extensible_events.ts +147 -147
  263. package/src/@types/local_notifications.ts +19 -19
  264. package/src/@types/location.ts +92 -92
  265. package/src/@types/matrix-sdk-crypto-wasm.d.ts +39 -39
  266. package/src/@types/media.ts +245 -245
  267. package/src/@types/membership.ts +57 -57
  268. package/src/@types/partials.ts +103 -103
  269. package/src/@types/polls.ts +120 -120
  270. package/src/@types/read_receipts.ts +61 -61
  271. package/src/@types/registration.ts +102 -102
  272. package/src/@types/search.ts +119 -119
  273. package/src/@types/signed.ts +25 -25
  274. package/src/@types/spaces.ts +37 -37
  275. package/src/@types/state_events.ts +153 -153
  276. package/src/@types/synapse.ts +40 -40
  277. package/src/@types/sync.ts +27 -27
  278. package/src/@types/threepids.ts +29 -29
  279. package/src/@types/topic.ts +69 -69
  280. package/src/@types/uia.ts +24 -24
  281. package/src/NamespacedValue.ts +121 -121
  282. package/src/ReEmitter.ts +93 -93
  283. package/src/base64.ts +86 -86
  284. package/src/briij.ts +4 -0
  285. package/src/client.ts +183 -10
  286. package/src/common-crypto/README.md +4 -4
  287. package/src/common-crypto/key-passphrase.ts +43 -43
  288. package/src/content-helpers.ts +298 -298
  289. package/src/content-repo.ts +122 -122
  290. package/src/crypto/store/base.ts +388 -388
  291. package/src/crypto/store/indexeddb-crypto-store-backend.ts +655 -655
  292. package/src/crypto/store/indexeddb-crypto-store.ts +555 -555
  293. package/src/crypto/store/localStorage-crypto-store.ts +409 -409
  294. package/src/crypto/store/memory-crypto-store.ts +326 -326
  295. package/src/crypto-api/CryptoEventHandlerMap.ts +42 -42
  296. package/src/crypto-api/key-passphrase.ts +58 -58
  297. package/src/crypto-api/keybackup.ts +114 -114
  298. package/src/crypto-api/recovery-key.ts +69 -69
  299. package/src/digest.ts +34 -34
  300. package/src/extensible_events_v1/ExtensibleEvent.ts +58 -58
  301. package/src/extensible_events_v1/InvalidEventError.ts +24 -24
  302. package/src/extensible_events_v1/MessageEvent.ts +143 -143
  303. package/src/extensible_events_v1/PollEndEvent.ts +97 -97
  304. package/src/extensible_events_v1/PollResponseEvent.ts +148 -148
  305. package/src/extensible_events_v1/PollStartEvent.ts +207 -207
  306. package/src/extensible_events_v1/utilities.ts +35 -35
  307. package/src/feature.ts +88 -88
  308. package/src/http-api/method.ts +25 -25
  309. package/src/http-api/prefix.ts +48 -48
  310. package/src/indexeddb-helpers.ts +50 -50
  311. package/src/indexeddb-worker.ts +24 -24
  312. package/src/matrixrtc/IKeyTransport.ts +63 -63
  313. package/src/matrixrtc/IMembershipManager.ts +120 -120
  314. package/src/matrixrtc/LivekitTransport.ts +46 -46
  315. package/src/matrixrtc/index.ts +24 -24
  316. package/src/matrixrtc/utils.ts +71 -71
  317. package/src/models/ToDeviceMessage.ts +38 -38
  318. package/src/models/device.ts +85 -85
  319. package/src/models/event-status.ts +39 -39
  320. package/src/models/invites-ignorer-types.ts +58 -58
  321. package/src/models/profile-keys.ts +33 -33
  322. package/src/models/room-summary.ts +78 -78
  323. package/src/models/search-result.ts +57 -57
  324. package/src/models/typed-event-emitter.ts +246 -246
  325. package/src/oidc/authorize.ts +279 -279
  326. package/src/oidc/error.ts +33 -33
  327. package/src/oidc/index.ts +33 -33
  328. package/src/oidc/register.ts +163 -163
  329. package/src/oidc/tokenRefresher.ts +184 -184
  330. package/src/oidc/validate.ts +265 -265
  331. package/src/randomstring.ts +103 -103
  332. package/src/realtime-callbacks.ts +191 -191
  333. package/src/receipt-accumulator.ts +189 -189
  334. package/src/rendezvous/RendezvousChannel.ts +48 -48
  335. package/src/rendezvous/RendezvousCode.ts +25 -25
  336. package/src/rendezvous/RendezvousError.ts +26 -26
  337. package/src/rendezvous/RendezvousFailureReason.ts +49 -49
  338. package/src/rendezvous/RendezvousIntent.ts +20 -20
  339. package/src/rendezvous/RendezvousTransport.ts +58 -58
  340. package/src/rendezvous/channels/MSC4108SecureChannel.ts +270 -270
  341. package/src/rendezvous/channels/index.ts +17 -17
  342. package/src/rendezvous/index.ts +25 -25
  343. package/src/rendezvous/transports/index.ts +17 -17
  344. package/src/rust-crypto/CrossSigningIdentity.ts +195 -195
  345. package/src/rust-crypto/OutgoingRequestsManager.ts +170 -170
  346. package/src/rust-crypto/device-converter.ts +128 -128
  347. package/src/rust-crypto/secret-storage.ts +60 -60
  348. package/src/service-types.ts +20 -20
  349. package/src/store/local-storage-events-emitter.ts +46 -46
  350. package/src/sync-accumulator.ts +779 -779
  351. package/src/thread-utils.ts +31 -31
  352. package/src/types.ts +59 -59
  353. package/src/utils/decryptAESSecretStorageItem.ts +54 -54
  354. package/src/utils/encryptAESSecretStorageItem.ts +73 -73
  355. package/src/utils/internal/deriveKeys.ts +63 -63
  356. package/src/utils/roomVersion.ts +35 -35
  357. package/src/version-support.ts +50 -50
  358. package/src/wallet-recovery.ts +252 -0
  359. package/src/webrtc/audioContext.ts +44 -44
  360. package/src/webrtc/callEventTypes.ts +101 -101
  361. package/src/webrtc/stats/callFeedStatsReporter.ts +91 -91
  362. package/src/webrtc/stats/callStatsReportGatherer.ts +219 -219
  363. package/src/webrtc/stats/callStatsReportSummary.ts +30 -30
  364. package/src/webrtc/stats/connectionStats.ts +47 -47
  365. package/src/webrtc/stats/connectionStatsBuilder.ts +28 -28
  366. package/src/webrtc/stats/connectionStatsReportBuilder.ts +140 -140
  367. package/src/webrtc/stats/groupCallStats.ts +93 -93
  368. package/src/webrtc/stats/media/mediaSsrcHandler.ts +57 -57
  369. package/src/webrtc/stats/media/mediaTrackHandler.ts +70 -70
  370. package/src/webrtc/stats/media/mediaTrackStats.ts +176 -176
  371. package/src/webrtc/stats/media/mediaTrackStatsHandler.ts +90 -90
  372. package/src/webrtc/stats/statsReport.ts +133 -133
  373. package/src/webrtc/stats/statsReportEmitter.ts +49 -49
  374. package/src/webrtc/stats/trackStatsBuilder.ts +207 -207
  375. package/src/webrtc/stats/transportStats.ts +26 -26
  376. package/src/webrtc/stats/transportStatsBuilder.ts +48 -48
  377. package/src/webrtc/stats/valueFormatter.ts +27 -27
  378. package/src/xrpl/identity.ts +245 -0
  379. package/src/xrpl/trust.ts +64 -0
  380. package/src/xrpl/verification.ts +284 -0
@@ -1,57 +1,57 @@
1
- /*
2
- Copyright 2015 - 2021 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 { EventContext } from "./event-context.ts";
18
- import { type EventMapper } from "../event-mapper.ts";
19
- import { type IResultContext, type ISearchResult } from "../@types/search.ts";
20
-
21
- export class SearchResult {
22
- /**
23
- * Create a SearchResponse from the response to /search
24
- */
25
-
26
- public static fromJson(jsonObj: ISearchResult, eventMapper: EventMapper): SearchResult {
27
- const jsonContext = jsonObj.context || ({} as IResultContext);
28
- let eventsBefore = (jsonContext.events_before || []).map(eventMapper);
29
- let eventsAfter = (jsonContext.events_after || []).map(eventMapper);
30
-
31
- const context = new EventContext(eventMapper(jsonObj.result));
32
-
33
- // Filter out any contextual events which do not correspond to the same timeline (thread or room)
34
- const threadRootId = context.ourEvent.threadRootId;
35
- eventsBefore = eventsBefore.filter((e) => e.threadRootId === threadRootId);
36
- eventsAfter = eventsAfter.filter((e) => e.threadRootId === threadRootId);
37
-
38
- context.setPaginateToken(jsonContext.start, true);
39
- context.addEvents(eventsBefore, true);
40
- context.addEvents(eventsAfter, false);
41
- context.setPaginateToken(jsonContext.end, false);
42
-
43
- return new SearchResult(jsonObj.rank, context);
44
- }
45
-
46
- /**
47
- * Construct a new SearchResult
48
- *
49
- * @param rank - where this SearchResult ranks in the results
50
- * @param context - the matching event and its
51
- * context
52
- */
53
- public constructor(
54
- public readonly rank: number,
55
- public readonly context: EventContext,
56
- ) {}
57
- }
1
+ /*
2
+ Copyright 2015 - 2021 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 { EventContext } from "./event-context.ts";
18
+ import { type EventMapper } from "../event-mapper.ts";
19
+ import { type IResultContext, type ISearchResult } from "../@types/search.ts";
20
+
21
+ export class SearchResult {
22
+ /**
23
+ * Create a SearchResponse from the response to /search
24
+ */
25
+
26
+ public static fromJson(jsonObj: ISearchResult, eventMapper: EventMapper): SearchResult {
27
+ const jsonContext = jsonObj.context || ({} as IResultContext);
28
+ let eventsBefore = (jsonContext.events_before || []).map(eventMapper);
29
+ let eventsAfter = (jsonContext.events_after || []).map(eventMapper);
30
+
31
+ const context = new EventContext(eventMapper(jsonObj.result));
32
+
33
+ // Filter out any contextual events which do not correspond to the same timeline (thread or room)
34
+ const threadRootId = context.ourEvent.threadRootId;
35
+ eventsBefore = eventsBefore.filter((e) => e.threadRootId === threadRootId);
36
+ eventsAfter = eventsAfter.filter((e) => e.threadRootId === threadRootId);
37
+
38
+ context.setPaginateToken(jsonContext.start, true);
39
+ context.addEvents(eventsBefore, true);
40
+ context.addEvents(eventsAfter, false);
41
+ context.setPaginateToken(jsonContext.end, false);
42
+
43
+ return new SearchResult(jsonObj.rank, context);
44
+ }
45
+
46
+ /**
47
+ * Construct a new SearchResult
48
+ *
49
+ * @param rank - where this SearchResult ranks in the results
50
+ * @param context - the matching event and its
51
+ * context
52
+ */
53
+ public constructor(
54
+ public readonly rank: number,
55
+ public readonly context: EventContext,
56
+ ) {}
57
+ }
@@ -1,246 +1,246 @@
1
- /*
2
- Copyright 2021 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
- // eslint-disable-next-line no-restricted-imports
18
- import { EventEmitter } from "events";
19
-
20
- /** Events emitted by EventEmitter itself */
21
- export enum EventEmitterEvents {
22
- NewListener = "newListener",
23
- RemoveListener = "removeListener",
24
- Error = "error",
25
- }
26
-
27
- type AnyListener = (...args: any) => any;
28
-
29
- /** Base class for types mapping from event name to the type of listeners to that event */
30
- export type ListenerMap<E extends string> = { [eventName in E]: AnyListener };
31
-
32
- type EventEmitterEventListener = (eventName: string, listener: AnyListener) => void;
33
- type EventEmitterErrorListener = (error: Error) => void;
34
-
35
- /**
36
- * The expected type of a listener function for a particular event.
37
- *
38
- * Type parameters:
39
- * * `E` - List of all events emitted by the `TypedEventEmitter`. Normally an enum type.
40
- * * `A` - A type providing mappings from event names to listener types.
41
- * * `T` - The name of the actual event that this listener is for. Normally one of the types in `E` or
42
- * {@link EventEmitterEvents}.
43
- */
44
- export type Listener<E extends string, A extends ListenerMap<E>, T extends E | EventEmitterEvents> = T extends E
45
- ? A[T]
46
- : T extends EventEmitterEvents
47
- ? EventEmitterErrorListener
48
- : EventEmitterEventListener;
49
-
50
- /**
51
- * Typed Event Emitter class which can act as a Base Model for all our model
52
- * and communication events.
53
- * This makes it much easier for us to distinguish between events, as we now need
54
- * to properly type this, so that our events are not stringly-based and prone
55
- * to silly typos.
56
- *
57
- * Type parameters:
58
- * * `Events` - List of all events emitted by this `TypedEventEmitter`. Normally an enum type.
59
- * * `Arguments` - A {@link ListenerMap} type providing mappings from event names to listener types.
60
- * * `SuperclassArguments` - TODO: not really sure. Alternative listener mappings, I think? But only honoured for `.emit`?
61
- */
62
- export class TypedEventEmitter<
63
- Events extends string,
64
- Arguments extends ListenerMap<Events>,
65
- SuperclassArguments extends ListenerMap<any> = Arguments,
66
- > extends EventEmitter {
67
- /**
68
- * Alias for {@link on}.
69
- */
70
- public addListener<T extends Events | EventEmitterEvents>(
71
- event: T,
72
- listener: Listener<Events, Arguments, T>,
73
- ): this {
74
- return super.addListener(event, listener);
75
- }
76
-
77
- /**
78
- * Synchronously calls each of the listeners registered for the event named
79
- * `event`, in the order they were registered, passing the supplied arguments
80
- * to each.
81
- *
82
- * @param event - The name of the event to emit
83
- * @param args - Arguments to pass to the listener
84
- * @returns `true` if the event had listeners, `false` otherwise.
85
- */
86
- public emit<T extends Events>(event: T, ...args: Parameters<SuperclassArguments[T]>): boolean;
87
- public emit<T extends Events>(event: T, ...args: Parameters<Arguments[T]>): boolean;
88
- public emit<T extends Events>(event: T, ...args: any[]): boolean {
89
- return super.emit(event, ...args);
90
- }
91
-
92
- /**
93
- * Similar to `emit` but calls all listeners within a `Promise.all` and returns the promise chain
94
- * @param event - The name of the event to emit
95
- * @param args - Arguments to pass to the listener
96
- * @returns `true` if the event had listeners, `false` otherwise.
97
- */
98
- public async emitPromised<T extends Events>(
99
- event: T,
100
- ...args: Parameters<SuperclassArguments[T]>
101
- ): Promise<boolean>;
102
- public async emitPromised<T extends Events>(event: T, ...args: Parameters<Arguments[T]>): Promise<boolean>;
103
- public async emitPromised<T extends Events>(event: T, ...args: any[]): Promise<boolean> {
104
- const listeners = this.listeners(event);
105
- return Promise.allSettled(listeners.map((l) => l(...args))).then(() => {
106
- return listeners.length > 0;
107
- });
108
- }
109
-
110
- /**
111
- * Returns the number of listeners listening to the event named `event`.
112
- *
113
- * @param event - The name of the event being listened for
114
- */
115
- public listenerCount(event: Events | EventEmitterEvents): number {
116
- return super.listenerCount(event);
117
- }
118
-
119
- /**
120
- * Returns a copy of the array of listeners for the event named `event`.
121
- */
122
- public listeners(event: Events | EventEmitterEvents): ReturnType<EventEmitter["listeners"]> {
123
- return super.listeners(event);
124
- }
125
-
126
- /**
127
- * Alias for {@link removeListener}
128
- */
129
- public off<T extends Events | EventEmitterEvents>(event: T, listener: Listener<Events, Arguments, T>): this {
130
- return super.off(event, listener);
131
- }
132
-
133
- /**
134
- * Adds the `listener` function to the end of the listeners array for the
135
- * event named `event`.
136
- *
137
- * No checks are made to see if the `listener` has already been added. Multiple calls
138
- * passing the same combination of `event` and `listener` will result in the `listener`
139
- * being added, and called, multiple times.
140
- *
141
- * By default, event listeners are invoked in the order they are added. The
142
- * {@link prependListener} method can be used as an alternative to add the
143
- * event listener to the beginning of the listeners array.
144
- *
145
- * @param event - The name of the event.
146
- * @param listener - The callback function
147
- *
148
- * @returns a reference to the `EventEmitter`, so that calls can be chained.
149
- */
150
- public on<T extends Events | EventEmitterEvents>(event: T, listener: Listener<Events, Arguments, T>): this {
151
- return super.on(event, listener);
152
- }
153
-
154
- /**
155
- * Adds a **one-time** `listener` function for the event named `event`. The
156
- * next time `event` is triggered, this listener is removed and then invoked.
157
- *
158
- * Returns a reference to the `EventEmitter`, so that calls can be chained.
159
- *
160
- * By default, event listeners are invoked in the order they are added.
161
- * The {@link prependOnceListener} method can be used as an alternative to add the
162
- * event listener to the beginning of the listeners array.
163
- *
164
- * @param event - The name of the event.
165
- * @param listener - The callback function
166
- *
167
- * @returns a reference to the `EventEmitter`, so that calls can be chained.
168
- */
169
- public once<T extends Events | EventEmitterEvents>(event: T, listener: Listener<Events, Arguments, T>): this {
170
- return super.once(event, listener);
171
- }
172
-
173
- /**
174
- * Adds the `listener` function to the _beginning_ of the listeners array for the
175
- * event named `event`.
176
- *
177
- * No checks are made to see if the `listener` has already been added. Multiple calls
178
- * passing the same combination of `event` and `listener` will result in the `listener`
179
- * being added, and called, multiple times.
180
- *
181
- * @param event - The name of the event.
182
- * @param listener - The callback function
183
- *
184
- * @returns a reference to the `EventEmitter`, so that calls can be chained.
185
- */
186
- public prependListener<T extends Events | EventEmitterEvents>(
187
- event: T,
188
- listener: Listener<Events, Arguments, T>,
189
- ): this {
190
- return super.prependListener(event, listener);
191
- }
192
-
193
- /**
194
- * Adds a **one-time**`listener` function for the event named `event` to the _beginning_ of the listeners array.
195
- * The next time `event` is triggered, this listener is removed, and then invoked.
196
- *
197
- * @param event - The name of the event.
198
- * @param listener - The callback function
199
- *
200
- * @returns a reference to the `EventEmitter`, so that calls can be chained.
201
- */
202
- public prependOnceListener<T extends Events | EventEmitterEvents>(
203
- event: T,
204
- listener: Listener<Events, Arguments, T>,
205
- ): this {
206
- return super.prependOnceListener(event, listener);
207
- }
208
-
209
- /**
210
- * Removes all listeners, or those of the specified `event`.
211
- *
212
- * It is bad practice to remove listeners added elsewhere in the code,
213
- * particularly when the `EventEmitter` instance was created by some other
214
- * component or module (e.g. sockets or file streams).
215
- *
216
- * @param event - The name of the event. If undefined, all listeners everywhere are removed.
217
- * @returns a reference to the `EventEmitter`, so that calls can be chained.
218
- */
219
- public removeAllListeners(event?: Events | EventEmitterEvents): this {
220
- // EventEmitter::removeAllListeners uses `arguments.length` to determine undefined case
221
- if (event === undefined) {
222
- return super.removeAllListeners();
223
- }
224
- return super.removeAllListeners(event);
225
- }
226
-
227
- /**
228
- * Removes the specified `listener` from the listener array for the event named `event`.
229
- *
230
- * @returns a reference to the `EventEmitter`, so that calls can be chained.
231
- */
232
- public removeListener<T extends Events | EventEmitterEvents>(
233
- event: T,
234
- listener: Listener<Events, Arguments, T>,
235
- ): this {
236
- return super.removeListener(event, listener);
237
- }
238
-
239
- /**
240
- * Returns a copy of the array of listeners for the event named `eventName`,
241
- * including any wrappers (such as those created by `.once()`).
242
- */
243
- public rawListeners(event: Events | EventEmitterEvents): ReturnType<EventEmitter["rawListeners"]> {
244
- return super.rawListeners(event);
245
- }
246
- }
1
+ /*
2
+ Copyright 2021 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
+ // eslint-disable-next-line no-restricted-imports
18
+ import { EventEmitter } from "events";
19
+
20
+ /** Events emitted by EventEmitter itself */
21
+ export enum EventEmitterEvents {
22
+ NewListener = "newListener",
23
+ RemoveListener = "removeListener",
24
+ Error = "error",
25
+ }
26
+
27
+ type AnyListener = (...args: any) => any;
28
+
29
+ /** Base class for types mapping from event name to the type of listeners to that event */
30
+ export type ListenerMap<E extends string> = { [eventName in E]: AnyListener };
31
+
32
+ type EventEmitterEventListener = (eventName: string, listener: AnyListener) => void;
33
+ type EventEmitterErrorListener = (error: Error) => void;
34
+
35
+ /**
36
+ * The expected type of a listener function for a particular event.
37
+ *
38
+ * Type parameters:
39
+ * * `E` - List of all events emitted by the `TypedEventEmitter`. Normally an enum type.
40
+ * * `A` - A type providing mappings from event names to listener types.
41
+ * * `T` - The name of the actual event that this listener is for. Normally one of the types in `E` or
42
+ * {@link EventEmitterEvents}.
43
+ */
44
+ export type Listener<E extends string, A extends ListenerMap<E>, T extends E | EventEmitterEvents> = T extends E
45
+ ? A[T]
46
+ : T extends EventEmitterEvents
47
+ ? EventEmitterErrorListener
48
+ : EventEmitterEventListener;
49
+
50
+ /**
51
+ * Typed Event Emitter class which can act as a Base Model for all our model
52
+ * and communication events.
53
+ * This makes it much easier for us to distinguish between events, as we now need
54
+ * to properly type this, so that our events are not stringly-based and prone
55
+ * to silly typos.
56
+ *
57
+ * Type parameters:
58
+ * * `Events` - List of all events emitted by this `TypedEventEmitter`. Normally an enum type.
59
+ * * `Arguments` - A {@link ListenerMap} type providing mappings from event names to listener types.
60
+ * * `SuperclassArguments` - TODO: not really sure. Alternative listener mappings, I think? But only honoured for `.emit`?
61
+ */
62
+ export class TypedEventEmitter<
63
+ Events extends string,
64
+ Arguments extends ListenerMap<Events>,
65
+ SuperclassArguments extends ListenerMap<any> = Arguments,
66
+ > extends EventEmitter {
67
+ /**
68
+ * Alias for {@link on}.
69
+ */
70
+ public addListener<T extends Events | EventEmitterEvents>(
71
+ event: T,
72
+ listener: Listener<Events, Arguments, T>,
73
+ ): this {
74
+ return super.addListener(event, listener);
75
+ }
76
+
77
+ /**
78
+ * Synchronously calls each of the listeners registered for the event named
79
+ * `event`, in the order they were registered, passing the supplied arguments
80
+ * to each.
81
+ *
82
+ * @param event - The name of the event to emit
83
+ * @param args - Arguments to pass to the listener
84
+ * @returns `true` if the event had listeners, `false` otherwise.
85
+ */
86
+ public emit<T extends Events>(event: T, ...args: Parameters<SuperclassArguments[T]>): boolean;
87
+ public emit<T extends Events>(event: T, ...args: Parameters<Arguments[T]>): boolean;
88
+ public emit<T extends Events>(event: T, ...args: any[]): boolean {
89
+ return super.emit(event, ...args);
90
+ }
91
+
92
+ /**
93
+ * Similar to `emit` but calls all listeners within a `Promise.all` and returns the promise chain
94
+ * @param event - The name of the event to emit
95
+ * @param args - Arguments to pass to the listener
96
+ * @returns `true` if the event had listeners, `false` otherwise.
97
+ */
98
+ public async emitPromised<T extends Events>(
99
+ event: T,
100
+ ...args: Parameters<SuperclassArguments[T]>
101
+ ): Promise<boolean>;
102
+ public async emitPromised<T extends Events>(event: T, ...args: Parameters<Arguments[T]>): Promise<boolean>;
103
+ public async emitPromised<T extends Events>(event: T, ...args: any[]): Promise<boolean> {
104
+ const listeners = this.listeners(event);
105
+ return Promise.allSettled(listeners.map((l) => l(...args))).then(() => {
106
+ return listeners.length > 0;
107
+ });
108
+ }
109
+
110
+ /**
111
+ * Returns the number of listeners listening to the event named `event`.
112
+ *
113
+ * @param event - The name of the event being listened for
114
+ */
115
+ public listenerCount(event: Events | EventEmitterEvents): number {
116
+ return super.listenerCount(event);
117
+ }
118
+
119
+ /**
120
+ * Returns a copy of the array of listeners for the event named `event`.
121
+ */
122
+ public listeners(event: Events | EventEmitterEvents): ReturnType<EventEmitter["listeners"]> {
123
+ return super.listeners(event);
124
+ }
125
+
126
+ /**
127
+ * Alias for {@link removeListener}
128
+ */
129
+ public off<T extends Events | EventEmitterEvents>(event: T, listener: Listener<Events, Arguments, T>): this {
130
+ return super.off(event, listener);
131
+ }
132
+
133
+ /**
134
+ * Adds the `listener` function to the end of the listeners array for the
135
+ * event named `event`.
136
+ *
137
+ * No checks are made to see if the `listener` has already been added. Multiple calls
138
+ * passing the same combination of `event` and `listener` will result in the `listener`
139
+ * being added, and called, multiple times.
140
+ *
141
+ * By default, event listeners are invoked in the order they are added. The
142
+ * {@link prependListener} method can be used as an alternative to add the
143
+ * event listener to the beginning of the listeners array.
144
+ *
145
+ * @param event - The name of the event.
146
+ * @param listener - The callback function
147
+ *
148
+ * @returns a reference to the `EventEmitter`, so that calls can be chained.
149
+ */
150
+ public on<T extends Events | EventEmitterEvents>(event: T, listener: Listener<Events, Arguments, T>): this {
151
+ return super.on(event, listener);
152
+ }
153
+
154
+ /**
155
+ * Adds a **one-time** `listener` function for the event named `event`. The
156
+ * next time `event` is triggered, this listener is removed and then invoked.
157
+ *
158
+ * Returns a reference to the `EventEmitter`, so that calls can be chained.
159
+ *
160
+ * By default, event listeners are invoked in the order they are added.
161
+ * The {@link prependOnceListener} method can be used as an alternative to add the
162
+ * event listener to the beginning of the listeners array.
163
+ *
164
+ * @param event - The name of the event.
165
+ * @param listener - The callback function
166
+ *
167
+ * @returns a reference to the `EventEmitter`, so that calls can be chained.
168
+ */
169
+ public once<T extends Events | EventEmitterEvents>(event: T, listener: Listener<Events, Arguments, T>): this {
170
+ return super.once(event, listener);
171
+ }
172
+
173
+ /**
174
+ * Adds the `listener` function to the _beginning_ of the listeners array for the
175
+ * event named `event`.
176
+ *
177
+ * No checks are made to see if the `listener` has already been added. Multiple calls
178
+ * passing the same combination of `event` and `listener` will result in the `listener`
179
+ * being added, and called, multiple times.
180
+ *
181
+ * @param event - The name of the event.
182
+ * @param listener - The callback function
183
+ *
184
+ * @returns a reference to the `EventEmitter`, so that calls can be chained.
185
+ */
186
+ public prependListener<T extends Events | EventEmitterEvents>(
187
+ event: T,
188
+ listener: Listener<Events, Arguments, T>,
189
+ ): this {
190
+ return super.prependListener(event, listener);
191
+ }
192
+
193
+ /**
194
+ * Adds a **one-time**`listener` function for the event named `event` to the _beginning_ of the listeners array.
195
+ * The next time `event` is triggered, this listener is removed, and then invoked.
196
+ *
197
+ * @param event - The name of the event.
198
+ * @param listener - The callback function
199
+ *
200
+ * @returns a reference to the `EventEmitter`, so that calls can be chained.
201
+ */
202
+ public prependOnceListener<T extends Events | EventEmitterEvents>(
203
+ event: T,
204
+ listener: Listener<Events, Arguments, T>,
205
+ ): this {
206
+ return super.prependOnceListener(event, listener);
207
+ }
208
+
209
+ /**
210
+ * Removes all listeners, or those of the specified `event`.
211
+ *
212
+ * It is bad practice to remove listeners added elsewhere in the code,
213
+ * particularly when the `EventEmitter` instance was created by some other
214
+ * component or module (e.g. sockets or file streams).
215
+ *
216
+ * @param event - The name of the event. If undefined, all listeners everywhere are removed.
217
+ * @returns a reference to the `EventEmitter`, so that calls can be chained.
218
+ */
219
+ public removeAllListeners(event?: Events | EventEmitterEvents): this {
220
+ // EventEmitter::removeAllListeners uses `arguments.length` to determine undefined case
221
+ if (event === undefined) {
222
+ return super.removeAllListeners();
223
+ }
224
+ return super.removeAllListeners(event);
225
+ }
226
+
227
+ /**
228
+ * Removes the specified `listener` from the listener array for the event named `event`.
229
+ *
230
+ * @returns a reference to the `EventEmitter`, so that calls can be chained.
231
+ */
232
+ public removeListener<T extends Events | EventEmitterEvents>(
233
+ event: T,
234
+ listener: Listener<Events, Arguments, T>,
235
+ ): this {
236
+ return super.removeListener(event, listener);
237
+ }
238
+
239
+ /**
240
+ * Returns a copy of the array of listeners for the event named `eventName`,
241
+ * including any wrappers (such as those created by `.once()`).
242
+ */
243
+ public rawListeners(event: Events | EventEmitterEvents): ReturnType<EventEmitter["rawListeners"]> {
244
+ return super.rawListeners(event);
245
+ }
246
+ }