@towns-labs/sdk 2.0.12 → 2.1.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 (436) hide show
  1. package/dist/client.d.ts +11 -31
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +68 -327
  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 -20
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +0 -20
  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/streamUtils.d.ts.map +1 -1
  54. package/dist/streamUtils.js +0 -8
  55. package/dist/streamUtils.js.map +1 -1
  56. package/dist/sync/SyncedStreamsControllerLite.d.ts.map +1 -1
  57. package/dist/sync/SyncedStreamsControllerLite.js +7 -11
  58. package/dist/sync/SyncedStreamsControllerLite.js.map +1 -1
  59. package/dist/sync-agent/db.d.ts +13 -0
  60. package/dist/sync-agent/db.d.ts.map +1 -0
  61. package/dist/sync-agent/db.js +24 -0
  62. package/dist/sync-agent/db.js.map +1 -0
  63. package/dist/sync-agent/gdms/models/gdm.d.ts +3 -3
  64. package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
  65. package/dist/sync-agent/river-connection/riverConnection.d.ts +1 -6
  66. package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
  67. package/dist/sync-agent/river-connection/riverConnection.js +3 -8
  68. package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
  69. package/dist/sync-agent/syncAgent.d.ts +0 -6
  70. package/dist/sync-agent/syncAgent.d.ts.map +1 -1
  71. package/dist/sync-agent/syncAgent.js +0 -8
  72. package/dist/sync-agent/syncAgent.js.map +1 -1
  73. package/dist/syncedStreamsExtension.d.ts.map +1 -1
  74. package/dist/syncedStreamsExtension.js +10 -22
  75. package/dist/syncedStreamsExtension.js.map +1 -1
  76. package/dist/syncedStreamsLoop.d.ts.map +1 -1
  77. package/dist/syncedStreamsLoop.js +4 -18
  78. package/dist/syncedStreamsLoop.js.map +1 -1
  79. package/dist/tests/bob_testUtils.d.ts.map +1 -1
  80. package/dist/tests/bob_testUtils.js +35 -69
  81. package/dist/tests/bob_testUtils.js.map +1 -1
  82. package/dist/tests/multi_ne/aliceAndFriends10for10.test.js +1 -1
  83. package/dist/tests/multi_ne/aliceAndFriends10for10.test.js.map +1 -1
  84. package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js +1 -1
  85. package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js.map +1 -1
  86. package/dist/tests/multi_ne/bobFlushes.test.js.map +1 -1
  87. package/dist/tests/multi_ne/channels.test.js +6 -9
  88. package/dist/tests/multi_ne/channels.test.js.map +1 -1
  89. package/dist/tests/multi_ne/client.test.js +24 -98
  90. package/dist/tests/multi_ne/client.test.js.map +1 -1
  91. package/dist/tests/multi_ne/clientCrypto.test.js +3 -3
  92. package/dist/tests/multi_ne/clientCrypto.test.js.map +1 -1
  93. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +12 -47
  94. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
  95. package/dist/tests/multi_ne/ephemeralEvents.test.js +1 -1
  96. package/dist/tests/multi_ne/ephemeralEvents.test.js.map +1 -1
  97. package/dist/tests/multi_ne/id.test.js +6 -20
  98. package/dist/tests/multi_ne/id.test.js.map +1 -1
  99. package/dist/tests/multi_ne/media.test.js +20 -61
  100. package/dist/tests/multi_ne/media.test.js.map +1 -1
  101. package/dist/tests/multi_ne/memberMetadata.test.d.ts +0 -3
  102. package/dist/tests/multi_ne/memberMetadata.test.d.ts.map +1 -1
  103. package/dist/tests/multi_ne/memberMetadata.test.js +14 -582
  104. package/dist/tests/multi_ne/memberMetadata.test.js.map +1 -1
  105. package/dist/tests/multi_ne/outboundGroupSession.test.js +15 -13
  106. package/dist/tests/multi_ne/outboundGroupSession.test.js.map +1 -1
  107. package/dist/tests/multi_ne/restart.test.js +11 -34
  108. package/dist/tests/multi_ne/restart.test.js.map +1 -1
  109. package/dist/tests/multi_ne/sign.test.js +2 -2
  110. package/dist/tests/multi_ne/sign.test.js.map +1 -1
  111. package/dist/tests/multi_ne/streamMembershipHardening.test.js +0 -3
  112. package/dist/tests/multi_ne/streamMembershipHardening.test.js.map +1 -1
  113. package/dist/tests/multi_ne/streamRpcClient.test.js +58 -349
  114. package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
  115. package/dist/tests/multi_ne/streamRpcClientSync.test.js +63 -124
  116. package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
  117. package/dist/tests/multi_ne/streamStateView_User.test.js +23 -20
  118. package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
  119. package/dist/tests/{multi/spaceDapp.test.d.ts → multi_ne/sync-agent/gdms.test.d.ts} +1 -1
  120. package/dist/tests/multi_ne/sync-agent/gdms.test.d.ts.map +1 -0
  121. package/dist/tests/multi_ne/sync-agent/gdms.test.js +34 -0
  122. package/dist/tests/multi_ne/sync-agent/gdms.test.js.map +1 -0
  123. package/dist/tests/multi_ne/sync-agent/member.test.d.ts +3 -0
  124. package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -1
  125. package/dist/tests/multi_ne/sync-agent/member.test.js +19 -8
  126. package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -1
  127. package/dist/tests/multi_ne/sync-agent/members.test.d.ts +3 -0
  128. package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -1
  129. package/dist/tests/multi_ne/sync-agent/members.test.js +24 -19
  130. package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -1
  131. package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +3 -0
  132. package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -1
  133. package/dist/tests/multi_ne/sync-agent/streams.test.js +14 -14
  134. package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -1
  135. package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +3 -0
  136. package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -1
  137. package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +23 -15
  138. package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -1
  139. package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +3 -0
  140. package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -1
  141. package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +34 -70
  142. package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -1
  143. package/dist/tests/multi_ne/sync-agent/timeline.test.js +68 -119
  144. package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -1
  145. package/dist/tests/multi_ne/sync-agent/user.test.js +10 -5
  146. package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -1
  147. package/dist/tests/multi_ne/syncWithBlocks.test.d.ts +3 -0
  148. package/dist/tests/multi_ne/syncWithBlocks.test.d.ts.map +1 -1
  149. package/dist/tests/multi_ne/syncWithBlocks.test.js +47 -77
  150. package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
  151. package/dist/tests/multi_ne/syncedStream.test.js +1 -1
  152. package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
  153. package/dist/tests/multi_ne/syncedStreams.test.js +1 -1
  154. package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
  155. package/dist/tests/multi_ne/userInboxMessage.test.js +4 -4
  156. package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
  157. package/dist/tests/multi_ne/userSettings.test.js +3 -16
  158. package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
  159. package/dist/tests/multi_ne/workflows.test.js +22 -50
  160. package/dist/tests/multi_ne/workflows.test.js.map +1 -1
  161. package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
  162. package/dist/tests/testDriver_testUtils.js +6 -22
  163. package/dist/tests/testDriver_testUtils.js.map +1 -1
  164. package/dist/tests/testUtils.d.ts +3 -104
  165. package/dist/tests/testUtils.d.ts.map +1 -1
  166. package/dist/tests/testUtils.js +6 -625
  167. package/dist/tests/testUtils.js.map +1 -1
  168. package/dist/tests/unit/snapshotMigration0001.test.js +4 -20
  169. package/dist/tests/unit/snapshotMigration0001.test.js.map +1 -1
  170. package/dist/tests/unit/snapshotMigration0004.test.js +5 -43
  171. package/dist/tests/unit/snapshotMigration0004.test.js.map +1 -1
  172. package/dist/tests/unit/snapshotMigration0005.test.js +5 -43
  173. package/dist/tests/unit/snapshotMigration0005.test.js.map +1 -1
  174. package/dist/tests/unit/streamUtils.test.js +21 -22
  175. package/dist/tests/unit/streamUtils.test.js.map +1 -1
  176. package/dist/tests/unit/tags.test.js +5 -7
  177. package/dist/tests/unit/tags.test.js.map +1 -1
  178. package/dist/types.d.ts +1 -21
  179. package/dist/types.d.ts.map +1 -1
  180. package/dist/types.js +2 -231
  181. package/dist/types.js.map +1 -1
  182. package/dist/views/models/timelineEvent.d.ts.map +1 -1
  183. package/dist/views/models/timelineEvent.js +1 -178
  184. package/dist/views/models/timelineEvent.js.map +1 -1
  185. package/dist/views/models/timelineTypes.d.ts +3 -29
  186. package/dist/views/models/timelineTypes.d.ts.map +1 -1
  187. package/dist/views/models/timelineTypes.js +0 -4
  188. package/dist/views/models/timelineTypes.js.map +1 -1
  189. package/dist/views/streams/timelines.d.ts +1 -1
  190. package/dist/views/streams/timelines.d.ts.map +1 -1
  191. package/dist/views/streams/timelines.js +3 -3
  192. package/dist/views/streams/timelines.js.map +1 -1
  193. package/dist/views/streamsView.d.ts +0 -6
  194. package/dist/views/streamsView.d.ts.map +1 -1
  195. package/dist/views/streamsView.js +0 -11
  196. package/dist/views/streamsView.js.map +1 -1
  197. package/dist/views/transforms/dmsAndGdmsTransform.d.ts +0 -2
  198. package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -1
  199. package/dist/views/transforms/dmsAndGdmsTransform.js +1 -26
  200. package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -1
  201. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts +1 -2
  202. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts.map +1 -1
  203. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js +2 -5
  204. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js.map +1 -1
  205. package/dist/views/transforms/spaceIdsTransform.d.ts +1 -1
  206. package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -1
  207. package/dist/views/transforms/spaceIdsTransform.js +3 -10
  208. package/dist/views/transforms/spaceIdsTransform.js.map +1 -1
  209. package/dist/views/transforms/spaceMentionsTransform.d.ts.map +1 -1
  210. package/dist/views/transforms/spaceMentionsTransform.js +13 -14
  211. package/dist/views/transforms/spaceMentionsTransform.js.map +1 -1
  212. package/dist/views/transforms/spaceUnreadsTransform.d.ts.map +1 -1
  213. package/dist/views/transforms/spaceUnreadsTransform.js +21 -22
  214. package/dist/views/transforms/spaceUnreadsTransform.js.map +1 -1
  215. package/dist/views/transforms/unreadMarkersTransform.js +2 -4
  216. package/dist/views/transforms/unreadMarkersTransform.js.map +1 -1
  217. package/package.json +9 -9
  218. package/dist/memberMetadata_DisplayNames.d.ts +0 -26
  219. package/dist/memberMetadata_DisplayNames.d.ts.map +0 -1
  220. package/dist/memberMetadata_DisplayNames.js +0 -95
  221. package/dist/memberMetadata_DisplayNames.js.map +0 -1
  222. package/dist/memberMetadata_EnsAddresses.d.ts +0 -25
  223. package/dist/memberMetadata_EnsAddresses.d.ts.map +0 -1
  224. package/dist/memberMetadata_EnsAddresses.js +0 -86
  225. package/dist/memberMetadata_EnsAddresses.js.map +0 -1
  226. package/dist/memberMetadata_Nft.d.ts +0 -31
  227. package/dist/memberMetadata_Nft.d.ts.map +0 -1
  228. package/dist/memberMetadata_Nft.js +0 -95
  229. package/dist/memberMetadata_Nft.js.map +0 -1
  230. package/dist/memberMetadata_Usernames.d.ts +0 -35
  231. package/dist/memberMetadata_Usernames.d.ts.map +0 -1
  232. package/dist/memberMetadata_Usernames.js +0 -162
  233. package/dist/memberMetadata_Usernames.js.map +0 -1
  234. package/dist/streamStateView_Channel.d.ts +0 -16
  235. package/dist/streamStateView_Channel.d.ts.map +0 -1
  236. package/dist/streamStateView_Channel.js +0 -76
  237. package/dist/streamStateView_Channel.js.map +0 -1
  238. package/dist/streamStateView_DMChannel.d.ts +0 -25
  239. package/dist/streamStateView_DMChannel.d.ts.map +0 -1
  240. package/dist/streamStateView_DMChannel.js +0 -114
  241. package/dist/streamStateView_DMChannel.js.map +0 -1
  242. package/dist/streamStateView_Space.d.ts +0 -31
  243. package/dist/streamStateView_Space.d.ts.map +0 -1
  244. package/dist/streamStateView_Space.js +0 -193
  245. package/dist/streamStateView_Space.js.map +0 -1
  246. package/dist/sync-agent/dms/dms.d.ts +0 -24
  247. package/dist/sync-agent/dms/dms.d.ts.map +0 -1
  248. package/dist/sync-agent/dms/dms.js +0 -45
  249. package/dist/sync-agent/dms/dms.js.map +0 -1
  250. package/dist/sync-agent/dms/models/dm.d.ts +0 -73
  251. package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
  252. package/dist/sync-agent/dms/models/dm.js +0 -143
  253. package/dist/sync-agent/dms/models/dm.js.map +0 -1
  254. package/dist/sync-agent/spaces/models/channel.d.ts +0 -102
  255. package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
  256. package/dist/sync-agent/spaces/models/channel.js +0 -169
  257. package/dist/sync-agent/spaces/models/channel.js.map +0 -1
  258. package/dist/sync-agent/spaces/models/space.d.ts +0 -56
  259. package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
  260. package/dist/sync-agent/spaces/models/space.js +0 -115
  261. package/dist/sync-agent/spaces/models/space.js.map +0 -1
  262. package/dist/sync-agent/spaces/spaces.d.ts +0 -25
  263. package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
  264. package/dist/sync-agent/spaces/spaces.js +0 -56
  265. package/dist/sync-agent/spaces/spaces.js.map +0 -1
  266. package/dist/tests/multi/channelSpaceSettings.test.d.ts +0 -5
  267. package/dist/tests/multi/channelSpaceSettings.test.d.ts.map +0 -1
  268. package/dist/tests/multi/channelSpaceSettings.test.js +0 -204
  269. package/dist/tests/multi/channelSpaceSettings.test.js.map +0 -1
  270. package/dist/tests/multi/disableChannel.test.d.ts +0 -5
  271. package/dist/tests/multi/disableChannel.test.d.ts.map +0 -1
  272. package/dist/tests/multi/disableChannel.test.js +0 -30
  273. package/dist/tests/multi/disableChannel.test.js.map +0 -1
  274. package/dist/tests/multi/disableSpace.test.d.ts +0 -5
  275. package/dist/tests/multi/disableSpace.test.d.ts.map +0 -1
  276. package/dist/tests/multi/disableSpace.test.js +0 -37
  277. package/dist/tests/multi/disableSpace.test.js.map +0 -1
  278. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts +0 -5
  279. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts.map +0 -1
  280. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js +0 -129
  281. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js.map +0 -1
  282. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts +0 -5
  283. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts.map +0 -1
  284. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js +0 -44
  285. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js.map +0 -1
  286. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts +0 -5
  287. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts.map +0 -1
  288. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js +0 -125
  289. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js.map +0 -1
  290. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts +0 -5
  291. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts.map +0 -1
  292. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js +0 -72
  293. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js.map +0 -1
  294. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts +0 -5
  295. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts.map +0 -1
  296. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +0 -57
  297. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +0 -1
  298. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts +0 -5
  299. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts.map +0 -1
  300. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js +0 -86
  301. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js.map +0 -1
  302. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts +0 -5
  303. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts.map +0 -1
  304. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js +0 -69
  305. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js.map +0 -1
  306. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts +0 -5
  307. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts.map +0 -1
  308. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js +0 -145
  309. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js.map +0 -1
  310. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts +0 -5
  311. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts.map +0 -1
  312. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js +0 -53
  313. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js.map +0 -1
  314. package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts +0 -5
  315. package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts.map +0 -1
  316. package/dist/tests/multi/entitlements/membershipRenewals.test.js +0 -150
  317. package/dist/tests/multi/entitlements/membershipRenewals.test.js.map +0 -1
  318. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts +0 -5
  319. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts.map +0 -1
  320. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js +0 -131
  321. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js.map +0 -1
  322. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts +0 -5
  323. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts.map +0 -1
  324. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js +0 -109
  325. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js.map +0 -1
  326. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts +0 -5
  327. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts.map +0 -1
  328. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js +0 -103
  329. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js.map +0 -1
  330. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts +0 -5
  331. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts.map +0 -1
  332. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js +0 -84
  333. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js.map +0 -1
  334. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts +0 -5
  335. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts.map +0 -1
  336. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js +0 -168
  337. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js.map +0 -1
  338. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts +0 -5
  339. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts.map +0 -1
  340. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js +0 -45
  341. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js.map +0 -1
  342. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts +0 -5
  343. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts.map +0 -1
  344. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js +0 -79
  345. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js.map +0 -1
  346. package/dist/tests/multi/legacySpace.test.d.ts +0 -5
  347. package/dist/tests/multi/legacySpace.test.d.ts.map +0 -1
  348. package/dist/tests/multi/legacySpace.test.js +0 -48
  349. package/dist/tests/multi/legacySpace.test.js.map +0 -1
  350. package/dist/tests/multi/mediaWithEntitlements.test.d.ts +0 -5
  351. package/dist/tests/multi/mediaWithEntitlements.test.d.ts.map +0 -1
  352. package/dist/tests/multi/mediaWithEntitlements.test.js +0 -152
  353. package/dist/tests/multi/mediaWithEntitlements.test.js.map +0 -1
  354. package/dist/tests/multi/membershipManagement.test.d.ts +0 -5
  355. package/dist/tests/multi/membershipManagement.test.d.ts.map +0 -1
  356. package/dist/tests/multi/membershipManagement.test.js +0 -76
  357. package/dist/tests/multi/membershipManagement.test.js.map +0 -1
  358. package/dist/tests/multi/riverAirdropDapp.test.d.ts +0 -5
  359. package/dist/tests/multi/riverAirdropDapp.test.d.ts.map +0 -1
  360. package/dist/tests/multi/riverAirdropDapp.test.js +0 -43
  361. package/dist/tests/multi/riverAirdropDapp.test.js.map +0 -1
  362. package/dist/tests/multi/spaceDapp.test.d.ts.map +0 -1
  363. package/dist/tests/multi/spaceDapp.test.js +0 -61
  364. package/dist/tests/multi/spaceDapp.test.js.map +0 -1
  365. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts +0 -2
  366. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts.map +0 -1
  367. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js +0 -63
  368. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js.map +0 -1
  369. package/dist/tests/multi/withEntitlements.test.d.ts +0 -5
  370. package/dist/tests/multi/withEntitlements.test.d.ts.map +0 -1
  371. package/dist/tests/multi/withEntitlements.test.js +0 -125
  372. package/dist/tests/multi/withEntitlements.test.js.map +0 -1
  373. package/dist/tests/multi_ne/dms.test.d.ts +0 -5
  374. package/dist/tests/multi_ne/dms.test.d.ts.map +0 -1
  375. package/dist/tests/multi_ne/dms.test.js +0 -131
  376. package/dist/tests/multi_ne/dms.test.js.map +0 -1
  377. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts +0 -5
  378. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts.map +0 -1
  379. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js +0 -54
  380. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js.map +0 -1
  381. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts +0 -5
  382. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts.map +0 -1
  383. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js +0 -37
  384. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js.map +0 -1
  385. package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts +0 -5
  386. package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts.map +0 -1
  387. package/dist/tests/multi_ne/memberMetadata_Nft.test.js +0 -49
  388. package/dist/tests/multi_ne/memberMetadata_Nft.test.js.map +0 -1
  389. package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts +0 -5
  390. package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts.map +0 -1
  391. package/dist/tests/multi_ne/memberMetadata_Usernames.test.js +0 -126
  392. package/dist/tests/multi_ne/memberMetadata_Usernames.test.js.map +0 -1
  393. package/dist/tests/multi_ne/space.test.d.ts +0 -5
  394. package/dist/tests/multi_ne/space.test.d.ts.map +0 -1
  395. package/dist/tests/multi_ne/space.test.js +0 -284
  396. package/dist/tests/multi_ne/space.test.js.map +0 -1
  397. package/dist/tests/multi_ne/sync-agent/spaces.test.d.ts +0 -2
  398. package/dist/tests/multi_ne/sync-agent/spaces.test.d.ts.map +0 -1
  399. package/dist/tests/multi_ne/sync-agent/spaces.test.js +0 -33
  400. package/dist/tests/multi_ne/sync-agent/spaces.test.js.map +0 -1
  401. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts +0 -6
  402. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts.map +0 -1
  403. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js +0 -78
  404. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js.map +0 -1
  405. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts +0 -6
  406. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts.map +0 -1
  407. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js +0 -89
  408. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js.map +0 -1
  409. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts +0 -6
  410. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts.map +0 -1
  411. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js +0 -88
  412. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js.map +0 -1
  413. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts +0 -6
  414. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts.map +0 -1
  415. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js +0 -105
  416. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js.map +0 -1
  417. package/dist/tests/multi_v2/updateRole.test.d.ts +0 -5
  418. package/dist/tests/multi_v2/updateRole.test.d.ts.map +0 -1
  419. package/dist/tests/multi_v2/updateRole.test.js +0 -25
  420. package/dist/tests/multi_v2/updateRole.test.js.map +0 -1
  421. package/dist/tests/unit/snapshotMigration0002.test.d.ts +0 -2
  422. package/dist/tests/unit/snapshotMigration0002.test.d.ts.map +0 -1
  423. package/dist/tests/unit/snapshotMigration0002.test.js +0 -31
  424. package/dist/tests/unit/snapshotMigration0002.test.js.map +0 -1
  425. package/dist/views/streams/channelStreams.d.ts +0 -8
  426. package/dist/views/streams/channelStreams.d.ts.map +0 -1
  427. package/dist/views/streams/channelStreams.js +0 -9
  428. package/dist/views/streams/channelStreams.js.map +0 -1
  429. package/dist/views/streams/dmStreams.d.ts +0 -13
  430. package/dist/views/streams/dmStreams.d.ts.map +0 -1
  431. package/dist/views/streams/dmStreams.js +0 -33
  432. package/dist/views/streams/dmStreams.js.map +0 -1
  433. package/dist/views/streams/spaceStreams.d.ts +0 -17
  434. package/dist/views/streams/spaceStreams.d.ts.map +0 -1
  435. package/dist/views/streams/spaceStreams.js +0 -52
  436. package/dist/views/streams/spaceStreams.js.map +0 -1
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=channelsWithComplexEntitlements.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithComplexEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithComplexEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,125 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { getNftRuleData, twoNftRuleData, createRole, createChannel, setupWalletsAndContexts, createSpaceAndDefaultChannel, expectUserCanJoin, everyoneMembershipStruct, linkWallets, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
5
- import { dlog } from '@towns-labs/utils';
6
- import { Permission, TestERC721, LogicalOperationType, Rules, createRuleStruct, } from '@towns-labs/web3';
7
- const log = dlog('csb:test:channelsWithComplexEntitlements');
8
- describe('channelsWithComplexEntitlements', () => {
9
- test('User who satisfies only one role ruledata requirement can join channel', async () => {
10
- const { alice, bob, alicesWallet, aliceProvider, bobProvider, aliceSpaceDapp, bobSpaceDapp, } = await setupWalletsAndContexts();
11
- const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, 'bob', await everyoneMembershipStruct(bobSpaceDapp, bob));
12
- await expectUserCanJoin(spaceId, defaultChannelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
13
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
14
- const testNft2Address = await TestERC721.getContractAddress('TestNFT2');
15
- const { roleId: nft1RoleId, error: roleError } = await createRole(bobSpaceDapp, bobProvider, spaceId, 'gated role', [Permission.Read], [], getNftRuleData(testNft1Address), bobProvider.wallet);
16
- expect(roleError).toBeUndefined();
17
- const { roleId: nft2RoleId, error: roleError2 } = await createRole(bobSpaceDapp, bobProvider, spaceId, 'gated role', [Permission.Read], [], getNftRuleData(testNft2Address), bobProvider.wallet);
18
- expect(roleError2).toBeUndefined();
19
- // Create a channel gated by the both role in the space contract.
20
- const { channelId, error: channelError } = await createChannel(bobSpaceDapp, bobProvider, spaceId, 'double-role-gated-channel', [nft1RoleId.valueOf(), nft2RoleId.valueOf()], bobProvider.wallet);
21
- expect(channelError).toBeUndefined();
22
- // Then, establish a stream for the channel on the river node.
23
- const { streamId: channelStreamId } = await bob.createChannel(spaceId, 'double-role-gated-channel', 'user only needs a single role to get into this channel', channelId);
24
- expect(channelStreamId).toEqual(channelId);
25
- // Mint an NFT for alice so that she satisfies the second role
26
- await TestERC721.publicMint('TestNFT2', alicesWallet.address);
27
- // Join alice to the channel
28
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
29
- });
30
- test('twoNftGateJoinPass', async () => {
31
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
32
- const testNft2Address = await TestERC721.getContractAddress('TestNFT2');
33
- const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], twoNftRuleData(testNft1Address, testNft2Address));
34
- const aliceMintTx1 = TestERC721.publicMint('TestNFT1', alicesWallet.address);
35
- const aliceMintTx2 = TestERC721.publicMint('TestNFT2', alicesWallet.address);
36
- log('Minting nfts for alice');
37
- await Promise.all([aliceMintTx1, aliceMintTx2]);
38
- log('expect that alice can join the channel');
39
- // Validate alice can join the channel
40
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
41
- // kill the clients
42
- const doneStart = Date.now();
43
- await bob.stopSync();
44
- await alice.stopSync();
45
- log('Done', Date.now() - doneStart);
46
- });
47
- test('twoNftGateJoinPass - acrossLinkedWallets', async () => {
48
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
49
- const testNft2Address = await TestERC721.getContractAddress('TestNFT2');
50
- const { alice, bob, alicesWallet, carolsWallet, aliceSpaceDapp, aliceProvider, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], twoNftRuleData(testNft1Address, testNft2Address));
51
- const aliceMintTx1 = TestERC721.publicMint('TestNFT1', alicesWallet.address);
52
- const carolMintTx2 = TestERC721.publicMint('TestNFT2', carolsWallet.address);
53
- log('Minting nfts for alice and carol');
54
- await Promise.all([aliceMintTx1, carolMintTx2]);
55
- log("linking carols wallet to alice's wallet");
56
- await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
57
- log('Alice should be able to join channel with one asset in carol wallet');
58
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
59
- // kill the clients
60
- const doneStart = Date.now();
61
- await bob.stopSync();
62
- await alice.stopSync();
63
- log('Done', Date.now() - doneStart);
64
- });
65
- test('twoNftGateJoinFail', async () => {
66
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
67
- const testNft2Address = await TestERC721.getContractAddress('TestNFT2');
68
- const { alice, aliceSpaceDapp, bob, alicesWallet, spaceId, channelId } = await setupChannelWithCustomRole([], twoNftRuleData(testNft1Address, testNft2Address));
69
- // Mint only one of the required NFTs for alice
70
- log('Minting only one of two required NFTs for alice');
71
- await TestERC721.publicMint('TestNFT1', alicesWallet.address);
72
- log('expect that alice cannot join the channel');
73
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
74
- // kill the clients
75
- await bob.stopSync();
76
- await alice.stopSync();
77
- });
78
- test('OrOfTwoNftGateJoinPass', async () => {
79
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
80
- const testNft2Address = await TestERC721.getContractAddress('TestNFT2');
81
- const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], twoNftRuleData(testNft1Address, testNft2Address, LogicalOperationType.OR));
82
- // join alice
83
- log('Minting an NFT for alice');
84
- await TestERC721.publicMint('TestNFT1', alicesWallet.address);
85
- log('expect that alice can join the channel');
86
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
87
- // kill the clients
88
- const doneStart = Date.now();
89
- await bob.stopSync();
90
- await alice.stopSync();
91
- log('Done', Date.now() - doneStart);
92
- });
93
- test('orOfTwoNftOrOneNftGateJoinPass', async () => {
94
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
95
- const testNft2Address = await TestERC721.getContractAddress('TestNFT2');
96
- const testNft3Address = await TestERC721.getContractAddress('TestNFT3');
97
- const root = Rules.or(Rules.and(Rules.checkErc721({
98
- chainId: 31337n,
99
- contractAddress: testNft1Address,
100
- threshold: 1n,
101
- }), Rules.checkErc721({
102
- chainId: 31337n,
103
- contractAddress: testNft2Address,
104
- threshold: 1n,
105
- })), Rules.checkErc721({
106
- chainId: 31337n,
107
- contractAddress: testNft3Address,
108
- threshold: 1n,
109
- }));
110
- const ruleData = createRuleStruct(root);
111
- const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
112
- log("Mint Alice's NFTs");
113
- const aliceMintTx1 = TestERC721.publicMint('TestNFT1', alicesWallet.address);
114
- const aliceMintTx2 = TestERC721.publicMint('TestNFT2', alicesWallet.address);
115
- await Promise.all([aliceMintTx1, aliceMintTx2]);
116
- log('expect that alice can join the channel');
117
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
118
- // kill the clients
119
- const doneStart = Date.now();
120
- await bob.stopSync();
121
- await alice.stopSync();
122
- log('Done', Date.now() - doneStart);
123
- });
124
- });
125
- //# sourceMappingURL=channelsWithComplexEntitlements.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithComplexEntitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithComplexEntitlements.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=channelsWithEntitlementLoss.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithEntitlementLoss.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEntitlementLoss.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,72 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { waitFor, getNftRuleData, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
5
- import { MembershipOp } from '@towns-labs/proto';
6
- import { Permission, TestERC721 } from '@towns-labs/web3';
7
- import { make_MemberPayload_KeySolicitation } from '../../../types';
8
- describe('channelsWithEntitlementLoss', () => {
9
- test('user booted on key request after entitlement loss', async () => {
10
- const testNftAddress = await TestERC721.getContractAddress('TestNFT');
11
- const { alice, alicesWallet, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole([], getNftRuleData(testNftAddress));
12
- // Mint an nft for alice - she should be able to join now
13
- const tokenId = await TestERC721.publicMint('TestNFT', alicesWallet.address);
14
- // Validate alice can join the channel
15
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
16
- const channelStream = await bob.waitForStream(channelId);
17
- // Validate Alice is member of the channel
18
- await waitFor(() => expect(channelStream.view.membershipContent.isMember(MembershipOp.SO_JOIN, alice.userId), `waitFor ${alice.userId} to be member in ${channelStream.view.streamId}`).toBe(true));
19
- // Burn Alice's NFT and validate her zero balance. She should now fail an entitlement check for the
20
- // channel.
21
- await TestERC721.burn('TestNFT', tokenId);
22
- await expect(TestERC721.balanceOf('TestNFT', alicesWallet.address)).resolves.toBe(0);
23
- // Wait 5 seconds for the positive auth cache to expire
24
- await new Promise((f) => setTimeout(f, 5000));
25
- // Have alice solicit keys in the channel where she just lost entitlements.
26
- // This key solicitation should fail because she no longer has the required NFT.
27
- // Additionally, she should be removed from the channel.
28
- const payload = make_MemberPayload_KeySolicitation({
29
- deviceKey: 'alice-new-device',
30
- sessionIds: [],
31
- fallbackKey: 'alice-fallback-key',
32
- isNewDevice: true,
33
- });
34
- await expect(alice.makeEventAndAddToStream(channelId, payload)).rejects.toThrow(/7:PERMISSION_DENIED/);
35
- // Alice's user stream should reflect that she is no longer a member of the channel.
36
- // TODO why no linter complain with no await here?
37
- const aliceUserStream = await alice.waitForStream(alice.userStreamId);
38
- await waitFor(() => expect(aliceUserStream.view.userContent.getMembership(channelId)?.op, `waitFor ${alice.userId} to be member of ${channelId} in ${aliceUserStream.view.streamId}`).toBe(MembershipOp.SO_LEAVE));
39
- await waitFor(() => expect(channelStream.view.membershipContent.isMember(MembershipOp.SO_LEAVE, alice.userId), `waitFor ${alice.userId} to be member in ${channelId}`).toBeTruthy());
40
- // Alice cannot rejoin the stream.
41
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
42
- await bob.stopSync();
43
- await alice.stopSync();
44
- });
45
- test('user cannot post after entitlement loss', async () => {
46
- const testNftAddress = await TestERC721.getContractAddress('TestNFT');
47
- const { alice, alicesWallet, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole([], getNftRuleData(testNftAddress), [
48
- Permission.Read,
49
- Permission.Write,
50
- ]);
51
- // Mint an nft for alice - she should be able to join now
52
- const tokenId = await TestERC721.publicMint('TestNFT', alicesWallet.address);
53
- // Validate alice can join the channel
54
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
55
- const channelStream = await bob.waitForStream(channelId);
56
- // Validate Alice is member of the channel
57
- await waitFor(() => channelStream.view.membershipContent.isMember(MembershipOp.SO_JOIN, alice.userId));
58
- // Burn Alice's NFT and validate her zero balance. She should now fail an entitlement check for the
59
- // channel.
60
- await TestERC721.burn('TestNFT', tokenId);
61
- await expect(TestERC721.balanceOf('TestNFT', alicesWallet.address)).resolves.toBe(0);
62
- // Wait 5 seconds for the positive auth cache to expire
63
- await new Promise((f) => setTimeout(f, 5000));
64
- // Alice should not be able to post to the channel after losing entitlements.
65
- // However she remains a member of the stream because this message is never sent by the
66
- // client.
67
- await expect(alice.sendMessage(channelId, 'Message after entitlement loss')).rejects.toThrow( /*not entitled to add message to channel*/);
68
- await bob.stopSync();
69
- await alice.stopSync();
70
- });
71
- });
72
- //# sourceMappingURL=channelsWithEntitlementLoss.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithEntitlementLoss.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEntitlementLoss.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=channelsWithEntitlements.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,57 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { waitFor, setupWalletsAndContexts, createSpaceAndDefaultChannel, expectUserCanJoin, everyoneMembershipStruct, getXchainConfigForTesting, setupChannelWithCustomRole, expectUserCanJoinChannel, getTimelineMessagePayload, } from '../../testUtils';
5
- import { dlog } from '@towns-labs/utils';
6
- import { NoopRuleData, Permission } from '@towns-labs/web3';
7
- const log = dlog('csb:test:channelsWithEntitlements');
8
- describe('channelsWithEntitlements', () => {
9
- test('banned user not entitled to channel', async () => {
10
- const { alice, alicesWallet, aliceSpaceDapp, bob, bobSpaceDapp, bobProvider, spaceId, channelId, } = await setupChannelWithCustomRole(['alice'], NoopRuleData);
11
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
12
- const tx = await bobSpaceDapp.banWalletAddress(spaceId, alicesWallet.address, bobProvider.wallet);
13
- await tx.wait();
14
- // Wait 5 seconds for the positive auth cache on the client to expire
15
- await new Promise((f) => setTimeout(f, 5000));
16
- await expect(aliceSpaceDapp.isEntitledToChannel(spaceId, channelId, alice.userId, Permission.Read, getXchainConfigForTesting())).resolves.toBeFalsy();
17
- // unban alice
18
- const unbanTx = await bobSpaceDapp.unbanWalletAddress(spaceId, alicesWallet.address, bobProvider.wallet);
19
- await unbanTx.wait();
20
- // Wait 5 seconds for the caches to expire
21
- await new Promise((f) => setTimeout(f, 5000));
22
- await expect(aliceSpaceDapp.isEntitledToChannel(spaceId, channelId, alice.userId, Permission.Read, getXchainConfigForTesting())).resolves.toBeTruthy();
23
- const doneStart = Date.now();
24
- // kill the clients
25
- await bob.stopSync();
26
- await alice.stopSync();
27
- log('Done', Date.now() - doneStart);
28
- });
29
- // Banning with entitlements — users need permission to ban other users.
30
- test('adminsCanRedactChannelMessages', async () => {
31
- // log('start adminsCanRedactChannelMessages')
32
- // // set up the web3 provider and spacedapp
33
- const { alice, bob, alicesWallet, aliceProvider, bobProvider, aliceSpaceDapp, bobSpaceDapp, } = await setupWalletsAndContexts();
34
- const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, 'bob', await everyoneMembershipStruct(bobSpaceDapp, bob));
35
- bob.startSync();
36
- // // Alice should have no issue joining the space and default channel.
37
- await expectUserCanJoin(spaceId, defaultChannelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
38
- // Alice says something bad
39
- const stream = await alice.waitForStream(defaultChannelId);
40
- await alice.sendMessage(defaultChannelId, 'Very bad message!');
41
- let eventId;
42
- await waitFor(() => {
43
- const event = stream.view.timeline.find((e) => getTimelineMessagePayload(e) === 'Very bad message!');
44
- expect(event).toBeDefined();
45
- eventId = event?.eventId;
46
- });
47
- expect(stream).toBeDefined();
48
- expect(eventId).toBeDefined();
49
- await expect(bob.redactMessage(defaultChannelId, eventId)).resolves.not.toThrow();
50
- await expect(alice.redactMessage(defaultChannelId, eventId)).rejects.toThrow(/PERMISSION_DENIED/);
51
- // kill the clients
52
- await bob.stopSync();
53
- await alice.stopSync();
54
- log('Done');
55
- });
56
- });
57
- //# sourceMappingURL=channelsWithEntitlements.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithEntitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEntitlements.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=channelsWithErc20Entitlements.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithErc20Entitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc20Entitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,86 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { linkWallets, erc20CheckOp, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
5
- import { dlog } from '@towns-labs/utils';
6
- import { TestERC20, treeToRuleData } from '@towns-labs/web3';
7
- const log = dlog('csb:test:channelsWithErc20Entitlements');
8
- describe('channelsWithErc20Entitlements', () => {
9
- test('erc20 gate join pass', async () => {
10
- const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
11
- const { alice, bob, alicesWallet, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
12
- await TestERC20.publicMint('TestERC20', alicesWallet.address, 100);
13
- log('expect that alice can join the channel');
14
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
15
- // kill the clients
16
- const doneStart = Date.now();
17
- await bob.stopSync();
18
- await alice.stopSync();
19
- log('Done', Date.now() - doneStart);
20
- });
21
- test('erc20 gate join fail', async () => {
22
- const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
23
- const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole([], ruleData);
24
- log('expect that alice cannot join the channel');
25
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
26
- // kill the clients
27
- const doneStart = Date.now();
28
- await bob.stopSync();
29
- await alice.stopSync();
30
- log('Done', Date.now() - doneStart);
31
- });
32
- test('erc20 gate join pass - join as root, asset in linked wallet', async () => {
33
- const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
34
- const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
35
- // Link carol's wallet to alice's as root
36
- await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
37
- // Validate alice cannot join the channel
38
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
39
- // Mint the needed asset to Alice's linked wallet
40
- log('Minting 50 ERC20 tokens for carols wallet, which is linked to alices wallet');
41
- await TestERC20.publicMint('TestERC20', carolsWallet.address, 50);
42
- // Wait 2 seconds for the negative auth cache to expire
43
- await new Promise((f) => setTimeout(f, 2000));
44
- // Validate alice can join the channel
45
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
46
- const doneStart = Date.now();
47
- // kill the clients
48
- await bob.stopSync();
49
- await alice.stopSync();
50
- log('Done', Date.now() - doneStart);
51
- });
52
- test('erc20 Gate Join Pass - join as linked wallet, assets in root wallet', async () => {
53
- const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
54
- const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
55
- log("Joining alice's wallet as a linked wallet to carols root wallet");
56
- await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
57
- log('Minting an NFT for carols wallet, which is the root to alices wallet');
58
- await TestERC20.publicMint('TestERC20', carolsWallet.address, 50);
59
- log('expect that alice can join the channel');
60
- // Validate alice can join the channel
61
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
62
- const doneStart = Date.now();
63
- // kill the clients
64
- await bob.stopSync();
65
- await alice.stopSync();
66
- log('Done', Date.now() - doneStart);
67
- });
68
- test('erc20 Gate Join Pass - assets split across wallets', async () => {
69
- const ruleData = treeToRuleData(await erc20CheckOp('TestERC20', 50n));
70
- const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], ruleData);
71
- log("Joining alice's wallet as a linked wallet to carol's root wallet");
72
- await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
73
- log("Minting an NFT for carol's wallet, which is the root to alice's wallet");
74
- await TestERC20.publicMint('TestERC20', carolsWallet.address, 25);
75
- await TestERC20.publicMint('TestERC20', aliceProvider.wallet.address, 25);
76
- log('expect that alice can join the space');
77
- // Validate alice can join the channel
78
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
79
- const doneStart = Date.now();
80
- // kill the clients
81
- await bob.stopSync();
82
- await alice.stopSync();
83
- log('Done', Date.now() - doneStart);
84
- });
85
- });
86
- //# sourceMappingURL=channelsWithErc20Entitlements.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithErc20Entitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc20Entitlements.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=channelsWithErc721Entitlements.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithErc721Entitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc721Entitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,69 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- import { getNftRuleData, linkWallets, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
5
- import { dlog } from '@towns-labs/utils';
6
- import { TestERC721 } from '@towns-labs/web3';
7
- const log = dlog('csb:test:channelsWithErc721Entitlements');
8
- describe('channelsWithErc721Entitlements', () => {
9
- test('oneNftGateJoinPass - join as root, asset in linked wallet', async () => {
10
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
11
- const { alice, bob, aliceSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], getNftRuleData(testNft1Address));
12
- // Link carol's wallet to alice's as root
13
- await linkWallets(aliceSpaceDapp, aliceProvider.wallet, carolProvider.wallet);
14
- // Validate alice cannot join the channel
15
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
16
- // Mint the needed asset to Alice's linked wallet
17
- log('Minting an NFT for carols wallet, which is linked to alices wallet');
18
- await TestERC721.publicMint('TestNFT1', carolsWallet.address);
19
- // Wait 2 seconds for the negative auth cache to expire
20
- await new Promise((f) => setTimeout(f, 2000));
21
- // Validate alice can join the channel
22
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
23
- const doneStart = Date.now();
24
- // kill the clients
25
- await bob.stopSync();
26
- await alice.stopSync();
27
- log('Done', Date.now() - doneStart);
28
- });
29
- test('oneNftGateJoinPass - join as linked wallet, asset in root wallet', async () => {
30
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
31
- const { alice, bob, aliceSpaceDapp, carolSpaceDapp, aliceProvider, carolsWallet, carolProvider, spaceId, channelId, } = await setupChannelWithCustomRole([], getNftRuleData(testNft1Address));
32
- log("Joining alice's wallet as a linked wallet to carols root wallet");
33
- await linkWallets(carolSpaceDapp, carolProvider.wallet, aliceProvider.wallet);
34
- log('Minting an NFT for carols wallet, which is the root to alices wallet');
35
- await TestERC721.publicMint('TestNFT1', carolsWallet.address);
36
- log('expect that alice can join the space');
37
- // Validate alice can join the channel
38
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
39
- const doneStart = Date.now();
40
- // kill the clients
41
- await bob.stopSync();
42
- await alice.stopSync();
43
- log('Done', Date.now() - doneStart);
44
- });
45
- test('oneNftGateJoinPass', async () => {
46
- const testNftAddress = await TestERC721.getContractAddress('TestNFT');
47
- const { alice, alicesWallet, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole([], getNftRuleData(testNftAddress));
48
- // Alice initially cannot join because she has no nft
49
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
50
- // Mint an nft for alice - she should be able to join now
51
- await TestERC721.publicMint('TestNFT', alicesWallet.address);
52
- // Wait 2 seconds for the negative auth cache to expire
53
- await new Promise((f) => setTimeout(f, 2000));
54
- // Validate alice can join the channel
55
- await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
56
- await bob.stopSync();
57
- await alice.stopSync();
58
- });
59
- test('oneNftGateJoinFail', async () => {
60
- const testNft1Address = await TestERC721.getContractAddress('TestNFT1');
61
- const { alice, aliceSpaceDapp, bob, spaceId, channelId } = await setupChannelWithCustomRole([], getNftRuleData(testNft1Address));
62
- // Alice has no NFTs, so she should not be able to join the channel
63
- await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
64
- // kill the clients
65
- await bob.stopSync();
66
- await alice.stopSync();
67
- });
68
- });
69
- //# sourceMappingURL=channelsWithErc721Entitlements.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithErc721Entitlements.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc721Entitlements.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @group with-entitlements
3
- */
4
- export {};
5
- //# sourceMappingURL=channelsWithEthBalanceEntitlements.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channelsWithEthBalanceEntitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}