@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.
- package/dist/client.d.ts +13 -31
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +113 -328
- package/dist/client.js.map +1 -1
- package/dist/clientDecryptionExtensions.d.ts.map +1 -1
- package/dist/clientDecryptionExtensions.js +10 -28
- package/dist/clientDecryptionExtensions.js.map +1 -1
- package/dist/createApp.d.ts +1 -1
- package/dist/createApp.d.ts.map +1 -1
- package/dist/createApp.js +6 -2
- package/dist/createApp.js.map +1 -1
- package/dist/id.d.ts +1 -17
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +1 -53
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +0 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -22
- package/dist/index.js.map +1 -1
- package/dist/migrations/snapshotMigration0001.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0001.js +0 -4
- package/dist/migrations/snapshotMigration0001.js.map +1 -1
- package/dist/migrations/snapshotMigration0002.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0002.js +1 -19
- package/dist/migrations/snapshotMigration0002.js.map +1 -1
- package/dist/migrations/snapshotMigration0004.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0004.js +1 -27
- package/dist/migrations/snapshotMigration0004.js.map +1 -1
- package/dist/migrations/snapshotMigration0005.d.ts.map +1 -1
- package/dist/migrations/snapshotMigration0005.js +1 -26
- package/dist/migrations/snapshotMigration0005.js.map +1 -1
- package/dist/notificationsClient.d.ts +1 -5
- package/dist/notificationsClient.d.ts.map +1 -1
- package/dist/notificationsClient.js +2 -103
- package/dist/notificationsClient.js.map +1 -1
- package/dist/persistenceStore.d.ts.map +1 -1
- package/dist/persistenceStore.js +6 -18
- package/dist/persistenceStore.js.map +1 -1
- package/dist/streamEvents.d.ts +0 -6
- package/dist/streamEvents.d.ts.map +1 -1
- package/dist/streamStateView.d.ts +0 -9
- package/dist/streamStateView.d.ts.map +1 -1
- package/dist/streamStateView.js +3 -64
- package/dist/streamStateView.js.map +1 -1
- package/dist/streamStateView_MemberMetadata.d.ts +3 -36
- package/dist/streamStateView_MemberMetadata.d.ts.map +1 -1
- package/dist/streamStateView_MemberMetadata.js +3 -83
- package/dist/streamStateView_MemberMetadata.js.map +1 -1
- package/dist/streamStateView_Members.d.ts +1 -5
- package/dist/streamStateView_Members.d.ts.map +1 -1
- package/dist/streamStateView_Members.js +4 -91
- package/dist/streamStateView_Members.js.map +1 -1
- package/dist/streamStateView_User.d.ts.map +1 -1
- package/dist/streamStateView_User.js +1 -0
- package/dist/streamStateView_User.js.map +1 -1
- package/dist/streamStateView_UserInbox.d.ts.map +1 -1
- package/dist/streamStateView_UserInbox.js +1 -0
- package/dist/streamStateView_UserInbox.js.map +1 -1
- package/dist/streamStateView_UserMetadata.d.ts.map +1 -1
- package/dist/streamStateView_UserMetadata.js +1 -0
- package/dist/streamStateView_UserMetadata.js.map +1 -1
- package/dist/streamStateView_UserSettings.d.ts.map +1 -1
- package/dist/streamStateView_UserSettings.js +9 -1
- package/dist/streamStateView_UserSettings.js.map +1 -1
- package/dist/streamUtils.d.ts.map +1 -1
- package/dist/streamUtils.js +0 -8
- package/dist/streamUtils.js.map +1 -1
- package/dist/sync/SyncedStreamsControllerLite.d.ts.map +1 -1
- package/dist/sync/SyncedStreamsControllerLite.js +7 -11
- package/dist/sync/SyncedStreamsControllerLite.js.map +1 -1
- package/dist/sync-agent/db.d.ts +1 -6
- package/dist/sync-agent/db.d.ts.map +1 -1
- package/dist/sync-agent/db.js +0 -10
- package/dist/sync-agent/db.js.map +1 -1
- package/dist/sync-agent/gdms/gdms.d.ts +5 -6
- package/dist/sync-agent/gdms/gdms.d.ts.map +1 -1
- package/dist/sync-agent/gdms/gdms.js +12 -27
- package/dist/sync-agent/gdms/gdms.js.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.d.ts +10 -8
- package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
- package/dist/sync-agent/gdms/models/gdm.js +29 -34
- package/dist/sync-agent/gdms/models/gdm.js.map +1 -1
- package/dist/sync-agent/members/members.d.ts +6 -18
- package/dist/sync-agent/members/members.d.ts.map +1 -1
- package/dist/sync-agent/members/members.js +25 -124
- package/dist/sync-agent/members/members.js.map +1 -1
- package/dist/sync-agent/members/models/member.d.ts +3 -45
- package/dist/sync-agent/members/models/member.d.ts.map +1 -1
- package/dist/sync-agent/members/models/member.js +15 -114
- package/dist/sync-agent/members/models/member.js.map +1 -1
- package/dist/sync-agent/members/models/myself.d.ts +1 -11
- package/dist/sync-agent/members/models/myself.d.ts.map +1 -1
- package/dist/sync-agent/members/models/myself.js +1 -84
- package/dist/sync-agent/members/models/myself.js.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts +6 -17
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.js +30 -37
- package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
- package/dist/sync-agent/syncAgent.d.ts +11 -22
- package/dist/sync-agent/syncAgent.d.ts.map +1 -1
- package/dist/sync-agent/syncAgent.js +3 -20
- package/dist/sync-agent/syncAgent.js.map +1 -1
- package/dist/sync-agent/user/models/userInbox.d.ts +4 -17
- package/dist/sync-agent/user/models/userInbox.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userInbox.js +14 -61
- package/dist/sync-agent/user/models/userInbox.js.map +1 -1
- package/dist/sync-agent/user/models/userMemberships.d.ts +6 -22
- package/dist/sync-agent/user/models/userMemberships.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userMemberships.js +16 -68
- package/dist/sync-agent/user/models/userMemberships.js.map +1 -1
- package/dist/sync-agent/user/models/userMetadata.d.ts +4 -17
- package/dist/sync-agent/user/models/userMetadata.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userMetadata.js +14 -61
- package/dist/sync-agent/user/models/userMetadata.js.map +1 -1
- package/dist/sync-agent/user/models/userSettings.d.ts +5 -8
- package/dist/sync-agent/user/models/userSettings.d.ts.map +1 -1
- package/dist/sync-agent/user/models/userSettings.js +15 -42
- package/dist/sync-agent/user/models/userSettings.js.map +1 -1
- package/dist/sync-agent/user/user.d.ts +2 -6
- package/dist/sync-agent/user/user.d.ts.map +1 -1
- package/dist/sync-agent/user/user.js +9 -20
- package/dist/sync-agent/user/user.js.map +1 -1
- package/dist/syncedStreamsExtension.d.ts.map +1 -1
- package/dist/syncedStreamsExtension.js +10 -22
- package/dist/syncedStreamsExtension.js.map +1 -1
- package/dist/syncedStreamsLoop.d.ts.map +1 -1
- package/dist/syncedStreamsLoop.js +4 -18
- package/dist/syncedStreamsLoop.js.map +1 -1
- package/dist/tests/bob_testUtils.d.ts.map +1 -1
- package/dist/tests/bob_testUtils.js +35 -69
- package/dist/tests/bob_testUtils.js.map +1 -1
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.js +1 -1
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.js.map +1 -1
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js +1 -1
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js.map +1 -1
- package/dist/tests/multi_ne/bobFlushes.test.js.map +1 -1
- package/dist/tests/multi_ne/channels.test.js +6 -9
- package/dist/tests/multi_ne/channels.test.js.map +1 -1
- package/dist/tests/multi_ne/client.test.js +24 -98
- package/dist/tests/multi_ne/client.test.js.map +1 -1
- package/dist/tests/multi_ne/clientCrypto.test.js +3 -3
- package/dist/tests/multi_ne/clientCrypto.test.js.map +1 -1
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +12 -47
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
- package/dist/tests/multi_ne/ephemeralEvents.test.js +1 -1
- package/dist/tests/multi_ne/ephemeralEvents.test.js.map +1 -1
- package/dist/tests/multi_ne/id.test.js +6 -20
- package/dist/tests/multi_ne/id.test.js.map +1 -1
- package/dist/tests/multi_ne/media.test.js +20 -61
- package/dist/tests/multi_ne/media.test.js.map +1 -1
- package/dist/tests/multi_ne/memberMetadata.test.d.ts +0 -3
- package/dist/tests/multi_ne/memberMetadata.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/memberMetadata.test.js +14 -582
- package/dist/tests/multi_ne/memberMetadata.test.js.map +1 -1
- package/dist/tests/multi_ne/outboundGroupSession.test.js +15 -13
- package/dist/tests/multi_ne/outboundGroupSession.test.js.map +1 -1
- package/dist/tests/multi_ne/restart.test.js +11 -34
- package/dist/tests/multi_ne/restart.test.js.map +1 -1
- package/dist/tests/multi_ne/sign.test.js +2 -2
- package/dist/tests/multi_ne/sign.test.js.map +1 -1
- package/dist/tests/multi_ne/streamMembershipHardening.test.js +0 -3
- package/dist/tests/multi_ne/streamMembershipHardening.test.js.map +1 -1
- package/dist/tests/multi_ne/streamRpcClient.test.js +58 -349
- package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
- package/dist/tests/multi_ne/streamRpcClientSync.test.js +63 -124
- package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
- package/dist/tests/multi_ne/streamStateView_User.test.js +23 -20
- package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
- package/dist/tests/{multi/spaceDapp.test.d.ts → multi_ne/sync-agent/gdms.test.d.ts} +1 -1
- package/dist/tests/multi_ne/sync-agent/gdms.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/gdms.test.js +34 -0
- package/dist/tests/multi_ne/sync-agent/gdms.test.js.map +1 -0
- package/dist/tests/{multi/legacySpace.test.d.ts → multi_ne/sync-agent/member.test.d.ts} +1 -1
- package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/member.test.js +31 -0
- package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -0
- package/dist/tests/{multi/disableSpace.test.d.ts → multi_ne/sync-agent/members.test.d.ts} +1 -1
- package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/members.test.js +40 -0
- package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.js +39 -0
- package/dist/tests/multi_ne/sync-agent/riverConnection.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.js +27 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +66 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +117 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.d.ts +2 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.js +155 -0
- package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -0
- package/dist/tests/multi_ne/sync-agent/user.test.d.ts +5 -0
- package/dist/tests/multi_ne/sync-agent/user.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sync-agent/user.test.js +53 -0
- package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.d.ts +3 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/syncWithBlocks.test.js +47 -77
- package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
- package/dist/tests/multi_ne/syncedStream.test.js +1 -1
- package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
- package/dist/tests/multi_ne/syncedStreams.test.js +1 -1
- package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
- package/dist/tests/multi_ne/userInboxMessage.test.js +4 -4
- package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
- package/dist/tests/multi_ne/userSettings.test.js +3 -16
- package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
- package/dist/tests/multi_ne/workflows.test.js +22 -50
- package/dist/tests/multi_ne/workflows.test.js.map +1 -1
- package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
- package/dist/tests/testDriver_testUtils.js +6 -22
- package/dist/tests/testDriver_testUtils.js.map +1 -1
- package/dist/tests/testUtils.d.ts +3 -104
- package/dist/tests/testUtils.d.ts.map +1 -1
- package/dist/tests/testUtils.js +6 -625
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/unit/snapshotMigration0001.test.js +4 -20
- package/dist/tests/unit/snapshotMigration0001.test.js.map +1 -1
- package/dist/tests/unit/snapshotMigration0004.test.js +5 -43
- package/dist/tests/unit/snapshotMigration0004.test.js.map +1 -1
- package/dist/tests/unit/snapshotMigration0005.test.js +5 -43
- package/dist/tests/unit/snapshotMigration0005.test.js.map +1 -1
- package/dist/tests/unit/streamUtils.test.js +21 -22
- package/dist/tests/unit/streamUtils.test.js.map +1 -1
- package/dist/tests/unit/tags.test.js +5 -7
- package/dist/tests/unit/tags.test.js.map +1 -1
- package/dist/types.d.ts +1 -21
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -231
- package/dist/types.js.map +1 -1
- package/dist/views/models/timelineEvent.d.ts.map +1 -1
- package/dist/views/models/timelineEvent.js +132 -157
- package/dist/views/models/timelineEvent.js.map +1 -1
- package/dist/views/models/timelineTypes.d.ts +51 -30
- package/dist/views/models/timelineTypes.d.ts.map +1 -1
- package/dist/views/models/timelineTypes.js +3 -4
- package/dist/views/models/timelineTypes.js.map +1 -1
- package/dist/views/streams/timelines.d.ts +1 -1
- package/dist/views/streams/timelines.d.ts.map +1 -1
- package/dist/views/streams/timelines.js +3 -3
- package/dist/views/streams/timelines.js.map +1 -1
- package/dist/views/streams/userInboxStreams.d.ts +3 -0
- package/dist/views/streams/userInboxStreams.d.ts.map +1 -1
- package/dist/views/streams/userInboxStreams.js +15 -4
- package/dist/views/streams/userInboxStreams.js.map +1 -1
- package/dist/views/streams/userMetadataStreams.d.ts +3 -0
- package/dist/views/streams/userMetadataStreams.d.ts.map +1 -1
- package/dist/views/streams/userMetadataStreams.js +15 -4
- package/dist/views/streams/userMetadataStreams.js.map +1 -1
- package/dist/views/streams/userSettingsStreams.d.ts +3 -0
- package/dist/views/streams/userSettingsStreams.d.ts.map +1 -1
- package/dist/views/streams/userSettingsStreams.js +17 -6
- package/dist/views/streams/userSettingsStreams.js.map +1 -1
- package/dist/views/streams/userStreamsView.d.ts +3 -0
- package/dist/views/streams/userStreamsView.d.ts.map +1 -1
- package/dist/views/streams/userStreamsView.js +21 -10
- package/dist/views/streams/userStreamsView.js.map +1 -1
- package/dist/views/streamsView.d.ts +0 -6
- package/dist/views/streamsView.d.ts.map +1 -1
- package/dist/views/streamsView.js +0 -11
- package/dist/views/streamsView.js.map +1 -1
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts +0 -2
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -1
- package/dist/views/transforms/dmsAndGdmsTransform.js +1 -26
- package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -1
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts +1 -2
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts.map +1 -1
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js +2 -5
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js.map +1 -1
- package/dist/views/transforms/spaceIdsTransform.d.ts +1 -1
- package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -1
- package/dist/views/transforms/spaceIdsTransform.js +3 -10
- package/dist/views/transforms/spaceIdsTransform.js.map +1 -1
- package/dist/views/transforms/spaceMentionsTransform.d.ts.map +1 -1
- package/dist/views/transforms/spaceMentionsTransform.js +13 -14
- package/dist/views/transforms/spaceMentionsTransform.js.map +1 -1
- package/dist/views/transforms/spaceUnreadsTransform.d.ts.map +1 -1
- package/dist/views/transforms/spaceUnreadsTransform.js +21 -22
- package/dist/views/transforms/spaceUnreadsTransform.js.map +1 -1
- package/dist/views/transforms/unreadMarkersTransform.js +2 -4
- package/dist/views/transforms/unreadMarkersTransform.js.map +1 -1
- package/package.json +10 -9
- package/dist/memberMetadata_DisplayNames.d.ts +0 -26
- package/dist/memberMetadata_DisplayNames.d.ts.map +0 -1
- package/dist/memberMetadata_DisplayNames.js +0 -95
- package/dist/memberMetadata_DisplayNames.js.map +0 -1
- package/dist/memberMetadata_EnsAddresses.d.ts +0 -25
- package/dist/memberMetadata_EnsAddresses.d.ts.map +0 -1
- package/dist/memberMetadata_EnsAddresses.js +0 -86
- package/dist/memberMetadata_EnsAddresses.js.map +0 -1
- package/dist/memberMetadata_Nft.d.ts +0 -31
- package/dist/memberMetadata_Nft.d.ts.map +0 -1
- package/dist/memberMetadata_Nft.js +0 -95
- package/dist/memberMetadata_Nft.js.map +0 -1
- package/dist/memberMetadata_Usernames.d.ts +0 -35
- package/dist/memberMetadata_Usernames.d.ts.map +0 -1
- package/dist/memberMetadata_Usernames.js +0 -162
- package/dist/memberMetadata_Usernames.js.map +0 -1
- package/dist/streamStateView_Channel.d.ts +0 -16
- package/dist/streamStateView_Channel.d.ts.map +0 -1
- package/dist/streamStateView_Channel.js +0 -76
- package/dist/streamStateView_Channel.js.map +0 -1
- package/dist/streamStateView_DMChannel.d.ts +0 -25
- package/dist/streamStateView_DMChannel.d.ts.map +0 -1
- package/dist/streamStateView_DMChannel.js +0 -114
- package/dist/streamStateView_DMChannel.js.map +0 -1
- package/dist/streamStateView_Space.d.ts +0 -31
- package/dist/streamStateView_Space.d.ts.map +0 -1
- package/dist/streamStateView_Space.js +0 -193
- package/dist/streamStateView_Space.js.map +0 -1
- package/dist/sync-agent/dms/dms.d.ts +0 -24
- package/dist/sync-agent/dms/dms.d.ts.map +0 -1
- package/dist/sync-agent/dms/dms.js +0 -60
- package/dist/sync-agent/dms/dms.js.map +0 -1
- package/dist/sync-agent/dms/models/dm.d.ts +0 -74
- package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
- package/dist/sync-agent/dms/models/dm.js +0 -149
- package/dist/sync-agent/dms/models/dm.js.map +0 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts +0 -11
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts.map +0 -1
- package/dist/sync-agent/river-connection/models/transactionalClient.js +0 -14
- package/dist/sync-agent/river-connection/models/transactionalClient.js.map +0 -1
- package/dist/sync-agent/spaces/models/channel.d.ts +0 -121
- package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/channel.js +0 -182
- package/dist/sync-agent/spaces/models/channel.js.map +0 -1
- package/dist/sync-agent/spaces/models/space.d.ts +0 -57
- package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/space.js +0 -125
- package/dist/sync-agent/spaces/models/space.js.map +0 -1
- package/dist/sync-agent/spaces/spaces.d.ts +0 -28
- package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
- package/dist/sync-agent/spaces/spaces.js +0 -71
- package/dist/sync-agent/spaces/spaces.js.map +0 -1
- package/dist/tests/multi/channelSpaceSettings.test.d.ts +0 -5
- package/dist/tests/multi/channelSpaceSettings.test.d.ts.map +0 -1
- package/dist/tests/multi/channelSpaceSettings.test.js +0 -204
- package/dist/tests/multi/channelSpaceSettings.test.js.map +0 -1
- package/dist/tests/multi/disableChannel.test.d.ts +0 -5
- package/dist/tests/multi/disableChannel.test.d.ts.map +0 -1
- package/dist/tests/multi/disableChannel.test.js +0 -30
- package/dist/tests/multi/disableChannel.test.js.map +0 -1
- package/dist/tests/multi/disableSpace.test.d.ts.map +0 -1
- package/dist/tests/multi/disableSpace.test.js +0 -37
- package/dist/tests/multi/disableSpace.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js +0 -129
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js +0 -44
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js +0 -125
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js +0 -72
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +0 -57
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js +0 -86
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js +0 -69
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js +0 -145
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js +0 -53
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/membershipRenewals.test.js +0 -150
- package/dist/tests/multi/entitlements/membershipRenewals.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js +0 -131
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js +0 -109
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js +0 -103
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js +0 -84
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js +0 -168
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js +0 -45
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js +0 -79
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js.map +0 -1
- package/dist/tests/multi/legacySpace.test.d.ts.map +0 -1
- package/dist/tests/multi/legacySpace.test.js +0 -48
- package/dist/tests/multi/legacySpace.test.js.map +0 -1
- package/dist/tests/multi/mediaWithEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/mediaWithEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/mediaWithEntitlements.test.js +0 -152
- package/dist/tests/multi/mediaWithEntitlements.test.js.map +0 -1
- package/dist/tests/multi/membershipManagement.test.d.ts +0 -5
- package/dist/tests/multi/membershipManagement.test.d.ts.map +0 -1
- package/dist/tests/multi/membershipManagement.test.js +0 -76
- package/dist/tests/multi/membershipManagement.test.js.map +0 -1
- package/dist/tests/multi/riverAirdropDapp.test.d.ts +0 -5
- package/dist/tests/multi/riverAirdropDapp.test.d.ts.map +0 -1
- package/dist/tests/multi/riverAirdropDapp.test.js +0 -43
- package/dist/tests/multi/riverAirdropDapp.test.js.map +0 -1
- package/dist/tests/multi/spaceDapp.test.d.ts.map +0 -1
- package/dist/tests/multi/spaceDapp.test.js +0 -61
- package/dist/tests/multi/spaceDapp.test.js.map +0 -1
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts +0 -2
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts.map +0 -1
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js +0 -63
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js.map +0 -1
- package/dist/tests/multi/withEntitlements.test.d.ts +0 -5
- package/dist/tests/multi/withEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi/withEntitlements.test.js +0 -125
- package/dist/tests/multi/withEntitlements.test.js.map +0 -1
- package/dist/tests/multi_ne/dms.test.d.ts +0 -5
- package/dist/tests/multi_ne/dms.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/dms.test.js +0 -131
- package/dist/tests/multi_ne/dms.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js +0 -54
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js +0 -37
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Nft.test.js +0 -49
- package/dist/tests/multi_ne/memberMetadata_Nft.test.js.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts +0 -5
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.js +0 -126
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.js.map +0 -1
- package/dist/tests/multi_ne/space.test.d.ts +0 -5
- package/dist/tests/multi_ne/space.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/space.test.js +0 -284
- package/dist/tests/multi_ne/space.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js +0 -78
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js +0 -89
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js +0 -88
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts +0 -6
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js +0 -105
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js.map +0 -1
- package/dist/tests/multi_v2/updateRole.test.d.ts +0 -5
- package/dist/tests/multi_v2/updateRole.test.d.ts.map +0 -1
- package/dist/tests/multi_v2/updateRole.test.js +0 -25
- package/dist/tests/multi_v2/updateRole.test.js.map +0 -1
- package/dist/tests/unit/snapshotMigration0002.test.d.ts +0 -2
- package/dist/tests/unit/snapshotMigration0002.test.d.ts.map +0 -1
- package/dist/tests/unit/snapshotMigration0002.test.js +0 -31
- package/dist/tests/unit/snapshotMigration0002.test.js.map +0 -1
- package/dist/views/streams/channelStreams.d.ts +0 -8
- package/dist/views/streams/channelStreams.d.ts.map +0 -1
- package/dist/views/streams/channelStreams.js +0 -9
- package/dist/views/streams/channelStreams.js.map +0 -1
- package/dist/views/streams/dmStreams.d.ts +0 -13
- package/dist/views/streams/dmStreams.d.ts.map +0 -1
- package/dist/views/streams/dmStreams.js +0 -33
- package/dist/views/streams/dmStreams.js.map +0 -1
- package/dist/views/streams/spaceStreams.d.ts +0 -17
- package/dist/views/streams/spaceStreams.d.ts.map +0 -1
- package/dist/views/streams/spaceStreams.js +0 -52
- package/dist/views/streams/spaceStreams.js.map +0 -1
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { setupChannelWithCustomRole, expectUserCanJoinChannel } from '../../testUtils';
|
|
5
|
-
import { dlog } from '@towns-labs/utils';
|
|
6
|
-
import { NoopRuleData, Permission } from '@towns-labs/web3';
|
|
7
|
-
const log = dlog('csb:test:channelEntitlementPermissions');
|
|
8
|
-
describe('channelEntitlementPermissions', () => {
|
|
9
|
-
test("READ-only user cannot write or react to a channel's messages", async () => {
|
|
10
|
-
const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole(['alice'], NoopRuleData);
|
|
11
|
-
// Validate alice can join the channel
|
|
12
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
13
|
-
const { eventId: refEventId } = await bob.sendMessage(channelId, 'Hello, world!');
|
|
14
|
-
// React to Bob's message not allowed.
|
|
15
|
-
await expect(alice.sendChannelMessage_Reaction(channelId, { reaction: '👍', refEventId })).rejects.toThrow( /*not entitled to add message to channel*/);
|
|
16
|
-
// Reply to Bob's message not allowed.
|
|
17
|
-
await expect(alice.sendChannelMessage_Text(channelId, {
|
|
18
|
-
content: {
|
|
19
|
-
body: 'Hello, world!',
|
|
20
|
-
mentions: [],
|
|
21
|
-
attachments: [],
|
|
22
|
-
},
|
|
23
|
-
threadId: refEventId, // reply to Bob's message
|
|
24
|
-
})).rejects.toThrow( /*not entitled to add message to channel*/);
|
|
25
|
-
// Top-level post not allowed.
|
|
26
|
-
await expect(alice.sendMessage(channelId, 'Hello, world!')).rejects.toThrow( /*not entitled to add message to channel*/);
|
|
27
|
-
const doneStart = Date.now();
|
|
28
|
-
// kill the clients
|
|
29
|
-
await bob.stopSync();
|
|
30
|
-
await alice.stopSync();
|
|
31
|
-
log('Done', Date.now() - doneStart);
|
|
32
|
-
});
|
|
33
|
-
test('READ + REACT user can react and redact reactions, but cannot write (top-level or reply)', async () => {
|
|
34
|
-
const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole(['alice'], NoopRuleData, [Permission.Read, Permission.React]);
|
|
35
|
-
// Validate alice can join the channel
|
|
36
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
37
|
-
const { eventId: refEventId } = await bob.sendMessage(channelId, 'Hello, world!');
|
|
38
|
-
// Reacting to Bob's message should be allowed. Redacting the reaction should also be allowed.
|
|
39
|
-
const { eventId } = await alice.sendChannelMessage_Reaction(channelId, {
|
|
40
|
-
reaction: '👍',
|
|
41
|
-
refEventId,
|
|
42
|
-
});
|
|
43
|
-
expect(eventId).toBeDefined();
|
|
44
|
-
await expect(alice.sendChannelMessage_Redaction(channelId, {
|
|
45
|
-
refEventId: eventId,
|
|
46
|
-
})).resolves.not.toThrow();
|
|
47
|
-
// Replying to Bob's message should not be allowed.
|
|
48
|
-
await expect(alice.sendChannelMessage_Text(channelId, {
|
|
49
|
-
content: {
|
|
50
|
-
body: 'Hello, world!',
|
|
51
|
-
mentions: [],
|
|
52
|
-
attachments: [],
|
|
53
|
-
},
|
|
54
|
-
threadId: refEventId, // reply to Bob's message
|
|
55
|
-
})).rejects.toThrow( /*not entitled to add message to channel*/);
|
|
56
|
-
// Cannot make a top-level post to the channel.
|
|
57
|
-
await expect(alice.sendMessage(channelId, 'Hello, world!')).rejects.toThrow( /*not entitled to add message to channel*/);
|
|
58
|
-
const doneStart = Date.now();
|
|
59
|
-
// kill the clients
|
|
60
|
-
await bob.stopSync();
|
|
61
|
-
await alice.stopSync();
|
|
62
|
-
log('Done', Date.now() - doneStart);
|
|
63
|
-
});
|
|
64
|
-
// In practice we would never have a user with only write permissions, but this is a good test
|
|
65
|
-
// to make sure our permissions are non-overlapping.
|
|
66
|
-
test('WRITE user can write (top-level plus reply), react', async () => {
|
|
67
|
-
const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole(['alice'], NoopRuleData, [Permission.Read, Permission.Write]);
|
|
68
|
-
// Validate alice can join the channel
|
|
69
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
70
|
-
const { eventId: refEventId } = await bob.sendMessage(channelId, 'Hello, world!');
|
|
71
|
-
// Reacting to Bob's message should be allowed. Redacting the reaction should also be allowed.
|
|
72
|
-
const { eventId } = await alice.sendChannelMessage_Reaction(channelId, {
|
|
73
|
-
reaction: '👍',
|
|
74
|
-
refEventId,
|
|
75
|
-
});
|
|
76
|
-
expect(eventId).toBeDefined();
|
|
77
|
-
await expect(alice.sendChannelMessage_Redaction(channelId, {
|
|
78
|
-
refEventId: eventId,
|
|
79
|
-
})).resolves.not.toThrow();
|
|
80
|
-
// Replying to Bob's message should be allowed.
|
|
81
|
-
await expect(alice.sendChannelMessage_Text(channelId, {
|
|
82
|
-
content: {
|
|
83
|
-
body: 'Hello, world!',
|
|
84
|
-
mentions: [],
|
|
85
|
-
attachments: [],
|
|
86
|
-
},
|
|
87
|
-
threadId: refEventId, // reply to Bob's message
|
|
88
|
-
})).resolves.not.toThrow();
|
|
89
|
-
// Top-level post currently allowed.
|
|
90
|
-
await expect(alice.sendMessage(channelId, 'Hello, world!')).resolves.not.toThrow();
|
|
91
|
-
const doneStart = Date.now();
|
|
92
|
-
// kill the clients
|
|
93
|
-
await bob.stopSync();
|
|
94
|
-
await alice.stopSync();
|
|
95
|
-
log('Done', Date.now() - doneStart);
|
|
96
|
-
});
|
|
97
|
-
test('REACT + WRITE user can do all WRITE user can do', async () => {
|
|
98
|
-
const { alice, bob, aliceSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole(['alice'], NoopRuleData, [Permission.Read, Permission.React, Permission.Write]);
|
|
99
|
-
// Validate alice can join the channel
|
|
100
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
101
|
-
const { eventId: refEventId } = await bob.sendMessage(channelId, 'Hello, world!');
|
|
102
|
-
// Reacting to Bob's message should be allowed. Redacting the reaction should also be allowed.
|
|
103
|
-
const { eventId } = await alice.sendChannelMessage_Reaction(channelId, {
|
|
104
|
-
reaction: '👍',
|
|
105
|
-
refEventId,
|
|
106
|
-
});
|
|
107
|
-
expect(eventId).toBeDefined();
|
|
108
|
-
await expect(alice.sendChannelMessage_Redaction(channelId, {
|
|
109
|
-
refEventId: eventId,
|
|
110
|
-
})).resolves.not.toThrow();
|
|
111
|
-
// Replying to Bob's message should be allowed.
|
|
112
|
-
await expect(alice.sendChannelMessage_Text(channelId, {
|
|
113
|
-
content: {
|
|
114
|
-
body: 'Hello, world!',
|
|
115
|
-
mentions: [],
|
|
116
|
-
attachments: [],
|
|
117
|
-
},
|
|
118
|
-
threadId: refEventId, // reply to Bob's message
|
|
119
|
-
})).resolves.not.toThrow();
|
|
120
|
-
// Top-level post currently allowed.
|
|
121
|
-
await expect(alice.sendMessage(channelId, 'Hello, world!')).resolves.not.toThrow();
|
|
122
|
-
const doneStart = Date.now();
|
|
123
|
-
// kill the clients
|
|
124
|
-
await bob.stopSync();
|
|
125
|
-
await alice.stopSync();
|
|
126
|
-
log('Done', Date.now() - doneStart);
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
//# sourceMappingURL=channelEntitlementPermissions.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelEntitlementPermissions.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelEntitlementPermissions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelWithThreeNestedEntitlement.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { setupWalletsAndContexts, expectUserCanJoin, setupChannelWithCustomRole, expectUserCanJoinChannel, expectUserCannotJoinChannel, } from '../../testUtils';
|
|
5
|
-
import { TestERC721, createExternalNFTStruct } from '@towns-labs/web3';
|
|
6
|
-
describe('channelsWithThreeNestedEntitlements', () => {
|
|
7
|
-
// This test takes almost one minute to run in CI and therefore gets its own file.
|
|
8
|
-
test('user with only one entitlement from 3-nested NFT rule data can join channel', async () => {
|
|
9
|
-
const testNft1 = 'TestNft1';
|
|
10
|
-
const testNft2 = 'TestNft2';
|
|
11
|
-
const testNft3 = 'TestNft3';
|
|
12
|
-
const testNftAddress = await TestERC721.getContractAddress(testNft1);
|
|
13
|
-
const testNftAddress2 = await TestERC721.getContractAddress(testNft2);
|
|
14
|
-
const testNftAddress3 = await TestERC721.getContractAddress(testNft3);
|
|
15
|
-
const ruleData = createExternalNFTStruct([testNftAddress, testNftAddress2, testNftAddress3]);
|
|
16
|
-
const { alice, alicesWallet, aliceSpaceDapp, bob, carol, carolsWallet, carolSpaceDapp, spaceId, defaultChannelId, channelId, } = await setupChannelWithCustomRole([], ruleData);
|
|
17
|
-
// Set up additional users
|
|
18
|
-
const { alice: dave, alicesWallet: davesWallet, aliceSpaceDapp: daveSpaceDapp, aliceProvider: daveProvider, } = await setupWalletsAndContexts();
|
|
19
|
-
// Add Dave to the space
|
|
20
|
-
await expectUserCanJoin(spaceId, defaultChannelId, 'dave', dave, daveSpaceDapp, davesWallet.address, daveProvider.wallet);
|
|
21
|
-
// Alice initially cannot join because she has no nft
|
|
22
|
-
await expectUserCannotJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
23
|
-
// Alice, Carol and Dave will each have one of the three NFTs, all should be able to join.
|
|
24
|
-
// Mint an nft for alice - she should be able to join now
|
|
25
|
-
await TestERC721.publicMint(testNft1, alicesWallet.address);
|
|
26
|
-
// Wait 2 seconds for the negative auth cache on the client to expire
|
|
27
|
-
await new Promise((f) => setTimeout(f, 2000));
|
|
28
|
-
// Validate alice can join the channel
|
|
29
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
30
|
-
// Mint an nft for carol - she should be able to join now
|
|
31
|
-
await TestERC721.publicMint(testNft2, carolsWallet.address);
|
|
32
|
-
// Validate carol can join the channel
|
|
33
|
-
await expectUserCanJoinChannel(carol, carolSpaceDapp, spaceId, channelId);
|
|
34
|
-
// Mint an nft for dave - he should be able to join now
|
|
35
|
-
await TestERC721.publicMint(testNft3, davesWallet.address);
|
|
36
|
-
// Validate dave can join the channel
|
|
37
|
-
await expectUserCanJoinChannel(dave, daveSpaceDapp, spaceId, channelId);
|
|
38
|
-
await bob.stopSync();
|
|
39
|
-
await alice.stopSync();
|
|
40
|
-
await carol.stopSync();
|
|
41
|
-
await dave.stopSync();
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
//# sourceMappingURL=channelWithThreeNestedEntitlement.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelWithThreeNestedEntitlement.test.js","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACH,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,2BAA2B,GAC9B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAW,UAAU,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AAE/E,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACjD,kFAAkF;IAClF,IAAI,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,QAAQ,GAAG,UAAU,CAAA;QAC3B,MAAM,QAAQ,GAAG,UAAU,CAAA;QAC3B,MAAM,QAAQ,GAAG,UAAU,CAAA;QAC3B,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QACpE,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QACrE,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAErE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC,CAAA;QAC5F,MAAM,EACF,KAAK,EACL,YAAY,EACZ,cAAc,EACd,GAAG,EACH,KAAK,EACL,YAAY,EACZ,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,SAAS,GACZ,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAElD,0BAA0B;QAC1B,MAAM,EACF,KAAK,EAAE,IAAI,EACX,YAAY,EAAE,WAAW,EACzB,cAAc,EAAE,aAAa,EAC7B,aAAa,EAAE,YAAY,GAC9B,GAAG,MAAM,uBAAuB,EAAE,CAAA;QACnC,wBAAwB;QACxB,MAAM,iBAAiB,CACnB,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,IAAI,EACJ,aAAa,EACb,WAAW,CAAC,OAAO,EACnB,YAAY,CAAC,MAAM,CACtB,CAAA;QAED,qDAAqD;QACrD,MAAM,2BAA2B,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAE7E,0FAA0F;QAC1F,yDAAyD;QACzD,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAkB,CAAC,CAAA;QAEtE,qEAAqE;QACrE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAE7C,sCAAsC;QACtC,MAAM,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAE1E,yDAAyD;QACzD,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,OAAkB,CAAC,CAAA;QAEtE,sCAAsC;QACtC,MAAM,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAE1E,uDAAuD;QACvD,MAAM,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAkB,CAAC,CAAA;QAErE,qCAAqC;QACrC,MAAM,wBAAwB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAExE,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAA;QACpB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;QACtB,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;QACtB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -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 +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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelsWithErc20Entitlements.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelsWithErc20Entitlements.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|