@towns-labs/sdk 2.0.12 → 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 +11 -31
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +68 -327
- 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 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -20
- 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/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 +13 -0
- package/dist/sync-agent/db.d.ts.map +1 -0
- package/dist/sync-agent/db.js +24 -0
- package/dist/sync-agent/db.js.map +1 -0
- package/dist/sync-agent/gdms/models/gdm.d.ts +3 -3
- package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.d.ts +1 -6
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
- package/dist/sync-agent/river-connection/riverConnection.js +3 -8
- package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
- package/dist/sync-agent/syncAgent.d.ts +0 -6
- package/dist/sync-agent/syncAgent.d.ts.map +1 -1
- package/dist/sync-agent/syncAgent.js +0 -8
- package/dist/sync-agent/syncAgent.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_ne/sync-agent/member.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/member.test.js +19 -8
- package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/members.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/members.test.js +24 -19
- package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/streams.test.js +14 -14
- package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +23 -15
- package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +3 -0
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -1
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +34 -70
- package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/timeline.test.js +68 -119
- package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -1
- package/dist/tests/multi_ne/sync-agent/user.test.js +10 -5
- package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -1
- 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 +1 -178
- package/dist/views/models/timelineEvent.js.map +1 -1
- package/dist/views/models/timelineTypes.d.ts +3 -29
- package/dist/views/models/timelineTypes.d.ts.map +1 -1
- package/dist/views/models/timelineTypes.js +0 -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/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 +9 -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 -45
- package/dist/sync-agent/dms/dms.js.map +0 -1
- package/dist/sync-agent/dms/models/dm.d.ts +0 -73
- package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
- package/dist/sync-agent/dms/models/dm.js +0 -143
- package/dist/sync-agent/dms/models/dm.js.map +0 -1
- package/dist/sync-agent/spaces/models/channel.d.ts +0 -102
- package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/channel.js +0 -169
- package/dist/sync-agent/spaces/models/channel.js.map +0 -1
- package/dist/sync-agent/spaces/models/space.d.ts +0 -56
- package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
- package/dist/sync-agent/spaces/models/space.js +0 -115
- package/dist/sync-agent/spaces/models/space.js.map +0 -1
- package/dist/sync-agent/spaces/spaces.d.ts +0 -25
- package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
- package/dist/sync-agent/spaces/spaces.js +0 -56
- 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 +0 -5
- 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 +0 -5
- 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_ne/sync-agent/spaces.test.d.ts +0 -2
- package/dist/tests/multi_ne/sync-agent/spaces.test.d.ts.map +0 -1
- package/dist/tests/multi_ne/sync-agent/spaces.test.js +0 -33
- package/dist/tests/multi_ne/sync-agent/spaces.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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaces.d.ts","sourceRoot":"","sources":["../../../src/sync-agent/spaces/spaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAQhE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAMxD,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,qBAAa,MAAO,SAAQ,UAAU,CAAC,WAAW,CAAC;IAI3C,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,eAAe;IAJ3B,OAAO,CAAC,MAAM,CAA4B;gBAG9B,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe;IAW5C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK;IAQhC,OAAO,CAAC,wBAAwB;IAgB1B,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM;;;;IActE,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAItE"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { Space } from './models/space';
|
|
2
|
-
import { MembershipOp } from '@towns-labs/proto';
|
|
3
|
-
import { isSpaceStreamId, makeDefaultChannelStreamId, makeSpaceStreamId, makeUniqueSpaceAddress, } from '../../id';
|
|
4
|
-
import { check, dlogger } from '@towns-labs/utils';
|
|
5
|
-
import { Observable } from '../../observable/observable';
|
|
6
|
-
import { isDefined } from '../../check';
|
|
7
|
-
const logger = dlogger('csb:spaces');
|
|
8
|
-
export class Spaces extends Observable {
|
|
9
|
-
riverConnection;
|
|
10
|
-
userMemberships;
|
|
11
|
-
spaces = {};
|
|
12
|
-
constructor(riverConnection, userMemberships) {
|
|
13
|
-
super({ spaceIds: [], initialized: false });
|
|
14
|
-
this.riverConnection = riverConnection;
|
|
15
|
-
this.userMemberships = userMemberships;
|
|
16
|
-
this.userMemberships.subscribe((value) => {
|
|
17
|
-
this.onUserMembershipsChanged(value);
|
|
18
|
-
}, { fireImediately: true });
|
|
19
|
-
}
|
|
20
|
-
getSpace(spaceId) {
|
|
21
|
-
check(isSpaceStreamId(spaceId), 'Invalid spaceId');
|
|
22
|
-
if (!this.spaces[spaceId]) {
|
|
23
|
-
this.spaces[spaceId] = new Space(spaceId, this.riverConnection);
|
|
24
|
-
}
|
|
25
|
-
return this.spaces[spaceId];
|
|
26
|
-
}
|
|
27
|
-
onUserMembershipsChanged(value) {
|
|
28
|
-
const spaceIds = Object.entries(value.streamMemberships)
|
|
29
|
-
.filter(([key, m]) => isDefined(m) && isSpaceStreamId(key) && m.op === MembershipOp.SO_JOIN)
|
|
30
|
-
.map(([key]) => key);
|
|
31
|
-
this.setValue({ spaceIds, initialized: value.initialized });
|
|
32
|
-
for (const spaceId of spaceIds) {
|
|
33
|
-
if (!this.spaces[spaceId]) {
|
|
34
|
-
this.spaces[spaceId] = new Space(spaceId, this.riverConnection);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async createSpace(params, _signer) {
|
|
39
|
-
const channelName = params?.channelName ?? 'general';
|
|
40
|
-
const spaceAddress = makeUniqueSpaceAddress();
|
|
41
|
-
const spaceId = makeSpaceStreamId(spaceAddress);
|
|
42
|
-
const defaultChannelId = makeDefaultChannelStreamId(spaceAddress);
|
|
43
|
-
logger.log('spaceId, defaultChannelId', { spaceId, defaultChannelId });
|
|
44
|
-
await this.riverConnection.login({ spaceId });
|
|
45
|
-
await this.riverConnection.call(async (client) => {
|
|
46
|
-
await client.createSpace(spaceId);
|
|
47
|
-
await client.createChannel(spaceId, channelName, '', defaultChannelId);
|
|
48
|
-
});
|
|
49
|
-
return { spaceId, defaultChannelId };
|
|
50
|
-
}
|
|
51
|
-
async joinSpace(spaceId, ...args) {
|
|
52
|
-
const space = this.getSpace(spaceId);
|
|
53
|
-
return space.join(...args);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=spaces.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"spaces.js","sourceRoot":"","sources":["../../../src/sync-agent/spaces/spaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelSpaceSettings.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/channelSpaceSettings.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { setupWalletsAndContexts, createSpaceAndDefaultChannel, everyoneMembershipStruct, createChannel, waitFor, expectUserCanJoin, createRole, } from '../testUtils';
|
|
5
|
-
import { check } from '@towns-labs/utils';
|
|
6
|
-
import { Permission, NoopRuleData } from '@towns-labs/web3';
|
|
7
|
-
describe('channelSpaceSettingsTests', () => {
|
|
8
|
-
test('channel creation with default settings', async () => {
|
|
9
|
-
const { bob, bobProvider, bobSpaceDapp } = await setupWalletsAndContexts();
|
|
10
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
11
|
-
// Track autojoin state of channels via emitted client events
|
|
12
|
-
const updatedChannelAutojoinState = new Map();
|
|
13
|
-
bob.on('spaceChannelAutojoinUpdated', (_spaceId, channelId, autojoin) => {
|
|
14
|
-
updatedChannelAutojoinState.set(channelId, autojoin);
|
|
15
|
-
});
|
|
16
|
-
// The default channel is created without channel settings here. It should
|
|
17
|
-
// be autojoin=true and hideUserJoinLeaveEvents=false.
|
|
18
|
-
const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
19
|
-
// Create another channel. This channel should be autojoin=false, hideUserJoinLeaveEvents=false.
|
|
20
|
-
// Create channel on contract.
|
|
21
|
-
const { channelId: channel1Id, error } = await createChannel(bobSpaceDapp, bobProvider, spaceId, 'channel1', [1], // member role created on town creation
|
|
22
|
-
bobProvider.wallet);
|
|
23
|
-
expect(error).toBeUndefined();
|
|
24
|
-
// Create channel stream
|
|
25
|
-
const { streamId: channelStream1Id } = await bob.createChannel(spaceId, 'channel1', 'channel1 topic', channel1Id);
|
|
26
|
-
expect(channelStream1Id).toEqual(channel1Id);
|
|
27
|
-
const spaceStream = bob.streams.get(spaceId);
|
|
28
|
-
expect(spaceStream).toBeDefined();
|
|
29
|
-
const spaceStreamView = spaceStream.view.spaceContent;
|
|
30
|
-
expect(spaceStreamView).toBeDefined();
|
|
31
|
-
await waitFor(() => {
|
|
32
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
33
|
-
check(Object.keys(channelMetadata).length === 2);
|
|
34
|
-
check(channelMetadata[defaultChannelId]?.isAutojoin === true);
|
|
35
|
-
check(channelMetadata[defaultChannelId]?.hideUserJoinLeaveEvents === false);
|
|
36
|
-
check(channelMetadata[channel1Id]?.isAutojoin === false);
|
|
37
|
-
check(channelMetadata[channel1Id]?.hideUserJoinLeaveEvents === false);
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
test('create announcement channel (autojoin, hide user join/leave events)', async () => {
|
|
41
|
-
const { bob, bobProvider, bobSpaceDapp } = await setupWalletsAndContexts();
|
|
42
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
43
|
-
const { spaceId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
44
|
-
const { channelId: announcementChannelId, error } = await createChannel(bobSpaceDapp, bobProvider, spaceId, 'channel2', [1], // member role created on town creation
|
|
45
|
-
bobProvider.wallet);
|
|
46
|
-
expect(error).toBeUndefined();
|
|
47
|
-
expect(announcementChannelId).toBeDefined();
|
|
48
|
-
const { streamId: announcementStreamId } = await bob.createChannel(spaceId, 'channel2', 'channel2 topic', announcementChannelId, undefined, {
|
|
49
|
-
autojoin: true,
|
|
50
|
-
hideUserJoinLeaveEvents: true,
|
|
51
|
-
});
|
|
52
|
-
const spaceStream = bob.streams.get(spaceId);
|
|
53
|
-
expect(spaceStream).toBeDefined();
|
|
54
|
-
const spaceStreamView = spaceStream.view.spaceContent;
|
|
55
|
-
expect(spaceStreamView).toBeDefined();
|
|
56
|
-
await waitFor(() => {
|
|
57
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
58
|
-
check(Object.keys(channelMetadata).length === 2);
|
|
59
|
-
check(channelMetadata[announcementStreamId]?.isAutojoin === true);
|
|
60
|
-
check(channelMetadata[announcementStreamId]?.hideUserJoinLeaveEvents === true);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
test('set autojoin for channel', async () => {
|
|
64
|
-
const { bob, bobProvider, bobSpaceDapp } = await setupWalletsAndContexts();
|
|
65
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
66
|
-
// Track autojoin state of channels via emitted client events
|
|
67
|
-
const updatedChannelAutojoinState = new Map();
|
|
68
|
-
bob.on('spaceChannelAutojoinUpdated', (_spaceId, channelId, autojoin) => {
|
|
69
|
-
updatedChannelAutojoinState.set(channelId, autojoin);
|
|
70
|
-
});
|
|
71
|
-
const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
72
|
-
// Create channel on contract
|
|
73
|
-
const { channelId: channel1Id, error } = await createChannel(bobSpaceDapp, bobProvider, spaceId, 'channel1', [1], // member role created on town creation
|
|
74
|
-
bobProvider.wallet);
|
|
75
|
-
expect(error).toBeUndefined();
|
|
76
|
-
// Create channel stream
|
|
77
|
-
const { streamId: channelStream1Id } = await bob.createChannel(spaceId, 'channel1', 'channel1 topic', channel1Id);
|
|
78
|
-
expect(channelStream1Id).toEqual(channel1Id);
|
|
79
|
-
const spaceStream = bob.streams.get(spaceId);
|
|
80
|
-
expect(spaceStream).toBeDefined();
|
|
81
|
-
const spaceStreamView = spaceStream.view.spaceContent;
|
|
82
|
-
expect(spaceStreamView).toBeDefined();
|
|
83
|
-
// Default channel only should be autojoin by default
|
|
84
|
-
await waitFor(() => {
|
|
85
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
86
|
-
check(Object.keys(channelMetadata).length === 2);
|
|
87
|
-
check(channelMetadata[defaultChannelId]?.isAutojoin === true);
|
|
88
|
-
check(channelMetadata[channel1Id]?.isAutojoin === false);
|
|
89
|
-
});
|
|
90
|
-
// Set channel1 to autojoin=true
|
|
91
|
-
const { eventId } = await bob.updateChannelAutojoin(spaceId, channel1Id, true);
|
|
92
|
-
expect(eventId).toBeDefined();
|
|
93
|
-
// Validate autojoin event was emitted for channel1
|
|
94
|
-
await waitFor(() => {
|
|
95
|
-
expect(updatedChannelAutojoinState.size).toBe(1);
|
|
96
|
-
expect(updatedChannelAutojoinState.get(channel1Id)).toBe(true);
|
|
97
|
-
});
|
|
98
|
-
// Expect autojoin change to sync to space stream view
|
|
99
|
-
await waitFor(() => {
|
|
100
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
101
|
-
check(channelMetadata[channel1Id]?.isAutojoin === true);
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
test('unpermitted user cannot update channel autojoin', async () => {
|
|
105
|
-
const { bob, bobProvider, bobSpaceDapp, alice, aliceSpaceDapp, aliceProvider, carol, carolsWallet, carolProvider, carolSpaceDapp, } = await setupWalletsAndContexts();
|
|
106
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
107
|
-
const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
108
|
-
// Validate current autojoin state for default channel is true
|
|
109
|
-
const spaceStream = bob.streams.get(spaceId);
|
|
110
|
-
expect(spaceStream).toBeDefined();
|
|
111
|
-
const spaceStreamView = spaceStream.view.spaceContent;
|
|
112
|
-
expect(spaceStreamView).toBeDefined();
|
|
113
|
-
await waitFor(() => {
|
|
114
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
115
|
-
check(Object.keys(channelMetadata).length === 1);
|
|
116
|
-
check(channelMetadata[defaultChannelId]?.isAutojoin === true);
|
|
117
|
-
});
|
|
118
|
-
// Unpermitted user alice should not be able to update autojoin.
|
|
119
|
-
// First, add alice to the space and channel.
|
|
120
|
-
await expectUserCanJoin(spaceId, defaultChannelId, 'alice', alice, aliceSpaceDapp, aliceProvider.wallet.address, aliceProvider.wallet);
|
|
121
|
-
// Alice's update should fail
|
|
122
|
-
await expect(alice.updateChannelAutojoin(spaceId, defaultChannelId, false)).rejects.toThrow(/7:PERMISSION_DENIED/);
|
|
123
|
-
// Add Carol to a role that gives her AddRemoveChannels permission so she can update autojoin
|
|
124
|
-
const { error: roleError } = await createRole(bobSpaceDapp, bobProvider, spaceId, 'gated role', [Permission.AddRemoveChannels], [carolsWallet.address], NoopRuleData, bobProvider.wallet);
|
|
125
|
-
expect(roleError).toBeUndefined();
|
|
126
|
-
// Add Carol to the space and the channel
|
|
127
|
-
await expectUserCanJoin(spaceId, defaultChannelId, 'carol', carol, carolSpaceDapp, carolProvider.wallet.address, carolProvider.wallet);
|
|
128
|
-
// Carol's update should succeed
|
|
129
|
-
await expect(carol.updateChannelAutojoin(spaceId, defaultChannelId, false)).resolves.not.toThrow();
|
|
130
|
-
// Validate autojoin event was applied on client
|
|
131
|
-
await waitFor(() => {
|
|
132
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
133
|
-
check(Object.keys(channelMetadata).length === 1);
|
|
134
|
-
check(channelMetadata[defaultChannelId]?.isAutojoin === false);
|
|
135
|
-
});
|
|
136
|
-
});
|
|
137
|
-
test('set hideUserJoinLeaveEvents on channels', async () => {
|
|
138
|
-
const { bob, bobProvider, bobSpaceDapp } = await setupWalletsAndContexts();
|
|
139
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
140
|
-
// Track hideJoinLeaveEvent state of channels via emitted client events
|
|
141
|
-
const updatedChannelHideJoinLeaveEventsState = new Map();
|
|
142
|
-
bob.on('spaceChannelHideUserJoinLeaveEventsUpdated', (_spaceId, channelId, hideJoinLeaveEvents) => {
|
|
143
|
-
updatedChannelHideJoinLeaveEventsState.set(channelId, hideJoinLeaveEvents);
|
|
144
|
-
});
|
|
145
|
-
const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
146
|
-
const spaceStream = bob.streams.get(spaceId);
|
|
147
|
-
expect(spaceStream).toBeDefined();
|
|
148
|
-
const spaceStreamView = spaceStream.view.spaceContent;
|
|
149
|
-
expect(spaceStreamView).toBeDefined();
|
|
150
|
-
// All channels show join/leave events by default
|
|
151
|
-
await waitFor(() => {
|
|
152
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
153
|
-
check(Object.keys(channelMetadata).length === 1);
|
|
154
|
-
check(channelMetadata[defaultChannelId]?.hideUserJoinLeaveEvents === false);
|
|
155
|
-
});
|
|
156
|
-
// Set channel1 to hideUserJoinLeaveEvents=true
|
|
157
|
-
const { eventId } = await bob.updateChannelHideUserJoinLeaveEvents(spaceId, defaultChannelId, true);
|
|
158
|
-
expect(eventId).toBeDefined();
|
|
159
|
-
// Validate updateHideUserJoinLeaveEvent event was emitted for channel1
|
|
160
|
-
await waitFor(() => {
|
|
161
|
-
expect(updatedChannelHideJoinLeaveEventsState.size).toBe(1);
|
|
162
|
-
expect(updatedChannelHideJoinLeaveEventsState.get(defaultChannelId)).toBe(true);
|
|
163
|
-
});
|
|
164
|
-
// Expect hideUserJoinLeaveEvents change to sync to space stream view
|
|
165
|
-
await waitFor(() => {
|
|
166
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
167
|
-
check(channelMetadata[defaultChannelId]?.hideUserJoinLeaveEvents === true);
|
|
168
|
-
});
|
|
169
|
-
});
|
|
170
|
-
test('unpermitted user cannot update channel hideUserJoinLeaveEvents', async () => {
|
|
171
|
-
const { bob, bobProvider, bobSpaceDapp, alice, aliceSpaceDapp, aliceProvider, carol, carolsWallet, carolSpaceDapp, carolProvider, } = await setupWalletsAndContexts();
|
|
172
|
-
const everyoneMembership = await everyoneMembershipStruct(bobSpaceDapp, bob);
|
|
173
|
-
const { spaceId, defaultChannelId } = await createSpaceAndDefaultChannel(bob, bobSpaceDapp, bobProvider.wallet, "bob's town", everyoneMembership);
|
|
174
|
-
// Validate local synced client state for channel setting is false
|
|
175
|
-
const spaceStream = bob.streams.get(spaceId);
|
|
176
|
-
expect(spaceStream).toBeDefined();
|
|
177
|
-
const spaceStreamView = spaceStream.view.spaceContent;
|
|
178
|
-
expect(spaceStreamView).toBeDefined();
|
|
179
|
-
await waitFor(() => {
|
|
180
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
181
|
-
check(Object.keys(channelMetadata).length === 1);
|
|
182
|
-
check(channelMetadata[defaultChannelId]?.hideUserJoinLeaveEvents === false);
|
|
183
|
-
});
|
|
184
|
-
// Unpermitted user alice should not be able to update hideUserJoinLeaveEvents.
|
|
185
|
-
// First, add alice to the space and channel.
|
|
186
|
-
await expectUserCanJoin(spaceId, defaultChannelId, 'alice', alice, aliceSpaceDapp, aliceProvider.wallet.address, aliceProvider.wallet);
|
|
187
|
-
await expect(alice.updateChannelHideUserJoinLeaveEvents(spaceId, defaultChannelId, true)).rejects.toThrow(/7:PERMISSION_DENIED/);
|
|
188
|
-
// Add Carol to a role that gives her AddRemoveChannels permission so she can update
|
|
189
|
-
// hideUserJoinLeaveEvents
|
|
190
|
-
const { error: roleError } = await createRole(bobSpaceDapp, bobProvider, spaceId, 'gated role', [Permission.AddRemoveChannels], [carolsWallet.address], NoopRuleData, bobProvider.wallet);
|
|
191
|
-
expect(roleError).toBeUndefined();
|
|
192
|
-
// Add Carol to the space and channel.
|
|
193
|
-
await expectUserCanJoin(spaceId, defaultChannelId, 'carol', carol, carolSpaceDapp, carolProvider.wallet.address, carolProvider.wallet);
|
|
194
|
-
// Carol's update should succeed
|
|
195
|
-
await expect(carol.updateChannelHideUserJoinLeaveEvents(spaceId, defaultChannelId, true)).resolves.not.toThrow();
|
|
196
|
-
// Validate updateHideUserJoinLeaveEvents event was applied on client
|
|
197
|
-
await waitFor(() => {
|
|
198
|
-
const channelMetadata = spaceStreamView.spaceChannelsMetadata;
|
|
199
|
-
check(Object.keys(channelMetadata).length === 1);
|
|
200
|
-
check(channelMetadata[defaultChannelId]?.hideUserJoinLeaveEvents === true);
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
});
|
|
204
|
-
//# sourceMappingURL=channelSpaceSettings.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelSpaceSettings.test.js","sourceRoot":"","sources":["../../../src/tests/multi/channelSpaceSettings.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disableChannel.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/disableChannel.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { NoopRuleData } from '@towns-labs/web3';
|
|
5
|
-
import { expectUserCanJoinChannel, setupChannelWithCustomRole } from '../testUtils';
|
|
6
|
-
describe('disableChannel', () => {
|
|
7
|
-
test('User cannot post events to a channel after it is disabled', async () => {
|
|
8
|
-
const { alice, carol, bobProvider, aliceSpaceDapp, bobSpaceDapp, spaceId, channelId } = await setupChannelWithCustomRole(['alice', 'carol'], NoopRuleData);
|
|
9
|
-
await expectUserCanJoinChannel(alice, aliceSpaceDapp, spaceId, channelId);
|
|
10
|
-
// Disable the channel
|
|
11
|
-
const txn = await bobSpaceDapp.setChannelAccess(spaceId, channelId, true, bobProvider.wallet);
|
|
12
|
-
await bobProvider.waitForTransaction(txn.hash);
|
|
13
|
-
const channelDetails = await bobSpaceDapp.getChannelDetails(spaceId, channelId);
|
|
14
|
-
expect(channelDetails).toBeDefined();
|
|
15
|
-
expect(channelDetails.disabled).toBeTruthy();
|
|
16
|
-
// Wait 5 seconds for the positive channel enabled cache entry to expire
|
|
17
|
-
await new Promise((f) => setTimeout(f, 5000));
|
|
18
|
-
// Stream node should not allow the join
|
|
19
|
-
// TODO: SpaceDapp also should not allow the join, but it currently does not
|
|
20
|
-
// check for channel enabled. Fix and replace below logic with
|
|
21
|
-
// await expectUserCanJoinChannel(
|
|
22
|
-
// carol,
|
|
23
|
-
// carolSpaceDapp,
|
|
24
|
-
// spaceId,
|
|
25
|
-
// channelId!,
|
|
26
|
-
// )
|
|
27
|
-
await expect(carol.joinStream(channelId)).rejects.toThrow(/7:PERMISSION_DENIED/);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=disableChannel.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disableChannel.test.js","sourceRoot":"","sources":["../../../src/tests/multi/disableChannel.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAA;AAEnF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,GACjF,MAAM,0BAA0B,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAA;QAEtE,MAAM,wBAAwB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,SAAU,CAAC,CAAA;QAE1E,sBAAsB;QACtB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAC3C,OAAO,EACP,SAAU,EACV,IAAI,EACJ,WAAW,CAAC,MAAM,CACrB,CAAA;QACD,MAAM,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,cAAc,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAU,CAAC,CAAA;QAChF,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAA;QACpC,MAAM,CAAC,cAAe,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAA;QAE7C,wEAAwE;QACxE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAE7C,wCAAwC;QACxC,4EAA4E;QAC5E,8DAA8D;QAC9D,kCAAkC;QAClC,aAAa;QACb,sBAAsB;QACtB,eAAe;QACf,kBAAkB;QAClB,IAAI;QACJ,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACrF,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disableSpace.test.d.ts","sourceRoot":"","sources":["../../../src/tests/multi/disableSpace.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group with-entitlements
|
|
3
|
-
*/
|
|
4
|
-
import { NoopRuleData } from '@towns-labs/web3';
|
|
5
|
-
import { expectUserCanJoin, createTownWithRequirements, createUserStreamAndSyncClient, everyoneMembershipStruct, } from '../testUtils';
|
|
6
|
-
describe('disableSpace', () => {
|
|
7
|
-
test('User cannot join a space after it is disabled', async () => {
|
|
8
|
-
const { alice, carol, alicesWallet, aliceProvider, bobProvider, carolProvider, aliceSpaceDapp, bobSpaceDapp, carolSpaceDapp, spaceId, channelId, } = await createTownWithRequirements({
|
|
9
|
-
everyone: true,
|
|
10
|
-
users: [],
|
|
11
|
-
ruleData: NoopRuleData,
|
|
12
|
-
});
|
|
13
|
-
await expectUserCanJoin(spaceId, channelId, 'alice', alice, aliceSpaceDapp, alicesWallet.address, aliceProvider.wallet);
|
|
14
|
-
// Disable the channel
|
|
15
|
-
const txn = await bobSpaceDapp.setSpaceAccess(spaceId, true, bobProvider.wallet);
|
|
16
|
-
await bobProvider.waitForTransaction(txn.hash);
|
|
17
|
-
const spaceInfo = await bobSpaceDapp.getSpaceInfo(spaceId);
|
|
18
|
-
expect(spaceInfo).toBeDefined();
|
|
19
|
-
expect(spaceInfo?.disabled).toBeTruthy();
|
|
20
|
-
// Wait 5 seconds for the positive space enabled cache entry to expire
|
|
21
|
-
await new Promise((f) => setTimeout(f, 5000));
|
|
22
|
-
// Have carol create a user stream attached to her own space.
|
|
23
|
-
// Then she will attempt to join the space from the client, which should fail.
|
|
24
|
-
await createUserStreamAndSyncClient(carol, carolSpaceDapp, 'carol', await everyoneMembershipStruct(carolSpaceDapp, carol), carolProvider.wallet);
|
|
25
|
-
// Expect user cannot join the space.
|
|
26
|
-
// TODO: the spaceDapp does not check for space enabled when evaluating if user
|
|
27
|
-
// is eligible to join the space. Fix and replace the below logic with
|
|
28
|
-
// await expectUserCannotJoinSpace(
|
|
29
|
-
// spaceId,
|
|
30
|
-
// carol,
|
|
31
|
-
// carolSpaceDapp,
|
|
32
|
-
// carolsWallet.address
|
|
33
|
-
// )
|
|
34
|
-
await expect(carol.joinStream(spaceId)).rejects.toThrow(/PERMISSION_DENIED/);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
37
|
-
//# sourceMappingURL=disableSpace.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"disableSpace.test.js","sourceRoot":"","sources":["../../../src/tests/multi/disableSpace.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EACH,iBAAiB,EACjB,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,GAC3B,MAAM,cAAc,CAAA;AAErB,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC1B,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,EACF,KAAK,EACL,KAAK,EACL,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,cAAc,EACd,OAAO,EACP,SAAS,GACZ,GAAG,MAAM,0BAA0B,CAAC;YACjC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,YAAY;SACzB,CAAC,CAAA;QAEF,MAAM,iBAAiB,CACnB,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,EACL,cAAc,EACd,YAAY,CAAC,OAAO,EACpB,aAAa,CAAC,MAAM,CACvB,CAAA;QAED,sBAAsB;QACtB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;QAChF,MAAM,WAAW,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1D,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAA;QAC/B,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAA;QAExC,sEAAsE;QACtE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;QAE7C,6DAA6D;QAC7D,8EAA8E;QAC9E,MAAM,6BAA6B,CAC/B,KAAK,EACL,cAAc,EACd,OAAO,EACP,MAAM,wBAAwB,CAAC,cAAc,EAAE,KAAK,CAAC,EACrD,aAAa,CAAC,MAAM,CACvB,CAAA;QAED,qCAAqC;QACrC,+EAA+E;QAC/E,sEAAsE;QACtE,mCAAmC;QACnC,eAAe;QACf,aAAa;QACb,sBAAsB;QACtB,2BAA2B;QAC3B,IAAI;QACJ,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAChF,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"channelEntitlementPermissions.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/multi/entitlements/channelEntitlementPermissions.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -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"}
|