@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,19 +1,19 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- /*
4
- Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
5
-
6
- Licensed under the Apache License, Version 2.0 (the "License");
7
- you may not use this file except in compliance with the License.
8
- You may obtain a copy of the License at
9
-
10
- http://www.apache.org/licenses/LICENSE-2.0
11
-
12
- Unless required by applicable law or agreed to in writing, software
13
- distributed under the License is distributed on an "AS IS" BASIS,
14
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- See the License for the specific language governing permissions and
16
- limitations under the License.
3
+ /*
4
+ Copyright 2017 - 2021 The Matrix.org Foundation C.I.C.
5
+
6
+ Licensed under the Apache License, Version 2.0 (the "License");
7
+ you may not use this file except in compliance with the License.
8
+ You may obtain a copy of the License at
9
+
10
+ http://www.apache.org/licenses/LICENSE-2.0
11
+
12
+ Unless required by applicable law or agreed to in writing, software
13
+ distributed under the License is distributed on an "AS IS" BASIS,
14
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ See the License for the specific language governing permissions and
16
+ limitations under the License.
17
17
  */
18
18
 
19
19
  import { logger } from "../../logger.js";
@@ -23,22 +23,22 @@ import * as IndexedDBCryptoStoreBackend from "./indexeddb-crypto-store-backend.j
23
23
  import { InvalidCryptoStoreError, InvalidCryptoStoreState } from "../../errors.js";
24
24
  import * as IndexedDBHelpers from "../../indexeddb-helpers.js";
25
25
  import { MigrationState, ACCOUNT_OBJECT_KEY_MIGRATION_STATE } from "./base.js";
26
- /*
27
- * Internal module. indexeddb storage for e2e.
26
+ /*
27
+ * Internal module. indexeddb storage for e2e.
28
28
  */
29
29
 
30
- /**
31
- * An implementation of CryptoStore, which is normally backed by an indexeddb,
32
- * but with fallback to MemoryCryptoStore.
30
+ /**
31
+ * An implementation of CryptoStore, which is normally backed by an indexeddb,
32
+ * but with fallback to MemoryCryptoStore.
33
33
  */
34
34
  export class IndexedDBCryptoStore {
35
35
  static exists(indexedDB, dbName) {
36
36
  return IndexedDBHelpers.exists(indexedDB, dbName);
37
37
  }
38
38
 
39
- /**
40
- * Utility to check if a legacy crypto store exists and has not been migrated.
41
- * Returns true if the store exists and has not been migrated, false otherwise.
39
+ /**
40
+ * Utility to check if a legacy crypto store exists and has not been migrated.
41
+ * Returns true if the store exists and has not been migrated, false otherwise.
42
42
  */
43
43
  static existsAndIsNotMigrated(indexedDb, dbName) {
44
44
  return new Promise((resolve, reject) => {
@@ -79,11 +79,11 @@ export class IndexedDBCryptoStore {
79
79
  openDBRequest.onerror = () => reject(openDBRequest.error);
80
80
  });
81
81
  }
82
- /**
83
- * Create a new IndexedDBCryptoStore
84
- *
85
- * @param indexedDB - global indexedDB instance
86
- * @param dbName - name of db to connect to
82
+ /**
83
+ * Create a new IndexedDBCryptoStore
84
+ *
85
+ * @param indexedDB - global indexedDB instance
86
+ * @param dbName - name of db to connect to
87
87
  */
88
88
  constructor(indexedDB, dbName) {
89
89
  this.indexedDB = indexedDB;
@@ -92,12 +92,12 @@ export class IndexedDBCryptoStore {
92
92
  _defineProperty(this, "backend", void 0);
93
93
  }
94
94
 
95
- /**
96
- * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
97
- *
98
- * Implementation of {@link CryptoStore.containsData}.
99
- *
100
- * @internal
95
+ /**
96
+ * Returns true if this CryptoStore has ever been initialised (ie, it might contain data).
97
+ *
98
+ * Implementation of {@link CryptoStore.containsData}.
99
+ *
100
+ * @internal
101
101
  */
102
102
  containsData() {
103
103
  var _this = this;
@@ -106,14 +106,14 @@ export class IndexedDBCryptoStore {
106
106
  })();
107
107
  }
108
108
 
109
- /**
110
- * Ensure the database exists and is up-to-date, or fall back to
111
- * a local storage or in-memory store.
112
- *
113
- * This must be called before the store can be used.
114
- *
115
- * @returns resolves to either an IndexedDBCryptoStoreBackend.Backend,
116
- * or a MemoryCryptoStore
109
+ /**
110
+ * Ensure the database exists and is up-to-date, or fall back to
111
+ * a local storage or in-memory store.
112
+ *
113
+ * This must be called before the store can be used.
114
+ *
115
+ * @returns resolves to either an IndexedDBCryptoStoreBackend.Backend,
116
+ * or a MemoryCryptoStore
117
117
  */
118
118
  startup() {
119
119
  if (this.backendPromise) {
@@ -174,10 +174,10 @@ export class IndexedDBCryptoStore {
174
174
  return this.backendPromise;
175
175
  }
176
176
 
177
- /**
178
- * Delete all data from this store.
179
- *
180
- * @returns resolves when the store has been cleared.
177
+ /**
178
+ * Delete all data from this store.
179
+ *
180
+ * @returns resolves when the store has been cleared.
181
181
  */
182
182
  deleteAllData() {
183
183
  return new Promise((resolve, reject) => {
@@ -206,23 +206,23 @@ export class IndexedDBCryptoStore {
206
206
  });
207
207
  }
208
208
 
209
- /**
210
- * Get data on how much of the libolm to Rust Crypto migration has been done.
211
- *
212
- * Implementation of {@link CryptoStore.getMigrationState}.
213
- *
214
- * @internal
209
+ /**
210
+ * Get data on how much of the libolm to Rust Crypto migration has been done.
211
+ *
212
+ * Implementation of {@link CryptoStore.getMigrationState}.
213
+ *
214
+ * @internal
215
215
  */
216
216
  getMigrationState() {
217
217
  return this.backend.getMigrationState();
218
218
  }
219
219
 
220
- /**
221
- * Set data on how much of the libolm to Rust Crypto migration has been done.
222
- *
223
- * Implementation of {@link CryptoStore.setMigrationState}.
224
- *
225
- * @internal
220
+ /**
221
+ * Set data on how much of the libolm to Rust Crypto migration has been done.
222
+ *
223
+ * Implementation of {@link CryptoStore.setMigrationState}.
224
+ *
225
+ * @internal
226
226
  */
227
227
  setMigrationState(migrationState) {
228
228
  return this.backend.setMigrationState(migrationState);
@@ -230,55 +230,55 @@ export class IndexedDBCryptoStore {
230
230
 
231
231
  // Olm Account
232
232
 
233
- /*
234
- * Get the account pickle from the store.
235
- * This requires an active transaction. See doTxn().
236
- *
237
- * @param txn - An active transaction. See doTxn().
238
- * @param func - Called with the account pickle
233
+ /*
234
+ * Get the account pickle from the store.
235
+ * This requires an active transaction. See doTxn().
236
+ *
237
+ * @param txn - An active transaction. See doTxn().
238
+ * @param func - Called with the account pickle
239
239
  */
240
240
  getAccount(txn, func) {
241
241
  this.backend.getAccount(txn, func);
242
242
  }
243
243
 
244
- /**
245
- * Write the account pickle to the store.
246
- * This requires an active transaction. See doTxn().
247
- *
248
- * @param txn - An active transaction. See doTxn().
249
- * @param accountPickle - The new account pickle to store.
244
+ /**
245
+ * Write the account pickle to the store.
246
+ * This requires an active transaction. See doTxn().
247
+ *
248
+ * @param txn - An active transaction. See doTxn().
249
+ * @param accountPickle - The new account pickle to store.
250
250
  */
251
251
  storeAccount(txn, accountPickle) {
252
252
  this.backend.storeAccount(txn, accountPickle);
253
253
  }
254
254
 
255
- /**
256
- * Get the public part of the cross-signing keys (eg. self-signing key,
257
- * user signing key).
258
- *
259
- * @param txn - An active transaction. See doTxn().
260
- * @param func - Called with the account keys object:
261
- * `{ key_type: base64 encoded seed }` where key type = user_signing_key_seed or self_signing_key_seed
255
+ /**
256
+ * Get the public part of the cross-signing keys (eg. self-signing key,
257
+ * user signing key).
258
+ *
259
+ * @param txn - An active transaction. See doTxn().
260
+ * @param func - Called with the account keys object:
261
+ * `{ key_type: base64 encoded seed }` where key type = user_signing_key_seed or self_signing_key_seed
262
262
  */
263
263
  getCrossSigningKeys(txn, func) {
264
264
  this.backend.getCrossSigningKeys(txn, func);
265
265
  }
266
266
 
267
- /**
268
- * @param txn - An active transaction. See doTxn().
269
- * @param func - Called with the private key
270
- * @param type - A key type
267
+ /**
268
+ * @param txn - An active transaction. See doTxn().
269
+ * @param func - Called with the private key
270
+ * @param type - A key type
271
271
  */
272
272
  getSecretStorePrivateKey(txn, func, type) {
273
273
  this.backend.getSecretStorePrivateKey(txn, func, type);
274
274
  }
275
275
 
276
- /**
277
- * Write the cross-signing private keys back to the store
278
- *
279
- * @param txn - An active transaction. See doTxn().
280
- * @param type - The type of cross-signing private key to store
281
- * @param key - keys object as getCrossSigningKeys()
276
+ /**
277
+ * Write the cross-signing private keys back to the store
278
+ *
279
+ * @param txn - An active transaction. See doTxn().
280
+ * @param type - The type of cross-signing private key to store
281
+ * @param key - keys object as getCrossSigningKeys()
282
282
  */
283
283
  storeSecretStorePrivateKey(txn, type, key) {
284
284
  this.backend.storeSecretStorePrivateKey(txn, type, key);
@@ -286,85 +286,85 @@ export class IndexedDBCryptoStore {
286
286
 
287
287
  // Olm sessions
288
288
 
289
- /**
290
- * Returns the number of end-to-end sessions in the store
291
- * @param txn - An active transaction. See doTxn().
292
- * @param func - Called with the count of sessions
289
+ /**
290
+ * Returns the number of end-to-end sessions in the store
291
+ * @param txn - An active transaction. See doTxn().
292
+ * @param func - Called with the count of sessions
293
293
  */
294
294
  countEndToEndSessions(txn, func) {
295
295
  this.backend.countEndToEndSessions(txn, func);
296
296
  }
297
297
 
298
- /**
299
- * Retrieve a specific end-to-end session between the logged-in user
300
- * and another device.
301
- * @param deviceKey - The public key of the other device.
302
- * @param sessionId - The ID of the session to retrieve
303
- * @param txn - An active transaction. See doTxn().
304
- * @param func - Called with A map from sessionId
305
- * to session information object with 'session' key being the
306
- * Base64 end-to-end session and lastReceivedMessageTs being the
307
- * timestamp in milliseconds at which the session last received
308
- * a message.
298
+ /**
299
+ * Retrieve a specific end-to-end session between the logged-in user
300
+ * and another device.
301
+ * @param deviceKey - The public key of the other device.
302
+ * @param sessionId - The ID of the session to retrieve
303
+ * @param txn - An active transaction. See doTxn().
304
+ * @param func - Called with A map from sessionId
305
+ * to session information object with 'session' key being the
306
+ * Base64 end-to-end session and lastReceivedMessageTs being the
307
+ * timestamp in milliseconds at which the session last received
308
+ * a message.
309
309
  */
310
310
  getEndToEndSession(deviceKey, sessionId, txn, func) {
311
311
  this.backend.getEndToEndSession(deviceKey, sessionId, txn, func);
312
312
  }
313
313
 
314
- /**
315
- * Retrieve the end-to-end sessions between the logged-in user and another
316
- * device.
317
- * @param deviceKey - The public key of the other device.
318
- * @param txn - An active transaction. See doTxn().
319
- * @param func - Called with A map from sessionId
320
- * to session information object with 'session' key being the
321
- * Base64 end-to-end session and lastReceivedMessageTs being the
322
- * timestamp in milliseconds at which the session last received
323
- * a message.
314
+ /**
315
+ * Retrieve the end-to-end sessions between the logged-in user and another
316
+ * device.
317
+ * @param deviceKey - The public key of the other device.
318
+ * @param txn - An active transaction. See doTxn().
319
+ * @param func - Called with A map from sessionId
320
+ * to session information object with 'session' key being the
321
+ * Base64 end-to-end session and lastReceivedMessageTs being the
322
+ * timestamp in milliseconds at which the session last received
323
+ * a message.
324
324
  */
325
325
  getEndToEndSessions(deviceKey, txn, func) {
326
326
  this.backend.getEndToEndSessions(deviceKey, txn, func);
327
327
  }
328
328
 
329
- /**
330
- * Store a session between the logged-in user and another device
331
- * @param deviceKey - The public key of the other device.
332
- * @param sessionId - The ID for this end-to-end session.
333
- * @param sessionInfo - Session information object
334
- * @param txn - An active transaction. See doTxn().
329
+ /**
330
+ * Store a session between the logged-in user and another device
331
+ * @param deviceKey - The public key of the other device.
332
+ * @param sessionId - The ID for this end-to-end session.
333
+ * @param sessionInfo - Session information object
334
+ * @param txn - An active transaction. See doTxn().
335
335
  */
336
336
  storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn) {
337
337
  this.backend.storeEndToEndSession(deviceKey, sessionId, sessionInfo, txn);
338
338
  }
339
339
 
340
- /**
341
- * Count the number of Megolm sessions in the database.
342
- *
343
- * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
344
- *
345
- * @internal
340
+ /**
341
+ * Count the number of Megolm sessions in the database.
342
+ *
343
+ * Implementation of {@link CryptoStore.countEndToEndInboundGroupSessions}.
344
+ *
345
+ * @internal
346
346
  */
347
347
  countEndToEndInboundGroupSessions() {
348
348
  return this.backend.countEndToEndInboundGroupSessions();
349
349
  }
350
350
 
351
- /**
352
- * Fetch a batch of Olm sessions from the database.
353
- *
354
- * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
355
- *
356
- * @internal
351
+ /**
352
+ * Fetch a batch of Olm sessions from the database.
353
+ *
354
+ * Implementation of {@link CryptoStore.getEndToEndSessionsBatch}.
355
+ *
356
+ * @internal
357
357
  */
358
358
  getEndToEndSessionsBatch() {
359
359
  return this.backend.getEndToEndSessionsBatch();
360
360
  }
361
361
 
362
- /**
363
- * Delete a batch of Olm sessions from the database.
364
- *
365
- * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
366
- *
367
- * @internal
362
+ /**
363
+ * Delete a batch of Olm sessions from the database.
364
+ *
365
+ * Implementation of {@link CryptoStore.deleteEndToEndSessionsBatch}.
366
+ *
367
+ * @internal
368
368
  */
369
369
  deleteEndToEndSessionsBatch(sessions) {
370
370
  return this.backend.deleteEndToEndSessionsBatch(sessions);
@@ -372,94 +372,94 @@ export class IndexedDBCryptoStore {
372
372
 
373
373
  // Inbound group sessions
374
374
 
375
- /**
376
- * Retrieve the end-to-end inbound group session for a given
377
- * server key and session ID
378
- * @param senderCurve25519Key - The sender's curve 25519 key
379
- * @param sessionId - The ID of the session
380
- * @param txn - An active transaction. See doTxn().
381
- * @param func - Called with A map from sessionId
382
- * to Base64 end-to-end session.
375
+ /**
376
+ * Retrieve the end-to-end inbound group session for a given
377
+ * server key and session ID
378
+ * @param senderCurve25519Key - The sender's curve 25519 key
379
+ * @param sessionId - The ID of the session
380
+ * @param txn - An active transaction. See doTxn().
381
+ * @param func - Called with A map from sessionId
382
+ * to Base64 end-to-end session.
383
383
  */
384
384
  getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func) {
385
385
  this.backend.getEndToEndInboundGroupSession(senderCurve25519Key, sessionId, txn, func);
386
386
  }
387
387
 
388
- /**
389
- * Writes an end-to-end inbound group session to the store.
390
- * If there already exists an inbound group session with the same
391
- * senderCurve25519Key and sessionID, it will be overwritten.
392
- * @param senderCurve25519Key - The sender's curve 25519 key
393
- * @param sessionId - The ID of the session
394
- * @param sessionData - The session data structure
395
- * @param txn - An active transaction. See doTxn().
388
+ /**
389
+ * Writes an end-to-end inbound group session to the store.
390
+ * If there already exists an inbound group session with the same
391
+ * senderCurve25519Key and sessionID, it will be overwritten.
392
+ * @param senderCurve25519Key - The sender's curve 25519 key
393
+ * @param sessionId - The ID of the session
394
+ * @param sessionData - The session data structure
395
+ * @param txn - An active transaction. See doTxn().
396
396
  */
397
397
  storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn) {
398
398
  this.backend.storeEndToEndInboundGroupSession(senderCurve25519Key, sessionId, sessionData, txn);
399
399
  }
400
400
 
401
- /**
402
- * Fetch a batch of Megolm sessions from the database.
403
- *
404
- * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
405
- *
406
- * @internal
401
+ /**
402
+ * Fetch a batch of Megolm sessions from the database.
403
+ *
404
+ * Implementation of {@link CryptoStore.getEndToEndInboundGroupSessionsBatch}.
405
+ *
406
+ * @internal
407
407
  */
408
408
  getEndToEndInboundGroupSessionsBatch() {
409
409
  return this.backend.getEndToEndInboundGroupSessionsBatch();
410
410
  }
411
411
 
412
- /**
413
- * Delete a batch of Megolm sessions from the database.
414
- *
415
- * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
416
- *
417
- * @internal
412
+ /**
413
+ * Delete a batch of Megolm sessions from the database.
414
+ *
415
+ * Implementation of {@link CryptoStore.deleteEndToEndInboundGroupSessionsBatch}.
416
+ *
417
+ * @internal
418
418
  */
419
419
  deleteEndToEndInboundGroupSessionsBatch(sessions) {
420
420
  return this.backend.deleteEndToEndInboundGroupSessionsBatch(sessions);
421
421
  }
422
422
 
423
- /**
424
- * Get an object of `roomId->roomInfo` for all e2e rooms in the store
425
- * @param txn - An active transaction. See doTxn().
426
- * @param func - Function called with the end-to-end encrypted rooms
423
+ /**
424
+ * Get an object of `roomId->roomInfo` for all e2e rooms in the store
425
+ * @param txn - An active transaction. See doTxn().
426
+ * @param func - Function called with the end-to-end encrypted rooms
427
427
  */
428
428
  getEndToEndRooms(txn, func) {
429
429
  this.backend.getEndToEndRooms(txn, func);
430
430
  }
431
431
 
432
- /**
433
- * Mark sessions as needing to be backed up.
434
- * @param sessions - The sessions that need to be backed up.
435
- * @param txn - An active transaction. See doTxn(). (optional)
436
- * @returns resolves when the sessions are marked
432
+ /**
433
+ * Mark sessions as needing to be backed up.
434
+ * @param sessions - The sessions that need to be backed up.
435
+ * @param txn - An active transaction. See doTxn(). (optional)
436
+ * @returns resolves when the sessions are marked
437
437
  */
438
438
  markSessionsNeedingBackup(sessions, txn) {
439
439
  return this.backend.markSessionsNeedingBackup(sessions, txn);
440
440
  }
441
441
 
442
- /**
443
- * Perform a transaction on the crypto store. Any store methods
444
- * that require a transaction (txn) object to be passed in may
445
- * only be called within a callback of either this function or
446
- * one of the store functions operating on the same transaction.
447
- *
448
- * @param mode - 'readwrite' if you need to call setter
449
- * functions with this transaction. Otherwise, 'readonly'.
450
- * @param stores - List IndexedDBCryptoStore.STORE_*
451
- * options representing all types of object that will be
452
- * accessed or written to with this transaction.
453
- * @param func - Function called with the
454
- * transaction object: an opaque object that should be passed
455
- * to store functions.
456
- * @param log - A possibly customised log
457
- * @returns Promise that resolves with the result of the `func`
458
- * when the transaction is complete. If the backend is
459
- * async (ie. the indexeddb backend) any of the callback
460
- * functions throwing an exception will cause this promise to
461
- * reject with that exception. On synchronous backends, the
462
- * exception will propagate to the caller of the getFoo method.
442
+ /**
443
+ * Perform a transaction on the crypto store. Any store methods
444
+ * that require a transaction (txn) object to be passed in may
445
+ * only be called within a callback of either this function or
446
+ * one of the store functions operating on the same transaction.
447
+ *
448
+ * @param mode - 'readwrite' if you need to call setter
449
+ * functions with this transaction. Otherwise, 'readonly'.
450
+ * @param stores - List IndexedDBCryptoStore.STORE_*
451
+ * options representing all types of object that will be
452
+ * accessed or written to with this transaction.
453
+ * @param func - Function called with the
454
+ * transaction object: an opaque object that should be passed
455
+ * to store functions.
456
+ * @param log - A possibly customised log
457
+ * @returns Promise that resolves with the result of the `func`
458
+ * when the transaction is complete. If the backend is
459
+ * async (ie. the indexeddb backend) any of the callback
460
+ * functions throwing an exception will cause this promise to
461
+ * reject with that exception. On synchronous backends, the
462
+ * exception will propagate to the caller of the getFoo method.
463
463
  */
464
464
  doTxn(mode, stores, func, log) {
465
465
  return this.backend.doTxn(mode, stores, func, log);