@towns-labs/sdk 2.0.11 → 2.0.13

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 (508) hide show
  1. package/dist/client.d.ts +13 -31
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +113 -328
  4. package/dist/client.js.map +1 -1
  5. package/dist/clientDecryptionExtensions.d.ts.map +1 -1
  6. package/dist/clientDecryptionExtensions.js +10 -28
  7. package/dist/clientDecryptionExtensions.js.map +1 -1
  8. package/dist/createApp.d.ts +1 -1
  9. package/dist/createApp.d.ts.map +1 -1
  10. package/dist/createApp.js +6 -2
  11. package/dist/createApp.js.map +1 -1
  12. package/dist/id.d.ts +1 -17
  13. package/dist/id.d.ts.map +1 -1
  14. package/dist/id.js +1 -53
  15. package/dist/id.js.map +1 -1
  16. package/dist/index.d.ts +0 -22
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +0 -22
  19. package/dist/index.js.map +1 -1
  20. package/dist/migrations/snapshotMigration0001.d.ts.map +1 -1
  21. package/dist/migrations/snapshotMigration0001.js +0 -4
  22. package/dist/migrations/snapshotMigration0001.js.map +1 -1
  23. package/dist/migrations/snapshotMigration0002.d.ts.map +1 -1
  24. package/dist/migrations/snapshotMigration0002.js +1 -19
  25. package/dist/migrations/snapshotMigration0002.js.map +1 -1
  26. package/dist/migrations/snapshotMigration0004.d.ts.map +1 -1
  27. package/dist/migrations/snapshotMigration0004.js +1 -27
  28. package/dist/migrations/snapshotMigration0004.js.map +1 -1
  29. package/dist/migrations/snapshotMigration0005.d.ts.map +1 -1
  30. package/dist/migrations/snapshotMigration0005.js +1 -26
  31. package/dist/migrations/snapshotMigration0005.js.map +1 -1
  32. package/dist/notificationsClient.d.ts +1 -5
  33. package/dist/notificationsClient.d.ts.map +1 -1
  34. package/dist/notificationsClient.js +2 -103
  35. package/dist/notificationsClient.js.map +1 -1
  36. package/dist/persistenceStore.d.ts.map +1 -1
  37. package/dist/persistenceStore.js +6 -18
  38. package/dist/persistenceStore.js.map +1 -1
  39. package/dist/streamEvents.d.ts +0 -6
  40. package/dist/streamEvents.d.ts.map +1 -1
  41. package/dist/streamStateView.d.ts +0 -9
  42. package/dist/streamStateView.d.ts.map +1 -1
  43. package/dist/streamStateView.js +3 -64
  44. package/dist/streamStateView.js.map +1 -1
  45. package/dist/streamStateView_MemberMetadata.d.ts +3 -36
  46. package/dist/streamStateView_MemberMetadata.d.ts.map +1 -1
  47. package/dist/streamStateView_MemberMetadata.js +3 -83
  48. package/dist/streamStateView_MemberMetadata.js.map +1 -1
  49. package/dist/streamStateView_Members.d.ts +1 -5
  50. package/dist/streamStateView_Members.d.ts.map +1 -1
  51. package/dist/streamStateView_Members.js +4 -91
  52. package/dist/streamStateView_Members.js.map +1 -1
  53. package/dist/streamStateView_User.d.ts.map +1 -1
  54. package/dist/streamStateView_User.js +1 -0
  55. package/dist/streamStateView_User.js.map +1 -1
  56. package/dist/streamStateView_UserInbox.d.ts.map +1 -1
  57. package/dist/streamStateView_UserInbox.js +1 -0
  58. package/dist/streamStateView_UserInbox.js.map +1 -1
  59. package/dist/streamStateView_UserMetadata.d.ts.map +1 -1
  60. package/dist/streamStateView_UserMetadata.js +1 -0
  61. package/dist/streamStateView_UserMetadata.js.map +1 -1
  62. package/dist/streamStateView_UserSettings.d.ts.map +1 -1
  63. package/dist/streamStateView_UserSettings.js +9 -1
  64. package/dist/streamStateView_UserSettings.js.map +1 -1
  65. package/dist/streamUtils.d.ts.map +1 -1
  66. package/dist/streamUtils.js +0 -8
  67. package/dist/streamUtils.js.map +1 -1
  68. package/dist/sync/SyncedStreamsControllerLite.d.ts.map +1 -1
  69. package/dist/sync/SyncedStreamsControllerLite.js +7 -11
  70. package/dist/sync/SyncedStreamsControllerLite.js.map +1 -1
  71. package/dist/sync-agent/db.d.ts +1 -6
  72. package/dist/sync-agent/db.d.ts.map +1 -1
  73. package/dist/sync-agent/db.js +0 -10
  74. package/dist/sync-agent/db.js.map +1 -1
  75. package/dist/sync-agent/gdms/gdms.d.ts +5 -6
  76. package/dist/sync-agent/gdms/gdms.d.ts.map +1 -1
  77. package/dist/sync-agent/gdms/gdms.js +12 -27
  78. package/dist/sync-agent/gdms/gdms.js.map +1 -1
  79. package/dist/sync-agent/gdms/models/gdm.d.ts +10 -8
  80. package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
  81. package/dist/sync-agent/gdms/models/gdm.js +29 -34
  82. package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
  83. package/dist/sync-agent/members/members.d.ts +6 -18
  84. package/dist/sync-agent/members/members.d.ts.map +1 -1
  85. package/dist/sync-agent/members/members.js +25 -124
  86. package/dist/sync-agent/members/members.js.map +1 -1
  87. package/dist/sync-agent/members/models/member.d.ts +3 -45
  88. package/dist/sync-agent/members/models/member.d.ts.map +1 -1
  89. package/dist/sync-agent/members/models/member.js +15 -114
  90. package/dist/sync-agent/members/models/member.js.map +1 -1
  91. package/dist/sync-agent/members/models/myself.d.ts +1 -11
  92. package/dist/sync-agent/members/models/myself.d.ts.map +1 -1
  93. package/dist/sync-agent/members/models/myself.js +1 -84
  94. package/dist/sync-agent/members/models/myself.js.map +1 -1
  95. package/dist/sync-agent/river-connection/riverConnection.d.ts +6 -17
  96. package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
  97. package/dist/sync-agent/river-connection/riverConnection.js +30 -37
  98. package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
  99. package/dist/sync-agent/syncAgent.d.ts +11 -22
  100. package/dist/sync-agent/syncAgent.d.ts.map +1 -1
  101. package/dist/sync-agent/syncAgent.js +3 -20
  102. package/dist/sync-agent/syncAgent.js.map +1 -1
  103. package/dist/sync-agent/user/models/userInbox.d.ts +4 -17
  104. package/dist/sync-agent/user/models/userInbox.d.ts.map +1 -1
  105. package/dist/sync-agent/user/models/userInbox.js +14 -61
  106. package/dist/sync-agent/user/models/userInbox.js.map +1 -1
  107. package/dist/sync-agent/user/models/userMemberships.d.ts +6 -22
  108. package/dist/sync-agent/user/models/userMemberships.d.ts.map +1 -1
  109. package/dist/sync-agent/user/models/userMemberships.js +16 -68
  110. package/dist/sync-agent/user/models/userMemberships.js.map +1 -1
  111. package/dist/sync-agent/user/models/userMetadata.d.ts +4 -17
  112. package/dist/sync-agent/user/models/userMetadata.d.ts.map +1 -1
  113. package/dist/sync-agent/user/models/userMetadata.js +14 -61
  114. package/dist/sync-agent/user/models/userMetadata.js.map +1 -1
  115. package/dist/sync-agent/user/models/userSettings.d.ts +5 -8
  116. package/dist/sync-agent/user/models/userSettings.d.ts.map +1 -1
  117. package/dist/sync-agent/user/models/userSettings.js +15 -42
  118. package/dist/sync-agent/user/models/userSettings.js.map +1 -1
  119. package/dist/sync-agent/user/user.d.ts +2 -6
  120. package/dist/sync-agent/user/user.d.ts.map +1 -1
  121. package/dist/sync-agent/user/user.js +9 -20
  122. package/dist/sync-agent/user/user.js.map +1 -1
  123. package/dist/syncedStreamsExtension.d.ts.map +1 -1
  124. package/dist/syncedStreamsExtension.js +10 -22
  125. package/dist/syncedStreamsExtension.js.map +1 -1
  126. package/dist/syncedStreamsLoop.d.ts.map +1 -1
  127. package/dist/syncedStreamsLoop.js +4 -18
  128. package/dist/syncedStreamsLoop.js.map +1 -1
  129. package/dist/tests/bob_testUtils.d.ts.map +1 -1
  130. package/dist/tests/bob_testUtils.js +35 -69
  131. package/dist/tests/bob_testUtils.js.map +1 -1
  132. package/dist/tests/multi_ne/aliceAndFriends10for10.test.js +1 -1
  133. package/dist/tests/multi_ne/aliceAndFriends10for10.test.js.map +1 -1
  134. package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js +1 -1
  135. package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js.map +1 -1
  136. package/dist/tests/multi_ne/bobFlushes.test.js.map +1 -1
  137. package/dist/tests/multi_ne/channels.test.js +6 -9
  138. package/dist/tests/multi_ne/channels.test.js.map +1 -1
  139. package/dist/tests/multi_ne/client.test.js +24 -98
  140. package/dist/tests/multi_ne/client.test.js.map +1 -1
  141. package/dist/tests/multi_ne/clientCrypto.test.js +3 -3
  142. package/dist/tests/multi_ne/clientCrypto.test.js.map +1 -1
  143. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +12 -47
  144. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
  145. package/dist/tests/multi_ne/ephemeralEvents.test.js +1 -1
  146. package/dist/tests/multi_ne/ephemeralEvents.test.js.map +1 -1
  147. package/dist/tests/multi_ne/id.test.js +6 -20
  148. package/dist/tests/multi_ne/id.test.js.map +1 -1
  149. package/dist/tests/multi_ne/media.test.js +20 -61
  150. package/dist/tests/multi_ne/media.test.js.map +1 -1
  151. package/dist/tests/multi_ne/memberMetadata.test.d.ts +0 -3
  152. package/dist/tests/multi_ne/memberMetadata.test.d.ts.map +1 -1
  153. package/dist/tests/multi_ne/memberMetadata.test.js +14 -582
  154. package/dist/tests/multi_ne/memberMetadata.test.js.map +1 -1
  155. package/dist/tests/multi_ne/outboundGroupSession.test.js +15 -13
  156. package/dist/tests/multi_ne/outboundGroupSession.test.js.map +1 -1
  157. package/dist/tests/multi_ne/restart.test.js +11 -34
  158. package/dist/tests/multi_ne/restart.test.js.map +1 -1
  159. package/dist/tests/multi_ne/sign.test.js +2 -2
  160. package/dist/tests/multi_ne/sign.test.js.map +1 -1
  161. package/dist/tests/multi_ne/streamMembershipHardening.test.js +0 -3
  162. package/dist/tests/multi_ne/streamMembershipHardening.test.js.map +1 -1
  163. package/dist/tests/multi_ne/streamRpcClient.test.js +58 -349
  164. package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
  165. package/dist/tests/multi_ne/streamRpcClientSync.test.js +63 -124
  166. package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
  167. package/dist/tests/multi_ne/streamStateView_User.test.js +23 -20
  168. package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
  169. package/dist/tests/{multi/spaceDapp.test.d.ts → multi_ne/sync-agent/gdms.test.d.ts} +1 -1
  170. package/dist/tests/multi_ne/sync-agent/gdms.test.d.ts.map +1 -0
  171. package/dist/tests/multi_ne/sync-agent/gdms.test.js +34 -0
  172. package/dist/tests/multi_ne/sync-agent/gdms.test.js.map +1 -0
  173. package/dist/tests/{multi/legacySpace.test.d.ts → multi_ne/sync-agent/member.test.d.ts} +1 -1
  174. package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -0
  175. package/dist/tests/multi_ne/sync-agent/member.test.js +31 -0
  176. package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -0
  177. package/dist/tests/{multi/disableSpace.test.d.ts → multi_ne/sync-agent/members.test.d.ts} +1 -1
  178. package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -0
  179. package/dist/tests/multi_ne/sync-agent/members.test.js +40 -0
  180. package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -0
  181. package/dist/tests/multi_ne/sync-agent/riverConnection.test.d.ts +5 -0
  182. package/dist/tests/multi_ne/sync-agent/riverConnection.test.d.ts.map +1 -0
  183. package/dist/tests/multi_ne/sync-agent/riverConnection.test.js +39 -0
  184. package/dist/tests/multi_ne/sync-agent/riverConnection.test.js.map +1 -0
  185. package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +5 -0
  186. package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -0
  187. package/dist/tests/multi_ne/sync-agent/streams.test.js +27 -0
  188. package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -0
  189. package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +5 -0
  190. package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -0
  191. package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +66 -0
  192. package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -0
  193. package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +5 -0
  194. package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -0
  195. package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +117 -0
  196. package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -0
  197. package/dist/tests/multi_ne/sync-agent/timeline.test.d.ts +2 -0
  198. package/dist/tests/multi_ne/sync-agent/timeline.test.d.ts.map +1 -0
  199. package/dist/tests/multi_ne/sync-agent/timeline.test.js +155 -0
  200. package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -0
  201. package/dist/tests/multi_ne/sync-agent/user.test.d.ts +5 -0
  202. package/dist/tests/multi_ne/sync-agent/user.test.d.ts.map +1 -0
  203. package/dist/tests/multi_ne/sync-agent/user.test.js +53 -0
  204. package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -0
  205. package/dist/tests/multi_ne/syncWithBlocks.test.d.ts +3 -0
  206. package/dist/tests/multi_ne/syncWithBlocks.test.d.ts.map +1 -1
  207. package/dist/tests/multi_ne/syncWithBlocks.test.js +47 -77
  208. package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
  209. package/dist/tests/multi_ne/syncedStream.test.js +1 -1
  210. package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
  211. package/dist/tests/multi_ne/syncedStreams.test.js +1 -1
  212. package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
  213. package/dist/tests/multi_ne/userInboxMessage.test.js +4 -4
  214. package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
  215. package/dist/tests/multi_ne/userSettings.test.js +3 -16
  216. package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
  217. package/dist/tests/multi_ne/workflows.test.js +22 -50
  218. package/dist/tests/multi_ne/workflows.test.js.map +1 -1
  219. package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
  220. package/dist/tests/testDriver_testUtils.js +6 -22
  221. package/dist/tests/testDriver_testUtils.js.map +1 -1
  222. package/dist/tests/testUtils.d.ts +3 -104
  223. package/dist/tests/testUtils.d.ts.map +1 -1
  224. package/dist/tests/testUtils.js +6 -625
  225. package/dist/tests/testUtils.js.map +1 -1
  226. package/dist/tests/unit/snapshotMigration0001.test.js +4 -20
  227. package/dist/tests/unit/snapshotMigration0001.test.js.map +1 -1
  228. package/dist/tests/unit/snapshotMigration0004.test.js +5 -43
  229. package/dist/tests/unit/snapshotMigration0004.test.js.map +1 -1
  230. package/dist/tests/unit/snapshotMigration0005.test.js +5 -43
  231. package/dist/tests/unit/snapshotMigration0005.test.js.map +1 -1
  232. package/dist/tests/unit/streamUtils.test.js +21 -22
  233. package/dist/tests/unit/streamUtils.test.js.map +1 -1
  234. package/dist/tests/unit/tags.test.js +5 -7
  235. package/dist/tests/unit/tags.test.js.map +1 -1
  236. package/dist/types.d.ts +1 -21
  237. package/dist/types.d.ts.map +1 -1
  238. package/dist/types.js +2 -231
  239. package/dist/types.js.map +1 -1
  240. package/dist/views/models/timelineEvent.d.ts.map +1 -1
  241. package/dist/views/models/timelineEvent.js +132 -157
  242. package/dist/views/models/timelineEvent.js.map +1 -1
  243. package/dist/views/models/timelineTypes.d.ts +51 -30
  244. package/dist/views/models/timelineTypes.d.ts.map +1 -1
  245. package/dist/views/models/timelineTypes.js +3 -4
  246. package/dist/views/models/timelineTypes.js.map +1 -1
  247. package/dist/views/streams/timelines.d.ts +1 -1
  248. package/dist/views/streams/timelines.d.ts.map +1 -1
  249. package/dist/views/streams/timelines.js +3 -3
  250. package/dist/views/streams/timelines.js.map +1 -1
  251. package/dist/views/streams/userInboxStreams.d.ts +3 -0
  252. package/dist/views/streams/userInboxStreams.d.ts.map +1 -1
  253. package/dist/views/streams/userInboxStreams.js +15 -4
  254. package/dist/views/streams/userInboxStreams.js.map +1 -1
  255. package/dist/views/streams/userMetadataStreams.d.ts +3 -0
  256. package/dist/views/streams/userMetadataStreams.d.ts.map +1 -1
  257. package/dist/views/streams/userMetadataStreams.js +15 -4
  258. package/dist/views/streams/userMetadataStreams.js.map +1 -1
  259. package/dist/views/streams/userSettingsStreams.d.ts +3 -0
  260. package/dist/views/streams/userSettingsStreams.d.ts.map +1 -1
  261. package/dist/views/streams/userSettingsStreams.js +17 -6
  262. package/dist/views/streams/userSettingsStreams.js.map +1 -1
  263. package/dist/views/streams/userStreamsView.d.ts +3 -0
  264. package/dist/views/streams/userStreamsView.d.ts.map +1 -1
  265. package/dist/views/streams/userStreamsView.js +21 -10
  266. package/dist/views/streams/userStreamsView.js.map +1 -1
  267. package/dist/views/streamsView.d.ts +0 -6
  268. package/dist/views/streamsView.d.ts.map +1 -1
  269. package/dist/views/streamsView.js +0 -11
  270. package/dist/views/streamsView.js.map +1 -1
  271. package/dist/views/transforms/dmsAndGdmsTransform.d.ts +0 -2
  272. package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -1
  273. package/dist/views/transforms/dmsAndGdmsTransform.js +1 -26
  274. package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -1
  275. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts +1 -2
  276. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts.map +1 -1
  277. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js +2 -5
  278. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js.map +1 -1
  279. package/dist/views/transforms/spaceIdsTransform.d.ts +1 -1
  280. package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -1
  281. package/dist/views/transforms/spaceIdsTransform.js +3 -10
  282. package/dist/views/transforms/spaceIdsTransform.js.map +1 -1
  283. package/dist/views/transforms/spaceMentionsTransform.d.ts.map +1 -1
  284. package/dist/views/transforms/spaceMentionsTransform.js +13 -14
  285. package/dist/views/transforms/spaceMentionsTransform.js.map +1 -1
  286. package/dist/views/transforms/spaceUnreadsTransform.d.ts.map +1 -1
  287. package/dist/views/transforms/spaceUnreadsTransform.js +21 -22
  288. package/dist/views/transforms/spaceUnreadsTransform.js.map +1 -1
  289. package/dist/views/transforms/unreadMarkersTransform.js +2 -4
  290. package/dist/views/transforms/unreadMarkersTransform.js.map +1 -1
  291. package/package.json +10 -9
  292. package/dist/memberMetadata_DisplayNames.d.ts +0 -26
  293. package/dist/memberMetadata_DisplayNames.d.ts.map +0 -1
  294. package/dist/memberMetadata_DisplayNames.js +0 -95
  295. package/dist/memberMetadata_DisplayNames.js.map +0 -1
  296. package/dist/memberMetadata_EnsAddresses.d.ts +0 -25
  297. package/dist/memberMetadata_EnsAddresses.d.ts.map +0 -1
  298. package/dist/memberMetadata_EnsAddresses.js +0 -86
  299. package/dist/memberMetadata_EnsAddresses.js.map +0 -1
  300. package/dist/memberMetadata_Nft.d.ts +0 -31
  301. package/dist/memberMetadata_Nft.d.ts.map +0 -1
  302. package/dist/memberMetadata_Nft.js +0 -95
  303. package/dist/memberMetadata_Nft.js.map +0 -1
  304. package/dist/memberMetadata_Usernames.d.ts +0 -35
  305. package/dist/memberMetadata_Usernames.d.ts.map +0 -1
  306. package/dist/memberMetadata_Usernames.js +0 -162
  307. package/dist/memberMetadata_Usernames.js.map +0 -1
  308. package/dist/streamStateView_Channel.d.ts +0 -16
  309. package/dist/streamStateView_Channel.d.ts.map +0 -1
  310. package/dist/streamStateView_Channel.js +0 -76
  311. package/dist/streamStateView_Channel.js.map +0 -1
  312. package/dist/streamStateView_DMChannel.d.ts +0 -25
  313. package/dist/streamStateView_DMChannel.d.ts.map +0 -1
  314. package/dist/streamStateView_DMChannel.js +0 -114
  315. package/dist/streamStateView_DMChannel.js.map +0 -1
  316. package/dist/streamStateView_Space.d.ts +0 -31
  317. package/dist/streamStateView_Space.d.ts.map +0 -1
  318. package/dist/streamStateView_Space.js +0 -193
  319. package/dist/streamStateView_Space.js.map +0 -1
  320. package/dist/sync-agent/dms/dms.d.ts +0 -24
  321. package/dist/sync-agent/dms/dms.d.ts.map +0 -1
  322. package/dist/sync-agent/dms/dms.js +0 -60
  323. package/dist/sync-agent/dms/dms.js.map +0 -1
  324. package/dist/sync-agent/dms/models/dm.d.ts +0 -74
  325. package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
  326. package/dist/sync-agent/dms/models/dm.js +0 -149
  327. package/dist/sync-agent/dms/models/dm.js.map +0 -1
  328. package/dist/sync-agent/river-connection/models/transactionalClient.d.ts +0 -11
  329. package/dist/sync-agent/river-connection/models/transactionalClient.d.ts.map +0 -1
  330. package/dist/sync-agent/river-connection/models/transactionalClient.js +0 -14
  331. package/dist/sync-agent/river-connection/models/transactionalClient.js.map +0 -1
  332. package/dist/sync-agent/spaces/models/channel.d.ts +0 -121
  333. package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
  334. package/dist/sync-agent/spaces/models/channel.js +0 -182
  335. package/dist/sync-agent/spaces/models/channel.js.map +0 -1
  336. package/dist/sync-agent/spaces/models/space.d.ts +0 -57
  337. package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
  338. package/dist/sync-agent/spaces/models/space.js +0 -125
  339. package/dist/sync-agent/spaces/models/space.js.map +0 -1
  340. package/dist/sync-agent/spaces/spaces.d.ts +0 -28
  341. package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
  342. package/dist/sync-agent/spaces/spaces.js +0 -71
  343. package/dist/sync-agent/spaces/spaces.js.map +0 -1
  344. package/dist/tests/multi/channelSpaceSettings.test.d.ts +0 -5
  345. package/dist/tests/multi/channelSpaceSettings.test.d.ts.map +0 -1
  346. package/dist/tests/multi/channelSpaceSettings.test.js +0 -204
  347. package/dist/tests/multi/channelSpaceSettings.test.js.map +0 -1
  348. package/dist/tests/multi/disableChannel.test.d.ts +0 -5
  349. package/dist/tests/multi/disableChannel.test.d.ts.map +0 -1
  350. package/dist/tests/multi/disableChannel.test.js +0 -30
  351. package/dist/tests/multi/disableChannel.test.js.map +0 -1
  352. package/dist/tests/multi/disableSpace.test.d.ts.map +0 -1
  353. package/dist/tests/multi/disableSpace.test.js +0 -37
  354. package/dist/tests/multi/disableSpace.test.js.map +0 -1
  355. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts +0 -5
  356. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts.map +0 -1
  357. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js +0 -129
  358. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js.map +0 -1
  359. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts +0 -5
  360. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts.map +0 -1
  361. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js +0 -44
  362. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js.map +0 -1
  363. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts +0 -5
  364. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts.map +0 -1
  365. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js +0 -125
  366. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js.map +0 -1
  367. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts +0 -5
  368. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts.map +0 -1
  369. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js +0 -72
  370. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js.map +0 -1
  371. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts +0 -5
  372. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts.map +0 -1
  373. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +0 -57
  374. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +0 -1
  375. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts +0 -5
  376. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts.map +0 -1
  377. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js +0 -86
  378. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js.map +0 -1
  379. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts +0 -5
  380. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts.map +0 -1
  381. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js +0 -69
  382. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js.map +0 -1
  383. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts +0 -5
  384. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts.map +0 -1
  385. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js +0 -145
  386. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js.map +0 -1
  387. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts +0 -5
  388. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts.map +0 -1
  389. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js +0 -53
  390. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js.map +0 -1
  391. package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts +0 -5
  392. package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts.map +0 -1
  393. package/dist/tests/multi/entitlements/membershipRenewals.test.js +0 -150
  394. package/dist/tests/multi/entitlements/membershipRenewals.test.js.map +0 -1
  395. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts +0 -5
  396. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts.map +0 -1
  397. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js +0 -131
  398. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js.map +0 -1
  399. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts +0 -5
  400. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts.map +0 -1
  401. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js +0 -109
  402. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js.map +0 -1
  403. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts +0 -5
  404. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts.map +0 -1
  405. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js +0 -103
  406. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js.map +0 -1
  407. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts +0 -5
  408. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts.map +0 -1
  409. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js +0 -84
  410. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js.map +0 -1
  411. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts +0 -5
  412. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts.map +0 -1
  413. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js +0 -168
  414. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js.map +0 -1
  415. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts +0 -5
  416. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts.map +0 -1
  417. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js +0 -45
  418. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js.map +0 -1
  419. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts +0 -5
  420. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts.map +0 -1
  421. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js +0 -79
  422. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js.map +0 -1
  423. package/dist/tests/multi/legacySpace.test.d.ts.map +0 -1
  424. package/dist/tests/multi/legacySpace.test.js +0 -48
  425. package/dist/tests/multi/legacySpace.test.js.map +0 -1
  426. package/dist/tests/multi/mediaWithEntitlements.test.d.ts +0 -5
  427. package/dist/tests/multi/mediaWithEntitlements.test.d.ts.map +0 -1
  428. package/dist/tests/multi/mediaWithEntitlements.test.js +0 -152
  429. package/dist/tests/multi/mediaWithEntitlements.test.js.map +0 -1
  430. package/dist/tests/multi/membershipManagement.test.d.ts +0 -5
  431. package/dist/tests/multi/membershipManagement.test.d.ts.map +0 -1
  432. package/dist/tests/multi/membershipManagement.test.js +0 -76
  433. package/dist/tests/multi/membershipManagement.test.js.map +0 -1
  434. package/dist/tests/multi/riverAirdropDapp.test.d.ts +0 -5
  435. package/dist/tests/multi/riverAirdropDapp.test.d.ts.map +0 -1
  436. package/dist/tests/multi/riverAirdropDapp.test.js +0 -43
  437. package/dist/tests/multi/riverAirdropDapp.test.js.map +0 -1
  438. package/dist/tests/multi/spaceDapp.test.d.ts.map +0 -1
  439. package/dist/tests/multi/spaceDapp.test.js +0 -61
  440. package/dist/tests/multi/spaceDapp.test.js.map +0 -1
  441. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts +0 -2
  442. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts.map +0 -1
  443. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js +0 -63
  444. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js.map +0 -1
  445. package/dist/tests/multi/withEntitlements.test.d.ts +0 -5
  446. package/dist/tests/multi/withEntitlements.test.d.ts.map +0 -1
  447. package/dist/tests/multi/withEntitlements.test.js +0 -125
  448. package/dist/tests/multi/withEntitlements.test.js.map +0 -1
  449. package/dist/tests/multi_ne/dms.test.d.ts +0 -5
  450. package/dist/tests/multi_ne/dms.test.d.ts.map +0 -1
  451. package/dist/tests/multi_ne/dms.test.js +0 -131
  452. package/dist/tests/multi_ne/dms.test.js.map +0 -1
  453. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts +0 -5
  454. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts.map +0 -1
  455. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js +0 -54
  456. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js.map +0 -1
  457. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts +0 -5
  458. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts.map +0 -1
  459. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js +0 -37
  460. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js.map +0 -1
  461. package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts +0 -5
  462. package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts.map +0 -1
  463. package/dist/tests/multi_ne/memberMetadata_Nft.test.js +0 -49
  464. package/dist/tests/multi_ne/memberMetadata_Nft.test.js.map +0 -1
  465. package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts +0 -5
  466. package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts.map +0 -1
  467. package/dist/tests/multi_ne/memberMetadata_Usernames.test.js +0 -126
  468. package/dist/tests/multi_ne/memberMetadata_Usernames.test.js.map +0 -1
  469. package/dist/tests/multi_ne/space.test.d.ts +0 -5
  470. package/dist/tests/multi_ne/space.test.d.ts.map +0 -1
  471. package/dist/tests/multi_ne/space.test.js +0 -284
  472. package/dist/tests/multi_ne/space.test.js.map +0 -1
  473. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts +0 -6
  474. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts.map +0 -1
  475. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js +0 -78
  476. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js.map +0 -1
  477. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts +0 -6
  478. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts.map +0 -1
  479. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js +0 -89
  480. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js.map +0 -1
  481. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts +0 -6
  482. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts.map +0 -1
  483. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js +0 -88
  484. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js.map +0 -1
  485. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts +0 -6
  486. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts.map +0 -1
  487. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js +0 -105
  488. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js.map +0 -1
  489. package/dist/tests/multi_v2/updateRole.test.d.ts +0 -5
  490. package/dist/tests/multi_v2/updateRole.test.d.ts.map +0 -1
  491. package/dist/tests/multi_v2/updateRole.test.js +0 -25
  492. package/dist/tests/multi_v2/updateRole.test.js.map +0 -1
  493. package/dist/tests/unit/snapshotMigration0002.test.d.ts +0 -2
  494. package/dist/tests/unit/snapshotMigration0002.test.d.ts.map +0 -1
  495. package/dist/tests/unit/snapshotMigration0002.test.js +0 -31
  496. package/dist/tests/unit/snapshotMigration0002.test.js.map +0 -1
  497. package/dist/views/streams/channelStreams.d.ts +0 -8
  498. package/dist/views/streams/channelStreams.d.ts.map +0 -1
  499. package/dist/views/streams/channelStreams.js +0 -9
  500. package/dist/views/streams/channelStreams.js.map +0 -1
  501. package/dist/views/streams/dmStreams.d.ts +0 -13
  502. package/dist/views/streams/dmStreams.d.ts.map +0 -1
  503. package/dist/views/streams/dmStreams.js +0 -33
  504. package/dist/views/streams/dmStreams.js.map +0 -1
  505. package/dist/views/streams/spaceStreams.d.ts +0 -17
  506. package/dist/views/streams/spaceStreams.d.ts.map +0 -1
  507. package/dist/views/streams/spaceStreams.js +0 -52
  508. package/dist/views/streams/spaceStreams.js.map +0 -1
@@ -1,622 +1,54 @@
1
- /**
2
- * @group main
3
- */
4
- import { MemberPayload_NftSchema } from '@towns-labs/proto';
5
- import { makeUniqueChannelStreamId, userIdFromAddress } from '../../id';
6
- import { makeDonePromise, makeRandomUserAddress, makeTestClient, makeUniqueSpaceStreamId, waitFor, } from '../testUtils';
7
- import { make_MemberPayload_Nft } from '../../types';
8
- import { bin_fromString, bin_toString } from '@towns-labs/utils';
9
- import { create } from '@bufbuild/protobuf';
1
+ import { makeDonePromise, makeTestClient } from '../testUtils';
10
2
  describe('memberMetadataTests', () => {
11
3
  let bobsClient;
12
4
  let alicesClient;
13
- let evesClient;
14
5
  beforeEach(async () => {
15
6
  bobsClient = await makeTestClient();
16
7
  alicesClient = await makeTestClient();
17
- evesClient = await makeTestClient();
8
+ await Promise.all([bobsClient.initializeUser(), alicesClient.initializeUser()]);
18
9
  });
19
10
  afterEach(async () => {
20
11
  await bobsClient.stop();
21
12
  await alicesClient.stop();
22
- await evesClient.stop();
23
- });
24
- test('clientCanSetDisplayNamesInSpace', async () => {
25
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
26
- bobsClient.startSync();
27
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
28
- alicesClient.startSync();
29
- const streamId = makeUniqueSpaceStreamId();
30
- await bobsClient.createSpace(streamId);
31
- await bobsClient.waitForStream(streamId);
32
- await bobsClient.inviteUser(streamId, alicesClient.userId);
33
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
34
- const bobPromise = makeDonePromise();
35
- bobsClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
36
- expect(updatedStreamId).toBe(streamId);
37
- expect(userId).toBe(bobsClient.userId);
38
- bobPromise.done();
39
- });
40
- const alicePromise = makeDonePromise();
41
- alicesClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
42
- expect(updatedStreamId).toBe(streamId);
43
- expect(userId).toBe(bobsClient.userId);
44
- alicePromise.done();
45
- });
46
- await bobsClient.waitForStream(streamId);
47
- await alicesClient.waitForStream(streamId);
48
- await bobsClient.setDisplayName(streamId, 'bob');
49
- await bobPromise.expectToSucceed();
50
- await alicePromise.expectToSucceed();
51
- const expected = new Map([[bobsClient.userId, 'bob']]);
52
- for (const client of [bobsClient, alicesClient]) {
53
- const streamView = client.streams.get(streamId).view;
54
- expect(streamView.getMemberMetadata().displayNames.plaintextDisplayNames).toEqual(expected);
55
- }
56
13
  });
57
14
  test('clientDoesntHaveAppAddress', async () => {
58
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
59
- bobsClient.startSync();
60
- const streamId = makeUniqueSpaceStreamId();
61
- await bobsClient.createSpace(streamId);
62
- await bobsClient.waitForStream(streamId);
63
- const streamView = bobsClient.streams.get(streamId).view;
64
- expect(streamView.getMemberMetadata().userInfo(bobsClient.userId).appAddress).toEqual(undefined);
65
- });
66
- test('clientCanSetDisplayNamesInDM', async () => {
67
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
68
- bobsClient.startSync();
69
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
70
- alicesClient.startSync();
71
- const { streamId } = await bobsClient.createDMChannel(alicesClient.userId);
72
- const stream = await bobsClient.waitForStream(streamId);
73
- await alicesClient.waitForStream(streamId);
74
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
75
- await waitFor(() => {
76
- expect(stream.view.getMembers().joinedUsers).toEqual(new Set([bobsClient.userId, alicesClient.userId]));
77
- });
78
- const bobDisplayName = 'bob display name';
79
- await expect(bobsClient.setDisplayName(streamId, bobDisplayName)).resolves.not.toThrow();
80
- const expected = new Map([[bobsClient.userId, bobDisplayName]]);
81
- const bobPromise = makeDonePromise();
82
- bobsClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
83
- expect(updatedStreamId).toBe(streamId);
84
- expect(userId).toBe(bobsClient.userId);
85
- bobPromise.done();
86
- });
87
- const alicePromise = makeDonePromise();
88
- alicesClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
89
- expect(updatedStreamId).toBe(streamId);
90
- expect(userId).toBe(bobsClient.userId);
91
- alicePromise.done();
92
- });
93
- await bobPromise.expectToSucceed();
94
- await alicePromise.expectToSucceed();
95
- for (const client of [bobsClient, alicesClient]) {
96
- const streamView = client.streams.get(streamId)?.view;
97
- expect(streamView).toBeDefined();
98
- const clientDisplayNames = streamView.getMemberMetadata().displayNames.plaintextDisplayNames;
99
- expect(clientDisplayNames).toEqual(expected);
100
- }
101
- });
102
- test('clientCanSetDisplayNamesInGDM', async () => {
103
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
104
- bobsClient.startSync();
105
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
106
- alicesClient.startSync();
107
- await expect(evesClient.initializeUser()).resolves.not.toThrow();
108
- evesClient.startSync();
109
15
  const { streamId } = await bobsClient.createGDMChannel([
16
+ { userId: bobsClient.userId },
110
17
  { userId: alicesClient.userId },
111
- { userId: evesClient.userId },
112
18
  ]);
113
- const stream = await bobsClient.waitForStream(streamId);
114
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
115
- await expect(evesClient.joinStream(streamId)).resolves.not.toThrow();
116
- await waitFor(() => {
117
- expect(stream.view.getMembers().joinedUsers).toEqual(new Set([bobsClient.userId, alicesClient.userId, evesClient.userId]));
118
- });
119
- const bobDisplayName = 'bob display name';
120
- await expect(bobsClient.setDisplayName(streamId, bobDisplayName)).resolves.not.toThrow();
121
- const expected = new Map([[bobsClient.userId, bobDisplayName]]);
122
- const bobPromise = makeDonePromise();
123
- bobsClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
124
- expect(updatedStreamId).toBe(streamId);
125
- expect(userId).toBe(bobsClient.userId);
126
- bobPromise.done();
127
- });
128
- const alicePromise = makeDonePromise();
129
- alicesClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
130
- expect(updatedStreamId).toBe(streamId);
131
- expect(userId).toBe(bobsClient.userId);
132
- alicePromise.done();
133
- });
134
- const evePromise = makeDonePromise();
135
- evesClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
136
- expect(updatedStreamId).toBe(streamId);
137
- expect(userId).toBe(bobsClient.userId);
138
- evePromise.done();
139
- });
140
- await bobPromise.expectToSucceed();
141
- await alicePromise.expectToSucceed();
142
- await evePromise.expectToSucceed();
143
- for (const client of [bobsClient, alicesClient, evesClient]) {
144
- const streamView = client.streams.get(streamId)?.view;
145
- expect(streamView).toBeDefined();
146
- const clientDisplayNames = streamView.getMemberMetadata().displayNames.plaintextDisplayNames;
147
- expect(clientDisplayNames).toEqual(expected);
148
- }
149
- });
150
- test('clientsPickUpDisplayNamesAfterJoin', async () => {
151
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
152
- bobsClient.startSync();
153
- const streamId = makeUniqueSpaceStreamId();
154
- await bobsClient.createSpace(streamId);
155
19
  await bobsClient.waitForStream(streamId);
156
- await bobsClient.setDisplayName(streamId, 'bob');
157
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
158
- alicesClient.startSync();
159
- await bobsClient.inviteUser(streamId, alicesClient.userId);
160
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
161
- const alicePromise = makeDonePromise();
162
- alicesClient.on('streamDisplayNameUpdated', (updatedStreamId, userId) => {
163
- expect(updatedStreamId).toBe(streamId);
164
- expect(userId).toBe(bobsClient.userId);
165
- alicePromise.done();
166
- });
167
- await alicePromise.expectToSucceed();
168
- const expected = new Map([[bobsClient.userId, 'bob']]);
169
- const alicesClientDisplayNames = alicesClient.streams.get(streamId)?.view.membershipContent.memberMetadata.displayNames
170
- .plaintextDisplayNames;
171
- expect(alicesClientDisplayNames).toEqual(expected);
172
- });
173
- test('clientCanSetUsernamesInSpaces', async () => {
174
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
175
- bobsClient.startSync();
176
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
177
- alicesClient.startSync();
178
- const streamId = makeUniqueSpaceStreamId();
179
- await bobsClient.createSpace(streamId);
180
- await bobsClient.waitForStream(streamId);
181
- await bobsClient.inviteUser(streamId, alicesClient.userId);
182
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
183
- const startTime = Date.now();
184
- let usernameSetTime = null;
185
- const bobPromise = makeDonePromise();
186
- bobsClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
187
- expect(updatedStreamId).toBe(streamId);
188
- expect(userId).toBe(bobsClient.userId);
189
- usernameSetTime = Date.now();
190
- bobPromise.done();
191
- });
192
- const alicePromise = makeDonePromise();
193
- alicesClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
194
- expect(updatedStreamId).toBe(streamId);
195
- expect(userId).toBe(bobsClient.userId);
196
- alicePromise.done();
197
- });
198
- const setUsernamePromise = bobsClient.setUsername(streamId, 'bob-username');
199
- const expected = new Map([[bobsClient.userId, 'bob-username']]);
200
- // expect username to get updated immediately
201
- expect(bobsClient.streams.get(streamId).view.getMemberMetadata().usernames.plaintextUsernames).toEqual(expected);
202
- expect(bobsClient.streams
203
- .get(streamId)
204
- .view.getMemberMetadata()
205
- .usernames.info(bobsClient.userId).username).toEqual('bob-username');
206
- // wait for the username request to send
207
- await setUsernamePromise;
208
- // wait for the username to be updated
209
- await bobPromise.expectToSucceed();
210
- await alicePromise.expectToSucceed();
211
- // Verify that setting the username was not delayed — see `setUsername delays` for details
212
- const elapsed = usernameSetTime - startTime;
213
- expect(elapsed).toBeLessThanOrEqual(10000);
214
- for (const client of [bobsClient, alicesClient]) {
215
- const streamView = client.streams.get(streamId).view;
216
- expect(streamView.getMemberMetadata().usernames.plaintextUsernames).toEqual(expected);
217
- expect(streamView.getMemberMetadata().usernames.info(bobsClient.userId).username).toEqual('bob-username');
218
- }
219
- });
220
- test('clientCanSetUsernamesInDMs', async () => {
221
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
222
- bobsClient.startSync();
223
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
224
- alicesClient.startSync();
225
- const { streamId } = await bobsClient.createDMChannel(alicesClient.userId);
226
- const stream = await bobsClient.waitForStream(streamId);
227
- await alicesClient.waitForStream(streamId);
228
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
229
- await waitFor(() => {
230
- expect(stream.view.getMembers().joinedUsers).toEqual(new Set([bobsClient.userId, alicesClient.userId]));
231
- });
232
- const bobPromise = makeDonePromise();
233
- bobsClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
234
- expect(updatedStreamId).toBe(streamId);
235
- expect(userId).toBe(bobsClient.userId);
236
- bobPromise.done();
237
- });
238
- const alicePromise = makeDonePromise();
239
- alicesClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
240
- expect(updatedStreamId).toBe(streamId);
241
- expect(userId).toBe(bobsClient.userId);
242
- alicePromise.done();
243
- });
244
- await bobsClient.setUsername(streamId, 'bob-username');
245
- await bobPromise.expectToSucceed();
246
- await alicePromise.expectToSucceed();
247
- const expected = new Map([[bobsClient.userId, 'bob-username']]);
248
- for (const client of [bobsClient, alicesClient]) {
249
- const streamView = client.streams.get(streamId).view;
250
- expect(streamView.getMemberMetadata()?.usernames.plaintextUsernames).toEqual(expected);
251
- expect(streamView.getMemberMetadata()?.userInfo(client.userId).appAddress).toBeUndefined();
252
- }
253
- });
254
- test('clientCanSetUsernamesInGDMs', async () => {
255
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
256
- bobsClient.startSync();
257
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
258
- alicesClient.startSync();
259
- await expect(evesClient.initializeUser()).resolves.not.toThrow();
260
- evesClient.startSync();
261
- const { streamId } = await bobsClient.createGDMChannel([
262
- { userId: alicesClient.userId },
263
- { userId: evesClient.userId },
264
- ]);
265
- const stream = await bobsClient.waitForStream(streamId);
266
- await alicesClient.waitForStream(streamId);
267
- await evesClient.waitForStream(streamId);
268
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
269
- await expect(evesClient.joinStream(streamId)).resolves.not.toThrow();
270
- await waitFor(() => {
271
- expect(stream.view.getMembers().joinedUsers).toEqual(new Set([bobsClient.userId, alicesClient.userId, evesClient.userId]));
272
- });
273
- const bobPromise = makeDonePromise();
274
- bobsClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
275
- expect(updatedStreamId).toBe(streamId);
276
- expect(userId).toBe(bobsClient.userId);
277
- bobPromise.done();
278
- });
279
- const alicePromise = makeDonePromise();
280
- alicesClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
281
- expect(updatedStreamId).toBe(streamId);
282
- expect(userId).toBe(bobsClient.userId);
283
- alicePromise.done();
284
- });
285
- const evePromise = makeDonePromise();
286
- evesClient.on('streamUsernameUpdated', (updatedStreamId, userId) => {
287
- expect(updatedStreamId).toBe(streamId);
288
- expect(userId).toBe(bobsClient.userId);
289
- evePromise.done();
290
- });
291
- await bobsClient.setUsername(streamId, 'bob-username');
292
- await bobPromise.expectToSucceed();
293
- await alicePromise.expectToSucceed();
294
- await evePromise.expectToSucceed();
295
- const expected = new Map([[bobsClient.userId, 'bob-username']]);
296
- for (const client of [bobsClient, alicesClient, evesClient]) {
297
- const streamView = client.streams.get(streamId).view;
298
- expect(streamView.getMemberMetadata().usernames.plaintextUsernames).toEqual(expected);
299
- }
300
- });
301
- test('clientCanSetEnsAddressesInSpace', async () => {
302
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
303
- bobsClient.startSync();
304
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
305
- alicesClient.startSync();
306
- const streamId = makeUniqueSpaceStreamId();
307
- await bobsClient.createSpace(streamId);
308
- await bobsClient.waitForStream(streamId);
309
- await bobsClient.inviteUser(streamId, alicesClient.userId);
310
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
311
- await alicesClient.waitForStream(streamId);
312
- const bobPromise = makeDonePromise();
313
- bobsClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
314
- expect(updatedStreamId).toBe(streamId);
315
- expect(userId).toBe(bobsClient.userId);
316
- bobPromise.done();
317
- });
318
- const alicePromise = makeDonePromise();
319
- alicesClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
320
- expect(updatedStreamId).toBe(streamId);
321
- expect(userId).toBe(bobsClient.userId);
322
- alicePromise.done();
323
- });
324
- const ensAddress = makeRandomUserAddress();
325
- await bobsClient.setEnsAddress(streamId, ensAddress);
326
- await bobPromise.expectToSucceed();
327
- await alicePromise.expectToSucceed();
328
- const expected = new Map([
329
- [bobsClient.userId, userIdFromAddress(ensAddress)],
330
- ]);
331
- for (const client of [bobsClient, alicesClient]) {
332
- const streamView = client.streams.get(streamId).view;
333
- expect(streamView.getMemberMetadata().ensAddresses.confirmedEnsAddresses).toEqual(expected);
334
- }
335
- });
336
- test('clientCanSetEnsAddressesInDM', async () => {
337
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
338
- bobsClient.startSync();
339
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
340
- alicesClient.startSync();
341
- const { streamId } = await bobsClient.createDMChannel(alicesClient.userId);
342
- const stream = await bobsClient.waitForStream(streamId);
343
- await alicesClient.waitForStream(streamId);
344
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
345
- await waitFor(() => {
346
- expect(stream.view.getMembers().joinedUsers).toEqual(new Set([bobsClient.userId, alicesClient.userId]));
347
- });
348
- const bobPromise = makeDonePromise();
349
- bobsClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
350
- expect(updatedStreamId).toBe(streamId);
351
- expect(userId).toBe(bobsClient.userId);
352
- bobPromise.done();
353
- });
354
- const alicePromise = makeDonePromise();
355
- alicesClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
356
- expect(updatedStreamId).toBe(streamId);
357
- expect(userId).toBe(bobsClient.userId);
358
- alicePromise.done();
359
- });
360
- const ensAddress = makeRandomUserAddress();
361
- await expect(bobsClient.setEnsAddress(streamId, ensAddress)).resolves.not.toThrow();
362
- const expected = new Map([
363
- [bobsClient.userId, userIdFromAddress(ensAddress)],
364
- ]);
365
- await bobPromise.expectToSucceed();
366
- await alicePromise.expectToSucceed();
367
- for (const client of [bobsClient, alicesClient]) {
368
- const streamView = client.streams.get(streamId)?.view;
369
- expect(streamView).toBeDefined();
370
- const ensAddresses = streamView.getMemberMetadata().ensAddresses.confirmedEnsAddresses;
371
- expect(ensAddresses).toEqual(expected);
372
- }
20
+ const streamView = bobsClient.streams.get(streamId).view;
21
+ expect(streamView.getMemberMetadata().userInfo(bobsClient.userId).appAddress).toEqual(undefined);
373
22
  });
374
- test('clientCanSetEnsAddressesInGDM', async () => {
375
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
23
+ test('clientCanSetStreamEncryptionAlgorithm', async () => {
376
24
  bobsClient.startSync();
377
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
378
- alicesClient.startSync();
379
- await expect(evesClient.initializeUser()).resolves.not.toThrow();
380
- evesClient.startSync();
381
25
  const { streamId } = await bobsClient.createGDMChannel([
26
+ { userId: bobsClient.userId },
382
27
  { userId: alicesClient.userId },
383
- { userId: evesClient.userId },
384
- ]);
385
- const stream = await bobsClient.waitForStream(streamId);
386
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
387
- await expect(evesClient.joinStream(streamId)).resolves.not.toThrow();
388
- await waitFor(() => {
389
- expect(stream.view.getMembers().joinedUsers).toEqual(new Set([bobsClient.userId, alicesClient.userId, evesClient.userId]));
390
- });
391
- const bobPromise = makeDonePromise();
392
- bobsClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
393
- expect(updatedStreamId).toBe(streamId);
394
- expect(userId).toBe(bobsClient.userId);
395
- bobPromise.done();
396
- });
397
- const alicePromise = makeDonePromise();
398
- alicesClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
399
- expect(updatedStreamId).toBe(streamId);
400
- expect(userId).toBe(bobsClient.userId);
401
- alicePromise.done();
402
- });
403
- const evePromise = makeDonePromise();
404
- evesClient.on('streamEnsAddressUpdated', (updatedStreamId, userId) => {
405
- expect(updatedStreamId).toBe(streamId);
406
- expect(userId).toBe(bobsClient.userId);
407
- evePromise.done();
408
- });
409
- const ensAddress = makeRandomUserAddress();
410
- await expect(bobsClient.setEnsAddress(streamId, ensAddress)).resolves.not.toThrow();
411
- const expected = new Map([
412
- [bobsClient.userId, userIdFromAddress(ensAddress)],
413
28
  ]);
414
- await bobPromise.expectToSucceed();
415
- await alicePromise.expectToSucceed();
416
- await evePromise.expectToSucceed();
417
- for (const client of [bobsClient, alicesClient, evesClient]) {
418
- const streamView = client.streams.get(streamId)?.view;
419
- expect(streamView).toBeDefined();
420
- const ensAddresses = streamView.getMemberMetadata().ensAddresses.confirmedEnsAddresses;
421
- expect(ensAddresses).toEqual(expected);
422
- }
423
- });
424
- test('clientCannotSetInvalidEnsAddresses', async () => {
425
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
426
- bobsClient.startSync();
427
- const streamId = makeUniqueSpaceStreamId();
428
- await bobsClient.createSpace(streamId);
429
29
  await bobsClient.waitForStream(streamId);
430
- const ensAddress = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
431
- await expect(bobsClient.setEnsAddress(streamId, ensAddress)).rejects.toThrow(/Invalid ENS address/);
432
- });
433
- test('clientCanClearEnsAddress', async () => {
434
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
435
- bobsClient.startSync();
436
- const streamId = makeUniqueSpaceStreamId();
437
- await bobsClient.createSpace(streamId);
438
- await bobsClient.waitForStream(streamId);
439
- const ensAddress = new Uint8Array();
440
- await expect(bobsClient.setEnsAddress(streamId, ensAddress)).resolves.not.toThrow();
441
- });
442
- test('clientCanSetNftInSpace', async () => {
443
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
444
- bobsClient.startSync();
445
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
446
- alicesClient.startSync();
447
- const streamId = makeUniqueSpaceStreamId();
448
- await bobsClient.createSpace(streamId);
449
- await bobsClient.waitForStream(streamId);
450
- await bobsClient.inviteUser(streamId, alicesClient.userId);
451
- await expect(alicesClient.joinStream(streamId)).resolves.not.toThrow();
452
- await alicesClient.waitForStream(streamId);
453
- const bobPromise = makeDonePromise();
454
- bobsClient.on('streamNftUpdated', (updatedStreamId, userId) => {
455
- expect(updatedStreamId).toBe(streamId);
456
- expect(userId).toBe(bobsClient.userId);
457
- bobPromise.done();
458
- });
459
- const alicePromise = makeDonePromise();
460
- alicesClient.on('streamNftUpdated', (updatedStreamId, userId) => {
461
- expect(updatedStreamId).toBe(streamId);
462
- expect(userId).toBe(bobsClient.userId);
463
- alicePromise.done();
464
- });
465
- const nft = create(MemberPayload_NftSchema, {
466
- chainId: 1,
467
- tokenId: bin_fromString('11111111112222222233333333'),
468
- contractAddress: makeRandomUserAddress(),
469
- });
470
- await bobsClient.setNft(streamId, bin_toString(nft.tokenId), 1, userIdFromAddress(nft.contractAddress));
471
- await bobPromise.expectToSucceed();
472
- await alicePromise.expectToSucceed();
473
- const expected = new Map([[bobsClient.userId, nft]]);
474
- for (const client of [bobsClient, alicesClient]) {
475
- const streamView = client.streams.get(streamId).view;
476
- expect(streamView.getMemberMetadata().nfts.confirmedNfts).toEqual(expected);
477
- const bobInfo = streamView.getMemberMetadata().nfts.info(bobsClient.userId);
478
- expect(bobInfo?.tokenId).toEqual('11111111112222222233333333');
479
- }
480
- });
481
- test('clientCannotSetNftsInvalidContractAddress', async () => {
482
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
483
- bobsClient.startSync();
484
- const streamId = makeUniqueSpaceStreamId();
485
- await bobsClient.createSpace(streamId);
486
- await bobsClient.waitForStream(streamId);
487
- const nft = create(MemberPayload_NftSchema, {
488
- chainId: 1,
489
- tokenId: bin_fromString('123'),
490
- contractAddress: new Uint8Array([1, 2, 3]),
491
- });
492
- await expect(bobsClient.makeEventAndAddToStream(streamId, make_MemberPayload_Nft(nft))).rejects.toThrow('invalid contract address');
493
- });
494
- test('clientCannotSetNftsInvalidChainId', async () => {
495
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
496
- bobsClient.startSync();
497
- const streamId = makeUniqueSpaceStreamId();
498
- await bobsClient.createSpace(streamId);
499
- await bobsClient.waitForStream(streamId);
500
- const nft = create(MemberPayload_NftSchema, {
501
- chainId: 0,
502
- tokenId: bin_fromString('123'),
503
- contractAddress: makeRandomUserAddress(),
504
- });
505
- await expect(bobsClient.makeEventAndAddToStream(streamId, make_MemberPayload_Nft(nft))).rejects.toThrow('invalid chain id');
506
- });
507
- test('clientCannotSetNftsInvalidTokenId', async () => {
508
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
509
- bobsClient.startSync();
510
- const streamId = makeUniqueSpaceStreamId();
511
- await bobsClient.createSpace(streamId);
512
- await bobsClient.waitForStream(streamId);
513
- const nft = create(MemberPayload_NftSchema, {
514
- chainId: 1,
515
- tokenId: new Uint8Array(),
516
- contractAddress: makeRandomUserAddress(),
517
- });
518
- await expect(bobsClient.makeEventAndAddToStream(streamId, make_MemberPayload_Nft(nft))).rejects.toThrow('invalid token id');
519
- });
520
- test('clientCanClearNft', async () => {
521
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
522
- bobsClient.startSync();
523
- const streamId = makeUniqueSpaceStreamId();
524
- await bobsClient.createSpace(streamId);
525
- await bobsClient.waitForStream(streamId);
526
- await expect(bobsClient.setNft(streamId, '', 0, '')).resolves.not.toThrow();
527
- });
528
- test('clientCanSetStreamEncryptionAlgorithm', async () => {
529
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
530
- bobsClient.startSync();
531
- const spaceId = makeUniqueSpaceStreamId();
532
- const channelId = makeUniqueChannelStreamId(spaceId);
533
- await bobsClient.createSpace(spaceId);
534
- await bobsClient.waitForStream(spaceId);
535
- await bobsClient.createChannel(spaceId, 'secret channel', 'messaging like spies', channelId);
536
- await bobsClient.waitForStream(channelId);
537
30
  // initial value is "undefined"
538
- expect(bobsClient.stream(channelId)?.view.membershipContent.encryptionAlgorithm).toBe(undefined);
31
+ expect(bobsClient.stream(streamId)?.view.membershipContent.encryptionAlgorithm).toBe(undefined);
539
32
  const newAlgorithm = 'mega_v1';
540
33
  const truePromise = makeDonePromise();
541
34
  bobsClient.once('streamEncryptionAlgorithmUpdated', (updatedStreamId, value) => {
542
- expect(updatedStreamId).toBe(channelId);
35
+ expect(updatedStreamId).toBe(streamId);
543
36
  expect(value).toBe(newAlgorithm);
544
37
  truePromise.done();
545
38
  });
546
- await expect(bobsClient.setStreamEncryptionAlgorithm(channelId, newAlgorithm)).resolves.not.toThrow();
39
+ await expect(bobsClient.setStreamEncryptionAlgorithm(streamId, newAlgorithm)).resolves.not.toThrow();
547
40
  await truePromise.expectToSucceed();
548
- expect(bobsClient.stream(channelId)?.view.membershipContent.encryptionAlgorithm).toBe(newAlgorithm);
41
+ expect(bobsClient.stream(streamId)?.view.membershipContent.encryptionAlgorithm).toBe(newAlgorithm);
549
42
  // toggle back to to undefined
550
43
  const falsePromise = makeDonePromise();
551
44
  bobsClient.once('streamEncryptionAlgorithmUpdated', (updatedStreamId, value) => {
552
- expect(updatedStreamId).toBe(channelId);
45
+ expect(updatedStreamId).toBe(streamId);
553
46
  expect(value).toBe(undefined);
554
47
  falsePromise.done();
555
48
  });
556
- await expect(bobsClient.setStreamEncryptionAlgorithm(channelId, undefined)).resolves.not.toThrow();
49
+ await expect(bobsClient.setStreamEncryptionAlgorithm(streamId, undefined)).resolves.not.toThrow();
557
50
  await falsePromise.expectToSucceed();
558
- expect(bobsClient.stream(channelId)?.view.membershipContent.encryptionAlgorithm).toBe(undefined);
559
- });
560
- test('setUsername delays for large groups without hybrid session', async () => {
561
- await expect(bobsClient.initializeUser()).resolves.not.toThrow();
562
- bobsClient.startSync();
563
- await expect(alicesClient.initializeUser()).resolves.not.toThrow();
564
- alicesClient.startSync();
565
- // Create client
566
- const clientWithSettings = await makeTestClient();
567
- await clientWithSettings.initializeUser();
568
- clientWithSettings.startSync();
569
- const streamId = makeUniqueSpaceStreamId();
570
- await clientWithSettings.createSpace(streamId);
571
- await clientWithSettings.waitForStream(streamId);
572
- // Add more members to exceed threshold
573
- await alicesClient.joinStream(streamId);
574
- await bobsClient.joinStream(streamId);
575
- await waitFor(() => {
576
- expect(clientWithSettings.streams.get(streamId)?.view.membershipContent.joined.size).toBe(3);
577
- });
578
- // Mock hasHybridSession to return false
579
- clientWithSettings['cryptoBackend'].hasHybridSession = async () => false;
580
- const startTime = Date.now();
581
- let usernameSetTime = null;
582
- let pendingUsernameSetTime = null;
583
- const streamUsernameUpdated = makeDonePromise();
584
- clientWithSettings.on('streamUsernameUpdated', (updatedStreamId, userId) => {
585
- expect(updatedStreamId).toBe(streamId);
586
- expect(userId).toBe(clientWithSettings.userId);
587
- usernameSetTime = Date.now();
588
- streamUsernameUpdated.done();
589
- });
590
- const streamPendingUsernameUpdated = makeDonePromise();
591
- clientWithSettings.once('streamPendingUsernameUpdated', (updatedStreamId, userId) => {
592
- expect(updatedStreamId).toBe(streamId);
593
- expect(userId).toBe(clientWithSettings.userId);
594
- pendingUsernameSetTime = Date.now();
595
- streamPendingUsernameUpdated.done();
596
- });
597
- // Should not set immediately - will be delayed
598
- await clientWithSettings.setUsername(streamId, 'delayed-username', false, {
599
- largeGroupThreshold: 2, // Low threshold for testing
600
- delayMs: 2000, // 2 seconds for faster testing
601
- });
602
- const stream = clientWithSettings.streams.get(streamId);
603
- expect(stream.view
604
- .getMemberMetadata()
605
- .usernames.plaintextUsernames.get(clientWithSettings.userId)).toBe('delayed-username');
606
- // Verify timeout was set
607
- expect(clientWithSettings['pendingUsernameTimeouts'].has(streamId)).toBe(true);
608
- expect(clientWithSettings['pendingUsernames'].get(streamId)).toBe('delayed-username');
609
- await streamPendingUsernameUpdated.expectToSucceed();
610
- // Wait for the delayed set
611
- await streamUsernameUpdated.expectToSucceed();
612
- // Verify it was delayed by approximately the configured time
613
- const elapsed = usernameSetTime - startTime;
614
- expect(elapsed).toBeGreaterThanOrEqual(2000);
615
- const pendingUsernameElapsed = pendingUsernameSetTime - startTime;
616
- expect(pendingUsernameElapsed).toBeLessThanOrEqual(100);
617
- expect(clientWithSettings['pendingUsernameTimeouts'].has(streamId)).toBe(false);
618
- expect(clientWithSettings['pendingUsernames'].get(streamId)).toBe(undefined);
619
- await clientWithSettings.stop();
51
+ expect(bobsClient.stream(streamId)?.view.membershipContent.encryptionAlgorithm).toBe(undefined);
620
52
  });
621
53
  });
622
54
  //# sourceMappingURL=memberMetadata.test.js.map