@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,26 +0,0 @@
|
|
|
1
|
-
import { EncryptedData } from '@towns-labs/proto';
|
|
2
|
-
import TypedEmitter from 'typed-emitter';
|
|
3
|
-
import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents';
|
|
4
|
-
export declare class MemberMetadata_DisplayNames {
|
|
5
|
-
log: import("@towns-labs/utils").DLogger;
|
|
6
|
-
private decryptionDispatchCount;
|
|
7
|
-
readonly streamId: string;
|
|
8
|
-
readonly userIdToEventId: Map<string, string>;
|
|
9
|
-
readonly plaintextDisplayNames: Map<string, string>;
|
|
10
|
-
readonly displayNameEvents: Map<string, {
|
|
11
|
-
userId: string;
|
|
12
|
-
pending: boolean;
|
|
13
|
-
}>;
|
|
14
|
-
constructor(streamId: string);
|
|
15
|
-
addEncryptedData(eventId: string, encryptedData: EncryptedData, userId: string, pending: boolean | undefined, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
16
|
-
onConfirmEvent(eventId: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
17
|
-
onDecryptedContent(eventId: string, content: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
18
|
-
private emitDisplayNameUpdated;
|
|
19
|
-
private removeEventForUserId;
|
|
20
|
-
private addEventForUserId;
|
|
21
|
-
info(userId: string): {
|
|
22
|
-
displayName: string;
|
|
23
|
-
displayNameEncrypted: boolean;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=memberMetadata_DisplayNames.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_DisplayNames.d.ts","sourceRoot":"","sources":["../src/memberMetadata_DisplayNames.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,YAAY,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAQ1E,qBAAa,2BAA2B;IACpC,GAAG,sCAAmC;IACtC,OAAO,CAAC,uBAAuB,CAAI;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,sBAA4B;IACpD,QAAQ,CAAC,qBAAqB,sBAA4B;IAC1D,QAAQ,CAAC,iBAAiB;gBAA6B,MAAM;iBAAW,OAAO;OAAK;gBAExE,QAAQ,EAAE,MAAM;IAI5B,gBAAgB,CACZ,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAAO,EACvB,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAsB7D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAczE,kBAAkB,CACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAY7C,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,iBAAiB;IAczB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,oBAAoB,EAAE,OAAO,CAAA;KAChC;CAOJ"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { dlog } from '@towns-labs/utils';
|
|
2
|
-
// this is a hack to prevent too much cpu usage from spamming the client with too many decrypted names
|
|
3
|
-
// temporary until we move encrypted user and display names to the user metadata stream
|
|
4
|
-
const MAX_DECRYPTED_NAMES_PER_STREAM = 50;
|
|
5
|
-
const textDecoder = new TextDecoder();
|
|
6
|
-
export class MemberMetadata_DisplayNames {
|
|
7
|
-
log = dlog('csb:streams:displaynames');
|
|
8
|
-
decryptionDispatchCount = 0;
|
|
9
|
-
streamId;
|
|
10
|
-
userIdToEventId = new Map();
|
|
11
|
-
plaintextDisplayNames = new Map();
|
|
12
|
-
displayNameEvents = new Map();
|
|
13
|
-
constructor(streamId) {
|
|
14
|
-
this.streamId = streamId;
|
|
15
|
-
}
|
|
16
|
-
addEncryptedData(eventId, encryptedData, userId, pending = true, cleartext, encryptionEmitter, stateEmitter) {
|
|
17
|
-
this.removeEventForUserId(userId);
|
|
18
|
-
this.addEventForUserId(userId, eventId, encryptedData, pending);
|
|
19
|
-
if (cleartext) {
|
|
20
|
-
this.plaintextDisplayNames.set(userId, typeof cleartext === 'string' ? cleartext : textDecoder.decode(cleartext));
|
|
21
|
-
}
|
|
22
|
-
else if (this.decryptionDispatchCount < MAX_DECRYPTED_NAMES_PER_STREAM) {
|
|
23
|
-
this.decryptionDispatchCount++;
|
|
24
|
-
// Clear the plaintext display name for this user on name change
|
|
25
|
-
this.plaintextDisplayNames.delete(userId);
|
|
26
|
-
encryptionEmitter?.emit('newEncryptedContent', this.streamId, eventId, {
|
|
27
|
-
kind: 'text',
|
|
28
|
-
content: encryptedData,
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
this.emitDisplayNameUpdated(eventId, stateEmitter);
|
|
32
|
-
}
|
|
33
|
-
onConfirmEvent(eventId, emitter) {
|
|
34
|
-
const event = this.displayNameEvents.get(eventId);
|
|
35
|
-
if (!event) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
this.displayNameEvents.set(eventId, { userId: event.userId, pending: false });
|
|
39
|
-
// if we don't have the plaintext display name, no need to emit an event
|
|
40
|
-
if (this.plaintextDisplayNames.has(event.userId)) {
|
|
41
|
-
this.log(`'streamDisplayNameUpdated' for userId ${event.userId}`);
|
|
42
|
-
this.emitDisplayNameUpdated(eventId, emitter);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
onDecryptedContent(eventId, content, emitter) {
|
|
46
|
-
const event = this.displayNameEvents.get(eventId);
|
|
47
|
-
if (!event) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
this.log(`setting display name ${content} for user ${event.userId}`);
|
|
51
|
-
this.plaintextDisplayNames.set(event.userId, content);
|
|
52
|
-
this.emitDisplayNameUpdated(eventId, emitter);
|
|
53
|
-
}
|
|
54
|
-
emitDisplayNameUpdated(eventId, emitter) {
|
|
55
|
-
const event = this.displayNameEvents.get(eventId);
|
|
56
|
-
if (!event) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
// no information to emit — we haven't decrypted the display name yet
|
|
60
|
-
if (!this.plaintextDisplayNames.has(event.userId)) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
// depending on confirmation status, emit different events
|
|
64
|
-
emitter?.emit(event.pending ? 'streamPendingDisplayNameUpdated' : 'streamDisplayNameUpdated', this.streamId, event.userId);
|
|
65
|
-
}
|
|
66
|
-
removeEventForUserId(userId) {
|
|
67
|
-
// remove any traces of old events for this user
|
|
68
|
-
const eventId = this.userIdToEventId.get(userId);
|
|
69
|
-
if (!eventId) {
|
|
70
|
-
this.log(`no existing displayName event for user ${userId}`);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const event = this.displayNameEvents.get(eventId);
|
|
74
|
-
if (!event) {
|
|
75
|
-
this.log(`no existing event for user ${userId} — this is a programmer error`);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
this.displayNameEvents.delete(eventId);
|
|
79
|
-
this.log(`deleted old event for user ${userId}`);
|
|
80
|
-
}
|
|
81
|
-
addEventForUserId(userId, eventId, encryptedData, pending) {
|
|
82
|
-
// add to the userId -> eventId mapping for fast lookup later
|
|
83
|
-
this.userIdToEventId.set(userId, eventId);
|
|
84
|
-
this.displayNameEvents.set(eventId, {
|
|
85
|
-
userId,
|
|
86
|
-
pending: pending,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
info(userId) {
|
|
90
|
-
const displayName = this.plaintextDisplayNames.get(userId) ?? '';
|
|
91
|
-
const displayNameEncrypted = !this.plaintextDisplayNames.has(userId) && this.userIdToEventId.has(userId);
|
|
92
|
-
return { displayName, displayNameEncrypted };
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=memberMetadata_DisplayNames.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_DisplayNames.js","sourceRoot":"","sources":["../src/memberMetadata_DisplayNames.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import TypedEmitter from 'typed-emitter';
|
|
2
|
-
import { StreamStateEvents } from './streamEvents';
|
|
3
|
-
export declare class MemberMetadata_EnsAddresses {
|
|
4
|
-
log: import("@towns-labs/utils").DLogger;
|
|
5
|
-
readonly streamId: string;
|
|
6
|
-
readonly userIdToEventId: Map<string, string>;
|
|
7
|
-
readonly confirmedEnsAddresses: Map<string, string>;
|
|
8
|
-
readonly ensAddressEvents: Map<string, {
|
|
9
|
-
ensAddress: Uint8Array;
|
|
10
|
-
userId: string;
|
|
11
|
-
pending: boolean;
|
|
12
|
-
}>;
|
|
13
|
-
constructor(streamId: string);
|
|
14
|
-
applySnapshot(ensAddresses: {
|
|
15
|
-
userId: string;
|
|
16
|
-
ensAddress: Uint8Array;
|
|
17
|
-
}[]): void;
|
|
18
|
-
addEnsAddressEvent(eventId: string, ensAddress: Uint8Array, userId: string, pending: boolean, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
19
|
-
onConfirmEvent(eventId: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
20
|
-
private emitEnsAddressUpdated;
|
|
21
|
-
private removeEventForUserId;
|
|
22
|
-
private addEventForUserId;
|
|
23
|
-
info(userId: string): string | undefined;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=memberMetadata_EnsAddresses.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_EnsAddresses.d.ts","sourceRoot":"","sources":["../src/memberMetadata_EnsAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAGlD,qBAAa,2BAA2B;IACpC,GAAG,sCAAmC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,sBAA4B;IACpD,QAAQ,CAAC,qBAAqB,sBAA4B;IAC1D,QAAQ,CAAC,gBAAgB;oBAEP,UAAU;gBAAU,MAAM;iBAAW,OAAO;OAC3D;gBAES,QAAQ,EAAE,MAAM;IAI5B,aAAa,CAAC,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,EAAE;IAUxE,kBAAkB,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAc7D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAgBzE,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,iBAAiB;IAezB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAG3C"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { dlog } from '@towns-labs/utils';
|
|
2
|
-
import { userIdFromAddress } from './id';
|
|
3
|
-
export class MemberMetadata_EnsAddresses {
|
|
4
|
-
log = dlog('csb:streams:ensAddresses');
|
|
5
|
-
streamId;
|
|
6
|
-
userIdToEventId = new Map();
|
|
7
|
-
confirmedEnsAddresses = new Map();
|
|
8
|
-
ensAddressEvents = new Map();
|
|
9
|
-
constructor(streamId) {
|
|
10
|
-
this.streamId = streamId;
|
|
11
|
-
}
|
|
12
|
-
applySnapshot(ensAddresses) {
|
|
13
|
-
for (const item of ensAddresses) {
|
|
14
|
-
if (item.ensAddress.length > 0) {
|
|
15
|
-
if (item.ensAddress.length > 0) {
|
|
16
|
-
this.confirmedEnsAddresses.set(item.userId, userIdFromAddress(item.ensAddress));
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
addEnsAddressEvent(eventId, ensAddress, userId, pending, stateEmitter) {
|
|
22
|
-
this.removeEventForUserId(userId);
|
|
23
|
-
if (!pending) {
|
|
24
|
-
if (ensAddress.length > 0) {
|
|
25
|
-
this.confirmedEnsAddresses.set(userId, userIdFromAddress(ensAddress));
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
this.confirmedEnsAddresses.delete(userId);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
this.addEventForUserId(userId, eventId, ensAddress, pending);
|
|
32
|
-
this.emitEnsAddressUpdated(eventId, stateEmitter);
|
|
33
|
-
}
|
|
34
|
-
onConfirmEvent(eventId, emitter) {
|
|
35
|
-
const event = this.ensAddressEvents.get(eventId);
|
|
36
|
-
if (!event) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this.ensAddressEvents.set(eventId, { ...event, pending: false });
|
|
40
|
-
if (event.ensAddress.length > 0) {
|
|
41
|
-
this.confirmedEnsAddresses.set(event.userId, userIdFromAddress(event.ensAddress));
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
this.confirmedEnsAddresses.delete(event.userId);
|
|
45
|
-
}
|
|
46
|
-
this.emitEnsAddressUpdated(eventId, emitter);
|
|
47
|
-
}
|
|
48
|
-
emitEnsAddressUpdated(eventId, emitter) {
|
|
49
|
-
const event = this.ensAddressEvents.get(eventId);
|
|
50
|
-
if (!event) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
if (event.pending) {
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
emitter?.emit('streamEnsAddressUpdated', this.streamId, event.userId);
|
|
57
|
-
}
|
|
58
|
-
removeEventForUserId(userId) {
|
|
59
|
-
// remove any traces of old events for this user
|
|
60
|
-
const eventId = this.userIdToEventId.get(userId);
|
|
61
|
-
if (!eventId) {
|
|
62
|
-
this.log(`no existing ens event for user ${userId}`);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const event = this.ensAddressEvents.get(eventId);
|
|
66
|
-
if (!event) {
|
|
67
|
-
this.log(`no existing event for user ${userId} — this is a programmer error`);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this.ensAddressEvents.delete(eventId);
|
|
71
|
-
this.log(`deleted old event for user ${userId}`);
|
|
72
|
-
}
|
|
73
|
-
addEventForUserId(userId, eventId, ensAddress, pending) {
|
|
74
|
-
// add to the userId -> eventId mapping for fast lookup later
|
|
75
|
-
this.userIdToEventId.set(userId, eventId);
|
|
76
|
-
this.ensAddressEvents.set(eventId, {
|
|
77
|
-
userId,
|
|
78
|
-
ensAddress: ensAddress,
|
|
79
|
-
pending: pending,
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
info(userId) {
|
|
83
|
-
return this.confirmedEnsAddresses.get(userId);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=memberMetadata_EnsAddresses.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_EnsAddresses.js","sourceRoot":"","sources":["../src/memberMetadata_EnsAddresses.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import TypedEmitter from 'typed-emitter';
|
|
2
|
-
import { MemberPayload_Nft } from '@towns-labs/proto';
|
|
3
|
-
import { StreamStateEvents } from './streamEvents';
|
|
4
|
-
export declare class MemberMetadata_Nft {
|
|
5
|
-
log: import("@towns-labs/utils").DLogger;
|
|
6
|
-
readonly streamId: string;
|
|
7
|
-
readonly userIdToEventId: Map<string, string>;
|
|
8
|
-
readonly confirmedNfts: Map<string, MemberPayload_Nft>;
|
|
9
|
-
readonly nftEvents: Map<string, {
|
|
10
|
-
nft: MemberPayload_Nft;
|
|
11
|
-
userId: string;
|
|
12
|
-
pending: boolean;
|
|
13
|
-
}>;
|
|
14
|
-
constructor(streamId: string);
|
|
15
|
-
applySnapshot(nfts: {
|
|
16
|
-
userId: string;
|
|
17
|
-
nft: MemberPayload_Nft;
|
|
18
|
-
}[]): void;
|
|
19
|
-
addNftEvent(eventId: string, nft: MemberPayload_Nft, userId: string, pending: boolean, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
20
|
-
private removeEventForUserId;
|
|
21
|
-
onConfirmEvent(eventId: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
22
|
-
private addEventForUserId;
|
|
23
|
-
private emitNftUpdated;
|
|
24
|
-
info(userId: string): {
|
|
25
|
-
tokenId: string;
|
|
26
|
-
contractAddress: string;
|
|
27
|
-
chainId: number;
|
|
28
|
-
} | undefined;
|
|
29
|
-
isValidNft(nft: MemberPayload_Nft): boolean;
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=memberMetadata_Nft.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_Nft.d.ts","sourceRoot":"","sources":["../src/memberMetadata_Nft.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAIlD,qBAAa,kBAAkB;IAC3B,GAAG,sCAA0B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,sBAA4B;IACpD,QAAQ,CAAC,aAAa,iCAAuC;IAC7D,QAAQ,CAAC,SAAS;aAEP,iBAAiB;gBAAU,MAAM;iBAAW,OAAO;OAC3D;gBAES,QAAQ,EAAE,MAAM;IAI5B,aAAa,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,iBAAiB,CAAA;KAAE,EAAE;IAQhE,WAAW,CACP,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAc7D,OAAO,CAAC,oBAAoB;IAiB5B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAgBzE,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,cAAc;IAWtB,IAAI,CAAC,MAAM,EAAE,MAAM,GACb;QACI,OAAO,EAAE,MAAM,CAAA;QACf,eAAe,EAAE,MAAM,CAAA;QACvB,OAAO,EAAE,MAAM,CAAA;KAClB,GACD,SAAS;IAYf,UAAU,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO;CAG9C"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { bin_toString, dlog } from '@towns-labs/utils';
|
|
2
|
-
import { userIdFromAddress } from './id';
|
|
3
|
-
export class MemberMetadata_Nft {
|
|
4
|
-
log = dlog('csb:streams:Nft');
|
|
5
|
-
streamId;
|
|
6
|
-
userIdToEventId = new Map();
|
|
7
|
-
confirmedNfts = new Map();
|
|
8
|
-
nftEvents = new Map();
|
|
9
|
-
constructor(streamId) {
|
|
10
|
-
this.streamId = streamId;
|
|
11
|
-
}
|
|
12
|
-
applySnapshot(nfts) {
|
|
13
|
-
for (const item of nfts) {
|
|
14
|
-
if (this.isValidNft(item.nft)) {
|
|
15
|
-
this.confirmedNfts.set(item.userId, item.nft);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
addNftEvent(eventId, nft, userId, pending, stateEmitter) {
|
|
20
|
-
this.removeEventForUserId(userId);
|
|
21
|
-
if (!pending) {
|
|
22
|
-
if (this.isValidNft(nft)) {
|
|
23
|
-
this.confirmedNfts.set(userId, nft);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
this.confirmedNfts.delete(userId);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
this.addEventForUserId(userId, eventId, nft, pending);
|
|
30
|
-
this.emitNftUpdated(eventId, stateEmitter);
|
|
31
|
-
}
|
|
32
|
-
removeEventForUserId(userId) {
|
|
33
|
-
// remove any traces of old events for this user
|
|
34
|
-
const eventId = this.userIdToEventId.get(userId);
|
|
35
|
-
if (!eventId) {
|
|
36
|
-
this.log(`no existing ens event for user ${userId}`);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
const event = this.nftEvents.get(eventId);
|
|
40
|
-
if (!event) {
|
|
41
|
-
this.log(`no existing event for user ${userId} — this is a programmer error`);
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
this.nftEvents.delete(eventId);
|
|
45
|
-
this.log(`deleted old event for user ${userId}`);
|
|
46
|
-
}
|
|
47
|
-
onConfirmEvent(eventId, emitter) {
|
|
48
|
-
const event = this.nftEvents.get(eventId);
|
|
49
|
-
if (!event) {
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
this.nftEvents.set(eventId, { ...event, pending: false });
|
|
53
|
-
if (this.isValidNft(event.nft)) {
|
|
54
|
-
this.confirmedNfts.set(event.userId, event.nft);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this.confirmedNfts.delete(event.userId);
|
|
58
|
-
}
|
|
59
|
-
this.emitNftUpdated(eventId, emitter);
|
|
60
|
-
}
|
|
61
|
-
addEventForUserId(userId, eventId, nft, pending) {
|
|
62
|
-
// add to the userId -> eventId mapping for fast lookup later
|
|
63
|
-
this.userIdToEventId.set(userId, eventId);
|
|
64
|
-
this.nftEvents.set(eventId, {
|
|
65
|
-
userId,
|
|
66
|
-
nft: nft,
|
|
67
|
-
pending: pending,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
emitNftUpdated(eventId, emitter) {
|
|
71
|
-
const event = this.nftEvents.get(eventId);
|
|
72
|
-
if (!event) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
if (event.pending) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
emitter?.emit('streamNftUpdated', this.streamId, event.userId);
|
|
79
|
-
}
|
|
80
|
-
info(userId) {
|
|
81
|
-
const nft = this.confirmedNfts.get(userId);
|
|
82
|
-
if (!nft) {
|
|
83
|
-
return undefined;
|
|
84
|
-
}
|
|
85
|
-
return {
|
|
86
|
-
tokenId: bin_toString(nft.tokenId),
|
|
87
|
-
contractAddress: userIdFromAddress(nft.contractAddress),
|
|
88
|
-
chainId: nft.chainId,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
isValidNft(nft) {
|
|
92
|
-
return nft.tokenId.length > 0 && nft.contractAddress.length > 0 && nft.chainId > 0;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=memberMetadata_Nft.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_Nft.js","sourceRoot":"","sources":["../src/memberMetadata_Nft.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import TypedEmitter from 'typed-emitter';
|
|
2
|
-
import { EncryptedData } from '@towns-labs/proto';
|
|
3
|
-
import { StreamEncryptionEvents, StreamStateEvents } from './streamEvents';
|
|
4
|
-
export declare class MemberMetadata_Usernames {
|
|
5
|
-
log: import("@towns-labs/utils").DLogger;
|
|
6
|
-
readonly streamId: string;
|
|
7
|
-
readonly plaintextUsernames: Map<string, string>;
|
|
8
|
-
readonly userIdToEventId: Map<string, string>;
|
|
9
|
-
readonly confirmedUserIds: Set<string>;
|
|
10
|
-
readonly userId: string;
|
|
11
|
-
readonly usernameEvents: Map<string, {
|
|
12
|
-
checksum: string;
|
|
13
|
-
userId: string;
|
|
14
|
-
pending: boolean;
|
|
15
|
-
}>;
|
|
16
|
-
readonly checksums: Set<string>;
|
|
17
|
-
currentUsernameEncryptedData: EncryptedData | undefined;
|
|
18
|
-
constructor(streamId: string, userId: string);
|
|
19
|
-
setLocalUsername(userId: string, username: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
20
|
-
resetLocalUsername(userId: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
21
|
-
addEncryptedData(eventId: string, encryptedData: EncryptedData, userId: string, pending: boolean | undefined, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
22
|
-
onConfirmEvent(eventId: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
23
|
-
onDecryptedContent(eventId: string, content: string, emitter?: TypedEmitter<StreamStateEvents>): void;
|
|
24
|
-
cleartextUsernameAvailable(username: string): boolean;
|
|
25
|
-
usernameAvailable(checksum: string): boolean;
|
|
26
|
-
private emitUsernameUpdated;
|
|
27
|
-
private removeUsernameEventForUserId;
|
|
28
|
-
private addUsernameEventForUserId;
|
|
29
|
-
info(userId: string): {
|
|
30
|
-
username: string;
|
|
31
|
-
usernameConfirmed: boolean;
|
|
32
|
-
usernameEncrypted: boolean;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=memberMetadata_Usernames.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_Usernames.d.ts","sourceRoot":"","sources":["../src/memberMetadata_Usernames.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGjD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAI1E,qBAAa,wBAAwB;IACjC,GAAG,sCAAgC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,kBAAkB,sBAA4B;IACvD,QAAQ,CAAC,eAAe,sBAA4B;IACpD,QAAQ,CAAC,gBAAgB,cAAoB;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc;kBAEP,MAAM;gBAAU,MAAM;iBAAW,OAAO;OACrD;IACH,QAAQ,CAAC,SAAS,cAAoB;IACtC,4BAA4B,EAAE,aAAa,GAAG,SAAS,CAAA;gBAE3C,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK5C,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAK5F,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAK5E,gBAAgB,CACZ,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAAO,EACvB,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS;IAuC7D,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAmBzE,kBAAkB,CACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,CAAC,iBAAiB,CAAC;IAwB7C,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKrD,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5C,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,4BAA4B;IAmBpC,OAAO,CAAC,yBAAyB;IAyBjC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG;QAClB,QAAQ,EAAE,MAAM,CAAA;QAChB,iBAAiB,EAAE,OAAO,CAAA;QAC1B,iBAAiB,EAAE,OAAO,CAAA;KAC7B;CAiBJ"}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { usernameChecksum } from './utils';
|
|
2
|
-
import { dlog } from '@towns-labs/utils';
|
|
3
|
-
const textDecoder = new TextDecoder();
|
|
4
|
-
export class MemberMetadata_Usernames {
|
|
5
|
-
log = dlog('csb:streams:usernames');
|
|
6
|
-
streamId;
|
|
7
|
-
plaintextUsernames = new Map();
|
|
8
|
-
userIdToEventId = new Map();
|
|
9
|
-
confirmedUserIds = new Set();
|
|
10
|
-
userId;
|
|
11
|
-
usernameEvents = new Map();
|
|
12
|
-
checksums = new Set();
|
|
13
|
-
currentUsernameEncryptedData;
|
|
14
|
-
constructor(streamId, userId) {
|
|
15
|
-
this.streamId = streamId;
|
|
16
|
-
this.userId = userId;
|
|
17
|
-
}
|
|
18
|
-
setLocalUsername(userId, username, emitter) {
|
|
19
|
-
this.plaintextUsernames.set(userId, username);
|
|
20
|
-
emitter?.emit('streamPendingUsernameUpdated', this.streamId, userId);
|
|
21
|
-
}
|
|
22
|
-
resetLocalUsername(userId, emitter) {
|
|
23
|
-
this.plaintextUsernames.delete(userId);
|
|
24
|
-
emitter?.emit('streamPendingUsernameUpdated', this.streamId, userId);
|
|
25
|
-
}
|
|
26
|
-
addEncryptedData(eventId, encryptedData, userId, pending = true, cleartext, encryptionEmitter, stateEmitter) {
|
|
27
|
-
this.removeUsernameEventForUserId(userId);
|
|
28
|
-
if (!encryptedData.checksum) {
|
|
29
|
-
this.log('no checksum in encrypted data');
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
if (!this.usernameAvailable(encryptedData.checksum)) {
|
|
33
|
-
this.log(`username not available for checksum ${encryptedData.checksum}`);
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
this.addUsernameEventForUserId(userId, eventId, encryptedData, pending);
|
|
37
|
-
if (cleartext) {
|
|
38
|
-
this.plaintextUsernames.set(userId, typeof cleartext === 'string' ? cleartext : textDecoder.decode(cleartext));
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
// Clear the plaintext username for this user on name change
|
|
42
|
-
this.plaintextUsernames.delete(userId);
|
|
43
|
-
encryptionEmitter?.emit('newEncryptedContent', this.streamId, eventId, {
|
|
44
|
-
kind: 'text',
|
|
45
|
-
content: encryptedData,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
if (!pending) {
|
|
49
|
-
this.confirmedUserIds.add(userId);
|
|
50
|
-
}
|
|
51
|
-
if (userId === this.userId) {
|
|
52
|
-
this.currentUsernameEncryptedData = encryptedData;
|
|
53
|
-
}
|
|
54
|
-
this.emitUsernameUpdated(eventId, stateEmitter);
|
|
55
|
-
}
|
|
56
|
-
onConfirmEvent(eventId, emitter) {
|
|
57
|
-
const event = this.usernameEvents.get(eventId);
|
|
58
|
-
if (!event) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
this.usernameEvents.set(eventId, {
|
|
62
|
-
checksum: event.checksum,
|
|
63
|
-
userId: event.userId,
|
|
64
|
-
pending: false,
|
|
65
|
-
});
|
|
66
|
-
this.confirmedUserIds.add(event.userId);
|
|
67
|
-
// if we don't have the plaintext username, no need to emit an event
|
|
68
|
-
if (this.plaintextUsernames.has(event.userId)) {
|
|
69
|
-
this.log(`'streamUsernameUpdated' for userId ${event.userId}`);
|
|
70
|
-
this.emitUsernameUpdated(eventId, emitter);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
onDecryptedContent(eventId, content, emitter) {
|
|
74
|
-
const event = this.usernameEvents.get(eventId);
|
|
75
|
-
if (!event) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const checksum = event.checksum;
|
|
79
|
-
if (!checksum) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
// If the checksum doesn't match, we don't want to update the username
|
|
83
|
-
const calculatedChecksum = usernameChecksum(content, this.streamId);
|
|
84
|
-
if (checksum !== calculatedChecksum) {
|
|
85
|
-
this.log(`checksum mismatch for userId: ${event.userId}, username: ${content}`);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
this.log(`setting username ${content} for user ${event.userId}`);
|
|
89
|
-
this.plaintextUsernames.set(event.userId, content);
|
|
90
|
-
this.emitUsernameUpdated(eventId, emitter);
|
|
91
|
-
}
|
|
92
|
-
cleartextUsernameAvailable(username) {
|
|
93
|
-
const checksum = usernameChecksum(username, this.streamId);
|
|
94
|
-
return this.usernameAvailable(checksum);
|
|
95
|
-
}
|
|
96
|
-
usernameAvailable(checksum) {
|
|
97
|
-
return !this.checksums.has(checksum);
|
|
98
|
-
}
|
|
99
|
-
emitUsernameUpdated(eventId, emitter) {
|
|
100
|
-
const event = this.usernameEvents.get(eventId);
|
|
101
|
-
if (!event) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
// no information to emit — we haven't decrypted the username yet
|
|
105
|
-
if (!this.plaintextUsernames.has(event.userId)) {
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
// depending on confirmation status, emit different events
|
|
109
|
-
emitter?.emit(event.pending ? 'streamPendingUsernameUpdated' : 'streamUsernameUpdated', this.streamId, event.userId);
|
|
110
|
-
}
|
|
111
|
-
removeUsernameEventForUserId(userId) {
|
|
112
|
-
// remove any traces of old events for this user
|
|
113
|
-
// we do this because unused usernames should be freed up for other users to use
|
|
114
|
-
const eventId = this.userIdToEventId.get(userId);
|
|
115
|
-
if (!eventId) {
|
|
116
|
-
this.log(`no existing username event for user ${userId}`);
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
const event = this.usernameEvents.get(eventId);
|
|
120
|
-
if (!event) {
|
|
121
|
-
this.log(`no existing username event for user ${userId} — this is a programmer error`);
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
this.checksums.delete(event.checksum ?? '');
|
|
125
|
-
this.usernameEvents.delete(eventId);
|
|
126
|
-
this.log(`deleted old username event for user ${userId}`);
|
|
127
|
-
}
|
|
128
|
-
addUsernameEventForUserId(userId, eventId, encryptedData, pending) {
|
|
129
|
-
if (!encryptedData.checksum) {
|
|
130
|
-
this.log('no checksum in encrypted data');
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
// add to the userId -> eventId mapping for fast lookup later
|
|
134
|
-
this.userIdToEventId.set(userId, eventId);
|
|
135
|
-
// Set the checksum. This user has now claimed this checksum
|
|
136
|
-
// and no other users are able to use a username with the same checksum
|
|
137
|
-
this.checksums.add(encryptedData.checksum);
|
|
138
|
-
this.usernameEvents.set(eventId, {
|
|
139
|
-
userId,
|
|
140
|
-
checksum: encryptedData.checksum,
|
|
141
|
-
pending: pending,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
info(userId) {
|
|
145
|
-
const name = this.plaintextUsernames.get(userId) ?? '';
|
|
146
|
-
const eventId = this.userIdToEventId.get(userId);
|
|
147
|
-
if (!eventId) {
|
|
148
|
-
return {
|
|
149
|
-
username: name,
|
|
150
|
-
usernameConfirmed: false,
|
|
151
|
-
usernameEncrypted: false,
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
const encrypted = this.usernameEvents.has(eventId) && !this.plaintextUsernames.has(userId);
|
|
155
|
-
return {
|
|
156
|
-
username: name,
|
|
157
|
-
usernameConfirmed: this.confirmedUserIds.has(userId),
|
|
158
|
-
usernameEncrypted: encrypted,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=memberMetadata_Usernames.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memberMetadata_Usernames.js","sourceRoot":"","sources":["../src/memberMetadata_Usernames.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import TypedEmitter from 'typed-emitter';
|
|
2
|
-
import { RemoteTimelineEvent } from './types';
|
|
3
|
-
import { ChannelPayload_Snapshot, Snapshot } from '@towns-labs/proto';
|
|
4
|
-
import { StreamStateView_AbstractContent } from './streamStateView_AbstractContent';
|
|
5
|
-
import { StreamEncryptionEvents, StreamEvents, StreamStateEvents } from './streamEvents';
|
|
6
|
-
import { DecryptedContent } from './encryptedContentTypes';
|
|
7
|
-
export declare class StreamStateView_Channel extends StreamStateView_AbstractContent {
|
|
8
|
-
readonly streamId: string;
|
|
9
|
-
readonly spaceId: string;
|
|
10
|
-
constructor(streamId: string);
|
|
11
|
-
applySnapshot(_snapshot: Snapshot, _content: ChannelPayload_Snapshot, _cleartexts: Record<string, Uint8Array | string> | undefined, _encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined): void;
|
|
12
|
-
prependEvent(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
13
|
-
appendEvent(event: RemoteTimelineEvent, cleartext: Uint8Array | string | undefined, encryptionEmitter: TypedEmitter<StreamEncryptionEvents> | undefined, _stateEmitter: TypedEmitter<StreamStateEvents> | undefined): void;
|
|
14
|
-
onDecryptedContent(_eventId: string, _content: DecryptedContent, _emitter: TypedEmitter<StreamEvents>): void;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=streamStateView_Channel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streamStateView_Channel.d.ts","sourceRoot":"","sources":["../src/streamStateView_Channel.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,OAAO,EAAkB,uBAAuB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACrF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAA;AAGnF,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAExF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,qBAAa,uBAAwB,SAAQ,+BAA+B;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEZ,QAAQ,EAAE,MAAM;IAM5B,aAAa,CACT,SAAS,EAAE,QAAQ,EACnB,QAAQ,EAAE,uBAAuB,EACjC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,SAAS,EAC5D,kBAAkB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,GACrE,IAAI;IAIP,YAAY,CACR,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAyCP,WAAW,CACP,KAAK,EAAE,mBAAmB,EAC1B,SAAS,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,EAC1C,iBAAiB,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,SAAS,EACnE,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAAC,GAAG,SAAS,GAC3D,IAAI;IAyCP,kBAAkB,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,GACrC,IAAI;CAGV"}
|