@towns-labs/sdk 2.0.1
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/README.md +29 -0
- package/dist/appRegistryService.d.ts +17 -0
- package/dist/appRegistryService.d.ts.map +1 -0
- package/dist/appRegistryService.js +48 -0
- package/dist/appRegistryService.js.map +1 -0
- package/dist/check.d.ts +31 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +44 -0
- package/dist/check.js.map +1 -0
- package/dist/client-v2.d.ts +89 -0
- package/dist/client-v2.d.ts.map +1 -0
- package/dist/client-v2.js +293 -0
- package/dist/client-v2.js.map +1 -0
- package/dist/client.d.ts +390 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +2135 -0
- package/dist/client.js.map +1 -0
- package/dist/clientDecryptionExtensions.d.ts +50 -0
- package/dist/clientDecryptionExtensions.d.ts.map +1 -0
- package/dist/clientDecryptionExtensions.js +319 -0
- package/dist/clientDecryptionExtensions.js.map +1 -0
- package/dist/createApp.d.ts +31 -0
- package/dist/createApp.d.ts.map +1 -0
- package/dist/createApp.js +77 -0
- package/dist/createApp.js.map +1 -0
- package/dist/createBot.d.ts +159 -0
- package/dist/createBot.d.ts.map +1 -0
- package/dist/createBot.js +206 -0
- package/dist/createBot.js.map +1 -0
- package/dist/decryptionExtensions.d.ts +214 -0
- package/dist/decryptionExtensions.d.ts.map +1 -0
- package/dist/decryptionExtensions.js +883 -0
- package/dist/decryptionExtensions.js.map +1 -0
- package/dist/encryptedContentTypes.d.ts +35 -0
- package/dist/encryptedContentTypes.d.ts.map +1 -0
- package/dist/encryptedContentTypes.js +86 -0
- package/dist/encryptedContentTypes.js.map +1 -0
- package/dist/id.d.ts +77 -0
- package/dist/id.d.ts.map +1 -0
- package/dist/id.js +224 -0
- package/dist/id.js.map +1 -0
- package/dist/index.d.ts +131 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +131 -0
- package/dist/index.js.map +1 -0
- package/dist/makeAppRegistryRpcClient.d.ts +8 -0
- package/dist/makeAppRegistryRpcClient.d.ts.map +1 -0
- package/dist/makeAppRegistryRpcClient.js +40 -0
- package/dist/makeAppRegistryRpcClient.js.map +1 -0
- package/dist/makeAuthenticationRpcClient.d.ts +8 -0
- package/dist/makeAuthenticationRpcClient.d.ts.map +1 -0
- package/dist/makeAuthenticationRpcClient.js +39 -0
- package/dist/makeAuthenticationRpcClient.js.map +1 -0
- package/dist/makeNotificationRpcClient.d.ts +8 -0
- package/dist/makeNotificationRpcClient.d.ts.map +1 -0
- package/dist/makeNotificationRpcClient.js +40 -0
- package/dist/makeNotificationRpcClient.js.map +1 -0
- package/dist/makeRiverRpcClient.d.ts +6 -0
- package/dist/makeRiverRpcClient.d.ts.map +1 -0
- package/dist/makeRiverRpcClient.js +9 -0
- package/dist/makeRiverRpcClient.js.map +1 -0
- package/dist/makeStreamRpcClient.d.ts +21 -0
- package/dist/makeStreamRpcClient.d.ts.map +1 -0
- package/dist/makeStreamRpcClient.js +110 -0
- package/dist/makeStreamRpcClient.js.map +1 -0
- package/dist/memberMetadata_DisplayNames.d.ts +26 -0
- package/dist/memberMetadata_DisplayNames.d.ts.map +1 -0
- package/dist/memberMetadata_DisplayNames.js +95 -0
- package/dist/memberMetadata_DisplayNames.js.map +1 -0
- package/dist/memberMetadata_EnsAddresses.d.ts +25 -0
- package/dist/memberMetadata_EnsAddresses.d.ts.map +1 -0
- package/dist/memberMetadata_EnsAddresses.js +86 -0
- package/dist/memberMetadata_EnsAddresses.js.map +1 -0
- package/dist/memberMetadata_Nft.d.ts +31 -0
- package/dist/memberMetadata_Nft.d.ts.map +1 -0
- package/dist/memberMetadata_Nft.js +95 -0
- package/dist/memberMetadata_Nft.js.map +1 -0
- package/dist/memberMetadata_Usernames.d.ts +35 -0
- package/dist/memberMetadata_Usernames.d.ts.map +1 -0
- package/dist/memberMetadata_Usernames.js +162 -0
- package/dist/memberMetadata_Usernames.js.map +1 -0
- package/dist/migrations/migrateSnapshot.d.ts +3 -0
- package/dist/migrations/migrateSnapshot.d.ts.map +1 -0
- package/dist/migrations/migrateSnapshot.js +29 -0
- package/dist/migrations/migrateSnapshot.js.map +1 -0
- package/dist/migrations/snapshotMigration0000.d.ts +3 -0
- package/dist/migrations/snapshotMigration0000.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0000.js +5 -0
- package/dist/migrations/snapshotMigration0000.js.map +1 -0
- package/dist/migrations/snapshotMigration0001.d.ts +3 -0
- package/dist/migrations/snapshotMigration0001.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0001.js +40 -0
- package/dist/migrations/snapshotMigration0001.js.map +1 -0
- package/dist/migrations/snapshotMigration0002.d.ts +3 -0
- package/dist/migrations/snapshotMigration0002.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0002.js +23 -0
- package/dist/migrations/snapshotMigration0002.js.map +1 -0
- package/dist/migrations/snapshotMigration0003.d.ts +6 -0
- package/dist/migrations/snapshotMigration0003.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0003.js +15 -0
- package/dist/migrations/snapshotMigration0003.js.map +1 -0
- package/dist/migrations/snapshotMigration0004.d.ts +9 -0
- package/dist/migrations/snapshotMigration0004.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0004.js +93 -0
- package/dist/migrations/snapshotMigration0004.js.map +1 -0
- package/dist/migrations/snapshotMigration0005.d.ts +9 -0
- package/dist/migrations/snapshotMigration0005.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0005.js +89 -0
- package/dist/migrations/snapshotMigration0005.js.map +1 -0
- package/dist/migrations/snapshotMigration0006.d.ts +9 -0
- package/dist/migrations/snapshotMigration0006.d.ts.map +1 -0
- package/dist/migrations/snapshotMigration0006.js +33 -0
- package/dist/migrations/snapshotMigration0006.js.map +1 -0
- package/dist/notificationService.d.ts +17 -0
- package/dist/notificationService.d.ts.map +1 -0
- package/dist/notificationService.js +49 -0
- package/dist/notificationService.js.map +1 -0
- package/dist/notificationsClient.d.ts +48 -0
- package/dist/notificationsClient.d.ts.map +1 -0
- package/dist/notificationsClient.js +302 -0
- package/dist/notificationsClient.js.map +1 -0
- package/dist/observable/combine.d.ts +44 -0
- package/dist/observable/combine.d.ts.map +1 -0
- package/dist/observable/combine.js +67 -0
- package/dist/observable/combine.js.map +1 -0
- package/dist/observable/constant.d.ts +7 -0
- package/dist/observable/constant.d.ts.map +1 -0
- package/dist/observable/constant.js +13 -0
- package/dist/observable/constant.js.map +1 -0
- package/dist/observable/observable.d.ts +33 -0
- package/dist/observable/observable.d.ts.map +1 -0
- package/dist/observable/observable.js +109 -0
- package/dist/observable/observable.js.map +1 -0
- package/dist/observable/observableRecord.d.ts +18 -0
- package/dist/observable/observableRecord.d.ts.map +1 -0
- package/dist/observable/observableRecord.js +71 -0
- package/dist/observable/observableRecord.js.map +1 -0
- package/dist/observable/persistedObservable.d.ts +39 -0
- package/dist/observable/persistedObservable.d.ts.map +1 -0
- package/dist/observable/persistedObservable.js +77 -0
- package/dist/observable/persistedObservable.js.map +1 -0
- package/dist/observable/utils.d.ts +2 -0
- package/dist/observable/utils.d.ts.map +1 -0
- package/dist/observable/utils.js +12 -0
- package/dist/observable/utils.js.map +1 -0
- package/dist/persistenceStore.d.ts +112 -0
- package/dist/persistenceStore.d.ts.map +1 -0
- package/dist/persistenceStore.js +465 -0
- package/dist/persistenceStore.js.map +1 -0
- package/dist/riverDbManager.d.ts +5 -0
- package/dist/riverDbManager.d.ts.map +1 -0
- package/dist/riverDbManager.js +7 -0
- package/dist/riverDbManager.js.map +1 -0
- package/dist/rpcCommon.d.ts +7 -0
- package/dist/rpcCommon.d.ts.map +1 -0
- package/dist/rpcCommon.js +2 -0
- package/dist/rpcCommon.js.map +1 -0
- package/dist/rpcInterceptors.d.ts +21 -0
- package/dist/rpcInterceptors.d.ts.map +1 -0
- package/dist/rpcInterceptors.js +376 -0
- package/dist/rpcInterceptors.js.map +1 -0
- package/dist/sign.d.ts +59 -0
- package/dist/sign.d.ts.map +1 -0
- package/dist/sign.js +363 -0
- package/dist/sign.js.map +1 -0
- package/dist/signerContext.d.ts +62 -0
- package/dist/signerContext.d.ts.map +1 -0
- package/dist/signerContext.js +103 -0
- package/dist/signerContext.js.map +1 -0
- package/dist/store/store.d.ts +22 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +165 -0
- package/dist/store/store.js.map +1 -0
- package/dist/stream.d.ts +49 -0
- package/dist/stream.d.ts.map +1 -0
- package/dist/stream.js +112 -0
- package/dist/stream.js.map +1 -0
- package/dist/streamEvents.d.ts +96 -0
- package/dist/streamEvents.d.ts.map +1 -0
- package/dist/streamEvents.js +2 -0
- package/dist/streamEvents.js.map +1 -0
- package/dist/streamStateView.d.ts +87 -0
- package/dist/streamStateView.d.ts.map +1 -0
- package/dist/streamStateView.js +596 -0
- package/dist/streamStateView.js.map +1 -0
- package/dist/streamStateView_AbstractContent.d.ts +15 -0
- package/dist/streamStateView_AbstractContent.d.ts.map +1 -0
- package/dist/streamStateView_AbstractContent.js +24 -0
- package/dist/streamStateView_AbstractContent.js.map +1 -0
- package/dist/streamStateView_Channel.d.ts +16 -0
- package/dist/streamStateView_Channel.d.ts.map +1 -0
- package/dist/streamStateView_Channel.js +76 -0
- package/dist/streamStateView_Channel.js.map +1 -0
- package/dist/streamStateView_ChannelMetadata.d.ts +22 -0
- package/dist/streamStateView_ChannelMetadata.d.ts.map +1 -0
- package/dist/streamStateView_ChannelMetadata.js +77 -0
- package/dist/streamStateView_ChannelMetadata.js.map +1 -0
- package/dist/streamStateView_DMChannel.d.ts +25 -0
- package/dist/streamStateView_DMChannel.d.ts.map +1 -0
- package/dist/streamStateView_DMChannel.js +114 -0
- package/dist/streamStateView_DMChannel.js.map +1 -0
- package/dist/streamStateView_GDMChannel.d.ts +27 -0
- package/dist/streamStateView_GDMChannel.d.ts.map +1 -0
- package/dist/streamStateView_GDMChannel.js +160 -0
- package/dist/streamStateView_GDMChannel.js.map +1 -0
- package/dist/streamStateView_Media.d.ts +22 -0
- package/dist/streamStateView_Media.d.ts.map +1 -0
- package/dist/streamStateView_Media.js +60 -0
- package/dist/streamStateView_Media.js.map +1 -0
- package/dist/streamStateView_MemberMetadata.d.ts +59 -0
- package/dist/streamStateView_MemberMetadata.d.ts.map +1 -0
- package/dist/streamStateView_MemberMetadata.js +113 -0
- package/dist/streamStateView_MemberMetadata.js.map +1 -0
- package/dist/streamStateView_Members.d.ts +101 -0
- package/dist/streamStateView_Members.d.ts.map +1 -0
- package/dist/streamStateView_Members.js +582 -0
- package/dist/streamStateView_Members.js.map +1 -0
- package/dist/streamStateView_Members_Solicitations.d.ts +15 -0
- package/dist/streamStateView_Members_Solicitations.d.ts.map +1 -0
- package/dist/streamStateView_Members_Solicitations.js +48 -0
- package/dist/streamStateView_Members_Solicitations.js.map +1 -0
- package/dist/streamStateView_Space.d.ts +31 -0
- package/dist/streamStateView_Space.d.ts.map +1 -0
- package/dist/streamStateView_Space.js +193 -0
- package/dist/streamStateView_Space.js.map +1 -0
- package/dist/streamStateView_UnknownContent.d.ts +11 -0
- package/dist/streamStateView_UnknownContent.d.ts.map +1 -0
- package/dist/streamStateView_UnknownContent.js +15 -0
- package/dist/streamStateView_UnknownContent.js.map +1 -0
- package/dist/streamStateView_User.d.ts +27 -0
- package/dist/streamStateView_User.d.ts.map +1 -0
- package/dist/streamStateView_User.js +200 -0
- package/dist/streamStateView_User.js.map +1 -0
- package/dist/streamStateView_UserInbox.d.ts +21 -0
- package/dist/streamStateView_UserInbox.d.ts.map +1 -0
- package/dist/streamStateView_UserInbox.js +85 -0
- package/dist/streamStateView_UserInbox.js.map +1 -0
- package/dist/streamStateView_UserMetadata.d.ts +31 -0
- package/dist/streamStateView_UserMetadata.d.ts.map +1 -0
- package/dist/streamStateView_UserMetadata.js +160 -0
- package/dist/streamStateView_UserMetadata.js.map +1 -0
- package/dist/streamStateView_UserSettings.d.ts +24 -0
- package/dist/streamStateView_UserSettings.d.ts.map +1 -0
- package/dist/streamStateView_UserSettings.js +125 -0
- package/dist/streamStateView_UserSettings.js.map +1 -0
- package/dist/streamUtils.d.ts +49 -0
- package/dist/streamUtils.d.ts.map +1 -0
- package/dist/streamUtils.js +220 -0
- package/dist/streamUtils.js.map +1 -0
- package/dist/sync/ISyncedStreamsController.d.ts +17 -0
- package/dist/sync/ISyncedStreamsController.d.ts.map +1 -0
- package/dist/sync/ISyncedStreamsController.js +2 -0
- package/dist/sync/ISyncedStreamsController.js.map +1 -0
- package/dist/sync/SyncedStreamsControllerLite.d.ts +32 -0
- package/dist/sync/SyncedStreamsControllerLite.d.ts.map +1 -0
- package/dist/sync/SyncedStreamsControllerLite.js +183 -0
- package/dist/sync/SyncedStreamsControllerLite.js.map +1 -0
- package/dist/sync-agent/constants.d.ts +2 -0
- package/dist/sync-agent/constants.d.ts.map +1 -0
- package/dist/sync-agent/constants.js +2 -0
- package/dist/sync-agent/constants.js.map +1 -0
- package/dist/sync-agent/db.d.ts +18 -0
- package/dist/sync-agent/db.d.ts.map +1 -0
- package/dist/sync-agent/db.js +34 -0
- package/dist/sync-agent/db.js.map +1 -0
- package/dist/sync-agent/dms/dms.d.ts +24 -0
- package/dist/sync-agent/dms/dms.d.ts.map +1 -0
- package/dist/sync-agent/dms/dms.js +60 -0
- package/dist/sync-agent/dms/dms.js.map +1 -0
- package/dist/sync-agent/dms/models/dm.d.ts +76 -0
- package/dist/sync-agent/dms/models/dm.d.ts.map +1 -0
- package/dist/sync-agent/dms/models/dm.js +177 -0
- package/dist/sync-agent/dms/models/dm.js.map +1 -0
- package/dist/sync-agent/entitlements/entitlements.d.ts +10 -0
- package/dist/sync-agent/entitlements/entitlements.d.ts.map +1 -0
- package/dist/sync-agent/entitlements/entitlements.js +20 -0
- package/dist/sync-agent/entitlements/entitlements.js.map +1 -0
- package/dist/sync-agent/gdms/gdms.d.ts +23 -0
- package/dist/sync-agent/gdms/gdms.d.ts.map +1 -0
- package/dist/sync-agent/gdms/gdms.js +56 -0
- package/dist/sync-agent/gdms/gdms.js.map +1 -0
- package/dist/sync-agent/gdms/models/gdm.d.ts +76 -0
- package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -0
- package/dist/sync-agent/gdms/models/gdm.js +176 -0
- package/dist/sync-agent/gdms/models/gdm.js.map +1 -0
- package/dist/sync-agent/members/members.d.ts +32 -0
- package/dist/sync-agent/members/members.d.ts.map +1 -0
- package/dist/sync-agent/members/members.js +143 -0
- package/dist/sync-agent/members/members.js.map +1 -0
- package/dist/sync-agent/members/models/member.d.ts +68 -0
- package/dist/sync-agent/members/models/member.d.ts.map +1 -0
- package/dist/sync-agent/members/models/member.js +134 -0
- package/dist/sync-agent/members/models/member.js.map +1 -0
- package/dist/sync-agent/members/models/myself.d.ts +20 -0
- package/dist/sync-agent/members/models/myself.d.ts.map +1 -0
- package/dist/sync-agent/members/models/myself.js +97 -0
- package/dist/sync-agent/members/models/myself.js.map +1 -0
- package/dist/sync-agent/river-connection/models/authStatus.d.ts +18 -0
- package/dist/sync-agent/river-connection/models/authStatus.d.ts.map +1 -0
- package/dist/sync-agent/river-connection/models/authStatus.js +19 -0
- package/dist/sync-agent/river-connection/models/authStatus.js.map +1 -0
- package/dist/sync-agent/river-connection/models/riverChain.d.ts +24 -0
- package/dist/sync-agent/river-connection/models/riverChain.d.ts.map +1 -0
- package/dist/sync-agent/river-connection/models/riverChain.js +66 -0
- package/dist/sync-agent/river-connection/models/riverChain.js.map +1 -0
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts +11 -0
- package/dist/sync-agent/river-connection/models/transactionalClient.d.ts.map +1 -0
- package/dist/sync-agent/river-connection/models/transactionalClient.js +14 -0
- package/dist/sync-agent/river-connection/models/transactionalClient.js.map +1 -0
- package/dist/sync-agent/river-connection/riverConnection.d.ts +66 -0
- package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -0
- package/dist/sync-agent/river-connection/riverConnection.js +222 -0
- package/dist/sync-agent/river-connection/riverConnection.js.map +1 -0
- package/dist/sync-agent/spaces/models/channel.d.ts +124 -0
- package/dist/sync-agent/spaces/models/channel.d.ts.map +1 -0
- package/dist/sync-agent/spaces/models/channel.js +254 -0
- package/dist/sync-agent/spaces/models/channel.js.map +1 -0
- package/dist/sync-agent/spaces/models/space.d.ts +57 -0
- package/dist/sync-agent/spaces/models/space.d.ts.map +1 -0
- package/dist/sync-agent/spaces/models/space.js +147 -0
- package/dist/sync-agent/spaces/models/space.js.map +1 -0
- package/dist/sync-agent/spaces/spaces.d.ts +29 -0
- package/dist/sync-agent/spaces/spaces.d.ts.map +1 -0
- package/dist/sync-agent/spaces/spaces.js +90 -0
- package/dist/sync-agent/spaces/spaces.js.map +1 -0
- package/dist/sync-agent/syncAgent.d.ts +66 -0
- package/dist/sync-agent/syncAgent.d.ts.map +1 -0
- package/dist/sync-agent/syncAgent.js +102 -0
- package/dist/sync-agent/syncAgent.js.map +1 -0
- package/dist/sync-agent/timeline/timeline.d.ts +26 -0
- package/dist/sync-agent/timeline/timeline.d.ts.map +1 -0
- package/dist/sync-agent/timeline/timeline.js +56 -0
- package/dist/sync-agent/timeline/timeline.js.map +1 -0
- package/dist/sync-agent/user/models/userInbox.d.ts +21 -0
- package/dist/sync-agent/user/models/userInbox.d.ts.map +1 -0
- package/dist/sync-agent/user/models/userInbox.js +68 -0
- package/dist/sync-agent/user/models/userInbox.js.map +1 -0
- package/dist/sync-agent/user/models/userMemberships.d.ts +28 -0
- package/dist/sync-agent/user/models/userMemberships.d.ts.map +1 -0
- package/dist/sync-agent/user/models/userMemberships.js +83 -0
- package/dist/sync-agent/user/models/userMemberships.js.map +1 -0
- package/dist/sync-agent/user/models/userMetadata.d.ts +21 -0
- package/dist/sync-agent/user/models/userMetadata.d.ts.map +1 -0
- package/dist/sync-agent/user/models/userMetadata.js +68 -0
- package/dist/sync-agent/user/models/userMetadata.js.map +1 -0
- package/dist/sync-agent/user/models/userSettings.d.ts +17 -0
- package/dist/sync-agent/user/models/userSettings.d.ts.map +1 -0
- package/dist/sync-agent/user/models/userSettings.js +48 -0
- package/dist/sync-agent/user/models/userSettings.js.map +1 -0
- package/dist/sync-agent/user/user.d.ts +18 -0
- package/dist/sync-agent/user/user.d.ts.map +1 -0
- package/dist/sync-agent/user/user.js +30 -0
- package/dist/sync-agent/user/user.js.map +1 -0
- package/dist/sync-agent/utils/bot.d.ts +16 -0
- package/dist/sync-agent/utils/bot.d.ts.map +1 -0
- package/dist/sync-agent/utils/bot.js +39 -0
- package/dist/sync-agent/utils/bot.js.map +1 -0
- package/dist/sync-agent/utils/promiseQueue.d.ts +6 -0
- package/dist/sync-agent/utils/promiseQueue.d.ts.map +1 -0
- package/dist/sync-agent/utils/promiseQueue.js +20 -0
- package/dist/sync-agent/utils/promiseQueue.js.map +1 -0
- package/dist/sync-agent/utils/providers.d.ts +5 -0
- package/dist/sync-agent/utils/providers.d.ts.map +1 -0
- package/dist/sync-agent/utils/providers.js +16 -0
- package/dist/sync-agent/utils/providers.js.map +1 -0
- package/dist/sync-agent/utils/spaceUtils.d.ts +3 -0
- package/dist/sync-agent/utils/spaceUtils.d.ts.map +1 -0
- package/dist/sync-agent/utils/spaceUtils.js +31 -0
- package/dist/sync-agent/utils/spaceUtils.js.map +1 -0
- package/dist/syncEvents.d.ts +9 -0
- package/dist/syncEvents.d.ts.map +1 -0
- package/dist/syncEvents.js +2 -0
- package/dist/syncEvents.js.map +1 -0
- package/dist/syncedStream.d.ts +24 -0
- package/dist/syncedStream.d.ts.map +1 -0
- package/dist/syncedStream.js +119 -0
- package/dist/syncedStream.js.map +1 -0
- package/dist/syncedStreams.d.ts +43 -0
- package/dist/syncedStreams.d.ts.map +1 -0
- package/dist/syncedStreams.js +115 -0
- package/dist/syncedStreams.js.map +1 -0
- package/dist/syncedStreamsExtension.d.ts +45 -0
- package/dist/syncedStreamsExtension.d.ts.map +1 -0
- package/dist/syncedStreamsExtension.js +295 -0
- package/dist/syncedStreamsExtension.js.map +1 -0
- package/dist/syncedStreamsLoop.d.ts +132 -0
- package/dist/syncedStreamsLoop.d.ts.map +1 -0
- package/dist/syncedStreamsLoop.js +922 -0
- package/dist/syncedStreamsLoop.js.map +1 -0
- package/dist/tags.d.ts +12 -0
- package/dist/tags.d.ts.map +1 -0
- package/dist/tags.js +160 -0
- package/dist/tags.js.map +1 -0
- package/dist/tests/bob_testUtils.d.ts +4 -0
- package/dist/tests/bob_testUtils.d.ts.map +1 -0
- package/dist/tests/bob_testUtils.js +161 -0
- package/dist/tests/bob_testUtils.js.map +1 -0
- package/dist/tests/multi/appRegistryService.test.d.ts +2 -0
- package/dist/tests/multi/appRegistryService.test.d.ts.map +1 -0
- package/dist/tests/multi/appRegistryService.test.js +41 -0
- package/dist/tests/multi/appRegistryService.test.js.map +1 -0
- package/dist/tests/multi/botEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/botEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/botEntitlements.test.js +178 -0
- package/dist/tests/multi/botEntitlements.test.js.map +1 -0
- package/dist/tests/multi/botMembership.test.d.ts +5 -0
- package/dist/tests/multi/botMembership.test.d.ts.map +1 -0
- package/dist/tests/multi/botMembership.test.js +295 -0
- package/dist/tests/multi/botMembership.test.js.map +1 -0
- package/dist/tests/multi/botStreamCreation.test.d.ts +5 -0
- package/dist/tests/multi/botStreamCreation.test.d.ts.map +1 -0
- package/dist/tests/multi/botStreamCreation.test.js +60 -0
- package/dist/tests/multi/botStreamCreation.test.js.map +1 -0
- package/dist/tests/multi/channelScrubbing.test.d.ts +5 -0
- package/dist/tests/multi/channelScrubbing.test.d.ts.map +1 -0
- package/dist/tests/multi/channelScrubbing.test.js +102 -0
- package/dist/tests/multi/channelScrubbing.test.js.map +1 -0
- package/dist/tests/multi/channelSpaceSettings.test.d.ts +5 -0
- package/dist/tests/multi/channelSpaceSettings.test.d.ts.map +1 -0
- package/dist/tests/multi/channelSpaceSettings.test.js +204 -0
- package/dist/tests/multi/channelSpaceSettings.test.js.map +1 -0
- package/dist/tests/multi/disableChannel.test.d.ts +5 -0
- package/dist/tests/multi/disableChannel.test.d.ts.map +1 -0
- package/dist/tests/multi/disableChannel.test.js +30 -0
- package/dist/tests/multi/disableChannel.test.js.map +1 -0
- package/dist/tests/multi/disableSpace.test.d.ts +5 -0
- package/dist/tests/multi/disableSpace.test.d.ts.map +1 -0
- package/dist/tests/multi/disableSpace.test.js +37 -0
- package/dist/tests/multi/disableSpace.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js +129 -0
- package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js +44 -0
- package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js +125 -0
- package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js +72 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +57 -0
- package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js +86 -0
- package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js +69 -0
- package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js +145 -0
- package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js +53 -0
- package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/membershipRenewals.test.js +150 -0
- package/dist/tests/multi/entitlements/membershipRenewals.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js +131 -0
- package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js +109 -0
- package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js +103 -0
- package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js +84 -0
- package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js +168 -0
- package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js +45 -0
- package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js +79 -0
- package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js.map +1 -0
- package/dist/tests/multi/legacySpace.test.d.ts +5 -0
- package/dist/tests/multi/legacySpace.test.d.ts.map +1 -0
- package/dist/tests/multi/legacySpace.test.js +48 -0
- package/dist/tests/multi/legacySpace.test.js.map +1 -0
- package/dist/tests/multi/mediaWithEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/mediaWithEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/mediaWithEntitlements.test.js +152 -0
- package/dist/tests/multi/mediaWithEntitlements.test.js.map +1 -0
- package/dist/tests/multi/membershipManagement.test.d.ts +5 -0
- package/dist/tests/multi/membershipManagement.test.d.ts.map +1 -0
- package/dist/tests/multi/membershipManagement.test.js +76 -0
- package/dist/tests/multi/membershipManagement.test.js.map +1 -0
- package/dist/tests/multi/notificationService.test.d.ts +2 -0
- package/dist/tests/multi/notificationService.test.d.ts.map +1 -0
- package/dist/tests/multi/notificationService.test.js +51 -0
- package/dist/tests/multi/notificationService.test.js.map +1 -0
- package/dist/tests/multi/riverAirdropDapp.test.d.ts +5 -0
- package/dist/tests/multi/riverAirdropDapp.test.d.ts.map +1 -0
- package/dist/tests/multi/riverAirdropDapp.test.js +43 -0
- package/dist/tests/multi/riverAirdropDapp.test.js.map +1 -0
- package/dist/tests/multi/spaceDapp.test.d.ts +5 -0
- package/dist/tests/multi/spaceDapp.test.d.ts.map +1 -0
- package/dist/tests/multi/spaceDapp.test.js +61 -0
- package/dist/tests/multi/spaceDapp.test.js.map +1 -0
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts +2 -0
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts.map +1 -0
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js +63 -0
- package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/member-queue.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/member-queue.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/member-queue.test.js +54 -0
- package/dist/tests/multi/sync-agent/member-queue.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/member.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/member.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/member.test.js +45 -0
- package/dist/tests/multi/sync-agent/member.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/members.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/members.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/members.test.js +35 -0
- package/dist/tests/multi/sync-agent/members.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/riverConnection.test.d.ts +5 -0
- package/dist/tests/multi/sync-agent/riverConnection.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/riverConnection.test.js +39 -0
- package/dist/tests/multi/sync-agent/riverConnection.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/spaces.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/spaces.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/spaces.test.js +33 -0
- package/dist/tests/multi/sync-agent/spaces.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/streams.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/streams.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/streams.test.js +27 -0
- package/dist/tests/multi/sync-agent/streams.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/syncAgent.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/syncAgent.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/syncAgent.test.js +68 -0
- package/dist/tests/multi/sync-agent/syncAgent.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/syncAgents.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/syncAgents.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/syncAgents.test.js +163 -0
- package/dist/tests/multi/sync-agent/syncAgents.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/timeline.test.d.ts +2 -0
- package/dist/tests/multi/sync-agent/timeline.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/timeline.test.js +232 -0
- package/dist/tests/multi/sync-agent/timeline.test.js.map +1 -0
- package/dist/tests/multi/sync-agent/user.test.d.ts +5 -0
- package/dist/tests/multi/sync-agent/user.test.d.ts.map +1 -0
- package/dist/tests/multi/sync-agent/user.test.js +55 -0
- package/dist/tests/multi/sync-agent/user.test.js.map +1 -0
- package/dist/tests/multi/transactions.test.d.ts +5 -0
- package/dist/tests/multi/transactions.test.d.ts.map +1 -0
- package/dist/tests/multi/transactions.test.js +153 -0
- package/dist/tests/multi/transactions.test.js.map +1 -0
- package/dist/tests/multi/transactions_SpaceReview.test.d.ts +2 -0
- package/dist/tests/multi/transactions_SpaceReview.test.d.ts.map +1 -0
- package/dist/tests/multi/transactions_SpaceReview.test.js +278 -0
- package/dist/tests/multi/transactions_SpaceReview.test.js.map +1 -0
- package/dist/tests/multi/transactions_Tip.test.d.ts +5 -0
- package/dist/tests/multi/transactions_Tip.test.d.ts.map +1 -0
- package/dist/tests/multi/transactions_Tip.test.js +379 -0
- package/dist/tests/multi/transactions_Tip.test.js.map +1 -0
- package/dist/tests/multi/withEntitlements.test.d.ts +5 -0
- package/dist/tests/multi/withEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi/withEntitlements.test.js +125 -0
- package/dist/tests/multi/withEntitlements.test.js.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriends.test.d.ts +5 -0
- package/dist/tests/multi_ne/aliceAndFriends.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriends.test.js +20 -0
- package/dist/tests/multi_ne/aliceAndFriends.test.js.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.d.ts +5 -0
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.js +23 -0
- package/dist/tests/multi_ne/aliceAndFriends10for10.test.js.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriends3for8.test.d.ts +5 -0
- package/dist/tests/multi_ne/aliceAndFriends3for8.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriends3for8.test.js +22 -0
- package/dist/tests/multi_ne/aliceAndFriends3for8.test.js.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.d.ts +5 -0
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js +28 -0
- package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js.map +1 -0
- package/dist/tests/multi_ne/bobFlushes.test.d.ts +5 -0
- package/dist/tests/multi_ne/bobFlushes.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/bobFlushes.test.js +20 -0
- package/dist/tests/multi_ne/bobFlushes.test.js.map +1 -0
- package/dist/tests/multi_ne/channels.test.d.ts +5 -0
- package/dist/tests/multi_ne/channels.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/channels.test.js +45 -0
- package/dist/tests/multi_ne/channels.test.js.map +1 -0
- package/dist/tests/multi_ne/client.test.d.ts +5 -0
- package/dist/tests/multi_ne/client.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/client.test.js +821 -0
- package/dist/tests/multi_ne/client.test.js.map +1 -0
- package/dist/tests/multi_ne/clientCrypto.test.d.ts +5 -0
- package/dist/tests/multi_ne/clientCrypto.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/clientCrypto.test.js +78 -0
- package/dist/tests/multi_ne/clientCrypto.test.js.map +1 -0
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.d.ts +5 -0
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +176 -0
- package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -0
- package/dist/tests/multi_ne/deviceKeyMessage.test.d.ts +5 -0
- package/dist/tests/multi_ne/deviceKeyMessage.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/deviceKeyMessage.test.js +156 -0
- package/dist/tests/multi_ne/deviceKeyMessage.test.js.map +1 -0
- package/dist/tests/multi_ne/dms.test.d.ts +5 -0
- package/dist/tests/multi_ne/dms.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/dms.test.js +131 -0
- package/dist/tests/multi_ne/dms.test.js.map +1 -0
- package/dist/tests/multi_ne/ephemeralEvents.test.d.ts +5 -0
- package/dist/tests/multi_ne/ephemeralEvents.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/ephemeralEvents.test.js +125 -0
- package/dist/tests/multi_ne/ephemeralEvents.test.js.map +1 -0
- package/dist/tests/multi_ne/gdms.test.d.ts +5 -0
- package/dist/tests/multi_ne/gdms.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/gdms.test.js +302 -0
- package/dist/tests/multi_ne/gdms.test.js.map +1 -0
- package/dist/tests/multi_ne/id.test.d.ts +5 -0
- package/dist/tests/multi_ne/id.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/id.test.js +70 -0
- package/dist/tests/multi_ne/id.test.js.map +1 -0
- package/dist/tests/multi_ne/makeStreamRpcClient.test.d.ts +5 -0
- package/dist/tests/multi_ne/makeStreamRpcClient.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/makeStreamRpcClient.test.js +80 -0
- package/dist/tests/multi_ne/makeStreamRpcClient.test.js.map +1 -0
- package/dist/tests/multi_ne/media.test.d.ts +5 -0
- package/dist/tests/multi_ne/media.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/media.test.js +220 -0
- package/dist/tests/multi_ne/media.test.js.map +1 -0
- package/dist/tests/multi_ne/memberMetadata.test.d.ts +5 -0
- package/dist/tests/multi_ne/memberMetadata.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/memberMetadata.test.js +622 -0
- package/dist/tests/multi_ne/memberMetadata.test.js.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts +5 -0
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js +54 -0
- package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts +5 -0
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js +37 -0
- package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts +5 -0
- package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_Nft.test.js +49 -0
- package/dist/tests/multi_ne/memberMetadata_Nft.test.js.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts +5 -0
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.js +126 -0
- package/dist/tests/multi_ne/memberMetadata_Usernames.test.js.map +1 -0
- package/dist/tests/multi_ne/nodeSelection.test.d.ts +5 -0
- package/dist/tests/multi_ne/nodeSelection.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/nodeSelection.test.js +41 -0
- package/dist/tests/multi_ne/nodeSelection.test.js.map +1 -0
- package/dist/tests/multi_ne/outboundGroupSession.test.d.ts +5 -0
- package/dist/tests/multi_ne/outboundGroupSession.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/outboundGroupSession.test.js +107 -0
- package/dist/tests/multi_ne/outboundGroupSession.test.js.map +1 -0
- package/dist/tests/multi_ne/persistenceStore.test.d.ts +5 -0
- package/dist/tests/multi_ne/persistenceStore.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/persistenceStore.test.js +27 -0
- package/dist/tests/multi_ne/persistenceStore.test.js.map +1 -0
- package/dist/tests/multi_ne/restart.test.d.ts +4 -0
- package/dist/tests/multi_ne/restart.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/restart.test.js +160 -0
- package/dist/tests/multi_ne/restart.test.js.map +1 -0
- package/dist/tests/multi_ne/sign.test.d.ts +5 -0
- package/dist/tests/multi_ne/sign.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/sign.test.js +218 -0
- package/dist/tests/multi_ne/sign.test.js.map +1 -0
- package/dist/tests/multi_ne/space.test.d.ts +5 -0
- package/dist/tests/multi_ne/space.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/space.test.js +284 -0
- package/dist/tests/multi_ne/space.test.js.map +1 -0
- package/dist/tests/multi_ne/streamMembershipHardening.test.d.ts +5 -0
- package/dist/tests/multi_ne/streamMembershipHardening.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/streamMembershipHardening.test.js +30 -0
- package/dist/tests/multi_ne/streamMembershipHardening.test.js.map +1 -0
- package/dist/tests/multi_ne/streamRpcClient.test.d.ts +5 -0
- package/dist/tests/multi_ne/streamRpcClient.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/streamRpcClient.test.js +554 -0
- package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -0
- package/dist/tests/multi_ne/streamRpcClientGetSince.test.d.ts +2 -0
- package/dist/tests/multi_ne/streamRpcClientGetSince.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/streamRpcClientGetSince.test.js +120 -0
- package/dist/tests/multi_ne/streamRpcClientGetSince.test.js.map +1 -0
- package/dist/tests/multi_ne/streamRpcClientSync.test.d.ts +5 -0
- package/dist/tests/multi_ne/streamRpcClientSync.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/streamRpcClientSync.test.js +201 -0
- package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -0
- package/dist/tests/multi_ne/streamRpcClientSyncSnapshots.test.d.ts +2 -0
- package/dist/tests/multi_ne/streamRpcClientSyncSnapshots.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/streamRpcClientSyncSnapshots.test.js +96 -0
- package/dist/tests/multi_ne/streamRpcClientSyncSnapshots.test.js.map +1 -0
- package/dist/tests/multi_ne/streamStateView_User.test.d.ts +5 -0
- package/dist/tests/multi_ne/streamStateView_User.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/streamStateView_User.test.js +31 -0
- package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.d.ts +2 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.js +157 -0
- package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -0
- package/dist/tests/multi_ne/syncedStream.test.d.ts +5 -0
- package/dist/tests/multi_ne/syncedStream.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/syncedStream.test.js +98 -0
- package/dist/tests/multi_ne/syncedStream.test.js.map +1 -0
- package/dist/tests/multi_ne/syncedStreams.test.d.ts +5 -0
- package/dist/tests/multi_ne/syncedStreams.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/syncedStreams.test.js +158 -0
- package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -0
- package/dist/tests/multi_ne/trading.solana.test.d.ts +2 -0
- package/dist/tests/multi_ne/trading.solana.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/trading.solana.test.js +229 -0
- package/dist/tests/multi_ne/trading.solana.test.js.map +1 -0
- package/dist/tests/multi_ne/trading.test.d.ts +2 -0
- package/dist/tests/multi_ne/trading.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/trading.test.js +243 -0
- package/dist/tests/multi_ne/trading.test.js.map +1 -0
- package/dist/tests/multi_ne/userInboxMessage.test.d.ts +5 -0
- package/dist/tests/multi_ne/userInboxMessage.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/userInboxMessage.test.js +201 -0
- package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -0
- package/dist/tests/multi_ne/userSettings.test.d.ts +5 -0
- package/dist/tests/multi_ne/userSettings.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/userSettings.test.js +116 -0
- package/dist/tests/multi_ne/userSettings.test.js.map +1 -0
- package/dist/tests/multi_ne/workflows.test.d.ts +5 -0
- package/dist/tests/multi_ne/workflows.test.d.ts.map +1 -0
- package/dist/tests/multi_ne/workflows.test.js +87 -0
- package/dist/tests/multi_ne/workflows.test.js.map +1 -0
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts +6 -0
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js +78 -0
- package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js.map +1 -0
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts +6 -0
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts.map +1 -0
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js +89 -0
- package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js.map +1 -0
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts +6 -0
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts.map +1 -0
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js +88 -0
- package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js.map +1 -0
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts +6 -0
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts.map +1 -0
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js +105 -0
- package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js.map +1 -0
- package/dist/tests/multi_v2/updateRole.test.d.ts +5 -0
- package/dist/tests/multi_v2/updateRole.test.d.ts.map +1 -0
- package/dist/tests/multi_v2/updateRole.test.js +25 -0
- package/dist/tests/multi_v2/updateRole.test.js.map +1 -0
- package/dist/tests/syncAgent_testUtils.d.ts +9 -0
- package/dist/tests/syncAgent_testUtils.d.ts.map +1 -0
- package/dist/tests/syncAgent_testUtils.js +39 -0
- package/dist/tests/syncAgent_testUtils.js.map +1 -0
- package/dist/tests/testDriver_testUtils.d.ts +2 -0
- package/dist/tests/testDriver_testUtils.d.ts.map +1 -0
- package/dist/tests/testDriver_testUtils.js +154 -0
- package/dist/tests/testDriver_testUtils.js.map +1 -0
- package/dist/tests/testUtils.d.ts +197 -0
- package/dist/tests/testUtils.d.ts.map +1 -0
- package/dist/tests/testUtils.js +1086 -0
- package/dist/tests/testUtils.js.map +1 -0
- package/dist/tests/unit/crypto.test.d.ts +5 -0
- package/dist/tests/unit/crypto.test.d.ts.map +1 -0
- package/dist/tests/unit/crypto.test.js +116 -0
- package/dist/tests/unit/crypto.test.js.map +1 -0
- package/dist/tests/unit/crypto_utils.test.d.ts +5 -0
- package/dist/tests/unit/crypto_utils.test.d.ts.map +1 -0
- package/dist/tests/unit/crypto_utils.test.js +36 -0
- package/dist/tests/unit/crypto_utils.test.js.map +1 -0
- package/dist/tests/unit/decorators.test.d.ts +2 -0
- package/dist/tests/unit/decorators.test.d.ts.map +1 -0
- package/dist/tests/unit/decorators.test.js +76 -0
- package/dist/tests/unit/decorators.test.js.map +1 -0
- package/dist/tests/unit/decryptionExtensions.test.d.ts +2 -0
- package/dist/tests/unit/decryptionExtensions.test.d.ts.map +1 -0
- package/dist/tests/unit/decryptionExtensions.test.js +341 -0
- package/dist/tests/unit/decryptionExtensions.test.js.map +1 -0
- package/dist/tests/unit/helpers/ConversationBuilder.d.ts +39 -0
- package/dist/tests/unit/helpers/ConversationBuilder.d.ts.map +1 -0
- package/dist/tests/unit/helpers/ConversationBuilder.js +171 -0
- package/dist/tests/unit/helpers/ConversationBuilder.js.map +1 -0
- package/dist/tests/unit/observable/combine.test.d.ts +2 -0
- package/dist/tests/unit/observable/combine.test.d.ts.map +1 -0
- package/dist/tests/unit/observable/combine.test.js +282 -0
- package/dist/tests/unit/observable/combine.test.js.map +1 -0
- package/dist/tests/unit/observable/observable.test.d.ts +2 -0
- package/dist/tests/unit/observable/observable.test.d.ts.map +1 -0
- package/dist/tests/unit/observable/observable.test.js +321 -0
- package/dist/tests/unit/observable/observable.test.js.map +1 -0
- package/dist/tests/unit/snapshotMigration0000.test.d.ts +2 -0
- package/dist/tests/unit/snapshotMigration0000.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshotMigration0000.test.js +12 -0
- package/dist/tests/unit/snapshotMigration0000.test.js.map +1 -0
- package/dist/tests/unit/snapshotMigration0001.test.d.ts +2 -0
- package/dist/tests/unit/snapshotMigration0001.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshotMigration0001.test.js +63 -0
- package/dist/tests/unit/snapshotMigration0001.test.js.map +1 -0
- package/dist/tests/unit/snapshotMigration0002.test.d.ts +2 -0
- package/dist/tests/unit/snapshotMigration0002.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshotMigration0002.test.js +31 -0
- package/dist/tests/unit/snapshotMigration0002.test.js.map +1 -0
- package/dist/tests/unit/snapshotMigration0003.test.d.ts +2 -0
- package/dist/tests/unit/snapshotMigration0003.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshotMigration0003.test.js +28 -0
- package/dist/tests/unit/snapshotMigration0003.test.js.map +1 -0
- package/dist/tests/unit/snapshotMigration0004.test.d.ts +2 -0
- package/dist/tests/unit/snapshotMigration0004.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshotMigration0004.test.js +112 -0
- package/dist/tests/unit/snapshotMigration0004.test.js.map +1 -0
- package/dist/tests/unit/snapshotMigration0005.test.d.ts +2 -0
- package/dist/tests/unit/snapshotMigration0005.test.d.ts.map +1 -0
- package/dist/tests/unit/snapshotMigration0005.test.js +124 -0
- package/dist/tests/unit/snapshotMigration0005.test.js.map +1 -0
- package/dist/tests/unit/store.test.d.ts +2 -0
- package/dist/tests/unit/store.test.d.ts.map +1 -0
- package/dist/tests/unit/store.test.js +47 -0
- package/dist/tests/unit/store.test.js.map +1 -0
- package/dist/tests/unit/streamUtils.test.d.ts +2 -0
- package/dist/tests/unit/streamUtils.test.d.ts.map +1 -0
- package/dist/tests/unit/streamUtils.test.js +383 -0
- package/dist/tests/unit/streamUtils.test.js.map +1 -0
- package/dist/tests/unit/tags.test.d.ts +2 -0
- package/dist/tests/unit/tags.test.d.ts.map +1 -0
- package/dist/tests/unit/tags.test.js +154 -0
- package/dist/tests/unit/tags.test.js.map +1 -0
- package/dist/tests/unit/testUtils.test.d.ts +5 -0
- package/dist/tests/unit/testUtils.test.d.ts.map +1 -0
- package/dist/tests/unit/testUtils.test.js +86 -0
- package/dist/tests/unit/testUtils.test.js.map +1 -0
- package/dist/tests/unit/timelineStoreInterface.test.d.ts +5 -0
- package/dist/tests/unit/timelineStoreInterface.test.d.ts.map +1 -0
- package/dist/tests/unit/timelineStoreInterface.test.js +343 -0
- package/dist/tests/unit/timelineStoreInterface.test.js.map +1 -0
- package/dist/townsEnv.d.ts +47 -0
- package/dist/townsEnv.d.ts.map +1 -0
- package/dist/townsEnv.js +248 -0
- package/dist/townsEnv.js.map +1 -0
- package/dist/types.d.ts +200 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +765 -0
- package/dist/types.js.map +1 -0
- package/dist/unauthenticatedClient.d.ts +25 -0
- package/dist/unauthenticatedClient.d.ts.map +1 -0
- package/dist/unauthenticatedClient.js +133 -0
- package/dist/unauthenticatedClient.js.map +1 -0
- package/dist/utils.d.ts +33 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +119 -0
- package/dist/utils.js.map +1 -0
- package/dist/views/models/timelineEvent.d.ts +11 -0
- package/dist/views/models/timelineEvent.d.ts.map +1 -0
- package/dist/views/models/timelineEvent.js +1063 -0
- package/dist/views/models/timelineEvent.js.map +1 -0
- package/dist/views/models/timelineTypes.d.ts +412 -0
- package/dist/views/models/timelineTypes.d.ts.map +1 -0
- package/dist/views/models/timelineTypes.js +224 -0
- package/dist/views/models/timelineTypes.js.map +1 -0
- package/dist/views/streams/channelStreams.d.ts +8 -0
- package/dist/views/streams/channelStreams.d.ts.map +1 -0
- package/dist/views/streams/channelStreams.js +9 -0
- package/dist/views/streams/channelStreams.js.map +1 -0
- package/dist/views/streams/dmStreams.d.ts +13 -0
- package/dist/views/streams/dmStreams.d.ts.map +1 -0
- package/dist/views/streams/dmStreams.js +33 -0
- package/dist/views/streams/dmStreams.js.map +1 -0
- package/dist/views/streams/gdmStreams.d.ts +16 -0
- package/dist/views/streams/gdmStreams.d.ts.map +1 -0
- package/dist/views/streams/gdmStreams.js +40 -0
- package/dist/views/streams/gdmStreams.js.map +1 -0
- package/dist/views/streams/notificationSettings.d.ts +14 -0
- package/dist/views/streams/notificationSettings.d.ts.map +1 -0
- package/dist/views/streams/notificationSettings.js +32 -0
- package/dist/views/streams/notificationSettings.js.map +1 -0
- package/dist/views/streams/spaceStreams.d.ts +17 -0
- package/dist/views/streams/spaceStreams.d.ts.map +1 -0
- package/dist/views/streams/spaceStreams.js +52 -0
- package/dist/views/streams/spaceStreams.js.map +1 -0
- package/dist/views/streams/streamMemberIds.d.ts +8 -0
- package/dist/views/streams/streamMemberIds.d.ts.map +1 -0
- package/dist/views/streams/streamMemberIds.js +34 -0
- package/dist/views/streams/streamMemberIds.js.map +1 -0
- package/dist/views/streams/streamStatus.d.ts +12 -0
- package/dist/views/streams/streamStatus.d.ts.map +1 -0
- package/dist/views/streams/streamStatus.js +25 -0
- package/dist/views/streams/streamStatus.js.map +1 -0
- package/dist/views/streams/timelines.d.ts +25 -0
- package/dist/views/streams/timelines.d.ts.map +1 -0
- package/dist/views/streams/timelines.js +108 -0
- package/dist/views/streams/timelines.js.map +1 -0
- package/dist/views/streams/timelinesModel.d.ts +32 -0
- package/dist/views/streams/timelinesModel.d.ts.map +1 -0
- package/dist/views/streams/timelinesModel.js +656 -0
- package/dist/views/streams/timelinesModel.js.map +1 -0
- package/dist/views/streams/userInboxStreams.d.ts +10 -0
- package/dist/views/streams/userInboxStreams.d.ts.map +1 -0
- package/dist/views/streams/userInboxStreams.js +24 -0
- package/dist/views/streams/userInboxStreams.js.map +1 -0
- package/dist/views/streams/userMetadataStreams.d.ts +10 -0
- package/dist/views/streams/userMetadataStreams.d.ts.map +1 -0
- package/dist/views/streams/userMetadataStreams.js +25 -0
- package/dist/views/streams/userMetadataStreams.js.map +1 -0
- package/dist/views/streams/userSettingsStreams.d.ts +16 -0
- package/dist/views/streams/userSettingsStreams.d.ts.map +1 -0
- package/dist/views/streams/userSettingsStreams.js +74 -0
- package/dist/views/streams/userSettingsStreams.js.map +1 -0
- package/dist/views/streams/userStreamsView.d.ts +28 -0
- package/dist/views/streams/userStreamsView.d.ts.map +1 -0
- package/dist/views/streams/userStreamsView.js +119 -0
- package/dist/views/streams/userStreamsView.js.map +1 -0
- package/dist/views/streamsView.d.ts +58 -0
- package/dist/views/streamsView.d.ts.map +1 -0
- package/dist/views/streamsView.js +172 -0
- package/dist/views/streamsView.js.map +1 -0
- package/dist/views/transforms/blockedUserIdsTransform.d.ts +5 -0
- package/dist/views/transforms/blockedUserIdsTransform.d.ts.map +1 -0
- package/dist/views/transforms/blockedUserIdsTransform.js +12 -0
- package/dist/views/transforms/blockedUserIdsTransform.js.map +1 -0
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts +23 -0
- package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -0
- package/dist/views/transforms/dmsAndGdmsTransform.js +73 -0
- package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -0
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts +13 -0
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts.map +1 -0
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js +22 -0
- package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js.map +1 -0
- package/dist/views/transforms/logObservable.d.ts +2 -0
- package/dist/views/transforms/logObservable.d.ts.map +1 -0
- package/dist/views/transforms/logObservable.js +10 -0
- package/dist/views/transforms/logObservable.js.map +1 -0
- package/dist/views/transforms/membersNotInDmsTransform.d.ts +17 -0
- package/dist/views/transforms/membersNotInDmsTransform.d.ts.map +1 -0
- package/dist/views/transforms/membersNotInDmsTransform.js +39 -0
- package/dist/views/transforms/membersNotInDmsTransform.js.map +1 -0
- package/dist/views/transforms/membershipsTransform.d.ts +4 -0
- package/dist/views/transforms/membershipsTransform.d.ts.map +1 -0
- package/dist/views/transforms/membershipsTransform.js +16 -0
- package/dist/views/transforms/membershipsTransform.js.map +1 -0
- package/dist/views/transforms/mutedStreamIdsTransform.d.ts +5 -0
- package/dist/views/transforms/mutedStreamIdsTransform.d.ts.map +1 -0
- package/dist/views/transforms/mutedStreamIdsTransform.js +11 -0
- package/dist/views/transforms/mutedStreamIdsTransform.js.map +1 -0
- package/dist/views/transforms/spaceIdsTransform.d.ts +3 -0
- package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -0
- package/dist/views/transforms/spaceIdsTransform.js +14 -0
- package/dist/views/transforms/spaceIdsTransform.js.map +1 -0
- package/dist/views/transforms/spaceMentionsTransform.d.ts +17 -0
- package/dist/views/transforms/spaceMentionsTransform.d.ts.map +1 -0
- package/dist/views/transforms/spaceMentionsTransform.js +79 -0
- package/dist/views/transforms/spaceMentionsTransform.js.map +1 -0
- package/dist/views/transforms/spaceUnreadsTransform.d.ts +15 -0
- package/dist/views/transforms/spaceUnreadsTransform.d.ts.map +1 -0
- package/dist/views/transforms/spaceUnreadsTransform.js +83 -0
- package/dist/views/transforms/spaceUnreadsTransform.js.map +1 -0
- package/dist/views/transforms/streamMemberIdsSansUserTransform.d.ts +7 -0
- package/dist/views/transforms/streamMemberIdsSansUserTransform.d.ts.map +1 -0
- package/dist/views/transforms/streamMemberIdsSansUserTransform.js +23 -0
- package/dist/views/transforms/streamMemberIdsSansUserTransform.js.map +1 -0
- package/dist/views/transforms/unreadMarkersTransform.d.ts +13 -0
- package/dist/views/transforms/unreadMarkersTransform.d.ts.map +1 -0
- package/dist/views/transforms/unreadMarkersTransform.js +246 -0
- package/dist/views/transforms/unreadMarkersTransform.js.map +1 -0
- package/package.json +69 -0
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# River-Build SDK
|
|
2
|
+
|
|
3
|
+
For more details, visit the following resources:
|
|
4
|
+
|
|
5
|
+
River documentation: https://docs.towns.com/introduction
|
|
6
|
+
River Messaging with encryption: https://docs.towns.com/concepts/encryption
|
|
7
|
+
River Encryption protocol: https://docs.towns.com/build/towns-encryption
|
|
8
|
+
GitHub repository: git+https://github.com/towns-protocol/towns.git
|
|
9
|
+
bugs: https://github.com/towns-protocol/towns/issues
|
|
10
|
+
|
|
11
|
+
# Debugging Tips
|
|
12
|
+
|
|
13
|
+
## Logging
|
|
14
|
+
|
|
15
|
+
Enabling logging for tests in the shell:
|
|
16
|
+
|
|
17
|
+
DEBUG=csb:* DEBUG_DEPTH=100 bun run test src/my.test.ts -t testCaseName
|
|
18
|
+
|
|
19
|
+
To enabling debug logging in the browser, set var in console:
|
|
20
|
+
|
|
21
|
+
localStorage.debug = 'csb:*'
|
|
22
|
+
|
|
23
|
+
## Inspecting Network Traffic
|
|
24
|
+
|
|
25
|
+
Set this in console to switch encoding to JSON instead of binary:
|
|
26
|
+
|
|
27
|
+
localStorage.RIVER_DEBUG_TRANSPORT = 'true'
|
|
28
|
+
|
|
29
|
+
Now in Network tab of the browser dev tool requests and responses are more readable.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Signer } from 'ethers';
|
|
2
|
+
import { RpcOptions } from './rpcCommon';
|
|
3
|
+
import { SignerContext } from './signerContext';
|
|
4
|
+
export declare class AppRegistryService {
|
|
5
|
+
private static _authenticateCommon;
|
|
6
|
+
static authenticate(signerContext: SignerContext, serviceUrl: string, opts?: RpcOptions): Promise<{
|
|
7
|
+
startResponse: import("@towns-labs/proto").StartAuthenticationResponse;
|
|
8
|
+
finishResponse: import("@towns-labs/proto").FinishAuthenticationResponse;
|
|
9
|
+
appRegistryRpcClient: import("./makeAppRegistryRpcClient").AppRegistryRpcClient;
|
|
10
|
+
}>;
|
|
11
|
+
static authenticateWithSigner(userId: string | Uint8Array, signer: Signer, serviceUrl: string, opts?: RpcOptions): Promise<{
|
|
12
|
+
startResponse: import("@towns-labs/proto").StartAuthenticationResponse;
|
|
13
|
+
finishResponse: import("@towns-labs/proto").FinishAuthenticationResponse;
|
|
14
|
+
appRegistryRpcClient: import("./makeAppRegistryRpcClient").AppRegistryRpcClient;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=appRegistryService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appRegistryService.d.ts","sourceRoot":"","sources":["../src/appRegistryService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAI/C,qBAAa,kBAAkB;mBACN,mBAAmB;WAsC3B,YAAY,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU;;;;;WAkBhF,sBAAsB,CAC/B,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,UAAU;;;;;CAiBxB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { makeAuthenticationRpcClient } from './makeAuthenticationRpcClient';
|
|
2
|
+
import { bin_fromHexString, check } from '@towns-labs/utils';
|
|
3
|
+
import { meganodeAuthHash, riverSign } from './sign';
|
|
4
|
+
import { isDefined } from './check';
|
|
5
|
+
import { hashPersonalMessage } from '@ethereumjs/util';
|
|
6
|
+
import { makeAppRegistryRpcClient } from './makeAppRegistryRpcClient';
|
|
7
|
+
export class AppRegistryService {
|
|
8
|
+
static async _authenticateCommon(userId, serviceUrl, opts, getSignature, extraFinishAuthParams) {
|
|
9
|
+
const authenticationRpcClient = makeAuthenticationRpcClient(serviceUrl, opts);
|
|
10
|
+
const startResponse = await authenticationRpcClient.startAuthentication({ userId });
|
|
11
|
+
check(startResponse.challenge.length >= 16, 'challenge must be 16 bytes');
|
|
12
|
+
check(isDefined(startResponse.expiration), 'expiration must be defined');
|
|
13
|
+
const hash = meganodeAuthHash(userId, startResponse.expiration.seconds, startResponse.challenge);
|
|
14
|
+
const signature = await getSignature(hash);
|
|
15
|
+
const finishResponse = await authenticationRpcClient.finishAuthentication({
|
|
16
|
+
userId,
|
|
17
|
+
challenge: startResponse.challenge,
|
|
18
|
+
signature,
|
|
19
|
+
...extraFinishAuthParams,
|
|
20
|
+
});
|
|
21
|
+
const appRegistryRpcClient = makeAppRegistryRpcClient(serviceUrl, finishResponse.sessionToken, opts);
|
|
22
|
+
return {
|
|
23
|
+
startResponse,
|
|
24
|
+
finishResponse,
|
|
25
|
+
appRegistryRpcClient,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
static async authenticate(signerContext, serviceUrl, opts) {
|
|
29
|
+
const userId = signerContext.creatorAddress;
|
|
30
|
+
return this._authenticateCommon(userId, serviceUrl, opts, async (hashSrc) => {
|
|
31
|
+
const hash = hashPersonalMessage(hashSrc);
|
|
32
|
+
return await riverSign(hash, signerContext.signerPrivateKey());
|
|
33
|
+
}, {
|
|
34
|
+
delegateSig: signerContext.delegateSig,
|
|
35
|
+
delegateExpiryEpochMs: signerContext.delegateExpiryEpochMs,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
static async authenticateWithSigner(userId, signer, serviceUrl, opts) {
|
|
39
|
+
if (typeof userId === 'string') {
|
|
40
|
+
userId = bin_fromHexString(userId);
|
|
41
|
+
}
|
|
42
|
+
return this._authenticateCommon(userId, serviceUrl, opts, async (hash) => {
|
|
43
|
+
const sigHex = await signer.signMessage(hash);
|
|
44
|
+
return bin_fromHexString(sigHex);
|
|
45
|
+
}, {});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=appRegistryService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appRegistryService.js","sourceRoot":"","sources":["../src/appRegistryService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAInC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,MAAM,OAAO,kBAAkB;IACnB,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACpC,MAAkB,EAClB,UAAkB,EAClB,IAA4B,EAC5B,YAAuD,EACvD,qBAA0C;QAE1C,MAAM,uBAAuB,GAAG,2BAA2B,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAE7E,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QACnF,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,4BAA4B,CAAC,CAAA;QACzE,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC,CAAA;QAExE,MAAM,IAAI,GAAG,gBAAgB,CACzB,MAAM,EACN,aAAa,CAAC,UAAU,CAAC,OAAO,EAChC,aAAa,CAAC,SAAS,CAC1B,CAAA;QAED,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,cAAc,GAAG,MAAM,uBAAuB,CAAC,oBAAoB,CAAC;YACtE,MAAM;YACN,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,SAAS;YACT,GAAG,qBAAqB;SAC3B,CAAC,CAAA;QACF,MAAM,oBAAoB,GAAG,wBAAwB,CACjD,UAAU,EACV,cAAc,CAAC,YAAY,EAC3B,IAAI,CACP,CAAA;QACD,OAAO;YACH,aAAa;YACb,cAAc;YACd,oBAAoB;SACvB,CAAA;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,aAA4B,EAAE,UAAkB,EAAE,IAAiB;QACzF,MAAM,MAAM,GAAG,aAAa,CAAC,cAAc,CAAA;QAE3C,OAAO,IAAI,CAAC,mBAAmB,CAC3B,MAAM,EACN,UAAU,EACV,IAAI,EACJ,KAAK,EAAE,OAAO,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;YACzC,OAAO,MAAM,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAClE,CAAC,EACD;YACI,WAAW,EAAE,aAAa,CAAC,WAAW;YACtC,qBAAqB,EAAE,aAAa,CAAC,qBAAqB;SAC7D,CACJ,CAAA;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAC/B,MAA2B,EAC3B,MAAc,EACd,UAAkB,EAClB,IAAiB;QAEjB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAC3B,MAAM,EACN,UAAU,EACV,IAAI,EACJ,KAAK,EAAE,IAAI,EAAE,EAAE;YACX,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YAC7C,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACpC,CAAC,EACD,EAAE,CACL,CAAA;IACL,CAAC;CACJ"}
|
package/dist/check.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Err } from '@towns-labs/proto';
|
|
2
|
+
/**
|
|
3
|
+
* Use this function in the default case of a exhaustive switch statement to ensure that all cases are handled.
|
|
4
|
+
* Always throws JSON RPC error.
|
|
5
|
+
* @param value - Switch value
|
|
6
|
+
* @param message - Error message
|
|
7
|
+
* @param code - JSON RPC error code
|
|
8
|
+
* @param data - Optional data to include in the error
|
|
9
|
+
*/
|
|
10
|
+
export declare function checkNever(value: never, message?: string, code?: Err, data?: any): never;
|
|
11
|
+
/**
|
|
12
|
+
* Use this function in the default case of a exhaustive switch statement to ensure that all cases are handled,
|
|
13
|
+
* but you don't want to throw an error.
|
|
14
|
+
* Typical place you wouldn't want to throw an error - when parsing a protobuf message on the client. The protocol may
|
|
15
|
+
* have been updated on the server, but the client hasn't been updated yet. In this case, the client will receive a case
|
|
16
|
+
* that they can't handle, but it shouldn't break other messages in the stream. If you throw in the middle of a loop processing events,
|
|
17
|
+
* then lots of messages will appear lost, when you could have just gracefully handled a new case.
|
|
18
|
+
* @param value - Switch value
|
|
19
|
+
* @param message - Error message
|
|
20
|
+
* @param code - JSON RPC error code
|
|
21
|
+
* @param data - Optional data to include in the error
|
|
22
|
+
*/
|
|
23
|
+
export declare function logNever(value: never, message?: string): void;
|
|
24
|
+
export declare function isDefined<T>(value: T | undefined | null): value is T;
|
|
25
|
+
interface Lengthwise {
|
|
26
|
+
length: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function hasElements<T extends Lengthwise>(value: T | undefined | null): value is T;
|
|
29
|
+
export declare function assert(condition: boolean, message: string): asserts condition;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAKvC;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,CAMxF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAG7D;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAEpE;AAED,UAAU,UAAU;IAChB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,KAAK,IAAI,CAAC,CAEzF;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAM7E"}
|
package/dist/check.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Err } from '@towns-labs/proto';
|
|
2
|
+
import { dlogError, throwWithCode } from '@towns-labs/utils';
|
|
3
|
+
const log = dlogError('csb:error');
|
|
4
|
+
/**
|
|
5
|
+
* Use this function in the default case of a exhaustive switch statement to ensure that all cases are handled.
|
|
6
|
+
* Always throws JSON RPC error.
|
|
7
|
+
* @param value - Switch value
|
|
8
|
+
* @param message - Error message
|
|
9
|
+
* @param code - JSON RPC error code
|
|
10
|
+
* @param data - Optional data to include in the error
|
|
11
|
+
*/
|
|
12
|
+
export function checkNever(value, message, code, data) {
|
|
13
|
+
throwWithCode(message ?? `Unhandled switch value ${value}`, code ?? Err.INTERNAL_ERROR_SWITCH, data);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Use this function in the default case of a exhaustive switch statement to ensure that all cases are handled,
|
|
17
|
+
* but you don't want to throw an error.
|
|
18
|
+
* Typical place you wouldn't want to throw an error - when parsing a protobuf message on the client. The protocol may
|
|
19
|
+
* have been updated on the server, but the client hasn't been updated yet. In this case, the client will receive a case
|
|
20
|
+
* that they can't handle, but it shouldn't break other messages in the stream. If you throw in the middle of a loop processing events,
|
|
21
|
+
* then lots of messages will appear lost, when you could have just gracefully handled a new case.
|
|
22
|
+
* @param value - Switch value
|
|
23
|
+
* @param message - Error message
|
|
24
|
+
* @param code - JSON RPC error code
|
|
25
|
+
* @param data - Optional data to include in the error
|
|
26
|
+
*/
|
|
27
|
+
export function logNever(value, message) {
|
|
28
|
+
// eslint-disable-next-line no-console
|
|
29
|
+
console.warn(message ?? `Unhandled switch value: ${value}`);
|
|
30
|
+
}
|
|
31
|
+
export function isDefined(value) {
|
|
32
|
+
return value !== undefined && value !== null;
|
|
33
|
+
}
|
|
34
|
+
export function hasElements(value) {
|
|
35
|
+
return isDefined(value) && value.length > 0;
|
|
36
|
+
}
|
|
37
|
+
export function assert(condition, message) {
|
|
38
|
+
if (!condition) {
|
|
39
|
+
const e = new Error(message);
|
|
40
|
+
log('assertion failed: ', e);
|
|
41
|
+
throw e;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE5D,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,CAAA;AAElC;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,OAAgB,EAAE,IAAU,EAAE,IAAU;IAC7E,aAAa,CACT,OAAO,IAAI,0BAA0B,KAAK,EAAE,EAC5C,IAAI,IAAI,GAAG,CAAC,qBAAqB,EACjC,IAAI,CACP,CAAA;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,OAAgB;IACnD,sCAAsC;IACtC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,2BAA2B,KAAK,EAAE,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,SAAS,CAAI,KAA2B;IACpD,OAAU,KAAK,KAAK,SAAS,IAAO,KAAK,KAAK,IAAI,CAAA;AACtD,CAAC;AAMD,MAAM,UAAU,WAAW,CAAuB,KAA2B;IACzE,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,SAAkB,EAAE,OAAe;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAA;QAC5B,MAAM,CAAC,CAAA;IACX,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { CryptoStore, GroupEncryptionAlgorithmId, GroupEncryptionCrypto, type EncryptionDeviceInitOpts } from '@towns-labs/encryption';
|
|
2
|
+
import { type StreamRpcClient } from './makeStreamRpcClient';
|
|
3
|
+
import { type SignerContext } from './signerContext';
|
|
4
|
+
import { type TownsConfig } from './townsEnv';
|
|
5
|
+
import { ethers } from 'ethers';
|
|
6
|
+
import { type Address } from '@towns-labs/web3';
|
|
7
|
+
import { type ParsedEvent, type MiniblockInfoResponse } from './types';
|
|
8
|
+
import { UnpackEnvelopeOpts } from './sign';
|
|
9
|
+
import { UserInboxPayload_GroupEncryptionSessions, type Envelope, type PlainMessage, type StreamEvent, type Tags } from '@towns-labs/proto';
|
|
10
|
+
import { AppRegistryRpcClient } from './makeAppRegistryRpcClient';
|
|
11
|
+
import { StreamStateView } from './streamStateView';
|
|
12
|
+
type Client_Base = {
|
|
13
|
+
/** The userId of the Client. */
|
|
14
|
+
userId: Address;
|
|
15
|
+
/** The signer context of the Client. */
|
|
16
|
+
signerContext: SignerContext;
|
|
17
|
+
/** The wallet of the Client. */
|
|
18
|
+
wallet: ethers.Wallet;
|
|
19
|
+
/** RPC client that connects to the Towns network. */
|
|
20
|
+
rpc: StreamRpcClient;
|
|
21
|
+
/** The config of the Client. Stores environenment id, base and river chain config */
|
|
22
|
+
config: TownsConfig;
|
|
23
|
+
/** Crypto Store */
|
|
24
|
+
keychain: CryptoStore;
|
|
25
|
+
/** Crypto Backend */
|
|
26
|
+
crypto: GroupEncryptionCrypto;
|
|
27
|
+
/** Algorithm used for group encryption. */
|
|
28
|
+
defaultGroupEncryptionAlgorithm: GroupEncryptionAlgorithmId;
|
|
29
|
+
/** Disable hash validation for streams. */
|
|
30
|
+
disableHashValidation: boolean;
|
|
31
|
+
/** Disable signature validation for streams. */
|
|
32
|
+
disableSignatureValidation: boolean;
|
|
33
|
+
/** Options for unpacking envelopes */
|
|
34
|
+
unpackEnvelopeOpts: UnpackEnvelopeOpts;
|
|
35
|
+
/** Get the app service, will authenticate on first call and cache the service for subsequent calls */
|
|
36
|
+
appServiceClient: () => Promise<AppRegistryRpcClient>;
|
|
37
|
+
/** Get a stream by streamId and unpack it */
|
|
38
|
+
getStream: (streamId: string) => Promise<StreamStateView>;
|
|
39
|
+
/** Get the miniblock info for a stream */
|
|
40
|
+
getMiniblockInfo: (streamId: string) => Promise<MiniblockInfoResponse>;
|
|
41
|
+
/** Unpack envelope using client config */
|
|
42
|
+
unpackEnvelope: (envelope: Envelope) => Promise<ParsedEvent>;
|
|
43
|
+
/** Unpack envelopes using client config */
|
|
44
|
+
unpackEnvelopes: (envelopes: Envelope[]) => Promise<ParsedEvent[]>;
|
|
45
|
+
/** injest a group encryption session */
|
|
46
|
+
importGroupEncryptionSessions: (payload: {
|
|
47
|
+
streamId: string;
|
|
48
|
+
sessions: UserInboxPayload_GroupEncryptionSessions;
|
|
49
|
+
}) => Promise<void>;
|
|
50
|
+
/** Send an event to a stream */
|
|
51
|
+
sendEvent: (streamId: string, eventPayload: PlainMessage<StreamEvent>['payload'], tags?: PlainMessage<Tags>, ephemeral?: boolean) => Promise<{
|
|
52
|
+
eventId: string;
|
|
53
|
+
prevMiniblockHash: Uint8Array;
|
|
54
|
+
envelope: Envelope;
|
|
55
|
+
}>;
|
|
56
|
+
};
|
|
57
|
+
export type ClientV2<extended extends Extended | undefined = Extended | undefined> = Client_Base & (extended extends Extended ? extended : unknown) & {
|
|
58
|
+
extend: <const client extends Extended>(fn: (client: ClientV2<extended>) => client) => ClientV2<Prettify<client> & (extended extends Extended ? extended : unknown)>;
|
|
59
|
+
};
|
|
60
|
+
type Extended = Prettify<{
|
|
61
|
+
[_ in keyof Client_Base]?: undefined;
|
|
62
|
+
} & {
|
|
63
|
+
[key: string]: unknown;
|
|
64
|
+
}>;
|
|
65
|
+
export type Prettify<T> = {
|
|
66
|
+
[K in keyof T]: T[K];
|
|
67
|
+
} & {};
|
|
68
|
+
export type CreateTownsClientParams = {
|
|
69
|
+
env: string;
|
|
70
|
+
encryptionDevice?: EncryptionDeviceInitOpts;
|
|
71
|
+
/** Toggle hash validation of Envelopes. Defaults to `false`. */
|
|
72
|
+
hashValidation?: boolean;
|
|
73
|
+
/** Toggle signature validation of Envelopes. Defaults to `false`. */
|
|
74
|
+
signatureValidation?: boolean;
|
|
75
|
+
/** Maximum number of entries to store in the crypto store (for in-memory stores).
|
|
76
|
+
* Helps prevent memory leaks in long-running bots.
|
|
77
|
+
* Defaults to 5000.
|
|
78
|
+
*/
|
|
79
|
+
maxCryptoStoreEntries?: number;
|
|
80
|
+
};
|
|
81
|
+
export declare const createTownsClient: (params: ({
|
|
82
|
+
privateKey: string;
|
|
83
|
+
} | {
|
|
84
|
+
mnemonic: string;
|
|
85
|
+
} | {
|
|
86
|
+
bearerToken: string;
|
|
87
|
+
}) & CreateTownsClientParams) => Promise<ClientV2>;
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=client-v2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-v2.d.ts","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { GroupEncryptionAlgorithmId, GroupEncryptionCrypto, parseGroupEncryptionAlgorithmId, } from '@towns-labs/encryption';
|
|
2
|
+
import { makeStreamRpcClient } from './makeStreamRpcClient';
|
|
3
|
+
import { makeSignerContext, makeSignerContextFromBearerToken, } from './signerContext';
|
|
4
|
+
import { townsEnv } from './townsEnv';
|
|
5
|
+
import { ethers } from 'ethers';
|
|
6
|
+
import { makeSessionKeys } from './decryptionExtensions';
|
|
7
|
+
import { makeBaseProvider } from './sync-agent/utils/providers';
|
|
8
|
+
import { RiverDbManager } from './riverDbManager';
|
|
9
|
+
import { makeUserInboxStreamId, makeUserMetadataStreamId, streamIdAsBytes, streamIdAsString, userIdFromAddress, } from './id';
|
|
10
|
+
import { make_UserInboxPayload_GroupEncryptionSessions, } from './types';
|
|
11
|
+
import { makeEvent, unpackStream, unpackEnvelope as sdk_unpackEnvelope, unpackEnvelopes as sdk_unpackEnvelopes, } from './sign';
|
|
12
|
+
import { bin_toHexString, bin_fromHexString, check } from '@towns-labs/utils';
|
|
13
|
+
import { fromJsonString, toJsonString } from '@bufbuild/protobuf';
|
|
14
|
+
import { SessionKeysSchema, Err, } from '@towns-labs/proto';
|
|
15
|
+
import { errorContains, errorContainsMessage, getRpcErrorProperty } from './rpcInterceptors';
|
|
16
|
+
import { AppRegistryService } from './appRegistryService';
|
|
17
|
+
import { StreamStateView } from './streamStateView';
|
|
18
|
+
export const createTownsClient = async (params) => {
|
|
19
|
+
const config = townsEnv().makeTownsConfig(params.env);
|
|
20
|
+
const baseProvider = makeBaseProvider(config);
|
|
21
|
+
let signerContext;
|
|
22
|
+
let wallet;
|
|
23
|
+
if ('mnemonic' in params) {
|
|
24
|
+
wallet = ethers.Wallet.fromMnemonic(params.mnemonic).connect(baseProvider);
|
|
25
|
+
const delegateWallet = ethers.Wallet.createRandom();
|
|
26
|
+
signerContext = await makeSignerContext(wallet, delegateWallet);
|
|
27
|
+
}
|
|
28
|
+
else if ('privateKey' in params) {
|
|
29
|
+
wallet = new ethers.Wallet(params.privateKey).connect(baseProvider);
|
|
30
|
+
const delegateWallet = ethers.Wallet.createRandom();
|
|
31
|
+
signerContext = await makeSignerContext(wallet, delegateWallet);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
signerContext = await makeSignerContextFromBearerToken(params.bearerToken);
|
|
35
|
+
wallet = new ethers.Wallet(signerContext.signerPrivateKey()).connect(baseProvider);
|
|
36
|
+
}
|
|
37
|
+
const rpc = makeStreamRpcClient(config.services.node.url);
|
|
38
|
+
const userId = userIdFromAddress(signerContext.creatorAddress);
|
|
39
|
+
const cryptoStore = RiverDbManager.getCryptoDb(userId, undefined, params.maxCryptoStoreEntries);
|
|
40
|
+
await cryptoStore.initialize();
|
|
41
|
+
// eslint-disable-next-line prefer-const
|
|
42
|
+
let crypto;
|
|
43
|
+
let _appService;
|
|
44
|
+
const getMiniblockInfo = async (streamId) => {
|
|
45
|
+
const r = await client.rpc.getLastMiniblockHash({ streamId: streamIdAsBytes(streamId) });
|
|
46
|
+
return {
|
|
47
|
+
miniblockNum: r.miniblockNum,
|
|
48
|
+
miniblockHash: r.hash,
|
|
49
|
+
encryptionAlgorithm: r.encryptionAlgorithm,
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
const getStream = async (streamId) => {
|
|
53
|
+
const { disableHashValidation, disableSignatureValidation } = client;
|
|
54
|
+
const stream = await client.rpc.getStream({ streamId: streamIdAsBytes(streamId) });
|
|
55
|
+
const unpackedResponse = await unpackStream(stream.stream, {
|
|
56
|
+
disableHashValidation,
|
|
57
|
+
disableSignatureValidation,
|
|
58
|
+
});
|
|
59
|
+
const streamView = new StreamStateView(userId, streamIdAsString(streamId), undefined);
|
|
60
|
+
streamView.initialize(unpackedResponse.streamAndCookie.nextSyncCookie, unpackedResponse.streamAndCookie.events, unpackedResponse.snapshot, unpackedResponse.streamAndCookie.miniblocks, [], unpackedResponse.prevSnapshotMiniblockNum, undefined, [], undefined);
|
|
61
|
+
return streamView;
|
|
62
|
+
};
|
|
63
|
+
const unpackEnvelope = async (envelope) => {
|
|
64
|
+
const { disableHashValidation, disableSignatureValidation } = client;
|
|
65
|
+
return sdk_unpackEnvelope(envelope, {
|
|
66
|
+
disableHashValidation,
|
|
67
|
+
disableSignatureValidation,
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
const unpackEnvelopes = async (envelopes) => {
|
|
71
|
+
const { disableHashValidation, disableSignatureValidation } = client;
|
|
72
|
+
return sdk_unpackEnvelopes(envelopes, { disableHashValidation, disableSignatureValidation });
|
|
73
|
+
};
|
|
74
|
+
const withRetry = async (operation) => {
|
|
75
|
+
const RETRY_POLICY = {
|
|
76
|
+
[Err.MINIBLOCK_TOO_NEW]: { delay: 1000, maxRetries: 5 },
|
|
77
|
+
[Err.BAD_PREV_MINIBLOCK_HASH]: { delay: 0, maxRetries: 3 },
|
|
78
|
+
[Err.PERMISSION_DENIED]: { delay: [200, 400, 800, 1100], maxRetries: 4 },
|
|
79
|
+
};
|
|
80
|
+
const attempt = async (retryCount, prev) => {
|
|
81
|
+
try {
|
|
82
|
+
return await operation(prev, retryCount);
|
|
83
|
+
}
|
|
84
|
+
catch (err) {
|
|
85
|
+
let policy;
|
|
86
|
+
let errorType;
|
|
87
|
+
if (errorContains(err, Err.MINIBLOCK_TOO_NEW)) {
|
|
88
|
+
policy = RETRY_POLICY[Err.MINIBLOCK_TOO_NEW];
|
|
89
|
+
errorType = Err.MINIBLOCK_TOO_NEW;
|
|
90
|
+
}
|
|
91
|
+
else if (errorContains(err, Err.BAD_PREV_MINIBLOCK_HASH)) {
|
|
92
|
+
policy = RETRY_POLICY[Err.BAD_PREV_MINIBLOCK_HASH];
|
|
93
|
+
errorType = Err.BAD_PREV_MINIBLOCK_HASH;
|
|
94
|
+
}
|
|
95
|
+
else if (errorContains(err, Err.PERMISSION_DENIED) &&
|
|
96
|
+
(errorContainsMessage(err, 'Transaction has 0 confirmations.') ||
|
|
97
|
+
errorContainsMessage(err, 'Transaction receipt not found'))) {
|
|
98
|
+
policy = RETRY_POLICY[Err.PERMISSION_DENIED];
|
|
99
|
+
errorType = Err.PERMISSION_DENIED;
|
|
100
|
+
}
|
|
101
|
+
// Not a retryable error or max retries exceeded
|
|
102
|
+
if (!policy || !errorType || retryCount >= policy.maxRetries) {
|
|
103
|
+
throw err;
|
|
104
|
+
}
|
|
105
|
+
// Calculate delay for this retry
|
|
106
|
+
const delay = typeof policy.delay === 'number'
|
|
107
|
+
? policy.delay
|
|
108
|
+
: policy.delay[retryCount] || policy.delay[policy.delay.length - 1];
|
|
109
|
+
// Handle BAD_PREV_MINIBLOCK_HASH - extract expected hash from error
|
|
110
|
+
if (errorType === Err.BAD_PREV_MINIBLOCK_HASH) {
|
|
111
|
+
const expectedHash = getRpcErrorProperty(err, 'expected');
|
|
112
|
+
const expectedMiniblockNum = getRpcErrorProperty(err, 'expNum');
|
|
113
|
+
check(expectedHash !== undefined, 'expected hash not found in BAD_PREV_MINIBLOCK_HASH error');
|
|
114
|
+
check(expectedMiniblockNum !== undefined, 'expected miniblock num not found in BAD_PREV_MINIBLOCK_HASH error');
|
|
115
|
+
if (delay > 0) {
|
|
116
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
117
|
+
}
|
|
118
|
+
return attempt(retryCount + 1, {
|
|
119
|
+
prevMiniblockHash: bin_fromHexString(expectedHash),
|
|
120
|
+
prevMiniblockNum: BigInt(expectedMiniblockNum),
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
if (delay > 0) {
|
|
124
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
125
|
+
}
|
|
126
|
+
return attempt(retryCount + 1, prev);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
return attempt(0);
|
|
130
|
+
};
|
|
131
|
+
const sendEvent = async (streamId, eventPayload, tags, ephemeral) => {
|
|
132
|
+
return withRetry(async (prev, _retryCount) => {
|
|
133
|
+
const { hash: miniblockHash, miniblockNum } = prev
|
|
134
|
+
? { hash: prev.prevMiniblockHash, miniblockNum: prev.prevMiniblockNum }
|
|
135
|
+
: await client.rpc.getLastMiniblockHash({
|
|
136
|
+
streamId: streamIdAsBytes(streamId),
|
|
137
|
+
});
|
|
138
|
+
const envelope = await makeEvent(signerContext, eventPayload, miniblockHash, miniblockNum, tags, ephemeral);
|
|
139
|
+
const eventId = bin_toHexString(envelope.hash);
|
|
140
|
+
await client.rpc.addEvent({
|
|
141
|
+
streamId: streamIdAsBytes(streamId),
|
|
142
|
+
event: envelope,
|
|
143
|
+
});
|
|
144
|
+
return { eventId, prevMiniblockHash: miniblockHash, envelope };
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
const buildGroupEncryptionClient = () => {
|
|
148
|
+
const _downloadUserDeviceInfo = async (userId) => {
|
|
149
|
+
const streamId = makeUserMetadataStreamId(userId);
|
|
150
|
+
try {
|
|
151
|
+
const deviceLookback = 10;
|
|
152
|
+
const streamView = await getStream(streamId);
|
|
153
|
+
const userDevices = streamView.userMetadataContent.deviceKeys.slice(-deviceLookback);
|
|
154
|
+
return { userId, devices: userDevices };
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
return { userId, devices: [] };
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const _encryptAndShareGroupSessionsToUser = async (streamId, userId, sessionIds, payloadStr, algorithm, userDevice) => {
|
|
161
|
+
try {
|
|
162
|
+
const deviceKeys = await _downloadUserDeviceInfo(userId);
|
|
163
|
+
const ciphertext = await crypto.encryptWithDeviceKeys(payloadStr, deviceKeys.devices);
|
|
164
|
+
if (Object.keys(ciphertext).length === 0) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const toStreamId = makeUserInboxStreamId(userId);
|
|
168
|
+
const { hash: miniblockHash, miniblockNum } = await rpc.getLastMiniblockHash({
|
|
169
|
+
streamId: streamIdAsBytes(toStreamId),
|
|
170
|
+
});
|
|
171
|
+
const event = await makeEvent(signerContext, make_UserInboxPayload_GroupEncryptionSessions({
|
|
172
|
+
streamId: streamIdAsBytes(streamId),
|
|
173
|
+
senderKey: userDevice.deviceKey,
|
|
174
|
+
sessionIds: sessionIds,
|
|
175
|
+
ciphertexts: ciphertext,
|
|
176
|
+
algorithm: algorithm,
|
|
177
|
+
}), miniblockHash, miniblockNum);
|
|
178
|
+
const eventId = bin_toHexString(event.hash);
|
|
179
|
+
await rpc.addEvent({
|
|
180
|
+
streamId: streamIdAsBytes(toStreamId),
|
|
181
|
+
event,
|
|
182
|
+
});
|
|
183
|
+
return { miniblockHash, eventId };
|
|
184
|
+
}
|
|
185
|
+
catch (e) {
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
const encryptAndShareGroupSessionsToStream = async (streamId, sessions, algorithm, priorityUserIds) => {
|
|
190
|
+
const streamView = await getStream(streamId);
|
|
191
|
+
const otherUsers = Array.from(streamView.getUsersEntitledToKeyExchange()).filter((userId) => !priorityUserIds.includes(userId));
|
|
192
|
+
check(sessions.length >= 0, 'no sessions to encrypt');
|
|
193
|
+
check(new Set(sessions.map((s) => s.streamId)).size === 1, 'sessions should all be from the same stream');
|
|
194
|
+
check(sessions[0].algorithm === algorithm, 'algorithm mismatch');
|
|
195
|
+
check(new Set(sessions.map((s) => s.algorithm)).size === 1, 'all sessions should be the same algorithm');
|
|
196
|
+
check(sessions[0].streamId === streamId, 'streamId mismatch');
|
|
197
|
+
const userDevice = crypto.getUserDevice();
|
|
198
|
+
const sessionIds = sessions.map((session) => session.sessionId);
|
|
199
|
+
const payload = makeSessionKeys(sessions);
|
|
200
|
+
const payloadStr = toJsonString(SessionKeysSchema, payload);
|
|
201
|
+
// do the priority users first
|
|
202
|
+
const priorityPromises = priorityUserIds.map(async (userId) => {
|
|
203
|
+
return _encryptAndShareGroupSessionsToUser(streamId, userId, sessionIds, payloadStr, algorithm, userDevice);
|
|
204
|
+
});
|
|
205
|
+
await Promise.all(priorityPromises);
|
|
206
|
+
// then the other users
|
|
207
|
+
const otherPromises = otherUsers.map(async (userId) => {
|
|
208
|
+
return _encryptAndShareGroupSessionsToUser(streamId, userId, sessionIds, payloadStr, algorithm, userDevice);
|
|
209
|
+
});
|
|
210
|
+
await Promise.all(otherPromises);
|
|
211
|
+
};
|
|
212
|
+
return {
|
|
213
|
+
getMiniblockInfo,
|
|
214
|
+
encryptAndShareGroupSessionsToStream,
|
|
215
|
+
};
|
|
216
|
+
};
|
|
217
|
+
const appServiceClient = async () => {
|
|
218
|
+
if (_appService) {
|
|
219
|
+
return _appService.appRegistryRpcClient;
|
|
220
|
+
}
|
|
221
|
+
_appService = await AppRegistryService.authenticate(signerContext, config.services.appRegistry.url);
|
|
222
|
+
return _appService.appRegistryRpcClient;
|
|
223
|
+
};
|
|
224
|
+
const importGroupEncryptionSessions = async (payload) => {
|
|
225
|
+
const userDevice = crypto.getUserDevice();
|
|
226
|
+
const { streamId, sessions: session } = payload;
|
|
227
|
+
// check if this message is to our device
|
|
228
|
+
const ciphertext = session.ciphertexts[userDevice.deviceKey];
|
|
229
|
+
if (!ciphertext) {
|
|
230
|
+
//log.debug('skipping, no session for our device')
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
// check if it contains any keys we need, default to GroupEncryption if the algorithm is not set
|
|
234
|
+
const parsed = parseGroupEncryptionAlgorithmId(session.algorithm, GroupEncryptionAlgorithmId.GroupEncryption);
|
|
235
|
+
if (parsed.kind === 'unrecognized') {
|
|
236
|
+
// todo dispatch event to update the error message
|
|
237
|
+
//this.log.error('skipping, invalid algorithm', session.algorithm)
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
const algorithm = parsed.value;
|
|
241
|
+
// decrypt the message
|
|
242
|
+
const cleartext = await crypto.decryptWithDeviceKey(ciphertext, session.senderKey);
|
|
243
|
+
const sessionKeys = fromJsonString(SessionKeysSchema, cleartext);
|
|
244
|
+
check(sessionKeys.keys.length === session.sessionIds.length, 'bad sessionKeys');
|
|
245
|
+
// make group sessions
|
|
246
|
+
const sessions = sessionKeys.keys.map((key, i) => ({
|
|
247
|
+
streamId: streamId,
|
|
248
|
+
sessionId: session.sessionIds[i],
|
|
249
|
+
sessionKey: key,
|
|
250
|
+
algorithm: algorithm,
|
|
251
|
+
}));
|
|
252
|
+
await crypto.importSessionKeys(streamId, sessions);
|
|
253
|
+
};
|
|
254
|
+
await cryptoStore.initialize();
|
|
255
|
+
crypto = new GroupEncryptionCrypto(buildGroupEncryptionClient(), cryptoStore);
|
|
256
|
+
await crypto.init(params.encryptionDevice);
|
|
257
|
+
const { hashValidation = false, signatureValidation = false } = params;
|
|
258
|
+
const unpackEnvelopeOpts = {
|
|
259
|
+
disableHashValidation: !hashValidation,
|
|
260
|
+
disableSignatureValidation: !signatureValidation,
|
|
261
|
+
};
|
|
262
|
+
const client = {
|
|
263
|
+
crypto,
|
|
264
|
+
keychain: cryptoStore,
|
|
265
|
+
defaultGroupEncryptionAlgorithm: GroupEncryptionAlgorithmId.HybridGroupEncryption,
|
|
266
|
+
rpc,
|
|
267
|
+
signerContext,
|
|
268
|
+
wallet,
|
|
269
|
+
userId,
|
|
270
|
+
disableHashValidation: !hashValidation,
|
|
271
|
+
disableSignatureValidation: !signatureValidation,
|
|
272
|
+
unpackEnvelopeOpts,
|
|
273
|
+
appServiceClient,
|
|
274
|
+
getStream,
|
|
275
|
+
getMiniblockInfo,
|
|
276
|
+
sendEvent,
|
|
277
|
+
unpackEnvelope,
|
|
278
|
+
unpackEnvelopes,
|
|
279
|
+
importGroupEncryptionSessions,
|
|
280
|
+
config,
|
|
281
|
+
};
|
|
282
|
+
function extend(base) {
|
|
283
|
+
return (extendFn) => {
|
|
284
|
+
const extended = extendFn(base);
|
|
285
|
+
for (const key in client)
|
|
286
|
+
delete extended[key];
|
|
287
|
+
const combined = { ...base, ...extended };
|
|
288
|
+
return Object.assign(combined, { extend: extend(combined) });
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
return Object.assign(client, { extend: extend(client) });
|
|
292
|
+
};
|
|
293
|
+
//# sourceMappingURL=client-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-v2.js","sourceRoot":"","sources":["../src/client-v2.ts"],"names":[],"mappings":"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"}
|